Skip to content

Escape Layer Reference

External integrations with capability-based security.

Escape Definition

escape SendEmail {
  capability Email.Send

  function send(to: Email, body: String) -> Result[Void, Error]
    nondeterministic: true
    timeout: 5s

  adapter typescript {
    implementation "sendgrid"
    configuration {
      apiKey: env.SENDGRID_API_KEY
    }
  }
}

Capabilities

capability Category.Action

Common capabilities: - Email.Send - Database.Query - FileSystem.Read - FileSystem.Write - Network.HTTP - Payment.Process

Function Attributes

nondeterministic: true  // Has side effects or randomness
timeout: 5s             // Maximum execution time
retries: 3              // Retry attempts

Adapters

TypeScript

adapter typescript {
  implementation "package-name"
  function "functionName"
  configuration {
    apiKey: env.API_KEY
  }
}

Rust

adapter rust {
  implementation "crate-name"
  crate "crate-name"
  module "module::path"
}

Python

adapter python {
  implementation "package-name"
  function "function_name"
}

Sandbox Constraints

escape FileSystem {
  function write(path: String) -> Result[Void, Error]
    sandbox {
      allowedPaths: ["/tmp", "/var/app"]
      maxFileSize: 10MB
    }
}

Resource Management

function query(sql: String) -> Result[Rows, Error]
  cleanup {
    onSuccess: close()
    onError: rollback() >> close()
  }

Back to Overview