ResourceAdapter
@totemsdk/edge / ResourceAdapter
Interface: ResourceAdapter
Resource adapter boundary — purchasing core must not know how every resource executes.
Methods
close()?
optionalclose(handle):Promise<void>
Parameters
handle
Returns
Promise<void>
meter()?
optionalmeter(handle):AsyncIterable<UsageEvent>
Parameters
handle
Returns
AsyncIterable<UsageEvent>
recover()?
optionalrecover(reference,agreement,context):Promise<{handle:ResourceHandle;state:"ACTIVE"; } | {result?:unknown;state:"COMPLETED"; } | {state:"MISSING"; } | {state:"UNKNOWN"; }>
Recover a resource that may have been started before a crash.
reference is the stable external identity persisted in the purchase
record (e.g. compute job ID, container ID, storage lease ID, robot task
ID). The adapter must NOT start another identical resource — it reconnects
to the existing one.
Returns: ACTIVE — the resource is running; a usable handle is returned. COMPLETED — the resource already finished; no handle needed. MISSING — the resource no longer exists; safe to treat as not started. UNKNOWN — cannot determine state; block automatic duplicate execution.
Parameters
reference
PersistedResourceReference
agreement
context
Record<string, unknown>
Returns
Promise<{ handle: ResourceHandle; state: "ACTIVE"; } | { result?: unknown; state: "COMPLETED"; } | { state: "MISSING"; } | { state: "UNKNOWN"; }>
start()
start(
agreement,context):Promise<ResourceHandle>
Parameters
agreement
context
Record<string, unknown>
Returns
Promise<ResourceHandle>
supports()
supports(
resource,manifest):boolean
Parameters
resource
string
manifest
SignedManifest
Returns
boolean