Add architecture package and application skeleton

This commit is contained in:
2026-07-03 21:09:47 +03:00
parent 7d6cc1c83e
commit ce2b263e52
47 changed files with 2377 additions and 53 deletions
+80
View File
@@ -0,0 +1,80 @@
from ai_orchestrator.config import (
ExecutionConfig,
ModelsConfig,
ModelSlotConfig,
PolicyConfig,
PolicyMode,
ProjectConfig,
ProjectMetadata,
)
from ai_orchestrator.domain.enums import PolicyDecisionType, RiskLevel
from ai_orchestrator.domain.models import ActionDescriptor
from ai_orchestrator.infrastructure.policy import StaticProjectPolicyEvaluator
def test_policy_evaluator_returns_confirm_for_configured_resource() -> None:
project = ProjectConfig(
project=ProjectMetadata(id="default", name="Default"),
models=ModelsConfig(
weak=ModelSlotConfig(provider="local", model="weak"),
strong=ModelSlotConfig(provider="local", model="strong"),
vision=ModelSlotConfig(provider="disabled"),
embedding=ModelSlotConfig(provider="local", model="embed"),
),
execution=ExecutionConfig(),
policy=PolicyConfig(),
)
evaluator = StaticProjectPolicyEvaluator(projects={"default": project})
decision = evaluator.evaluate(
ActionDescriptor(
resource="filesystem",
risk_level=RiskLevel.WRITE,
action_name="file.write",
preview_available=True,
),
"default",
)
assert decision.decision == PolicyDecisionType.CONFIRM
assert decision.requires_confirmation is True
def test_policy_evaluator_returns_disabled_by_config() -> None:
project = ProjectConfig(
project=ProjectMetadata(id="default", name="Default"),
models=ModelsConfig(
weak=ModelSlotConfig(provider="local", model="weak"),
strong=ModelSlotConfig(provider="local", model="strong"),
vision=ModelSlotConfig(provider="disabled"),
embedding=ModelSlotConfig(provider="local", model="embed"),
),
execution=ExecutionConfig(),
policy=PolicyConfig(
default_mode=PolicyMode.CONFIRM,
resources={
"filesystem": PolicyMode.CONFIRM,
"shell": PolicyMode.CONFIRM,
"sql": PolicyMode.CONFIRM,
"mcp": PolicyMode.CONFIRM,
"external_models": PolicyMode.DISABLED,
"desktop": PolicyMode.CONFIRM,
"browser": PolicyMode.CONFIRM,
"network": PolicyMode.CONFIRM,
"cost": PolicyMode.CONFIRM,
"system": PolicyMode.CONFIRM,
},
),
)
evaluator = StaticProjectPolicyEvaluator(projects={"default": project})
decision = evaluator.evaluate(
ActionDescriptor(
resource="external_models",
risk_level=RiskLevel.COST,
action_name="model.external",
),
"default",
)
assert decision.decision == PolicyDecisionType.DISABLED_BY_CONFIG