proyecto generalizado

This commit is contained in:
2026-05-23 16:44:45 +02:00
parent 2f990ea636
commit b4964261ec
94 changed files with 1032 additions and 320 deletions
+2 -2
View File
@@ -4,7 +4,7 @@ from pathlib import Path
import pytest
from agentforge_core.api import deps
from forja_core.api import deps
@pytest.fixture
@@ -12,7 +12,7 @@ def integration_client(tmp_path: Path, monkeypatch: pytest.MonkeyPatch): # type
"""Cliente FastAPI con env apuntando a los assets reales del repo."""
from fastapi.testclient import TestClient
from agentforge_core.main import create_app
from forja_core.main import create_app
repo_root = Path(__file__).parent.parent.parent
monkeypatch.setenv("DATA_DIR", str(tmp_path))
@@ -19,8 +19,8 @@ EXAMPLES = (
def test_resume_tras_recreacion_del_app(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
from fastapi.testclient import TestClient
from agentforge_core.api import deps
from agentforge_core.main import create_app
from forja_core.api import deps
from forja_core.main import create_app
repo_root = Path(__file__).parent.parent.parent
monkeypatch.setenv("DATA_DIR", str(tmp_path))
+2 -2
View File
@@ -5,8 +5,8 @@ from pathlib import Path
import pytest
from fastapi.testclient import TestClient
from agentforge_core.api import deps
from agentforge_core.main import create_app
from forja_core.api import deps
from forja_core.main import create_app
FIXTURES = Path(__file__).parent.parent / "fixtures"
+2 -2
View File
@@ -5,8 +5,8 @@ from pathlib import Path
import pytest
from fastapi.testclient import TestClient
from agentforge_core.api import deps
from agentforge_core.main import create_app
from forja_core.api import deps
from forja_core.main import create_app
FIXTURES = Path(__file__).parent.parent / "fixtures"
+4 -4
View File
@@ -7,10 +7,10 @@ from uuid import uuid4
import pytest
from fastapi.testclient import TestClient
from agentforge_core.api import deps
from agentforge_core.api.persistence import append_violation
from agentforge_core.domain.guardrail import GuardrailViolation
from agentforge_core.main import create_app
from forja_core.api import deps
from forja_core.api.persistence import append_violation
from forja_core.domain.guardrail import GuardrailViolation
from forja_core.main import create_app
FIXTURES = Path(__file__).parent.parent / "fixtures"
+3 -3
View File
@@ -4,7 +4,7 @@ import os
from pathlib import Path
from unittest.mock import patch
from agentforge_core.config import Settings
from forja_core.config import Settings
def test_settings_defaults_seguros() -> None:
@@ -16,6 +16,6 @@ def test_settings_defaults_seguros() -> None:
def test_settings_data_dir_se_resuelve() -> None:
with patch.dict(os.environ, {"DATA_DIR": "/tmp/agentforge-test"}, clear=True):
with patch.dict(os.environ, {"DATA_DIR": "/tmp/forja-test"}, clear=True):
s = Settings(_env_file=None) # type: ignore[call-arg]
assert s.data_dir == Path("/tmp/agentforge-test")
assert s.data_dir == Path("/tmp/forja-test")
+1 -1
View File
@@ -14,7 +14,7 @@ from collections.abc import Callable
import httpx
import pytest
from agentforge_dashboard.client import CoreClient
from forja_dashboard.client import CoreClient
def _client_with(handler: Callable[[httpx.Request], httpx.Response]) -> CoreClient:
+1 -1
View File
@@ -5,7 +5,7 @@ from datetime import UTC, datetime
import pytest
from pydantic import ValidationError
from agentforge_core.domain.agent import (
from forja_core.domain.agent import (
AgentDefinition,
AgentVersionMeta,
LLMConfig,
+1 -1
View File
@@ -3,7 +3,7 @@
from datetime import UTC, datetime
from uuid import uuid4
from agentforge_core.domain.execution import (
from forja_core.domain.execution import (
AgentExecution,
AgentExecutionSummary,
DecisionStep,
+1 -1
View File
@@ -6,7 +6,7 @@ from uuid import uuid4
import pytest
from pydantic import ValidationError
from agentforge_core.domain.guardrail import GuardrailViolation
from forja_core.domain.guardrail import GuardrailViolation
def test_guardrail_violation_minimo_valido() -> None:
+1 -1
View File
@@ -1,6 +1,6 @@
"""Tests del modelo PolicyDefinition."""
from agentforge_core.domain.policy import PolicyDefinition, PolicyValidator
from forja_core.domain.policy import PolicyDefinition, PolicyValidator
def test_policy_definition_default_fail_closed() -> None:
+2 -2
View File
@@ -4,8 +4,8 @@ from uuid import uuid4
import pytest
from agentforge_core.domain.policy import PolicyDefinition, PolicyValidator
from agentforge_core.guardrails.guardrails_ai import GuardrailsAIEngine
from forja_core.domain.policy import PolicyDefinition, PolicyValidator
from forja_core.guardrails.guardrails_ai import GuardrailsAIEngine
@pytest.fixture
+4 -4
View File
@@ -4,10 +4,10 @@ from uuid import uuid4
import pytest
from agentforge_core.domain.policy import PolicyDefinition
from agentforge_core.guardrails.composite import CompositeGuardrailEngine
from agentforge_core.guardrails.guardrails_ai import GuardrailsAIEngine
from agentforge_core.guardrails.nemo import NeMoGuardrailsEngine
from forja_core.domain.policy import PolicyDefinition
from forja_core.guardrails.composite import CompositeGuardrailEngine
from forja_core.guardrails.guardrails_ai import GuardrailsAIEngine
from forja_core.guardrails.nemo import NeMoGuardrailsEngine
@pytest.fixture
+1 -1
View File
@@ -2,7 +2,7 @@
from fastapi.testclient import TestClient
from agentforge_core.main import create_app
from forja_core.main import create_app
def test_health_responde_ok() -> None:
+1 -1
View File
@@ -1,6 +1,6 @@
"""Test de los modelos base del proveedor LLM."""
from agentforge_core.llm.base import CompletionResult, Message
from forja_core.llm.base import CompletionResult, Message
def test_message_serializable() -> None:
+3 -3
View File
@@ -2,9 +2,9 @@
import pytest
from agentforge_core.config import Settings
from agentforge_core.llm.factory import build_llm_provider
from agentforge_core.llm.mock import MockProvider
from forja_core.config import Settings
from forja_core.llm.factory import build_llm_provider
from forja_core.llm.mock import MockProvider
def test_factory_devuelve_mock_por_defecto() -> None:
+2 -2
View File
@@ -4,8 +4,8 @@ import json
import pytest
from agentforge_core.llm.base import Message
from agentforge_core.llm.mock import MockProvider
from forja_core.llm.base import Message
from forja_core.llm.mock import MockProvider
@pytest.fixture
+1 -1
View File
@@ -6,7 +6,7 @@ import json
import structlog
from agentforge_core.observability.logging import bind_trace_id, configure_logging
from forja_core.observability.logging import bind_trace_id, configure_logging
def test_configure_logging_emite_json(capsys) -> None: # type: ignore[no-untyped-def]
+3 -3
View File
@@ -5,14 +5,14 @@ from datetime import UTC, datetime
from pathlib import Path
from uuid import uuid4
from agentforge_core.api.persistence import (
from forja_core.api.persistence import (
append_execution,
append_violation,
read_execution_summaries,
read_violations,
)
from agentforge_core.domain.execution import AgentExecution
from agentforge_core.domain.guardrail import GuardrailViolation
from forja_core.domain.execution import AgentExecution
from forja_core.domain.guardrail import GuardrailViolation
def _violation() -> GuardrailViolation:
+1 -1
View File
@@ -4,7 +4,7 @@ from pathlib import Path
import pytest
from agentforge_core.registry.policy_store import FileSystemPolicyStore
from forja_core.registry.policy_store import FileSystemPolicyStore
FIXTURES = Path(__file__).parent.parent / "fixtures" / "policies"
+2 -2
View File
@@ -4,8 +4,8 @@ import shutil
from datetime import UTC, datetime
from pathlib import Path
from agentforge_core.domain.agent import AgentDefinition, LLMConfig
from agentforge_core.registry.repository import FileSystemAgentRegistry
from forja_core.domain.agent import AgentDefinition, LLMConfig
from forja_core.registry.repository import FileSystemAgentRegistry
FIXTURES = Path(__file__).parent.parent / "fixtures" / "agents"
+6 -6
View File
@@ -4,12 +4,12 @@ from datetime import UTC, datetime
from pathlib import Path
from uuid import uuid4
from agentforge_core.domain.agent import AgentDefinition, LLMConfig
from agentforge_core.domain.policy import PolicyDefinition
from agentforge_core.guardrails.guardrails_ai import GuardrailsAIEngine
from agentforge_core.llm.mock import MockProvider
from agentforge_core.runtime.checkpointer import build_checkpointer
from agentforge_core.runtime.graph import build_graph
from forja_core.domain.agent import AgentDefinition, LLMConfig
from forja_core.domain.policy import PolicyDefinition
from forja_core.guardrails.guardrails_ai import GuardrailsAIEngine
from forja_core.llm.mock import MockProvider
from forja_core.runtime.checkpointer import build_checkpointer
from forja_core.runtime.graph import build_graph
def _agent() -> AgentDefinition:
+3 -3
View File
@@ -4,9 +4,9 @@ from uuid import uuid4
import pytest
from agentforge_core.domain.policy import PolicyDefinition, PolicyValidator
from agentforge_core.guardrails.guardrails_ai import GuardrailsAIEngine
from agentforge_core.runtime.nodes import build_node_validate_input
from forja_core.domain.policy import PolicyDefinition, PolicyValidator
from forja_core.guardrails.guardrails_ai import GuardrailsAIEngine
from forja_core.runtime.nodes import build_node_validate_input
@pytest.fixture
+5 -5
View File
@@ -6,11 +6,11 @@ from uuid import uuid4
import pytest
from agentforge_core.domain.agent import AgentDefinition, LLMConfig
from agentforge_core.domain.policy import PolicyDefinition, PolicyValidator
from agentforge_core.guardrails.guardrails_ai import GuardrailsAIEngine
from agentforge_core.llm.mock import MockProvider
from agentforge_core.runtime.orchestrator import AgentOrchestrator
from forja_core.domain.agent import AgentDefinition, LLMConfig
from forja_core.domain.policy import PolicyDefinition, PolicyValidator
from forja_core.guardrails.guardrails_ai import GuardrailsAIEngine
from forja_core.llm.mock import MockProvider
from forja_core.runtime.orchestrator import AgentOrchestrator
def _agent(threshold: int = 4) -> AgentDefinition: