"""String templates used by `trajai init`."""

TRAJAI_TOML_TEMPLATE = """\
# trajai.toml — TrajAI configuration file
# All fields are optional; defaults shown below.

# Number of runs for @statistical / trajai_statistical marker
# default_n = 10

# Required pass rate (0.0–1.0) for statistical tests
# default_threshold = 0.95

# Maximum parallel workers for statistical runs
# max_workers = 5

# Per-test cost budget in USD
# cost_budget_per_test = 1.00

# Per-suite cost budget in USD
# cost_budget_per_suite = 10.00

# Override LLM model for all tests (e.g., "gpt-4o-mini")
# model_override = ""

# Raise an error when the agent calls an unregistered tool
# strict_mocks = true

# Cache settings
# cache_enabled = false
# cache_directory = ".trajai/cache"
# cache_ttl_hours = 168.0  # 7 days

# Path for JUnit XML output
# junit_xml = "test-results/trajai.xml"

# Verbose output
# verbose = false
"""

EXAMPLE_TEST_TEMPLATE = """\
\"\"\"Example TrajAI test — generated by `trajai init`.\"\"\"

from trajai.mock.toolkit import MockToolkit


def my_agent(input: str, tools: dict) -> str:
    \"\"\"Replace this with your actual agent logic.\"\"\"
    result = tools["search"]({"query": input})
    return f"Found: {result['title']}"


def test_agent_calls_search(mock_toolkit: MockToolkit) -> None:
    mock_toolkit.mock("search", return_value={"title": "TrajAI is awesome"})

    result = mock_toolkit.run_callable(my_agent, "trajai testing framework")

    result.assert_tool_was_called("search")
    result.assert_output_contains("Found:")
"""
