---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/sandbox/type-aliases/SandboxOutcome.md
description: Exhaustive model-facing sandbox outcome.
---

# Type Alias: SandboxOutcome

```ts
type SandboxOutcome =
  | {
      kind: "not-found";
      path: string;
    }
  | {
      axis: "read" | "write";
      kind: "denied-by-policy";
      path: string;
    }
  | {
      kind: "gate-declined";
      note?: string;
    }
  | {
      kind: "gate-unavailable";
      reason: "timeout" | "error";
    }
  | {
      bound: "maxTerminalPayloadBytes";
      kind: "over-budget";
      limit: number;
      observedAtLeast: number;
    }
  | {
      atDepth: number;
      bound: "maxDepth";
      kind: "scope-limited";
      shown: number;
    }
  | {
      kind: "not-a-regular-file";
      kind_: string;
      path: string;
    }
  | {
      kind: "is-a-directory";
      path: string;
    }
  | {
      input: string;
      kind: "path-rejected";
      reason: "escape" | "absolute-host" | "home" | "unc" | "device" | "nul";
    }
  | {
      kind: "outside-write-root";
      path: ModelPath;
      writeRoot: ModelWriteRoot;
    }
  | {
      exitCode: number;
      kind: "sandbox-violation";
      violations: readonly string[];
    }
  | {
      exitCode: number;
      kind: "nonzero-exit";
    }
  | {
      kind: "no-matches";
      pattern: string;
      scope: string;
    }
  | {
      kind: "unknown-media";
      mediaId: string;
    }
  | {
      detail: string;
      kind: "invalid-pattern";
      pattern: string;
    }
  | {
      kind: "not-a-directory";
      path: string;
    }
  | {
      detail: string;
      kind: "io-failure";
      path?: string;
    }
  | {
      kind: "aborted";
    }
  | {
      bound: "timeout_seconds";
      kind: "timed-out";
      limitSeconds: number;
    };
```

Defined in: [src/batteries/sandbox/narrator.ts:4](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/sandbox/narrator.ts#L4)

Exhaustive model-facing sandbox outcome.

## Union Members

### Type Literal

```ts
{
  kind: "not-found";
  path: string;
}
```

***

### Type Literal

```ts
{
  axis: "read" | "write";
  kind: "denied-by-policy";
  path: string;
}
```

***

### Type Literal

```ts
{
  kind: "gate-declined";
  note?: string;
}
```

***

### Type Literal

```ts
{
  kind: "gate-unavailable";
  reason: "timeout" | "error";
}
```

***

### Type Literal

```ts
{
  bound: "maxTerminalPayloadBytes";
  kind: "over-budget";
  limit: number;
  observedAtLeast: number;
}
```

***

### Type Literal

```ts
{
  atDepth: number;
  bound: "maxDepth";
  kind: "scope-limited";
  shown: number;
}
```

***

### Type Literal

```ts
{
  kind: "not-a-regular-file";
  kind_: string;
  path: string;
}
```

***

### Type Literal

```ts
{
  kind: "is-a-directory";
  path: string;
}
```

***

### Type Literal

```ts
{
  input: string;
  kind: "path-rejected";
  reason: "escape" | "absolute-host" | "home" | "unc" | "device" | "nul";
}
```

***

### Type Literal

```ts
{
  kind: "outside-write-root";
  path: ModelPath;
  writeRoot: ModelWriteRoot;
}
```

Model-facing root, conventionally `/`; NEVER the configured absolute host path.

***

### Type Literal

```ts
{
  exitCode: number;
  kind: "sandbox-violation";
  violations: readonly string[];
}
```

***

### Type Literal

```ts
{
  exitCode: number;
  kind: "nonzero-exit";
}
```

***

### Type Literal

```ts
{
  kind: "no-matches";
  pattern: string;
  scope: string;
}
```

***

### Type Literal

```ts
{
  kind: "unknown-media";
  mediaId: string;
}
```

***

### Type Literal

```ts
{
  detail: string;
  kind: "invalid-pattern";
  pattern: string;
}
```

***

### Type Literal

```ts
{
  kind: "not-a-directory";
  path: string;
}
```

***

### Type Literal

```ts
{
  detail: string;
  kind: "io-failure";
  path?: string;
}
```

***

### Type Literal

```ts
{
  kind: "aborted";
}
```

***

### Type Literal

```ts
{
  bound: "timeout_seconds";
  kind: "timed-out";
  limitSeconds: number;
}
```
