/**
 * Auto Types (Simplified - Stop Hook Feedback Loop)
 *
 * Core principle: The increment's metadata.json status IS the state.
 * No complex session management needed.
 *
 * Extended with Success Criteria for LLM-based completion evaluation.
 */
/**
 * Default success criteria - what most projects need
 */
export const DEFAULT_SUCCESS_CRITERIA = [
    {
        type: 'tasks_complete',
        description: 'All tasks marked complete in tasks.md',
        required: true,
    },
    {
        type: 'acs_satisfied',
        description: 'All acceptance criteria satisfied in spec.md',
        required: true,
    },
];
export const DEFAULT_AUTO_CONFIG = {
    enabled: true,
    maxIterations: 2500,
    maxTurns: 20, // HARD STOP: Max total turns in auto session (never resets during session)
    maxRetries: 20, // Attempts before escalating stuck session warning (resets when work changes)
    requireTests: false, // Set true to require tests pass before completion
    requireValidation: true, // Run sw:validate before completion
    requireJudgeLLM: false, // Set true to require AI quality verification
    requireLLMEval: false, // Set true to use LLM completion evaluation
    maxHours: 600,
    testCommand: 'npm test',
    coverageThreshold: 80,
    enforceTestFirst: false,
    humanGated: {
        patterns: ['deploy', 'migrate', 'publish', 'push --force', 'rm -rf', 'API_KEY', 'SECRET'],
        timeout: 1800,
        neverAutoApprove: ['push --force', 'rm -rf /', 'production deploy'],
    },
    circuitBreakers: {
        failureThreshold: 3,
        resetTimeout: 300,
    },
    sync: {
        batchInterval: 300,
        forceOnComplete: true,
    },
};
//# sourceMappingURL=types.js.map