# Limits and cancellation

> @faustine-ai/browser-sandbox documentation · https://browser-sandbox.faustine.ai/docs/limits/ · source: README.md on GitHub (https://github.com/faustine-ai/browser-sandbox)

```ts
createSandbox({
  frame: { url: '/sandbox' },
  caps: {
    timeoutMs: 60_000,          // wall clock of the run; pauses while a human decides
    busyMs: 10_000,             // longest the code may run with no function call in flight
    maxOps: 200,                // function calls per run
    maxOutputBytes: 1_000_000,  // the run value and each call result
    maxInputBytes: 1_000_000,   // each call input
    maxLogLines: 200,           // console lines kept; the rest counted in stats.logsDropped
    maxLogChars: 262_144,
  },
});
```

These are the defaults. Two clocks: `timeoutMs` bounds the whole run (time
inside your functions counts, since a hung endpoint must still end the
run; time waiting for a human does not); `busyMs` bounds how long the
worker may run with nothing outstanding, which is what ends `while (true)`
in seconds without starving a run that chains slow calls. Any limit
terminates the worker and resolves `status: "limit"`; the message is
worded for a model.

An `AbortSignal` in `run` resolves `status: "aborted"` and terminates the
worker, mid-loop if need be.
