Defines provider configs, model profiles, rate limits, tool-calling options for LLM routing.
from __future__ import annotations
import json
import os
import random
import time
import urllib.error
import urllib.request
from dataclasses import asdict, dataclass, field, replace
from pathlib import Path
from typing import Any
from jigga.core.io import read_yaml
from jigga.core.models import AgentConfig
from jigga.runtime import model_throttle
from jigga.runtime.audit import append_event, new_id
from jigga.runtime.cost import (
WARN_FRACTION,
agent_budget,
estimate_tokens,
load_pricing,
price_call,
)
from jigga.runtime.spend_ledger import window_spend
@dataclass(frozen=True)
class ModelProviderConfig:
id: str
kind: str = "dry_run"
base_url: str | None = None
api_key_env: str | None = None
default_model: str | None = None
timeout_seconds:
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search 40K more like it.
Get a free API key