diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7415caaa..ba8c68f6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -959,7 +959,7 @@ uv run pytest -m "not live" **Unit Test** ```python import pytest -from framework.graph.node import Node +from framework.orchestrator import NodeSpec as Node def test_node_creation(): node = Node(id="test", name="Test Node", node_type="event_loop") @@ -977,8 +977,8 @@ async def test_node_execution(): **Integration Test** ```python import pytest -from framework.graph.executor import GraphExecutor -from framework.graph.node import Node +from framework.orchestrator.orchestrator import Orchestrator as GraphExecutor +from framework.orchestrator import NodeSpec as Node @pytest.mark.asyncio async def test_graph_execution_with_multiple_nodes(): diff --git a/core/framework/agents/queen/reference/anti_patterns.md b/core/framework/agents/queen/reference/anti_patterns.md index 1fa10218..5ca7eb89 100644 --- a/core/framework/agents/queen/reference/anti_patterns.md +++ b/core/framework/agents/queen/reference/anti_patterns.md @@ -13,7 +13,7 @@ 6. **Calling set_output in same turn as tool calls** — Call set_output in a SEPARATE turn. ## File Template Errors -7. **Wrong import paths** — Use `from framework.graph import ...`, NOT `from core.framework.graph import ...`. +7. **Wrong import paths** — Use `from framework.orchestrator import ...`, NOT `from framework.graph import ...` or `from core.framework...`. 8. **Missing storage path** — Agent class must set `self._storage_path = Path.home() / ".hive" / "agents" / "agent_name"`. 9. **Missing mcp_servers.json** — Without this, the agent has no tools at runtime. 10. **Bare `python` command** — Use `"command": "uv"` with args `["run", "python", ...]`. diff --git a/core/framework/agents/queen/reference/file_templates.md b/core/framework/agents/queen/reference/file_templates.md index 75435787..bdeed621 100644 --- a/core/framework/agents/queen/reference/file_templates.md +++ b/core/framework/agents/queen/reference/file_templates.md @@ -55,7 +55,7 @@ metadata = AgentMetadata() ```python """Node definitions for My Agent.""" -from framework.graph import NodeSpec +from framework.orchestrator import NodeSpec # Node 1: Process (autonomous entry node) # The queen handles intake and passes structured input via @@ -123,14 +123,15 @@ __all__ = ["process_node", "handoff_node"] from pathlib import Path -from framework.graph import EdgeSpec, EdgeCondition, Goal, SuccessCriterion, Constraint -from framework.graph.edge import GraphSpec -from framework.graph.executor import ExecutionResult -from framework.graph.checkpoint_config import CheckpointConfig +from framework.orchestrator import EdgeSpec, EdgeCondition, Goal, SuccessCriterion, Constraint +from framework.orchestrator.edge import GraphSpec +from framework.orchestrator.orchestrator import ExecutionResult +from framework.orchestrator.checkpoint_config import CheckpointConfig from framework.llm import LiteLLMProvider -from framework.runner.tool_registry import ToolRegistry -from framework.runtime.agent_runtime import AgentRuntime, create_agent_runtime -from framework.runtime.execution_stream import EntryPointSpec +from framework.loader.tool_registry import ToolRegistry +from framework.host.agent_host import AgentHost +from framework.host.execution_manager import EntryPointSpec + from .config import default_config, metadata from .nodes import process_node, handoff_node @@ -227,7 +228,7 @@ class MyAgent: tools = list(self._tool_registry.get_tools().values()) tool_executor = self._tool_registry.get_executor() self._graph = self._build_graph() - self._agent_runtime = create_agent_runtime( + self._agent_runtime = AgentHost( graph=self._graph, goal=self.goal, storage_path=self._storage_path, entry_points=[EntryPointSpec(id="default", name="Default", entry_node=self.entry_node, trigger_type="manual", isolation_level="shared")], @@ -460,8 +461,8 @@ def tui(): from framework.tui.app import AdenTUI from framework.llm import LiteLLMProvider from framework.runner.tool_registry import ToolRegistry - from framework.runtime.agent_runtime import create_agent_runtime - from framework.runtime.execution_stream import EntryPointSpec + from framework.host.agent_host import AgentHost + from framework.host.execution_manager import EntryPointSpec async def run_tui(): agent = MyAgent() @@ -471,7 +472,7 @@ def tui(): mcp_cfg = Path(__file__).parent / "mcp_servers.json" if mcp_cfg.exists(): agent._tool_registry.load_mcp_config(mcp_cfg) llm = LiteLLMProvider(model=agent.config.model, api_key=agent.config.api_key, api_base=agent.config.api_base) - runtime = create_agent_runtime( + runtime = AgentHost( graph=agent._build_graph(), goal=agent.goal, storage_path=storage, entry_points=[EntryPointSpec(id="start", name="Start", entry_node="process", trigger_type="manual", isolation_level="isolated")], llm=llm, tools=list(agent._tool_registry.get_tools().values()), tool_executor=agent._tool_registry.get_executor()) diff --git a/docs/configuration.md b/docs/configuration.md index f7dec79b..eebd3b2a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -28,7 +28,7 @@ The `quickstart.sh` script creates this file during setup. It stores the default } ``` -The default `max_tokens` value (8192) is defined as `DEFAULT_MAX_TOKENS` in `framework.graph.edge` and re-exported from `framework.graph`. Each agent's `RuntimeConfig` reads from this file at startup. To change defaults, either re-run `quickstart.sh` or edit the file directly. +The default `max_tokens` value (8192) is defined as `DEFAULT_MAX_TOKENS` in `framework.orchestrator.edge` and re-exported from `framework.orchestrator`. Each agent's `RuntimeConfig` reads from this file at startup. To change defaults, either re-run `quickstart.sh` or edit the file directly. ## Environment Variables @@ -149,7 +149,7 @@ Each agent package in `exports/` contains its own `config.py`: # exports/my_agent/config.py CONFIG = { "model": "anthropic/claude-sonnet-4-5-20250929", # Default LLM model - "max_tokens": 8192, # default: DEFAULT_MAX_TOKENS from framework.graph + "max_tokens": 8192, # default: DEFAULT_MAX_TOKENS from framework.orchestrator "temperature": 0.7, "tools": ["web_search", "pdf_read"], # MCP tools to enable "storage_path": "~/.hive/agents/my_agent/", # Runtime data location (default) diff --git a/docs/runtime_initialization.md b/docs/runtime_initialization.md index b529a754..c0470768 100644 --- a/docs/runtime_initialization.md +++ b/docs/runtime_initialization.md @@ -467,7 +467,7 @@ RESULT: Execution complete, event emitted, task ends STEP 12: GRAPH EXECUTION (THE ACTUAL AGENT LOGIC) =================================================================== -FILE: /Users/timothy/repo/hive/core/framework/graph/executor.py +FILE: core/framework/orchestrator/orchestrator.py FUNCTION: GraphExecutor.execute() (line 289) CALLED BY: ExecutionStream._run_execution() [line 644] @@ -588,13 +588,13 @@ Memory Flow: KEY FILE PATHS AND LINE NUMBERS =================================================================== -1. API Entry: /Users/timothy/repo/hive/core/framework/server/routes_sessions.py:103 -2. Session Manager: /Users/timothy/repo/hive/core/framework/server/session_manager.py:128 -3. Agent Runner Load: /Users/timothy/repo/hive/core/framework/runner/runner.py:789 -4. Agent Runner Setup: /Users/timothy/repo/hive/core/framework/runner/runner.py:1012 -5. Runtime Creation: /Users/timothy/repo/hive/core/framework/runtime/agent_runtime.py:1642 -6. Runtime Class: /Users/timothy/repo/hive/core/framework/runtime/agent_runtime.py:66 -7. Trigger Method: /Users/timothy/repo/hive/core/framework/runtime/agent_runtime.py:790 -8. Execution Stream: /Users/timothy/repo/hive/core/framework/runtime/execution_stream.py:134 -9. Graph Executor: /Users/timothy/repo/hive/core/framework/graph/executor.py:102 -10. Main Loop: /Users/timothy/repo/hive/core/framework/graph/executor.py:596 +1. API Entry: core/framework/server/routes_sessions.py:103 +2. Session Manager: core/framework/server/session_manager.py:128 +3. Agent Runner Load: core/framework/loader/agent_loader.py:789 +4. Agent Runner Setup: core/framework/host/agent_host.py:1012 +5. Runtime Creation: core/framework/host/agent_host.py:1642 +6. Runtime Class: core/framework/host/agent_host.py:66 +7. Trigger Method: core/framework/host/agent_host.py:790 +8. Execution Stream: core/framework/host/execution_manager.py:134 +9. Graph Executor: core/framework/orchestrator/orchestrator.py:102 +10. Main Loop: core/framework/orchestrator/orchestrator.py:596