Skip to content

overlane autonomy approvals request

Ask an independent agent or a person to approve an action in an action class

Updated View as MarkdownOpen in ChatGPTOpen in Claude

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.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.