@resolveio/server-lib 22.2.19 → 22.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/managers/error-auto-fix.manager.d.ts +5 -0
- package/managers/error-auto-fix.manager.js +145 -70
- package/managers/error-auto-fix.manager.js.map +1 -1
- package/managers/slow-query-verifier.manager.d.ts +8 -0
- package/managers/slow-query-verifier.manager.js +311 -194
- package/managers/slow-query-verifier.manager.js.map +1 -1
- package/managers/subscription.manager.d.ts +1 -0
- package/managers/subscription.manager.js +80 -34
- package/managers/subscription.manager.js.map +1 -1
- package/managers/worker-dispatcher.manager.js +60 -6
- package/managers/worker-dispatcher.manager.js.map +1 -1
- package/methods/app-settings.js +2 -2
- package/methods/app-settings.js.map +1 -1
- package/package.json +1 -1
- package/server-app.js +22 -36
- package/server-app.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/managers/error-auto-fix.manager.ts"],"names":[],"mappings":"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","file":"error-auto-fix.manager.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString, pad } from '../util/common';\nimport axios, { AxiosRequestConfig } from 'axios';\nimport { createHash } from 'crypto';\nimport { URL } from 'url';\nimport { Users } from '../collections/user.collection';\nimport { buildGeneratedAppAutoFixSummary, buildResolveIOProjectAutoFixDetails } from './customer-notification-content.manager';\nimport { ErrorReportAttachment, ErrorReportPayload } from '../types/error-report';\n\ntype AICoderAppModel = Record<string, any>;\ntype AIDashboardJob = Record<string, any>;\ntype ClientModel = Record<string, any>;\ntype ErrorAutoFixLogModel = Record<string, any>;\n\nexport interface ErrorAutoFixManagerDependencies {\n\tClients?: any;\n\tErrorAutoFixLogs: any;\n\tAICoderApps?: any;\n\tAIDashboardJobs?: any;\n}\n\nconst OPTIONAL_COLLECTION = {\n\tfindOne: () => Promise.resolve(null),\n\tfindById: () => Promise.resolve(null),\n\tfind: () => Promise.resolve([])\n};\n\nlet AICoderApps: any = OPTIONAL_COLLECTION;\nlet AIDashboardJobs: any = OPTIONAL_COLLECTION;\nlet Clients: any = OPTIONAL_COLLECTION;\nlet ErrorAutoFixLogs: any = null;\nlet configuredErrorAutoFixDependencies: ErrorAutoFixManagerDependencies | null = null;\n\nfunction resolveErrorAutoFixManagerDependencies(\n\toverrides?: Partial<ErrorAutoFixManagerDependencies>\n): ErrorAutoFixManagerDependencies {\n\tconst resolved: ErrorAutoFixManagerDependencies = {\n\t\t...(configuredErrorAutoFixDependencies || {} as ErrorAutoFixManagerDependencies),\n\t\t...(overrides || {})\n\t};\n\n\tif (!resolved.ErrorAutoFixLogs) {\n\t\tthrow new Error('ErrorAutoFixManager dependencies are not configured.');\n\t}\n\n\treturn resolved;\n}\n\nfunction applyErrorAutoFixDependencies(dependencies: ErrorAutoFixManagerDependencies): void {\n\tconfiguredErrorAutoFixDependencies = dependencies;\n\tClients = dependencies.Clients || OPTIONAL_COLLECTION;\n\tErrorAutoFixLogs = dependencies.ErrorAutoFixLogs;\n\tAICoderApps = dependencies.AICoderApps || OPTIONAL_COLLECTION;\n\tAIDashboardJobs = dependencies.AIDashboardJobs || OPTIONAL_COLLECTION;\n}\n\nexport function registerErrorAutoFixManagerDependencies(dependencies: ErrorAutoFixManagerDependencies): void {\n\tapplyErrorAutoFixDependencies(dependencies);\n\tensureErrorAutoFixManager();\n}\n\ninterface AutoFixConfig {\n\tenabled: boolean;\n\trepoRoot: string;\n\tbaseBranch: string;\n\tbranchPrefix: string;\n\tgithubToken?: string;\n\tgithubOwner: string;\n\tgithubRepo: string;\n\tcommandTimeoutMs: number;\n\tnotifyEmails: string[];\n\tdebugLogging: boolean;\n\tconfigSource: string;\n\topenaiEnvironment?: string;\n\topenaiProjectId?: string;\n\tautoRunEnabled: boolean;\n\tingestKeys: string[];\n\tdashboardWorkflowEnabled: boolean;\n\tdashboardFallbackToGithub: boolean;\n\tdashboardWaitTimeoutMs: number;\n\tdashboardPublishRequired: boolean;\n\tmaxAutoRunAttemptsPerIssue: number;\n\tescalationEmails: string[];\n}\n\ninterface ErrorEmail {\n\tkey: string;\n\tsubject: string;\n\tbody: string;\n\tfrom?: string;\n\tmessageId?: string;\n\thash?: string;\n\trawHash?: string;\n\tissueHash?: string;\n\tlogId?: string;\n\traw: string;\n\tfromAddress?: string;\n\tid_client?: string;\n\tclient_name?: string;\n\tsource_type?: 'app' | 'infrastructure' | 'noise';\n\tclassification_reason?: string;\n\topenai_environment?: string;\n\tsourceApp?: string;\n\tsourceEnvironment?: string;\n\tseverity?: string;\n\treportedBy?: string;\n\treportMetadata?: Record<string, any>;\n\treportContext?: Record<string, any>;\n\tattachments?: ErrorReportAttachment[];\n\treportedAt?: Date;\n}\n\ninterface AutoFixResult {\n\tstatus: 'skipped' | 'failed' | 'success' | 'in_progress';\n\temail: ErrorEmail;\n\terror?: string;\n\tbranchName?: string;\n\tprUrl?: string;\n\tlog?: ErrorAutoFixLogModel;\n\treason?: string;\n\tsummary?: string;\n\tnotes?: string;\n}\n\ninterface LogReservation {\n\tproceed: boolean;\n\tlog?: ErrorAutoFixLogModel;\n\treason?: string;\n}\n\ninterface EmailClassification {\n\tsource: 'app' | 'infrastructure' | 'noise';\n\tskip: boolean;\n\treason?: string;\n\tnotify?: boolean;\n\tmarkIgnored?: boolean;\n}\n\ninterface LibraryIssueGateDecision {\n\tblocked: boolean;\n\treason?: string;\n\tevidence: string[];\n}\n\nconst INFRA_SUBJECT_KEYWORDS = [\n\t'failed snapshot',\n\t'replica set',\n\t'data size used',\n\t'oplog',\n\t'lock during backup',\n\t'backup',\n\t'no primary',\n\t'no secondary',\n\t'preferred primary',\n\t'exceeding memory',\n\t'exceeding storage',\n\t'unhealthy status',\n\t'disconnected status',\n\t'replication lag',\n\t'database storage size',\n\t'compacting collections',\n\t'failed connection',\n\t'heartbeat',\n\t'high cpu usage',\n\t'high ram usage'\n];\nconst MONGO_SOURCE_KEYWORDS = [\n\t'mongo-explorer',\n\t'mongo explorer',\n\t'mongo-manager',\n\t'mongo manager',\n\t'mongomanager',\n\t'mongodb'\n];\nconst MONGO_TEXT_PATTERNS: RegExp[] = [\n\t/\\[mongo\\]/i,\n\t/\\bmongo(?:db)?\\s+(?:server\\s+)?error\\b/i,\n\t/\\bmongoservererror\\b/i,\n\t/\\bmongonetwork(?:timeout)?error\\b/i,\n\t/\\bmongonetworktimeouterror\\b/i\n];\nconst DEFAULT_ERROR_ALERT_EMAIL = 'dev@resolveio.com';\nconst MAX_LOCAL_NOTIFICATION_USERS = 5000;\nconst LIBRARY_MARKER_PATTERNS: Array<{label: string; pattern: RegExp}> = [\n\t{label: 'node_modules stack', pattern: /(?:^|[\\/\\\\])node_modules(?:[\\/\\\\]|$)/i},\n\t{label: '@resolveio/client-lib', pattern: /@resolveio\\/client-lib(?:-[a-z0-9-]+)?/i},\n\t{label: '@resolveio/server-lib', pattern: /@resolveio\\/server-lib/i},\n\t{label: 'resolveio-client-lib path', pattern: /(?:^|[\\/\\\\])resolveio-client-lib(?:[\\/\\\\]|$)/i},\n\t{label: 'resolveio-server-lib path', pattern: /(?:^|[\\/\\\\])resolveio-server-lib(?:[\\/\\\\]|$)/i},\n\t{label: 'base template path', pattern: /(?:^|[\\/\\\\])aicoder[\\/\\\\]templates[\\/\\\\]base_(?:small|medium|large|tool)(?:[\\/\\\\]|$)/i}\n];\nconst APP_OWNED_PATH_PATTERN = /(?:^|[\\/\\\\])(angular[\\/\\\\]app|server[\\/\\\\]src)(?:[\\/\\\\]|$)/i;\nconst FILE_PATH_PATTERN = /(?:webpack:\\/\\/\\/?|\\/|\\.\\/|[A-Za-z]:\\\\)[^\\s'\"`]+?\\.(?:ts|tsx|js|jsx|mjs|cjs|html|scss|css)/g;\n\ninterface RepoTarget {\n\towner: string;\n\trepo: string;\n}\n\ninterface GithubPullRequest {\n\tnumber: number;\n\thtml_url: string;\n}\n\ninterface ErrorReportIngestResult {\n\tstatus: 'queued' | 'skipped' | 'duplicate' | 'ignored' | 'success' | 'failed' | 'in_progress';\n\treason?: string;\n\tlog?: ErrorAutoFixLogModel;\n}\n\nexport interface DevErrorReportOptions {\n\tsubject: string;\n\tbody?: string;\n\tsourceApp?: string;\n\tenvironment?: string;\n\tseverity?: string;\n\tfingerprint?: string;\n\tidempotencyKey?: string;\n\tmetadata?: Record<string, any>;\n\tclientId?: string;\n\tclientName?: string;\n\tclientSlug?: string;\n}\n\nexport class ErrorAutoFixManager {\n\tprivate config: AutoFixConfig;\n\tprivate _serverConfig = null;\n\tprivate readonly githubApiBase = 'https://api.github.com';\n\tprivate readonly dashboardMonitors = new Map<string, Promise<void>>();\n\tprivate ready = false;\n\n\tconstructor(serverConfig, dependencies?: Partial<ErrorAutoFixManagerDependencies>) {\n\t\tconst resolvedDependencies = resolveErrorAutoFixManagerDependencies(dependencies);\n\t\tapplyErrorAutoFixDependencies(resolvedDependencies);\n\n\t\tthis._serverConfig = serverConfig || {};\n\t\tthis.config = this.resolveConfig();\n\n\t\tif (!resolvedDependencies.AICoderApps || !resolvedDependencies.AIDashboardJobs) {\n\t\t\tthis.config.dashboardWorkflowEnabled = false;\n\t\t}\n\n\t\tif (!this.config.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.config.dashboardWorkflowEnabled && (!this.config.repoRoot || !this.config.githubOwner || !this.config.githubRepo)) {\n\t\t\tconsole.warn('ErrorAutoFixManager disabled - missing critical configuration.');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ready = true;\n\n\t\t// console.log('ErrorAutoFixManager initialized (HTTP intake mode).');\n\t\t// console.log('ErrorAutoFixManager config source:', this.config.configSource);\n\t\t// if (this.config.debugLogging) {\n\t\t// \tconsole.log('ErrorAutoFixManager debug logging enabled.');\n\t\t// }\n\t\t// if (!this.config.autoRunEnabled) {\n\t\t// \tconsole.log('ErrorAutoFixManager auto-run disabled. Manual OpenAI runs required.');\n\t\t// }\n\t}\n\n\tpublic isReady(): boolean {\n\t\treturn !!(this.ready && this.config?.enabled);\n\t}\n\n\tpublic validateIngestKey(candidate?: string): boolean {\n\t\tconst keys = Array.isArray(this.config?.ingestKeys) ? this.config.ingestKeys.filter(Boolean) : [];\n\n\t\tif (!keys.length) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (!candidate) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn keys.includes(candidate.trim());\n\t}\n\n\tprivate debugLog(message: string, details?: any): void {\n\t\tif (!this.config?.debugLogging) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn;\n\n\t\tif (typeof details === 'undefined') {\n\t\t\tconsole.log(`[ErrorAutoFixManager][debug] ${message}`);\n\t\t}\n\t\telse {\n\t\t\tconsole.log(`[ErrorAutoFixManager][debug] ${message}`, details);\n\t\t}\n\t}\n\n\tprivate resolveConfig(): AutoFixConfig {\n\t\tconst scAutofix = (this._serverConfig && (this._serverConfig.autofix || this._serverConfig.AUTOFIX)) || {};\n\t\tlet notifyEmails: string[] = [];\n\t\tlet escalationEmails: string[] = [];\n\n\t\tif (process.env.AUTOFIX_NOTIFY_EMAILS) {\n\t\t\tnotifyEmails = process.env.AUTOFIX_NOTIFY_EMAILS.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\t\telse if (Array.isArray(scAutofix.notifyEmails)) {\n\t\t\tnotifyEmails = scAutofix.notifyEmails.map(a => (a || '').trim()).filter(Boolean);\n\t\t}\n\t\telse if (typeof scAutofix.notifyEmails === 'string') {\n\t\t\tnotifyEmails = scAutofix.notifyEmails.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\n\t\tif (process.env.AUTOFIX_ESCALATION_EMAILS) {\n\t\t\tescalationEmails = process.env.AUTOFIX_ESCALATION_EMAILS.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\t\telse if (Array.isArray(scAutofix.escalationEmails)) {\n\t\t\tescalationEmails = scAutofix.escalationEmails.map(a => (a || '').trim()).filter(Boolean);\n\t\t}\n\t\telse if (typeof scAutofix.escalationEmails === 'string') {\n\t\t\tescalationEmails = scAutofix.escalationEmails.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\n\t\tconst getString = (envKey: string, scKey: string, fallback = ''): string => {\n\t\t\treturn process.env[envKey] || scAutofix[scKey] || fallback;\n\t\t};\n\n\t\tconst getNumber = (envKey: string, scKey: string, fallback: number) => {\n\t\t\tconst envVal = Number(process.env[envKey]);\n\t\t\tif (!Number.isNaN(envVal) && process.env[envKey] !== undefined) {\n\t\t\t\treturn envVal;\n\t\t\t}\n\t\t\tconst scVal = Number(scAutofix[scKey]);\n\t\t\tif (!Number.isNaN(scVal) && scAutofix[scKey] !== undefined) {\n\t\t\t\treturn scVal;\n\t\t\t}\n\t\t\treturn fallback;\n\t\t};\n\n\t\tconst getBoolean = (envKey: string, scKey: string, fallback = false) => {\n\t\t\tif (typeof process.env[envKey] !== 'undefined') {\n\t\t\t\treturn process.env[envKey] === 'true';\n\t\t\t}\n\t\t\tif (typeof scAutofix[scKey] !== 'undefined') {\n\t\t\t\treturn !!scAutofix[scKey];\n\t\t\t}\n\t\t\treturn fallback;\n\t\t};\n\n\t\tconst parseKeyList = (value: any): string[] => {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn value.map(val => `${val || ''}`.trim()).filter(Boolean);\n\t\t\t}\n\n\t\t\tif (typeof value === 'string') {\n\t\t\t\treturn value.split(',').map(val => val.trim()).filter(Boolean);\n\t\t\t}\n\n\t\t\treturn [];\n\t\t};\n\n\t\tconst normalizePositiveInt = (value: number, fallback: number): number => {\n\t\t\tif (!Number.isFinite(value) || value <= 0) {\n\t\t\t\treturn fallback;\n\t\t\t}\n\t\t\treturn Math.floor(value);\n\t\t};\n\n\t\tconst openaiProjectId = getString('OPENAI_PROJECT_ID', 'openaiProjectId');\n\t\tconst openaiEnvironment = getString('OPENAI_ENVIRONMENT', 'openaiEnvironment', openaiProjectId);\n\t\tconst ingestSource = typeof process.env.AUTOFIX_INGEST_KEYS !== 'undefined'\n\t\t\t? process.env.AUTOFIX_INGEST_KEYS\n\t\t\t: scAutofix.ingestKeys;\n\n\t\treturn {\n\t\t\tenabled: getBoolean('AUTOFIX_ENABLED', 'enabled', false),\n\t\t\trepoRoot: getString('AUTOFIX_REPO_ROOT', 'repoRoot', ''),\n\t\t\tbaseBranch: getString('AUTOFIX_BASE_BRANCH', 'baseBranch', 'main'),\n\t\t\tbranchPrefix: getString('AUTOFIX_BRANCH_PREFIX', 'branchPrefix', 'openai/auto'),\n\t\t\tgithubToken: getString('GITHUB_TOKEN', 'githubToken', getString('AUTOFIX_GITHUB_TOKEN', 'githubToken')),\n\t\t\tgithubOwner: getString('AUTOFIX_GITHUB_OWNER', 'githubOwner', 'resolveio'),\n\t\t\tgithubRepo: getString('AUTOFIX_GITHUB_REPO', 'githubRepo', 'resolveio-all'),\n\t\t\tcommandTimeoutMs: getNumber('AUTOFIX_COMMAND_TIMEOUT_MS', 'commandTimeoutMs', 600000),\n\t\t\tnotifyEmails,\n\t\t\tdebugLogging: getBoolean('AUTOFIX_DEBUG_LOGS', 'debugLogging', false),\n\t\t\tconfigSource: process.env.AUTOFIX_ENABLED ? 'environment' : (Object.keys(scAutofix).length ? 'serverConfig' : 'defaults'),\n\t\t\topenaiEnvironment,\n\t\t\topenaiProjectId,\n\t\t\tautoRunEnabled: getBoolean('AUTOFIX_AUTORUN_ENABLED', 'autoRunEnabled', false),\n\t\t\tingestKeys: parseKeyList(ingestSource),\n\t\t\tdashboardWorkflowEnabled: getBoolean('AUTOFIX_DASHBOARD_WORKFLOW_ENABLED', 'dashboardWorkflowEnabled', true),\n\t\t\tdashboardFallbackToGithub: getBoolean('AUTOFIX_DASHBOARD_FALLBACK_TO_GITHUB', 'dashboardFallbackToGithub', true),\n\t\t\tdashboardWaitTimeoutMs: getNumber('AUTOFIX_DASHBOARD_WAIT_TIMEOUT_MS', 'dashboardWaitTimeoutMs', 45 * 60 * 1000),\n\t\t\tdashboardPublishRequired: getBoolean('AUTOFIX_DASHBOARD_PUBLISH_REQUIRED', 'dashboardPublishRequired', true),\n\t\t\tmaxAutoRunAttemptsPerIssue: normalizePositiveInt(\n\t\t\t\tgetNumber('AUTOFIX_MAX_AUTORUN_ATTEMPTS_PER_ISSUE', 'maxAutoRunAttemptsPerIssue', 3),\n\t\t\t\t3\n\t\t\t),\n\t\t\tescalationEmails\n\t\t};\n\t}\n\n\tprivate extractEmailAddress(value: string): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tlet email = value;\n\t\tconst angleMatch = value.match(/<([^>]+)>/);\n\n\t\tif (angleMatch && angleMatch[1]) {\n\t\t\temail = angleMatch[1];\n\t\t}\n\n\t\temail = email.split(';')[0].split(',')[0];\n\t\treturn email.trim().toLowerCase();\n\t}\n\n\tprivate escapeRegex(value: string): string {\n\t\treturn value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t}\n\n\tprivate async resolveClientForEnvironment(environment?: string): Promise<ClientModel> {\n\t\tconst host = this.extractHostFromUrl(environment);\n\t\tif (!host) {\n\t\t\treturn null;\n\t\t}\n\n\t\ttry {\n\t\t\tconst escaped = this.escapeRegex(host);\n\t\t\tconst query = {\n\t\t\t\twebsite: {\n\t\t\t\t\t$regex: escaped,\n\t\t\t\t\t$options: 'i'\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn await Clients.findOne(query);\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('ErrorAutoFixManager resolveClientForEnvironment error:', err);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate extractHostFromUrl(value?: string): string | null {\n\t\tif (!value) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst trimmed = value.trim();\n\t\tif (!trimmed) {\n\t\t\treturn null;\n\t\t}\n\n\t\ttry {\n\t\t\tconst parsed = new URL(trimmed);\n\t\t\treturn parsed.hostname.toLowerCase();\n\t\t}\n\t\tcatch {\n\t\t\treturn trimmed.toLowerCase();\n\t\t}\n\t}\n\nprivate async resolveClientForReport(report: ErrorReportPayload): Promise<ClientModel> {\n\tif (!report) {\n\t\treturn null;\n\t}\n\n\t\ttry {\n\t\t\tif (report.clientId) {\n\t\t\t\tconst byId = await Clients.findById(report.clientId);\n\t\t\t\tif (byId) {\n\t\t\t\t\treturn byId;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst tryField = async (field: string, value?: string): Promise<ClientModel> => {\n\t\t\t\tif (!value) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst escaped = this.escapeRegex(value);\n\t\t\t\tconst query: {[key: string]: any} = {};\n\t\t\t\tquery[field] = {$regex: `^${escaped}$`, $options: 'i'};\n\t\t\t\treturn await Clients.findOne(query);\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t(await tryField('name', report.clientName)) ||\n\t\t\t\t(await tryField('demo_name', report.clientSlug)) ||\n\t\t\t\t(await tryField('repo', report.clientRepo)) ||\n\t\t\t\t(await this.resolveClientForEnvironment(report.environment))\n\t\t\t);\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('ErrorAutoFixManager resolveClientForReport error:', err);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate determineOpenAIEnvironment(client?: ClientModel): string {\n\t\tconst repoCandidate = (client?.repo || '').trim();\n\n\t\tif (repoCandidate) {\n\t\t\treturn repoCandidate;\n\t\t}\n\n\t\tconst configEnv = (this.config.openaiEnvironment || '').trim();\n\n\t\tif (configEnv) {\n\t\t\treturn configEnv;\n\t\t}\n\n\t\tif ((this.config.githubOwner || '').trim() && (this.config.githubRepo || '').trim()) {\n\t\t\treturn `${this.config.githubOwner}/${this.config.githubRepo}`.trim();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tprivate resolveEnvironmentForTask(email: ErrorEmail, log: ErrorAutoFixLogModel): string {\n\t\tif (email && email.openai_environment && email.openai_environment.trim()) {\n\t\t\treturn email.openai_environment.trim();\n\t\t}\n\n\t\tif (log && log.openai_environment && log.openai_environment.trim()) {\n\t\t\treturn log.openai_environment.trim();\n\t\t}\n\n\t\treturn this.determineOpenAIEnvironment();\n\t}\n\n\n\tprivate buildEmailFromReport(report: ErrorReportPayload): ErrorEmail {\n\t\tconst timestamp = report.reportedAt instanceof Date && !Number.isNaN(report.reportedAt.getTime())\n\t\t\t? report.reportedAt\n\t\t\t: new Date();\n\t\tconst safeMessage = (report.message || '').toString().trim() || 'Unknown error';\n\t\tconst subjectBase = `[AppError] ${report.sourceApp || 'application'}${report.environment ? ` (${report.environment})` : ''}`;\n\t\tconst subject = `${subjectBase} - ${safeMessage.slice(0, 120)}`;\n\t\tconst lines: string[] = [\n\t\t\t`Source App:\\t${report.sourceApp}`,\n\t\t\t`Environment:\\t${report.environment || 'n/a'}`,\n\t\t\t`Severity:\\t${report.severity || 'error'}`,\n\t\t\t`Client Hint:\\t${report.clientName || report.clientSlug || report.clientRepo || report.clientId || 'n/a'}`,\n\t\t\t`Reported By:\\t${report.reportedBy || report.clientEmail || 'n/a'}`,\n\t\t\t`Reported At:\\t${timestamp.toISOString()}`,\n\t\t\t`Message:\\t${safeMessage}`\n\t\t];\n\n\t\tif (report.stack) {\n\t\t\tlines.push('', 'Stack Trace:', report.stack);\n\t\t}\n\n\t\tif (report.context && typeof report.context === 'object' && Object.keys(report.context).length) {\n\t\t\tlines.push('', 'Context JSON:', JSON.stringify(report.context, null, 2));\n\t\t}\n\n\t\tif (report.metadata && typeof report.metadata === 'object' && Object.keys(report.metadata).length) {\n\t\t\tlines.push('', 'Metadata JSON:', JSON.stringify(report.metadata, null, 2));\n\t\t}\n\n\t\tif (Array.isArray(report.attachments) && report.attachments.length) {\n\t\t\tlines.push('', 'Attachments:');\n\t\t\treport.attachments.forEach((att: ErrorReportAttachment) => {\n\t\t\t\tconst desc: string[] = [];\n\t\t\t\tif (att.name) {\n\t\t\t\t\tdesc.push(att.name);\n\t\t\t\t}\n\t\t\t\tif (att.contentType) {\n\t\t\t\t\tdesc.push(att.contentType);\n\t\t\t\t}\n\t\t\t\tif (typeof att.size === 'number') {\n\t\t\t\t\tdesc.push(`${att.size}b`);\n\t\t\t\t}\n\n\t\t\t\tconst summary = desc.length ? desc.join(' | ') : 'attachment';\n\t\t\t\tlines.push(`- ${summary}${att.url ? ` -> ${att.url}` : ''}`);\n\t\t\t});\n\t\t}\n\n\t\tif (report.fingerprint) {\n\t\t\tlines.push('', `Fingerprint:\\t${report.fingerprint}`);\n\t\t}\n\n\t\tif (report.idempotencyKey) {\n\t\t\tlines.push(`Idempotency Key:\\t${report.idempotencyKey}`);\n\t\t}\n\n\t\tconst body = lines.join('\\n');\n\n\t\treturn {\n\t\t\tkey: `report:${timestamp.getTime().toString(36)}:${Math.random().toString(36).slice(2, 10)}`,\n\t\t\tsubject,\n\t\t\tbody,\n\t\t\traw: body,\n\t\t\tfrom: report.reportedBy || report.clientEmail || 'errors@resolveio.com',\n\t\t\tsourceApp: report.sourceApp,\n\t\t\tsourceEnvironment: report.environment,\n\t\t\tseverity: report.severity,\n\t\t\treportedBy: report.reportedBy,\n\t\t\treportMetadata: report.metadata,\n\t\t\treportContext: report.context,\n\t\t\tattachments: Array.isArray(report.attachments) ? report.attachments : [],\n\t\t\topenai_environment: report.clientRepo,\n\t\t\treportedAt: timestamp\n\t\t};\n\t}\n\n\tprivate classifyEmail(email: ErrorEmail): EmailClassification {\n\t\tconst subject = (email.subject || '').toLowerCase();\n\t\tconst body = email.body || '';\n\t\tconst normalizedBody = body.toLowerCase();\n\n\t\tif (\n\t\t\tsubject.includes('autofix') &&\n\t\t\t(normalizedBody.includes('auto-fix workflow') || normalizedBody.includes('autofix workflow'))\n\t\t) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'AutoFix status notification'};\n\t\t}\n\n\t\tif (this.isMongoOriginError(email)) {\n\t\t\treturn {\n\t\t\t\tsource: 'infrastructure',\n\t\t\t\tskip: true,\n\t\t\t\treason: 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tmarkIgnored: true\n\t\t\t};\n\t\t}\n\n\t\tif (subject.includes('[database]') || subject.includes('[server]')) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: 'Infrastructure alert (subject tag)'};\n\t\t}\n\n\t\tconst infraKeyword = INFRA_SUBJECT_KEYWORDS.find(keyword => subject.includes(keyword));\n\t\tif (infraKeyword) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: `Infrastructure alert (${infraKeyword})`};\n\t\t}\n\n\t\tif (!body.trim()) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'Empty error payload'};\n\t\t}\n\n\t\tconst emptyErrorsRegex = /errors\\s*[\\r\\n]+(\\{\\s*\\}|\\[\\s*\\])/i;\n\t\tif (emptyErrorsRegex.test(body)) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'Empty error details'};\n\t\t}\n\n\t\tif (subject.includes('database is down') || normalizedBody.includes('database is down')) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: 'Database outage alert'};\n\t\t}\n\n\t\treturn {source: 'app', skip: false};\n\t}\n\n\tprivate isMongoOriginError(email: ErrorEmail): boolean {\n\t\tconst sourceApp = String(email?.sourceApp || '').toLowerCase();\n\t\tconst sourceEnvironment = String(email?.sourceEnvironment || '').toLowerCase();\n\t\tconst subject = String(email?.subject || '').toLowerCase();\n\t\tconst body = String(email?.body || '');\n\n\t\tconst sourceMatches = MONGO_SOURCE_KEYWORDS.some(keyword =>\n\t\t\tsourceApp.includes(keyword) || sourceEnvironment.includes(keyword)\n\t\t);\n\t\tif (sourceMatches) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst text = `${subject}\\n${body}`;\n\t\treturn MONGO_TEXT_PATTERNS.some(pattern => pattern.test(text));\n\t}\n\n\tprivate generateRawEmailHash(email: ErrorEmail): string {\n\t\treturn createHash('sha256').update(`${email.subject || ''}\\n${email.body || ''}`, 'utf8').digest('hex');\n\t}\n\n\tprivate generateIssueHash(email: ErrorEmail): string {\n\t\tconst subject = this.normalizeTextForHash(email.subject || '');\n\t\tconst body = this.normalizeBodyForHash(email.body || '');\n\t\treturn createHash('sha256').update(`${subject}\\n${body}`, 'utf8').digest('hex');\n\t}\n\n\tprivate normalizeTextForHash(value: string): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst normalized = value\n\t\t\t.replace(/\\r/g, '\\n')\n\t\t\t.toLowerCase()\n\t\t\t.replace(/0x[0-9a-f]+/gi, '0x#')\n\t\t\t.replace(/\\b[0-9a-f]{7,64}\\b/gi, '#')\n\t\t\t.replace(/\\b[0-9]{4}[-/][0-9]{2}[-/][0-9]{2}(?:[ t][0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]{1,6})?)?\\b/g, '#datetime#')\n\t\t\t.replace(/\\b[0-9]{2}:[0-9]{2}:[0-9]{2}\\b/g, '#time#')\n\t\t\t.replace(/[0-9]+/g, '#')\n\t\t\t.replace(/[^\\S\\n]+/g, ' ')\n\t\t\t.split('\\n')\n\t\t\t.map(line => line.trim())\n\t\t\t.filter(Boolean)\n\t\t\t.slice(0, 60)\n\t\t\t.join('\\n');\n\n\t\treturn normalized.length > 4000 ? normalized.slice(0, 4000) : normalized;\n\t}\n\n\tprivate normalizeBodyForHash(body: string): string {\n\t\tif (!body) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst withoutStackNoise = body\n\t\t\t.replace(/=+\\s*stack trace\\s*=+/gi, 'stack trace')\n\t\t\t.replace(/-{3,}/g, '-')\n\t\t\t.replace(/\\[[^\\]]*request id[^\\]]*\\]/gi, '[request id]')\n\t\t\t.replace(/guid:[^\\s]+/gi, 'guid:#')\n\t\t\t.replace(/request id:[^\\s]+/gi, 'request id:#')\n\t\t\t.replace(/correlation id:[^\\s]+/gi, 'correlation id:#');\n\n\t\treturn this.normalizeTextForHash(withoutStackNoise);\n\t}\n\n\tprivate parseRepoTarget(env: string): RepoTarget {\n\t\tconst trimmed = (env || '').trim();\n\t\tif (!trimmed) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst [owner, repo] = trimmed.split('/', 2);\n\t\tif (!owner || !repo) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\towner: owner.trim(),\n\t\t\trepo: repo.trim()\n\t\t};\n\t}\n\n\tprivate buildWorkBranch(hash: string): string {\n\t\tconst shortHash = (hash || '').toLowerCase().replace(/[^a-z0-9]/g, '').slice(0, 12) || 'autofix';\n\t\tconst prefix = (this.config.branchPrefix || 'openai/auto').trim();\n\t\tif (!prefix) {\n\t\t\treturn shortHash;\n\t\t}\n\n\t\tconst segments = prefix.split('/').map(segment => segment.trim()).filter(Boolean);\n\t\tconst sanitized = segments.map(segment => segment.replace(/[^a-zA-Z0-9._-]/g, '-'));\n\t\treturn `${sanitized.join('/')}/${shortHash}`;\n\t}\n\n\tprivate normalizeEmailText(value: string, limit = 20000): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst cleaned = value.replace(/\\r/g, '');\n\t\tif (cleaned.length <= limit) {\n\t\t\treturn cleaned;\n\t\t}\n\n\t\treturn `${cleaned.slice(0, limit)}\\n... (truncated)`;\n\t}\n\n\tprivate buildContextMarkdown(email: ErrorEmail, identifier: string, normalizedBody: string): string {\n\t\tconst lines: string[] = [\n\t\t\t`# OpenAI Error Context: ${identifier}`,\n\t\t\t'',\n\t\t\t`**Subject**: ${email.subject || '(no subject)'}`,\n\t\t\temail.fromAddress ? `**From**: ${email.fromAddress}` : undefined,\n\t\t\temail.client_name ? `**Client**: ${email.client_name}` : undefined,\n\t\t\temail.source_type ? `**Classification**: ${email.source_type}${email.classification_reason ? ` (${email.classification_reason})` : ''}` : undefined,\n\t\t\temail.id_client ? `**Client Id**: ${email.id_client}` : undefined,\n\t\t\t'',\n\t\t\t'## Body',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'_Generated by ErrorAutoFixManager_'\n\t\t];\n\n\t\treturn lines.filter(line => typeof line !== 'undefined').join('\\n');\n\t}\n\n\tprivate buildOpenAIComment(email: ErrorEmail, contextPath: string, normalizedBody: string): string {\n\t\tconst lines: string[] = [\n\t\t\t'@openai review',\n\t\t\t'',\n\t\t\t`**Email Subject**: ${email.subject || '(no subject)'}`,\n\t\t\temail.fromAddress ? `**From**: ${email.fromAddress}` : undefined,\n\t\t\temail.client_name ? `**Client**: ${email.client_name}` : undefined,\n\t\t\tcontextPath ? `Context file: \\`${contextPath}\\`` : undefined,\n\t\t\t'',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'Please investigate this error and propose a minimal, safe fix.'\n\t\t];\n\n\t\treturn lines.filter(line => typeof line !== 'undefined').join('\\n');\n\t}\n\n\tprivate formatGithubError(error: any): string {\n\t\tif (!error) {\n\t\t\treturn 'GitHub request failed.';\n\t\t}\n\n\t\tconst status = error?.response?.status;\n\t\tconst message = error?.response?.data?.message || error?.message || 'GitHub request failed.';\n\n\t\tif (status) {\n\t\t\treturn `GitHub API error (${status}): ${message}`;\n\t\t}\n\n\t\treturn `GitHub API error: ${message}`;\n\t}\n\n\tprivate buildGithubAuthHeader(token?: string): string {\n\t\tconst trimmed = (token || '').trim();\n\t\tif (!trimmed) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (/^(token|Bearer)\\s+/i.test(trimmed)) {\n\t\t\treturn trimmed;\n\t\t}\n\n\t\tif (trimmed.includes('.') && !trimmed.startsWith('gh')) {\n\t\t\treturn `Bearer ${trimmed}`;\n\t\t}\n\n\t\treturn `token ${trimmed}`;\n\t}\n\n\tprivate async githubRequest<T>(config: AxiosRequestConfig, allow404 = false): Promise<T> {\n\t\tconst authHeader = this.buildGithubAuthHeader(this.config.githubToken);\n\t\tconst headers = {\n\t\t\t...(authHeader ? {Authorization: authHeader} : {}),\n\t\t\tAccept: 'application/vnd.github+json',\n\t\t\t'User-Agent': 'ResolveIO-AutoFix',\n\t\t\t'X-GitHub-Api-Version': '2022-11-28'\n\t\t};\n\n\t\tconst finalConfig: AxiosRequestConfig = {\n\t\t\t...config,\n\t\t\tbaseURL: this.githubApiBase,\n\t\t\theaders: {\n\t\t\t\t...headers,\n\t\t\t\t...(config.headers || {})\n\t\t\t},\n\t\t\ttimeout: Math.min(Math.max(this.config.commandTimeoutMs || 600000, 1000), 120000)\n\t\t};\n\n\t\ttry {\n\t\t\tconst response = await axios.request<T>(finalConfig);\n\t\t\treturn response.data;\n\t\t}\n\t\tcatch (err) {\n\t\t\tconst status = err?.response?.status;\n\t\t\tif (allow404 && status === 404) {\n\t\t\t\treturn null as unknown as T;\n\t\t\t}\n\t\t\tthrow new Error(this.formatGithubError(err));\n\t\t}\n\t}\n\n\tprivate async resolveBaseBranch(target: RepoTarget): Promise<string> {\n\t\tconst fallback = (this.config.baseBranch || 'main').trim();\n\t\ttry {\n\t\t\tconst repo = await this.githubRequest<{default_branch?: string}>(\n\t\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}`}\n\t\t\t);\n\t\t\tconst defaultBranch = (repo?.default_branch || '').trim();\n\t\t\treturn defaultBranch || fallback;\n\t\t}\n\t\tcatch (err) {\n\t\t\tthis.debugLog('Failed to fetch default branch. Falling back to configured branch.', {\n\t\t\t\ttarget,\n\t\t\t\terror: err?.message\n\t\t\t});\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\tprivate async getBranchSha(target: RepoTarget, branch: string): Promise<string> {\n\t\tconst ref = await this.githubRequest<{object?: {sha?: string}}>(\n\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}/git/ref/heads/${branch}`}\n\t\t);\n\t\tconst sha = ref?.object?.sha;\n\t\tif (!sha) {\n\t\t\tthrow new Error(`Base branch ${branch} not found.`);\n\t\t}\n\t\treturn sha;\n\t}\n\n\tprivate async ensureBranch(target: RepoTarget, newBranch: string, baseBranch: string, baseSha: string): Promise<void> {\n\t\tconst existing = await this.githubRequest<any>(\n\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}/git/ref/heads/${newBranch}`},\n\t\t\ttrue\n\t\t);\n\t\tif (existing) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/git/refs`,\n\t\t\t\tdata: {\n\t\t\t\t\tref: `refs/heads/${newBranch}`,\n\t\t\t\t\tsha: baseSha\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async upsertContextFile(target: RepoTarget, branch: string, contextPath: string, content: string): Promise<void> {\n\t\tconst encodedPath = encodeURIComponent(contextPath).replace(/%2F/g, '/');\n\t\tconst existing = await this.githubRequest<any>(\n\t\t\t{\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/contents/${encodedPath}`,\n\t\t\t\tparams: {ref: branch}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t\tconst sha = existing && existing.sha ? existing.sha : undefined;\n\t\tconst commitMessage = `chore(openai): update error context ${contextPath}`;\n\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/contents/${encodedPath}`,\n\t\t\t\tdata: {\n\t\t\t\t\tmessage: commitMessage.slice(0, 200),\n\t\t\t\t\tcontent: Buffer.from(content, 'utf8').toString('base64'),\n\t\t\t\t\tbranch,\n\t\t\t\t\tsha\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async findOpenPullRequest(target: RepoTarget, branch: string, base: string): Promise<GithubPullRequest> {\n\t\tconst prs = await this.githubRequest<GithubPullRequest[]>(\n\t\t\t{\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/pulls`,\n\t\t\t\tparams: {\n\t\t\t\t\tstate: 'open',\n\t\t\t\t\thead: `${target.owner}:${branch}`,\n\t\t\t\t\tbase,\n\t\t\t\t\tper_page: 1\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tif (prs && prs.length) {\n\t\t\treturn prs[0];\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate async createPullRequest(target: RepoTarget, branch: string, base: string, title: string, body: string): Promise<GithubPullRequest> {\n\t\tconst pr = await this.githubRequest<GithubPullRequest>(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/pulls`,\n\t\t\t\tdata: {\n\t\t\t\t\ttitle,\n\t\t\t\t\thead: branch,\n\t\t\t\t\tbase,\n\t\t\t\t\tbody\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\treturn pr;\n\t}\n\n\tprivate async commentOnPullRequest(target: RepoTarget, prNumber: number, body: string): Promise<void> {\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/issues/${prNumber}/comments`,\n\t\t\t\tdata: {\n\t\t\t\t\tbody\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async reserveLog(email: ErrorEmail, client?: ClientModel): Promise<LogReservation> {\n\t\tconst hash = email.hash;\n\t\tconst rawHash = email.rawHash || hash;\n\t\tconst now = email.reportedAt || new Date();\n\n\t\tlet existing: ErrorAutoFixLogModel = null;\n\n\t\tif (hash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({issue_hash: hash});\n\t\t}\n\n\t\tif (!existing && rawHash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({email_hash: rawHash});\n\t\t}\n\n\t\tif (!existing && hash && hash !== rawHash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({email_hash: hash});\n\t\t}\n\n\t\tif (existing) {\n\t\t\tawait this.markDuplicate(existing._id, now);\n\t\t\tconst updatedExisting = await ErrorAutoFixLogs.findOne({_id: existing._id}) || existing;\n\n\t\t\tconst metaUpdate: Partial<ErrorAutoFixLogModel> = {};\n\n\t\t\tif (hash && (!updatedExisting.issue_hash || updatedExisting.issue_hash !== hash)) {\n\t\t\t\tmetaUpdate.issue_hash = hash;\n\t\t\t}\n\n\t\t\tif (rawHash && (!updatedExisting.email_hash || updatedExisting.email_hash !== rawHash)) {\n\t\t\t\tmetaUpdate.email_hash = rawHash;\n\t\t\t}\n\n\t\t\tif (email.fromAddress && email.fromAddress !== updatedExisting.from_email) {\n\t\t\t\tmetaUpdate.from_email = email.fromAddress;\n\t\t\t}\n\n\t\t\tif (client) {\n\t\t\t\tif (!updatedExisting.id_client || updatedExisting.id_client !== client._id) {\n\t\t\t\t\tmetaUpdate.id_client = client._id;\n\t\t\t\t}\n\n\t\t\t\tif (!updatedExisting.client_name || updatedExisting.client_name !== client.name) {\n\t\t\t\t\tmetaUpdate.client_name = client.name;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (email.openai_environment && email.openai_environment !== updatedExisting.openai_environment) {\n\t\t\t\tmetaUpdate.openai_environment = email.openai_environment;\n\t\t\t}\n\n\t\t\tif (email.sourceApp && email.sourceApp !== updatedExisting.source_app) {\n\t\t\t\tmetaUpdate.source_app = email.sourceApp;\n\t\t\t}\n\n\t\t\tif (email.sourceEnvironment && email.sourceEnvironment !== updatedExisting.source_environment) {\n\t\t\t\tmetaUpdate.source_environment = email.sourceEnvironment;\n\t\t\t}\n\n\t\t\tif (email.severity && email.severity !== updatedExisting.severity) {\n\t\t\t\tmetaUpdate.severity = email.severity;\n\t\t\t}\n\n\t\t\tif (email.reportedBy && email.reportedBy !== updatedExisting.reported_by) {\n\t\t\t\tmetaUpdate.reported_by = email.reportedBy;\n\t\t\t}\n\n\t\t\tif (typeof email.reportMetadata !== 'undefined') {\n\t\t\t\tmetaUpdate.report_metadata = email.reportMetadata;\n\t\t\t}\n\n\t\t\tif (typeof email.reportContext !== 'undefined') {\n\t\t\t\tmetaUpdate.report_context = email.reportContext;\n\t\t\t}\n\n\t\t\tif (typeof email.attachments !== 'undefined') {\n\t\t\t\tmetaUpdate.attachments = email.attachments;\n\t\t\t}\n\n\t\t\tmetaUpdate.last_reported_at = now;\n\n\t\t\tif (Object.keys(metaUpdate).length) {\n\t\t\t\tawait this.updateLog(updatedExisting._id, metaUpdate);\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'completed') {\n\t\t\t\tconst reactivated = (await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t$set: {\n\t\t\t\t\t\tstatus: 'pending',\n\t\t\t\t\t\tignored: false,\n\t\t\t\t\t\tlast_error: '',\n\t\t\t\t\t\topenai_task_id: '',\n\t\t\t\t\t\tbranch_name: '',\n\t\t\t\t\t\tpr_url: ''\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t})) || updatedExisting;\n\n\t\t\t\treturn {\n\t\t\t\t\tproceed: true,\n\t\t\t\t\tlog: reactivated\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.ignored) {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'ignored'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.config.autoRunEnabled && (updatedExisting.status === 'failed' || updatedExisting.status === 'skipped') && !updatedExisting.ignored) {\n\t\t\t\tconst attemptsUsed = Number.isFinite(Number(updatedExisting.attempt_count))\n\t\t\t\t\t? Number(updatedExisting.attempt_count)\n\t\t\t\t\t: 0;\n\t\t\t\tconst maxAttempts = Number.isFinite(Number(this.config.maxAutoRunAttemptsPerIssue))\n\t\t\t\t\t? Number(this.config.maxAutoRunAttemptsPerIssue)\n\t\t\t\t\t: 0;\n\t\t\t\tif (maxAttempts > 0 && attemptsUsed >= maxAttempts) {\n\t\t\t\t\tconst reason = `Auto-fix attempt budget reached (${attemptsUsed}/${maxAttempts}).`;\n\t\t\t\t\tconst exhausted = (await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\t\t\tignored: true,\n\t\t\t\t\t\t\tlast_error: `${reason} Marked ignored pending manual intervention.`,\n\t\t\t\t\t\t\tlast_result_at: now,\n\t\t\t\t\t\t\tupdatedAt: now\n\t\t\t\t\t\t}\n\t\t\t\t\t}, {\n\t\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t\t})) || updatedExisting;\n\n\t\t\t\t\tawait this.sendEscalationNotice(exhausted, reason);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tproceed: false,\n\t\t\t\t\t\tlog: exhausted,\n\t\t\t\t\t\treason: 'budget_exhausted'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst resumed = await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t$inc: {\n\t\t\t\t\t\tattempt_count: 1\n\t\t\t\t\t},\n\t\t\t\t\t$set: {\n\t\t\t\t\t\tstatus: 'in_progress',\n\t\t\t\t\t\tlast_attempt_at: now,\n\t\t\t\t\t\topenai_task_id: '',\n\t\t\t\t\t\tbranch_name: '',\n\t\t\t\t\t\tpr_url: '',\n\t\t\t\t\t\tlast_error: ''\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tproceed: true,\n\t\t\t\t\tlog: resumed || updatedExisting\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'in_progress') {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'in_progress'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'success') {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'success'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tproceed: false,\n\t\t\t\tlog: updatedExisting,\n\t\t\t\treason: 'duplicate'\n\t\t\t};\n\t\t}\n\n\t\tconst counterValue = await ResolveIOServer.getMainServer().getMethodManager().callMethod('incCounter', 'autofix_error');\n\t\tconst counterString = pad(counterValue, 6);\n\n\t\tconst doc: ErrorAutoFixLogModel = {\n\t\t\t_id: objectIdHexString(),\n\t\t\temail_hash: rawHash,\n\t\t\tissue_hash: hash,\n\t\t\tsubject: email.subject,\n\t\t\tmessage_id: email.messageId,\n\t\t\tbody: email.body,\n\t\t\tstatus: this.config.autoRunEnabled ? 'in_progress' : 'pending',\n\t\t\tignored: false,\n\t\t\tattempt_count: this.config.autoRunEnabled ? 1 : 0,\n\t\t\tduplicate_count: 0,\n\t\t\tautofix_error_count: counterValue,\n\t\t\tautofix_error_count_string: counterString,\n\t\t\tfirst_seen_at: now,\n\t\t\tlast_attempt_at: this.config.autoRunEnabled ? now : undefined,\n\t\t\tfrom_email: email.fromAddress || '',\n\t\t\tid_client: client?._id,\n\t\t\tclient_name: client?.name,\n\t\t\topenai_environment: email.openai_environment || this.determineOpenAIEnvironment(client),\n\t\t\tsource_app: email.sourceApp,\n\t\t\tsource_environment: email.sourceEnvironment,\n\t\t\tseverity: email.severity,\n\t\t\treported_by: email.reportedBy || email.fromAddress || '',\n\t\t\tlast_reported_at: now,\n\t\t\treport_metadata: email.reportMetadata,\n\t\t\treport_context: email.reportContext,\n\t\t\tattachments: email.attachments\n\t\t};\n\n\t\tawait ErrorAutoFixLogs.insertOne(doc as any);\n\n\t\treturn {\n\t\t\tproceed: true,\n\t\t\tlog: doc\n\t\t};\n\t}\n\n\tprivate async markDuplicate(logId: string, timestamp: Date): Promise<void> {\n\t\tawait ErrorAutoFixLogs.updateOne({_id: logId}, {\n\t\t\t$inc: {\n\t\t\t\tduplicate_count: 1\n\t\t\t},\n\t\t\t$set: {\n\t\t\t\tlast_duplicate_at: timestamp,\n\t\t\t\tlast_reported_at: timestamp,\n\t\t\t\tupdatedAt: timestamp\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate async updateLog(logId: string, set: Partial<ErrorAutoFixLogModel>, inc?: {[key: string]: number}): Promise<ErrorAutoFixLogModel> {\n\t\tconst cleanedSet: {[key: string]: any} = {};\n\t\tconst rawSet: {[key: string]: any} = set ? {...set} : {};\n\n\t\tObject.keys(rawSet).forEach(key => {\n\t\t\tif (typeof rawSet[key] !== 'undefined') {\n\t\t\t\tcleanedSet[key] = rawSet[key];\n\t\t\t}\n\t\t});\n\n\t\tcleanedSet.updatedAt = new Date();\n\n\t\tconst update: any = {\n\t\t\t$set: cleanedSet\n\t\t};\n\n\t\tif (inc) {\n\t\t\tupdate.$inc = inc;\n\t\t}\n\n\t\tconst result = await ErrorAutoFixLogs.findOneAndUpdate({_id: logId}, update, {\n\t\t\treturnDocument: 'after'\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tprivate getEscalationRecipients(): string[] {\n\t\tconst unique = new Set<string>();\n\t\tconst add = (value: string) => {\n\t\t\tconst normalized = String(value || '').trim().toLowerCase();\n\t\t\tif (!normalized) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tunique.add(normalized);\n\t\t};\n\n\t\t(this.config.escalationEmails || []).forEach(add);\n\t\t(this.config.notifyEmails || []).forEach(add);\n\t\tif (!unique.size) {\n\t\t\tadd(DEFAULT_ERROR_ALERT_EMAIL);\n\t\t}\n\t\treturn Array.from(unique);\n\t}\n\n\tprivate async sendEscalationNotice(log: ErrorAutoFixLogModel, reason: string): Promise<void> {\n\t\tconst recipients = this.getEscalationRecipients();\n\t\tif (!recipients.length || !log?._id) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst identifier = log.autofix_error_count_string || log._id;\n\t\tconst subject = `ResolveIO AutoFix Escalation: ${identifier}`;\n\t\tconst body = [\n\t\t\t'Auto-fix retry budget was exhausted for this recurring issue and further autonomous attempts were stopped.',\n\t\t\t'',\n\t\t\t`Reason: ${reason}`,\n\t\t\t`Issue Log ID: ${log._id}`,\n\t\t\t`Issue Counter: ${log.autofix_error_count_string || 'n/a'}`,\n\t\t\t`Client: ${log.client_name || log.id_client || 'unknown'}`,\n\t\t\t`Source App: ${log.source_app || 'unknown'}`,\n\t\t\t`Environment: ${log.source_environment || log.openai_environment || 'unknown'}`,\n\t\t\t`Attempts: ${log.attempt_count || 0}/${this.config.maxAutoRunAttemptsPerIssue}`,\n\t\t\t`Issue Hash: ${log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t'',\n\t\t\t'The issue is now marked ignored for auto-fix to protect customer token usage. Manual intervention is required.'\n\t\t].join('\\n');\n\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\tfor (const recipient of recipients) {\n\t\t\ttry {\n\t\t\t\tawait methodManager.sendEmail(recipient, subject, body);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Failed sending auto-fix escalation email', {recipient, logId: log._id, error});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate collectLibraryIssueSignalText(email: ErrorEmail, log: ErrorAutoFixLogModel): string {\n\t\tconst attachments = Array.isArray(log?.attachments) ? log.attachments : [];\n\t\tconst attachmentSignals = attachments.map((attachment) => {\n\t\t\treturn [\n\t\t\t\tattachment?.name || '',\n\t\t\t\tattachment?.url || '',\n\t\t\t\tattachment?.contentType || ''\n\t\t\t].filter(Boolean).join(' ');\n\t\t});\n\t\tconst metadata = log?.report_metadata && Object.keys(log.report_metadata).length\n\t\t\t? JSON.stringify(log.report_metadata)\n\t\t\t: '';\n\t\tconst context = log?.report_context && Object.keys(log.report_context).length\n\t\t\t? JSON.stringify(log.report_context)\n\t\t\t: '';\n\t\treturn [\n\t\t\temail?.subject || '',\n\t\t\temail?.body || '',\n\t\t\tlog?.body || '',\n\t\t\tmetadata,\n\t\t\tcontext,\n\t\t\tattachmentSignals.join('\\n')\n\t\t].filter(Boolean).join('\\n');\n\t}\n\n\tprivate evaluateLibraryIssueGate(email: ErrorEmail, log: ErrorAutoFixLogModel): LibraryIssueGateDecision {\n\t\tconst signalText = this.collectLibraryIssueSignalText(email, log);\n\t\tif (!signalText) {\n\t\t\treturn {blocked: false, evidence: []};\n\t\t}\n\n\t\tconst evidence: string[] = [];\n\t\tlet markerHits = 0;\n\t\tfor (const marker of LIBRARY_MARKER_PATTERNS) {\n\t\t\tif (!marker.pattern.test(signalText)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmarkerHits += 1;\n\t\t\tevidence.push(marker.label);\n\t\t}\n\n\t\tconst rawPaths = signalText.match(FILE_PATH_PATTERN) || [];\n\t\tconst normalizedPaths = rawPaths\n\t\t\t.map((value) => String(value || '').trim())\n\t\t\t.filter(Boolean)\n\t\t\t.map((value) => value.replace(/\\\\/g, '/').toLowerCase());\n\t\tconst appOwnedPathCount = normalizedPaths.filter((value) => APP_OWNED_PATH_PATTERN.test(value)).length;\n\t\tconst libraryPathCount = normalizedPaths.filter((value) => {\n\t\t\treturn value.includes('/node_modules/')\n\t\t\t\t|| value.includes('@resolveio/client-lib')\n\t\t\t\t|| value.includes('@resolveio/server-lib')\n\t\t\t\t|| value.includes('/resolveio-client-lib/')\n\t\t\t\t|| value.includes('/resolveio-server-lib/')\n\t\t\t\t|| value.includes('/aicoder/templates/base_');\n\t\t}).length;\n\n\t\tconst shouldBlock = (libraryPathCount > 0 && appOwnedPathCount === 0)\n\t\t\t|| (markerHits >= 2 && appOwnedPathCount === 0)\n\t\t\t|| (markerHits >= 1 && libraryPathCount >= 2);\n\t\tif (!shouldBlock) {\n\t\t\treturn {blocked: false, evidence};\n\t\t}\n\n\t\tconst compactEvidence = Array.from(new Set([\n\t\t\t...evidence,\n\t\t\t...(libraryPathCount ? [`library_paths=${libraryPathCount}`] : []),\n\t\t\t...(appOwnedPathCount ? [`app_paths=${appOwnedPathCount}`] : [])\n\t\t])).slice(0, 8);\n\t\treturn {\n\t\t\tblocked: true,\n\t\t\treason: 'Root cause appears to be in shared ResolveIO libraries/templates; app-level auto-fix was blocked.',\n\t\t\tevidence: compactEvidence\n\t\t};\n\t}\n\n\tprivate async sendLibraryIssueNotice(log: ErrorAutoFixLogModel, reason: string, evidence: string[]): Promise<void> {\n\t\tconst recipients = this.getEscalationRecipients();\n\t\tif (!recipients.length || !log?._id) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst identifier = log.autofix_error_count_string || log._id;\n\t\tconst subject = `ResolveIO AutoFix Blocked (Library): ${identifier}`;\n\t\tconst body = [\n\t\t\t'Auto-fix was blocked because the issue appears library-owned, so no autonomous patch was attempted.',\n\t\t\t'',\n\t\t\t`Reason: ${reason}`,\n\t\t\tevidence.length ? `Evidence: ${evidence.join(', ')}` : '',\n\t\t\t`Issue Log ID: ${log._id}`,\n\t\t\t`Issue Counter: ${log.autofix_error_count_string || 'n/a'}`,\n\t\t\t`Client: ${log.client_name || log.id_client || 'unknown'}`,\n\t\t\t`Source App: ${log.source_app || 'unknown'}`,\n\t\t\t`Environment: ${log.source_environment || log.openai_environment || 'unknown'}`,\n\t\t\t`Issue Hash: ${log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t'',\n\t\t\t'Manual library release/fix is required. App-level auto-fix remains blocked for this issue to protect credits.'\n\t\t].filter(Boolean).join('\\n');\n\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\tfor (const recipient of recipients) {\n\t\t\ttry {\n\t\t\t\tawait methodManager.sendEmail(recipient, subject, body);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Failed sending library-issue auto-fix email', {recipient, logId: log._id, error});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async blockLibraryOwnedIssue(email: ErrorEmail, log: ErrorAutoFixLogModel, gate: LibraryIssueGateDecision): Promise<AutoFixResult> {\n\t\tconst reason = gate.reason || 'Library-owned issue detected.';\n\t\tconst details = gate.evidence.length ? `Signals: ${gate.evidence.join(', ')}` : '';\n\t\tconst message = [reason, details].filter(Boolean).join(' ');\n\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\tstatus: 'skipped',\n\t\t\tignored: true,\n\t\t\tlast_error: message,\n\t\t\tlast_result_at: new Date()\n\t\t})) || log;\n\t\tawait this.notifyCustomerWorkflowStatus('blocked_library_issue', email, updated, {\n\t\t\terror: reason,\n\t\t\tnotes: details\n\t\t});\n\t\tawait this.sendLibraryIssueNotice(updated, reason, gate.evidence);\n\t\treturn {\n\t\t\tstatus: 'skipped',\n\t\t\temail,\n\t\t\terror: message,\n\t\t\tlog: updated,\n\t\t\treason: 'library_issue_blocked',\n\t\t\tsummary: updated.plan_summary || email.subject,\n\t\t\tnotes: details\n\t\t};\n\t}\n\n\tprivate shouldNotifySkip(reason: string): boolean {\n\t\treturn ['in_progress', 'success', 'ignored', 'duplicate', 'pending'].indexOf(reason) === -1;\n\t}\n\n\tprivate async isGeneratedAICoderClient(idClient: string): Promise<boolean> {\n\t\tconst normalizedClientId = String(idClient || '').trim();\n\t\tif (!normalizedClientId) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst match = await AICoderApps.findOne({\n\t\t\tclient_id: normalizedClientId\n\t\t}, {\n\t\t\tprojection: {\n\t\t\t\t_id: 1\n\t\t\t}\n\t\t});\n\n\t\treturn !!match?._id;\n\t}\n\n\tprivate buildAICoderWorkflowSummary(\n\t\tstage: 'detected_autofix_enabled' | 'detected_autofix_disabled' | 'completed_success' | 'completed_failed' | 'blocked_library_issue',\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): string {\n\t\treturn buildGeneratedAppAutoFixSummary(stage, {\n\t\t\tsource_app: String(log?.source_app || email?.sourceApp || '').trim(),\n\t\t\tenvironment: String(log?.source_environment || email?.sourceEnvironment || '').trim(),\n\t\t\tseverity: String(log?.severity || email?.severity || '').trim(),\n\t\t\terror: extra?.error\n\t\t}, extra);\n\t}\n\n\tprivate buildResolveIOProjectWorkflowDetails(\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): string {\n\t\treturn buildResolveIOProjectAutoFixDetails({\n\t\t\tclient_name: log?.client_name || email?.client_name || '',\n\t\t\tissue_counter: log?.autofix_error_count_string || '',\n\t\t\tsource_app: log?.source_app || email?.sourceApp || '',\n\t\t\tenvironment: log?.source_environment || email?.sourceEnvironment || log?.openai_environment || '',\n\t\t\tseverity: log?.severity || email?.severity || '',\n\t\t\tissue_hash: log?.issue_hash || email?.issueHash || log?.email_hash || '',\n\t\t\tlog_id: log?._id || '',\n\t\t\tnotes: extra?.notes,\n\t\t\terror: extra?.error\n\t\t});\n\t}\n\n\tprivate buildLocalInternalUserCriteria(): Record<string, any> {\n\t\treturn {\n\t\t\t$and: [\n\t\t\t\t{\n\t\t\t\t\tis_customer: {\n\t\t\t\t\t\t$ne: true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t$nor: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'other.id_customer': {\n\t\t\t\t\t\t\t\t$exists: true,\n\t\t\t\t\t\t\t\t$nin: ['', null]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid_customer: {\n\t\t\t\t\t\t\t\t$exists: true,\n\t\t\t\t\t\t\t\t$nin: ['', null]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tprivate buildLocalAdminUserCriteria(): Record<string, any> {\n\t\treturn {\n\t\t\t$or: [\n\t\t\t\t{\n\t\t\t\t\t'roles.super_admin': true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.name': {\n\t\t\t\t\t\t$regex: 'admin',\n\t\t\t\t\t\t$options: 'i'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.views': {\n\t\t\t\t\t\t$regex: '^/manage'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.views': '/manage'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tprivate async resolveLocalNotificationUserIds(isGeneratedApp: boolean): Promise<string[]> {\n\t\tconst andClauses: Record<string, any>[] = [\n\t\t\t{\n\t\t\t\tactive: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tusername: {\n\t\t\t\t\t$exists: true\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\tif (isGeneratedApp) {\n\t\t\tandClauses.push(this.buildLocalInternalUserCriteria());\n\t\t}\n\t\telse {\n\t\t\tandClauses.push(this.buildLocalAdminUserCriteria());\n\t\t}\n\n\t\tconst users = await Users.find({\n\t\t\t$and: andClauses\n\t\t}, {\n\t\t\tprojection: {\n\t\t\t\t_id: 1\n\t\t\t},\n\t\t\tlimit: MAX_LOCAL_NOTIFICATION_USERS\n\t\t});\n\n\t\tif (!Array.isArray(users) || !users.length) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst unique = new Set<string>();\n\t\tfor (const user of users) {\n\t\t\tconst idUser = String(user?._id || '').trim();\n\t\t\tif (idUser) {\n\t\t\t\tunique.add(idUser);\n\t\t\t}\n\t\t\tif (unique.size >= MAX_LOCAL_NOTIFICATION_USERS) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn Array.from(unique);\n\t}\n\n\tprivate async notifyCustomerWorkflowStatus(\n\t\tstage: 'detected_autofix_enabled' | 'detected_autofix_disabled' | 'completed_success' | 'completed_failed' | 'blocked_library_issue',\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): Promise<void> {\n\t\tconst idClient = String(log?.id_client || email?.id_client || '').trim();\n\t\tlet isGeneratedApp = false;\n\t\tif (idClient) {\n\t\t\tisGeneratedApp = await this.isGeneratedAICoderClient(idClient);\n\t\t}\n\t\telse {\n\t\t\tconst resolvedEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\t\tconst app = await this.resolveAutoFixApp(email, log, resolvedEnvironment);\n\t\t\tisGeneratedApp = !!app;\n\t\t}\n\n\t\tif (!isGeneratedApp && stage !== 'completed_success') {\n\t\t\treturn;\n\t\t}\n\n\t\tconst issueKey = String(log?.issue_hash || log?.email_hash || email?.issueHash || email?.hash || log?._id || '').trim();\n\t\tconst clientName = String(log?.client_name || email?.client_name || '').trim();\n\t\tconst targetPayload: Record<string, any> = {};\n\t\tif (idClient) {\n\t\t\ttargetPayload.target_type = isGeneratedApp ? 'client_internal' : 'client_admins';\n\t\t\ttargetPayload.id_client = idClient;\n\t\t\ttargetPayload.client_name = clientName || undefined;\n\t\t}\n\t\telse {\n\t\t\tconst idUsers = await this.resolveLocalNotificationUserIds(isGeneratedApp);\n\t\t\tif (!idUsers.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttargetPayload.target_type = 'users';\n\t\t\ttargetPayload.id_users = idUsers;\n\t\t\ttargetPayload.client_name = clientName || undefined;\n\t\t}\n\n\t\tconst basePayload: Record<string, any> = {\n\t\t\t...targetPayload,\n\t\t\tcategory: 'autofix',\n\t\t\tsource: 'error-auto-fix',\n\t\t\tsource_id: String(log?._id || '').trim() || undefined,\n\t\t\tdedupe_key: issueKey ? `autofix:${issueKey}:${stage}` : `autofix:${String(log?._id || '').trim()}:${stage}`,\n\t\t\tmetadata: {\n\t\t\t\tissue_hash: log?.issue_hash || email?.issueHash || '',\n\t\t\t\tlog_id: log?._id || '',\n\t\t\t\tseverity: log?.severity || email?.severity || '',\n\t\t\t\tsource_app: log?.source_app || email?.sourceApp || '',\n\t\t\t\tsource_environment: log?.source_environment || email?.sourceEnvironment || '',\n\t\t\t\terror: extra?.error || '',\n\t\t\t\tnotes: extra?.notes || ''\n\t\t\t}\n\t\t};\n\n\t\tlet payload: Record<string, any> = {};\n\t\tif (isGeneratedApp) {\n\t\t\tif (stage === 'detected_autofix_enabled') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue detected. Auto-fix is in progress.',\n\t\t\t\t\tmessage: 'We detected an issue in your app and started an automatic fix workflow. We will notify you when it is complete.',\n\t\t\t\t\tseverity: 'info',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'detected_autofix_disabled') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue detected. Auto-fix is disabled.',\n\t\t\t\t\tmessage: 'We detected an issue, but automatic fixing is not enabled. Please ask the AI assistant to investigate this issue.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'completed_success') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Auto-fix completed successfully.',\n\t\t\t\t\tmessage: 'Your issue was fixed automatically and the update was published.',\n\t\t\t\t\tseverity: 'success',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'blocked_library_issue') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue requires a platform library update.',\n\t\t\t\t\tmessage: 'We detected this issue in shared platform libraries, so app auto-fix was stopped. Our engineering team has been notified to ship a library-level fix.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Auto-fix needs manual review.',\n\t\t\t\t\tmessage: 'We could not complete an automatic fix for this issue. Manual follow-up is required.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tpayload = {\n\t\t\t\ttitle: 'ResolveIO project auto-fix completed',\n\t\t\t\tmessage: `A fix for ${String(log?.source_app || email?.sourceApp || 'the project').trim()} completed successfully.`,\n\t\t\t\tseverity: 'success',\n\t\t\t\tdetails: this.buildResolveIOProjectWorkflowDetails(email, log, extra)\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().callMethod('createCustomerNotification', {\n\t\t\t\t...basePayload,\n\t\t\t\t...payload\n\t\t\t});\n\t\t}\n\t\tcatch (error) {\n\t\t\tthis.debugLog('Failed to create customer auto-fix notification', {\n\t\t\t\tlogId: log?._id,\n\t\t\t\tstage,\n\t\t\t\terror: error?.message || error\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate async delay(ms: number): Promise<void> {\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tawait new Promise(resolve => setTimeout(resolve, ms));\n\t}\n\n\tpublic async reportDevError(options: DevErrorReportOptions): Promise<void> {\n\t\tconst subject = (options?.subject || '').trim() || 'ResolveIO alert';\n\t\tconst body = options?.body || '';\n\t\tconst sourceApp = options?.sourceApp || ResolveIOServer.getClientName() || 'resolveio-server';\n\t\tconst environment = options?.environment || process.env.NODE_ENV || '';\n\t\tconst severity = options?.severity || 'infrastructure';\n\t\tconst fingerprint = (options?.fingerprint || createHash('sha256').update(`${sourceApp}:${environment || 'env'}:${subject}`).digest('hex')).trim();\n\t\tconst metadata = options?.metadata && Object.keys(options.metadata).length ? options.metadata : undefined;\n\n\t\tif (!this.isReady()) {\n\t\t\tconsole.warn('AutoFix manager not ready for dev alert', {subject, environment});\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.ingestErrorReport({\n\t\t\t\tsourceApp,\n\t\t\t\tenvironment,\n\t\t\t\tmessage: subject,\n\t\t\t\tstack: body,\n\t\t\t\tseverity,\n\t\t\t\tmetadata,\n\t\t\t\tfingerprint,\n\t\t\t\tidempotencyKey: options?.idempotencyKey,\n\t\t\t\tclientId: options?.clientId,\n\t\t\t\tclientName: options?.clientName,\n\t\t\t\tclientSlug: options?.clientSlug,\n\t\t\t\treportedBy: 'resolveio-server'\n\t\t\t});\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('Failed to log developer alert', subject, err);\n\t\t}\n\t}\n\n\tpublic async ingestErrorReport(report: ErrorReportPayload): Promise<ErrorReportIngestResult> {\n\t\tif (!this.isReady()) {\n\t\t\tthrow new Error('ErrorAutoFixManager is not enabled.');\n\t\t}\n\n\t\tif (!report || !report.sourceApp || !report.message) {\n\t\t\tthrow new Error('Invalid error report payload.');\n\t\t}\n\n\t\tconst normalizedReport: ErrorReportPayload = {\n\t\t\t...report,\n\t\t\tmessage: (report.message || '').toString(),\n\t\t\tstack: report.stack ? report.stack.toString() : undefined,\n\t\t\tmetadata: report.metadata || undefined,\n\t\t\tcontext: report.context || undefined,\n\t\t\tattachments: Array.isArray(report.attachments) ? report.attachments : undefined,\n\t\t\treportedAt: report.reportedAt instanceof Date && !Number.isNaN(report.reportedAt.getTime()) ? report.reportedAt : new Date()\n\t\t};\n\n\t\tconst email = this.buildEmailFromReport(normalizedReport);\n\t\temail.reportedAt = normalizedReport.reportedAt;\n\t\temail.openai_environment = normalizedReport.clientRepo || email.openai_environment;\n\t\temail.fromAddress = this.extractEmailAddress(normalizedReport.clientEmail || normalizedReport.reportedBy || email.from || '');\n\t\tif (!email.fromAddress && normalizedReport.clientSlug) {\n\t\t\temail.fromAddress = `${normalizedReport.clientSlug}@errors.resolveio.com`;\n\t\t}\n\n\t\tconst rawHash = normalizedReport.idempotencyKey ? normalizedReport.idempotencyKey.trim() : '';\n\t\temail.rawHash = rawHash || this.generateRawEmailHash(email);\n\t\tconst fingerprint = normalizedReport.fingerprint ? normalizedReport.fingerprint.trim() : '';\n\t\tif (fingerprint) {\n\t\t\temail.issueHash = fingerprint;\n\t\t\temail.hash = fingerprint;\n\t\t}\n\t\telse {\n\t\t\temail.issueHash = this.generateIssueHash(email);\n\t\t\temail.hash = email.issueHash || email.rawHash;\n\t\t}\n\n\t\tconst client = await this.resolveClientForReport(normalizedReport);\n\t\tconst reservation = await this.reserveLog(email, client);\n\n\t\tif (!reservation.proceed) {\n\t\t\tif (reservation.reason && this.shouldNotifySkip(reservation.reason)) {\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\temail,\n\t\t\t\t\treason: reservation.reason,\n\t\t\t\t\terror: `Skipped auto-fix (${reservation.reason}).`,\n\t\t\t\t\tlog: reservation.log\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: reservation.reason === 'duplicate' ? 'duplicate' : (reservation.reason as any) || 'skipped',\n\t\t\t\treason: reservation.reason,\n\t\t\t\tlog: reservation.log\n\t\t\t};\n\t\t}\n\n\t\temail.logId = reservation.log._id;\n\t\tconst classification = this.classifyEmail(email);\n\t\tawait this.updateLog(email.logId, {\n\t\t\tid_client: client?._id,\n\t\t\tclient_name: client?.name,\n\t\t\tfrom_email: email.fromAddress,\n\t\t\tsource_type: classification.source,\n\t\t\tclassification_reason: classification.reason || '',\n\t\t\topenai_environment: email.openai_environment || reservation.log.openai_environment || this.determineOpenAIEnvironment(client),\n\t\t\tsource_app: email.sourceApp,\n\t\t\tsource_environment: email.sourceEnvironment,\n\t\t\tseverity: email.severity,\n\t\t\treported_by: email.reportedBy || email.fromAddress,\n\t\t\treport_metadata: email.reportMetadata,\n\t\t\treport_context: email.reportContext,\n\t\t\tattachments: email.attachments,\n\t\t\tlast_reported_at: email.reportedAt || new Date()\n\t\t});\n\n\t\tif (classification.skip) {\n\t\t\tconst updated = await this.updateLog(email.logId, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tignored: !!classification.markIgnored,\n\t\t\t\tlast_error: classification.reason || 'Ignored non-app alert',\n\t\t\t\tlast_result_at: new Date()\n\t\t\t});\n\n\t\t\tif (classification.notify) {\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\temail,\n\t\t\t\t\terror: classification.reason,\n\t\t\t\t\tlog: updated,\n\t\t\t\t\treason: 'classified'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\treason: classification.reason,\n\t\t\t\tlog: updated\n\t\t\t};\n\t\t}\n\n\t\t\tif (!this.config.autoRunEnabled) {\n\t\t\t\tconst queued = await this.updateLog(email.logId, {\n\t\t\t\t\tstatus: 'pending'\n\t\t\t\t});\n\t\t\t\tawait this.notifyCustomerWorkflowStatus('detected_autofix_disabled', email, queued || reservation.log);\n\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'queued',\n\t\t\t\t\tlog: queued\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait this.notifyCustomerWorkflowStatus('detected_autofix_enabled', email, reservation.log);\n\t\t\tconst result = await this.processEmail(email, reservation.log);\n\t\t\tawait this.notify(result);\n\t\tconst finalLog = result.log || (await ErrorAutoFixLogs.findOne({_id: email.logId}));\n\t\treturn {\n\t\t\tstatus: result.status,\n\t\t\treason: result.reason,\n\t\t\tlog: finalLog || result.log\n\t\t};\n\t}\n\n\tpublic async runLog(logId: string): Promise<AutoFixResult> {\n\t\tif (!this.config.enabled) {\n\t\t\tthrow new Error('Auto-fix manager disabled.');\n\t\t}\n\n\t\tconst log = await ErrorAutoFixLogs.findOne({_id: logId});\n\t\tif (!log) {\n\t\t\tthrow new Error('Auto-fix log not found.');\n\t\t}\n\n\t\tif (log.ignored) {\n\t\t\tthrow new Error('Auto-fix log is ignored.');\n\t\t}\n\n\t\tif (log.status === 'in_progress') {\n\t\t\tthrow new Error('Auto-fix workflow already running.');\n\t\t}\n\n\t\tif (!log.body) {\n\t\t\tthrow new Error('Auto-fix log is missing email body.');\n\t\t}\n\n\t\tconst now = new Date();\n\t\tconst email = this.buildEmailFromLog(log);\n\t\tconst classification = this.classifyEmail(email);\n\t\tif (classification.skip && classification.markIgnored) {\n\t\t\tconst ignoredLog = await this.updateLog(logId, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tignored: true,\n\t\t\t\tlast_error: classification.reason || 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tlast_result_at: now\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\treason: 'classified',\n\t\t\t\terror: classification.reason || 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tlog: ignoredLog\n\t\t\t};\n\t\t}\n\n\t\tconst inProgressLog = (await ErrorAutoFixLogs.findOneAndUpdate({_id: logId}, {\n\t\t\t$inc: {\n\t\t\t\tattempt_count: 1\n\t\t\t},\n\t\t\t$set: {\n\t\t\t\tstatus: 'in_progress',\n\t\t\t\tlast_attempt_at: now,\n\t\t\t\tlast_error: '',\n\t\t\t\tignored: false\n\t\t\t}\n\t\t}, {\n\t\t\treturnDocument: 'after'\n\t\t})) || log;\n\n\t\tconst result = await this.processEmail(email, inProgressLog);\n\t\tawait this.notify(result);\n\t\treturn result;\n\t}\n\n\tprivate buildEmailFromLog(log: ErrorAutoFixLogModel): ErrorEmail {\n\t\treturn {\n\t\t\tkey: log.message_id || log._id,\n\t\t\tsubject: log.subject,\n\t\t\tbody: log.body || '',\n\t\t\tmessageId: log.message_id,\n\t\t\thash: log.issue_hash || log.email_hash,\n\t\t\trawHash: log.email_hash,\n\t\t\tissueHash: log.issue_hash,\n\t\t\traw: log.body || '',\n\t\t\tid_client: log.id_client,\n\t\t\tclient_name: log.client_name,\n\t\t\tfromAddress: log.from_email,\n\t\t\tsource_type: log.source_type || 'app',\n\t\t\tclassification_reason: log.classification_reason,\n\t\t\topenai_environment: log.openai_environment,\n\t\t\tsourceApp: log.source_app,\n\t\t\tsourceEnvironment: log.source_environment,\n\t\t\tseverity: log.severity,\n\t\t\treportedBy: log.reported_by,\n\t\t\treportMetadata: log.report_metadata,\n\t\t\treportContext: log.report_context,\n\t\t\tattachments: log.attachments,\n\t\t\treportedAt: log.last_reported_at\n\t\t};\n\t}\n\n\tprivate async processEmail(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst libraryIssueGate = this.evaluateLibraryIssueGate(email, log);\n\t\tif (libraryIssueGate.blocked) {\n\t\t\treturn await this.blockLibraryOwnedIssue(email, log, libraryIssueGate);\n\t\t}\n\n\t\tif (this.config.dashboardWorkflowEnabled) {\n\t\t\tconst dashboardResult = await this.dispatchDashboardWorkflow(email, log);\n\t\t\tif (dashboardResult.status === 'in_progress' || dashboardResult.status === 'success') {\n\t\t\t\treturn dashboardResult;\n\t\t\t}\n\t\t\tif (!this.config.dashboardFallbackToGithub) {\n\t\t\t\treturn dashboardResult;\n\t\t\t}\n\n\t\t\tthis.debugLog('Dashboard workflow unavailable; falling back to GitHub workflow.', {\n\t\t\t\tlogId: log?._id,\n\t\t\t\treason: dashboardResult.reason,\n\t\t\t\terror: dashboardResult.error\n\t\t\t});\n\t\t}\n\n\t\treturn await this.dispatchGithubWorkflow(email, log);\n\t}\n\n\tprivate shouldFallbackDashboardMethod(error: any): boolean {\n\t\tconst message = `${error?.message || ''}`.toLowerCase();\n\t\treturn message.includes('not found')\n\t\t\t|| message.includes('worker dispatch unavailable')\n\t\t\t|| message.includes('no worker')\n\t\t\t|| message.includes('unavailable for aidashboard');\n\t}\n\n\tprivate async createDashboardJob(payload: Record<string, any>): Promise<AIDashboardJob> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\treturn await methodManager.callMethod('aiDashboardCreateJob', payload);\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\treturn await manager.createJob(payload);\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async waitForDashboardJobStop(jobId: string, timeoutMs: number): Promise<void> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\tawait methodManager.callMethod('aiDashboardWaitForJobStop', jobId, timeoutMs);\n\t\t\treturn;\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\tawait manager.waitForJobStop(jobId, timeoutMs);\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async isDashboardJobRunning(jobId: string): Promise<boolean> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\tconst running = await methodManager.callMethod('aiDashboardIsJobRunning', jobId);\n\t\t\treturn !!running;\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\treturn !!manager.isJobRunning(jobId);\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async resolveAutoFixApp(email: ErrorEmail, log: ErrorAutoFixLogModel, resolvedEnvironment: string): Promise<AICoderAppModel | null> {\n\t\tconst clientId = (email.id_client || log.id_client || '').trim();\n\t\tif (clientId) {\n\t\t\tconst byClientId = await AICoderApps.findOne({client_id: clientId}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byClientId) {\n\t\t\t\treturn byClientId;\n\t\t\t}\n\t\t}\n\n\t\tconst lookupClientCandidates = [\n\t\t\t(email.client_name || '').trim(),\n\t\t\t(log.client_name || '').trim()\n\t\t].filter(Boolean);\n\t\tfor (const candidate of lookupClientCandidates) {\n\t\t\tconst escaped = this.escapeRegex(candidate);\n\t\t\tconst clientDoc = await Clients.findOne({\n\t\t\t\t$or: [\n\t\t\t\t\t{name: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{demo_name: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{repo: {$regex: `^${escaped}$`, $options: 'i'}}\n\t\t\t\t]\n\t\t\t});\n\t\t\tif (!clientDoc?._id) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst byClient = await AICoderApps.findOne({client_id: clientDoc._id}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byClient) {\n\t\t\t\treturn byClient;\n\t\t\t}\n\t\t}\n\n\t\tconst environmentRepo = (resolvedEnvironment || '').trim();\n\t\tif (environmentRepo) {\n\t\t\tconst escapedRepo = this.escapeRegex(environmentRepo);\n\t\t\tconst byRepo = await AICoderApps.findOne({\n\t\t\t\trepo: {\n\t\t\t\t\t$regex: `^${escapedRepo}$`,\n\t\t\t\t\t$options: 'i'\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byRepo) {\n\t\t\t\treturn byRepo;\n\t\t\t}\n\t\t}\n\n\t\tconst appNameCandidates = [\n\t\t\t(email.sourceApp || '').trim(),\n\t\t\t(log.source_app || '').trim()\n\t\t].filter(Boolean);\n\t\tfor (const candidate of appNameCandidates) {\n\t\t\tconst escaped = this.escapeRegex(candidate);\n\t\t\tconst bySlugOrName = await AICoderApps.findOne({\n\t\t\t\t$or: [\n\t\t\t\t\t{slug: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{name: {$regex: `^${escaped}$`, $options: 'i'}}\n\t\t\t\t]\n\t\t\t}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (bySlugOrName) {\n\t\t\t\treturn bySlugOrName;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprivate buildDashboardAutoFixTitle(email: ErrorEmail, log: ErrorAutoFixLogModel, app: AICoderAppModel): string {\n\t\tconst identifier = log.autofix_error_count_string || (log._id || '').slice(-6) || 'error';\n\t\tconst source = (email.sourceApp || log.source_app || app?.name || 'application').trim();\n\t\treturn `Auto-fix ${identifier}: ${source}`;\n\t}\n\n\tprivate buildDashboardAutoFixDescription(email: ErrorEmail, log: ErrorAutoFixLogModel, app: AICoderAppModel): string {\n\t\tconst normalizedBody = this.normalizeEmailText(email.body || log.body || '', 15000);\n\t\tconst metadata = log.report_metadata && Object.keys(log.report_metadata).length\n\t\t\t? JSON.stringify(log.report_metadata, null, 2)\n\t\t\t: '';\n\t\tconst context = log.report_context && Object.keys(log.report_context).length\n\t\t\t? JSON.stringify(log.report_context, null, 2)\n\t\t\t: '';\n\t\tconst attachments = Array.isArray(log.attachments) ? log.attachments : [];\n\t\tconst attachmentLines = attachments.length\n\t\t\t? attachments.map(att => `- ${(att?.name || 'attachment').trim()} ${att?.url ? `(${att.url})` : ''}`.trim()).join('\\n')\n\t\t\t: '(none)';\n\t\tconst lines: string[] = [\n\t\t\t'Autonomous production error remediation request.',\n\t\t\t'',\n\t\t\t'Hard requirements:',\n\t\t\t'1. Before changing code, query the project MongoDB diagnostics logs for the latest context.',\n\t\t\t'2. Query `error-autofix-logs` using `_id`, `issue_hash`, and `email_hash` from this task, then use the newest matching records.',\n\t\t\t'3. If a previous dashboard job id is provided, query `ai-development-jobs` by that `_id` and review recent failure logs before retrying.',\n\t\t\t'4. Treat `.dashboard-output/build-*.log` as primary build evidence, and `.build-output/build-*.log` as retained history when diagnosing failures.',\n\t\t\t'5. Reproduce and fix the reported issue with the smallest safe code change.',\n\t\t\t'6. Keep query/result behavior backward compatible unless explicitly required by the bug fix.',\n\t\t\t'7. Run project build checks and continue iterating until the build is green.',\n\t\t\t'8. Ensure there are no new lint/type/runtime regressions introduced by the fix.',\n\t\t\t'9. Finish by publishing the passing fix to the default branch and deploying artifacts.',\n\t\t\t'',\n\t\t\t`App: ${app?.name || app?._id || 'unknown'}`,\n\t\t\t`Repo: ${app?.repo || 'unknown'}`,\n\t\t\t`Environment: ${email.sourceEnvironment || log.source_environment || 'unknown'}`,\n\t\t\t`Severity: ${email.severity || log.severity || 'error'}`,\n\t\t\t`Fingerprint: ${email.issueHash || log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t`Error Log Id: ${String(log?._id || '').trim() || 'n/a'}`,\n\t\t\t`Previous Dashboard Job Id: ${String(log?.openai_task_id || '').trim() || 'n/a'}`,\n\t\t\t'',\n\t\t\t'Reported error payload:',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty error body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'Attachments:',\n\t\t\tattachmentLines\n\t\t];\n\t\tif (metadata) {\n\t\t\tlines.push('', 'Metadata JSON:', '```json', metadata, '```');\n\t\t}\n\t\tif (context) {\n\t\t\tlines.push('', 'Context JSON:', '```json', context, '```');\n\t\t}\n\t\treturn lines.join('\\n');\n\t}\n\n\tprivate evaluateDashboardPublishOutcome(job: AIDashboardJob): { success: boolean; branchName?: string; message: string } {\n\t\tconst logEntries = Array.isArray(job?.log) ? job.log : [];\n\t\tconst lastMatch = (predicate): string => {\n\t\t\tfor (let i = logEntries.length - 1; i >= 0; i -= 1) {\n\t\t\t\tif (predicate(logEntries[i] || '')) {\n\t\t\t\t\treturn logEntries[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '';\n\t\t};\n\n\t\tconst failureEntry = lastMatch(entry => /publish failed|artifact publish failed|deploy failed/i.test(entry || ''));\n\t\tif (failureEntry) {\n\t\t\treturn {\n\t\t\t\tsuccess: false,\n\t\t\t\tmessage: failureEntry\n\t\t\t};\n\t\t}\n\n\t\tconst publishEntry = lastMatch(entry => /Published build to /i.test(entry || ''));\n\t\tif (publishEntry) {\n\t\t\tconst branchMatch = publishEntry.match(/\\(([^()]+)\\)\\.?$/);\n\t\t\treturn {\n\t\t\t\tsuccess: true,\n\t\t\t\tbranchName: (branchMatch && branchMatch[1]) ? branchMatch[1].trim() : undefined,\n\t\t\t\tmessage: publishEntry\n\t\t\t};\n\t\t}\n\n\t\tconst skippedEntry = lastMatch(entry => /Publish skipped/i.test(entry || ''));\n\t\tif (skippedEntry) {\n\t\t\treturn {\n\t\t\t\tsuccess: !this.config.dashboardPublishRequired,\n\t\t\t\tmessage: skippedEntry\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: !this.config.dashboardPublishRequired,\n\t\t\tmessage: 'Dashboard job completed without a publish confirmation log entry.'\n\t\t};\n\t}\n\n\tprivate queueDashboardMonitor(log: ErrorAutoFixLogModel, email: ErrorEmail, jobId: string, effectiveEnvironment: string): void {\n\t\tconst logId = (log?._id || '').trim();\n\t\tconst normalizedJobId = (jobId || '').trim();\n\t\tif (!logId || !normalizedJobId) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.dashboardMonitors.has(logId)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst monitor = (async () => {\n\t\t\ttry {\n\t\t\t\tawait this.monitorDashboardAutoFixJob(log, email, normalizedJobId, effectiveEnvironment);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Auto-fix dashboard monitor failed', {logId, jobId: normalizedJobId, error});\n\t\t\t}\n\t\t\tfinally {\n\t\t\t\tthis.dashboardMonitors.delete(logId);\n\t\t\t}\n\t\t})();\n\n\t\tthis.dashboardMonitors.set(logId, monitor);\n\t}\n\n\tprivate async monitorDashboardAutoFixJob(log: ErrorAutoFixLogModel, email: ErrorEmail, jobId: string, effectiveEnvironment: string): Promise<void> {\n\t\tconst logId = (log?._id || '').trim();\n\t\tif (!logId) {\n\t\t\treturn;\n\t\t}\n\n\t\t\tconst fail = async (message: string): Promise<void> => {\n\t\t\t\tconst failedLog = (await this.updateLog(logId, {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\tlast_error: message,\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\topenai_task_id: jobId,\n\t\t\t\t\topenai_environment: effectiveEnvironment\n\t\t\t\t})) || log;\n\t\t\t\tawait this.notifyCustomerWorkflowStatus('completed_failed', email, failedLog, {error: message});\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: failedLog,\n\t\t\t\tsummary: failedLog.plan_summary || email.subject\n\t\t\t});\n\t\t};\n\n\t\ttry {\n\t\t\tawait this.waitForDashboardJobStop(jobId, this.config.dashboardWaitTimeoutMs);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Failed while waiting for dashboard job completion.';\n\t\t\tawait fail(message);\n\t\t\treturn;\n\t\t}\n\n\t\tlet isRunning = false;\n\t\ttry {\n\t\t\tisRunning = await this.isDashboardJobRunning(jobId);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Unable to confirm dashboard job completion state.';\n\t\t\tawait fail(message);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isRunning) {\n\t\t\tawait fail(`Dashboard job ${jobId} timed out before completion.`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst job = await AIDashboardJobs.findOne({_id: jobId}) as AIDashboardJob | null;\n\t\tif (!job) {\n\t\t\tawait fail(`Dashboard job ${jobId} not found.`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (job.phase !== 'COMPLETE' || job.paused) {\n\t\t\tawait fail(`Dashboard job ${jobId} ended in phase ${job.phase || 'unknown'}${job.paused ? ' (paused)' : ''}.`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst publishOutcome = this.evaluateDashboardPublishOutcome(job);\n\t\tif (!publishOutcome.success) {\n\t\t\tawait fail(publishOutcome.message);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fallbackBranch = (String(this._serverConfig?.['GITHUB_DEFAULT_BRANCH'] || process.env.GITHUB_DEFAULT_BRANCH || 'main').trim() || 'main');\n\t\tconst branchName = publishOutcome.branchName || fallbackBranch;\n\t\t\tconst successLog = (await this.updateLog(logId, {\n\t\t\t\tstatus: 'success',\n\t\t\tbranch_name: branchName,\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\tlast_result_at: new Date(),\n\t\t\topenai_task_id: jobId,\n\t\t\t\topenai_environment: effectiveEnvironment\n\t\t\t})) || log;\n\t\t\tawait this.notifyCustomerWorkflowStatus('completed_success', email, successLog, {notes: publishOutcome.message});\n\n\t\t\tawait this.notify({\n\t\t\t\tstatus: 'success',\n\t\t\temail,\n\t\t\tbranchName,\n\t\t\tlog: successLog,\n\t\t\tsummary: successLog.plan_summary || email.subject,\n\t\t\tnotes: publishOutcome.message\n\t\t});\n\t}\n\n\tprivate async dispatchDashboardWorkflow(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst fail = async (\n\t\t\tstatus: 'failed' | 'skipped',\n\t\t\treason: string,\n\t\t\tmessage: string\n\t\t): Promise<AutoFixResult> => {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus,\n\t\t\t\tlast_error: message,\n\t\t\t\tlast_result_at: new Date()\n\t\t\t})) || log;\n\t\t\treturn {\n\t\t\t\tstatus,\n\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: updated,\n\t\t\t\treason\n\t\t\t};\n\t\t};\n\n\t\tconst openaiEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\tconst app = await this.resolveAutoFixApp(email, log, openaiEnvironment);\n\t\tif (!app?._id) {\n\t\t\treturn await fail('skipped', 'dashboard_app_not_found', 'No AI Coder app found for this error log.');\n\t\t}\n\n\t\tconst repo = (app.repo || '').trim();\n\t\tif (!repo) {\n\t\t\treturn await fail('skipped', 'dashboard_repo_missing', 'Resolved AI Coder app is missing repo configuration.');\n\t\t}\n\n\t\tconst effectiveEnvironment = repo;\n\t\tconst emailHash = email.issueHash || email.hash || this.generateIssueHash(email);\n\t\tconst rawHash = email.rawHash || this.generateRawEmailHash(email);\n\t\tconst title = this.buildDashboardAutoFixTitle(email, log, app);\n\t\tconst description = this.buildDashboardAutoFixDescription(email, log, app);\n\n\t\tlet job: AIDashboardJob;\n\t\ttry {\n\t\t\tjob = await this.createDashboardJob({\n\t\t\t\tproject: app._id,\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t\trepo,\n\t\t\t\tpath: app.git_local_path || undefined,\n\t\t\t\tprojectRoot: app.project_root || undefined\n\t\t\t});\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Unable to enqueue dashboard auto-fix job.';\n\t\t\treturn await fail('failed', 'dashboard_job_create_failed', message);\n\t\t}\n\n\t\tconst jobId = (job?._id || '').trim();\n\t\tif (!jobId) {\n\t\t\treturn await fail('failed', 'dashboard_job_missing_id', 'Dashboard job created without an id.');\n\t\t}\n\n\t\t\tconst queuedLog = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'in_progress',\n\t\t\t\tlast_attempt_at: new Date(),\n\t\t\tbranch_name: '',\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\topenai_environment: effectiveEnvironment,\n\t\t\tissue_hash: emailHash,\n\t\t\temail_hash: rawHash,\n\t\t\topenai_task_id: jobId,\n\t\t\tplan_summary: title,\n\t\t\t\tplan_body: description\n\t\t\t})) || log;\n\t\t\tthis.queueDashboardMonitor(queuedLog, email, jobId, effectiveEnvironment);\n\n\t\t\treturn {\n\t\t\tstatus: 'in_progress',\n\t\t\temail,\n\t\t\tlog: queuedLog,\n\t\t\treason: 'dashboard_job_queued',\n\t\t\tsummary: title,\n\t\t\tnotes: `Dashboard job ${jobId} queued for autonomous build/fix/publish/deploy.`\n\t\t};\n\t}\n\n\tprivate async dispatchGithubWorkflow(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst openaiEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\tconst fallbackEnv = this.config.githubOwner && this.config.githubRepo ? `${this.config.githubOwner}/${this.config.githubRepo}` : '';\n\t\tconst resolvedEnvironment = (openaiEnvironment || fallbackEnv || '').trim();\n\t\tconst repoTarget = this.parseRepoTarget(resolvedEnvironment) || this.parseRepoTarget(fallbackEnv);\n\n\t\tthis.debugLog('Starting GitHub PR workflow.', {\n\t\t\temailKey: email.key,\n\t\t\tlogId: log._id,\n\t\t\topenaiEnvironment: resolvedEnvironment,\n\t\t\trepoTarget\n\t\t});\n\n\t\tif (!this.config.githubToken) {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tlast_error: 'GitHub token not configured',\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: resolvedEnvironment\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\terror: 'GitHub token not configured',\n\t\t\t\tlog: updated,\n\t\t\t\treason: 'missing_github_token'\n\t\t\t};\n\t\t}\n\n\t\tif (!repoTarget) {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tlast_error: 'GitHub repository not configured',\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: resolvedEnvironment\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\terror: 'GitHub repository not configured',\n\t\t\t\tlog: updated,\n\t\t\t\treason: 'missing_github_repo'\n\t\t\t};\n\t\t}\n\n\t\tconst effectiveEnv = `${repoTarget.owner}/${repoTarget.repo}`;\n\t\tconst emailHash = email.issueHash || email.hash || this.generateIssueHash(email);\n\t\tconst rawHash = email.rawHash || this.generateRawEmailHash(email);\n\t\tconst workBranch = this.buildWorkBranch(emailHash);\n\t\tconst contextIdentifier = (emailHash || '').slice(0, 12) || 'autofix';\n\t\tconst contextPath = `.openai/error-context/${contextIdentifier}.md`;\n\t\tconst normalizedBody = this.normalizeEmailText(email.body || '');\n\t\tconst contextContent = this.buildContextMarkdown(email, contextIdentifier, normalizedBody);\n\t\tconst commentBody = this.buildOpenAIComment(email, contextPath, normalizedBody);\n\n\t\tawait this.updateLog(log._id, {\n\t\t\tstatus: 'in_progress',\n\t\t\tlast_attempt_at: new Date(),\n\t\t\tbranch_name: workBranch,\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\topenai_environment: effectiveEnv,\n\t\t\tissue_hash: emailHash,\n\t\t\temail_hash: rawHash\n\t\t});\n\n\t\ttry {\n\t\t\tconst baseBranch = await this.resolveBaseBranch(repoTarget);\n\t\t\tconst baseSha = await this.getBranchSha(repoTarget, baseBranch);\n\t\t\tawait this.ensureBranch(repoTarget, workBranch, baseBranch, baseSha);\n\t\t\tawait this.upsertContextFile(repoTarget, workBranch, contextPath, contextContent);\n\n\t\t\t\tlet pr = await this.findOpenPullRequest(repoTarget, workBranch, baseBranch);\n\t\t\t\tif (!pr) {\n\t\t\t\t\tconst title = `AI Autofix: ${(email.subject || 'ResolveIO Error').slice(0, 180)}`;\n\t\t\t\t\tconst bodyLines = [\n\t\t\t\t\t\t'This PR was opened automatically to let AI investigate the reported failure.',\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t`Context file: \\`${contextPath}\\``\n\t\t\t\t\t];\n\t\t\t\tpr = await this.createPullRequest(repoTarget, workBranch, baseBranch, title, bodyLines.join('\\n'));\n\t\t\t}\n\n\t\t\tawait this.commentOnPullRequest(repoTarget, pr.number, commentBody);\n\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'success',\n\t\t\t\tbranch_name: workBranch,\n\t\t\t\tpr_url: pr.html_url,\n\t\t\t\tplan_summary: email.subject,\n\t\t\t\tplan_body: commentBody,\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: effectiveEnv,\n\t\t\t\tissue_hash: emailHash,\n\t\t\t\temail_hash: rawHash\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'success',\n\t\t\t\temail,\n\t\t\t\tbranchName: workBranch,\n\t\t\t\tprUrl: pr.html_url,\n\t\t\t\tlog: updated,\n\t\t\t\tsummary: email.subject,\n\t\t\t\tnotes: `Context file: ${contextPath}`\n\t\t\t};\n\t\t}\n\t\tcatch (err) {\n\t\t\tconst message = err?.message || 'GitHub workflow failed.';\n\t\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\tlast_error: message,\n\t\t\t\t\tlast_result_at: new Date(),\n\t\t\t\t\tid_client: email.id_client,\n\t\t\t\t\tclient_name: email.client_name,\n\t\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\t\tsource_type: email.source_type,\n\t\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\t\topenai_environment: effectiveEnv,\n\t\t\t\t\tissue_hash: emailHash,\n\t\t\t\t\temail_hash: rawHash\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'failed',\n\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: updated\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate async notify(result: AutoFixResult): Promise<void> {\n\t\tif (result.status === 'in_progress') {\n\t\t\treturn;\n\t\t}\n\n\t\tif (result.status === 'skipped' && result.reason && !this.shouldNotifySkip(result.reason)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst recipients = this.config.notifyEmails.length\n\t\t\t? this.config.notifyEmails\n\t\t\t: (result.status === 'failed' ? [DEFAULT_ERROR_ALERT_EMAIL] : []);\n\t\tif (!recipients.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet subject = '';\n\t\tlet bodyLines: string[] = [];\n\t\tconst logId = result.log?._id || '';\n\t\tconst summary = result.summary || result.log?.plan_summary || result.email.subject;\n\n\t\tif (result.status === 'success') {\n\t\t\tsubject = `ResolveIO AutoFix ✔ ${summary}`;\n\t\t\tbodyLines = [\n\t\t\t\t'Auto-fix workflow completed successfully.',\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t'',\n\t\t\t\t`Branch: ${result.branchName || 'unknown'}`,\n\t\t\t\t`PR: ${result.prUrl || 'pending'}`,\n\t\t\t\t'',\n\t\t\t\t'Summary:',\n\t\t\t\tsummary || '(none)',\n\t\t\t\t''\n\t\t\t];\n\n\t\t\tif (result.notes) {\n\t\t\t\tbodyLines.push(`Notes: ${result.notes}`, '');\n\t\t\t}\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push(`Log ID: ${logId}`);\n\t\t\t}\n\t\t}\n\t\telse if (result.status === 'failed') {\n\t\t\tsubject = `ResolveIO AutoFix ✖ ${summary}`;\n\t\t\tbodyLines = [\n\t\t\t\t'Auto-fix workflow failed.',\n\t\t\t\t`Reason: ${result.error || result.log?.last_error || 'Unknown error'}`,\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t'',\n\t\t\t\t'Email Subject:',\n\t\t\t\tresult.email.subject\n\t\t\t];\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push('', `Log ID: ${logId}`);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tsubject = `ResolveIO AutoFix ⚠ ${result.email.subject}`;\n\t\t\tconst reason = result.reason || 'skipped';\n\n\t\t\tbodyLines = [\n\t\t\t\t`Auto-fix skipped. Reason: ${reason}.`,\n\t\t\t\tresult.error && result.error !== reason ? `Details: ${result.error}` : '',\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t''\n\t\t\t];\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push(`Log ID: ${logId}`);\n\t\t\t}\n\n\t\t\tbodyLines.push('Update or remove the log entry to retry processing.');\n\t\t}\n\n\t\tconst textBody = bodyLines.filter(line => line !== undefined && line !== null && line !== '').join('\\n');\n\n\t\tfor (let email of recipients) {\n\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail(email, subject, textBody);\n\t\t}\n\t}\n\n}\n\nexport function ensureErrorAutoFixManager(serverConfig?: any): ErrorAutoFixManager | null {\n\tconst existing = ResolveIOServer['AutoFixManager'] as ErrorAutoFixManager | null;\n\tif (existing) {\n\t\treturn existing;\n\t}\n\n\tif (!configuredErrorAutoFixDependencies) {\n\t\treturn null;\n\t}\n\n\tconst resolvedServerConfig = serverConfig || ResolveIOServer.getServerConfig();\n\tif (!resolvedServerConfig) {\n\t\treturn null;\n\t}\n\n\tconst manager = new ErrorAutoFixManager(resolvedServerConfig);\n\tResolveIOServer['AutoFixManager'] = manager;\n\treturn manager;\n}\n\nexport async function reportDevError(options: DevErrorReportOptions): Promise<void> {\n\tconst manager = ensureErrorAutoFixManager();\n\tif (!manager) {\n\t\tconsole.warn('AutoFix manager not initialized for dev alert', options?.subject);\n\t\treturn;\n\t}\n\n\tawait manager.reportDevError(options);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/managers/error-auto-fix.manager.ts"],"names":[],"mappings":"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","file":"error-auto-fix.manager.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString, pad } from '../util/common';\nimport axios, { AxiosRequestConfig } from 'axios';\nimport { createHash } from 'crypto';\nimport { URL } from 'url';\nimport { Users } from '../collections/user.collection';\nimport { AppSettings } from '../collections/app-setting.collection';\nimport { buildGeneratedAppAutoFixSummary, buildResolveIOProjectAutoFixDetails } from './customer-notification-content.manager';\nimport { ErrorReportAttachment, ErrorReportPayload } from '../types/error-report';\n\ntype AICoderAppModel = Record<string, any>;\ntype AIDashboardJob = Record<string, any>;\ntype ClientModel = Record<string, any>;\ntype ErrorAutoFixLogModel = Record<string, any>;\n\nexport interface ErrorAutoFixManagerDependencies {\n\tClients?: any;\n\tErrorAutoFixLogs: any;\n\tAICoderApps?: any;\n\tAIDashboardJobs?: any;\n}\n\nconst OPTIONAL_COLLECTION = {\n\tfindOne: () => Promise.resolve(null),\n\tfindById: () => Promise.resolve(null),\n\tfind: () => Promise.resolve([])\n};\n\nlet AICoderApps: any = OPTIONAL_COLLECTION;\nlet AIDashboardJobs: any = OPTIONAL_COLLECTION;\nlet Clients: any = OPTIONAL_COLLECTION;\nlet ErrorAutoFixLogs: any = null;\nlet configuredErrorAutoFixDependencies: ErrorAutoFixManagerDependencies | null = null;\n\nfunction resolveErrorAutoFixManagerDependencies(\n\toverrides?: Partial<ErrorAutoFixManagerDependencies>\n): ErrorAutoFixManagerDependencies {\n\tconst resolved: ErrorAutoFixManagerDependencies = {\n\t\t...(configuredErrorAutoFixDependencies || {} as ErrorAutoFixManagerDependencies),\n\t\t...(overrides || {})\n\t};\n\n\tif (!resolved.ErrorAutoFixLogs) {\n\t\tthrow new Error('ErrorAutoFixManager dependencies are not configured.');\n\t}\n\n\treturn resolved;\n}\n\nfunction applyErrorAutoFixDependencies(dependencies: ErrorAutoFixManagerDependencies): void {\n\tconfiguredErrorAutoFixDependencies = dependencies;\n\tClients = dependencies.Clients || OPTIONAL_COLLECTION;\n\tErrorAutoFixLogs = dependencies.ErrorAutoFixLogs;\n\tAICoderApps = dependencies.AICoderApps || OPTIONAL_COLLECTION;\n\tAIDashboardJobs = dependencies.AIDashboardJobs || OPTIONAL_COLLECTION;\n}\n\nexport function registerErrorAutoFixManagerDependencies(dependencies: ErrorAutoFixManagerDependencies): void {\n\tapplyErrorAutoFixDependencies(dependencies);\n\tensureErrorAutoFixManager();\n}\n\ninterface AutoFixConfig {\n\tenabled: boolean;\n\trepoRoot: string;\n\tbaseBranch: string;\n\tbranchPrefix: string;\n\tgithubToken?: string;\n\tgithubOwner: string;\n\tgithubRepo: string;\n\tcommandTimeoutMs: number;\n\tnotifyEmails: string[];\n\tdebugLogging: boolean;\n\tconfigSource: string;\n\topenaiEnvironment?: string;\n\topenaiProjectId?: string;\n\tautoOptimizeEnabled: boolean;\n\tingestKeys: string[];\n\tdashboardWorkflowEnabled: boolean;\n\tdashboardFallbackToGithub: boolean;\n\tdashboardWaitTimeoutMs: number;\n\tdashboardPublishRequired: boolean;\n\tmaxAutoRunAttemptsPerIssue: number;\n\tescalationEmails: string[];\n}\n\ninterface ErrorEmail {\n\tkey: string;\n\tsubject: string;\n\tbody: string;\n\tfrom?: string;\n\tmessageId?: string;\n\thash?: string;\n\trawHash?: string;\n\tissueHash?: string;\n\tlogId?: string;\n\traw: string;\n\tfromAddress?: string;\n\tid_client?: string;\n\tclient_name?: string;\n\tsource_type?: 'app' | 'infrastructure' | 'noise';\n\tclassification_reason?: string;\n\topenai_environment?: string;\n\tsourceApp?: string;\n\tsourceEnvironment?: string;\n\tseverity?: string;\n\treportedBy?: string;\n\treportMetadata?: Record<string, any>;\n\treportContext?: Record<string, any>;\n\tattachments?: ErrorReportAttachment[];\n\treportedAt?: Date;\n}\n\ninterface AutoFixResult {\n\tstatus: 'skipped' | 'failed' | 'success' | 'in_progress';\n\temail: ErrorEmail;\n\terror?: string;\n\tbranchName?: string;\n\tprUrl?: string;\n\tlog?: ErrorAutoFixLogModel;\n\treason?: string;\n\tsummary?: string;\n\tnotes?: string;\n}\n\ninterface LogReservation {\n\tproceed: boolean;\n\tlog?: ErrorAutoFixLogModel;\n\treason?: string;\n}\n\ninterface EmailClassification {\n\tsource: 'app' | 'infrastructure' | 'noise';\n\tskip: boolean;\n\treason?: string;\n\tnotify?: boolean;\n\tmarkIgnored?: boolean;\n}\n\ninterface LibraryIssueGateDecision {\n\tblocked: boolean;\n\treason?: string;\n\tevidence: string[];\n}\n\nconst INFRA_SUBJECT_KEYWORDS = [\n\t'failed snapshot',\n\t'replica set',\n\t'data size used',\n\t'oplog',\n\t'lock during backup',\n\t'backup',\n\t'no primary',\n\t'no secondary',\n\t'preferred primary',\n\t'exceeding memory',\n\t'exceeding storage',\n\t'unhealthy status',\n\t'disconnected status',\n\t'replication lag',\n\t'database storage size',\n\t'compacting collections',\n\t'failed connection',\n\t'heartbeat',\n\t'high cpu usage',\n\t'high ram usage'\n];\nconst MONGO_SOURCE_KEYWORDS = [\n\t'mongo-explorer',\n\t'mongo explorer',\n\t'mongo-manager',\n\t'mongo manager',\n\t'mongomanager',\n\t'mongodb'\n];\nconst MONGO_TEXT_PATTERNS: RegExp[] = [\n\t/\\[mongo\\]/i,\n\t/\\bmongo(?:db)?\\s+(?:server\\s+)?error\\b/i,\n\t/\\bmongoservererror\\b/i,\n\t/\\bmongonetwork(?:timeout)?error\\b/i,\n\t/\\bmongonetworktimeouterror\\b/i\n];\nconst DEFAULT_ERROR_ALERT_EMAIL = 'dev@resolveio.com';\nconst MAX_LOCAL_NOTIFICATION_USERS = 5000;\nconst LIBRARY_MARKER_PATTERNS: Array<{label: string; pattern: RegExp}> = [\n\t{label: 'node_modules stack', pattern: /(?:^|[\\/\\\\])node_modules(?:[\\/\\\\]|$)/i},\n\t{label: '@resolveio/client-lib', pattern: /@resolveio\\/client-lib(?:-[a-z0-9-]+)?/i},\n\t{label: '@resolveio/server-lib', pattern: /@resolveio\\/server-lib/i},\n\t{label: 'resolveio-client-lib path', pattern: /(?:^|[\\/\\\\])resolveio-client-lib(?:[\\/\\\\]|$)/i},\n\t{label: 'resolveio-server-lib path', pattern: /(?:^|[\\/\\\\])resolveio-server-lib(?:[\\/\\\\]|$)/i},\n\t{label: 'base template path', pattern: /(?:^|[\\/\\\\])aicoder[\\/\\\\]templates[\\/\\\\]base_(?:small|medium|large|tool)(?:[\\/\\\\]|$)/i}\n];\nconst APP_OWNED_PATH_PATTERN = /(?:^|[\\/\\\\])(angular[\\/\\\\]app|server[\\/\\\\]src)(?:[\\/\\\\]|$)/i;\nconst FILE_PATH_PATTERN = /(?:webpack:\\/\\/\\/?|\\/|\\.\\/|[A-Za-z]:\\\\)[^\\s'\"`]+?\\.(?:ts|tsx|js|jsx|mjs|cjs|html|scss|css)/g;\n\ninterface RepoTarget {\n\towner: string;\n\trepo: string;\n}\n\ninterface GithubPullRequest {\n\tnumber: number;\n\thtml_url: string;\n}\n\ninterface ErrorReportIngestResult {\n\tstatus: 'queued' | 'skipped' | 'duplicate' | 'ignored' | 'success' | 'failed' | 'in_progress';\n\treason?: string;\n\tlog?: ErrorAutoFixLogModel;\n}\n\nexport interface DevErrorReportOptions {\n\tsubject: string;\n\tbody?: string;\n\tsourceApp?: string;\n\tenvironment?: string;\n\tseverity?: string;\n\tfingerprint?: string;\n\tidempotencyKey?: string;\n\tmetadata?: Record<string, any>;\n\tclientId?: string;\n\tclientName?: string;\n\tclientSlug?: string;\n}\n\nexport class ErrorAutoFixManager {\n\tprivate config: AutoFixConfig;\n\tprivate _serverConfig = null;\n\tprivate readonly githubApiBase = 'https://api.github.com';\n\tprivate readonly dashboardMonitors = new Map<string, Promise<void>>();\n\tprivate static readonly APP_SETTINGS_CACHE_TTL_MS = 10000;\n\tprivate appSettingsAutoOptimizeCacheExpiresAt = 0;\n\tprivate appSettingsAutoOptimizeCacheValue: boolean | null = null;\n\tprivate ready = false;\n\n\tconstructor(serverConfig, dependencies?: Partial<ErrorAutoFixManagerDependencies>) {\n\t\tconst resolvedDependencies = resolveErrorAutoFixManagerDependencies(dependencies);\n\t\tapplyErrorAutoFixDependencies(resolvedDependencies);\n\n\t\tthis._serverConfig = serverConfig || {};\n\t\tthis.config = this.resolveConfig();\n\n\t\tif (!resolvedDependencies.AICoderApps || !resolvedDependencies.AIDashboardJobs) {\n\t\t\tthis.config.dashboardWorkflowEnabled = false;\n\t\t}\n\n\t\tif (!this.config.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.config.dashboardWorkflowEnabled && (!this.config.repoRoot || !this.config.githubOwner || !this.config.githubRepo)) {\n\t\t\tconsole.warn('ErrorAutoFixManager auto-optimize unavailable - missing repository configuration. Ingest and manual runs remain available.');\n\t\t}\n\n\t\tthis.ready = true;\n\n\t\t// console.log('ErrorAutoFixManager initialized (HTTP intake mode).');\n\t\t// console.log('ErrorAutoFixManager config source:', this.config.configSource);\n\t\t// if (this.config.debugLogging) {\n\t\t// \tconsole.log('ErrorAutoFixManager debug logging enabled.');\n\t\t// }\n\t\t// if (!this.config.autoOptimizeEnabled) {\n\t\t// \tconsole.log('ErrorAutoFixManager auto-run disabled. Manual OpenAI runs required.');\n\t\t// }\n\t}\n\n\tpublic isReady(): boolean {\n\t\treturn !!(this.ready && this.config?.enabled);\n\t}\n\n\tpublic validateIngestKey(candidate?: string): boolean {\n\t\tconst keys = Array.isArray(this.config?.ingestKeys) ? this.config.ingestKeys.filter(Boolean) : [];\n\n\t\tif (!keys.length) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (!candidate) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn keys.includes(candidate.trim());\n\t}\n\n\tprivate debugLog(message: string, details?: any): void {\n\t\tif (!this.config?.debugLogging) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn;\n\n\t\tif (typeof details === 'undefined') {\n\t\t\tconsole.log(`[ErrorAutoFixManager][debug] ${message}`);\n\t\t}\n\t\telse {\n\t\t\tconsole.log(`[ErrorAutoFixManager][debug] ${message}`, details);\n\t\t}\n\t}\n\n\tprivate resolveConfig(): AutoFixConfig {\n\t\tconst scAutofix = (this._serverConfig && (this._serverConfig.autofix || this._serverConfig.AUTOFIX)) || {};\n\t\tlet notifyEmails: string[] = [];\n\t\tlet escalationEmails: string[] = [];\n\n\t\tif (process.env.AUTOFIX_NOTIFY_EMAILS) {\n\t\t\tnotifyEmails = process.env.AUTOFIX_NOTIFY_EMAILS.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\t\telse if (Array.isArray(scAutofix.notifyEmails)) {\n\t\t\tnotifyEmails = scAutofix.notifyEmails.map(a => (a || '').trim()).filter(Boolean);\n\t\t}\n\t\telse if (typeof scAutofix.notifyEmails === 'string') {\n\t\t\tnotifyEmails = scAutofix.notifyEmails.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\n\t\tif (process.env.AUTOFIX_ESCALATION_EMAILS) {\n\t\t\tescalationEmails = process.env.AUTOFIX_ESCALATION_EMAILS.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\t\telse if (Array.isArray(scAutofix.escalationEmails)) {\n\t\t\tescalationEmails = scAutofix.escalationEmails.map(a => (a || '').trim()).filter(Boolean);\n\t\t}\n\t\telse if (typeof scAutofix.escalationEmails === 'string') {\n\t\t\tescalationEmails = scAutofix.escalationEmails.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\n\t\tconst getString = (envKey: string, scKey: string, fallback = ''): string => {\n\t\t\treturn process.env[envKey] || scAutofix[scKey] || fallback;\n\t\t};\n\n\t\tconst getNumber = (envKey: string, scKey: string, fallback: number) => {\n\t\t\tconst envVal = Number(process.env[envKey]);\n\t\t\tif (!Number.isNaN(envVal) && process.env[envKey] !== undefined) {\n\t\t\t\treturn envVal;\n\t\t\t}\n\t\t\tconst scVal = Number(scAutofix[scKey]);\n\t\t\tif (!Number.isNaN(scVal) && scAutofix[scKey] !== undefined) {\n\t\t\t\treturn scVal;\n\t\t\t}\n\t\t\treturn fallback;\n\t\t};\n\n\t\tconst getBoolean = (envKey: string, scKey: string, fallback = false) => {\n\t\t\tif (typeof process.env[envKey] !== 'undefined') {\n\t\t\t\treturn process.env[envKey] === 'true';\n\t\t\t}\n\t\t\tif (typeof scAutofix[scKey] !== 'undefined') {\n\t\t\t\treturn !!scAutofix[scKey];\n\t\t\t}\n\t\t\treturn fallback;\n\t\t};\n\n\t\tconst parseKeyList = (value: any): string[] => {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn value.map(val => `${val || ''}`.trim()).filter(Boolean);\n\t\t\t}\n\n\t\t\tif (typeof value === 'string') {\n\t\t\t\treturn value.split(',').map(val => val.trim()).filter(Boolean);\n\t\t\t}\n\n\t\t\treturn [];\n\t\t};\n\n\t\tconst normalizePositiveInt = (value: number, fallback: number): number => {\n\t\t\tif (!Number.isFinite(value) || value <= 0) {\n\t\t\t\treturn fallback;\n\t\t\t}\n\t\t\treturn Math.floor(value);\n\t\t};\n\n\t\tconst openaiProjectId = getString('OPENAI_PROJECT_ID', 'openaiProjectId');\n\t\tconst openaiEnvironment = getString('OPENAI_ENVIRONMENT', 'openaiEnvironment', openaiProjectId);\n\t\tconst ingestSource = typeof process.env.AUTOFIX_INGEST_KEYS !== 'undefined'\n\t\t\t? process.env.AUTOFIX_INGEST_KEYS\n\t\t\t: scAutofix.ingestKeys;\n\t\tconst hasAutoOptimizeEnv = typeof process.env.AUTOFIX_AUTO_OPTIMIZE_ENABLED !== 'undefined';\n\t\tconst autoOptimizeEnabled = getBoolean('AUTOFIX_AUTO_OPTIMIZE_ENABLED', 'autoOptimizeEnabled', false);\n\n\t\treturn {\n\t\t\tenabled: true,\n\t\t\trepoRoot: getString('AUTOFIX_REPO_ROOT', 'repoRoot', ''),\n\t\t\tbaseBranch: getString('AUTOFIX_BASE_BRANCH', 'baseBranch', 'main'),\n\t\t\tbranchPrefix: getString('AUTOFIX_BRANCH_PREFIX', 'branchPrefix', 'openai/auto'),\n\t\t\tgithubToken: getString('GITHUB_TOKEN', 'githubToken', getString('AUTOFIX_GITHUB_TOKEN', 'githubToken')),\n\t\t\tgithubOwner: getString('AUTOFIX_GITHUB_OWNER', 'githubOwner', 'resolveio'),\n\t\t\tgithubRepo: getString('AUTOFIX_GITHUB_REPO', 'githubRepo', 'resolveio-all'),\n\t\t\tcommandTimeoutMs: getNumber('AUTOFIX_COMMAND_TIMEOUT_MS', 'commandTimeoutMs', 600000),\n\t\t\tnotifyEmails,\n\t\t\tdebugLogging: getBoolean('AUTOFIX_DEBUG_LOGS', 'debugLogging', false),\n\t\t\tconfigSource: hasAutoOptimizeEnv ? 'environment' : (Object.keys(scAutofix).length ? 'serverConfig' : 'defaults'),\n\t\t\topenaiEnvironment,\n\t\t\topenaiProjectId,\n\t\t\tautoOptimizeEnabled: autoOptimizeEnabled,\n\t\t\tingestKeys: parseKeyList(ingestSource),\n\t\t\tdashboardWorkflowEnabled: getBoolean('AUTOFIX_DASHBOARD_WORKFLOW_ENABLED', 'dashboardWorkflowEnabled', true),\n\t\t\tdashboardFallbackToGithub: getBoolean('AUTOFIX_DASHBOARD_FALLBACK_TO_GITHUB', 'dashboardFallbackToGithub', true),\n\t\t\tdashboardWaitTimeoutMs: getNumber('AUTOFIX_DASHBOARD_WAIT_TIMEOUT_MS', 'dashboardWaitTimeoutMs', 45 * 60 * 1000),\n\t\t\tdashboardPublishRequired: getBoolean('AUTOFIX_DASHBOARD_PUBLISH_REQUIRED', 'dashboardPublishRequired', true),\n\t\t\tmaxAutoRunAttemptsPerIssue: normalizePositiveInt(\n\t\t\t\tgetNumber('AUTOFIX_MAX_AUTORUN_ATTEMPTS_PER_ISSUE', 'maxAutoRunAttemptsPerIssue', 3),\n\t\t\t\t3\n\t\t\t),\n\t\t\tescalationEmails\n\t\t};\n\t}\n\n\tprivate extractEmailAddress(value: string): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tlet email = value;\n\t\tconst angleMatch = value.match(/<([^>]+)>/);\n\n\t\tif (angleMatch && angleMatch[1]) {\n\t\t\temail = angleMatch[1];\n\t\t}\n\n\t\temail = email.split(';')[0].split(',')[0];\n\t\treturn email.trim().toLowerCase();\n\t}\n\n\tprivate escapeRegex(value: string): string {\n\t\treturn value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t}\n\n\tprivate async resolveClientForEnvironment(environment?: string): Promise<ClientModel> {\n\t\tconst host = this.extractHostFromUrl(environment);\n\t\tif (!host) {\n\t\t\treturn null;\n\t\t}\n\n\t\ttry {\n\t\t\tconst escaped = this.escapeRegex(host);\n\t\t\tconst query = {\n\t\t\t\twebsite: {\n\t\t\t\t\t$regex: escaped,\n\t\t\t\t\t$options: 'i'\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn await Clients.findOne(query);\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('ErrorAutoFixManager resolveClientForEnvironment error:', err);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate extractHostFromUrl(value?: string): string | null {\n\t\tif (!value) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst trimmed = value.trim();\n\t\tif (!trimmed) {\n\t\t\treturn null;\n\t\t}\n\n\t\ttry {\n\t\t\tconst parsed = new URL(trimmed);\n\t\t\treturn parsed.hostname.toLowerCase();\n\t\t}\n\t\tcatch {\n\t\t\treturn trimmed.toLowerCase();\n\t\t}\n\t}\n\nprivate async resolveClientForReport(report: ErrorReportPayload): Promise<ClientModel> {\n\tif (!report) {\n\t\treturn null;\n\t}\n\n\t\ttry {\n\t\t\tif (report.clientId) {\n\t\t\t\tconst byId = await Clients.findById(report.clientId);\n\t\t\t\tif (byId) {\n\t\t\t\t\treturn byId;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst tryField = async (field: string, value?: string): Promise<ClientModel> => {\n\t\t\t\tif (!value) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst escaped = this.escapeRegex(value);\n\t\t\t\tconst query: {[key: string]: any} = {};\n\t\t\t\tquery[field] = {$regex: `^${escaped}$`, $options: 'i'};\n\t\t\t\treturn await Clients.findOne(query);\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t(await tryField('name', report.clientName)) ||\n\t\t\t\t(await tryField('demo_name', report.clientSlug)) ||\n\t\t\t\t(await tryField('repo', report.clientRepo)) ||\n\t\t\t\t(await this.resolveClientForEnvironment(report.environment))\n\t\t\t);\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('ErrorAutoFixManager resolveClientForReport error:', err);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate determineOpenAIEnvironment(client?: ClientModel): string {\n\t\tconst repoCandidate = (client?.repo || '').trim();\n\n\t\tif (repoCandidate) {\n\t\t\treturn repoCandidate;\n\t\t}\n\n\t\tconst configEnv = (this.config.openaiEnvironment || '').trim();\n\n\t\tif (configEnv) {\n\t\t\treturn configEnv;\n\t\t}\n\n\t\tif ((this.config.githubOwner || '').trim() && (this.config.githubRepo || '').trim()) {\n\t\t\treturn `${this.config.githubOwner}/${this.config.githubRepo}`.trim();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tprivate resolveEnvironmentForTask(email: ErrorEmail, log: ErrorAutoFixLogModel): string {\n\t\tif (email && email.openai_environment && email.openai_environment.trim()) {\n\t\t\treturn email.openai_environment.trim();\n\t\t}\n\n\t\tif (log && log.openai_environment && log.openai_environment.trim()) {\n\t\t\treturn log.openai_environment.trim();\n\t\t}\n\n\t\treturn this.determineOpenAIEnvironment();\n\t}\n\n\n\tprivate buildEmailFromReport(report: ErrorReportPayload): ErrorEmail {\n\t\tconst timestamp = report.reportedAt instanceof Date && !Number.isNaN(report.reportedAt.getTime())\n\t\t\t? report.reportedAt\n\t\t\t: new Date();\n\t\tconst safeMessage = (report.message || '').toString().trim() || 'Unknown error';\n\t\tconst subjectBase = `[AppError] ${report.sourceApp || 'application'}${report.environment ? ` (${report.environment})` : ''}`;\n\t\tconst subject = `${subjectBase} - ${safeMessage.slice(0, 120)}`;\n\t\tconst lines: string[] = [\n\t\t\t`Source App:\\t${report.sourceApp}`,\n\t\t\t`Environment:\\t${report.environment || 'n/a'}`,\n\t\t\t`Severity:\\t${report.severity || 'error'}`,\n\t\t\t`Client Hint:\\t${report.clientName || report.clientSlug || report.clientRepo || report.clientId || 'n/a'}`,\n\t\t\t`Reported By:\\t${report.reportedBy || report.clientEmail || 'n/a'}`,\n\t\t\t`Reported At:\\t${timestamp.toISOString()}`,\n\t\t\t`Message:\\t${safeMessage}`\n\t\t];\n\n\t\tif (report.stack) {\n\t\t\tlines.push('', 'Stack Trace:', report.stack);\n\t\t}\n\n\t\tif (report.context && typeof report.context === 'object' && Object.keys(report.context).length) {\n\t\t\tlines.push('', 'Context JSON:', JSON.stringify(report.context, null, 2));\n\t\t}\n\n\t\tif (report.metadata && typeof report.metadata === 'object' && Object.keys(report.metadata).length) {\n\t\t\tlines.push('', 'Metadata JSON:', JSON.stringify(report.metadata, null, 2));\n\t\t}\n\n\t\tif (Array.isArray(report.attachments) && report.attachments.length) {\n\t\t\tlines.push('', 'Attachments:');\n\t\t\treport.attachments.forEach((att: ErrorReportAttachment) => {\n\t\t\t\tconst desc: string[] = [];\n\t\t\t\tif (att.name) {\n\t\t\t\t\tdesc.push(att.name);\n\t\t\t\t}\n\t\t\t\tif (att.contentType) {\n\t\t\t\t\tdesc.push(att.contentType);\n\t\t\t\t}\n\t\t\t\tif (typeof att.size === 'number') {\n\t\t\t\t\tdesc.push(`${att.size}b`);\n\t\t\t\t}\n\n\t\t\t\tconst summary = desc.length ? desc.join(' | ') : 'attachment';\n\t\t\t\tlines.push(`- ${summary}${att.url ? ` -> ${att.url}` : ''}`);\n\t\t\t});\n\t\t}\n\n\t\tif (report.fingerprint) {\n\t\t\tlines.push('', `Fingerprint:\\t${report.fingerprint}`);\n\t\t}\n\n\t\tif (report.idempotencyKey) {\n\t\t\tlines.push(`Idempotency Key:\\t${report.idempotencyKey}`);\n\t\t}\n\n\t\tconst body = lines.join('\\n');\n\n\t\treturn {\n\t\t\tkey: `report:${timestamp.getTime().toString(36)}:${Math.random().toString(36).slice(2, 10)}`,\n\t\t\tsubject,\n\t\t\tbody,\n\t\t\traw: body,\n\t\t\tfrom: report.reportedBy || report.clientEmail || 'errors@resolveio.com',\n\t\t\tsourceApp: report.sourceApp,\n\t\t\tsourceEnvironment: report.environment,\n\t\t\tseverity: report.severity,\n\t\t\treportedBy: report.reportedBy,\n\t\t\treportMetadata: report.metadata,\n\t\t\treportContext: report.context,\n\t\t\tattachments: Array.isArray(report.attachments) ? report.attachments : [],\n\t\t\topenai_environment: report.clientRepo,\n\t\t\treportedAt: timestamp\n\t\t};\n\t}\n\n\tprivate classifyEmail(email: ErrorEmail): EmailClassification {\n\t\tconst subject = (email.subject || '').toLowerCase();\n\t\tconst body = email.body || '';\n\t\tconst normalizedBody = body.toLowerCase();\n\n\t\tif (\n\t\t\tsubject.includes('autofix') &&\n\t\t\t(normalizedBody.includes('auto-fix workflow') || normalizedBody.includes('autofix workflow'))\n\t\t) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'AutoFix status notification'};\n\t\t}\n\n\t\tif (this.isMongoOriginError(email)) {\n\t\t\treturn {\n\t\t\t\tsource: 'infrastructure',\n\t\t\t\tskip: true,\n\t\t\t\treason: 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tmarkIgnored: true\n\t\t\t};\n\t\t}\n\n\t\tif (subject.includes('[database]') || subject.includes('[server]')) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: 'Infrastructure alert (subject tag)'};\n\t\t}\n\n\t\tconst infraKeyword = INFRA_SUBJECT_KEYWORDS.find(keyword => subject.includes(keyword));\n\t\tif (infraKeyword) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: `Infrastructure alert (${infraKeyword})`};\n\t\t}\n\n\t\tif (!body.trim()) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'Empty error payload'};\n\t\t}\n\n\t\tconst emptyErrorsRegex = /errors\\s*[\\r\\n]+(\\{\\s*\\}|\\[\\s*\\])/i;\n\t\tif (emptyErrorsRegex.test(body)) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'Empty error details'};\n\t\t}\n\n\t\tif (subject.includes('database is down') || normalizedBody.includes('database is down')) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: 'Database outage alert'};\n\t\t}\n\n\t\treturn {source: 'app', skip: false};\n\t}\n\n\tprivate isMongoOriginError(email: ErrorEmail): boolean {\n\t\tconst sourceApp = String(email?.sourceApp || '').toLowerCase();\n\t\tconst sourceEnvironment = String(email?.sourceEnvironment || '').toLowerCase();\n\t\tconst subject = String(email?.subject || '').toLowerCase();\n\t\tconst body = String(email?.body || '');\n\n\t\tconst sourceMatches = MONGO_SOURCE_KEYWORDS.some(keyword =>\n\t\t\tsourceApp.includes(keyword) || sourceEnvironment.includes(keyword)\n\t\t);\n\t\tif (sourceMatches) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst text = `${subject}\\n${body}`;\n\t\treturn MONGO_TEXT_PATTERNS.some(pattern => pattern.test(text));\n\t}\n\n\tprivate generateRawEmailHash(email: ErrorEmail): string {\n\t\treturn createHash('sha256').update(`${email.subject || ''}\\n${email.body || ''}`, 'utf8').digest('hex');\n\t}\n\n\tprivate generateIssueHash(email: ErrorEmail): string {\n\t\tconst subject = this.normalizeTextForHash(email.subject || '');\n\t\tconst body = this.normalizeBodyForHash(email.body || '');\n\t\treturn createHash('sha256').update(`${subject}\\n${body}`, 'utf8').digest('hex');\n\t}\n\n\tprivate normalizeTextForHash(value: string): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst normalized = value\n\t\t\t.replace(/\\r/g, '\\n')\n\t\t\t.toLowerCase()\n\t\t\t.replace(/0x[0-9a-f]+/gi, '0x#')\n\t\t\t.replace(/\\b[0-9a-f]{7,64}\\b/gi, '#')\n\t\t\t.replace(/\\b[0-9]{4}[-/][0-9]{2}[-/][0-9]{2}(?:[ t][0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]{1,6})?)?\\b/g, '#datetime#')\n\t\t\t.replace(/\\b[0-9]{2}:[0-9]{2}:[0-9]{2}\\b/g, '#time#')\n\t\t\t.replace(/[0-9]+/g, '#')\n\t\t\t.replace(/[^\\S\\n]+/g, ' ')\n\t\t\t.split('\\n')\n\t\t\t.map(line => line.trim())\n\t\t\t.filter(Boolean)\n\t\t\t.slice(0, 60)\n\t\t\t.join('\\n');\n\n\t\treturn normalized.length > 4000 ? normalized.slice(0, 4000) : normalized;\n\t}\n\n\tprivate normalizeBodyForHash(body: string): string {\n\t\tif (!body) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst withoutStackNoise = body\n\t\t\t.replace(/=+\\s*stack trace\\s*=+/gi, 'stack trace')\n\t\t\t.replace(/-{3,}/g, '-')\n\t\t\t.replace(/\\[[^\\]]*request id[^\\]]*\\]/gi, '[request id]')\n\t\t\t.replace(/guid:[^\\s]+/gi, 'guid:#')\n\t\t\t.replace(/request id:[^\\s]+/gi, 'request id:#')\n\t\t\t.replace(/correlation id:[^\\s]+/gi, 'correlation id:#');\n\n\t\treturn this.normalizeTextForHash(withoutStackNoise);\n\t}\n\n\tprivate parseRepoTarget(env: string): RepoTarget {\n\t\tconst trimmed = (env || '').trim();\n\t\tif (!trimmed) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst [owner, repo] = trimmed.split('/', 2);\n\t\tif (!owner || !repo) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\towner: owner.trim(),\n\t\t\trepo: repo.trim()\n\t\t};\n\t}\n\n\tprivate buildWorkBranch(hash: string): string {\n\t\tconst shortHash = (hash || '').toLowerCase().replace(/[^a-z0-9]/g, '').slice(0, 12) || 'autofix';\n\t\tconst prefix = (this.config.branchPrefix || 'openai/auto').trim();\n\t\tif (!prefix) {\n\t\t\treturn shortHash;\n\t\t}\n\n\t\tconst segments = prefix.split('/').map(segment => segment.trim()).filter(Boolean);\n\t\tconst sanitized = segments.map(segment => segment.replace(/[^a-zA-Z0-9._-]/g, '-'));\n\t\treturn `${sanitized.join('/')}/${shortHash}`;\n\t}\n\n\tprivate normalizeEmailText(value: string, limit = 20000): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst cleaned = value.replace(/\\r/g, '');\n\t\tif (cleaned.length <= limit) {\n\t\t\treturn cleaned;\n\t\t}\n\n\t\treturn `${cleaned.slice(0, limit)}\\n... (truncated)`;\n\t}\n\n\tprivate buildContextMarkdown(email: ErrorEmail, identifier: string, normalizedBody: string): string {\n\t\tconst lines: string[] = [\n\t\t\t`# OpenAI Error Context: ${identifier}`,\n\t\t\t'',\n\t\t\t`**Subject**: ${email.subject || '(no subject)'}`,\n\t\t\temail.fromAddress ? `**From**: ${email.fromAddress}` : undefined,\n\t\t\temail.client_name ? `**Client**: ${email.client_name}` : undefined,\n\t\t\temail.source_type ? `**Classification**: ${email.source_type}${email.classification_reason ? ` (${email.classification_reason})` : ''}` : undefined,\n\t\t\temail.id_client ? `**Client Id**: ${email.id_client}` : undefined,\n\t\t\t'',\n\t\t\t'## Body',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'_Generated by ErrorAutoFixManager_'\n\t\t];\n\n\t\treturn lines.filter(line => typeof line !== 'undefined').join('\\n');\n\t}\n\n\tprivate buildOpenAIComment(email: ErrorEmail, contextPath: string, normalizedBody: string): string {\n\t\tconst lines: string[] = [\n\t\t\t'@openai review',\n\t\t\t'',\n\t\t\t`**Email Subject**: ${email.subject || '(no subject)'}`,\n\t\t\temail.fromAddress ? `**From**: ${email.fromAddress}` : undefined,\n\t\t\temail.client_name ? `**Client**: ${email.client_name}` : undefined,\n\t\t\tcontextPath ? `Context file: \\`${contextPath}\\`` : undefined,\n\t\t\t'',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'Please investigate this error and propose a minimal, safe fix.'\n\t\t];\n\n\t\treturn lines.filter(line => typeof line !== 'undefined').join('\\n');\n\t}\n\n\tprivate formatGithubError(error: any): string {\n\t\tif (!error) {\n\t\t\treturn 'GitHub request failed.';\n\t\t}\n\n\t\tconst status = error?.response?.status;\n\t\tconst message = error?.response?.data?.message || error?.message || 'GitHub request failed.';\n\n\t\tif (status) {\n\t\t\treturn `GitHub API error (${status}): ${message}`;\n\t\t}\n\n\t\treturn `GitHub API error: ${message}`;\n\t}\n\n\tprivate buildGithubAuthHeader(token?: string): string {\n\t\tconst trimmed = (token || '').trim();\n\t\tif (!trimmed) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (/^(token|Bearer)\\s+/i.test(trimmed)) {\n\t\t\treturn trimmed;\n\t\t}\n\n\t\tif (trimmed.includes('.') && !trimmed.startsWith('gh')) {\n\t\t\treturn `Bearer ${trimmed}`;\n\t\t}\n\n\t\treturn `token ${trimmed}`;\n\t}\n\n\tprivate async githubRequest<T>(config: AxiosRequestConfig, allow404 = false): Promise<T> {\n\t\tconst authHeader = this.buildGithubAuthHeader(this.config.githubToken);\n\t\tconst headers = {\n\t\t\t...(authHeader ? {Authorization: authHeader} : {}),\n\t\t\tAccept: 'application/vnd.github+json',\n\t\t\t'User-Agent': 'ResolveIO-AutoFix',\n\t\t\t'X-GitHub-Api-Version': '2022-11-28'\n\t\t};\n\n\t\tconst finalConfig: AxiosRequestConfig = {\n\t\t\t...config,\n\t\t\tbaseURL: this.githubApiBase,\n\t\t\theaders: {\n\t\t\t\t...headers,\n\t\t\t\t...(config.headers || {})\n\t\t\t},\n\t\t\ttimeout: Math.min(Math.max(this.config.commandTimeoutMs || 600000, 1000), 120000)\n\t\t};\n\n\t\ttry {\n\t\t\tconst response = await axios.request<T>(finalConfig);\n\t\t\treturn response.data;\n\t\t}\n\t\tcatch (err) {\n\t\t\tconst status = err?.response?.status;\n\t\t\tif (allow404 && status === 404) {\n\t\t\t\treturn null as unknown as T;\n\t\t\t}\n\t\t\tthrow new Error(this.formatGithubError(err));\n\t\t}\n\t}\n\n\tprivate async resolveBaseBranch(target: RepoTarget): Promise<string> {\n\t\tconst fallback = (this.config.baseBranch || 'main').trim();\n\t\ttry {\n\t\t\tconst repo = await this.githubRequest<{default_branch?: string}>(\n\t\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}`}\n\t\t\t);\n\t\t\tconst defaultBranch = (repo?.default_branch || '').trim();\n\t\t\treturn defaultBranch || fallback;\n\t\t}\n\t\tcatch (err) {\n\t\t\tthis.debugLog('Failed to fetch default branch. Falling back to configured branch.', {\n\t\t\t\ttarget,\n\t\t\t\terror: err?.message\n\t\t\t});\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\tprivate async getBranchSha(target: RepoTarget, branch: string): Promise<string> {\n\t\tconst ref = await this.githubRequest<{object?: {sha?: string}}>(\n\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}/git/ref/heads/${branch}`}\n\t\t);\n\t\tconst sha = ref?.object?.sha;\n\t\tif (!sha) {\n\t\t\tthrow new Error(`Base branch ${branch} not found.`);\n\t\t}\n\t\treturn sha;\n\t}\n\n\tprivate async ensureBranch(target: RepoTarget, newBranch: string, baseBranch: string, baseSha: string): Promise<void> {\n\t\tconst existing = await this.githubRequest<any>(\n\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}/git/ref/heads/${newBranch}`},\n\t\t\ttrue\n\t\t);\n\t\tif (existing) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/git/refs`,\n\t\t\t\tdata: {\n\t\t\t\t\tref: `refs/heads/${newBranch}`,\n\t\t\t\t\tsha: baseSha\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async upsertContextFile(target: RepoTarget, branch: string, contextPath: string, content: string): Promise<void> {\n\t\tconst encodedPath = encodeURIComponent(contextPath).replace(/%2F/g, '/');\n\t\tconst existing = await this.githubRequest<any>(\n\t\t\t{\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/contents/${encodedPath}`,\n\t\t\t\tparams: {ref: branch}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t\tconst sha = existing && existing.sha ? existing.sha : undefined;\n\t\tconst commitMessage = `chore(openai): update error context ${contextPath}`;\n\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/contents/${encodedPath}`,\n\t\t\t\tdata: {\n\t\t\t\t\tmessage: commitMessage.slice(0, 200),\n\t\t\t\t\tcontent: Buffer.from(content, 'utf8').toString('base64'),\n\t\t\t\t\tbranch,\n\t\t\t\t\tsha\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async findOpenPullRequest(target: RepoTarget, branch: string, base: string): Promise<GithubPullRequest> {\n\t\tconst prs = await this.githubRequest<GithubPullRequest[]>(\n\t\t\t{\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/pulls`,\n\t\t\t\tparams: {\n\t\t\t\t\tstate: 'open',\n\t\t\t\t\thead: `${target.owner}:${branch}`,\n\t\t\t\t\tbase,\n\t\t\t\t\tper_page: 1\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tif (prs && prs.length) {\n\t\t\treturn prs[0];\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate async createPullRequest(target: RepoTarget, branch: string, base: string, title: string, body: string): Promise<GithubPullRequest> {\n\t\tconst pr = await this.githubRequest<GithubPullRequest>(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/pulls`,\n\t\t\t\tdata: {\n\t\t\t\t\ttitle,\n\t\t\t\t\thead: branch,\n\t\t\t\t\tbase,\n\t\t\t\t\tbody\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\treturn pr;\n\t}\n\n\tprivate async commentOnPullRequest(target: RepoTarget, prNumber: number, body: string): Promise<void> {\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/issues/${prNumber}/comments`,\n\t\t\t\tdata: {\n\t\t\t\t\tbody\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate parseBooleanEnv(envKey: string): boolean | null {\n\t\tif (typeof process.env[envKey] === 'undefined') {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn process.env[envKey] === 'true';\n\t}\n\n\tprivate async resolveAutoOptimizeEnabled(): Promise<boolean> {\n\t\tconst now = Date.now();\n\t\tif (this.appSettingsAutoOptimizeCacheValue !== null && now < this.appSettingsAutoOptimizeCacheExpiresAt) {\n\t\t\treturn this.appSettingsAutoOptimizeCacheValue;\n\t\t}\n\n\t\tconst envValue = this.parseBooleanEnv('AUTOFIX_AUTO_OPTIMIZE_ENABLED');\n\t\tlet enabled = envValue !== null ? envValue : !!this.config.autoOptimizeEnabled;\n\t\ttry {\n\t\t\tif (AppSettings && typeof AppSettings.findOne === 'function') {\n\t\t\t\tconst activeSetting = await AppSettings.findOne({\n\t\t\t\t\tis_active: {\n\t\t\t\t\t\t$ne: false\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\t\tcreatedAt: -1\n\t\t\t\t\t}\n\t\t\t\t}) || await AppSettings.findOne({}, {\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\t\tcreatedAt: -1\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (activeSetting && typeof activeSetting.enable_auto_fix === 'boolean') {\n\t\t\t\t\tenabled = !!activeSetting.enable_auto_fix;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (this.config?.debugLogging) {\n\t\t\t\tconsole.warn('ErrorAutoFixManager failed to read app settings auto-fix toggle', error);\n\t\t\t}\n\t\t}\n\n\t\tthis.appSettingsAutoOptimizeCacheValue = enabled;\n\t\tthis.appSettingsAutoOptimizeCacheExpiresAt = now + ErrorAutoFixManager.APP_SETTINGS_CACHE_TTL_MS;\n\t\treturn enabled;\n\t}\n\n\tprivate async reserveLog(email: ErrorEmail, client?: ClientModel, autoOptimizeEnabled = false): Promise<LogReservation> {\n\t\tconst hash = email.hash;\n\t\tconst rawHash = email.rawHash || hash;\n\t\tconst now = email.reportedAt || new Date();\n\n\t\tlet existing: ErrorAutoFixLogModel = null;\n\n\t\tif (hash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({issue_hash: hash});\n\t\t}\n\n\t\tif (!existing && rawHash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({email_hash: rawHash});\n\t\t}\n\n\t\tif (!existing && hash && hash !== rawHash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({email_hash: hash});\n\t\t}\n\n\t\tif (existing) {\n\t\t\tawait this.markDuplicate(existing._id, now);\n\t\t\tconst updatedExisting = await ErrorAutoFixLogs.findOne({_id: existing._id}) || existing;\n\n\t\t\tconst metaUpdate: Partial<ErrorAutoFixLogModel> = {};\n\n\t\t\tif (hash && (!updatedExisting.issue_hash || updatedExisting.issue_hash !== hash)) {\n\t\t\t\tmetaUpdate.issue_hash = hash;\n\t\t\t}\n\n\t\t\tif (rawHash && (!updatedExisting.email_hash || updatedExisting.email_hash !== rawHash)) {\n\t\t\t\tmetaUpdate.email_hash = rawHash;\n\t\t\t}\n\n\t\t\tif (email.fromAddress && email.fromAddress !== updatedExisting.from_email) {\n\t\t\t\tmetaUpdate.from_email = email.fromAddress;\n\t\t\t}\n\n\t\t\tif (client) {\n\t\t\t\tif (!updatedExisting.id_client || updatedExisting.id_client !== client._id) {\n\t\t\t\t\tmetaUpdate.id_client = client._id;\n\t\t\t\t}\n\n\t\t\t\tif (!updatedExisting.client_name || updatedExisting.client_name !== client.name) {\n\t\t\t\t\tmetaUpdate.client_name = client.name;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (email.openai_environment && email.openai_environment !== updatedExisting.openai_environment) {\n\t\t\t\tmetaUpdate.openai_environment = email.openai_environment;\n\t\t\t}\n\n\t\t\tif (email.sourceApp && email.sourceApp !== updatedExisting.source_app) {\n\t\t\t\tmetaUpdate.source_app = email.sourceApp;\n\t\t\t}\n\n\t\t\tif (email.sourceEnvironment && email.sourceEnvironment !== updatedExisting.source_environment) {\n\t\t\t\tmetaUpdate.source_environment = email.sourceEnvironment;\n\t\t\t}\n\n\t\t\tif (email.severity && email.severity !== updatedExisting.severity) {\n\t\t\t\tmetaUpdate.severity = email.severity;\n\t\t\t}\n\n\t\t\tif (email.reportedBy && email.reportedBy !== updatedExisting.reported_by) {\n\t\t\t\tmetaUpdate.reported_by = email.reportedBy;\n\t\t\t}\n\n\t\t\tif (typeof email.reportMetadata !== 'undefined') {\n\t\t\t\tmetaUpdate.report_metadata = email.reportMetadata;\n\t\t\t}\n\n\t\t\tif (typeof email.reportContext !== 'undefined') {\n\t\t\t\tmetaUpdate.report_context = email.reportContext;\n\t\t\t}\n\n\t\t\tif (typeof email.attachments !== 'undefined') {\n\t\t\t\tmetaUpdate.attachments = email.attachments;\n\t\t\t}\n\n\t\t\tmetaUpdate.last_reported_at = now;\n\n\t\t\tif (Object.keys(metaUpdate).length) {\n\t\t\t\tawait this.updateLog(updatedExisting._id, metaUpdate);\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'completed') {\n\t\t\t\tconst reactivated = (await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t$set: {\n\t\t\t\t\t\tstatus: 'pending',\n\t\t\t\t\t\tignored: false,\n\t\t\t\t\t\tlast_error: '',\n\t\t\t\t\t\topenai_task_id: '',\n\t\t\t\t\t\tbranch_name: '',\n\t\t\t\t\t\tpr_url: ''\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t})) || updatedExisting;\n\n\t\t\t\treturn {\n\t\t\t\t\tproceed: true,\n\t\t\t\t\tlog: reactivated\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.ignored) {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'ignored'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (autoOptimizeEnabled && (updatedExisting.status === 'failed' || updatedExisting.status === 'skipped') && !updatedExisting.ignored) {\n\t\t\t\tconst attemptsUsed = Number.isFinite(Number(updatedExisting.attempt_count))\n\t\t\t\t\t? Number(updatedExisting.attempt_count)\n\t\t\t\t\t: 0;\n\t\t\t\tconst maxAttempts = Number.isFinite(Number(this.config.maxAutoRunAttemptsPerIssue))\n\t\t\t\t\t? Number(this.config.maxAutoRunAttemptsPerIssue)\n\t\t\t\t\t: 0;\n\t\t\t\tif (maxAttempts > 0 && attemptsUsed >= maxAttempts) {\n\t\t\t\t\tconst reason = `Auto-fix attempt budget reached (${attemptsUsed}/${maxAttempts}).`;\n\t\t\t\t\tconst exhausted = (await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\t\t\tignored: true,\n\t\t\t\t\t\t\tlast_error: `${reason} Marked ignored pending manual intervention.`,\n\t\t\t\t\t\t\tlast_result_at: now,\n\t\t\t\t\t\t\tupdatedAt: now\n\t\t\t\t\t\t}\n\t\t\t\t\t}, {\n\t\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t\t})) || updatedExisting;\n\n\t\t\t\t\tawait this.sendEscalationNotice(exhausted, reason);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tproceed: false,\n\t\t\t\t\t\tlog: exhausted,\n\t\t\t\t\t\treason: 'budget_exhausted'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst resumed = await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t$inc: {\n\t\t\t\t\t\tattempt_count: 1\n\t\t\t\t\t},\n\t\t\t\t\t$set: {\n\t\t\t\t\t\tstatus: 'in_progress',\n\t\t\t\t\t\tlast_attempt_at: now,\n\t\t\t\t\t\topenai_task_id: '',\n\t\t\t\t\t\tbranch_name: '',\n\t\t\t\t\t\tpr_url: '',\n\t\t\t\t\t\tlast_error: ''\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tproceed: true,\n\t\t\t\t\tlog: resumed || updatedExisting\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'in_progress') {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'in_progress'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'success') {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'success'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tproceed: false,\n\t\t\t\tlog: updatedExisting,\n\t\t\t\treason: 'duplicate'\n\t\t\t};\n\t\t}\n\n\t\tconst counterValue = await ResolveIOServer.getMainServer().getMethodManager().callMethod('incCounter', 'autofix_error');\n\t\tconst counterString = pad(counterValue, 6);\n\n\t\tconst doc: ErrorAutoFixLogModel = {\n\t\t\t_id: objectIdHexString(),\n\t\t\temail_hash: rawHash,\n\t\t\tissue_hash: hash,\n\t\t\tsubject: email.subject,\n\t\t\tmessage_id: email.messageId,\n\t\t\tbody: email.body,\n\t\t\tstatus: autoOptimizeEnabled ? 'in_progress' : 'pending',\n\t\t\tignored: false,\n\t\t\tattempt_count: autoOptimizeEnabled ? 1 : 0,\n\t\t\tduplicate_count: 0,\n\t\t\tautofix_error_count: counterValue,\n\t\t\tautofix_error_count_string: counterString,\n\t\t\tfirst_seen_at: now,\n\t\t\tlast_attempt_at: autoOptimizeEnabled ? now : undefined,\n\t\t\tfrom_email: email.fromAddress || '',\n\t\t\tid_client: client?._id,\n\t\t\tclient_name: client?.name,\n\t\t\topenai_environment: email.openai_environment || this.determineOpenAIEnvironment(client),\n\t\t\tsource_app: email.sourceApp,\n\t\t\tsource_environment: email.sourceEnvironment,\n\t\t\tseverity: email.severity,\n\t\t\treported_by: email.reportedBy || email.fromAddress || '',\n\t\t\tlast_reported_at: now,\n\t\t\treport_metadata: email.reportMetadata,\n\t\t\treport_context: email.reportContext,\n\t\t\tattachments: email.attachments\n\t\t};\n\n\t\tawait ErrorAutoFixLogs.insertOne(doc as any);\n\n\t\treturn {\n\t\t\tproceed: true,\n\t\t\tlog: doc\n\t\t};\n\t}\n\n\tprivate async markDuplicate(logId: string, timestamp: Date): Promise<void> {\n\t\tawait ErrorAutoFixLogs.updateOne({_id: logId}, {\n\t\t\t$inc: {\n\t\t\t\tduplicate_count: 1\n\t\t\t},\n\t\t\t$set: {\n\t\t\t\tlast_duplicate_at: timestamp,\n\t\t\t\tlast_reported_at: timestamp,\n\t\t\t\tupdatedAt: timestamp\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate async updateLog(logId: string, set: Partial<ErrorAutoFixLogModel>, inc?: {[key: string]: number}): Promise<ErrorAutoFixLogModel> {\n\t\tconst cleanedSet: {[key: string]: any} = {};\n\t\tconst rawSet: {[key: string]: any} = set ? {...set} : {};\n\n\t\tObject.keys(rawSet).forEach(key => {\n\t\t\tif (typeof rawSet[key] !== 'undefined') {\n\t\t\t\tcleanedSet[key] = rawSet[key];\n\t\t\t}\n\t\t});\n\n\t\tcleanedSet.updatedAt = new Date();\n\n\t\tconst update: any = {\n\t\t\t$set: cleanedSet\n\t\t};\n\n\t\tif (inc) {\n\t\t\tupdate.$inc = inc;\n\t\t}\n\n\t\tconst result = await ErrorAutoFixLogs.findOneAndUpdate({_id: logId}, update, {\n\t\t\treturnDocument: 'after'\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tprivate getEscalationRecipients(): string[] {\n\t\tconst unique = new Set<string>();\n\t\tconst add = (value: string) => {\n\t\t\tconst normalized = String(value || '').trim().toLowerCase();\n\t\t\tif (!normalized) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tunique.add(normalized);\n\t\t};\n\n\t\t(this.config.escalationEmails || []).forEach(add);\n\t\t(this.config.notifyEmails || []).forEach(add);\n\t\tif (!unique.size) {\n\t\t\tadd(DEFAULT_ERROR_ALERT_EMAIL);\n\t\t}\n\t\treturn Array.from(unique);\n\t}\n\n\tprivate async sendEscalationNotice(log: ErrorAutoFixLogModel, reason: string): Promise<void> {\n\t\tconst recipients = this.getEscalationRecipients();\n\t\tif (!recipients.length || !log?._id) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst identifier = log.autofix_error_count_string || log._id;\n\t\tconst subject = `ResolveIO AutoFix Escalation: ${identifier}`;\n\t\tconst body = [\n\t\t\t'Auto-fix retry budget was exhausted for this recurring issue and further autonomous attempts were stopped.',\n\t\t\t'',\n\t\t\t`Reason: ${reason}`,\n\t\t\t`Issue Log ID: ${log._id}`,\n\t\t\t`Issue Counter: ${log.autofix_error_count_string || 'n/a'}`,\n\t\t\t`Client: ${log.client_name || log.id_client || 'unknown'}`,\n\t\t\t`Source App: ${log.source_app || 'unknown'}`,\n\t\t\t`Environment: ${log.source_environment || log.openai_environment || 'unknown'}`,\n\t\t\t`Attempts: ${log.attempt_count || 0}/${this.config.maxAutoRunAttemptsPerIssue}`,\n\t\t\t`Issue Hash: ${log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t'',\n\t\t\t'The issue is now marked ignored for auto-fix to protect customer token usage. Manual intervention is required.'\n\t\t].join('\\n');\n\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\tfor (const recipient of recipients) {\n\t\t\ttry {\n\t\t\t\tawait methodManager.sendEmail(recipient, subject, body);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Failed sending auto-fix escalation email', {recipient, logId: log._id, error});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate collectLibraryIssueSignalText(email: ErrorEmail, log: ErrorAutoFixLogModel): string {\n\t\tconst attachments = Array.isArray(log?.attachments) ? log.attachments : [];\n\t\tconst attachmentSignals = attachments.map((attachment) => {\n\t\t\treturn [\n\t\t\t\tattachment?.name || '',\n\t\t\t\tattachment?.url || '',\n\t\t\t\tattachment?.contentType || ''\n\t\t\t].filter(Boolean).join(' ');\n\t\t});\n\t\tconst metadata = log?.report_metadata && Object.keys(log.report_metadata).length\n\t\t\t? JSON.stringify(log.report_metadata)\n\t\t\t: '';\n\t\tconst context = log?.report_context && Object.keys(log.report_context).length\n\t\t\t? JSON.stringify(log.report_context)\n\t\t\t: '';\n\t\treturn [\n\t\t\temail?.subject || '',\n\t\t\temail?.body || '',\n\t\t\tlog?.body || '',\n\t\t\tmetadata,\n\t\t\tcontext,\n\t\t\tattachmentSignals.join('\\n')\n\t\t].filter(Boolean).join('\\n');\n\t}\n\n\tprivate evaluateLibraryIssueGate(email: ErrorEmail, log: ErrorAutoFixLogModel): LibraryIssueGateDecision {\n\t\tconst signalText = this.collectLibraryIssueSignalText(email, log);\n\t\tif (!signalText) {\n\t\t\treturn {blocked: false, evidence: []};\n\t\t}\n\n\t\tconst evidence: string[] = [];\n\t\tlet markerHits = 0;\n\t\tfor (const marker of LIBRARY_MARKER_PATTERNS) {\n\t\t\tif (!marker.pattern.test(signalText)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmarkerHits += 1;\n\t\t\tevidence.push(marker.label);\n\t\t}\n\n\t\tconst rawPaths = signalText.match(FILE_PATH_PATTERN) || [];\n\t\tconst normalizedPaths = rawPaths\n\t\t\t.map((value) => String(value || '').trim())\n\t\t\t.filter(Boolean)\n\t\t\t.map((value) => value.replace(/\\\\/g, '/').toLowerCase());\n\t\tconst appOwnedPathCount = normalizedPaths.filter((value) => APP_OWNED_PATH_PATTERN.test(value)).length;\n\t\tconst libraryPathCount = normalizedPaths.filter((value) => {\n\t\t\treturn value.includes('/node_modules/')\n\t\t\t\t|| value.includes('@resolveio/client-lib')\n\t\t\t\t|| value.includes('@resolveio/server-lib')\n\t\t\t\t|| value.includes('/resolveio-client-lib/')\n\t\t\t\t|| value.includes('/resolveio-server-lib/')\n\t\t\t\t|| value.includes('/aicoder/templates/base_');\n\t\t}).length;\n\n\t\tconst shouldBlock = (libraryPathCount > 0 && appOwnedPathCount === 0)\n\t\t\t|| (markerHits >= 2 && appOwnedPathCount === 0)\n\t\t\t|| (markerHits >= 1 && libraryPathCount >= 2);\n\t\tif (!shouldBlock) {\n\t\t\treturn {blocked: false, evidence};\n\t\t}\n\n\t\tconst compactEvidence = Array.from(new Set([\n\t\t\t...evidence,\n\t\t\t...(libraryPathCount ? [`library_paths=${libraryPathCount}`] : []),\n\t\t\t...(appOwnedPathCount ? [`app_paths=${appOwnedPathCount}`] : [])\n\t\t])).slice(0, 8);\n\t\treturn {\n\t\t\tblocked: true,\n\t\t\treason: 'Root cause appears to be in shared ResolveIO libraries/templates; app-level auto-fix was blocked.',\n\t\t\tevidence: compactEvidence\n\t\t};\n\t}\n\n\tprivate async sendLibraryIssueNotice(log: ErrorAutoFixLogModel, reason: string, evidence: string[]): Promise<void> {\n\t\tconst recipients = this.getEscalationRecipients();\n\t\tif (!recipients.length || !log?._id) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst identifier = log.autofix_error_count_string || log._id;\n\t\tconst subject = `ResolveIO AutoFix Blocked (Library): ${identifier}`;\n\t\tconst body = [\n\t\t\t'Auto-fix was blocked because the issue appears library-owned, so no autonomous patch was attempted.',\n\t\t\t'',\n\t\t\t`Reason: ${reason}`,\n\t\t\tevidence.length ? `Evidence: ${evidence.join(', ')}` : '',\n\t\t\t`Issue Log ID: ${log._id}`,\n\t\t\t`Issue Counter: ${log.autofix_error_count_string || 'n/a'}`,\n\t\t\t`Client: ${log.client_name || log.id_client || 'unknown'}`,\n\t\t\t`Source App: ${log.source_app || 'unknown'}`,\n\t\t\t`Environment: ${log.source_environment || log.openai_environment || 'unknown'}`,\n\t\t\t`Issue Hash: ${log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t'',\n\t\t\t'Manual library release/fix is required. App-level auto-fix remains blocked for this issue to protect credits.'\n\t\t].filter(Boolean).join('\\n');\n\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\tfor (const recipient of recipients) {\n\t\t\ttry {\n\t\t\t\tawait methodManager.sendEmail(recipient, subject, body);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Failed sending library-issue auto-fix email', {recipient, logId: log._id, error});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async blockLibraryOwnedIssue(email: ErrorEmail, log: ErrorAutoFixLogModel, gate: LibraryIssueGateDecision): Promise<AutoFixResult> {\n\t\tconst reason = gate.reason || 'Library-owned issue detected.';\n\t\tconst details = gate.evidence.length ? `Signals: ${gate.evidence.join(', ')}` : '';\n\t\tconst message = [reason, details].filter(Boolean).join(' ');\n\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\tstatus: 'skipped',\n\t\t\tignored: true,\n\t\t\tlast_error: message,\n\t\t\tlast_result_at: new Date()\n\t\t})) || log;\n\t\tawait this.notifyCustomerWorkflowStatus('blocked_library_issue', email, updated, {\n\t\t\terror: reason,\n\t\t\tnotes: details\n\t\t});\n\t\tawait this.sendLibraryIssueNotice(updated, reason, gate.evidence);\n\t\treturn {\n\t\t\tstatus: 'skipped',\n\t\t\temail,\n\t\t\terror: message,\n\t\t\tlog: updated,\n\t\t\treason: 'library_issue_blocked',\n\t\t\tsummary: updated.plan_summary || email.subject,\n\t\t\tnotes: details\n\t\t};\n\t}\n\n\tprivate shouldNotifySkip(reason: string): boolean {\n\t\treturn ['in_progress', 'success', 'ignored', 'duplicate', 'pending'].indexOf(reason) === -1;\n\t}\n\n\tprivate async isGeneratedAICoderClient(idClient: string): Promise<boolean> {\n\t\tconst normalizedClientId = String(idClient || '').trim();\n\t\tif (!normalizedClientId) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst match = await AICoderApps.findOne({\n\t\t\tclient_id: normalizedClientId\n\t\t}, {\n\t\t\tprojection: {\n\t\t\t\t_id: 1\n\t\t\t}\n\t\t});\n\n\t\treturn !!match?._id;\n\t}\n\n\tprivate buildAICoderWorkflowSummary(\n\t\tstage: 'detected_autofix_enabled' | 'detected_autofix_disabled' | 'completed_success' | 'completed_failed' | 'blocked_library_issue',\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): string {\n\t\treturn buildGeneratedAppAutoFixSummary(stage, {\n\t\t\tsource_app: String(log?.source_app || email?.sourceApp || '').trim(),\n\t\t\tenvironment: String(log?.source_environment || email?.sourceEnvironment || '').trim(),\n\t\t\tseverity: String(log?.severity || email?.severity || '').trim(),\n\t\t\terror: extra?.error\n\t\t}, extra);\n\t}\n\n\tprivate buildResolveIOProjectWorkflowDetails(\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): string {\n\t\treturn buildResolveIOProjectAutoFixDetails({\n\t\t\tclient_name: log?.client_name || email?.client_name || '',\n\t\t\tissue_counter: log?.autofix_error_count_string || '',\n\t\t\tsource_app: log?.source_app || email?.sourceApp || '',\n\t\t\tenvironment: log?.source_environment || email?.sourceEnvironment || log?.openai_environment || '',\n\t\t\tseverity: log?.severity || email?.severity || '',\n\t\t\tissue_hash: log?.issue_hash || email?.issueHash || log?.email_hash || '',\n\t\t\tlog_id: log?._id || '',\n\t\t\tnotes: extra?.notes,\n\t\t\terror: extra?.error\n\t\t});\n\t}\n\n\tprivate buildLocalInternalUserCriteria(): Record<string, any> {\n\t\treturn {\n\t\t\t$and: [\n\t\t\t\t{\n\t\t\t\t\tis_customer: {\n\t\t\t\t\t\t$ne: true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t$nor: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'other.id_customer': {\n\t\t\t\t\t\t\t\t$exists: true,\n\t\t\t\t\t\t\t\t$nin: ['', null]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid_customer: {\n\t\t\t\t\t\t\t\t$exists: true,\n\t\t\t\t\t\t\t\t$nin: ['', null]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tprivate buildLocalAdminUserCriteria(): Record<string, any> {\n\t\treturn {\n\t\t\t$or: [\n\t\t\t\t{\n\t\t\t\t\t'roles.super_admin': true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.name': {\n\t\t\t\t\t\t$regex: 'admin',\n\t\t\t\t\t\t$options: 'i'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.views': {\n\t\t\t\t\t\t$regex: '^/manage'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.views': '/manage'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tprivate async resolveLocalNotificationUserIds(isGeneratedApp: boolean): Promise<string[]> {\n\t\tconst andClauses: Record<string, any>[] = [\n\t\t\t{\n\t\t\t\tactive: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tusername: {\n\t\t\t\t\t$exists: true\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\tif (isGeneratedApp) {\n\t\t\tandClauses.push(this.buildLocalInternalUserCriteria());\n\t\t}\n\t\telse {\n\t\t\tandClauses.push(this.buildLocalAdminUserCriteria());\n\t\t}\n\n\t\tconst users = await Users.find({\n\t\t\t$and: andClauses\n\t\t}, {\n\t\t\tprojection: {\n\t\t\t\t_id: 1\n\t\t\t},\n\t\t\tlimit: MAX_LOCAL_NOTIFICATION_USERS\n\t\t});\n\n\t\tif (!Array.isArray(users) || !users.length) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst unique = new Set<string>();\n\t\tfor (const user of users) {\n\t\t\tconst idUser = String(user?._id || '').trim();\n\t\t\tif (idUser) {\n\t\t\t\tunique.add(idUser);\n\t\t\t}\n\t\t\tif (unique.size >= MAX_LOCAL_NOTIFICATION_USERS) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn Array.from(unique);\n\t}\n\n\tprivate async notifyCustomerWorkflowStatus(\n\t\tstage: 'detected_autofix_enabled' | 'detected_autofix_disabled' | 'completed_success' | 'completed_failed' | 'blocked_library_issue',\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): Promise<void> {\n\t\tconst idClient = String(log?.id_client || email?.id_client || '').trim();\n\t\tlet isGeneratedApp = false;\n\t\tif (idClient) {\n\t\t\tisGeneratedApp = await this.isGeneratedAICoderClient(idClient);\n\t\t}\n\t\telse {\n\t\t\tconst resolvedEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\t\tconst app = await this.resolveAutoFixApp(email, log, resolvedEnvironment);\n\t\t\tisGeneratedApp = !!app;\n\t\t}\n\n\t\tif (!isGeneratedApp && stage !== 'completed_success') {\n\t\t\treturn;\n\t\t}\n\n\t\tconst issueKey = String(log?.issue_hash || log?.email_hash || email?.issueHash || email?.hash || log?._id || '').trim();\n\t\tconst clientName = String(log?.client_name || email?.client_name || '').trim();\n\t\tconst targetPayload: Record<string, any> = {};\n\t\tif (idClient) {\n\t\t\ttargetPayload.target_type = isGeneratedApp ? 'client_internal' : 'client_admins';\n\t\t\ttargetPayload.id_client = idClient;\n\t\t\ttargetPayload.client_name = clientName || undefined;\n\t\t}\n\t\telse {\n\t\t\tconst idUsers = await this.resolveLocalNotificationUserIds(isGeneratedApp);\n\t\t\tif (!idUsers.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttargetPayload.target_type = 'users';\n\t\t\ttargetPayload.id_users = idUsers;\n\t\t\ttargetPayload.client_name = clientName || undefined;\n\t\t}\n\n\t\tconst basePayload: Record<string, any> = {\n\t\t\t...targetPayload,\n\t\t\tcategory: 'autofix',\n\t\t\tsource: 'error-auto-fix',\n\t\t\tsource_id: String(log?._id || '').trim() || undefined,\n\t\t\tdedupe_key: issueKey ? `autofix:${issueKey}:${stage}` : `autofix:${String(log?._id || '').trim()}:${stage}`,\n\t\t\tmetadata: {\n\t\t\t\tissue_hash: log?.issue_hash || email?.issueHash || '',\n\t\t\t\tlog_id: log?._id || '',\n\t\t\t\tseverity: log?.severity || email?.severity || '',\n\t\t\t\tsource_app: log?.source_app || email?.sourceApp || '',\n\t\t\t\tsource_environment: log?.source_environment || email?.sourceEnvironment || '',\n\t\t\t\terror: extra?.error || '',\n\t\t\t\tnotes: extra?.notes || ''\n\t\t\t}\n\t\t};\n\n\t\tlet payload: Record<string, any> = {};\n\t\tif (isGeneratedApp) {\n\t\t\tif (stage === 'detected_autofix_enabled') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue detected. Auto-fix is in progress.',\n\t\t\t\t\tmessage: 'We detected an issue in your app and started an automatic fix workflow. We will notify you when it is complete.',\n\t\t\t\t\tseverity: 'info',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'detected_autofix_disabled') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue detected. Auto-fix is disabled.',\n\t\t\t\t\tmessage: 'We detected an issue, but automatic fixing is not enabled. Please ask the AI assistant to investigate this issue.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'completed_success') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Auto-fix completed successfully.',\n\t\t\t\t\tmessage: 'Your issue was fixed automatically and the update was published.',\n\t\t\t\t\tseverity: 'success',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'blocked_library_issue') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue requires a platform library update.',\n\t\t\t\t\tmessage: 'We detected this issue in shared platform libraries, so app auto-fix was stopped. Our engineering team has been notified to ship a library-level fix.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Auto-fix needs manual review.',\n\t\t\t\t\tmessage: 'We could not complete an automatic fix for this issue. Manual follow-up is required.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tpayload = {\n\t\t\t\ttitle: 'ResolveIO project auto-fix completed',\n\t\t\t\tmessage: `A fix for ${String(log?.source_app || email?.sourceApp || 'the project').trim()} completed successfully.`,\n\t\t\t\tseverity: 'success',\n\t\t\t\tdetails: this.buildResolveIOProjectWorkflowDetails(email, log, extra)\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().callMethod('createCustomerNotification', {\n\t\t\t\t...basePayload,\n\t\t\t\t...payload\n\t\t\t});\n\t\t}\n\t\tcatch (error) {\n\t\t\tthis.debugLog('Failed to create customer auto-fix notification', {\n\t\t\t\tlogId: log?._id,\n\t\t\t\tstage,\n\t\t\t\terror: error?.message || error\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate async delay(ms: number): Promise<void> {\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tawait new Promise(resolve => setTimeout(resolve, ms));\n\t}\n\n\tpublic async reportDevError(options: DevErrorReportOptions): Promise<void> {\n\t\tconst subject = (options?.subject || '').trim() || 'ResolveIO alert';\n\t\tconst body = options?.body || '';\n\t\tconst sourceApp = options?.sourceApp || ResolveIOServer.getClientName() || 'resolveio-server';\n\t\tconst environment = options?.environment || process.env.NODE_ENV || '';\n\t\tconst severity = options?.severity || 'infrastructure';\n\t\tconst fingerprint = (options?.fingerprint || createHash('sha256').update(`${sourceApp}:${environment || 'env'}:${subject}`).digest('hex')).trim();\n\t\tconst metadata = options?.metadata && Object.keys(options.metadata).length ? options.metadata : undefined;\n\n\t\tif (!this.isReady()) {\n\t\t\tconsole.warn('AutoFix manager not ready for dev alert', {subject, environment});\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.ingestErrorReport({\n\t\t\t\tsourceApp,\n\t\t\t\tenvironment,\n\t\t\t\tmessage: subject,\n\t\t\t\tstack: body,\n\t\t\t\tseverity,\n\t\t\t\tmetadata,\n\t\t\t\tfingerprint,\n\t\t\t\tidempotencyKey: options?.idempotencyKey,\n\t\t\t\tclientId: options?.clientId,\n\t\t\t\tclientName: options?.clientName,\n\t\t\t\tclientSlug: options?.clientSlug,\n\t\t\t\treportedBy: 'resolveio-server'\n\t\t\t});\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('Failed to log developer alert', subject, err);\n\t\t}\n\t}\n\n\tpublic async ingestErrorReport(report: ErrorReportPayload): Promise<ErrorReportIngestResult> {\n\t\tif (!this.isReady()) {\n\t\t\tthrow new Error('ErrorAutoFixManager is not enabled.');\n\t\t}\n\n\t\tif (!report || !report.sourceApp || !report.message) {\n\t\t\tthrow new Error('Invalid error report payload.');\n\t\t}\n\n\t\tconst normalizedReport: ErrorReportPayload = {\n\t\t\t...report,\n\t\t\tmessage: (report.message || '').toString(),\n\t\t\tstack: report.stack ? report.stack.toString() : undefined,\n\t\t\tmetadata: report.metadata || undefined,\n\t\t\tcontext: report.context || undefined,\n\t\t\tattachments: Array.isArray(report.attachments) ? report.attachments : undefined,\n\t\t\treportedAt: report.reportedAt instanceof Date && !Number.isNaN(report.reportedAt.getTime()) ? report.reportedAt : new Date()\n\t\t};\n\n\t\tconst email = this.buildEmailFromReport(normalizedReport);\n\t\temail.reportedAt = normalizedReport.reportedAt;\n\t\temail.openai_environment = normalizedReport.clientRepo || email.openai_environment;\n\t\temail.fromAddress = this.extractEmailAddress(normalizedReport.clientEmail || normalizedReport.reportedBy || email.from || '');\n\t\tif (!email.fromAddress && normalizedReport.clientSlug) {\n\t\t\temail.fromAddress = `${normalizedReport.clientSlug}@errors.resolveio.com`;\n\t\t}\n\n\t\tconst rawHash = normalizedReport.idempotencyKey ? normalizedReport.idempotencyKey.trim() : '';\n\t\temail.rawHash = rawHash || this.generateRawEmailHash(email);\n\t\tconst fingerprint = normalizedReport.fingerprint ? normalizedReport.fingerprint.trim() : '';\n\t\tif (fingerprint) {\n\t\t\temail.issueHash = fingerprint;\n\t\t\temail.hash = fingerprint;\n\t\t}\n\t\telse {\n\t\t\temail.issueHash = this.generateIssueHash(email);\n\t\t\temail.hash = email.issueHash || email.rawHash;\n\t\t}\n\n\t\tconst client = await this.resolveClientForReport(normalizedReport);\n\t\tconst autoOptimizeEnabled = await this.resolveAutoOptimizeEnabled();\n\t\tconst reservation = await this.reserveLog(email, client, autoOptimizeEnabled);\n\n\t\tif (!reservation.proceed) {\n\t\t\tif (reservation.reason && this.shouldNotifySkip(reservation.reason)) {\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\temail,\n\t\t\t\t\treason: reservation.reason,\n\t\t\t\t\terror: `Skipped auto-fix (${reservation.reason}).`,\n\t\t\t\t\tlog: reservation.log\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: reservation.reason === 'duplicate' ? 'duplicate' : (reservation.reason as any) || 'skipped',\n\t\t\t\treason: reservation.reason,\n\t\t\t\tlog: reservation.log\n\t\t\t};\n\t\t}\n\n\t\temail.logId = reservation.log._id;\n\t\tconst classification = this.classifyEmail(email);\n\t\tawait this.updateLog(email.logId, {\n\t\t\tid_client: client?._id,\n\t\t\tclient_name: client?.name,\n\t\t\tfrom_email: email.fromAddress,\n\t\t\tsource_type: classification.source,\n\t\t\tclassification_reason: classification.reason || '',\n\t\t\topenai_environment: email.openai_environment || reservation.log.openai_environment || this.determineOpenAIEnvironment(client),\n\t\t\tsource_app: email.sourceApp,\n\t\t\tsource_environment: email.sourceEnvironment,\n\t\t\tseverity: email.severity,\n\t\t\treported_by: email.reportedBy || email.fromAddress,\n\t\t\treport_metadata: email.reportMetadata,\n\t\t\treport_context: email.reportContext,\n\t\t\tattachments: email.attachments,\n\t\t\tlast_reported_at: email.reportedAt || new Date()\n\t\t});\n\n\t\tif (classification.skip) {\n\t\t\tconst updated = await this.updateLog(email.logId, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tignored: !!classification.markIgnored,\n\t\t\t\tlast_error: classification.reason || 'Ignored non-app alert',\n\t\t\t\tlast_result_at: new Date()\n\t\t\t});\n\n\t\t\tif (classification.notify) {\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\temail,\n\t\t\t\t\terror: classification.reason,\n\t\t\t\t\tlog: updated,\n\t\t\t\t\treason: 'classified'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\treason: classification.reason,\n\t\t\t\tlog: updated\n\t\t\t};\n\t\t}\n\n\t\tif (!autoOptimizeEnabled) {\n\t\t\tconst queued = await this.updateLog(email.logId, {\n\t\t\t\tstatus: 'pending'\n\t\t\t});\n\t\t\tawait this.notifyCustomerWorkflowStatus('detected_autofix_disabled', email, queued || reservation.log);\n\n\t\t\treturn {\n\t\t\t\tstatus: 'queued',\n\t\t\t\tlog: queued\n\t\t\t};\n\t\t}\n\n\t\tawait this.notifyCustomerWorkflowStatus('detected_autofix_enabled', email, reservation.log);\n\t\tconst result = await this.processEmail(email, reservation.log);\n\t\tawait this.notify(result);\n\t\tconst finalLog = result.log || (await ErrorAutoFixLogs.findOne({_id: email.logId}));\n\t\treturn {\n\t\t\tstatus: result.status,\n\t\t\treason: result.reason,\n\t\t\tlog: finalLog || result.log\n\t\t};\n\t}\n\n\tpublic async runLog(logId: string): Promise<AutoFixResult> {\n\t\tif (!this.config.enabled) {\n\t\t\tthrow new Error('Auto-fix manager disabled.');\n\t\t}\n\n\t\tconst log = await ErrorAutoFixLogs.findOne({_id: logId});\n\t\tif (!log) {\n\t\t\tthrow new Error('Auto-fix log not found.');\n\t\t}\n\n\t\tif (log.ignored) {\n\t\t\tthrow new Error('Auto-fix log is ignored.');\n\t\t}\n\n\t\tif (log.status === 'in_progress') {\n\t\t\tthrow new Error('Auto-fix workflow already running.');\n\t\t}\n\n\t\tif (!log.body) {\n\t\t\tthrow new Error('Auto-fix log is missing email body.');\n\t\t}\n\n\t\tconst now = new Date();\n\t\tconst email = this.buildEmailFromLog(log);\n\t\tconst classification = this.classifyEmail(email);\n\t\tif (classification.skip && classification.markIgnored) {\n\t\t\tconst ignoredLog = await this.updateLog(logId, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tignored: true,\n\t\t\t\tlast_error: classification.reason || 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tlast_result_at: now\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\treason: 'classified',\n\t\t\t\terror: classification.reason || 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tlog: ignoredLog\n\t\t\t};\n\t\t}\n\n\t\tconst inProgressLog = (await ErrorAutoFixLogs.findOneAndUpdate({_id: logId}, {\n\t\t\t$inc: {\n\t\t\t\tattempt_count: 1\n\t\t\t},\n\t\t\t$set: {\n\t\t\t\tstatus: 'in_progress',\n\t\t\t\tlast_attempt_at: now,\n\t\t\t\tlast_error: '',\n\t\t\t\tignored: false\n\t\t\t}\n\t\t}, {\n\t\t\treturnDocument: 'after'\n\t\t})) || log;\n\n\t\tconst result = await this.processEmail(email, inProgressLog);\n\t\tawait this.notify(result);\n\t\treturn result;\n\t}\n\n\tprivate buildEmailFromLog(log: ErrorAutoFixLogModel): ErrorEmail {\n\t\treturn {\n\t\t\tkey: log.message_id || log._id,\n\t\t\tsubject: log.subject,\n\t\t\tbody: log.body || '',\n\t\t\tmessageId: log.message_id,\n\t\t\thash: log.issue_hash || log.email_hash,\n\t\t\trawHash: log.email_hash,\n\t\t\tissueHash: log.issue_hash,\n\t\t\traw: log.body || '',\n\t\t\tid_client: log.id_client,\n\t\t\tclient_name: log.client_name,\n\t\t\tfromAddress: log.from_email,\n\t\t\tsource_type: log.source_type || 'app',\n\t\t\tclassification_reason: log.classification_reason,\n\t\t\topenai_environment: log.openai_environment,\n\t\t\tsourceApp: log.source_app,\n\t\t\tsourceEnvironment: log.source_environment,\n\t\t\tseverity: log.severity,\n\t\t\treportedBy: log.reported_by,\n\t\t\treportMetadata: log.report_metadata,\n\t\t\treportContext: log.report_context,\n\t\t\tattachments: log.attachments,\n\t\t\treportedAt: log.last_reported_at\n\t\t};\n\t}\n\n\tprivate async processEmail(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst libraryIssueGate = this.evaluateLibraryIssueGate(email, log);\n\t\tif (libraryIssueGate.blocked) {\n\t\t\treturn await this.blockLibraryOwnedIssue(email, log, libraryIssueGate);\n\t\t}\n\n\t\tif (this.config.dashboardWorkflowEnabled) {\n\t\t\tconst dashboardResult = await this.dispatchDashboardWorkflow(email, log);\n\t\t\tif (dashboardResult.status === 'in_progress' || dashboardResult.status === 'success') {\n\t\t\t\treturn dashboardResult;\n\t\t\t}\n\t\t\tif (!this.config.dashboardFallbackToGithub) {\n\t\t\t\treturn dashboardResult;\n\t\t\t}\n\n\t\t\tthis.debugLog('Dashboard workflow unavailable; falling back to GitHub workflow.', {\n\t\t\t\tlogId: log?._id,\n\t\t\t\treason: dashboardResult.reason,\n\t\t\t\terror: dashboardResult.error\n\t\t\t});\n\t\t}\n\n\t\treturn await this.dispatchGithubWorkflow(email, log);\n\t}\n\n\tprivate shouldFallbackDashboardMethod(error: any): boolean {\n\t\tconst message = `${error?.message || ''}`.toLowerCase();\n\t\treturn message.includes('not found')\n\t\t\t|| message.includes('worker dispatch unavailable')\n\t\t\t|| message.includes('no worker')\n\t\t\t|| message.includes('unavailable for aidashboard');\n\t}\n\n\tprivate async createDashboardJob(payload: Record<string, any>): Promise<AIDashboardJob> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\treturn await methodManager.callMethod('aiDashboardCreateJob', payload);\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\treturn await manager.createJob(payload);\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async waitForDashboardJobStop(jobId: string, timeoutMs: number): Promise<void> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\tawait methodManager.callMethod('aiDashboardWaitForJobStop', jobId, timeoutMs);\n\t\t\treturn;\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\tawait manager.waitForJobStop(jobId, timeoutMs);\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async isDashboardJobRunning(jobId: string): Promise<boolean> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\tconst running = await methodManager.callMethod('aiDashboardIsJobRunning', jobId);\n\t\t\treturn !!running;\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\treturn !!manager.isJobRunning(jobId);\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async resolveAutoFixApp(email: ErrorEmail, log: ErrorAutoFixLogModel, resolvedEnvironment: string): Promise<AICoderAppModel | null> {\n\t\tconst clientId = (email.id_client || log.id_client || '').trim();\n\t\tif (clientId) {\n\t\t\tconst byClientId = await AICoderApps.findOne({client_id: clientId}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byClientId) {\n\t\t\t\treturn byClientId;\n\t\t\t}\n\t\t}\n\n\t\tconst lookupClientCandidates = [\n\t\t\t(email.client_name || '').trim(),\n\t\t\t(log.client_name || '').trim()\n\t\t].filter(Boolean);\n\t\tfor (const candidate of lookupClientCandidates) {\n\t\t\tconst escaped = this.escapeRegex(candidate);\n\t\t\tconst clientDoc = await Clients.findOne({\n\t\t\t\t$or: [\n\t\t\t\t\t{name: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{demo_name: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{repo: {$regex: `^${escaped}$`, $options: 'i'}}\n\t\t\t\t]\n\t\t\t});\n\t\t\tif (!clientDoc?._id) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst byClient = await AICoderApps.findOne({client_id: clientDoc._id}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byClient) {\n\t\t\t\treturn byClient;\n\t\t\t}\n\t\t}\n\n\t\tconst environmentRepo = (resolvedEnvironment || '').trim();\n\t\tif (environmentRepo) {\n\t\t\tconst escapedRepo = this.escapeRegex(environmentRepo);\n\t\t\tconst byRepo = await AICoderApps.findOne({\n\t\t\t\trepo: {\n\t\t\t\t\t$regex: `^${escapedRepo}$`,\n\t\t\t\t\t$options: 'i'\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byRepo) {\n\t\t\t\treturn byRepo;\n\t\t\t}\n\t\t}\n\n\t\tconst appNameCandidates = [\n\t\t\t(email.sourceApp || '').trim(),\n\t\t\t(log.source_app || '').trim()\n\t\t].filter(Boolean);\n\t\tfor (const candidate of appNameCandidates) {\n\t\t\tconst escaped = this.escapeRegex(candidate);\n\t\t\tconst bySlugOrName = await AICoderApps.findOne({\n\t\t\t\t$or: [\n\t\t\t\t\t{slug: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{name: {$regex: `^${escaped}$`, $options: 'i'}}\n\t\t\t\t]\n\t\t\t}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (bySlugOrName) {\n\t\t\t\treturn bySlugOrName;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprivate buildDashboardAutoFixTitle(email: ErrorEmail, log: ErrorAutoFixLogModel, app: AICoderAppModel): string {\n\t\tconst identifier = log.autofix_error_count_string || (log._id || '').slice(-6) || 'error';\n\t\tconst source = (email.sourceApp || log.source_app || app?.name || 'application').trim();\n\t\treturn `Auto-fix ${identifier}: ${source}`;\n\t}\n\n\tprivate buildDashboardAutoFixDescription(email: ErrorEmail, log: ErrorAutoFixLogModel, app: AICoderAppModel): string {\n\t\tconst normalizedBody = this.normalizeEmailText(email.body || log.body || '', 15000);\n\t\tconst metadata = log.report_metadata && Object.keys(log.report_metadata).length\n\t\t\t? JSON.stringify(log.report_metadata, null, 2)\n\t\t\t: '';\n\t\tconst context = log.report_context && Object.keys(log.report_context).length\n\t\t\t? JSON.stringify(log.report_context, null, 2)\n\t\t\t: '';\n\t\tconst attachments = Array.isArray(log.attachments) ? log.attachments : [];\n\t\tconst attachmentLines = attachments.length\n\t\t\t? attachments.map(att => `- ${(att?.name || 'attachment').trim()} ${att?.url ? `(${att.url})` : ''}`.trim()).join('\\n')\n\t\t\t: '(none)';\n\t\tconst lines: string[] = [\n\t\t\t'Autonomous production error remediation request.',\n\t\t\t'',\n\t\t\t'Hard requirements:',\n\t\t\t'1. Before changing code, query the project MongoDB diagnostics logs for the latest context.',\n\t\t\t'2. Query `error-autofix-logs` using `_id`, `issue_hash`, and `email_hash` from this task, then use the newest matching records.',\n\t\t\t'3. If a previous dashboard job id is provided, query `ai-development-jobs` by that `_id` and review recent failure logs before retrying.',\n\t\t\t'4. Treat `.dashboard-output/build-*.log` as primary build evidence, and `.build-output/build-*.log` as retained history when diagnosing failures.',\n\t\t\t'5. Reproduce and fix the reported issue with the smallest safe code change.',\n\t\t\t'6. Keep query/result behavior backward compatible unless explicitly required by the bug fix.',\n\t\t\t'7. Run project build checks and continue iterating until the build is green.',\n\t\t\t'8. Ensure there are no new lint/type/runtime regressions introduced by the fix.',\n\t\t\t'9. Finish by publishing the passing fix to the default branch and deploying artifacts.',\n\t\t\t'',\n\t\t\t`App: ${app?.name || app?._id || 'unknown'}`,\n\t\t\t`Repo: ${app?.repo || 'unknown'}`,\n\t\t\t`Environment: ${email.sourceEnvironment || log.source_environment || 'unknown'}`,\n\t\t\t`Severity: ${email.severity || log.severity || 'error'}`,\n\t\t\t`Fingerprint: ${email.issueHash || log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t`Error Log Id: ${String(log?._id || '').trim() || 'n/a'}`,\n\t\t\t`Previous Dashboard Job Id: ${String(log?.openai_task_id || '').trim() || 'n/a'}`,\n\t\t\t'',\n\t\t\t'Reported error payload:',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty error body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'Attachments:',\n\t\t\tattachmentLines\n\t\t];\n\t\tif (metadata) {\n\t\t\tlines.push('', 'Metadata JSON:', '```json', metadata, '```');\n\t\t}\n\t\tif (context) {\n\t\t\tlines.push('', 'Context JSON:', '```json', context, '```');\n\t\t}\n\t\treturn lines.join('\\n');\n\t}\n\n\tprivate evaluateDashboardPublishOutcome(job: AIDashboardJob): { success: boolean; branchName?: string; message: string } {\n\t\tconst logEntries = Array.isArray(job?.log) ? job.log : [];\n\t\tconst lastMatch = (predicate): string => {\n\t\t\tfor (let i = logEntries.length - 1; i >= 0; i -= 1) {\n\t\t\t\tif (predicate(logEntries[i] || '')) {\n\t\t\t\t\treturn logEntries[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '';\n\t\t};\n\n\t\tconst failureEntry = lastMatch(entry => /publish failed|artifact publish failed|deploy failed/i.test(entry || ''));\n\t\tif (failureEntry) {\n\t\t\treturn {\n\t\t\t\tsuccess: false,\n\t\t\t\tmessage: failureEntry\n\t\t\t};\n\t\t}\n\n\t\tconst publishEntry = lastMatch(entry => /Published build to /i.test(entry || ''));\n\t\tif (publishEntry) {\n\t\t\tconst branchMatch = publishEntry.match(/\\(([^()]+)\\)\\.?$/);\n\t\t\treturn {\n\t\t\t\tsuccess: true,\n\t\t\t\tbranchName: (branchMatch && branchMatch[1]) ? branchMatch[1].trim() : undefined,\n\t\t\t\tmessage: publishEntry\n\t\t\t};\n\t\t}\n\n\t\tconst skippedEntry = lastMatch(entry => /Publish skipped/i.test(entry || ''));\n\t\tif (skippedEntry) {\n\t\t\treturn {\n\t\t\t\tsuccess: !this.config.dashboardPublishRequired,\n\t\t\t\tmessage: skippedEntry\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: !this.config.dashboardPublishRequired,\n\t\t\tmessage: 'Dashboard job completed without a publish confirmation log entry.'\n\t\t};\n\t}\n\n\tprivate queueDashboardMonitor(log: ErrorAutoFixLogModel, email: ErrorEmail, jobId: string, effectiveEnvironment: string): void {\n\t\tconst logId = (log?._id || '').trim();\n\t\tconst normalizedJobId = (jobId || '').trim();\n\t\tif (!logId || !normalizedJobId) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.dashboardMonitors.has(logId)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst monitor = (async () => {\n\t\t\ttry {\n\t\t\t\tawait this.monitorDashboardAutoFixJob(log, email, normalizedJobId, effectiveEnvironment);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Auto-fix dashboard monitor failed', {logId, jobId: normalizedJobId, error});\n\t\t\t}\n\t\t\tfinally {\n\t\t\t\tthis.dashboardMonitors.delete(logId);\n\t\t\t}\n\t\t})();\n\n\t\tthis.dashboardMonitors.set(logId, monitor);\n\t}\n\n\tprivate async monitorDashboardAutoFixJob(log: ErrorAutoFixLogModel, email: ErrorEmail, jobId: string, effectiveEnvironment: string): Promise<void> {\n\t\tconst logId = (log?._id || '').trim();\n\t\tif (!logId) {\n\t\t\treturn;\n\t\t}\n\n\t\t\tconst fail = async (message: string): Promise<void> => {\n\t\t\t\tconst failedLog = (await this.updateLog(logId, {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\tlast_error: message,\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\topenai_task_id: jobId,\n\t\t\t\t\topenai_environment: effectiveEnvironment\n\t\t\t\t})) || log;\n\t\t\t\tawait this.notifyCustomerWorkflowStatus('completed_failed', email, failedLog, {error: message});\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: failedLog,\n\t\t\t\tsummary: failedLog.plan_summary || email.subject\n\t\t\t});\n\t\t};\n\n\t\ttry {\n\t\t\tawait this.waitForDashboardJobStop(jobId, this.config.dashboardWaitTimeoutMs);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Failed while waiting for dashboard job completion.';\n\t\t\tawait fail(message);\n\t\t\treturn;\n\t\t}\n\n\t\tlet isRunning = false;\n\t\ttry {\n\t\t\tisRunning = await this.isDashboardJobRunning(jobId);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Unable to confirm dashboard job completion state.';\n\t\t\tawait fail(message);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isRunning) {\n\t\t\tawait fail(`Dashboard job ${jobId} timed out before completion.`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst job = await AIDashboardJobs.findOne({_id: jobId}) as AIDashboardJob | null;\n\t\tif (!job) {\n\t\t\tawait fail(`Dashboard job ${jobId} not found.`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (job.phase !== 'COMPLETE' || job.paused) {\n\t\t\tawait fail(`Dashboard job ${jobId} ended in phase ${job.phase || 'unknown'}${job.paused ? ' (paused)' : ''}.`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst publishOutcome = this.evaluateDashboardPublishOutcome(job);\n\t\tif (!publishOutcome.success) {\n\t\t\tawait fail(publishOutcome.message);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fallbackBranch = (String(this._serverConfig?.['GITHUB_DEFAULT_BRANCH'] || process.env.GITHUB_DEFAULT_BRANCH || 'main').trim() || 'main');\n\t\tconst branchName = publishOutcome.branchName || fallbackBranch;\n\t\t\tconst successLog = (await this.updateLog(logId, {\n\t\t\t\tstatus: 'success',\n\t\t\tbranch_name: branchName,\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\tlast_result_at: new Date(),\n\t\t\topenai_task_id: jobId,\n\t\t\t\topenai_environment: effectiveEnvironment\n\t\t\t})) || log;\n\t\t\tawait this.notifyCustomerWorkflowStatus('completed_success', email, successLog, {notes: publishOutcome.message});\n\n\t\t\tawait this.notify({\n\t\t\t\tstatus: 'success',\n\t\t\temail,\n\t\t\tbranchName,\n\t\t\tlog: successLog,\n\t\t\tsummary: successLog.plan_summary || email.subject,\n\t\t\tnotes: publishOutcome.message\n\t\t});\n\t}\n\n\tprivate async dispatchDashboardWorkflow(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst fail = async (\n\t\t\tstatus: 'failed' | 'skipped',\n\t\t\treason: string,\n\t\t\tmessage: string\n\t\t): Promise<AutoFixResult> => {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus,\n\t\t\t\tlast_error: message,\n\t\t\t\tlast_result_at: new Date()\n\t\t\t})) || log;\n\t\t\treturn {\n\t\t\t\tstatus,\n\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: updated,\n\t\t\t\treason\n\t\t\t};\n\t\t};\n\n\t\tconst openaiEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\tconst app = await this.resolveAutoFixApp(email, log, openaiEnvironment);\n\t\tif (!app?._id) {\n\t\t\treturn await fail('skipped', 'dashboard_app_not_found', 'No AI Coder app found for this error log.');\n\t\t}\n\n\t\tconst repo = (app.repo || '').trim();\n\t\tif (!repo) {\n\t\t\treturn await fail('skipped', 'dashboard_repo_missing', 'Resolved AI Coder app is missing repo configuration.');\n\t\t}\n\n\t\tconst effectiveEnvironment = repo;\n\t\tconst emailHash = email.issueHash || email.hash || this.generateIssueHash(email);\n\t\tconst rawHash = email.rawHash || this.generateRawEmailHash(email);\n\t\tconst title = this.buildDashboardAutoFixTitle(email, log, app);\n\t\tconst description = this.buildDashboardAutoFixDescription(email, log, app);\n\n\t\tlet job: AIDashboardJob;\n\t\ttry {\n\t\t\tjob = await this.createDashboardJob({\n\t\t\t\tproject: app._id,\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t\trepo,\n\t\t\t\tpath: app.git_local_path || undefined,\n\t\t\t\tprojectRoot: app.project_root || undefined\n\t\t\t});\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Unable to enqueue dashboard auto-fix job.';\n\t\t\treturn await fail('failed', 'dashboard_job_create_failed', message);\n\t\t}\n\n\t\tconst jobId = (job?._id || '').trim();\n\t\tif (!jobId) {\n\t\t\treturn await fail('failed', 'dashboard_job_missing_id', 'Dashboard job created without an id.');\n\t\t}\n\n\t\t\tconst queuedLog = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'in_progress',\n\t\t\t\tlast_attempt_at: new Date(),\n\t\t\tbranch_name: '',\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\topenai_environment: effectiveEnvironment,\n\t\t\tissue_hash: emailHash,\n\t\t\temail_hash: rawHash,\n\t\t\topenai_task_id: jobId,\n\t\t\tplan_summary: title,\n\t\t\t\tplan_body: description\n\t\t\t})) || log;\n\t\t\tthis.queueDashboardMonitor(queuedLog, email, jobId, effectiveEnvironment);\n\n\t\t\treturn {\n\t\t\tstatus: 'in_progress',\n\t\t\temail,\n\t\t\tlog: queuedLog,\n\t\t\treason: 'dashboard_job_queued',\n\t\t\tsummary: title,\n\t\t\tnotes: `Dashboard job ${jobId} queued for autonomous build/fix/publish/deploy.`\n\t\t};\n\t}\n\n\tprivate async dispatchGithubWorkflow(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst openaiEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\tconst fallbackEnv = this.config.githubOwner && this.config.githubRepo ? `${this.config.githubOwner}/${this.config.githubRepo}` : '';\n\t\tconst resolvedEnvironment = (openaiEnvironment || fallbackEnv || '').trim();\n\t\tconst repoTarget = this.parseRepoTarget(resolvedEnvironment) || this.parseRepoTarget(fallbackEnv);\n\n\t\tthis.debugLog('Starting GitHub PR workflow.', {\n\t\t\temailKey: email.key,\n\t\t\tlogId: log._id,\n\t\t\topenaiEnvironment: resolvedEnvironment,\n\t\t\trepoTarget\n\t\t});\n\n\t\tif (!this.config.githubToken) {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tlast_error: 'GitHub token not configured',\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: resolvedEnvironment\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\terror: 'GitHub token not configured',\n\t\t\t\tlog: updated,\n\t\t\t\treason: 'missing_github_token'\n\t\t\t};\n\t\t}\n\n\t\tif (!repoTarget) {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tlast_error: 'GitHub repository not configured',\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: resolvedEnvironment\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\terror: 'GitHub repository not configured',\n\t\t\t\tlog: updated,\n\t\t\t\treason: 'missing_github_repo'\n\t\t\t};\n\t\t}\n\n\t\tconst effectiveEnv = `${repoTarget.owner}/${repoTarget.repo}`;\n\t\tconst emailHash = email.issueHash || email.hash || this.generateIssueHash(email);\n\t\tconst rawHash = email.rawHash || this.generateRawEmailHash(email);\n\t\tconst workBranch = this.buildWorkBranch(emailHash);\n\t\tconst contextIdentifier = (emailHash || '').slice(0, 12) || 'autofix';\n\t\tconst contextPath = `.openai/error-context/${contextIdentifier}.md`;\n\t\tconst normalizedBody = this.normalizeEmailText(email.body || '');\n\t\tconst contextContent = this.buildContextMarkdown(email, contextIdentifier, normalizedBody);\n\t\tconst commentBody = this.buildOpenAIComment(email, contextPath, normalizedBody);\n\n\t\tawait this.updateLog(log._id, {\n\t\t\tstatus: 'in_progress',\n\t\t\tlast_attempt_at: new Date(),\n\t\t\tbranch_name: workBranch,\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\topenai_environment: effectiveEnv,\n\t\t\tissue_hash: emailHash,\n\t\t\temail_hash: rawHash\n\t\t});\n\n\t\ttry {\n\t\t\tconst baseBranch = await this.resolveBaseBranch(repoTarget);\n\t\t\tconst baseSha = await this.getBranchSha(repoTarget, baseBranch);\n\t\t\tawait this.ensureBranch(repoTarget, workBranch, baseBranch, baseSha);\n\t\t\tawait this.upsertContextFile(repoTarget, workBranch, contextPath, contextContent);\n\n\t\t\t\tlet pr = await this.findOpenPullRequest(repoTarget, workBranch, baseBranch);\n\t\t\t\tif (!pr) {\n\t\t\t\t\tconst title = `AI Autofix: ${(email.subject || 'ResolveIO Error').slice(0, 180)}`;\n\t\t\t\t\tconst bodyLines = [\n\t\t\t\t\t\t'This PR was opened automatically to let AI investigate the reported failure.',\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t`Context file: \\`${contextPath}\\``\n\t\t\t\t\t];\n\t\t\t\tpr = await this.createPullRequest(repoTarget, workBranch, baseBranch, title, bodyLines.join('\\n'));\n\t\t\t}\n\n\t\t\tawait this.commentOnPullRequest(repoTarget, pr.number, commentBody);\n\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'success',\n\t\t\t\tbranch_name: workBranch,\n\t\t\t\tpr_url: pr.html_url,\n\t\t\t\tplan_summary: email.subject,\n\t\t\t\tplan_body: commentBody,\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: effectiveEnv,\n\t\t\t\tissue_hash: emailHash,\n\t\t\t\temail_hash: rawHash\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'success',\n\t\t\t\temail,\n\t\t\t\tbranchName: workBranch,\n\t\t\t\tprUrl: pr.html_url,\n\t\t\t\tlog: updated,\n\t\t\t\tsummary: email.subject,\n\t\t\t\tnotes: `Context file: ${contextPath}`\n\t\t\t};\n\t\t}\n\t\tcatch (err) {\n\t\t\tconst message = err?.message || 'GitHub workflow failed.';\n\t\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\tlast_error: message,\n\t\t\t\t\tlast_result_at: new Date(),\n\t\t\t\t\tid_client: email.id_client,\n\t\t\t\t\tclient_name: email.client_name,\n\t\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\t\tsource_type: email.source_type,\n\t\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\t\topenai_environment: effectiveEnv,\n\t\t\t\t\tissue_hash: emailHash,\n\t\t\t\t\temail_hash: rawHash\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'failed',\n\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: updated\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate async notify(result: AutoFixResult): Promise<void> {\n\t\tif (result.status === 'in_progress') {\n\t\t\treturn;\n\t\t}\n\n\t\tif (result.status === 'skipped' && result.reason && !this.shouldNotifySkip(result.reason)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst recipients = this.config.notifyEmails.length\n\t\t\t? this.config.notifyEmails\n\t\t\t: (result.status === 'failed' ? [DEFAULT_ERROR_ALERT_EMAIL] : []);\n\t\tif (!recipients.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet subject = '';\n\t\tlet bodyLines: string[] = [];\n\t\tconst logId = result.log?._id || '';\n\t\tconst summary = result.summary || result.log?.plan_summary || result.email.subject;\n\n\t\tif (result.status === 'success') {\n\t\t\tsubject = `ResolveIO AutoFix ✔ ${summary}`;\n\t\t\tbodyLines = [\n\t\t\t\t'Auto-fix workflow completed successfully.',\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t'',\n\t\t\t\t`Branch: ${result.branchName || 'unknown'}`,\n\t\t\t\t`PR: ${result.prUrl || 'pending'}`,\n\t\t\t\t'',\n\t\t\t\t'Summary:',\n\t\t\t\tsummary || '(none)',\n\t\t\t\t''\n\t\t\t];\n\n\t\t\tif (result.notes) {\n\t\t\t\tbodyLines.push(`Notes: ${result.notes}`, '');\n\t\t\t}\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push(`Log ID: ${logId}`);\n\t\t\t}\n\t\t}\n\t\telse if (result.status === 'failed') {\n\t\t\tsubject = `ResolveIO AutoFix ✖ ${summary}`;\n\t\t\tbodyLines = [\n\t\t\t\t'Auto-fix workflow failed.',\n\t\t\t\t`Reason: ${result.error || result.log?.last_error || 'Unknown error'}`,\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t'',\n\t\t\t\t'Email Subject:',\n\t\t\t\tresult.email.subject\n\t\t\t];\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push('', `Log ID: ${logId}`);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tsubject = `ResolveIO AutoFix ⚠ ${result.email.subject}`;\n\t\t\tconst reason = result.reason || 'skipped';\n\n\t\t\tbodyLines = [\n\t\t\t\t`Auto-fix skipped. Reason: ${reason}.`,\n\t\t\t\tresult.error && result.error !== reason ? `Details: ${result.error}` : '',\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t''\n\t\t\t];\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push(`Log ID: ${logId}`);\n\t\t\t}\n\n\t\t\tbodyLines.push('Update or remove the log entry to retry processing.');\n\t\t}\n\n\t\tconst textBody = bodyLines.filter(line => line !== undefined && line !== null && line !== '').join('\\n');\n\n\t\tfor (let email of recipients) {\n\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail(email, subject, textBody);\n\t\t}\n\t}\n\n}\n\nexport function ensureErrorAutoFixManager(serverConfig?: any): ErrorAutoFixManager | null {\n\tconst existing = ResolveIOServer['AutoFixManager'] as ErrorAutoFixManager | null;\n\tif (existing) {\n\t\treturn existing;\n\t}\n\n\tif (!configuredErrorAutoFixDependencies) {\n\t\treturn null;\n\t}\n\n\tconst resolvedServerConfig = serverConfig || ResolveIOServer.getServerConfig();\n\tif (!resolvedServerConfig) {\n\t\treturn null;\n\t}\n\n\tconst manager = new ErrorAutoFixManager(resolvedServerConfig);\n\tResolveIOServer['AutoFixManager'] = manager;\n\treturn manager;\n}\n\nexport async function reportDevError(options: DevErrorReportOptions): Promise<void> {\n\tconst manager = ensureErrorAutoFixManager();\n\tif (!manager) {\n\t\tconsole.warn('AutoFix manager not initialized for dev alert', options?.subject);\n\t\treturn;\n\t}\n\n\tawait manager.reportDevError(options);\n}\n"]}
|