feat: complete Epic 1 production foundation
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
use crank_core::{ApprovalRequest, OperationApprovalPolicy};
|
||||
use crank_core::{ApprovalRequest, OperationApprovalPolicy, sanitize_invocation_preview};
|
||||
use crank_registry::PublishedAgentTool;
|
||||
use serde_json::{Value, json};
|
||||
|
||||
@@ -30,9 +30,25 @@ pub(super) fn approval_required_response(
|
||||
"expires_at": approval.expires_at,
|
||||
"risk_level": approval.risk_level,
|
||||
"payload_preview": if policy.show_payload_preview {
|
||||
approval.request_payload.clone()
|
||||
sanitize_invocation_preview(&approval.request_payload)
|
||||
} else {
|
||||
Value::Null
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
pub(super) fn approval_history_request_preview(approval: &ApprovalRequest) -> Value {
|
||||
json!({
|
||||
"status": "approval_required",
|
||||
"approval_id": approval.id.as_str(),
|
||||
"risk_level": approval.risk_level,
|
||||
})
|
||||
}
|
||||
|
||||
pub(super) fn approval_history_response_preview(response: &Value) -> Value {
|
||||
json!({
|
||||
"status": response.get("status").cloned().unwrap_or(Value::Null),
|
||||
"approval_id": response.get("approval_id").cloned().unwrap_or(Value::Null),
|
||||
"risk_level": response.get("risk_level").cloned().unwrap_or(Value::Null),
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user