harn-stdlib 0.10.155

Embedded Harn standard library source catalog
Documentation
import {
  AgentToolHandlerOutcome,
  AgentToolHandlerResult,
  agent_tool_handler_result_normalize,
} from "std/agent/tool_lifecycle"

fn command_outcome(result: dict) -> AgentToolHandlerOutcome {
  if result?.denial != nil || result?.status == "blocked" || result?.status == "requires_approval" {
    return "rejected"
  }
  if result?.status == "running" {
    return "ok"
  }
  if result?.timed_out == true || (result?.exit_code != nil && result.exit_code != 0) {
    return "error"
  }
  return "ok"
}

/**
 * Preserve the host command's outcome alongside formatted feedback.
 *
 * @effects: []
 * @errors: []
 */
pub fn __agent_host_command_result(
  rendered: unknown,
  data: dict,
) -> AgentToolHandlerResult<unknown> {
  return agent_tool_handler_result_normalize(rendered, data, command_outcome(data))
}