diff --git a/server/bootstrap.mjs b/server/bootstrap.mjs index 601f67e..cb603c2 100644 --- a/server/bootstrap.mjs +++ b/server/bootstrap.mjs @@ -1,32 +1,18 @@ -import fs from 'node:fs'; import path from 'node:path'; import { createDbPool, isDatabaseConfigured } from './db.mjs'; import { projectRoot } from './load-env.mjs'; import { importMemind, resolveMemindLib } from './lib-path.mjs'; import { createSystemTestAccountService, ensureSystemTestAccountSchema } from './system-test-accounts.mjs'; -export function resolveAdminH5Root({ - memindLib, - env = process.env, - root = projectRoot, -} = {}) { - const explicitSkillsRoot = env.MEMIND_SKILLS_ROOT?.trim(); - if (explicitSkillsRoot) return explicitSkillsRoot; - - if (memindLib && fs.existsSync(path.join(memindLib, 'skills'))) { - return memindLib; - } - - return env.MEMIND_LIB_ROOT?.trim() ?? path.join(root, '../Memind'); -} - export async function bootstrapAdminServices() { if (!isDatabaseConfigured()) { throw new Error('数据库未配置'); } const memindLib = resolveMemindLib(); - const h5Root = resolveAdminH5Root({ memindLib }); + const h5Root = + process.env.MEMIND_LIB_ROOT?.trim() ?? + path.join(projectRoot, '../Memind'); const pool = createDbPool(); const { loadCreateLlmProviderService } = await import('./llm-provider-loader.mjs'); const createLlmProviderService = await loadCreateLlmProviderService(); diff --git a/server/bootstrap.test.mjs b/server/bootstrap.test.mjs deleted file mode 100644 index c2555a5..0000000 --- a/server/bootstrap.test.mjs +++ /dev/null @@ -1,51 +0,0 @@ -import assert from 'node:assert/strict'; -import fs from 'node:fs'; -import os from 'node:os'; -import path from 'node:path'; -import test from 'node:test'; - -import { resolveAdminH5Root } from './bootstrap.mjs'; - -test('resolveAdminH5Root prefers an explicit skills root', () => { - assert.equal( - resolveAdminH5Root({ - memindLib: '/runtime/memind-lib', - env: { - MEMIND_SKILLS_ROOT: '/srv/platform-skills', - MEMIND_LIB_ROOT: '/srv/legacy-memind', - }, - root: '/srv/admin', - }), - '/srv/platform-skills', - ); -}); - -test('resolveAdminH5Root uses packaged memind-lib skills before the legacy Memind path', () => { - const root = fs.mkdtempSync(path.join(os.tmpdir(), 'memind-adm-skills-')); - const memindLib = path.join(root, 'memind-lib'); - fs.mkdirSync(path.join(memindLib, 'skills'), { recursive: true }); - - try { - assert.equal( - resolveAdminH5Root({ - memindLib, - env: { MEMIND_LIB_ROOT: '/srv/legacy-memind' }, - root, - }), - memindLib, - ); - } finally { - fs.rmSync(root, { recursive: true, force: true }); - } -}); - -test('resolveAdminH5Root keeps the existing development fallback', () => { - assert.equal( - resolveAdminH5Root({ - memindLib: '/missing/memind-lib', - env: { MEMIND_LIB_ROOT: '/srv/memind' }, - root: '/srv/admin', - }), - '/srv/memind', - ); -});