logic-engine / ace /__init__.py
ghostdrive1's picture
Upload folder using huggingface_hub
116524e verified
Raw
History Blame Contribute Delete
6.3 kB
"""ACE — Agentic Context Engine.
All public symbols are lazily imported to keep ``import ace`` fast.
Direct attribute access (``ace.ACE``, ``from ace import ACE``)
works — the underlying module is loaded on first use.
"""
from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
# Static analysis / IDE autocomplete — never executed at runtime.
from pipeline import Branch, MergeStrategy, Pipeline, SampleResult, StepProtocol
from .core import (
ACEStepContext,
EnvironmentResult,
InsightSource,
Sample,
SimpleEnvironment,
Skill,
Skillbook,
SkillbookView,
TaskEnvironment,
TraceIdentity,
UpdateBatch,
UpdateOperation,
)
from .deduplication import DeduplicationManager, SimilarityDetector
from .implementations import Agent, Reflector, SkillManager
from .integrations import wrap_skillbook_context
from .protocols import DeduplicationConfig
from .providers import ACEModelConfig, ModelConfig
from .steps.rr_step import RRConfig, RRStep
from .tracing import configure as configure_tracing
from .runners import (
ACE,
ACELiteLLM,
ACERunner,
BrowserUse,
ClaudeCode,
LangChain,
TraceAnalyser,
)
from .steps import (
AgentStep,
CheckpointStep,
DeduplicateStep,
EvaluateStep,
ExportSkillbookMarkdownStep,
LoadTracesStep,
ObservabilityStep,
PersistStep,
ReflectStep,
UpdateStep,
learning_tail,
)
# ---- lazy import mapping: name -> (module_path, attribute) ----------------
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
# Pipeline engine (re-exported from pipeline/)
"Pipeline": ("pipeline", "Pipeline"),
"Branch": ("pipeline", "Branch"),
"MergeStrategy": ("pipeline", "MergeStrategy"),
"StepProtocol": ("pipeline", "StepProtocol"),
"SampleResult": ("pipeline", "SampleResult"),
# ACE context
"ACEStepContext": ("ace.core", "ACEStepContext"),
"SkillbookView": ("ace.core", "SkillbookView"),
# Core data types
"InsightSource": ("ace.core", "InsightSource"),
"Skill": ("ace.core", "Skill"),
"Skillbook": ("ace.core", "Skillbook"),
"TraceIdentity": ("ace.core", "TraceIdentity"),
"UpdateOperation": ("ace.core", "UpdateOperation"),
"UpdateBatch": ("ace.core", "UpdateBatch"),
"Sample": ("ace.core", "Sample"),
"EnvironmentResult": ("ace.core", "EnvironmentResult"),
"TaskEnvironment": ("ace.core", "TaskEnvironment"),
"SimpleEnvironment": ("ace.core", "SimpleEnvironment"),
# Implementations
"Agent": ("ace.implementations", "Agent"),
"Reflector": ("ace.implementations", "Reflector"),
"SkillManager": ("ace.implementations", "SkillManager"),
# Deduplication
"DeduplicationConfig": ("ace.protocols", "DeduplicationConfig"),
"DeduplicationManager": ("ace.deduplication", "DeduplicationManager"),
"SimilarityDetector": ("ace.deduplication", "SimilarityDetector"),
# Integrations
"wrap_skillbook_context": ("ace.integrations", "wrap_skillbook_context"),
# Config
"ModelConfig": ("ace.providers", "ModelConfig"),
"ACEModelConfig": ("ace.providers", "ACEModelConfig"),
# Runners
"ACE": ("ace.runners", "ACE"),
"ACELiteLLM": ("ace.runners", "ACELiteLLM"),
"ACERunner": ("ace.runners", "ACERunner"),
"BrowserUse": ("ace.runners", "BrowserUse"),
"ClaudeCode": ("ace.runners", "ClaudeCode"),
"LangChain": ("ace.runners", "LangChain"),
"TraceAnalyser": ("ace.runners", "TraceAnalyser"),
# Steps
"AgentStep": ("ace.steps", "AgentStep"),
"EvaluateStep": ("ace.steps", "EvaluateStep"),
"ReflectStep": ("ace.steps", "ReflectStep"),
"UpdateStep": ("ace.steps", "UpdateStep"),
"DeduplicateStep": ("ace.steps", "DeduplicateStep"),
"CheckpointStep": ("ace.steps", "CheckpointStep"),
"LoadTracesStep": ("ace.steps", "LoadTracesStep"),
"ExportSkillbookMarkdownStep": ("ace.steps", "ExportSkillbookMarkdownStep"),
"ObservabilityStep": ("ace.steps", "ObservabilityStep"),
"PersistStep": ("ace.steps", "PersistStep"),
"learning_tail": ("ace.steps", "learning_tail"),
# Recursive Reflector
"RRStep": ("ace.steps.rr_step", "RRStep"),
"RRConfig": ("ace.steps.rr_step", "RRConfig"),
# Tracing
"configure_tracing": ("ace.tracing", "configure"),
}
def __getattr__(name: str) -> object:
if name in _LAZY_IMPORTS:
module_path, attr = _LAZY_IMPORTS[name]
import importlib
module = importlib.import_module(module_path)
value = getattr(module, attr)
# Cache on the module so __getattr__ is only called once per name.
globals()[name] = value
return value
raise AttributeError(f"module 'ace' has no attribute {name!r}")
__all__ = [
# Pipeline composition
"Pipeline",
"Branch",
"MergeStrategy",
"StepProtocol",
"SampleResult",
# ACE context
"ACEStepContext",
"SkillbookView",
# Core data types
"InsightSource",
"Skill",
"Skillbook",
"TraceIdentity",
"UpdateOperation",
"UpdateBatch",
# Environments
"Sample",
"EnvironmentResult",
"TaskEnvironment",
"SimpleEnvironment",
# Implementations
"Agent",
"Reflector",
"SkillManager",
# Config
"ModelConfig",
"ACEModelConfig",
# Runners
"ACE",
"ACELiteLLM",
"ACERunner",
"BrowserUse",
"ClaudeCode",
"LangChain",
"TraceAnalyser",
# Steps
"AgentStep",
"EvaluateStep",
"ReflectStep",
"UpdateStep",
"DeduplicateStep",
"CheckpointStep",
"LoadTracesStep",
"ExportSkillbookMarkdownStep",
"ObservabilityStep",
"PersistStep",
"learning_tail",
# Recursive Reflector
"RRStep",
"RRConfig",
# Deduplication
"DeduplicationConfig",
"DeduplicationManager",
"SimilarityDetector",
# Tracing
"configure_tracing",
# Utilities
"wrap_skillbook_context",
]