chore(8.0)!: drop browser support, cloud SDKs, legacy pipeline, dead threading
Brainy 8.0 is server-only. This commit takes the consequences seriously and
removes everything that was only there to keep browser/cloud/threading
surfaces alive.
Browser support drop (per the @deprecated notes in environment.ts):
- isBrowser, isWebWorker, areWebWorkersAvailable, navigator.deviceMemory
paths, window/document/self.onmessage code.
- browser console.log in unified.ts, the 'browser' branch in
autoConfiguration.ts (env enum + scaleUp cases), 'browser-cache' model
path, MCP service environment value.
- package.json browser field.
- src/worker.ts (Web Worker entrypoint) deleted.
Cloud SDK removal (the four adapters were dropped in Phase 7; the SDKs
were the lingering tax):
- @aws-sdk/client-s3, @azure/identity, @azure/storage-blob, and
@google-cloud/storage removed from package.json. Lockfile drops the
entire @aws/@azure/@google-cloud/@smithy transitive tree.
- EnhancedS3Clear class deleted from enhancedClearOperations.ts (the
only @aws-sdk/client-s3 consumer; the dynamic import sites went with
it). EnhancedFileSystemClear stays.
- src/utils/adaptiveSocketManager.ts deleted entirely (474 LOC of HTTPS
socket-pool management for the dropped cloud HTTP handler).
performanceMonitor.ts no longer reports a socketConfig; socket
utilization is fixed at 0.
Dead threading subsystem:
- executeInThread was imported by distance.ts and hnswIndex.ts but
never called. It was scaffolding for a future "off-main-thread
distance batch" optimization that never shipped.
- src/utils/workerUtils.ts deleted (Web Worker code path + an
unreachable Node Worker Threads code path).
- environment.ts loses isThreadingAvailable, isThreadingAvailableAsync,
areWorkerThreadsAvailable, areWorkerThreadsAvailableSync. All exports
purged from index.ts and unified.ts.
- autoConfiguration.ts drops AutoConfigResult.threadingAvailable.
Legacy plugin/augmentation pipeline:
- src/pipeline.ts deleted. The whole file was a no-op stub for
backwards compat — Pipeline class had no methods, no lifecycle hooks,
no before/after callbacks. AugmentationPipeline, augmentationPipeline,
createPipeline, createStreamingPipeline, StreamlinedPipelineOptions,
StreamlinedPipelineResult, StreamlinedExecutionMode were all aliases
for the same stub.
- src/mcp/mcpAugmentationToolset.ts deleted. executePipeline always
threw "deprecated", isValidAugmentationType always returned false,
getAvailableTools always returned []. Dead surface.
- BrainyMCPService no longer instantiates a toolset. TOOL_EXECUTION
requests now return the standard UNSUPPORTED_REQUEST_TYPE error.
'availableTools' system-info returns [] (was the same in practice).
Net: 22 files changed, ~6400 LOC deleted (including legacy code +
mechanical lockfile churn). Build clean, 1409/1409 tests pass.
This commit is contained in:
parent
adda1570f3
commit
266715aeee
22 changed files with 134 additions and 4648 deletions
|
|
@ -1,74 +1,30 @@
|
|||
/**
|
||||
* Unified entry point for Brainy
|
||||
* This file exports everything from index.ts
|
||||
* Environment detection is handled here and made available to all components
|
||||
* @module unified
|
||||
* @description Unified entry point for Brainy. Re-exports the public surface
|
||||
* from `index.js` and surfaces a tiny runtime-environment object the rest of
|
||||
* the library can read.
|
||||
*
|
||||
* 8.0 supports Node-like runtimes only (Node.js, Bun, Deno); the browser
|
||||
* detection helpers and Worker Thread plumbing are gone.
|
||||
*/
|
||||
|
||||
// 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'
|
||||
import { isNode } 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
|
||||
;(globalThis as any).__ENV__ = environment
|
||||
}
|
||||
|
||||
// Log the detected environment
|
||||
console.log(
|
||||
`Brainy running in ${
|
||||
environment.isBrowser
|
||||
? 'browser'
|
||||
: environment.isNode
|
||||
? 'Node.js'
|
||||
: 'serverless/unknown'
|
||||
} environment`
|
||||
`Brainy running on ${environment.isNode ? 'Node-like runtime' : 'unknown runtime'}`
|
||||
)
|
||||
|
||||
// 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'
|
||||
|
|
|
|||
Reference in a new issue