> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toolshed.philo.ventures/llms.txt
> Use this file to discover all available pages before exploring further.

# resume

> Approve or deny a pending elicitation to continue a suspended execution.

## Overview

When a `run` script calls a destructive tool, execution pauses and returns a `paused` result with an `executionId`. Use `resume` to approve or deny the pending action.

## Input

| Parameter      | Type      | Required | Description                                            |
| -------------- | --------- | -------- | ------------------------------------------------------ |
| `execution_id` | `string`  | Yes      | The execution ID from the paused run                   |
| `approved`     | `boolean` | Yes      | Whether to approve the pending action                  |
| `data`         | `object`  | No       | Additional form data if the elicitation type is `form` |

## Annotations

* `destructiveHint: true`
* `openWorldHint: true`

## Output

### Approved

```json theme={null}
{
  "executionId": "abc-123",
  "resolved": true,
  "approved": true,
  "message": "Approved. Execution will continue."
}
```

### Denied

```json theme={null}
{
  "executionId": "abc-123",
  "resolved": true,
  "approved": false,
  "message": "Denied. Execution will fail with a denial error."
}
```

### Not found

```json theme={null}
{
  "executionId": "abc-123",
  "resolved": false,
  "error": "No pending elicitation found with this ID. It may have already been resolved or expired."
}
```

## Resolution flow

1. The `resume` tool first checks the local `ElicitationEngine` for a matching pending elicitation
2. If found locally, it resolves the pending promise, allowing the paused script to continue
3. If not found locally, it falls back to the `resumeRemote` callback (e.g., posting to the hosted API)
4. If neither is available, it returns an error
