brainy/src/unified.ts
David Snelling 94c88e128c **docs: remove outdated statistics-related documentation and add standards**
- **Removed Files**:
  - Deleted outdated statistics documentation files (`statistics.md`, `statistics-flush-solution.md`, `statistics-summary.md`) to clean up the repository and avoid confusion.

- **Added Standards**:
  - Introduced `DOCUMENTATION_STANDARDS.md` to outline naming conventions and troubleshooting practices for more consistent and maintainable project documentation.

- **Tests**:
  - Added a new test file `edge-cases.test.ts` to verify handling of edge cases, ensuring robust behavior against boundary values and invalid inputs.

**Purpose**: Cleans up deprecated documentation while introducing concrete standards for maintaining and updating documentation. Enhances test coverage for unusual or boundary inputs, improving overall system resilience.
2025-07-28 16:00:05 -07:00

74 lines
2.1 KiB
TypeScript

/**
* Unified entry point for Brainy
* This file exports everything from index.ts
* Environment detection is handled here and made available to all components
*/
// CRITICAL: The TensorFlow.js environment patch is now centralized in setup.ts
// We import setup.ts below which applies the necessary patches
// CRITICAL: Import setup.js first to ensure TensorFlow.js environment patching
// This MUST be the first import to prevent race conditions with TensorFlow.js initialization
// Moving or removing this import will cause errors like "TextEncoder is not a constructor"
// when the package is used in Node.js environments
//
// The setup.js file applies a patch that ensures TextEncoder/TextDecoder are properly
// available to TensorFlow.js before it initializes its platform detection
import './setup.js'
// Import environment detection functions
import {
isBrowser,
isNode,
isWebWorker,
isThreadingAvailable,
isThreadingAvailableAsync,
areWorkerThreadsAvailable
} from './utils/environment.js'
// Export environment information with lazy evaluation
export const environment = {
get isBrowser() {
return isBrowser()
},
get isNode() {
return isNode()
},
get isServerless() {
return !isBrowser() && !isNode()
},
isWebWorker: function() {
return isWebWorker()
},
get isThreadingAvailable() {
return isThreadingAvailable()
},
isThreadingAvailableAsync: function() {
return isThreadingAvailableAsync()
},
areWorkerThreadsAvailable: function() {
return areWorkerThreadsAvailable()
}
}
// Make environment information available globally
if (typeof globalThis !== 'undefined') {
;(globalThis as any).__ENV__ = environment
}
// Log the detected environment
console.log(
`Brainy running in ${
environment.isBrowser
? 'browser'
: environment.isNode
? 'Node.js'
: 'serverless/unknown'
} environment`
)
// Re-export everything from index.ts
export * from './index.js'
// Export the TensorFlow patch function for testing and manual use
export { applyTensorFlowPatch } from './utils/textEncoding.js'