feat: Embedded local worker for offline/local mode (v0.3.4)
Summary
Implement inline worker creation using embedded worker bundle:
- Add separate webpack configs for worker and main bundles
- Worker is built first, then embedded as base64 in TypeScript
- WorkerWrapper creates inline worker via Blob URL when URL not provided
- Version number now injected at build time from package.json (fixes missed version update in 0.3.3)
This enables ai-delegate to work without requiring a separate worker file to be served, useful for offline/local development scenarios.
Changes
-
package.json- Version 0.3.4, new build scripts for embedded worker -
webpack.worker.config.js- Worker build config with DefinePlugin for version injection -
webpack.main.config.js- Main build config -
scripts/embed-worker.js- Script to embed compiled worker as base64 -
src/worker/worker.ts- Version now injected from package.json -
src/worker/WorkerWrapper.ts- Support for inline worker via Blob URL -
src/worker/embedded-worker.ts- Generated embedded worker source -
src/core/AiDelegate.ts- Updated for local worker support
Test Plan
-
Build succeeds:
npm run build - Worker version shows 0.3.4 in console
- Inline worker creation works without URL