/**
* 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,
},
)
}