zagens-cli 0.8.3

Zagens headless CLI + HTTP/SSE runtime sidecar (`zagens`, `zagens-runtime` binaries)
Documentation
//! Turn loop (P2 PR4): [`handle_deepseek_turn`] in `zagens-core`; sidecar L2 phases here.

pub(crate) mod host_impl;
mod tool_plans_exec;

use super::Engine;
use host_impl::app_mode_to_turn_loop;

impl Engine {
    #[must_use]
    pub(super) fn messages_with_turn_metadata(&self) -> Vec<crate::models::Message> {
        zagens_core::engine::messages_with_turn_metadata(&self.session, &self.config.workspace)
    }

    pub(super) async fn handle_deepseek_turn(
        &mut self,
        turn: &mut zagens_core::turn::TurnContext,
        tool_registry: Option<&crate::tools::ToolRegistry>,
        tools: Option<Vec<crate::models::Tool>>,
        mode: crate::agent_surface::AppMode,
        force_update_plan_first: bool,
    ) -> (zagens_core::turn::TurnOutcomeStatus, Option<String>) {
        zagens_core::engine::handle_deepseek_turn(
            self,
            turn,
            tool_registry,
            tools,
            app_mode_to_turn_loop(mode),
            force_update_plan_first,
        )
        .await
    }
}