// tools/challenge-spec/resilience-challenge-scenarios.ts — SPEC-034
// Barrel re-export for resilience/concurrency challenge scenarios.
// Signal detectors + validation + cascade: resilience-challenge-scenarios-a.ts
// Rate limit + concurrency + saga: resilience-challenge-scenarios-b.ts
import { hasValidationSignal, hasExternalCallSignal, hasRateLimitSignal, hasConcurrencySignal, hasSagaSignal, generateValidationBoundaryScenarios, generateCascadeFailureScenarios, } from './resilience-challenge-scenarios-a.js';
import { generateRateLimitBypassScenarios, generateConcurrencyScenarios, generateSagaFailureScenarios, } from './resilience-challenge-scenarios-b.js';
export { EXTERNAL_CALL_KEYWORDS, VALIDATION_KEYWORDS, RATE_LIMIT_KEYWORDS, CONCURRENCY_KEYWORDS, SAGA_KEYWORDS, hasExternalCallSignal, hasValidationSignal, hasRateLimitSignal, hasConcurrencySignal, hasSagaSignal, generateValidationBoundaryScenarios, generateCascadeFailureScenarios, } from './resilience-challenge-scenarios-a.js';
export { generateRateLimitBypassScenarios, generateConcurrencyScenarios, generateSagaFailureScenarios, } from './resilience-challenge-scenarios-b.js';
/**
 * Main entry: generate all SPEC-034 resilience/concurrency challenges for a spec.
 */
export function generateResilienceChallengeScenarios(spec, specContent, knowledge) {
    const scenarios = [];
    if (hasValidationSignal(spec, specContent)) {
        scenarios.push(...generateValidationBoundaryScenarios(spec));
    }
    if (hasExternalCallSignal(spec, specContent)) {
        scenarios.push(...generateCascadeFailureScenarios(spec));
    }
    if (hasRateLimitSignal(spec, specContent)) {
        scenarios.push(...generateRateLimitBypassScenarios(spec));
    }
    if (hasConcurrencySignal(spec, specContent)) {
        const concurrencyModel = knowledge.concurrencyModel;
        scenarios.push(...generateConcurrencyScenarios(spec, concurrencyModel ?? 'unknown'));
    }
    if (hasSagaSignal(spec, specContent)) {
        scenarios.push(...generateSagaFailureScenarios(spec));
    }
    return scenarios;
}
//# sourceMappingURL=resilience-challenge-scenarios.js.map