@soulcraft/brainy 0.46.0 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"textEncoding.js","sourceRoot":"","sources":["../../src/utils/textEncoding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"textEncoding.js","sourceRoot":"","sources":["../../src/utils/textEncoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,yEAAyE;AACzE,qFAAqF;AAErF;;GAEG;AACH,IAAI,YAAY,GAAG,KAAK,CAAA;AAExB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,yFAAyF;IACzF,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,CAAA;IACrF,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;QACjC,OAAM,CAAC,uEAAuE;IAChF,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACd,OAAM,CAAC,kCAAkC;IAC3C,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;QAEzE,oCAAoC;QACpC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;YACtB,IAAI,OAAO,UAAU,KAAK,WAAW;gBAAE,OAAO,UAAU,CAAA;YACxD,IAAI,OAAO,MAAM,KAAK,WAAW;gBAAE,OAAO,MAAM,CAAA;YAChD,OAAO,EAAS,CAAA;QAClB,CAAC,CAAC,EAAE,CAAA;QAEJ,+DAA+D;QAC/D,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC3B,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;QACrC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC3B,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;QACrC,CAAC;QAED,oDAAoD;QACpD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;YAClC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;YAClC,CAAC;QACH,CAAC;QAED,YAAY,GAAG,IAAI,CAAA;QACnB,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAA;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAA;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,WAAW,EAAE,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,WAAW,EAAE,CAAA;AAC1B,CAAC;AAED,wCAAwC;AACxC,IAAI,MAAM,EAAE,EAAE,CAAC;IACb,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,OAAO,CAAC,IAAI,CAAC,+DAA+D,EAAE,KAAK,CAAC,CAAA;IACtF,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soulcraft/brainy",
3
- "version": "0.46.0",
3
+ "version": "0.48.0",
4
4
  "description": "A vector graph database using HNSW indexing with Origin Private File System storage",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -92,7 +92,8 @@
92
92
  "_workflow:minor": "node scripts/release-workflow.js minor",
93
93
  "_workflow:major": "node scripts/release-workflow.js major",
94
94
  "_workflow:dry-run": "npm run build && npm test && npm run _release:dry-run",
95
- "_dry-run": "npm pack --dry-run"
95
+ "_dry-run": "npm pack --dry-run",
96
+ "download-models": "node scripts/download-models.cjs"
96
97
  },
97
98
  "keywords": [
98
99
  "vector-database",
@@ -128,7 +129,9 @@
128
129
  "!dist/framework.min.js.map",
129
130
  "LICENSE",
130
131
  "README.md",
131
- "brainy.png"
132
+ "brainy.png",
133
+ "scripts/download-models.cjs",
134
+ "OFFLINE_MODELS.md"
132
135
  ],
133
136
  "devDependencies": {
134
137
  "@rollup/plugin-commonjs": "^25.0.7",
@@ -140,11 +143,11 @@
140
143
  "@types/jsdom": "^21.1.7",
141
144
  "@types/node": "^20.11.30",
142
145
  "@types/uuid": "^10.0.0",
143
- "@typescript-eslint/eslint-plugin": "^7.4.0",
144
- "@typescript-eslint/parser": "^7.4.0",
146
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
147
+ "@typescript-eslint/parser": "^8.0.0",
145
148
  "@vitest/coverage-v8": "^3.2.4",
146
149
  "@vitest/ui": "^3.2.4",
147
- "eslint": "^8.57.0",
150
+ "eslint": "^9.0.0",
148
151
  "express": "^5.1.0",
149
152
  "happy-dom": "^18.0.1",
150
153
  "jsdom": "^26.1.0",
@@ -159,23 +162,11 @@
159
162
  },
160
163
  "dependencies": {
161
164
  "@aws-sdk/client-s3": "^3.540.0",
162
- "@tensorflow/tfjs": "^4.22.0",
163
- "@tensorflow/tfjs-backend-cpu": "^4.22.0",
164
- "@tensorflow/tfjs-backend-webgl": "^4.22.0",
165
- "@tensorflow/tfjs-converter": "^4.22.0",
166
- "@tensorflow/tfjs-core": "^4.22.0",
165
+ "@huggingface/transformers": "^3.1.0",
167
166
  "buffer": "^6.0.3",
168
167
  "dotenv": "^16.4.5",
169
168
  "uuid": "^9.0.1"
170
169
  },
171
- "peerDependencies": {
172
- "@soulcraft/brainy-models": ">=0.7.0"
173
- },
174
- "peerDependenciesMeta": {
175
- "@soulcraft/brainy-models": {
176
- "optional": true
177
- }
178
- },
179
170
  "prettier": {
180
171
  "arrowParens": "always",
181
172
  "bracketSameLine": true,
@@ -0,0 +1,190 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Download and bundle models for offline usage
4
+ */
5
+
6
+ const fs = require('fs').promises
7
+ const path = require('path')
8
+
9
+ const MODEL_NAME = 'Xenova/all-MiniLM-L6-v2'
10
+ const OUTPUT_DIR = './models'
11
+
12
+ async function downloadModels() {
13
+ // Use dynamic import for ES modules in CommonJS
14
+ const { pipeline, env } = await import('@huggingface/transformers')
15
+
16
+ // Configure transformers.js to use local cache
17
+ env.cacheDir = './models-cache'
18
+ env.allowRemoteModels = true
19
+ try {
20
+ console.log('🔄 Downloading all-MiniLM-L6-v2 model for offline bundling...')
21
+ console.log(` Model: ${MODEL_NAME}`)
22
+ console.log(` Cache: ${env.cacheDir}`)
23
+
24
+ // Create output directory
25
+ await fs.mkdir(OUTPUT_DIR, { recursive: true })
26
+
27
+ // Load the model to force download
28
+ console.log('📥 Loading model pipeline...')
29
+ const extractor = await pipeline('feature-extraction', MODEL_NAME)
30
+
31
+ // Test the model to make sure it works
32
+ console.log('🧪 Testing model...')
33
+ const testResult = await extractor(['Hello world!'], {
34
+ pooling: 'mean',
35
+ normalize: true
36
+ })
37
+
38
+ console.log(`✅ Model test successful! Embedding dimensions: ${testResult.data.length}`)
39
+
40
+ // Copy ALL model files from cache to our models directory
41
+ console.log('📋 Copying ALL model files to bundle directory...')
42
+
43
+ const cacheDir = path.resolve(env.cacheDir)
44
+ const outputDir = path.resolve(OUTPUT_DIR)
45
+
46
+ console.log(` From: ${cacheDir}`)
47
+ console.log(` To: ${outputDir}`)
48
+
49
+ // Copy the entire cache directory structure to ensure we get ALL files
50
+ // including tokenizer.json, config.json, and all ONNX model files
51
+ const modelCacheDir = path.join(cacheDir, 'Xenova', 'all-MiniLM-L6-v2')
52
+
53
+ if (await dirExists(modelCacheDir)) {
54
+ const targetModelDir = path.join(outputDir, 'Xenova', 'all-MiniLM-L6-v2')
55
+ console.log(` Copying complete model: Xenova/all-MiniLM-L6-v2`)
56
+ await copyDirectory(modelCacheDir, targetModelDir)
57
+ } else {
58
+ throw new Error(`Model cache directory not found: ${modelCacheDir}`)
59
+ }
60
+
61
+ console.log('✅ Model bundling complete!')
62
+ console.log(` Total size: ${await calculateDirectorySize(outputDir)} MB`)
63
+ console.log(` Location: ${outputDir}`)
64
+
65
+ // Create a marker file
66
+ await fs.writeFile(
67
+ path.join(outputDir, '.brainy-models-bundled'),
68
+ JSON.stringify({
69
+ model: MODEL_NAME,
70
+ bundledAt: new Date().toISOString(),
71
+ version: '1.0.0'
72
+ }, null, 2)
73
+ )
74
+
75
+ } catch (error) {
76
+ console.error('❌ Error downloading models:', error)
77
+ process.exit(1)
78
+ }
79
+ }
80
+
81
+ async function findModelDirectories(baseDir, modelName) {
82
+ const dirs = []
83
+
84
+ try {
85
+ // Convert model name to expected directory structure
86
+ const modelPath = modelName.replace('/', '--')
87
+
88
+ async function searchDirectory(currentDir) {
89
+ try {
90
+ const entries = await fs.readdir(currentDir, { withFileTypes: true })
91
+
92
+ for (const entry of entries) {
93
+ if (entry.isDirectory()) {
94
+ const fullPath = path.join(currentDir, entry.name)
95
+
96
+ // Check if this directory contains model files
97
+ if (entry.name.includes(modelPath) || entry.name === 'onnx') {
98
+ const hasModelFiles = await containsModelFiles(fullPath)
99
+ if (hasModelFiles) {
100
+ dirs.push(fullPath)
101
+ }
102
+ }
103
+
104
+ // Recursively search subdirectories
105
+ await searchDirectory(fullPath)
106
+ }
107
+ }
108
+ } catch (error) {
109
+ // Ignore access errors
110
+ }
111
+ }
112
+
113
+ await searchDirectory(baseDir)
114
+ } catch (error) {
115
+ console.warn('Warning: Error searching for model directories:', error)
116
+ }
117
+
118
+ return dirs
119
+ }
120
+
121
+ async function containsModelFiles(dir) {
122
+ try {
123
+ const files = await fs.readdir(dir)
124
+ return files.some(file =>
125
+ file.endsWith('.onnx') ||
126
+ file.endsWith('.json') ||
127
+ file === 'config.json' ||
128
+ file === 'tokenizer.json'
129
+ )
130
+ } catch (error) {
131
+ return false
132
+ }
133
+ }
134
+
135
+ async function dirExists(dir) {
136
+ try {
137
+ const stats = await fs.stat(dir)
138
+ return stats.isDirectory()
139
+ } catch (error) {
140
+ return false
141
+ }
142
+ }
143
+
144
+ async function copyDirectory(src, dest) {
145
+ await fs.mkdir(dest, { recursive: true })
146
+ const entries = await fs.readdir(src, { withFileTypes: true })
147
+
148
+ for (const entry of entries) {
149
+ const srcPath = path.join(src, entry.name)
150
+ const destPath = path.join(dest, entry.name)
151
+
152
+ if (entry.isDirectory()) {
153
+ await copyDirectory(srcPath, destPath)
154
+ } else {
155
+ await fs.copyFile(srcPath, destPath)
156
+ }
157
+ }
158
+ }
159
+
160
+ async function calculateDirectorySize(dir) {
161
+ let size = 0
162
+
163
+ async function calculateSize(currentDir) {
164
+ try {
165
+ const entries = await fs.readdir(currentDir, { withFileTypes: true })
166
+
167
+ for (const entry of entries) {
168
+ const fullPath = path.join(currentDir, entry.name)
169
+
170
+ if (entry.isDirectory()) {
171
+ await calculateSize(fullPath)
172
+ } else {
173
+ const stats = await fs.stat(fullPath)
174
+ size += stats.size
175
+ }
176
+ }
177
+ } catch (error) {
178
+ // Ignore access errors
179
+ }
180
+ }
181
+
182
+ await calculateSize(dir)
183
+ return Math.round(size / (1024 * 1024))
184
+ }
185
+
186
+ // Run the download
187
+ downloadModels().catch(error => {
188
+ console.error('Fatal error:', error)
189
+ process.exit(1)
190
+ })