load("@fbcode_macros//build_defs:python_binary.bzl", "python_binary")
load("@fbcode_macros//build_defs:python_library.bzl", "python_library")

oncall("meta_llama_oss")

python_binary(
    # @autodeps-skip
    name = "llama_stack",
    main_function = ".llama_stack.main",
    main_src = "llama_stack.py",
    par_style = "xar",
    deps = [
        "fbsource//third-party/pypi/aiosqlite:aiosqlite",
        "fbsource//third-party/pypi/fastapi:fastapi",
        "fbsource//third-party/pypi/fire:fire",
        "fbsource//third-party/pypi/llama-models:llama-models",
        "fbsource//third-party/pypi/llama-stack:llama-stack",
        "fbsource//third-party/pypi/llama-stack-client:llama-stack-client",
        "fbsource//third-party/pypi/pypdf:pypdf",
        "fbsource//third-party/pypi/termcolor:termcolor",
        "//faiss/python:pyfaiss",
        "//gen_ai/llama_stack/providers/inference/metagen:metagen",
    ],
)

python_library(
    # @autodeps-skip
    name = "llama_stack_lib",
    srcs = ["llama_stack.py"],
    # @lint-ignore BUCKLINT needed for OSS
    base_module = "llamafirewall.agents",
    deps = [
        "fbsource//third-party/pypi/aiosqlite:aiosqlite",
        "fbsource//third-party/pypi/fastapi:fastapi",
        "fbsource//third-party/pypi/fire:fire",
        "fbsource//third-party/pypi/llama-models:llama-models",
        "fbsource//third-party/pypi/llama-stack:llama-stack",
        "fbsource//third-party/pypi/llama-stack-client:llama-stack-client",
        "fbsource//third-party/pypi/pypdf:pypdf",
        "fbsource//third-party/pypi/termcolor:termcolor",
        "//faiss/python:pyfaiss",
        "//gen_ai/llama_stack/providers/inference/metagen:metagen",
    ],
)

python_library(
    name = "langchain_agent",
    srcs = ["langchain_agent.py"],
    # @lint-ignore BUCKLINT needed for OSS
    base_module = "llamafirewall.agents",
    labels = ["autodeps2_generated"],
    deps = [
        "fbsource//third-party/pypi/langchain-community:langchain-community",
        "fbsource//third-party/pypi/langchain-core:langchain-core",
        "fbsource//third-party/pypi/langchain-experimental:langchain-experimental",  # @manual
        "fbsource//third-party/pypi/langchain-openai:langchain-openai",
        "fbsource//third-party/pypi/langgraph:langgraph",
        "//security/llamafirewall_pre_oss/src/llamafirewall:llamafirewall",
    ],
)
