#30

support lazy sandbox initialization

Opentylergibbs1wants to merge intofrom

summary

this lets createBashTool accept a sandbox provider that is resolved only when a returned tool or sandbox method first needs it.

the provider is memoized, initial files are uploaded before the first operation, and existing sandbox instances keep their current behavior. lazy providers can set promptOptions.toolPrompt when they need sandbox-specific tool hints without triggering eager discovery.

closes #18

testing

  • biome check .
  • knip
  • tsc --noEmit
  • tsc --noEmit -p tsconfig.examples.json
  • tsc -p tsconfig.build.json
  • vitest run --exclude 'src/tool.vercel.integration.test.ts' with 155 tests passing

live Vercel integration was not run because it requires sandbox credentials. the lazy Vercel adapter path is covered with a unit test.