omk 0.5.0

A Rust runtime for Kimi CLI. Turns prompts into proof-backed engineering runs with gates, worktrees, and replay.
Documentation
use crate::runtime::goal::agent::{goal_agent_task_policy_payload, GoalAgentTaskProposal};
use crate::runtime::goal::budget::PerTaskBudgetSnapshot;

pub(super) fn task_dispatch_accepted_payload(
    proposal: &GoalAgentTaskProposal,
    snapshot: &PerTaskBudgetSnapshot,
) -> anyhow::Result<serde_json::Value> {
    let mut value = goal_agent_task_policy_payload(proposal, Some("accepted by goal policy"));
    if let serde_json::Value::Object(ref mut map) = value {
        map.insert(
            "budget_snapshot".to_string(),
            serde_json::to_value(snapshot)?,
        );
    }
    Ok(value)
}

pub(super) fn task_dispatch_rejected_payload(
    proposal: &GoalAgentTaskProposal,
    reason: &str,
    snapshot: Option<&PerTaskBudgetSnapshot>,
) -> anyhow::Result<serde_json::Value> {
    let mut value = goal_agent_task_policy_payload(proposal, Some(reason));
    if let serde_json::Value::Object(ref mut map) = value {
        if let Some(snapshot) = snapshot {
            map.insert(
                "budget_snapshot".to_string(),
                serde_json::to_value(snapshot)?,
            );
        }
    }
    Ok(value)
}