Skip to content

overlane assistant decide

Approve or reject a change the assistant proposed

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Approves or rejects a change the assistant proposed. Approving runs it with your role; rejecting drops it. Only the account the change was proposed to can decide it. A change that was already decided, has expired or is refused by read-only mode says so and changes nothing.

Usage

overlane assistant decide approval --decision approve|reject [--service URL] [--team TENANT_ID] [--dry-run]

Arguments

Argument Required Description
approval yes The approval ID printed by overlane assistant ask or shown by overlane assistant approval

Flags

Flag Type Required Default Description
--decision one of approve, reject yes approve to run the change, reject to drop it
--service string no The service address (default: OVERLANE_SERVICE_URL, then the project’s binding, then the hosted service)
--team string no The team (tenant) to act on (default: the one your token belongs to)
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane assistant decide apv_1 --decision approve
overlane assistant decide apv_1 --decision reject --dry-run

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 assistant decide.

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": {
        "kind": {
          "type": "string",
          "const": "approval"
        },
        "tenantId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "description": "tenant identifier"
        },
        "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,
              "maxLength": 128
            },
            "conversationId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "requestedBy": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
              "description": "user identifier"
            },
            "tool": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "summary": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            },
            "diff": {
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "field": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "before": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "after": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "field",
                  "before",
                  "after"
                ],
                "additionalProperties": false
              }
            },
            "argumentsDigest": {
              "type": "string",
              "pattern": "^sha256:[0-9a-f]{64}$"
            },
            "state": {
              "type": "string",
              "enum": [
                "pending",
                "approved",
                "executed",
                "rejected",
                "expired",
                "failed"
              ]
            },
            "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)))$"
            },
            "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)))$"
            },
            "decidedAt": {
              "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)))$"
            },
            "inverse": {
              "type": "object",
              "properties": {
                "tenantId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
                  "description": "tenant identifier"
                },
                "approvalId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "tool": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "arguments": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                },
                "summary": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                }
              },
              "required": [
                "tenantId",
                "approvalId",
                "tool",
                "arguments",
                "summary"
              ],
              "additionalProperties": false
            },
            "undoOf": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "required": [
            "tenantId",
            "id",
            "conversationId",
            "requestedBy",
            "tool",
            "summary",
            "diff",
            "argumentsDigest",
            "state",
            "createdAt",
            "expiresAt"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "kind",
        "tenantId",
        "approval"
      ],
      "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.