Refactor subagent and workflow domain models; migrate access tiers and events to domain module

- Moved `AccessTier` and `SubagentEvent` enums to `zesdex_domain::subagent`.
- Consolidated workflow-related types into `zesdex_domain::workflow`.
- Updated references across the codebase to use the new domain models.
- Refactored tool execution logic to utilize a new `ToolExecutor` trait.
- Enhanced `AgentTurnService` to handle tool calls and events more effectively.
- Adjusted API handlers and state management to align with new domain structure.
This commit is contained in:
asepharyana
2026-07-21 06:42:53 +07:00
parent 552bc5bc63
commit 802346f909
31 changed files with 968 additions and 870 deletions
+4 -4
View File
@@ -121,7 +121,7 @@ pub async fn chat_completions_handler(
let llm_client = if model == state.llm_client.model {
&state.llm_client
} else {
temp_client = zesdex_infrastructure::llm::LlmClient::new(
temp_client = zesdex_infrastructure::llm::provider::LlmClient::new(
state.llm_client.api_key.clone(),
model,
Some(state.llm_client.base_url.clone()),
@@ -129,14 +129,14 @@ pub async fn chat_completions_handler(
&temp_client
};
use zesdex_application::ports::ProviderService;
let (response, usage) = llm_client
.chat_with_tools_non_streaming(
.chat(
&messages,
None, // No tool definitions for basic chat
req.max_tokens,
req.temperature,
None, // No abort flag
)
).await
.map_err(|e| ApiError::ChatProxy(format!("LLM request failed: {e}")))?;
let (prompt_tokens, completion_tokens) = usage.unwrap_or((0, 0));