shekel/__init__.py | Public API: budget, Budget, TemporalBudget, with_budget, tool, exceptions. |
shekel/_budget.py | Budget class, nested/session logic, recording, limits, fallback. |
shekel/_temporal.py | TemporalBudget, spec parsing, InMemoryBackend, TemporalBudgetBackend protocol. |
shekel/_context.py | ContextVar for active budget. |
shekel/_patch.py | Ref-counted patching, install/restore, fallback validation, shared wrapper flow, observability emit. |
shekel/_pricing.py | calculate_cost, prices.json, tokencost fallback. |
shekel/prices.json | Bundled model pricing. |
shekel/_tool.py | @tool and tool wrapper. |
shekel/_decorator.py | @with_budget. |
shekel/_cli.py | Click CLI: estimate, models, run. |
shekel/_run_config.py | TOML budget file parsing. |
shekel/_run_utils.py | Running user script under budget. |
shekel/exceptions.py | BudgetExceededError, ToolBudgetExceededError. |
shekel/providers/base.py | ProviderAdapter, ProviderRegistry. |
shekel/providers/openai.py, anthropic.py, etc. | Per-provider adapters. |
shekel/integrations/base.py | ObservabilityAdapter. |
shekel/integrations/registry.py | AdapterRegistry for observability. |
shekel/integrations/langfuse.py, otel_metrics.py | Langfuse and OTel adapters. |
shekel/otel.py | ShekelMeter (OTel registration). |