feat: add universal adapters for browser compatibility

- Create universal adapters for cross-platform support (browser/Node/serverless)
- Replace Node.js-specific imports with universal implementations
- Add OPFS support for browser persistent storage
- Maintain same BrainyData interface across all environments
- Enable real Brainy usage in browser console UI
- Keep package size optimized (no bloat)

Universal adapters in /src/universal/:
- uuid.ts: Cross-platform UUID generation
- crypto.ts: Browser/Node crypto operations
- fs.ts: OPFS/FileSystem/Memory storage adapter
- path.ts: Universal path operations
- events.ts: EventEmitter compatibility layer

This enables 'write once, run anywhere' for Brainy while maintaining
the exact same API. No breaking changes to existing code.
This commit is contained in:
David Snelling 2025-08-08 15:22:38 -07:00
parent 6e8869ecb7
commit 93804be354
31 changed files with 2120 additions and 2028 deletions

View file

@ -1,31 +1,34 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "Bundler",
"esModuleInterop": true,
"strict": true,
"declaration": false,
"outDir": "./dist",
"rootDir": ".",
"lib": [
"DOM",
"ESNext",
"DOM.Asynciterable"
],
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noEmit": false,
"preserveConstEnums": true,
"sourceMap": true
"outDir": "./dist/browser-build"
},
"include": [
"src/**/*",
"demo/**/*"
"src/brainyData.ts",
"src/browserFramework.ts",
"src/universal/**/*",
"src/types/graphTypes.ts",
"src/coreTypes.ts",
"src/utils/embedding.ts",
"src/utils/environment.ts",
"src/utils/logger.ts",
"src/utils/index.ts",
"src/hnsw/**/*",
"src/storage/**/*",
"src/setup.ts"
],
"exclude": [
"node_modules",
"dist",
"**/*.test.ts"
"**/*.test.ts",
"src/cortex/**/*",
"src/augmentations/**/*",
"src/pipeline.ts",
"src/sequentialPipeline.ts",
"src/augmentationFactory.ts",
"src/augmentationRegistry.ts",
"src/augmentationRegistryLoader.ts",
"src/chat/**/*",
"src/mcp/**/*"
]
}
}