###############################################################################
#
#  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.
#
# ruff: noqa: E501,F401
# flake8: noqa: E501,F401
# pylint: disable=unused-import,line-too-long
# fmt: off

file_map = {
    
    "clients.baml": "// Learn more about clients at https://docs.boundaryml.com/docs/snippets/clients/overview\n\nclient<llm> GPT4o {\n  provider openai\n  options {\n    model \"gpt-4o\"\n    api_key env.OPENAI_API_KEY\n  }\n}\n\nclient<llm> GPT4oMini {\n  provider openai\n  options {\n    model \"gpt-4o-mini\"\n    api_key env.OPENAI_API_KEY\n  }\n}\n\nclient<llm> Sonnet {\n  provider anthropic\n  options {\n    model \"claude-3-5-sonnet-20240620\"\n    api_key env.ANTHROPIC_API_KEY\n  }\n}\n\n\nclient<llm> Haiku {\n  provider anthropic\n  options {\n    model \"claude-3-haiku-20240307\"\n    api_key env.ANTHROPIC_API_KEY\n  }\n}\n\nclient<llm> Fast {\n  provider round-robin\n  options {\n    // This will alternate between the two clients\n    strategy [GPT4oMini, Haiku]\n  }\n}\n\nclient<llm> Openai {\n  provider fallback\n  options {\n    // This will try the clients in order until one succeeds\n    strategy [GPT4o, GPT4oMini]\n  }\n}",
    "generators.baml": "// This helps use auto generate libraries you can use in the language of\n// your choice. You can have multiple generators if you use multiple languages.\n// Just ensure that the output_dir is different for each generator.\ngenerator target {\n    // Valid values: \"python/pydantic\", \"typescript\", \"ruby/sorbet\", \"rest/openapi\"\n    output_type \"python/pydantic\"\n\n    // Where the generated code will be saved (relative to baml_src/)\n    output_dir \"../\"\n\n    // The version of the BAML package you have installed (e.g. same version as your baml-py or @boundaryml/baml).\n    // The BAML VSCode extension version should also match this version.\n    version \"0.56.1\"\n\n    // Valid values: \"sync\", \"async\"\n    // This controls what `b.FunctionName()` will be (sync or async).\n    default_client_mode sync\n}\n",
    "selectors.baml": "class GenerateSelectorsOutput {\n  selector_string string\n  confidence float\n}\n\nclass BamlTag {\n  user_assigned_id string\n  html string\n}\n\n// Generate a selector for a given HTML element.\nfunction GenerateSelectorsOpenAI(tag: BamlTag, html_context: string, mode: string) -> GenerateSelectorsOutput {\n  client \"GPT4o\"\n  prompt #\"\n    Generate a {{mode}} selector based on the provided HTML tag and the HTML surrounding it. We want the selector to be stable and not change between sessions, and to generalize across versions of this page with different content (e.g. profiles). \n    Try to use attributes that identify structural elements of the page rather than specific values that might be different for different urls. When possible, use text labels near the target element as identifiers.\n\n    Relevant Tag:\n    {{ tag }}\n    \n    HTML Context: \n    {{ html_context }}\n\n    {{ ctx.output_format }}\n  \"#\n}\n\nfunction GenerateSelectorsAnthropic(tag: BamlTag, html_context: string, mode: string) -> GenerateSelectorsOutput {\n  client \"Sonnet\"\n  prompt #\"\n    Generate a {{mode}} selector based on the provided HTML tag and the HTML surrounding it. We want the selector to be stable and not change between sessions, and to generalize across versions of this page with different content (e.g. profiles). \n    Try to use attributes that identify structural elements of the page rather than specific values that might be different for different urls. When possible, use text labels near the target element as identifiers.\n\n    Relevant Tag:\n    {{ tag }}\n    \n    HTML Context: \n    {{ html_context }}\n\n    {{ ctx.output_format }}\n  \"#\n}",
}

def get_baml_files():
    return file_map