Taskbox

← Back to module

JSDoc

Classes

EventBus

class
class EventBus
Members

constructor

constructor
constructor(eventsJsonlPath: string): EventBus

emit

method
emit(event: unknown): void

on

method
on(cb: EventCallback): () => void

close

method
close(): void

events

method
events(): AsyncIterableIterator<TaskEvent>

[Symbol.asyncIterator]

method
[Symbol.asyncIterator](): AsyncIterableIterator<TaskEvent>

TaskboxError

class
class TaskboxError
Members

code

property
code: "E_SCHEMA_INVALID" | "E_RUNTIME_UNAVAILABLE" | "E_IMAGE_PULL_FAILED" | "E_PROXY_INVALID" | "E_PROXY_CONNECT_FAILED" | "E_NETWORK_FAILED" | "E_TIMEOUT" | "E_OUTPUT_TOO_LARGE" | "E_TOOL_EXIT_NONZERO" | "E_ARTIFACT_MISSING" | "E_UNSUPPORTED_FORMAT"

category

property
category: "validation" | "runtime" | "image" | "network" | "proxy" | "timeout" | "resource" | "tool" | "artifact" | "unknown"

retryable

property
retryable: boolean

details

property
details: Record<string, unknown>

stderrTail

property
stderrTail: string

suggestions

property
suggestions: string[]

constructor

constructor
constructor(init: TaskboxErrorInit): TaskboxError

serialize

method
serialize(): TaskboxErrorShape

Functions

newTaskId

function
newTaskId(): string

createWorkspace

function
createWorkspace(opts?: WorkspaceOptions): Workspace

wrap

function
wrap(err: unknown, fallback: { code: TaskboxErrorCode; category: TaskboxErrorCategory; }): TaskboxError

proxyToEnv

function
proxyToEnv(p: ProxyConfig): Record<string, string>

redactProxyUrl

function
redactProxyUrl(url: string): string

runTask

function
runTask(specInput: unknown, adapter: RuntimeAdapter, opts?: RunTaskOptions): Promise<TaskResult>

Types

TaskboxErrorCode

type
type TaskboxErrorCode = "E_SCHEMA_INVALID" | "E_RUNTIME_UNAVAILABLE" | "E_IMAGE_PULL_FAILED" | "E_PROXY_INVALID" | "E_PROXY_CONNECT_FAILED" | "E_NETWORK_FAILED" | "E_TIMEOUT" | "E_OUTPUT_TOO_LARGE" | "E_TOOL_EXIT_NONZERO" | "E_ARTIFACT_MISSING" | "E_UNSUPPORTED_FORMAT"

TaskboxErrorCategory

type
type TaskboxErrorCategory = "validation" | "runtime" | "image" | "network" | "proxy" | "timeout" | "resource" | "tool" | "artifact" | "unknown"

Interfaces

Workspace

interface
interface Workspace
Members

taskId

property
taskId: string

root

property
root: string

inputDir

property
inputDir: string

outputDir

property
outputDir: string

logsDir

property
logsDir: string

taskJsonPath

property
taskJsonPath: string

resultJsonPath

property
resultJsonPath: string

eventsJsonlPath

property
eventsJsonlPath: string

cleanup

method
cleanup(): Promise<void>

WorkspaceOptions

interface
interface WorkspaceOptions
Members

taskId

property
taskId: string

root

property
root: string

keep

property
keep: boolean

TaskboxErrorInit

interface
interface TaskboxErrorInit
Members

code

property
code: "E_SCHEMA_INVALID" | "E_RUNTIME_UNAVAILABLE" | "E_IMAGE_PULL_FAILED" | "E_PROXY_INVALID" | "E_PROXY_CONNECT_FAILED" | "E_NETWORK_FAILED" | "E_TIMEOUT" | "E_OUTPUT_TOO_LARGE" | "E_TOOL_EXIT_NONZERO" | "E_ARTIFACT_MISSING" | "E_UNSUPPORTED_FORMAT"

message

property
message: string

category

property
category: "validation" | "runtime" | "image" | "network" | "proxy" | "timeout" | "resource" | "tool" | "artifact" | "unknown"

retryable

property
retryable: boolean

details

property
details: Record<string, unknown>

stderrTail

property
stderrTail: string

suggestions

property
suggestions: string[]

RuntimeAdapter

interface
interface RuntimeAdapter
Members

name

property
name: string

available

method
available(): Promise<{ ok: boolean; details?: Record<string, unknown>; }>

prepareImage

method
prepareImage(ref: string): Promise<{ digest?: string; }>

runTask

method
runTask(args: { spec: TaskSpec; workspace: Workspace; bus: EventBus; signal?: AbortSignal; }): Promise<{ exitCode: number; durationMs: number; rawResult?: unknown; }>

RunTaskOptions

interface
interface RunTaskOptions
Members

bus

property
bus: EventBus

onEvent

property
onEvent: (e: TaskEvent) => void

signal

property
signal: AbortSignal

Constants

defaultImageRef

const
const defaultImageRef: "taskbox/kitchen-sink:0.1.0"