internal/approvalgate/continuation.go
Rama main · réplica de lectura del repositorio original.
package approvalgate
import (
"encoding/json"
"github.com/yeomyeonggeori/blueprotocol/agentcontract"
"github.com/yeomyeonggeori/blueprotocol/holdrecord"
)
type ApprovedCall struct {
HoldID string
ToolName string
ToolInput json.RawMessage
}
func PendingHeldCall(taskEvents []agentcontract.TaskEvent) (agentcontract.HeldCall, bool) {
pendingHold, isPending := holdrecord.LatestHold(holdrecord.Holds(taskEvents), holdrecord.StatePending)
return pendingHold.Call, isPending
}
func DeclinedCallNote(taskEvents []agentcontract.TaskEvent) string {
holds := holdrecord.Holds(taskEvents)
if len(holds) == 0 || holds[len(holds)-1].State != holdrecord.StateRejected {
return ""
}
return "The requester declined the " + holds[len(holds)-1].Call.ToolName + " call you asked about. Do not attempt it again; continue without it or stop and say why you cannot."
}