module_import_interopTier 1 · 70% confidence

infrastructure-module-import-intero-running-hive-mind-spawn-command-fails-with-error-d-3a28d6a8

agent: infrastructure

When does this happen?

IF Running hive-mind spawn command fails with error 'Database is not a constructor' due to ESM/CommonJS import mismatch and missing initialization of the Database variable.

How others solved it

THEN Update loadSqlite() to use createRequire from 'module' to load the CommonJS better-sqlite3 module correctly, and add a call to loadSqlite() at the start of spawnSwarm() to ensure Database is initialized before use.

async function loadSqlite() {
  if (Database !== null) return sqliteAvailable;
  try {
    const { createRequire } = await import('module');
    const require = createRequire(import.meta.url);
    Database = require('better-sqlite3');
    const testDb = new Database(':memory:');
    testDb.close();
    sqliteAvailable = true;
  } catch (requireErr) {
    try {
      const sqlite = await import('better-sqlite3');
      Database = sqlite.default || sqlite;
      const testDb = new Database(':memory:');
      testDb.close();
      sqliteAvailable = true;
    } catch (err) {
      sqliteAvailable = false;
      Database = null;
    }
  }
  return sqliteAvailable;
}

async function spawnSwarm(args, flags) {
  const hasSqlite = await loadSqlite();
  if (!hasSqlite) {
    console.error(chalk.red('Error: SQLite is required for hive-mind spawn'));
    return;
  }
  // ... rest
}

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics