"""Fluent builders for constructing core objects.

This module provides the fluent/builder APIs for constructing:
- Pathways (computation graphs)
- Agents (agent definitions)
- Skills (domain knowledge packages)

Builders are the primary programmatic interface for constructing
typed graph structures in albusOS.

Usage:
    from core.builders import PathwayBuilder, AgentBuilder, SkillBuilder

    # Build a pathway
    pathway = (
        PathwayBuilder("my-pathway")
        .description("Search and summarize")
        .tool("search", "web.search", args={"query": "{{input.query}}"})
        .llm("summarize", prompt="Summarize: {{search.output}}")
        .connect("input", "search")
        .connect("search", "summarize")
        .connect("summarize", "output")
        .build()
    )

    # Build an agent
    agent = (
        AgentBuilder()
        .id("researcher")
        .name("Research Agent")
        .instructions("You are a research specialist.")
        .tool("web.*")
        .tool("memory.*")
        .max_steps(10)
        .build()
    )

    # Build a skill
    skill = (
        SkillBuilder()
        .id("research")
        .name("Research Skill")
        .description("Domain knowledge for research tasks")
        .instructions("Use web.search for queries, web.fetch for details...")
        .build()
    )
"""

from core.builders.agent import AgentBuilder, agent_builder
from core.builders.pathway import PathwayBuilder, pathway_builder
from core.builders.skill import SkillBuilder, skill_builder
from core.pathways.pathway import PathwayMode

__all__ = [
    # Agent building
    "AgentBuilder",
    # Pathway building
    "PathwayBuilder",
    "PathwayMode",
    # Skill building
    "SkillBuilder",
    "agent_builder",
    "pathway_builder",
    "skill_builder",
]
