import { BACKGROUND_CONTEXT } from '@earendil-works/chord/context'
import { builtinModels } from '@earendil-works/pi-ai/providers/all'
import { createRegistry, Harness, MemoryStorage } from '@earendil-works/pi-durable'
import { CodingTools } from '@earendil-works/pi-durable/tools'
import { MountMode, RAMVFS, S3VFS, Workspace } from '@struktoai/mirage-node'
import { MirageExecutionEnv, mirageExtension } from '@struktoai/mirage-pi-durable'
const context = BACKGROUND_CONTEXT
const ws = new Workspace(
{ '/': new RAMVFS(), '/s3': new S3VFS({ bucket: 'my-bucket', region: 'us-east-1' }) },
{ mode: MountMode.WRITE },
)
const registry = createRegistry()
registry.install(CodingTools)
registry.install(mirageExtension(ws))
const harness = await Harness.open(
new MemoryStorage(),
{
models: builtinModels(),
registry,
env: ({ cwd }) => new MirageExecutionEnv(ws, { cwd: cwd ?? '/' }),
},
context,
)
const root = await harness.root(context, {
agent: { model: { provider: 'anthropic', modelId: 'claude-sonnet-5-5' } },
})
const run = await root.submit({ type: 'input', content: 'Summarize /s3/reports' }, context)
await run.wait(context)