// dispatchers/infra-dispatcher.ts — OTel, Supply Chain, LLM Security, Local-First, Advanced Testing
import { isOtelProject, generateOtelTestDefs, generateOtelTestFiles, } from '../generators/otel-test-generator.js';
import { isSupplyChainProject, generateSupplyChainTestDefs, generateSupplyChainTestFiles, } from '../generators/supply-chain-test-generator.js';
import { isLlmSecurityProject, generateLlmSecurityTestDefs, generateLlmSecurityTestFiles, } from '../generators/llm-security-test-generator.js';
import { isLocalFirstProject, generateLocalFirstTestDefs, generateLocalFirstTestFiles, } from '../generators/local-first-test-generator.js';
import { isAdvancedTestingProject, generateAdvancedTestingDefs, generateAdvancedTestingFiles, } from '../generators/advanced-testing-generator.js';
export function dispatchInfra(spec, knowledge, testDir, _testFramework, _slug, autoGenerate, _testExt, unitTests, integrationTests, testFiles) {
    if (isOtelProject(knowledge)) {
        const otelDefs = generateOtelTestDefs(spec.title, testDir);
        unitTests.push(...otelDefs.filter((d) => d.type === 'unit'));
        integrationTests.push(...otelDefs.filter((d) => d.type === 'integration'));
        testFiles.push(...generateOtelTestFiles(spec, testDir, knowledge.language, autoGenerate));
    }
    if (isSupplyChainProject(knowledge)) {
        integrationTests.push(...generateSupplyChainTestDefs(spec.title, testDir));
        testFiles.push(...generateSupplyChainTestFiles(spec, testDir, knowledge.language, autoGenerate));
    }
    if (isLlmSecurityProject(knowledge)) {
        const llmDefs = generateLlmSecurityTestDefs(spec.title, testDir);
        unitTests.push(...llmDefs.filter((d) => d.type === 'unit'));
        integrationTests.push(...llmDefs.filter((d) => d.type === 'integration'));
        testFiles.push(...generateLlmSecurityTestFiles(spec, testDir, knowledge.language, autoGenerate));
    }
    if (isLocalFirstProject(knowledge)) {
        const localFirstDefs = generateLocalFirstTestDefs(spec.title, testDir);
        unitTests.push(...localFirstDefs.filter((d) => d.type === 'unit'));
        integrationTests.push(...localFirstDefs.filter((d) => d.type === 'integration'));
        testFiles.push(...generateLocalFirstTestFiles(spec, testDir, knowledge.language, autoGenerate));
    }
    if (isAdvancedTestingProject(spec, knowledge)) {
        const advancedDefs = generateAdvancedTestingDefs(spec, testDir);
        unitTests.push(...advancedDefs.filter((d) => d.type === 'unit'));
        integrationTests.push(...advancedDefs.filter((d) => d.type === 'integration'));
        testFiles.push(...generateAdvancedTestingFiles(spec, testDir, knowledge.language, knowledge, autoGenerate));
    }
}
//# sourceMappingURL=infra-dispatcher.js.map