harn-stdlib 0.8.58

Embedded Harn standard library source catalog
Documentation
/**
 * external_agent_delegate.
 *
 * Returns a typed external-agent delegation envelope. The first call normally
 * returns `status: "checkpoint_required"` with a remote plan; call
 * `external_agent_approve` on that envelope after host approval to dispatch.
 *
 * @effects: [network, agent]
 * @allocation: heap
 * @errors: [invalid_request, transport, protocol]
 * @api_stability: experimental
 * @example: external_agent_delegate("127.0.0.1:8080", "review this change", {budget: {max_usd: 0.25}})
 */
pub fn external_agent_delegate(target, task, options = nil) {
  let opts = options ?? {}
  let key = opts?.idempotency_key ?? ("external-agent-" + uuid_v7())
  let checkpoint = opts?.checkpoint ?? {}
  return __external_agent_delegate(
    task,
    opts + {target: target, idempotency_key: key, checkpoint: checkpoint},
  )
}

/**
 * external_agent_approve.
 *
 * Replays an external-agent checkpoint envelope with `checkpoint.approved`
 * set, preserving the same idempotency key so dispatch happens at most once.
 *
 * @effects: [network, agent]
 * @allocation: heap
 * @errors: [invalid_request, transport, protocol]
 * @api_stability: experimental
 * @example: external_agent_approve(checkpoint, {checkpoint: {approved_by: "operator"}})
 */
pub fn external_agent_approve(envelope, options = nil) {
  let opts = options ?? {}
  let checkpoint_base = opts?.checkpoint ?? {}
  let checkpoint = checkpoint_base + {approved: true}
  let allow_cleartext = opts?.allow_cleartext ?? envelope?.allow_cleartext ?? false
  return __external_agent_delegate(
    envelope?.task,
    opts
      + {
      target: envelope?.target,
      allow_cleartext: allow_cleartext,
      idempotency_key: envelope?.idempotency_key,
      budget: envelope?.budget,
      expected_scope: envelope?.checkpoint?.expected_scope ?? [],
      checkpoint: checkpoint,
    },
  )
}