Opens a pending approval for one class and one subject. Use the class and subject from the refusal (approval_required) so the approval covers exactly that call. Another principal answers it; then retry the refused command with OVERLANE_APPROVAL set to the ID. Classes: memory_promotion, task_policy, issue_triage, release_promotion, bots, docs_merge, policy_change, token_mint, deletion, spend, secrets, production_deploy, autonomy_change. Payments and legal terms are human only and cannot be requested.
Usage
overlane autonomy approvals request --class CLASS --subject TEXT --summary TEXT [--project PROJECT_ID] [--run RUN_ID] [--dry-run]Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--class |
string | yes | The action class from the refusal | |
--subject |
string | yes | The subject from the refusal, copied exactly | |
--summary |
string | yes | What the action does and why, in one line | |
--project |
string | no | The project the action is in | |
--run |
string | no | The run you are in, so the approver can show it is independent | |
--dry-run |
boolean | no | Print the requests and file changes this command would make, then stop. Needs no credentials. |
Examples
overlane autonomy approvals request --class deletion --subject "memory.purge:all:-:-" --summary "Purge stale project memory"Behavior
- Effect:
write(changes local or hosted state). - Needs credentials: yes. Uses the network: yes.
- Supports
--dry-run: yes. Accepts--force: no. - Machine-readable description:
overlane schema autonomy approvals request.
Result
With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.
{
"anyOf": [
{
"type": "object",
"properties": {
"tenantId": {
"type": "string"
},
"approval": {
"type": "object",
"properties": {
"tenantId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
"description": "tenant identifier"
},
"id": {
"type": "string",
"minLength": 1
},
"class": {
"type": "string",
"enum": [
"memory_promotion",
"task_policy",
"issue_triage",
"release_promotion",
"bots",
"docs_merge",
"policy_change",
"token_mint",
"deletion",
"spend",
"secrets",
"production_deploy",
"autonomy_change",
"payments",
"legal_terms"
]
},
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
"description": "project identifier"
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"summary": {
"type": "string",
"minLength": 1,
"maxLength": 400
},
"actor": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"user",
"agent"
]
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"rootId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"runId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"leaseId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"pending",
"approved",
"denied",
"consumed",
"expired"
]
},
"approver": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"user",
"agent"
]
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"rootId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"runId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"leaseId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"evidence": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 400
}
},
"reason": {
"anyOf": [
{
"type": "string",
"maxLength": 400
},
{
"type": "null"
}
]
},
"decidedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"consumedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"expiresAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"createdAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"tenantId",
"id",
"class",
"subject",
"summary",
"actor",
"status",
"approver",
"evidence",
"reason",
"decidedAt",
"consumedAt",
"expiresAt",
"createdAt"
],
"additionalProperties": false
},
"next": {
"type": "string"
}
},
"required": [
"tenantId",
"approval",
"next"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"dryRun": {
"type": "boolean",
"const": true
},
"service": {
"type": "string"
},
"requests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"method": {
"type": "string"
},
"path": {
"type": "string"
},
"body": {},
"note": {
"type": "string"
}
},
"required": [
"method",
"path"
],
"additionalProperties": false
}
},
"commands": {
"type": "array",
"items": {
"type": "string"
}
},
"writes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"write",
"append",
"delete"
]
},
"description": {
"type": "string"
}
},
"required": [
"path",
"action",
"description"
],
"additionalProperties": false
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"dryRun",
"requests",
"commands",
"writes",
"notes"
],
"additionalProperties": false
}
]
}See exit codes for the status the process returns.