Skip to content

cloudflare

Owns runtime opening, HTTP/ACP transport, inbox observation and alarm recovery.

Env

State extends CloudflareShiitakeState = CloudflareShiitakeState

new ShiitakeOwner<Env, State>>(ctx, env): ShiitakeOwner<Env, State>>

State

Env

ShiitakeOwner<Env, State>

shiitake(): Promise<CloudflareShiitake>>

Borrow this owner’s runtime directly; only the host owns its lifetime.

Promise<CloudflareShiitake>

abortActiveSessions(): Promise<void>>

Stop live execution without constructing a cold owner’s runtime.

Promise<void>

closeShiitake(): Promise<void>>

Close owned resources before storage erasure; a cold owner has none.

Promise<void>

readInboxChanges(after, limit): Promise<Readonly<{ rows: readonly (SessionSummaryRow | Readonly<{ sessionId: string; deleted: true; }>)[]; through: number; latest: number; }>>

Bounded strict-after read of this Agent’s changed inbox rows.

number

number

Promise<Readonly<{ rows: readonly (SessionSummaryRow | Readonly<{ sessionId: string; deleted: true; }>)[]; through: number; latest: number; }>>

readInboxRevision(): number

Latest inbox revision; read only after the owner has opened.

number

pruneInboxTombstones(through): void

Prune deletion deltas after every current member inbox has acknowledged them.

number

void

wakeRuntime(): Promise<void>>

Persist a wake and run one reconciliation pass, including host work.

Promise<void>

alarm(): Promise<void>>

Native alarms reconstruct the owner without an incoming user request. A construction or wake failure must not strand the claimed work on platform alarm retries: it is caught, logged, and explicitly re-armed with bounded backoff instead.

Promise<void>

fetch(request): Promise<Response>>

Serve Shiitake’s complete transport without subclass routing.

Request

Promise<Response>


Native Cloudflare entry points; all runtime lifetime belongs to the owner.

  • DurableObject<Env>

Env

new ShiitakeDO<Env>>(ctx, env): ShiitakeDO<Env>>

DurableObjectState

Env

ShiitakeDO<Env>

DurableObject<Env>.constructor

alarm(): Promise<void>>

Reconcile due runtime and host work through the owner.

Promise<void>

DurableObject.alarm

fetch(request): Promise<Response>>

Route an authenticated client request through the owner.

Request

Promise<Response>

DurableObject.fetch

CloudflareShiitakeState = Readonly<{ storage: SqliteOwner & Pick<DurableObjectStorage, "getAlarm" | "setAlarm" | "deleteAlarm"> > & object; waitUntil: (task) => void; }>

Native Durable Object capabilities used by the Cloudflare adapter.


CloudflareShiitakeTools = Readonly<{ modules?: readonly ModuleRegistration[]; sources?: readonly CapabilitySource[]; sandbox: Sandbox; }>

Non-empty Mycelium capabilities supplied by a Cloudflare host.


CloudflareHostWork = Readonly<{ pending: () => Readonly<{ due: boolean; nextWakeAt: number | null; }>; run: () => Promise<void>>; }>

Durable host work that shares Shiitake’s one native alarm, such as a host-owned delivery outbox. Shiitake never interprets it.


CloudflareHostJobs = Readonly<{ lane: string; open: (runtime) => Readonly<{ execute: (job) => Promise<WatchdogExecutionDecision>>; }>; }>

Host jobs share Shiitake’s one Watchdog claim and native alarm.


CloudflareShiitakeAcpServer = Readonly<{ handleRequest: (request) => Promise<Response>>; }>

ACP’s maintained transport, supplied by the host without a package cycle.


CloudflareShiitakeOptions = Readonly<{ model: ModelSource; instructions: InstructionSource; tools?: readonly [] | CloudflareShiitakeTools; files?: FilesSurface; gateTool?: (input) => OperationGate; extensions: ExtensionRosterV0; hostWork?: readonly CloudflareHostWork[]; hostJobs?: CloudflareHostJobs; browser?: (sessionId) => BrowserHost; acp?: (agent) => Promise<CloudflareShiitakeAcpServer>>; }>

Cloudflare host inputs; the model owner resolves one frozen run selection.


CloudflareShiitake = ShiitakeAgent & Readonly<{ alarm: () => Promise<void>>; activeSessions: () => Promise<readonly string[]>; abortActive: () => Promise<void>>; browser: Readonly<{ fetch: (request) => Promise<Response>>; clear: () => Promise<void>>; }>; }>

Cloudflare host lifecycle; alarm forwarding stays outside the neutral client.


BrowserHost = Readonly<{ modules: readonly ModuleRegistration[]; fetch: (request) => Promise<Response>>; }>

The maintained browser transport and its Session-bound tool descriptors.


SessionInboxChanges = Readonly<{ rows: readonly (SessionSummaryRow | Readonly<{ sessionId: string; deleted: true; }>)[]; through: number; latest: number; }>

Revisioned Session inbox changes after one owner revision, oldest first.

makeCloudflareShiitake(state, options): Promise<CloudflareShiitake>>

Construct Shiitake over one Durable Object’s SQLite and lifetime.

CloudflareShiitakeState

CloudflareShiitakeOptions

Promise<CloudflareShiitake>