@fabric-harness/cloudflare
v2.4.0
Published
Cloudflare Workers and Sandbox adapter for Fabric Harness.
Readme
@fabric-harness/cloudflare
Cloudflare Workers + Sandbox adapter for Fabric Harness.
Install
npm install @fabric-harness/cloudflare @fabric-harness/sdk @cloudflare/sandbox@cloudflare/sandbox is a peer dependency and is required for the sandbox example below. You can
omit it when using only the package's persistence, R2, or Workers AI helpers.
Quick start
import { defineAgent } from '@fabric-harness/sdk';
import { getSandbox } from '@cloudflare/sandbox';
import { createCloudflareSandboxEnv } from '@fabric-harness/cloudflare';
export default defineAgent({
name: 'edge-assistant', triggers: { webhook: true },
run: async ({ init, payload, env }) => {
const sandbox = createCloudflareSandboxEnv(getSandbox(env.Sandbox, 'session-1'));
const session = await (await init({
sandbox,
model: 'anthropic/claude-sonnet-4-6',
runtime: 'stateless',
})).session();
return { reply: await session.prompt<string>(String((payload as any)?.message ?? '')) };
},
});Build with fh build --target cloudflare to produce an artifact ready for wrangler deploy.
What's in the box
createCloudflareSandboxEnv(sandbox, options?)— adaptsgetSandbox(env.Sandbox, id)from@cloudflare/sandboxinto a FabricSandboxEnv.createCloudflareDurableObjectSessionStore(sql, options?)— durable-object-backed session store with optional R2 routing for large artifacts (configurabler2ThresholdBytes,r2KeyPrefix).createCloudflareRunRegistry(sql)— tenant-aware pointer index used to list finite runs across per-run Durable Objects.createCloudflareRunRegistryClient(namespace)andhandleCloudflareRunRegistryRequest(...)— private Worker-to-registry protocol used by generated Cloudflare artifacts. Per-run objects remain authoritative; terminal upserts heal missed starts.r2FilesystemSource(bucket, options?)— mount an R2 bucket prefix as a read-onlyFilesystemSource. Use withsession.mount().
Documentation
License
Apache-2.0
