Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6d18abd
feat(python): add missing error types for SDK parity
saschabuehrle Nov 27, 2025
5264b04
feat(python): add OpenRouter provider for 400+ model access
saschabuehrle Nov 27, 2025
4caf792
feat(typescript): add OpenTelemetry metrics exporter
saschabuehrle Nov 27, 2025
4434e08
feat(typescript): add multi-step cascade pipeline
saschabuehrle Nov 27, 2025
96b927f
fix(python): implement abstract methods in OpenRouter provider
saschabuehrle Nov 27, 2025
1e23298
feat(typescript): add DomainConfig and ModelRegistry classes
saschabuehrle Nov 27, 2025
76c9c70
feat(python): add DomainConfig and ModelRegistry for SDK parity
saschabuehrle Nov 27, 2025
ff4e767
feat(python): integrate DomainDetector in CascadeAgent.run()
saschabuehrle Nov 27, 2025
7002e0f
feat(python): add YAML/JSON config file loading
saschabuehrle Nov 28, 2025
0550463
feat(python): export DomainConfig and ModelRegistry from main module
saschabuehrle Nov 28, 2025
a8d32d2
feat(resilience): add circuit breaker pattern for provider resilience
saschabuehrle Nov 28, 2025
a8ac635
feat(routing): add per-domain cascades with semantic detection
saschabuehrle Nov 28, 2025
4ead6a4
feat(config): add dynamic configuration system for runtime updates
saschabuehrle Nov 28, 2025
fba4536
feat: add Tool Risk Classification system (Stage 4 - OSS-3 gap)
saschabuehrle Nov 28, 2025
97d4412
fix: alignment score bug with query_difficulty=0.0
saschabuehrle Nov 28, 2025
707ee24
chore: add internal planning docs to gitignore
saschabuehrle Nov 28, 2025
72a2715
feat: implement domain-aware routing for Python and TypeScript
saschabuehrle Nov 28, 2025
73364df
feat: improve GSM8K benchmark with accurate cost tracking
saschabuehrle Nov 28, 2025
e65a0ee
feat: add DeepSeek provider and MMLU benchmark
saschabuehrle Nov 28, 2025
828742e
feat: add domain-aware tool routing and quality threshold enforcement
saschabuehrle Nov 28, 2025
12ddf7c
feat: add reasoning chain detection to alignment scorer (v9.2)
saschabuehrle Dec 2, 2025
c44c1ec
feat: implement full 16 domain configs with 2025 models
saschabuehrle Dec 3, 2025
f75ccfc
fix(tests): resolve CI failures for PR #93
saschabuehrle Dec 3, 2025
2e04129
style: apply Black formatting to benchmark files
saschabuehrle Dec 3, 2025
d03f243
style: fix import sorting and Black formatting
saschabuehrle Dec 3, 2025
289c10b
fix: resolve Ruff linting errors and enhance TypeScript domain routing
saschabuehrle Dec 3, 2025
5bce851
fix(ci): add missing mypy disabled error codes
saschabuehrle Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@ venv.bak/
CLAUDE.md
.claude/

# ============================================================================
# INTERNAL PLANNING (local only, not for GitHub)
# ============================================================================
docs/OSS_DEVELOPMENT_STAGES.md
docs/*_PLAN*.md
docs/*_ROADMAP*.md
**/INTERNAL_*.md

# ============================================================================
# ENVIRONMENT VARIABLES
# ============================================================================
Expand Down
108 changes: 108 additions & 0 deletions cascadeflow/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,31 @@
UserTier,
WorkflowProfile,
)

# Domain configuration (v0.7.0)
from .schema.domain_config import (
DomainConfig,
DomainValidationMethod,
BUILTIN_DOMAIN_CONFIGS,
create_domain_config,
get_builtin_domain_config,
DOMAIN_CODE,
DOMAIN_GENERAL,
DOMAIN_DATA,
DOMAIN_MEDICAL,
DOMAIN_LEGAL,
DOMAIN_MATH,
DOMAIN_STRUCTURED,
)

# Model registry (v0.7.0)
from .schema.model_registry import (
ModelRegistry,
ModelRegistryEntry,
get_model,
has_model,
get_default_registry,
)
from .schema.exceptions import (
BudgetExceededError,
cascadeflowError,
Expand Down Expand Up @@ -169,6 +194,44 @@
GuardrailViolation,
)

# NEW: Config File Loading (v0.7.0 - Architecture Alignment)
from .config_loader import (
load_config,
load_agent,
load_default_agent,
create_agent_from_config,
find_config,
parse_model_config,
parse_domain_config,
EXAMPLE_YAML_CONFIG,
EXAMPLE_JSON_CONFIG,
)

# NEW: Resilience (v0.8.0 - Circuit Breaker)
from .resilience import (
CircuitBreaker,
CircuitBreakerConfig,
CircuitBreakerRegistry,
CircuitState,
get_circuit_breaker,
)

# NEW: Dynamic Configuration (v0.8.0 - Runtime Config Updates)
from .dynamic_config import (
ConfigManager,
ConfigChangeEvent,
ConfigSection,
ConfigWatcher,
)

# NEW: Tool Risk Classification (v0.8.0 - OSS-3 gap)
from .routing import (
ToolRiskLevel,
ToolRiskClassification,
ToolRiskClassifier,
get_tool_risk_routing,
)

# ==================== MAIN AGENT & RESULT ====================


Expand Down Expand Up @@ -203,6 +266,25 @@
"OptimizationWeights",
"DEFAULT_TIERS",
"EXAMPLE_WORKFLOWS",
# ===== DOMAIN CONFIGURATION (v0.7.0) =====
"DomainConfig",
"DomainValidationMethod",
"BUILTIN_DOMAIN_CONFIGS",
"create_domain_config",
"get_builtin_domain_config",
"DOMAIN_CODE",
"DOMAIN_GENERAL",
"DOMAIN_DATA",
"DOMAIN_MEDICAL",
"DOMAIN_LEGAL",
"DOMAIN_MATH",
"DOMAIN_STRUCTURED",
# ===== MODEL REGISTRY (v0.7.0) =====
"ModelRegistry",
"ModelRegistryEntry",
"get_model",
"has_model",
"get_default_registry",
# ===== MAIN AGENT & RESULT =====
"CascadeAgent",
"CascadeResult",
Expand Down Expand Up @@ -266,6 +348,32 @@
"PIIMatch", # NEW: v0.2.1 - PII match
"GuardrailsManager", # NEW: v0.2.1 - Centralized guardrails
"GuardrailViolation", # NEW: v0.2.1 - Guardrail violation exception
# Config File Loading (v0.7.0 - Architecture Alignment)
"load_config", # NEW: v0.7.0 - Load YAML/JSON config
"load_agent", # NEW: v0.7.0 - Load config and create agent
"load_default_agent", # NEW: v0.7.0 - Load from default locations
"create_agent_from_config", # NEW: v0.7.0 - Create agent from config dict
"find_config", # NEW: v0.7.0 - Find config in standard locations
"parse_model_config", # NEW: v0.7.0 - Parse model config dict
"parse_domain_config", # NEW: v0.7.0 - Parse domain config dict
"EXAMPLE_YAML_CONFIG", # NEW: v0.7.0 - Example YAML config string
"EXAMPLE_JSON_CONFIG", # NEW: v0.7.0 - Example JSON config string
# ===== RESILIENCE (v0.8.0) =====
"CircuitBreaker", # NEW: v0.8.0 - Circuit breaker pattern
"CircuitBreakerConfig", # NEW: v0.8.0 - Circuit breaker configuration
"CircuitBreakerRegistry", # NEW: v0.8.0 - Per-provider circuit tracking
"CircuitState", # NEW: v0.8.0 - Circuit state enum
"get_circuit_breaker", # NEW: v0.8.0 - Get circuit breaker for provider
# ===== DYNAMIC CONFIG (v0.8.0) =====
"ConfigManager", # NEW: v0.8.0 - Runtime config management
"ConfigChangeEvent", # NEW: v0.8.0 - Config change event
"ConfigSection", # NEW: v0.8.0 - Config section enum
"ConfigWatcher", # NEW: v0.8.0 - File watcher for auto-reload
# ===== TOOL RISK (v0.8.0 - OSS-3 gap) =====
"ToolRiskLevel", # NEW: v0.8.0 - Tool risk level enum
"ToolRiskClassification", # NEW: v0.8.0 - Classification result
"ToolRiskClassifier", # NEW: v0.8.0 - Tool risk classifier
"get_tool_risk_routing", # NEW: v0.8.0 - Routing by risk level
# ===== PROVIDERS =====
"ModelResponse",
"BaseProvider",
Expand Down
Loading
Loading