claude-flow 2.7.45 → 2.7.47

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,"sources":["../../../src/memory/sqlite-wrapper.js"],"sourcesContent":["/**\n * SQLite Wrapper with Windows Fallback Support\n * Provides graceful fallback when better-sqlite3 fails to load\n * Includes auto-rebuild for NODE_MODULE_VERSION mismatches\n */\n\nimport { createRequire } from 'module';\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nlet Database = null;\nlet sqliteAvailable = false;\nlet loadError = null;\nlet rebuildAttempted = false;\n\n/**\n * Attempt to rebuild better-sqlite3 for the current Node.js version\n */\nfunction tryRebuildBetterSqlite3() {\n if (rebuildAttempted) return false;\n rebuildAttempted = true;\n\n try {\n // Find the better-sqlite3 module path\n const require = createRequire(import.meta.url);\n const betterSqlite3Path = path.dirname(require.resolve('better-sqlite3/package.json'));\n\n console.warn(`\\nšŸ”§ Attempting to rebuild better-sqlite3 for Node.js ${process.version}...`);\n\n // Run npm rebuild in the better-sqlite3 directory\n execSync('npm rebuild', {\n cwd: betterSqlite3Path,\n stdio: ['pipe', 'pipe', 'pipe'],\n timeout: 120000 // 2 minute timeout\n });\n\n console.warn(`āœ… Rebuild successful! Retrying SQLite load...\\n`);\n return true;\n } catch (err) {\n console.warn(`āš ļø Auto-rebuild failed: ${err.message}`);\n console.warn(` You may need build tools installed (python, make, g++)\\n`);\n return false;\n }\n}\n\n/**\n * Try to load better-sqlite3 with comprehensive error handling\n */\nasync function tryLoadSQLite() {\n try {\n // Try CommonJS require first (more reliable in Node.js)\n const require = createRequire(import.meta.url);\n Database = require('better-sqlite3');\n sqliteAvailable = true;\n return true;\n } catch (requireErr) {\n // Fallback to ES module import\n try {\n const module = await import('better-sqlite3');\n Database = module.default;\n sqliteAvailable = true;\n return true;\n } catch (importErr) {\n loadError = importErr;\n\n // Check for NODE_MODULE_VERSION mismatch (different Node.js ABI)\n const isVersionMismatch =\n requireErr.message?.includes('NODE_MODULE_VERSION') ||\n importErr.message?.includes('NODE_MODULE_VERSION') ||\n requireErr.message?.includes('was compiled against a different Node.js version') ||\n importErr.message?.includes('was compiled against a different Node.js version');\n\n if (isVersionMismatch) {\n // Try auto-rebuild first\n if (!rebuildAttempted && tryRebuildBetterSqlite3()) {\n // Rebuild succeeded, try loading again\n try {\n const require = createRequire(import.meta.url);\n // Clear the require cache to pick up rebuilt module\n const modulePath = require.resolve('better-sqlite3');\n delete require.cache[modulePath];\n Database = require('better-sqlite3');\n sqliteAvailable = true;\n loadError = null;\n return true;\n } catch (retryErr) {\n // Rebuild succeeded but load still failed\n loadError = retryErr;\n }\n }\n\n // Extract version info for helpful message\n const errorMsg = requireErr.message || importErr.message || '';\n const compiledMatch = errorMsg.match(/NODE_MODULE_VERSION (\\d+)/);\n const requiredMatch = errorMsg.match(/requires\\s+NODE_MODULE_VERSION (\\d+)/);\n\n const nodeVersionMap = {\n '108': '18.x', '115': '20.x', '120': '21.x', '127': '22.x', '131': '23.x'\n };\n\n let versionInfo = '';\n if (compiledMatch && requiredMatch) {\n const compiled = nodeVersionMap[compiledMatch[1]] || `ABI ${compiledMatch[1]}`;\n const required = nodeVersionMap[requiredMatch[1]] || `ABI ${requiredMatch[1]}`;\n versionInfo = `\\nā•‘ Module compiled for Node.js ${compiled}, running Node.js ${required}`.padEnd(79) + 'ā•‘';\n }\n\n console.warn(`\n╔══════════════════════════════════════════════════════════════════════════════╗\nā•‘ Native Module Version Mismatch (NODE_MODULE_VERSION) ā•‘\n╠══════════════════════════════════════════════════════════════════════════════╣\nā•‘ ā•‘\nā•‘ The better-sqlite3 module was compiled for a different Node.js version. ā•‘${versionInfo}\nā•‘ ā•‘\nā•‘ Auto-rebuild was attempted but SQLite is still unavailable. ā•‘\nā•‘ Claude Flow will continue with JSON fallback storage (still works fine). ā•‘\nā•‘ ā•‘\nā•‘ To manually fix this and use SQLite: ā•‘\nā•‘ ā•‘\nā•‘ Option 1 - Global install (recommended): ā•‘\nā•‘ > npm install -g claude-flow@alpha ā•‘\nā•‘ ā•‘\nā•‘ Option 2 - Clear npx cache: ā•‘\nā•‘ > rm -rf ~/.npm/_npx/ && npx claude-flow@alpha ... ā•‘\nā•‘ ā•‘\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n`);\n return false;\n }\n\n // Check for other Windows/installation errors\n if (requireErr.message?.includes('Could not locate the bindings file') ||\n requireErr.message?.includes('The specified module could not be found') ||\n requireErr.code === 'MODULE_NOT_FOUND') {\n\n console.warn(`\n╔══════════════════════════════════════════════════════════════════════════════╗\nā•‘ SQLite Native Module Installation Issue ā•‘\n╠══════════════════════════════════════════════════════════════════════════════╣\nā•‘ ā•‘\nā•‘ The native SQLite module failed to load. This is common on Windows when ā•‘\nā•‘ using 'npx' or when node-gyp build tools are not available. ā•‘\nā•‘ ā•‘\nā•‘ Claude Flow will continue with JSON fallback storage (still works fine). ā•‘\nā•‘ ā•‘\nā•‘ To enable SQLite storage: ā•‘\nā•‘ ā•‘\nā•‘ Option 1 - Install Build Tools (Windows): ā•‘\nā•‘ > npm install --global windows-build-tools ā•‘\nā•‘ > npm install claude-flow@alpha ā•‘\nā•‘ ā•‘\nā•‘ Option 2 - Use WSL (Windows Subsystem for Linux): ā•‘\nā•‘ Install WSL and run Claude Flow inside a Linux environment ā•‘\nā•‘ ā•‘\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n`);\n }\n \n return false;\n }\n }\n}\n\n/**\n * Check if SQLite is available\n */\nexport async function isSQLiteAvailable() {\n if (sqliteAvailable !== null) {\n return sqliteAvailable;\n }\n \n await tryLoadSQLite();\n return sqliteAvailable;\n}\n\n/**\n * Get SQLite Database constructor or null\n */\nexport async function getSQLiteDatabase() {\n if (!sqliteAvailable && loadError === null) {\n await tryLoadSQLite();\n }\n \n return Database;\n}\n\n/**\n * Get the load error if any\n */\nexport function getLoadError() {\n return loadError;\n}\n\n/**\n * Create a SQLite database instance with fallback\n */\nexport async function createDatabase(dbPath) {\n const DB = await getSQLiteDatabase();\n \n if (!DB) {\n throw new Error('SQLite is not available. Use fallback storage instead.');\n }\n \n try {\n return new DB(dbPath);\n } catch (err) {\n // Additional Windows-specific error handling\n if (err.message.includes('EPERM') || err.message.includes('access denied')) {\n throw new Error(`Cannot create database at ${dbPath}. Permission denied. Try using a different directory or running with administrator privileges.`);\n }\n throw err;\n }\n}\n\n/**\n * Check if running on Windows\n */\nexport function isWindows() {\n return process.platform === 'win32';\n}\n\n/**\n * Get platform-specific storage recommendations\n */\nexport function getStorageRecommendations() {\n if (isWindows()) {\n return {\n recommended: 'in-memory',\n reason: 'Windows native module compatibility',\n alternatives: [\n 'Install Windows build tools for SQLite support',\n 'Use WSL (Windows Subsystem for Linux)',\n 'Use Docker container with Linux'\n ]\n };\n }\n \n return {\n recommended: 'sqlite',\n reason: 'Best performance and persistence',\n alternatives: ['in-memory for testing']\n };\n}\n\n// Pre-load SQLite on module import\ntryLoadSQLite().catch(() => {\n // Silently handle initial load failure\n});\n\nexport default {\n isSQLiteAvailable,\n getSQLiteDatabase,\n getLoadError,\n createDatabase,\n isWindows,\n getStorageRecommendations\n};"],"names":["createRequire","execSync","path","fileURLToPath","__filename","url","__dirname","dirname","Database","sqliteAvailable","loadError","rebuildAttempted","tryRebuildBetterSqlite3","require","betterSqlite3Path","resolve","console","warn","process","version","cwd","stdio","timeout","err","message","tryLoadSQLite","requireErr","module","default","importErr","isVersionMismatch","includes","modulePath","cache","retryErr","errorMsg","compiledMatch","match","requiredMatch","nodeVersionMap","versionInfo","compiled","required","padEnd","code","isSQLiteAvailable","getSQLiteDatabase","getLoadError","createDatabase","dbPath","DB","Error","isWindows","platform","getStorageRecommendations","recommended","reason","alternatives","catch"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/memory/sqlite-wrapper.js"],"sourcesContent":["/**\n * SQLite Wrapper with Windows Fallback Support\n * Provides graceful fallback when better-sqlite3 fails to load\n * Includes auto-rebuild for NODE_MODULE_VERSION mismatches\n */\n\nimport { createRequire } from 'module';\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nlet Database = null;\nlet sqliteAvailable = false;\nlet loadError = null;\nlet rebuildAttempted = false;\n\n/**\n * Attempt to rebuild better-sqlite3 for the current Node.js version\n */\nfunction tryRebuildBetterSqlite3() {\n if (rebuildAttempted) return false;\n rebuildAttempted = true;\n\n try {\n // Find the better-sqlite3 module path\n const require = createRequire(import.meta.url);\n const betterSqlite3Path = path.dirname(require.resolve('better-sqlite3/package.json'));\n\n console.warn(`\\nšŸ”§ Attempting to rebuild better-sqlite3 for Node.js ${process.version}...`);\n\n // Run npm rebuild in the better-sqlite3 directory\n execSync('npm rebuild', {\n cwd: betterSqlite3Path,\n stdio: ['pipe', 'pipe', 'pipe'],\n timeout: 120000 // 2 minute timeout\n });\n\n console.warn(`āœ… Rebuild successful! Retrying SQLite load...\\n`);\n return true;\n } catch (err) {\n console.warn(`āš ļø Auto-rebuild failed: ${err.message}`);\n console.warn(` You may need build tools installed (python, make, g++)\\n`);\n return false;\n }\n}\n\n/**\n * Try to load better-sqlite3 with comprehensive error handling\n */\nasync function tryLoadSQLite() {\n try {\n // Try CommonJS require first (more reliable in Node.js)\n const require = createRequire(import.meta.url);\n Database = require('better-sqlite3');\n sqliteAvailable = true;\n return true;\n } catch (requireErr) {\n // Fallback to ES module import\n try {\n const module = await import('better-sqlite3');\n Database = module.default;\n sqliteAvailable = true;\n return true;\n } catch (importErr) {\n loadError = importErr;\n\n // Check for NODE_MODULE_VERSION mismatch (different Node.js ABI)\n const isVersionMismatch =\n requireErr.message?.includes('NODE_MODULE_VERSION') ||\n importErr.message?.includes('NODE_MODULE_VERSION') ||\n requireErr.message?.includes('was compiled against a different Node.js version') ||\n importErr.message?.includes('was compiled against a different Node.js version');\n\n if (isVersionMismatch) {\n // Try auto-rebuild first\n if (!rebuildAttempted && tryRebuildBetterSqlite3()) {\n // Rebuild succeeded, try loading again\n try {\n const require = createRequire(import.meta.url);\n // Clear the require cache to pick up rebuilt module\n const modulePath = require.resolve('better-sqlite3');\n delete require.cache[modulePath];\n Database = require('better-sqlite3');\n sqliteAvailable = true;\n loadError = null;\n return true;\n } catch (retryErr) {\n // Rebuild succeeded but load still failed\n loadError = retryErr;\n }\n }\n\n // Extract version info for helpful message\n const errorMsg = requireErr.message || importErr.message || '';\n const compiledMatch = errorMsg.match(/NODE_MODULE_VERSION (\\d+)/);\n const requiredMatch = errorMsg.match(/requires\\s+NODE_MODULE_VERSION (\\d+)/);\n\n const nodeVersionMap = {\n '108': '18.x', '115': '20.x', '120': '21.x', '127': '22.x', '131': '23.x'\n };\n\n let versionInfo = '';\n if (compiledMatch && requiredMatch) {\n const compiled = nodeVersionMap[compiledMatch[1]] || `ABI ${compiledMatch[1]}`;\n const required = nodeVersionMap[requiredMatch[1]] || `ABI ${requiredMatch[1]}`;\n versionInfo = `\\nā•‘ Module compiled for Node.js ${compiled}, running Node.js ${required}`.padEnd(79) + 'ā•‘';\n }\n\n console.warn(`\n╔══════════════════════════════════════════════════════════════════════════════╗\nā•‘ Native Module Version Mismatch (NODE_MODULE_VERSION) ā•‘\n╠══════════════════════════════════════════════════════════════════════════════╣\nā•‘ ā•‘\nā•‘ The better-sqlite3 module was compiled for a different Node.js version. ā•‘${versionInfo}\nā•‘ ā•‘\nā•‘ Auto-rebuild was attempted but SQLite is still unavailable. ā•‘\nā•‘ Claude Flow will continue with JSON fallback storage (still works fine). ā•‘\nā•‘ ā•‘\nā•‘ To manually fix this and use SQLite: ā•‘\nā•‘ ā•‘\nā•‘ Option 1 - Global install (recommended): ā•‘\nā•‘ > npm install -g claude-flow@alpha ā•‘\nā•‘ ā•‘\nā•‘ Option 2 - Clear npx cache: ā•‘\nā•‘ > rm -rf ~/.npm/_npx/ && npx claude-flow@alpha ... ā•‘\nā•‘ ā•‘\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n`);\n return false;\n }\n\n // Check for other Windows/installation errors\n if (requireErr.message?.includes('Could not locate the bindings file') ||\n requireErr.message?.includes('The specified module could not be found') ||\n requireErr.code === 'MODULE_NOT_FOUND') {\n\n console.warn(`\n╔══════════════════════════════════════════════════════════════════════════════╗\nā•‘ SQLite Native Module Installation Issue ā•‘\n╠══════════════════════════════════════════════════════════════════════════════╣\nā•‘ ā•‘\nā•‘ The native SQLite module failed to load. This is common on Windows when ā•‘\nā•‘ using 'npx' or when node-gyp build tools are not available. ā•‘\nā•‘ ā•‘\nā•‘ Claude Flow will continue with JSON fallback storage (still works fine). ā•‘\nā•‘ ā•‘\nā•‘ To enable SQLite storage: ā•‘\nā•‘ ā•‘\nā•‘ Option 1 - Install Build Tools (Windows): ā•‘\nā•‘ > npm install --global windows-build-tools ā•‘\nā•‘ > npm install claude-flow@alpha ā•‘\nā•‘ ā•‘\nā•‘ Option 2 - Use WSL (Windows Subsystem for Linux): ā•‘\nā•‘ Install WSL and run Claude Flow inside a Linux environment ā•‘\nā•‘ ā•‘\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n`);\n }\n \n return false;\n }\n }\n}\n\n/**\n * Check if SQLite is available\n */\nexport async function isSQLiteAvailable() {\n if (sqliteAvailable !== null) {\n return sqliteAvailable;\n }\n \n await tryLoadSQLite();\n return sqliteAvailable;\n}\n\n/**\n * Get SQLite Database constructor or null\n */\nexport async function getSQLiteDatabase() {\n if (!sqliteAvailable && loadError === null) {\n await tryLoadSQLite();\n }\n \n return Database;\n}\n\n/**\n * Get the load error if any\n */\nexport function getLoadError() {\n return loadError;\n}\n\n/**\n * Create a SQLite database instance with fallback\n */\nexport async function createDatabase(dbPath) {\n const DB = await getSQLiteDatabase();\n\n if (!DB) {\n throw new Error('SQLite is not available. Use fallback storage instead.');\n }\n\n try {\n return new DB(dbPath);\n } catch (err) {\n // Check for NODE_MODULE_VERSION mismatch at instantiation time\n const isVersionMismatch =\n err.message?.includes('NODE_MODULE_VERSION') ||\n err.message?.includes('was compiled against a different Node.js version') ||\n err.code === 'ERR_DLOPEN_FAILED';\n\n if (isVersionMismatch && !rebuildAttempted) {\n // Try auto-rebuild\n if (tryRebuildBetterSqlite3()) {\n // Rebuild succeeded, try again\n try {\n const require = createRequire(import.meta.url);\n // Clear require cache\n const modulePath = require.resolve('better-sqlite3');\n delete require.cache[modulePath];\n // Also clear any cached .node files\n Object.keys(require.cache).forEach(key => {\n if (key.includes('better_sqlite3.node') || key.includes('better-sqlite3')) {\n delete require.cache[key];\n }\n });\n // Re-require and instantiate\n const NewDB = require('better-sqlite3');\n Database = NewDB;\n return new NewDB(dbPath);\n } catch (retryErr) {\n // Rebuild didn't help\n throw err;\n }\n }\n }\n\n // Additional Windows-specific error handling\n if (err.message?.includes('EPERM') || err.message?.includes('access denied')) {\n throw new Error(`Cannot create database at ${dbPath}. Permission denied. Try using a different directory or running with administrator privileges.`);\n }\n throw err;\n }\n}\n\n/**\n * Check if running on Windows\n */\nexport function isWindows() {\n return process.platform === 'win32';\n}\n\n/**\n * Get platform-specific storage recommendations\n */\nexport function getStorageRecommendations() {\n if (isWindows()) {\n return {\n recommended: 'in-memory',\n reason: 'Windows native module compatibility',\n alternatives: [\n 'Install Windows build tools for SQLite support',\n 'Use WSL (Windows Subsystem for Linux)',\n 'Use Docker container with Linux'\n ]\n };\n }\n \n return {\n recommended: 'sqlite',\n reason: 'Best performance and persistence',\n alternatives: ['in-memory for testing']\n };\n}\n\n// Pre-load SQLite on module import\ntryLoadSQLite().catch(() => {\n // Silently handle initial load failure\n});\n\nexport default {\n isSQLiteAvailable,\n getSQLiteDatabase,\n getLoadError,\n createDatabase,\n isWindows,\n getStorageRecommendations\n};"],"names":["createRequire","execSync","path","fileURLToPath","__filename","url","__dirname","dirname","Database","sqliteAvailable","loadError","rebuildAttempted","tryRebuildBetterSqlite3","require","betterSqlite3Path","resolve","console","warn","process","version","cwd","stdio","timeout","err","message","tryLoadSQLite","requireErr","module","default","importErr","isVersionMismatch","includes","modulePath","cache","retryErr","errorMsg","compiledMatch","match","requiredMatch","nodeVersionMap","versionInfo","compiled","required","padEnd","code","isSQLiteAvailable","getSQLiteDatabase","getLoadError","createDatabase","dbPath","DB","Error","Object","keys","forEach","key","NewDB","isWindows","platform","getStorageRecommendations","recommended","reason","alternatives","catch"],"mappings":"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"}