import { mkdtempSync, rmSync } from 'node:fs'
import { tmpdir } from 'node:os'
import { dirname, join } from 'node:path'
import { after } from 'node:test'
if (!process.env.DB_SQLITE_PATH) {
const testDataDir = mkdtempSync(join(tmpdir(), 'dsh-unit-'))
process.env.DSH_TEST_ISOLATED = '1'
process.env.DB_SQLITE_PATH = join(testDataDir, 'local.db')
if (!process.env.DSH_DATA_ROOT) process.env.DSH_DATA_ROOT = testDataDir
if (!process.env.DSH_AGENT_RUNTIME_HOME) process.env.DSH_AGENT_RUNTIME_HOME = join(testDataDir, 'agent_runtime')
if (!process.env.DSH_SKILLS_ROOT) process.env.DSH_SKILLS_ROOT = join(testDataDir, 'skills')
process.on('exit', () => {
rmSync(testDataDir, { recursive: true, force: true, maxRetries: 5, retryDelay: 50 })
})
}
if (!process.env.DSH_DATA_ROOT && process.env.DB_SQLITE_PATH) {
process.env.DSH_DATA_ROOT = dirname(process.env.DB_SQLITE_PATH)
}
if (!process.env.DSH_AGENT_RUNTIME_HOME && process.env.DSH_DATA_ROOT) {
process.env.DSH_AGENT_RUNTIME_HOME = join(process.env.DSH_DATA_ROOT, 'agent_runtime')
}
if (!process.env.DSH_SKILLS_ROOT && process.env.DSH_DATA_ROOT) {
process.env.DSH_SKILLS_ROOT = join(process.env.DSH_DATA_ROOT, 'skills')
}
after(async () => {
const [{ stopAgentRuntime }, { closeYiTraceDb }] = await Promise.all([
import('../../server/src/engine/agent_kernel/agent_runtime.js'),
import('../../server/src/app/traces/yitrace_service.js'),
])
await Promise.allSettled([stopAgentRuntime(), closeYiTraceDb()])
})