| Tool Name: | hitl_request |
| Asset Name: | HITL Request |
| Description: | Ask a human for decisions, approvals or information. Delivers a durable request into the target user's h/ inbox and returns a Job that stays INPUT_REQUIRED until the human answers (Job COMPLETE with the response), rejects, or the request expires (Job FAILED). Asks are typed: text (free text), approval (yes/no), choice (pick one option), checkboxes (pick many). Approval asks and options may offer capability grants ({with, can, exp?}) that are issued ONLY if the human makes that choice and explicitly echoes the grant. Grant exp is unix seconds; omit it for the venue's 7-day default or set it explicitly to null to request no expiry. A venue may configure a finite HITL grant ceiling and rejects excessive offers before delivery. Omit user to ask your own owner. There is no framework timeout — set timeout (seconds) for time-sensitive asks and handle the FAILED outcome. |
| Adapter: | hitl |
| Asset Hash: | 0x225616cb4b363e71acb3653818ce9eb51119de1e38a8078ba21058908a4e855f |
| Property | Type | Description |
|---|---|---|
timeout | integer | Seconds until the request expires (Job FAILED, record status 'expired'). Omit for no expiry. |
description | string | Markdown context for the decision — the human sees only this record, not your conversation, so include everything needed to decide. |
asks* | array | One or more asks. Each: {id, type: text|approval|choice|checkboxes, prompt, required?, comment?, options? (choice/checkboxes: [{id, label, description?, grants?}]), grants? (approval only)}. |
title* | string | Short human-readable summary of what is being asked. |
user | string | Target responder DID. Omit to ask the calling user (an agent asking its owner). Cross-user delivery requires a hitl/request delegation from the target. |
Type: object
Schema: <code>{ "type": "object", "description": "On completion: {id, outcome: 'answer', answers: {askId: answer}, comments?, comment?, grants?, token?} — token is a UCAN carrying any echoed-and-approved grants." }</code>
This tool can be called via the MCP (Model Context Protocol) endpoint. Here are examples of how to use it:
POST to https://venue-2.covia.ai/mcp
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hitl_request",
"arguments": {
"input": "your input here"
}
}
}curl -X POST https://venue-2.covia.ai/mcp \\
-H "Content-Type: application/json" \\
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hitl_request",
"arguments": {
"input": "your input here"
}
}
}'import requests
import json
url = "https://venue-2.covia.ai/mcp"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hitl_request",
"arguments": {
"input": "your input here"
}
}
}
response = requests.post(url, json=payload)
result = response.json()
print(result)const fetch = require('node-fetch');
const url = 'https://venue-2.covia.ai/mcp';
const payload = {
jsonrpc: '2.0',
id: 1,
method: 'tools/call',
params: {
name: 'hitl_request',
arguments: {
input: 'your input here'
}
}
};
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));{
"name": "HITL Request",
"description": "Ask a human for decisions, approvals or information. Delivers a durable request into the target user's h/ inbox and returns a Job that stays INPUT_REQUIRED until the human answers (Job COMPLETE with the response), rejects, or the request expires (Job FAILED). Asks are typed: text (free text), approval (yes/no), choice (pick one option), checkboxes (pick many). Approval asks and options may offer capability grants ({with, can, exp?}) that are issued ONLY if the human makes that choice and explicitly echoes the grant. Grant exp is unix seconds; omit it for the venue's 7-day default or set it explicitly to null to request no expiry. A venue may configure a finite HITL grant ceiling and rejects excessive offers before delivery. Omit user to ask your own owner. There is no framework timeout — set timeout (seconds) for time-sensitive asks and handle the FAILED outcome.",
"creator": "Covia",
"operation": {
"adapter": "hitl:request",
"internal": false,
"toolName": "hitl_request",
"input": {
"type": "object",
"properties": {
"user": { "type": "string", "description": "Target responder DID. Omit to ask the calling user (an agent asking its owner). Cross-user delivery requires a hitl/request delegation from the target." },
"title": { "type": "string", "description": "Short human-readable summary of what is being asked." },
"description": { "type": "string", "description": "Markdown context for the decision — the human sees only this record, not your conversation, so include everything needed to decide." },
"asks": {
"type": "array",
"description": "One or more asks. Each: {id, type: text|approval|choice|checkboxes, prompt, required?, comment?, options? (choice/checkboxes: [{id, label, description?, grants?}]), grants? (approval only)}.",
"items": { "type": "object" }
},
"timeout": { "type": "integer", "description": "Seconds until the request expires (Job FAILED, record status 'expired'). Omit for no expiry." }
},
"required": ["title", "asks"]
},
"output": {
"type": "object",
"description": "On completion: {id, outcome: 'answer', answers: {askId: answer}, comments?, comment?, grants?, token?} — token is a UCAN carrying any echoed-and-approved grants."
}
}
}