@resolveio/server-lib 22.3.142 → 22.3.143
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/ai/assistant-core-heuristics.d.ts +11 -0
- package/ai/assistant-core-heuristics.js +356 -0
- package/ai/assistant-core-heuristics.js.map +1 -0
- package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +3 -0
- package/ai/resolveio-platform-intelligence-memory-corpus.js +214 -0
- package/ai/resolveio-platform-intelligence-memory-corpus.js.map +1 -0
- package/ai/resolveio-platform-intelligence-memory.d.ts +20 -0
- package/ai/resolveio-platform-intelligence-memory.js +341 -0
- package/ai/resolveio-platform-intelligence-memory.js.map +1 -0
- package/{src/ai/resolveio-platform-intelligence-types.ts → ai/resolveio-platform-intelligence-types.d.ts} +15 -20
- package/ai/resolveio-platform-intelligence-types.js +4 -0
- package/ai/resolveio-platform-intelligence-types.js.map +1 -0
- package/ai/resolveio-platform-intelligence.d.ts +6 -0
- package/ai/resolveio-platform-intelligence.js +463 -0
- package/ai/resolveio-platform-intelligence.js.map +1 -0
- package/client-server-app.d.ts +1 -0
- package/client-server-app.js +68 -0
- package/client-server-app.js.map +1 -0
- package/collections/ai-run.collection.d.ts +3 -0
- package/collections/ai-run.collection.js +170 -0
- package/collections/ai-run.collection.js.map +1 -0
- package/collections/ai-terminal-conversation.collection.d.ts +2 -0
- package/collections/ai-terminal-conversation.collection.js +140 -0
- package/collections/ai-terminal-conversation.collection.js.map +1 -0
- package/collections/ai-terminal-issue-report.collection.d.ts +2 -0
- package/collections/ai-terminal-issue-report.collection.js +148 -0
- package/collections/ai-terminal-issue-report.collection.js.map +1 -0
- package/collections/ai-terminal-message.collection.d.ts +2 -0
- package/collections/ai-terminal-message.collection.js +121 -0
- package/collections/ai-terminal-message.collection.js.map +1 -0
- package/collections/app-setting.collection.d.ts +3 -0
- package/collections/app-setting.collection.js +103 -0
- package/collections/app-setting.collection.js.map +1 -0
- package/collections/app-status.collection.d.ts +3 -0
- package/collections/app-status.collection.js +57 -0
- package/collections/app-status.collection.js.map +1 -0
- package/collections/communication-metric.collection.d.ts +2 -0
- package/collections/communication-metric.collection.js +133 -0
- package/collections/communication-metric.collection.js.map +1 -0
- package/collections/counter.collection.d.ts +3 -0
- package/collections/counter.collection.js +56 -0
- package/collections/counter.collection.js.map +1 -0
- package/collections/cron-job-history.collection.d.ts +3 -0
- package/collections/cron-job-history.collection.js +137 -0
- package/collections/cron-job-history.collection.js.map +1 -0
- package/collections/cron-job.collection.d.ts +3 -0
- package/collections/cron-job.collection.js +92 -0
- package/collections/cron-job.collection.js.map +1 -0
- package/collections/customer-notification.collection.d.ts +3 -0
- package/collections/customer-notification.collection.js +130 -0
- package/collections/customer-notification.collection.js.map +1 -0
- package/collections/customer-portal-password.collection.d.ts +3 -0
- package/collections/customer-portal-password.collection.js +75 -0
- package/collections/customer-portal-password.collection.js.map +1 -0
- package/collections/email-history.collection.d.ts +3 -0
- package/collections/email-history.collection.js +134 -0
- package/collections/email-history.collection.js.map +1 -0
- package/collections/email-verified.collection.d.ts +3 -0
- package/collections/email-verified.collection.js +62 -0
- package/collections/email-verified.collection.js.map +1 -0
- package/collections/file.collection.d.ts +3 -0
- package/collections/file.collection.js +74 -0
- package/collections/file.collection.js.map +1 -0
- package/collections/flag-update.collection.d.ts +3 -0
- package/collections/flag-update.collection.js +57 -0
- package/collections/flag-update.collection.js.map +1 -0
- package/collections/flag.collection.d.ts +3 -0
- package/collections/flag.collection.js +57 -0
- package/collections/flag.collection.js.map +1 -0
- package/collections/log-method-latency.collection.d.ts +3 -0
- package/collections/log-method-latency.collection.js +77 -0
- package/collections/log-method-latency.collection.js.map +1 -0
- package/collections/log-subscription.collection.d.ts +3 -0
- package/collections/log-subscription.collection.js +80 -0
- package/collections/log-subscription.collection.js.map +1 -0
- package/collections/log.collection.d.ts +3 -0
- package/collections/log.collection.js +93 -0
- package/collections/log.collection.js.map +1 -0
- package/collections/logged-in-users.collection.d.ts +3 -0
- package/collections/logged-in-users.collection.js +67 -0
- package/collections/logged-in-users.collection.js.map +1 -0
- package/collections/monitor-cpu.collection.d.ts +3 -0
- package/collections/monitor-cpu.collection.js +65 -0
- package/collections/monitor-cpu.collection.js.map +1 -0
- package/collections/monitor-function.collection.d.ts +3 -0
- package/collections/monitor-function.collection.js +74 -0
- package/collections/monitor-function.collection.js.map +1 -0
- package/collections/monitor-memory.collection.d.ts +3 -0
- package/collections/monitor-memory.collection.js +77 -0
- package/collections/monitor-memory.collection.js.map +1 -0
- package/collections/monitor-mongo.collection.d.ts +3 -0
- package/collections/monitor-mongo.collection.js +71 -0
- package/collections/monitor-mongo.collection.js.map +1 -0
- package/collections/notification.collection.d.ts +3 -0
- package/collections/notification.collection.js +57 -0
- package/collections/notification.collection.js.map +1 -0
- package/collections/openai-usage-ledger.collection.d.ts +2 -0
- package/collections/openai-usage-ledger.collection.js +124 -0
- package/collections/openai-usage-ledger.collection.js.map +1 -0
- package/collections/report-builder-dashboard-builder.collection.d.ts +3 -0
- package/collections/report-builder-dashboard-builder.collection.js +109 -0
- package/collections/report-builder-dashboard-builder.collection.js.map +1 -0
- package/collections/report-builder-library.collection.d.ts +3 -0
- package/collections/report-builder-library.collection.js +87 -0
- package/collections/report-builder-library.collection.js.map +1 -0
- package/collections/report-builder-report.collection.d.ts +4 -0
- package/collections/report-builder-report.collection.js +184 -0
- package/collections/report-builder-report.collection.js.map +1 -0
- package/collections/user-group.collection.d.ts +4 -0
- package/collections/user-group.collection.js +89 -0
- package/collections/user-group.collection.js.map +1 -0
- package/collections/user-guide.collection.d.ts +3 -0
- package/collections/user-guide.collection.js +57 -0
- package/collections/user-guide.collection.js.map +1 -0
- package/collections/user.collection.d.ts +4 -0
- package/collections/user.collection.js +180 -0
- package/collections/user.collection.js.map +1 -0
- package/cron/cron.d.ts +14 -0
- package/cron/cron.js +216 -0
- package/cron/cron.js.map +1 -0
- package/fixtures/cron-jobs.d.ts +1 -0
- package/fixtures/cron-jobs.js +150 -0
- package/fixtures/cron-jobs.js.map +1 -0
- package/fixtures/init.d.ts +1 -0
- package/fixtures/init.js +91 -0
- package/fixtures/init.js.map +1 -0
- package/http/auth.d.ts +2 -0
- package/http/auth.js +951 -0
- package/http/auth.js.map +1 -0
- package/http/health.d.ts +1 -0
- package/http/health.js +11 -0
- package/http/health.js.map +1 -0
- package/http/home.d.ts +1 -0
- package/http/home.js +134 -0
- package/http/home.js.map +1 -0
- package/http/slow-query-publication.d.ts +2 -0
- package/http/slow-query-publication.js +99 -0
- package/http/slow-query-publication.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +19 -0
- package/index.js.map +1 -0
- package/managers/ai-assistant-codex-manager.manager.d.ts +67 -0
- package/managers/ai-assistant-codex-manager.manager.js +1113 -0
- package/managers/ai-assistant-codex-manager.manager.js.map +1 -0
- package/managers/ai-run-evidence.manager.d.ts +36 -0
- package/managers/ai-run-evidence.manager.js +377 -0
- package/managers/ai-run-evidence.manager.js.map +1 -0
- package/managers/communication-metric.manager.d.ts +16 -0
- package/managers/communication-metric.manager.js +134 -0
- package/managers/communication-metric.manager.js.map +1 -0
- package/managers/cron.manager.d.ts +20 -0
- package/managers/cron.manager.js +534 -0
- package/managers/cron.manager.js.map +1 -0
- package/managers/customer-notification-content.manager.d.ts +55 -0
- package/managers/customer-notification-content.manager.js +158 -0
- package/managers/customer-notification-content.manager.js.map +1 -0
- package/managers/diagnostic-manager-bootstrap.d.ts +9 -0
- package/managers/diagnostic-manager-bootstrap.js +260 -0
- package/managers/diagnostic-manager-bootstrap.js.map +1 -0
- package/managers/error-auto-fix.manager.d.ts +149 -0
- package/managers/error-auto-fix.manager.js +3064 -0
- package/managers/error-auto-fix.manager.js.map +1 -0
- package/managers/local-log.manager.d.ts +18 -0
- package/managers/local-log.manager.js +88 -0
- package/managers/local-log.manager.js.map +1 -0
- package/managers/method.manager.d.ts +84 -0
- package/managers/method.manager.js +1964 -0
- package/managers/method.manager.js.map +1 -0
- package/managers/mongo.manager.d.ts +224 -0
- package/managers/mongo.manager.js +5000 -0
- package/managers/mongo.manager.js.map +1 -0
- package/managers/monitor.manager.d.ts +70 -0
- package/managers/monitor.manager.js +550 -0
- package/managers/monitor.manager.js.map +1 -0
- package/managers/openai-usage-ledger.manager.d.ts +16 -0
- package/managers/openai-usage-ledger.manager.js +93 -0
- package/managers/openai-usage-ledger.manager.js.map +1 -0
- package/managers/slow-query-verifier.manager.d.ts +144 -0
- package/managers/slow-query-verifier.manager.js +3857 -0
- package/managers/slow-query-verifier.manager.js.map +1 -0
- package/managers/slow-query.manager.d.ts +28 -0
- package/managers/slow-query.manager.js +468 -0
- package/managers/slow-query.manager.js.map +1 -0
- package/managers/subscription.manager.d.ts +169 -0
- package/managers/subscription.manager.js +3434 -0
- package/managers/subscription.manager.js.map +1 -0
- package/managers/websocket.manager.d.ts +73 -0
- package/managers/websocket.manager.js +673 -0
- package/managers/websocket.manager.js.map +1 -0
- package/managers/worker-dispatcher.manager.d.ts +120 -0
- package/managers/worker-dispatcher.manager.js +1266 -0
- package/managers/worker-dispatcher.manager.js.map +1 -0
- package/managers/worker-server.manager.d.ts +35 -0
- package/managers/worker-server.manager.js +582 -0
- package/managers/worker-server.manager.js.map +1 -0
- package/methods/accounts.d.ts +2 -0
- package/methods/accounts.js +624 -0
- package/methods/accounts.js.map +1 -0
- package/methods/ai-terminal.d.ts +337 -0
- package/methods/ai-terminal.js +23166 -0
- package/methods/ai-terminal.js.map +1 -0
- package/methods/app-settings.d.ts +2 -0
- package/methods/app-settings.js +169 -0
- package/methods/app-settings.js.map +1 -0
- package/methods/aws.d.ts +2 -0
- package/methods/aws.js +877 -0
- package/methods/aws.js.map +1 -0
- package/methods/collections.d.ts +2 -0
- package/methods/collections.js +719 -0
- package/methods/collections.js.map +1 -0
- package/methods/counters.d.ts +2 -0
- package/methods/counters.js +113 -0
- package/methods/counters.js.map +1 -0
- package/methods/cron-jobs.d.ts +2 -0
- package/methods/cron-jobs.js +2475 -0
- package/methods/cron-jobs.js.map +1 -0
- package/methods/customer-notifications.d.ts +2 -0
- package/methods/customer-notifications.js +528 -0
- package/methods/customer-notifications.js.map +1 -0
- package/methods/diagnostics.d.ts +2 -0
- package/methods/diagnostics.js +703 -0
- package/methods/diagnostics.js.map +1 -0
- package/methods/flag-updates.d.ts +2 -0
- package/methods/flag-updates.js +8 -0
- package/methods/flag-updates.js.map +1 -0
- package/methods/flags.d.ts +2 -0
- package/methods/flags.js +8 -0
- package/methods/flags.js.map +1 -0
- package/methods/logs.d.ts +2 -0
- package/methods/logs.js +751 -0
- package/methods/logs.js.map +1 -0
- package/methods/mongo-explorer.d.ts +2 -0
- package/methods/mongo-explorer.js +1808 -0
- package/methods/mongo-explorer.js.map +1 -0
- package/methods/monitor.d.ts +2 -0
- package/methods/monitor.js +543 -0
- package/methods/monitor.js.map +1 -0
- package/methods/pdf.d.ts +2 -0
- package/methods/pdf.js +1216 -0
- package/methods/pdf.js.map +1 -0
- package/methods/publications.d.ts +1 -0
- package/methods/publications.js +183 -0
- package/methods/publications.js.map +1 -0
- package/methods/report-builder.d.ts +2 -0
- package/methods/report-builder.js +3094 -0
- package/methods/report-builder.js.map +1 -0
- package/methods/support.d.ts +2 -0
- package/methods/support.js +430 -0
- package/methods/support.js.map +1 -0
- package/models/ai-run.model.d.ts +19 -0
- package/models/ai-run.model.js +4 -0
- package/models/ai-run.model.js.map +1 -0
- package/models/ai-terminal-conversation.model.d.ts +17 -0
- package/models/ai-terminal-conversation.model.js +4 -0
- package/models/ai-terminal-conversation.model.js.map +1 -0
- package/models/ai-terminal-issue-report.model.d.ts +19 -0
- package/models/ai-terminal-issue-report.model.js +4 -0
- package/models/ai-terminal-issue-report.model.js.map +1 -0
- package/models/ai-terminal-message.model.d.ts +22 -0
- package/models/ai-terminal-message.model.js +4 -0
- package/models/ai-terminal-message.model.js.map +1 -0
- package/models/app-setting.model.d.ts +16 -0
- package/models/app-setting.model.js +4 -0
- package/models/app-setting.model.js.map +1 -0
- package/{src/models/app-status.model.ts → models/app-status.model.d.ts} +2 -3
- package/models/app-status.model.js +4 -0
- package/models/app-status.model.js.map +1 -0
- package/{src/models/billing-logged-in-users.model.ts → models/billing-logged-in-users.model.d.ts} +4 -5
- package/models/billing-logged-in-users.model.js +4 -0
- package/models/billing-logged-in-users.model.js.map +1 -0
- package/models/collection-document.model.d.ts +21 -0
- package/models/collection-document.model.js +4 -0
- package/models/collection-document.model.js.map +1 -0
- package/models/communication-metric.model.d.ts +20 -0
- package/models/communication-metric.model.js +4 -0
- package/models/communication-metric.model.js.map +1 -0
- package/{src/models/counter.model.ts → models/counter.model.d.ts} +3 -4
- package/models/counter.model.js +4 -0
- package/models/counter.model.js.map +1 -0
- package/models/cron-job-history.model.d.ts +15 -0
- package/models/cron-job-history.model.js +4 -0
- package/models/cron-job-history.model.js.map +1 -0
- package/models/cron-job.model.d.ts +14 -0
- package/models/cron-job.model.js +4 -0
- package/models/cron-job.model.js.map +1 -0
- package/models/customer-notification.model.d.ts +26 -0
- package/models/customer-notification.model.js +4 -0
- package/models/customer-notification.model.js.map +1 -0
- package/models/customer-portal-password.model.d.ts +11 -0
- package/models/customer-portal-password.model.js +4 -0
- package/models/customer-portal-password.model.js.map +1 -0
- package/models/dialog.model.d.ts +23 -0
- package/models/dialog.model.js +4 -0
- package/models/dialog.model.js.map +1 -0
- package/models/email-history.model.d.ts +32 -0
- package/{src/models/email-history.model.ts → models/email-history.model.js} +4 -36
- package/models/email-history.model.js.map +1 -0
- package/{src/models/email-verified.model.ts → models/email-verified.model.d.ts} +5 -6
- package/models/email-verified.model.js +4 -0
- package/models/email-verified.model.js.map +1 -0
- package/{src/models/file.model.ts → models/file.model.d.ts} +7 -8
- package/models/file.model.js +4 -0
- package/models/file.model.js.map +1 -0
- package/{src/models/flag-update.model.ts → models/flag-update.model.d.ts} +3 -4
- package/models/flag-update.model.js +4 -0
- package/models/flag-update.model.js.map +1 -0
- package/{src/models/flag.model.ts → models/flag.model.d.ts} +3 -4
- package/models/flag.model.js +4 -0
- package/models/flag.model.js.map +1 -0
- package/models/log-method-latency.model.d.ts +10 -0
- package/models/log-method-latency.model.js +4 -0
- package/models/log-method-latency.model.js.map +1 -0
- package/{src/models/log-subscription.model.ts → models/log-subscription.model.d.ts} +9 -11
- package/models/log-subscription.model.js +4 -0
- package/models/log-subscription.model.js.map +1 -0
- package/models/log.model.d.ts +17 -0
- package/models/log.model.js +4 -0
- package/models/log.model.js.map +1 -0
- package/{src/models/logged-in-users.model.ts → models/logged-in-users.model.d.ts} +5 -6
- package/models/logged-in-users.model.js +4 -0
- package/models/logged-in-users.model.js.map +1 -0
- package/{src/models/method-response.model.ts → models/method-response.model.d.ts} +6 -7
- package/models/method-response.model.js +4 -0
- package/models/method-response.model.js.map +1 -0
- package/models/method.model.d.ts +26 -0
- package/models/method.model.js +4 -0
- package/models/method.model.js.map +1 -0
- package/{src/models/monitor-cpu.model.ts → models/monitor-cpu.model.d.ts} +7 -9
- package/models/monitor-cpu.model.js +4 -0
- package/models/monitor-cpu.model.js.map +1 -0
- package/models/monitor-function.model.d.ts +14 -0
- package/models/monitor-function.model.js +4 -0
- package/models/monitor-function.model.js.map +1 -0
- package/models/monitor-memory.model.d.ts +15 -0
- package/models/monitor-memory.model.js +4 -0
- package/models/monitor-memory.model.js.map +1 -0
- package/models/monitor-mongo.model.d.ts +13 -0
- package/models/monitor-mongo.model.js +4 -0
- package/models/monitor-mongo.model.js.map +1 -0
- package/{src/models/notification.model.ts → models/notification.model.d.ts} +4 -6
- package/models/notification.model.js +4 -0
- package/models/notification.model.js.map +1 -0
- package/models/openai-usage-ledger.model.d.ts +15 -0
- package/models/openai-usage-ledger.model.js +4 -0
- package/models/openai-usage-ledger.model.js.map +1 -0
- package/models/pagination.model.d.ts +11 -0
- package/models/pagination.model.js +28 -0
- package/models/pagination.model.js.map +1 -0
- package/models/permission.model.d.ts +12 -0
- package/models/permission.model.js +4 -0
- package/models/permission.model.js.map +1 -0
- package/models/report-builder-dashboard-builder.model.d.ts +25 -0
- package/models/report-builder-dashboard-builder.model.js +4 -0
- package/models/report-builder-dashboard-builder.model.js.map +1 -0
- package/models/report-builder-library.model.d.ts +17 -0
- package/models/report-builder-library.model.js +4 -0
- package/models/report-builder-library.model.js.map +1 -0
- package/models/report-builder-report.model.d.ts +121 -0
- package/models/report-builder-report.model.js +4 -0
- package/models/report-builder-report.model.js.map +1 -0
- package/models/report-builder.model.d.ts +61 -0
- package/models/report-builder.model.js +4 -0
- package/models/report-builder.model.js.map +1 -0
- package/models/select-data-label.model.d.ts +9 -0
- package/models/select-data-label.model.js +4 -0
- package/models/select-data-label.model.js.map +1 -0
- package/models/server-message.model.d.ts +32 -0
- package/models/server-message.model.js +4 -0
- package/models/server-message.model.js.map +1 -0
- package/models/slow-query-report.model.d.ts +23 -0
- package/models/slow-query-report.model.js +4 -0
- package/models/slow-query-report.model.js.map +1 -0
- package/models/subscription.model.d.ts +31 -0
- package/models/subscription.model.js +4 -0
- package/models/subscription.model.js.map +1 -0
- package/models/support-ticket.model.d.ts +87 -0
- package/models/support-ticket.model.js +4 -0
- package/models/support-ticket.model.js.map +1 -0
- package/models/user-group.model.d.ts +20 -0
- package/models/user-group.model.js +4 -0
- package/models/user-group.model.js.map +1 -0
- package/{src/models/user-guide.model.ts → models/user-guide.model.d.ts} +4 -5
- package/models/user-guide.model.js +4 -0
- package/models/user-guide.model.js.map +1 -0
- package/models/user.model.d.ts +84 -0
- package/models/user.model.js +4 -0
- package/models/user.model.js.map +1 -0
- package/package.json +1 -1
- package/private/images/ResolveIO.png +0 -0
- package/public_api.js +127 -0
- package/public_api.js.map +1 -0
- package/publications/ai-terminal.d.ts +1 -0
- package/publications/ai-terminal.js +122 -0
- package/publications/ai-terminal.js.map +1 -0
- package/publications/app-settings.d.ts +2 -0
- package/publications/app-settings.js +28 -0
- package/publications/app-settings.js.map +1 -0
- package/publications/app-status.d.ts +2 -0
- package/publications/app-status.js +16 -0
- package/publications/app-status.js.map +1 -0
- package/publications/cron-jobs.d.ts +2 -0
- package/publications/cron-jobs.js +88 -0
- package/publications/cron-jobs.js.map +1 -0
- package/publications/customer-notifications.d.ts +2 -0
- package/publications/customer-notifications.js +161 -0
- package/publications/customer-notifications.js.map +1 -0
- package/publications/files.d.ts +2 -0
- package/publications/files.js +36 -0
- package/publications/files.js.map +1 -0
- package/publications/flags-update.d.ts +2 -0
- package/publications/flags-update.js +22 -0
- package/publications/flags-update.js.map +1 -0
- package/publications/flags.d.ts +2 -0
- package/publications/flags.js +22 -0
- package/publications/flags.js.map +1 -0
- package/publications/logs.d.ts +2 -0
- package/publications/logs.js +164 -0
- package/publications/logs.js.map +1 -0
- package/publications/notifications.d.ts +2 -0
- package/publications/notifications.js +16 -0
- package/publications/notifications.js.map +1 -0
- package/publications/report-builder-dashboard-builders.d.ts +2 -0
- package/publications/report-builder-dashboard-builders.js +42 -0
- package/publications/report-builder-dashboard-builders.js.map +1 -0
- package/publications/report-builder-libraries.d.ts +2 -0
- package/publications/report-builder-libraries.js +90 -0
- package/publications/report-builder-libraries.js.map +1 -0
- package/publications/report-builder-reports.d.ts +2 -0
- package/publications/report-builder-reports.js +50 -0
- package/publications/report-builder-reports.js.map +1 -0
- package/publications/super-admin.d.ts +2 -0
- package/publications/super-admin.js +16 -0
- package/publications/super-admin.js.map +1 -0
- package/publications/user-groups.d.ts +1 -0
- package/publications/user-groups.js +16 -0
- package/publications/user-groups.js.map +1 -0
- package/publications/user-guides.d.ts +1 -0
- package/publications/user-guides.js +16 -0
- package/publications/user-guides.js.map +1 -0
- package/resolveio-server-app.d.ts +70 -0
- package/resolveio-server-app.js +801 -0
- package/resolveio-server-app.js.map +1 -0
- package/server-app.d.ts +228 -0
- package/server-app.js +3566 -0
- package/server-app.js.map +1 -0
- package/services/codex-client.d.ts +128 -0
- package/services/codex-client.js +1629 -0
- package/services/codex-client.js.map +1 -0
- package/services/openai-client.d.ts +46 -0
- package/services/openai-client.js +318 -0
- package/services/openai-client.js.map +1 -0
- package/types/error-report.d.ts +25 -0
- package/types/error-report.js +4 -0
- package/types/error-report.js.map +1 -0
- package/types/slow-query-report.d.ts +27 -0
- package/types/slow-query-report.js +6 -0
- package/types/slow-query-report.js.map +1 -0
- package/util/ai-qa-policy.d.ts +124 -0
- package/util/ai-qa-policy.js +736 -0
- package/util/ai-qa-policy.js.map +1 -0
- package/util/ai-run-evidence-adapters.d.ts +33 -0
- package/util/ai-run-evidence-adapters.js +831 -0
- package/util/ai-run-evidence-adapters.js.map +1 -0
- package/util/ai-run-evidence-dashboard.d.ts +67 -0
- package/util/ai-run-evidence-dashboard.js +309 -0
- package/util/ai-run-evidence-dashboard.js.map +1 -0
- package/util/ai-run-evidence-eval.d.ts +86 -0
- package/util/ai-run-evidence-eval.js +854 -0
- package/util/ai-run-evidence-eval.js.map +1 -0
- package/util/ai-run-evidence.d.ts +212 -0
- package/util/ai-run-evidence.js +649 -0
- package/util/ai-run-evidence.js.map +1 -0
- package/util/ai-runner-artifacts.d.ts +82 -0
- package/util/ai-runner-artifacts.js +713 -0
- package/util/ai-runner-artifacts.js.map +1 -0
- package/util/ai-runner-manager-autopilot.d.ts +92 -0
- package/util/ai-runner-manager-autopilot.js +281 -0
- package/util/ai-runner-manager-autopilot.js.map +1 -0
- package/util/ai-runner-manager-policy.d.ts +282 -0
- package/util/ai-runner-manager-policy.js +997 -0
- package/util/ai-runner-manager-policy.js.map +1 -0
- package/util/ai-runner-qa-auth.d.ts +5 -0
- package/util/ai-runner-qa-auth.js +822 -0
- package/util/ai-runner-qa-auth.js.map +1 -0
- package/util/ai-runner-qa-tools.d.ts +26 -0
- package/util/ai-runner-qa-tools.js +3029 -0
- package/util/ai-runner-qa-tools.js.map +1 -0
- package/util/aicoder-runner-v6.d.ts +214 -0
- package/util/aicoder-runner-v6.js +507 -0
- package/util/aicoder-runner-v6.js.map +1 -0
- package/util/common.d.ts +31 -0
- package/util/common.js +683 -0
- package/util/common.js.map +1 -0
- package/util/customer-portal-password.d.ts +13 -0
- package/util/customer-portal-password.js +209 -0
- package/util/customer-portal-password.js.map +1 -0
- package/util/error-reporter.d.ts +52 -0
- package/util/error-reporter.js +326 -0
- package/util/error-reporter.js.map +1 -0
- package/util/error-tracking.d.ts +13 -0
- package/util/error-tracking.js +120 -0
- package/util/error-tracking.js.map +1 -0
- package/util/openai-usage-cost.d.ts +6 -0
- package/util/openai-usage-cost.js +103 -0
- package/util/openai-usage-cost.js.map +1 -0
- package/util/report-builder-unwinds.d.ts +15 -0
- package/util/report-builder-unwinds.js +156 -0
- package/util/report-builder-unwinds.js.map +1 -0
- package/util/runner-process-janitor.d.ts +27 -0
- package/util/runner-process-janitor.js +208 -0
- package/util/runner-process-janitor.js.map +1 -0
- package/util/schema-report-builder.d.ts +6 -0
- package/util/schema-report-builder.js +481 -0
- package/util/schema-report-builder.js.map +1 -0
- package/util/slow-query-reporter.d.ts +28 -0
- package/util/slow-query-reporter.js +226 -0
- package/util/slow-query-reporter.js.map +1 -0
- package/util/subscription-dependency-context.d.ts +34 -0
- package/util/subscription-dependency-context.js +1283 -0
- package/util/subscription-dependency-context.js.map +1 -0
- package/util/support-runner-v5.d.ts +415 -0
- package/util/support-runner-v5.js +1436 -0
- package/util/support-runner-v5.js.map +1 -0
- package/util/tokenizer.d.ts +5 -0
- package/util/tokenizer.js +41 -0
- package/util/tokenizer.js.map +1 -0
- package/workers/codex-runner.worker.d.ts +1 -0
- package/workers/codex-runner.worker.js +192 -0
- package/workers/codex-runner.worker.js.map +1 -0
- package/.nodemon.json +0 -5
- package/.vscode/settings.json +0 -21
- package/AGENTS.md +0 -195
- package/README.md +0 -22
- package/build_package.sh +0 -5
- package/compileDTS.pl +0 -64
- package/docs/ai-assistant-nightly-eval.md +0 -65
- package/docs/ai-assistant-preflight-checklist.md +0 -23
- package/docs/ai-assistant-report-builder-bridge-playbook.md +0 -115
- package/eslint-plugin-custom/index.js +0 -7
- package/eslint-plugin-custom/rules/no-filter-zero-index.js +0 -44
- package/eslint.config.js +0 -103
- package/gulpfile.js +0 -216
- package/methodAndPublicationListGenerator.py +0 -375
- package/mongodbensurers.js +0 -2
- package/mongostop.js +0 -3
- package/scripts/cleanup-bypassed-callmethod-logs.js +0 -616
- package/settings.development.json +0 -25
- package/settings.development.redacted.json +0 -25
- package/src/.env +0 -12
- package/src/ai/assistant-core-heuristics.ts +0 -379
- package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +0 -185
- package/src/ai/resolveio-platform-intelligence-memory.ts +0 -325
- package/src/ai/resolveio-platform-intelligence.ts +0 -462
- package/src/client-server-app.ts +0 -12
- package/src/collections/ai-run.collection.ts +0 -117
- package/src/collections/ai-terminal-conversation.collection.ts +0 -91
- package/src/collections/ai-terminal-issue-report.collection.ts +0 -99
- package/src/collections/ai-terminal-message.collection.ts +0 -77
- package/src/collections/app-setting.collection.ts +0 -104
- package/src/collections/app-status.collection.ts +0 -58
- package/src/collections/communication-metric.collection.ts +0 -84
- package/src/collections/counter.collection.ts +0 -56
- package/src/collections/cron-job-history.collection.ts +0 -94
- package/src/collections/cron-job.collection.ts +0 -92
- package/src/collections/customer-notification.collection.ts +0 -131
- package/src/collections/customer-portal-password.collection.ts +0 -76
- package/src/collections/email-history.collection.ts +0 -134
- package/src/collections/email-verified.collection.ts +0 -62
- package/src/collections/file.collection.ts +0 -74
- package/src/collections/flag-update.collection.ts +0 -57
- package/src/collections/flag.collection.ts +0 -57
- package/src/collections/log-method-latency.collection.ts +0 -77
- package/src/collections/log-subscription.collection.ts +0 -80
- package/src/collections/log.collection.ts +0 -93
- package/src/collections/logged-in-users.collection.ts +0 -67
- package/src/collections/monitor-cpu.collection.ts +0 -65
- package/src/collections/monitor-function.collection.ts +0 -74
- package/src/collections/monitor-memory.collection.ts +0 -77
- package/src/collections/monitor-mongo.collection.ts +0 -71
- package/src/collections/notification.collection.ts +0 -57
- package/src/collections/openai-usage-ledger.collection.ts +0 -77
- package/src/collections/report-builder-dashboard-builder.collection.ts +0 -109
- package/src/collections/report-builder-library.collection.ts +0 -89
- package/src/collections/report-builder-report.collection.ts +0 -184
- package/src/collections/user-group.collection.ts +0 -89
- package/src/collections/user-guide.collection.ts +0 -57
- package/src/collections/user.collection.ts +0 -181
- package/src/cron/cron.ts +0 -117
- package/src/fixtures/cron-jobs.ts +0 -95
- package/src/fixtures/init.ts +0 -35
- package/src/http/auth.ts +0 -818
- package/src/http/health.ts +0 -7
- package/src/http/home.ts +0 -90
- package/src/http/slow-query-publication.ts +0 -49
- package/src/index.ts +0 -1
- package/src/managers/ai-assistant-codex-manager.manager.ts +0 -1131
- package/src/managers/ai-run-evidence.manager.ts +0 -264
- package/src/managers/communication-metric.manager.ts +0 -82
- package/src/managers/cron.manager.ts +0 -333
- package/src/managers/customer-notification-content.manager.ts +0 -236
- package/src/managers/diagnostic-manager-bootstrap.ts +0 -165
- package/src/managers/error-auto-fix.manager.ts +0 -2767
- package/src/managers/local-log.manager.ts +0 -113
- package/src/managers/method.manager.ts +0 -1857
- package/src/managers/mongo.manager.ts +0 -4575
- package/src/managers/monitor.manager.ts +0 -507
- package/src/managers/openai-usage-ledger.manager.ts +0 -57
- package/src/managers/slow-query-verifier.manager.ts +0 -3590
- package/src/managers/slow-query.manager.ts +0 -519
- package/src/managers/subscription.manager.ts +0 -3128
- package/src/managers/websocket.manager.ts +0 -746
- package/src/managers/worker-dispatcher.manager.ts +0 -1360
- package/src/managers/worker-server.manager.ts +0 -536
- package/src/methods/accounts.ts +0 -532
- package/src/methods/ai-terminal.ts +0 -23497
- package/src/methods/app-settings.ts +0 -114
- package/src/methods/aws.ts +0 -649
- package/src/methods/collections.ts +0 -641
- package/src/methods/counters.ts +0 -69
- package/src/methods/cron-jobs.ts +0 -2614
- package/src/methods/customer-notifications.ts +0 -458
- package/src/methods/diagnostics.ts +0 -616
- package/src/methods/flag-updates.ts +0 -7
- package/src/methods/flags.ts +0 -7
- package/src/methods/logs.ts +0 -657
- package/src/methods/mongo-explorer.ts +0 -1880
- package/src/methods/monitor.ts +0 -540
- package/src/methods/pdf.ts +0 -1236
- package/src/methods/publications.ts +0 -129
- package/src/methods/report-builder.ts +0 -3300
- package/src/methods/support.ts +0 -335
- package/src/models/ai-run.model.ts +0 -27
- package/src/models/ai-terminal-conversation.model.ts +0 -19
- package/src/models/ai-terminal-issue-report.model.ts +0 -21
- package/src/models/ai-terminal-message.model.ts +0 -24
- package/src/models/app-setting.model.ts +0 -17
- package/src/models/collection-document.model.ts +0 -24
- package/src/models/communication-metric.model.ts +0 -23
- package/src/models/cron-job-history.model.ts +0 -16
- package/src/models/cron-job.model.ts +0 -15
- package/src/models/customer-notification.model.ts +0 -28
- package/src/models/customer-portal-password.model.ts +0 -12
- package/src/models/dialog.model.ts +0 -25
- package/src/models/log-method-latency.model.ts +0 -11
- package/src/models/log.model.ts +0 -19
- package/src/models/method.model.ts +0 -25
- package/src/models/monitor-function.model.ts +0 -16
- package/src/models/monitor-memory.model.ts +0 -17
- package/src/models/monitor-mongo.model.ts +0 -15
- package/src/models/openai-usage-ledger.model.ts +0 -16
- package/src/models/pagination.model.ts +0 -35
- package/src/models/permission.model.ts +0 -14
- package/src/models/report-builder-dashboard-builder.model.ts +0 -29
- package/src/models/report-builder-library.model.ts +0 -20
- package/src/models/report-builder-report.model.ts +0 -136
- package/src/models/report-builder.model.ts +0 -68
- package/src/models/select-data-label.model.ts +0 -9
- package/src/models/server-message.model.ts +0 -31
- package/src/models/slow-query-report.model.ts +0 -23
- package/src/models/subscription.model.ts +0 -73
- package/src/models/support-ticket.model.ts +0 -104
- package/src/models/user-group.model.ts +0 -24
- package/src/models/user.model.ts +0 -96
- package/src/private/images/ResolveIO.png +0 -0
- package/src/publications/ai-terminal.ts +0 -73
- package/src/publications/app-settings.ts +0 -25
- package/src/publications/app-status.ts +0 -13
- package/src/publications/cron-jobs.ts +0 -40
- package/src/publications/customer-notifications.ts +0 -101
- package/src/publications/files.ts +0 -33
- package/src/publications/flags-update.ts +0 -19
- package/src/publications/flags.ts +0 -19
- package/src/publications/logs.ts +0 -163
- package/src/publications/notifications.ts +0 -13
- package/src/publications/report-builder-dashboard-builders.ts +0 -39
- package/src/publications/report-builder-libraries.ts +0 -41
- package/src/publications/report-builder-reports.ts +0 -47
- package/src/publications/super-admin.ts +0 -13
- package/src/publications/user-groups.ts +0 -12
- package/src/publications/user-guides.ts +0 -12
- package/src/resolveio-server-app.ts +0 -617
- package/src/server-app.ts +0 -3354
- package/src/services/codex-client.ts +0 -1231
- package/src/services/openai-client.ts +0 -265
- package/src/types/error-report.ts +0 -26
- package/src/types/js-tiktoken.d.ts +0 -11
- package/src/types/slow-query-report.ts +0 -28
- package/src/util/ai-qa-policy.ts +0 -925
- package/src/util/ai-run-evidence-adapters.ts +0 -677
- package/src/util/ai-run-evidence-dashboard.ts +0 -271
- package/src/util/ai-run-evidence-eval.ts +0 -885
- package/src/util/ai-run-evidence.ts +0 -964
- package/src/util/ai-runner-artifacts.ts +0 -586
- package/src/util/ai-runner-manager-autopilot.ts +0 -380
- package/src/util/ai-runner-manager-policy.ts +0 -1740
- package/src/util/ai-runner-qa-auth.ts +0 -821
- package/src/util/ai-runner-qa-tools.ts +0 -3045
- package/src/util/aicoder-runner-v6.ts +0 -875
- package/src/util/common.ts +0 -649
- package/src/util/customer-portal-password.ts +0 -183
- package/src/util/error-reporter.ts +0 -332
- package/src/util/error-tracking.ts +0 -79
- package/src/util/openai-usage-cost.ts +0 -114
- package/src/util/report-builder-unwinds.ts +0 -180
- package/src/util/runner-process-janitor.ts +0 -219
- package/src/util/schema-report-builder.ts +0 -448
- package/src/util/slow-query-reporter.ts +0 -216
- package/src/util/subscription-dependency-context.ts +0 -1096
- package/src/util/support-runner-v5.ts +0 -2065
- package/src/util/tokenizer.ts +0 -38
- package/src/workers/codex-runner.worker.ts +0 -142
- package/start_server.sh +0 -5
- package/tests/ai-assistant-corpus-build.ts +0 -484
- package/tests/ai-assistant-corpus-replay-e2e.ts +0 -774
- package/tests/ai-assistant-data-parity-e2e.ts +0 -1989
- package/tests/ai-assistant-eval-triage.ts +0 -831
- package/tests/ai-assistant-openai-e2e.ts +0 -1061
- package/tests/ai-assistant-openai-git-e2e.ts +0 -155
- package/tests/ai-assistant-preflight-matrix.ts +0 -215
- package/tests/ai-assistant-routing-eval.test.ts +0 -560
- package/tests/ai-assistant-snf-live-eval.ts +0 -975
- package/tests/ai-assistant-utils.test.ts +0 -2968
- package/tests/ai-manager-autopilot-snapshot.test.ts +0 -172
- package/tests/ai-manager-recovery-checkpoint.test.ts +0 -323
- package/tests/ai-run-eval.test.ts +0 -88
- package/tests/ai-run-evidence.test.ts +0 -305
- package/tests/ai-runner-contract.test.ts +0 -488
- package/tests/aicoder-runner-v6.test.ts +0 -268
- package/tests/error-reporter.test.ts +0 -145
- package/tests/method-publication-generator.test.ts +0 -46
- package/tests/report-builder-linking.test.ts +0 -79
- package/tests/resolveio-platform-intelligence.test.ts +0 -352
- package/tests/server-app-cron-owner.test.ts +0 -127
- package/tests/subscription-connect-race.test.ts +0 -158
- package/tests/subscription-dependency-context.test.ts +0 -324
- package/tests/subscription-manager-collection-tracking.test.ts +0 -86
- package/tests/subscription-manager-invalidation.test.ts +0 -86
- package/tests/support-runner-v5.test.ts +0 -417
- package/tsconfig.json +0 -34
- /package/{src/private → private}/email-templates/enrollment.html +0 -0
- /package/{src/private → private}/email-templates/forgot-password.html +0 -0
- /package/{src/private → private}/email-templates/support-ticket-deleted.html +0 -0
- /package/{src/private → private}/email-templates/support-ticket-modified.html +0 -0
- /package/{src/private → private}/email-templates/support-ticket.html +0 -0
- /package/{src/public_api.ts → public_api.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/support-runner-v5.ts"],"names":[],"mappings":"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","file":"support-runner-v5.js","sourcesContent":["import {\n\tbuildResolveIOAIManagerRecoveryCheckpoint,\n\tbuildResolveIOAIManagerRecoveryActionPacket,\n\tbuildResolveIOAIManagerRecoveryEvidenceProbe,\n\tbuildResolveIOAIManagerRecoveryPlan,\n\tdecideResolveIOAIManagerPolicy,\n\thashResolveIOAIManagerEvidence,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan,\n\tResolveIOAIManagerRecoveryPlanInput\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOSupportV5StepType =\n\t| 'diagnosis_gate'\n\t| 'reproduction_probe'\n\t| 'issue_class_probe'\n\t| 'business_proof'\n\t| 'compile_check'\n\t| 'startup_check'\n\t| 'live_seed'\n\t| 'auth_bootstrap'\n\t| 'route_probe'\n\t| 'qa_row'\n\t| 'build_repair'\n\t| 'qa_retest'\n\t| 'pr_review'\n\t| 'artifact_package'\n\t| 'cleanup';\n\nexport type ResolveIOSupportV5Outcome =\n\t| 'pass'\n\t| 'needs_repair'\n\t| 'retry_same_step'\n\t| 'park_manual'\n\t| 'budget_stop'\n\t| 'infra_retry'\n\t| 'ready_for_merge';\n\nexport type ResolveIOSupportV5Lane = 'build' | 'qa' | 'review' | 'supervisor';\n\nexport type ResolveIOSupportIssueClass =\n\t| 'no_op_submit'\n\t| 'missing_wrong_data'\n\t| 'filter_query_mismatch'\n\t| 'invoice_pdf_export'\n\t| 'upload_import'\n\t| 'route_auth_hydration'\n\t| 'slow_query_performance';\n\nexport type ResolveIOSupportDiagnosisGateStatus = 'missing' | 'incomplete' | 'blocked' | 'passed';\n\nexport type ResolveIOSupportV5FailureClass =\n\t| 'diagnosis'\n\t| 'infra'\n\t| 'compile'\n\t| 'route'\n\t| 'business'\n\t| 'product_code'\n\t| 'qa_evidence'\n\t| 'release'\n\t| 'unknown';\n\nexport interface ResolveIOSupportDiagnosisIssueCase {\n\tcustomer_complaint: string;\n\texpected_result: string;\n\tobserved_result: string;\n\troute_module: string;\n\taccount_customer_context: string;\n\treproduction_status: 'reproduced' | 'blocked' | 'classified';\n\treproduction_blocker?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisHypothesis {\n\tstatement: string;\n\tfalsifiable_test: string;\n\tevidence: string[];\n}\n\nexport interface ResolveIOSupportDiagnosisFailingPath {\n\tfrontend?: string;\n\tbackend?: string;\n\tshared_library?: string;\n\tdata_query?: string;\n\tdescription: string;\n}\n\nexport interface ResolveIOSupportDiagnosisProofPlan {\n\tbefore: string;\n\tbefore_state_unavailable_reason?: string;\n\taction: string;\n\tafter: string;\n\tbusiness_assertion: string;\n\troute?: string;\n\tdata_assertion?: string;\n\tartifact_expectation?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisHint {\n\tid?: string;\n\tticketNumber?: string;\n\ttitle?: string;\n\toutcome?: string;\n\tissueClass?: string;\n\townerFiles?: string[];\n\tcommitSha?: string;\n\tcommitMessage?: string;\n\treason?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisEvidence {\n\ttype: 'ticket' | 'browser' | 'mongo' | 'log' | 'code' | 'commit' | 'qa' | 'other';\n\tsummary: string;\n\tartifactPath?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisGate {\n\tissue_case: ResolveIOSupportDiagnosisIssueCase;\n\tissue_class: ResolveIOSupportIssueClass;\n\taccepted_hypothesis: ResolveIOSupportDiagnosisHypothesis;\n\trejected_alternatives: string[];\n\tfailing_path: ResolveIOSupportDiagnosisFailingPath;\n\towner_files: string[];\n\tproof_plan: ResolveIOSupportDiagnosisProofPlan;\n\tsimilar_tickets?: ResolveIOSupportDiagnosisHint[];\n\tsimilar_commits?: ResolveIOSupportDiagnosisHint[];\n\tevidence: ResolveIOSupportDiagnosisEvidence[];\n\tstatus: ResolveIOSupportDiagnosisGateStatus;\n\tupdatedAt?: string;\n}\n\nexport interface ResolveIOSupportDiagnosisGateValidation {\n\tvalid: boolean;\n\tstatus: ResolveIOSupportDiagnosisGateStatus;\n\tblockers: string[];\n\tnormalized?: ResolveIOSupportDiagnosisGate;\n}\n\nexport interface ResolveIOSupportIssueClassProbe {\n\tissue_class: ResolveIOSupportIssueClass;\n\tprobe_type: ResolveIOSupportV5StepType;\n\tobjective: string;\n\troute?: string;\n\taction: string;\n\texpected_evidence: string;\n\tblocks_acceptance_without_business_assertion: boolean;\n}\n\nexport interface ResolveIOSupportV5RepeatStopInput {\n\thistory: ResolveIOSupportV5StepRecord[];\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: string;\n\tevidence?: any;\n\tevidenceHash?: string;\n\tlimit?: number;\n\tignoreInfra?: boolean;\n}\n\nexport interface ResolveIOSupportV5RepeatStopDecision {\n\tshouldStop: boolean;\n\trepeatedCount: number;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\treason: string;\n}\n\nexport type ResolveIOSupportV5RepairGateAction =\n\t| 'diagnose_only'\n\t| 'infra_repair_only'\n\t| 'allow_product_repair'\n\t| 'reject_out_of_scope'\n\t| 'park_repeated_failure';\n\nexport interface ResolveIOSupportV5RepairGateInput {\n\tdiagnosisGate?: any;\n\tactiveStepType?: ResolveIOSupportV5StepType | string;\n\tchangedFiles?: any;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblocker?: string;\n\tevidence?: any;\n\tevidenceHash?: string;\n\thistory?: ResolveIOSupportV5StepRecord[];\n\tmaxOwnerFiles?: number;\n\tmaxRepeatedNoProgress?: number;\n\tallowTestsOutsideOwnerFiles?: boolean;\n}\n\nexport interface ResolveIOSupportV5RepairGateDecision {\n\taction: ResolveIOSupportV5RepairGateAction;\n\tcanEditProductCode: boolean;\n\tblockers: string[];\n\townerFiles: string[];\n\tissueClass?: ResolveIOSupportIssueClass;\n\tproofPlan?: ResolveIOSupportDiagnosisProofPlan;\n\toutsideOwnerFiles: string[];\n\trepeatedFailure?: ResolveIOSupportV5RepeatStopDecision;\n\tdiagnosisValidation: ResolveIOSupportDiagnosisGateValidation;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nexport type ResolveIOSupportV5MicrotaskStatus =\n\t| 'pending'\n\t| 'in_progress'\n\t| 'pass'\n\t| 'needs_repair'\n\t| 'blocked'\n\t| 'parked';\n\nexport type ResolveIOSupportV5MicrotaskType =\n\t| ResolveIOSupportV5StepType\n\t| 'planning'\n\t| 'scope_slice'\n\t| 'product_repair'\n\t| 'runner_repair';\n\nexport interface ResolveIOSupportV5PromptBudget {\n\tinitialPlannerCap: number;\n\tbuildMicrotaskCap: number;\n\tbuildMicrotaskHardCap: number;\n\tqaMicrotaskCap: number;\n\tqaMicrotaskHardCap: number;\n\trepairMicrotaskCap: number;\n\trepairMicrotaskHardCap: number;\n}\n\nexport interface ResolveIOSupportV5Microtask {\n\tmicrotaskId: string;\n\tlane: ResolveIOSupportV5Lane;\n\ttype: ResolveIOSupportV5MicrotaskType;\n\tstatus: ResolveIOSupportV5MicrotaskStatus;\n\tobjective: string;\n\ttargetFiles: string[];\n\tcontextRefs: string[];\n\tselfGate: string;\n\tacceptanceProof: string;\n\tthreadKey: string;\n\tpromptTokenEstimate?: number;\n\tattempts: number;\n\tdependsOn: string[];\n\tparentScopeId?: string;\n\tblocker?: string;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5UsageSection {\n\tname: string;\n\ttokenEstimate: number;\n}\n\nexport interface ResolveIOSupportV5MicrotaskUsage {\n\tmicrotaskId: string;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\treuseThread: boolean;\n\tfreshReason?: string;\n\tpromptTokenEstimate: number;\n\tpromptSections: ResolveIOSupportV5UsageSection[];\n\tactualInputTokens?: number;\n\tactualCachedInputTokens?: number;\n\tactualOutputTokens?: number;\n\tdurationMs?: number;\n\toutcome?: ResolveIOSupportV5Outcome | ResolveIOSupportV5MicrotaskStatus;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5Budget {\n\tmaxPromptTokensPerNonInitialStep: number;\n\tmaxLoopsPerTicket: number;\n\tmaxRepeatedNoProgress: number;\n\tmaxRuntimeMinutesPerLoop: number;\n\ttotalPromptTokenEstimate: number;\n\ttotalRuntimeMs: number;\n\tloopCount: number;\n}\n\nexport interface ResolveIOSupportV5LaneMemory {\n\tlane: ResolveIOSupportV5Lane;\n\tmodel: string;\n\tthreadKey: string;\n\tscopeSummary: string;\n\tactiveBlocker: string;\n\tactiveQaRow?: {\n\t\tindex?: number;\n\t\tworkflow?: string;\n\t\troute?: string;\n\t\tassertion?: string;\n\t\tstatus?: string;\n\t};\n\tchangedFiles: string[];\n\tartifactPaths: string[];\n\tlatestPromptTokenEstimate?: number;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5FailureFingerprint {\n\tstepType: ResolveIOSupportV5StepType;\n\tfailureClass: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5SupervisorState {\n\tversion: 'v5';\n\tstatus: 'active' | 'parked' | 'complete';\n\tcurrentGoal: string;\n\tapprovedScope: string;\n\tprBranch: string;\n\tactiveStep: ResolveIOSupportV5StepType;\n\tactiveBlocker: string;\n\tlastGoodCheckpoint: string;\n\tcurrentQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tprocessLease?: {\n\t\trunId?: string;\n\t\ttoken?: string;\n\t\tgeneration?: number;\n\t\tworkspace?: string;\n\t\tlane?: string;\n\t};\n\tartifactLinks: string[];\n\tnoEmailUnlessApproved: boolean;\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOSupportV5StepRecord {\n\tmicrotaskId?: string;\n\tstepType: ResolveIOSupportV5StepType;\n\toutcome: ResolveIOSupportV5Outcome;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptTokenEstimate?: number;\n\truntimeMs?: number;\n\tsummary: string;\n\tblocker?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tdiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tblockerFingerprint?: string;\n\tevidenceHash?: string;\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5RunnerIncident {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOSupportV5StepType;\n\tblockerFingerprint?: string;\n\tartifactPaths?: string[];\n\trecordedAt: string;\n}\n\nexport interface ResolveIOSupportV5StateBundle {\n\tsupportWorkflowVersion: 'v5';\n\tsupportV5SupervisorState: ResolveIOSupportV5SupervisorState;\n\tsupportV5DiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tsupportV5LaneMemory: {\n\t\tbuild: ResolveIOSupportV5LaneMemory;\n\t\tqa: ResolveIOSupportV5LaneMemory;\n\t};\n\tsupportV5StepHistory: ResolveIOSupportV5StepRecord[];\n\tsupportV5Budget: ResolveIOSupportV5Budget;\n\tsupportV5RunnerIncidents: ResolveIOSupportV5RunnerIncident[];\n\tsupportV5MicrotaskLedger: ResolveIOSupportV5Microtask[];\n\tsupportV5ActiveMicrotaskId?: string;\n\tsupportV5ScopeDigest?: string;\n\tsupportV5MicrotaskUsageHistory: ResolveIOSupportV5MicrotaskUsage[];\n\tsupportV5FailureFingerprints?: ResolveIOSupportV5FailureFingerprint[];\n\tsupportV5RecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\tsupportV5RecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\tsupportV5RecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\tsupportV5RecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\tsupportV5RecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tsupportV5RecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n}\n\nexport interface ResolveIOSupportV5InitializeInput {\n\tjobId: string;\n\tticketId?: string;\n\tticketNumber?: string;\n\ttitle?: string;\n\tdescription?: string;\n\tapprovedScopeRequirements?: string[];\n\tapprovedScopeHours?: number | null;\n\tprBranch?: string;\n\tbuildThreadKey?: string;\n\tqaThreadKey?: string;\n\tprocessLease?: ResolveIOSupportV5SupervisorState['processLease'];\n\tnow?: Date | string;\n\texisting?: Partial<ResolveIOSupportV5StateBundle>;\n}\n\nexport interface ResolveIOSupportV5StepInput {\n\tmicrotaskId?: string;\n\tstepType: ResolveIOSupportV5StepType;\n\toutcome: ResolveIOSupportV5Outcome;\n\tlane: ResolveIOSupportV5Lane;\n\tmodel?: string;\n\tthreadKey?: string;\n\tpromptTokenEstimate?: number;\n\truntimeMs?: number;\n\tsummary?: string;\n\tblocker?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\tdiagnosisGate?: ResolveIOSupportDiagnosisGate;\n\tfailureClass?: ResolveIOSupportV5FailureClass | string;\n\tevidenceHash?: string;\n\tactiveQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tnow?: Date | string;\n}\n\nexport interface ResolveIOSupportV5ContinuationDecision {\n\taction: 'continue' | 'park';\n\treason: string;\n\tnextStep: ResolveIOSupportV5StepType;\n\trepeatedNoProgressCount: number;\n\tbudgetExceeded: boolean;\n\trecoveryPlan: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction: ResolveIOAIManagerRecoveryActionPacket;\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tconst parsed = value ? new Date(value) : new Date();\n\tif (Number.isFinite(parsed.getTime())) {\n\t\treturn parsed.toISOString();\n\t}\n\treturn new Date().toISOString();\n}\n\nfunction cleanText(value: any, max = 2000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanList(values: any, limit = 20, max = 500): string[] {\n\tif (!Array.isArray(values)) {\n\t\treturn [];\n\t}\n\tconst result: string[] = [];\n\tfor (const value of values) {\n\t\tconst normalized = cleanText(value, max);\n\t\tif (normalized && !result.includes(normalized)) {\n\t\t\tresult.push(normalized);\n\t\t}\n\t\tif (result.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction cleanObject(value: any): Record<string, any> {\n\treturn value && typeof value === 'object' && !Array.isArray(value) ? value : {};\n}\n\nfunction pickText(source: Record<string, any>, fields: string[], max = 1000): string {\n\tfor (const field of fields) {\n\t\tconst normalized = cleanText(source?.[field], max);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn '';\n}\n\nfunction normalizeIssueClass(value: any): ResolveIOSupportIssueClass | '' {\n\tconst normalized = cleanText(value, 80)\n\t\t.toLowerCase()\n\t\t.replace(/[\\s-]+/g, '_');\n\tconst aliases: Record<string, ResolveIOSupportIssueClass> = {\n\t\tno_op: 'no_op_submit',\n\t\tno_op_submit: 'no_op_submit',\n\t\tsubmit_noop: 'no_op_submit',\n\t\tmissing_data: 'missing_wrong_data',\n\t\twrong_data: 'missing_wrong_data',\n\t\tmissing_wrong_data: 'missing_wrong_data',\n\t\tfilter_mismatch: 'filter_query_mismatch',\n\t\tquery_mismatch: 'filter_query_mismatch',\n\t\tfilter_query_mismatch: 'filter_query_mismatch',\n\t\tinvoice_pdf_export: 'invoice_pdf_export',\n\t\tpdf_export: 'invoice_pdf_export',\n\t\texport: 'invoice_pdf_export',\n\t\tupload: 'upload_import',\n\t\timport: 'upload_import',\n\t\tupload_import: 'upload_import',\n\t\troute_auth: 'route_auth_hydration',\n\t\tauth_hydration: 'route_auth_hydration',\n\t\troute_auth_hydration: 'route_auth_hydration',\n\t\tslow_query: 'slow_query_performance',\n\t\tperformance: 'slow_query_performance',\n\t\tslow_query_performance: 'slow_query_performance'\n\t};\n\treturn aliases[normalized] || '';\n}\n\nfunction normalizeReproductionStatus(value: any): ResolveIOSupportDiagnosisIssueCase['reproduction_status'] {\n\tconst normalized = cleanText(value, 80).toLowerCase();\n\tif (/blocked|unable|cannot/.test(normalized)) {\n\t\treturn 'blocked';\n\t}\n\tif (/classif|triag|inferred/.test(normalized)) {\n\t\treturn 'classified';\n\t}\n\treturn 'reproduced';\n}\n\nfunction normalizeSupportDiagnosisEvidence(values: any): ResolveIOSupportDiagnosisEvidence[] {\n\tconst allowed = new Set(['ticket', 'browser', 'mongo', 'log', 'code', 'commit', 'qa', 'other']);\n\tif (!Array.isArray(values)) {\n\t\tconst summary = cleanText(values, 1200);\n\t\treturn summary ? [{ type: 'other', summary }] : [];\n\t}\n\tconst stringEvidence: ResolveIOSupportDiagnosisEvidence[] = values\n\t\t.filter((entry) => typeof entry === 'string')\n\t\t.map((entry) => ({\n\t\t\ttype: 'other' as const,\n\t\t\tsummary: cleanText(entry, 1200)\n\t\t}));\n\tconst objectEvidence: ResolveIOSupportDiagnosisEvidence[] = values\n\t\t.filter((entry) => entry && typeof entry === 'object' && !Array.isArray(entry))\n\t\t.map((entry) => {\n\t\t\tconst type = cleanText(entry.type, 80).toLowerCase();\n\t\t\treturn {\n\t\t\t\ttype: (allowed.has(type) ? type : 'other') as ResolveIOSupportDiagnosisEvidence['type'],\n\t\t\t\tsummary: cleanText(entry.summary || entry.message || entry.evidence || entry.reason, 1200),\n\t\t\t\tartifactPath: cleanText(entry.artifactPath || entry.path || entry.file, 500)\n\t\t\t};\n\t\t});\n\treturn stringEvidence.concat(objectEvidence)\n\t\t.filter((entry) => entry.summary)\n\t\t.slice(0, 20);\n}\n\nfunction normalizeSupportDiagnosisHints(values: any): ResolveIOSupportDiagnosisHint[] {\n\treturn (Array.isArray(values) ? values : [])\n\t\t.map((entry) => {\n\t\t\tif (typeof entry === 'string') {\n\t\t\t\treturn { reason: cleanText(entry, 500) };\n\t\t\t}\n\t\t\tconst value = cleanObject(entry);\n\t\t\treturn {\n\t\t\t\tid: cleanText(value.id || value._id, 160),\n\t\t\t\tticketNumber: cleanText(value.ticketNumber || value.ticket_number || value.sourceTicketNumber, 80),\n\t\t\t\ttitle: cleanText(value.title || value.summary, 300),\n\t\t\t\toutcome: cleanText(value.outcome || value.status, 80),\n\t\t\t\tissueClass: cleanText(value.issueClass || value.issue_class, 80),\n\t\t\t\townerFiles: cleanList(value.ownerFiles || value.owner_files || value.files, 8, 240),\n\t\t\t\tcommitSha: cleanText(value.commitSha || value.commit_sha, 80),\n\t\t\t\tcommitMessage: cleanText(value.commitMessage || value.commit_message, 300),\n\t\t\t\treason: cleanText(value.reason || value.matchReason || value.match_reason, 500)\n\t\t\t};\n\t\t})\n\t\t.filter((entry) => entry.id || entry.ticketNumber || entry.title || entry.reason || entry.commitSha)\n\t\t.slice(0, 8);\n}\n\nfunction normalizeOwnerFilePath(value: any): string {\n\treturn cleanText(value, 500)\n\t\t.replace(/\\\\/g, '/')\n\t\t.replace(/^\\.\\/+/, '')\n\t\t.replace(/^\\/+/, '')\n\t\t.replace(/\\s+$/g, '');\n}\n\nfunction ownerFileLooksBroad(value: string): boolean {\n\tconst normalized = normalizeOwnerFilePath(value);\n\treturn !normalized\n\t\t|| normalized.includes('*')\n\t\t|| normalized.endsWith('/')\n\t\t|| !/\\.[a-z0-9]+$/i.test(normalized)\n\t\t|| /^(\\.|src|server|angular|client|app|lib|packages?)$/i.test(normalized)\n\t\t|| /(^|\\/)(node_modules|dist|build|coverage|\\.git)(\\/|$)/i.test(normalized);\n}\n\nfunction proofPlanLooksRouteOnly(proofPlan: ResolveIOSupportDiagnosisProofPlan): boolean {\n\tconst assertionText = cleanText([\n\t\tproofPlan.business_assertion,\n\t\tproofPlan.action,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion,\n\t\tproofPlan.artifact_expectation\n\t].filter(Boolean).join(' '), 3000).toLowerCase();\n\tif (!assertionText) {\n\t\treturn false;\n\t}\n\tconst routeOnlySignal = /\\b(route|page|screen|dashboard|url|component|shell)\\b/.test(assertionText)\n\t\t&& /\\b(loads?|loaded|renders?|rendered|opens?|opened|visible|visibility|hydrates?|hydrated|screenshot)\\b/.test(assertionText);\n\tconst businessSignal = /\\b(save|saved|persist|persisted|create|created|update|updated|delete|deleted|filter|filtered|exclude|excluded|include|included|row|rows|record|records|count|counts|total|totals|value|values|data|mongo|query|result|results|invoice|pdf|export|download|upload|import|dropdown|selection|selected|form|submit|submitted|validation|error message|customer|account|user|permission|auth|control|button|status|calculation|performance|duration|latency)\\b/.test(assertionText);\n\treturn routeOnlySignal && !businessSignal;\n}\n\nexport function normalizeResolveIOSupportDiagnosisGate(value: any, now?: Date | string): ResolveIOSupportDiagnosisGate | undefined {\n\tconst source = cleanObject(value);\n\tif (!Object.keys(source).length) {\n\t\treturn undefined;\n\t}\n\tconst issueCaseSource = cleanObject(source.issue_case || source.issueCase);\n\tconst hypothesisSource = cleanObject(source.accepted_hypothesis || source.acceptedHypothesis);\n\tconst failingPathSource = cleanObject(source.failing_path || source.failingPath);\n\tconst proofPlanSource = cleanObject(source.proof_plan || source.proofPlan);\n\tconst issueClass = normalizeIssueClass(source.issue_class || source.issueClass);\n\tconst ownerFiles = cleanList(source.owner_files || source.ownerFiles, 20, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter(Boolean);\n\tconst gate: ResolveIOSupportDiagnosisGate = {\n\t\tissue_case: {\n\t\t\tcustomer_complaint: pickText(issueCaseSource, ['customer_complaint', 'customerComplaint', 'complaint', 'request', 'summary'], 1200),\n\t\t\texpected_result: pickText(issueCaseSource, ['expected_result', 'expectedResult', 'expected'], 1000),\n\t\t\tobserved_result: pickText(issueCaseSource, ['observed_result', 'observedResult', 'observed', 'actual'], 1000),\n\t\t\troute_module: pickText(issueCaseSource, ['route_module', 'routeModule', 'route', 'module', 'screen'], 500),\n\t\t\taccount_customer_context: pickText(issueCaseSource, ['account_customer_context', 'accountCustomerContext', 'account', 'customer', 'user', 'context'], 800),\n\t\t\treproduction_status: normalizeReproductionStatus(issueCaseSource.reproduction_status || issueCaseSource.reproductionStatus || source.reproduction_status),\n\t\t\treproduction_blocker: pickText(issueCaseSource, ['reproduction_blocker', 'reproductionBlocker', 'blocked_reason', 'blockedReason'], 1000)\n\t\t},\n\t\tissue_class: issueClass || 'missing_wrong_data',\n\t\taccepted_hypothesis: {\n\t\t\tstatement: pickText(hypothesisSource, ['statement', 'hypothesis', 'root_cause', 'rootCause', 'summary'], 1200)\n\t\t\t\t|| (typeof source.accepted_hypothesis === 'string' ? cleanText(source.accepted_hypothesis, 1200) : ''),\n\t\t\tfalsifiable_test: pickText(hypothesisSource, ['falsifiable_test', 'falsifiableTest', 'test', 'proof', 'falsifier'], 1000),\n\t\t\tevidence: cleanList(hypothesisSource.evidence || source.hypothesis_evidence || source.hypothesisEvidence, 10, 800)\n\t\t},\n\t\trejected_alternatives: cleanList(source.rejected_alternatives || source.rejectedAlternatives, 10, 700),\n\t\tfailing_path: {\n\t\t\tfrontend: pickText(failingPathSource, ['frontend', 'frontend_path', 'frontendPath', 'eventPath'], 700),\n\t\t\tbackend: pickText(failingPathSource, ['backend', 'backend_path', 'backendPath', 'methodPublicationPath'], 700),\n\t\t\tshared_library: pickText(failingPathSource, ['shared_library', 'sharedLibrary', 'library', 'lib'], 700),\n\t\t\tdata_query: pickText(failingPathSource, ['data_query', 'dataQuery', 'query'], 700),\n\t\t\tdescription: pickText(failingPathSource, ['description', 'path', 'summary'], 1200) || cleanText(source.failing_path, 1200)\n\t\t},\n\t\towner_files: ownerFiles,\n\t\tproof_plan: {\n\t\t\tbefore: pickText(proofPlanSource, ['before', 'before_state', 'beforeState', 'precondition'], 1000),\n\t\t\tbefore_state_unavailable_reason: pickText(proofPlanSource, ['before_state_unavailable_reason', 'beforeStateUnavailableReason', 'before_unavailable_reason'], 1000),\n\t\t\taction: pickText(proofPlanSource, ['action', 'browser_action', 'browserAction', 'steps'], 1000),\n\t\t\tafter: pickText(proofPlanSource, ['after', 'after_state', 'afterState', 'expected_after'], 1000),\n\t\t\tbusiness_assertion: pickText(proofPlanSource, ['business_assertion', 'businessAssertion', 'assertion'], 1000),\n\t\t\troute: pickText(proofPlanSource, ['route', 'url'], 500),\n\t\t\tdata_assertion: pickText(proofPlanSource, ['data_assertion', 'dataAssertion', 'mongo_delta', 'mongoDelta'], 1000),\n\t\t\tartifact_expectation: pickText(proofPlanSource, ['artifact_expectation', 'artifactExpectation', 'artifact', 'screenshot'], 1000)\n\t\t},\n\t\tsimilar_tickets: normalizeSupportDiagnosisHints(source.similar_tickets || source.similarTickets),\n\t\tsimilar_commits: normalizeSupportDiagnosisHints(source.similar_commits || source.similarCommits),\n\t\tevidence: normalizeSupportDiagnosisEvidence(source.evidence),\n\t\tstatus: (cleanText(source.status, 80).toLowerCase() as ResolveIOSupportDiagnosisGateStatus) || 'incomplete',\n\t\tupdatedAt: isoNow(now || source.updatedAt || source.updated_at)\n\t};\n\tif (!['missing', 'incomplete', 'blocked', 'passed'].includes(gate.status)) {\n\t\tgate.status = 'incomplete';\n\t}\n\treturn gate;\n}\n\nexport function extractResolveIOSupportDiagnosisGateFromText(value: string, now?: Date | string): ResolveIOSupportDiagnosisGate | undefined {\n\tconst text = String(value || '').trim();\n\tif (!text) {\n\t\treturn undefined;\n\t}\n\tconst candidates: string[] = [];\n\tconst fenced = Array.from(text.matchAll(/```(?:json)?\\s*([\\s\\S]*?)```/gi)).map((match) => match[1]);\n\tcandidates.push(...fenced);\n\tconst jsonBlock = text.match(/\\{[\\s\\S]*\\}/);\n\tif (jsonBlock) {\n\t\tcandidates.push(jsonBlock[0]);\n\t}\n\tfor (const candidate of candidates) {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(candidate);\n\t\t\tconst wrapped = parsed?.support_diagnosis_gate || parsed?.supportDiagnosisGate || parsed?.diagnosis_gate || parsed?.diagnosisGate || parsed;\n\t\t\tconst normalized = normalizeResolveIOSupportDiagnosisGate(wrapped, now);\n\t\t\tif (normalized) {\n\t\t\t\treturn normalized;\n\t\t\t}\n\t\t}\n\t\tcatch {\n\t\t\t// Continue trying less exact JSON candidates.\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function validateResolveIOSupportDiagnosisGate(\n\tvalue: any,\n\toptions: { maxOwnerFiles?: number } = {}\n): ResolveIOSupportDiagnosisGateValidation {\n\tconst normalized = normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!normalized) {\n\t\treturn { valid: false, status: 'missing', blockers: ['SupportDiagnosisGate is missing.'] };\n\t}\n\tconst blockers: string[] = [];\n\tconst maxOwnerFiles = Math.max(1, Number(options.maxOwnerFiles || 8) || 8);\n\tif (!normalized.issue_case.customer_complaint) {\n\t\tblockers.push('Diagnosis issue_case.customer_complaint is required.');\n\t}\n\tif (!normalized.issue_case.expected_result) {\n\t\tblockers.push('Diagnosis issue_case.expected_result is required.');\n\t}\n\tif (!normalized.issue_case.observed_result) {\n\t\tblockers.push('Diagnosis issue_case.observed_result is required.');\n\t}\n\tif (!normalized.issue_case.route_module) {\n\t\tblockers.push('Diagnosis issue_case.route_module is required.');\n\t}\n\tif (!normalized.issue_case.account_customer_context) {\n\t\tblockers.push('Diagnosis issue_case.account_customer_context is required.');\n\t}\n\tif (normalized.issue_case.reproduction_status === 'blocked' && !normalized.issue_case.reproduction_blocker) {\n\t\tblockers.push('Diagnosis blocked reproduction requires issue_case.reproduction_blocker.');\n\t}\n\tif (!normalizeIssueClass(normalized.issue_class)) {\n\t\tblockers.push('Diagnosis issue_class must be one of the supported issue-class probes.');\n\t}\n\tif (!normalized.accepted_hypothesis.statement) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.statement is required.');\n\t}\n\tif (!normalized.accepted_hypothesis.falsifiable_test) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.falsifiable_test is required.');\n\t}\n\tif (!normalized.accepted_hypothesis.evidence.length) {\n\t\tblockers.push('Diagnosis accepted_hypothesis.evidence must cite proof.');\n\t}\n\tif (!normalized.rejected_alternatives.length) {\n\t\tblockers.push('Diagnosis rejected_alternatives must include at least one rejected theory.');\n\t}\n\tif (!normalized.failing_path.description\n\t\t&& !normalized.failing_path.frontend\n\t\t&& !normalized.failing_path.backend\n\t\t&& !normalized.failing_path.shared_library\n\t\t&& !normalized.failing_path.data_query) {\n\t\tblockers.push('Diagnosis failing_path must identify frontend, backend, query, shared library, or path description.');\n\t}\n\tif (!normalized.owner_files.length) {\n\t\tblockers.push('Diagnosis owner_files must contain the small editable file set.');\n\t}\n\tif (normalized.owner_files.length > maxOwnerFiles) {\n\t\tblockers.push(`Diagnosis owner_files has ${normalized.owner_files.length} entries; maximum is ${maxOwnerFiles}.`);\n\t}\n\tconst broadFiles = normalized.owner_files.filter(ownerFileLooksBroad);\n\tif (broadFiles.length) {\n\t\tblockers.push(`Diagnosis owner_files contains broad or unsafe path(s): ${broadFiles.join(', ')}.`);\n\t}\n\tif (!normalized.proof_plan.before && !normalized.proof_plan.before_state_unavailable_reason) {\n\t\tblockers.push('Diagnosis proof_plan.before is required unless proof_plan.before_state_unavailable_reason explains why before-state proof is impossible.');\n\t}\n\tif (!normalized.proof_plan.action) {\n\t\tblockers.push('Diagnosis proof_plan.action is required.');\n\t}\n\tif (!normalized.proof_plan.after) {\n\t\tblockers.push('Diagnosis proof_plan.after is required.');\n\t}\n\tif (!normalized.proof_plan.business_assertion) {\n\t\tblockers.push('Diagnosis proof_plan.business_assertion is required.');\n\t}\n\tif (proofPlanLooksRouteOnly(normalized.proof_plan)) {\n\t\tblockers.push('Diagnosis proof_plan cannot be route-load, screen-visible, or screenshot-only; it must name the business state/data/control change that proves the issue is fixed.');\n\t}\n\tif (!normalized.evidence.length) {\n\t\tblockers.push('Diagnosis evidence must include ticket/code/browser/log/Mongo proof.');\n\t}\n\tnormalized.status = blockers.length ? 'incomplete' : 'passed';\n\treturn {\n\t\tvalid: blockers.length === 0,\n\t\tstatus: normalized.status,\n\t\tblockers,\n\t\tnormalized\n\t};\n}\n\nexport function buildResolveIOSupportIssueClassProbes(value: any): ResolveIOSupportIssueClassProbe[] {\n\tconst validation = validateResolveIOSupportDiagnosisGate(value);\n\tconst gate = validation.normalized || normalizeResolveIOSupportDiagnosisGate(value);\n\tif (!gate) {\n\t\treturn [];\n\t}\n\tconst route = gate.proof_plan.route || gate.issue_case.route_module;\n\tconst proof = gate.proof_plan.business_assertion;\n\tconst common = {\n\t\tissue_class: gate.issue_class,\n\t\tprobe_type: 'issue_class_probe' as ResolveIOSupportV5StepType,\n\t\troute,\n\t\tblocks_acceptance_without_business_assertion: true\n\t};\n\tconst map: Record<ResolveIOSupportIssueClass, { action: string; expected: string }> = {\n\t\tno_op_submit: {\n\t\t\taction: `Submit the customer action on ${route || 'the affected screen'} and assert a persisted state change or explicit validation message.`,\n\t\t\texpected: proof || 'Before/action/after proof shows the submit is no longer a no-op.'\n\t\t},\n\t\tmissing_wrong_data: {\n\t\t\taction: `Load the named record/list on ${route || 'the affected route'} and compare visible data to the expected persisted source.`,\n\t\t\texpected: proof || 'Visible data and persisted data match the customer expectation.'\n\t\t},\n\t\tfilter_query_mismatch: {\n\t\t\taction: 'Apply the reported filter/query inputs and assert the returned rows/counts match the expected dataset.',\n\t\t\texpected: proof || 'Filter/query output contains the correct included rows and excludes the wrong rows.'\n\t\t},\n\t\tinvoice_pdf_export: {\n\t\t\taction: 'Generate the invoice/PDF/export from the affected route and inspect the downloaded/generated artifact.',\n\t\t\texpected: proof || 'Generated artifact contains the expected customer-visible rows, totals, or fields.'\n\t\t},\n\t\tupload_import: {\n\t\t\taction: 'Run the upload/import workflow with a representative file and assert parsed plus persisted results.',\n\t\t\texpected: proof || 'Import shows a success result and persisted rows/counts changed as expected.'\n\t\t},\n\t\troute_auth_hydration: {\n\t\t\taction: 'Open the route as the affected user and assert authenticated hydration reaches the functional screen, not a shell.',\n\t\t\texpected: proof || 'Route hydrates with the required controls/data for the affected account.'\n\t\t},\n\t\tslow_query_performance: {\n\t\t\taction: 'Run the reported query/workflow with timing/log evidence before and after the fix.',\n\t\t\texpected: proof || 'Performance evidence shows the slow path improved without changing results.'\n\t\t}\n\t};\n\tconst selected = map[gate.issue_class];\n\treturn [{\n\t\t...common,\n\t\tobjective: `Issue-class probe for ${gate.issue_class}: ${gate.issue_case.customer_complaint}`,\n\t\taction: selected.action,\n\t\texpected_evidence: selected.expected\n\t}];\n}\n\nexport function hashResolveIOSupportV5Evidence(value: any): string {\n\tconst raw = typeof value === 'string' ? value : JSON.stringify(value || {});\n\tconst normalized = cleanText(raw, 8000)\n\t\t.toLowerCase()\n\t\t.replace(/[a-f0-9]{16,}/g, '<id>')\n\t\t.replace(/\\b\\d{2,}\\b/g, '<n>');\n\tlet hash = 0;\n\tfor (let index = 0; index < normalized.length; index += 1) {\n\t\thash = ((hash << 5) - hash + normalized.charCodeAt(index)) | 0;\n\t}\n\treturn `ev-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nexport function decideResolveIOSupportV5RepeatedFailureStop(input: ResolveIOSupportV5RepeatStopInput): ResolveIOSupportV5RepeatStopDecision {\n\tconst failureClass = cleanText(input.failureClass || 'unknown', 80).toLowerCase();\n\tconst blockerFingerprint = fingerprintResolveIOSupportV5Blocker(input.blocker || '');\n\tconst evidenceHash = cleanText(input.evidenceHash, 80) || hashResolveIOSupportV5Evidence(input.evidence || input.blocker || '');\n\tconst limit = Math.max(1, Number(input.limit || 2) || 2);\n\tif (input.ignoreInfra !== false && /^(infra|compile)$/.test(failureClass)) {\n\t\treturn {\n\t\t\tshouldStop: false,\n\t\t\trepeatedCount: 0,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\treason: 'support_v5_infra_failures_do_not_count_as_product_repair_loops'\n\t\t};\n\t}\n\tconst latestRecord = (input.history || [])[(input.history || []).length - 1];\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory: (input.history || []).map((entry) => ({\n\t\t\toutcome: entry.outcome,\n\t\t\tlane: entry.lane,\n\t\t\tstepType: entry.stepType,\n\t\t\tfailureClass: entry.failureClass,\n\t\t\tblocker: entry.blocker || entry.summary,\n\t\t\tblockerFingerprint: entry.blockerFingerprint,\n\t\t\tevidenceHash: entry.evidenceHash,\n\t\t\tchangedFiles: entry.changedFiles,\n\t\t\tartifactPaths: entry.artifactPaths,\n\t\t\tsummary: entry.summary,\n\t\t\trecordedAt: entry.recordedAt\n\t\t})),\n\t\tcurrent: {\n\t\t\toutcome: 'needs_repair',\n\t\t\tlane: latestRecord?.lane,\n\t\t\tstepType: latestRecord?.stepType,\n\t\t\tfailureClass,\n\t\t\tblocker: input.blocker,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash\n\t\t},\n\t\tmaxSameFailureRepeats: limit,\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: input.ignoreInfra !== false ? ['infra', 'compile'] : []\n\t});\n\tif (managerDecision.action === 'retry_infra') {\n\t\treturn {\n\t\t\tshouldStop: false,\n\t\t\trepeatedCount: 0,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\treason: 'support_v5_infra_failures_do_not_count_as_product_repair_loops'\n\t\t};\n\t}\n\tif (managerDecision.action === 'park_ping_pong') {\n\t\treturn {\n\t\t\tshouldStop: true,\n\t\t\trepeatedCount: managerDecision.pingPongCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\treason: 'support_v5_ping_pong_failure_loop'\n\t\t};\n\t}\n\tif (managerDecision.action === 'park_repeated_failure') {\n\t\treturn {\n\t\t\tshouldStop: true,\n\t\t\trepeatedCount: managerDecision.sameFailureCount,\n\t\t\tfailureClass,\n\t\t\tblockerFingerprint,\n\t\t\tevidenceHash,\n\t\t\treason: 'support_v5_same_failure_class_without_new_evidence'\n\t\t};\n\t}\n\tlet repeatedCount = 0;\n\tfor (let index = (input.history || []).length - 1; index >= 0; index -= 1) {\n\t\tconst item = input.history[index];\n\t\tif (item.outcome === 'pass' || item.outcome === 'ready_for_merge') {\n\t\t\tbreak;\n\t\t}\n\t\tconst itemFailureClass = cleanText(item.failureClass || 'unknown', 80).toLowerCase();\n\t\tconst itemBlockerFingerprint = cleanText(item.blockerFingerprint, 80)\n\t\t\t|| fingerprintResolveIOSupportV5Blocker(item.blocker || item.summary || '');\n\t\tconst itemEvidenceHash = cleanText(item.evidenceHash, 80)\n\t\t\t|| hashResolveIOSupportV5Evidence(item.artifactPaths || item.blocker || item.summary || '');\n\t\tif (itemFailureClass !== failureClass || itemBlockerFingerprint !== blockerFingerprint || itemEvidenceHash !== evidenceHash) {\n\t\t\tbreak;\n\t\t}\n\t\trepeatedCount += 1;\n\t}\n\treturn {\n\t\tshouldStop: repeatedCount >= limit,\n\t\trepeatedCount,\n\t\tfailureClass,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\treason: repeatedCount >= limit\n\t\t\t? 'support_v5_same_failure_class_without_new_evidence'\n\t\t\t: 'support_v5_retry_allowed_new_or_below_repeat_limit'\n\t};\n}\n\nexport function changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(\n\tdiagnosisGate: any,\n\tchangedFiles: any,\n\toptions: { allowTests?: boolean } = {}\n): string[] {\n\tconst validation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tif (!validation.valid || !validation.normalized) {\n\t\treturn cleanList(changedFiles, 80, 500);\n\t}\n\tconst owners = new Set(validation.normalized.owner_files.map(normalizeOwnerFilePath));\n\treturn cleanList(changedFiles, 120, 500)\n\t\t.map(normalizeOwnerFilePath)\n\t\t.filter((filePath) => {\n\t\t\tif (!filePath) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (owners.has(filePath)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (options.allowTests && /(^|\\/)(tests?|spec|__tests__)(\\/|$)|\\.(?:spec|test)\\.[jt]sx?$/i.test(filePath)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n}\n\nexport function decideResolveIOSupportV5RepairGate(input: ResolveIOSupportV5RepairGateInput): ResolveIOSupportV5RepairGateDecision {\n\tconst activeStepType = cleanText(input.activeStepType, 80);\n\tconst failureClass = cleanText(input.failureClass, 80).toLowerCase();\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.diagnosisGate, {\n\t\tmaxOwnerFiles: input.maxOwnerFiles\n\t});\n\tconst ownerFiles = diagnosisValidation.normalized?.owner_files || [];\n\tconst outsideOwnerFiles = changedFilesOutsideResolveIOSupportDiagnosisOwnerFiles(\n\t\tdiagnosisValidation.normalized || input.diagnosisGate,\n\t\tinput.changedFiles,\n\t\t{ allowTests: input.allowTestsOutsideOwnerFiles === true }\n\t);\n\tconst repeatedFailure = input.history?.length ? decideResolveIOSupportV5RepeatedFailureStop({\n\t\thistory: input.history,\n\t\tfailureClass,\n\t\tblocker: input.blocker,\n\t\tevidence: input.evidence,\n\t\tevidenceHash: input.evidenceHash,\n\t\tlimit: Math.max(1, Number(input.maxRepeatedNoProgress || 2) || 2),\n\t\tignoreInfra: true\n\t}) : undefined;\n\tconst recoveryPlanFor = (\n\t\taction: string,\n\t\treason: string,\n\t\trecoveryFailureClass = failureClass || 'unknown',\n\t\tproductRepairFailure = false\n\t): ResolveIOAIManagerRecoveryPlan => buildResolveIOAIManagerRecoveryPlan({\n\t\taction,\n\t\treason,\n\t\tfailureClass: recoveryFailureClass,\n\t\tlane: 'build',\n\t\tstepType: activeStepType || 'build_repair',\n\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\tmaxSameFailureRepeats: Math.max(1, Number(input.maxRepeatedNoProgress || 2) || 2),\n\t\tproductRepairFailure\n\t});\n\tconst recoveryCheckpointFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): ResolveIOAIManagerRecoveryCheckpoint => buildResolveIOAIManagerRecoveryCheckpoint({\n\t\tplan: recoveryPlan,\n\t\tcurrent: {\n\t\t\tlane: 'build',\n\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\tevidenceHash: input.evidenceHash,\n\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\tsummary: input.blocker\n\t\t}\n\t});\n\tconst recoveryFieldsFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): Pick<ResolveIOSupportV5RepairGateDecision, 'recoveryPlan' | 'recoveryCheckpoint' | 'recoveryEvidenceProbe' | 'recoveryAction'> => {\n\t\tconst recoveryCheckpoint = recoveryCheckpointFor(recoveryPlan);\n\t\tconst recoveryEvidenceProbe = buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\tcurrent: {\n\t\t\t\tlane: 'build',\n\t\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\t\tevidenceHash: input.evidenceHash,\n\t\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\t\tsummary: input.blocker\n\t\t\t}\n\t\t});\n\t\tconst current = {\n\t\t\tlane: 'build',\n\t\t\tstepType: activeStepType || 'build_repair',\n\t\t\tfailureClass: failureClass || 'unknown',\n\t\t\tblocker: input.blocker || (diagnosisValidation.blockers || []).join(' | '),\n\t\t\tevidenceHash: input.evidenceHash,\n\t\t\tchangedFiles: cleanList(input.changedFiles, 40, 500),\n\t\t\tsummary: input.blocker\n\t\t};\n\t\treturn {\n\t\t\trecoveryPlan,\n\t\t\trecoveryCheckpoint,\n\t\t\trecoveryEvidenceProbe,\n\t\t\trecoveryAction: buildResolveIOAIManagerRecoveryActionPacket({\n\t\t\t\tplan: recoveryPlan,\n\t\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\t\tprobe: recoveryEvidenceProbe,\n\t\t\t\tcurrent\n\t\t\t})\n\t\t};\n\t};\n\tif (repeatedFailure?.shouldStop) {\n\t\tconst recoveryPlan = recoveryPlanFor('park_repeated_failure', repeatedFailure.reason, repeatedFailure.failureClass, true);\n\t\treturn {\n\t\t\taction: 'park_repeated_failure',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: [repeatedFailure.reason],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\toutsideOwnerFiles,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (failureClass === 'infra' || failureClass === 'compile') {\n\t\tconst recoveryPlan = recoveryPlanFor('retry_infra', 'support_v5_infra_or_compile_repair_required', failureClass, false);\n\t\treturn {\n\t\t\taction: 'infra_repair_only',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: ['Infra/compile/Puppeteer/startup failures must be repaired in the harness lane before product-code repair.'],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\toutsideOwnerFiles,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (activeStepType === 'diagnosis_gate' || !diagnosisValidation.valid) {\n\t\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_diagnosis_gate_required', 'diagnosis', false);\n\t\treturn {\n\t\t\taction: 'diagnose_only',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: diagnosisValidation.blockers.length\n\t\t\t\t? diagnosisValidation.blockers\n\t\t\t\t: ['SupportDiagnosisGate is required before product-code repair.'],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\toutsideOwnerFiles,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (outsideOwnerFiles.length) {\n\t\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_out_of_scope_requires_diagnosis_revision', 'owner_scope', false);\n\t\treturn {\n\t\t\taction: 'reject_out_of_scope',\n\t\t\tcanEditProductCode: false,\n\t\t\tblockers: [`Changed files outside diagnosis owner_files; revise diagnosis with new evidence before broadening edits: ${outsideOwnerFiles.join(', ')}`],\n\t\t\townerFiles,\n\t\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\t\toutsideOwnerFiles,\n\t\t\trepeatedFailure,\n\t\t\tdiagnosisValidation,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_product_repair_allowed_after_diagnosis', failureClass || 'product_code', true);\n\treturn {\n\t\taction: 'allow_product_repair',\n\t\tcanEditProductCode: true,\n\t\tblockers: [],\n\t\townerFiles,\n\t\tissueClass: diagnosisValidation.normalized?.issue_class,\n\t\tproofPlan: diagnosisValidation.normalized?.proof_plan,\n\t\toutsideOwnerFiles,\n\t\trepeatedFailure,\n\t\tdiagnosisValidation,\n\t\t...recoveryFieldsFor(recoveryPlan)\n\t};\n}\n\nexport function applyResolveIOSupportDiagnosisGateToMicrotasks(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tdiagnosisGate: any\n): ResolveIOSupportV5StateBundle {\n\tconst validation = validateResolveIOSupportDiagnosisGate(diagnosisGate);\n\tconst gate = validation.normalized;\n\tif (!gate) {\n\t\treturn bundle;\n\t}\n\tconst ownerFiles = gate.owner_files;\n\tconst probes = buildResolveIOSupportIssueClassProbes(gate);\n\tconst now = isoNow();\n\tconst diagnosisMicrotaskId = (bundle.supportV5MicrotaskLedger || [])\n\t\t.find((task) => task.type === 'diagnosis_gate')?.microtaskId\n\t\t|| stableIdFromText('diagnosis', `Root-cause-first diagnosis gate for: ${cleanText(bundle.supportV5ScopeDigest || gate.issue_case.customer_complaint, 360) || 'support ticket'}`);\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => {\n\t\tif (task.type === 'diagnosis_gate') {\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\tstatus: validation.valid ? 'pass' as ResolveIOSupportV5MicrotaskStatus : 'needs_repair' as ResolveIOSupportV5MicrotaskStatus,\n\t\t\t\tblocker: validation.valid ? '' : validation.blockers.join(' | '),\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\tif (task.lane === 'build' && /repair|product_repair|build_repair/i.test(String(task.type || ''))) {\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\ttargetFiles: ownerFiles,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'owner_files'])),\n\t\t\t\tselfGate: `Repair only the diagnosed owner files unless you revise the diagnosis with new evidence. Owner files: ${ownerFiles.join(', ')}.`,\n\t\t\t\tacceptanceProof: gate.proof_plan.business_assertion,\n\t\t\t\tdependsOn: Array.from(new Set([...(task.dependsOn || []), diagnosisMicrotaskId])),\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\tif (task.lane === 'qa' && task.type === 'qa_row') {\n\t\t\treturn {\n\t\t\t\t...task,\n\t\t\t\tcontextRefs: Array.from(new Set([...(task.contextRefs || []), 'supportV5DiagnosisGate', 'proof_plan'])),\n\t\t\t\tselfGate: probes[0]?.action || task.selfGate,\n\t\t\t\tacceptanceProof: gate.proof_plan.business_assertion || task.acceptanceProof,\n\t\t\t\ttargetFiles: ownerFiles,\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t}\n\t\treturn task;\n\t});\n\tconst nextActive = selectResolveIOSupportV5ActiveMicrotask(ledger, bundle.supportV5ActiveMicrotaskId);\n\treturn {\n\t\t...bundle,\n\t\tsupportV5DiagnosisGate: gate,\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: nextActive?.microtaskId,\n\t\tsupportV5LaneMemory: {\n\t\t\t...bundle.supportV5LaneMemory,\n\t\t\tbuild: {\n\t\t\t\t...bundle.supportV5LaneMemory.build,\n\t\t\t\tchangedFiles: ownerFiles,\n\t\t\t\tscopeSummary: [\n\t\t\t\t\tbundle.supportV5LaneMemory.build.scopeSummary,\n\t\t\t\t\t`Diagnosis issue class: ${gate.issue_class}`,\n\t\t\t\t\t`Accepted hypothesis: ${gate.accepted_hypothesis.statement}`,\n\t\t\t\t\t`Owner files: ${ownerFiles.join(', ')}`\n\t\t\t\t].filter(Boolean).join(' | '),\n\t\t\t\tupdatedAt: now\n\t\t\t},\n\t\t\tqa: {\n\t\t\t\t...bundle.supportV5LaneMemory.qa,\n\t\t\t\tactiveQaRow: {\n\t\t\t\t\tworkflow: gate.proof_plan.business_assertion,\n\t\t\t\t\troute: gate.proof_plan.route || gate.issue_case.route_module,\n\t\t\t\t\tassertion: gate.proof_plan.after,\n\t\t\t\t\tstatus: 'pending'\n\t\t\t\t},\n\t\t\t\tupdatedAt: now\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction stableIdFromText(prefix: string, value: string): string {\n\tconst text = cleanText(value, 2000).toLowerCase();\n\tlet hash = 0;\n\tfor (let index = 0; index < text.length; index += 1) {\n\t\thash = ((hash << 5) - hash + text.charCodeAt(index)) | 0;\n\t}\n\treturn `${prefix}-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nfunction estimateTextTokens(value: string): number {\n\tconst text = String(value || '');\n\tif (!text) {\n\t\treturn 0;\n\t}\n\treturn Math.max(1, Math.ceil(text.length / 4));\n}\n\nexport function fingerprintResolveIOSupportV5Blocker(value: any): string {\n\tconst text = cleanText(value, 4000)\n\t\t.toLowerCase()\n\t\t.replace(/[a-f0-9]{16,}/g, '<id>')\n\t\t.replace(/\\b\\d{2,}\\b/g, '<n>')\n\t\t.replace(/\\bline\\s+<n>\\b/g, 'line <n>');\n\tlet hash = 0;\n\tfor (let index = 0; index < text.length; index += 1) {\n\t\thash = ((hash << 5) - hash + text.charCodeAt(index)) | 0;\n\t}\n\treturn `v5-${Math.abs(hash).toString(36)}`;\n}\n\nexport function buildResolveIOSupportV5Budget(existing?: Partial<ResolveIOSupportV5Budget>): ResolveIOSupportV5Budget {\n\treturn {\n\t\tmaxPromptTokensPerNonInitialStep: Number(existing?.maxPromptTokensPerNonInitialStep || 1800),\n\t\tmaxLoopsPerTicket: Number(existing?.maxLoopsPerTicket || 24),\n\t\tmaxRepeatedNoProgress: Number(existing?.maxRepeatedNoProgress || 2),\n\t\tmaxRuntimeMinutesPerLoop: Number(existing?.maxRuntimeMinutesPerLoop || 15),\n\t\ttotalPromptTokenEstimate: Number(existing?.totalPromptTokenEstimate || 0),\n\t\ttotalRuntimeMs: Number(existing?.totalRuntimeMs || 0),\n\t\tloopCount: Number(existing?.loopCount || 0)\n\t};\n}\n\nexport function buildResolveIOSupportV5PromptBudget(existing?: Partial<ResolveIOSupportV5PromptBudget>): ResolveIOSupportV5PromptBudget {\n\treturn {\n\t\tinitialPlannerCap: Number(existing?.initialPlannerCap || 6000),\n\t\tbuildMicrotaskCap: Number(existing?.buildMicrotaskCap || 1800),\n\t\tbuildMicrotaskHardCap: Number(existing?.buildMicrotaskHardCap || 2500),\n\t\tqaMicrotaskCap: Number(existing?.qaMicrotaskCap || 1500),\n\t\tqaMicrotaskHardCap: Number(existing?.qaMicrotaskHardCap || 2200),\n\t\trepairMicrotaskCap: Number(existing?.repairMicrotaskCap || 1200),\n\t\trepairMicrotaskHardCap: Number(existing?.repairMicrotaskHardCap || 1800)\n\t};\n}\n\nexport function buildResolveIOSupportV5ScopeDigest(input: {\n\tgoal?: string;\n\tapprovedScope?: string | string[];\n\tprBranch?: string;\n\tmaxTokens?: number;\n}): string {\n\tconst scope = Array.isArray(input.approvedScope)\n\t\t? cleanList(input.approvedScope, 30, 220).join(' | ')\n\t\t: cleanText(input.approvedScope, 4000);\n\tconst raw = [\n\t\tinput.goal ? `Goal: ${cleanText(input.goal, 300)}` : '',\n\t\tscope ? `Approved scope: ${scope}` : '',\n\t\tinput.prBranch ? `PR branch: ${cleanText(input.prBranch, 160)}` : ''\n\t].filter(Boolean).join('\\n');\n\tconst maxChars = Math.max(400, Math.floor(Number(input.maxTokens || 1000) * 4));\n\treturn raw.slice(0, maxChars);\n}\n\nexport function buildResolveIOSupportV5MicrotaskLedger(input: {\n\tscopeDigest: string;\n\trequirements?: string[];\n\tbuildThreadKey: string;\n\tqaThreadKey: string;\n\tnow?: Date | string;\n\texisting?: ResolveIOSupportV5Microtask[];\n}): ResolveIOSupportV5Microtask[] {\n\tconst existing = Array.isArray(input.existing) ? input.existing : [];\n\tconst completedByObjective = new Map<string, ResolveIOSupportV5Microtask>();\n\tfor (const task of existing) {\n\t\tif (task && (task.status === 'pass' || task.status === 'parked')) {\n\t\t\tcompletedByObjective.set(cleanText(task.objective, 500).toLowerCase(), task);\n\t\t}\n\t}\n\tconst now = isoNow(input.now);\n\tconst requirements = cleanList(input.requirements, 30, 240);\n\tconst sourceRequirements = requirements.length\n\t\t? requirements\n\t\t: cleanText(input.scopeDigest, 1000).split(/\\s+\\|\\s+|\\r?\\n/g).map((line) => line.trim()).filter(Boolean).slice(0, 12);\n\tconst ledger: ResolveIOSupportV5Microtask[] = [];\n\tconst diagnosisObjective = `Root-cause-first diagnosis gate for: ${cleanText(input.scopeDigest, 360) || 'support ticket'}`;\n\tconst diagnosisId = stableIdFromText('diagnosis', diagnosisObjective);\n\tconst existingDiagnosis = existing.find((task) => task?.type === 'diagnosis_gate' || task?.microtaskId === diagnosisId);\n\tledger.push(existingDiagnosis && (existingDiagnosis.status === 'pass' || existingDiagnosis.status === 'parked') ? existingDiagnosis : {\n\t\tmicrotaskId: diagnosisId,\n\t\tlane: 'build',\n\t\ttype: 'diagnosis_gate',\n\t\tstatus: existingDiagnosis?.status || 'pending',\n\t\tobjective: diagnosisObjective,\n\t\ttargetFiles: [],\n\t\tcontextRefs: ['scope_digest', 'support_context', 'similar_tickets', 'similar_commits'],\n\t\tselfGate: 'Read-only diagnosis only: reproduce or explicitly classify the issue, accept one falsifiable root-cause hypothesis, reject alternatives, identify the failing path, cap owner_files, and define before/action/after business proof.',\n\t\tacceptanceProof: 'Valid ResolveIOSupportDiagnosisGate JSON with issue_case, issue_class, accepted_hypothesis, rejected_alternatives, failing_path, owner_files, proof_plan, evidence, and status=passed.',\n\t\tthreadKey: input.buildThreadKey,\n\t\tpromptTokenEstimate: existingDiagnosis?.promptTokenEstimate,\n\t\tattempts: existingDiagnosis?.attempts || 0,\n\t\tdependsOn: [],\n\t\tparentScopeId: stableIdFromText('scope', diagnosisObjective),\n\t\tblocker: existingDiagnosis?.blocker,\n\t\tcreatedAt: existingDiagnosis?.createdAt || now,\n\t\tupdatedAt: existingDiagnosis?.updatedAt || now\n\t});\n\tsourceRequirements.forEach((requirement, index) => {\n\t\tconst objective = cleanText(requirement, 240);\n\t\tif (!objective) {\n\t\t\treturn;\n\t\t}\n\t\tconst existingCompleted = completedByObjective.get(objective.toLowerCase());\n\t\tconst buildId = stableIdFromText(`build-${index + 1}`, objective);\n\t\tconst qaId = stableIdFromText(`qa-${index + 1}`, objective);\n\t\tledger.push(existingCompleted && existingCompleted.lane === 'build' ? existingCompleted : {\n\t\t\tmicrotaskId: buildId,\n\t\t\tlane: 'build',\n\t\t\ttype: 'build_repair',\n\t\t\tstatus: 'pending',\n\t\t\tobjective,\n\t\t\ttargetFiles: [],\n\t\t\tcontextRefs: ['scope_digest'],\n\t\t\tselfGate: 'Run the smallest compile/type/unit check that proves this one behavior.',\n\t\t\tacceptanceProof: 'Concrete code/data proof for this behavior, with changed files listed.',\n\t\t\tthreadKey: input.buildThreadKey,\n\t\t\tattempts: 0,\n\t\t\tdependsOn: [diagnosisId],\n\t\t\tparentScopeId: stableIdFromText('scope', objective),\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now\n\t\t});\n\t\tledger.push({\n\t\t\tmicrotaskId: qaId,\n\t\t\tlane: 'qa',\n\t\t\ttype: 'qa_row',\n\t\t\tstatus: 'pending',\n\t\t\tobjective: `QA proof for: ${objective}`,\n\t\t\ttargetFiles: [],\n\t\t\tcontextRefs: ['scope_digest', buildId],\n\t\t\tselfGate: 'Drive this one customer-facing workflow row in browser/localhost and capture one captioned proof artifact.',\n\t\t\tacceptanceProof: 'QA matrix row pass with route/data assertion, screenshot/caption artifact, and persisted before/after row/count/value proof for data-changing workflows.',\n\t\t\tthreadKey: input.qaThreadKey,\n\t\t\tattempts: 0,\n\t\t\tdependsOn: [diagnosisId, buildId],\n\t\t\tparentScopeId: stableIdFromText('scope', objective),\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now\n\t\t});\n\t});\n\treturn ledger.length ? ledger : existing.slice(-80);\n}\n\nexport function selectResolveIOSupportV5ActiveMicrotask(\n\tledger: ResolveIOSupportV5Microtask[] = [],\n\tpreferredId?: string\n): ResolveIOSupportV5Microtask | undefined {\n\tconst byPreferred = preferredId ? ledger.find((task) => task.microtaskId === preferredId && !['pass', 'parked'].includes(task.status)) : undefined;\n\tif (byPreferred) {\n\t\treturn byPreferred;\n\t}\n\treturn ledger.find((task) => task.status === 'needs_repair')\n\t\t|| ledger.find((task) => task.status === 'in_progress')\n\t\t|| ledger.find((task) => task.lane === 'build' && /repair/i.test(String(task.type || '')) && task.status === 'pending')\n\t\t|| ledger.find((task) => task.status === 'pending')\n\t\t|| ledger.find((task) => task.status === 'blocked');\n}\n\nexport function initializeResolveIOSupportV5State(input: ResolveIOSupportV5InitializeInput): ResolveIOSupportV5StateBundle {\n\tconst now = isoNow(input.now);\n\tconst existing = input.existing || {};\n\tconst existingSupervisor = existing.supportV5SupervisorState;\n\tconst existingLaneMemory = existing.supportV5LaneMemory || {} as ResolveIOSupportV5StateBundle['supportV5LaneMemory'];\n\tconst scope = cleanList(input.approvedScopeRequirements, 24, 240).join(' | ')\n\t\t|| cleanText(input.description, 1000)\n\t\t|| cleanText(input.title, 300);\n\tconst ticketLabel = cleanText(input.ticketNumber || input.ticketId || input.jobId, 120);\n\tconst buildThreadKey = cleanText(input.buildThreadKey || existingLaneMemory.build?.threadKey || `support:${input.ticketId || input.jobId}:job:${input.jobId}:build`, 240);\n\tconst qaThreadKey = cleanText(input.qaThreadKey || existingLaneMemory.qa?.threadKey || `support:${input.ticketId || input.jobId}:job:${input.jobId}:qa`, 240);\n\tconst budget = buildResolveIOSupportV5Budget(existing.supportV5Budget);\n\tconst existingDiagnosisGate = normalizeResolveIOSupportDiagnosisGate((existing as any).supportV5DiagnosisGate);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(existingDiagnosisGate);\n\tconst scopeDigest = cleanText((existing as any).supportV5ScopeDigest, 4000) || buildResolveIOSupportV5ScopeDigest({\n\t\tgoal: existingSupervisor?.currentGoal || `Resolve support ticket ${ticketLabel}`,\n\t\tapprovedScope: scope,\n\t\tprBranch: input.prBranch || existingSupervisor?.prBranch || ''\n\t});\n\tconst ledger = buildResolveIOSupportV5MicrotaskLedger({\n\t\tscopeDigest,\n\t\trequirements: cleanList(input.approvedScopeRequirements, 30, 240),\n\t\tbuildThreadKey,\n\t\tqaThreadKey,\n\t\tnow,\n\t\texisting: (existing as any).supportV5MicrotaskLedger\n\t});\n\tconst activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(ledger, (existing as any).supportV5ActiveMicrotaskId);\n\tconst initialized: ResolveIOSupportV5StateBundle = {\n\t\tsupportWorkflowVersion: 'v5',\n\t\tsupportV5SupervisorState: {\n\t\t\tversion: 'v5',\n\t\t\tstatus: existingSupervisor?.status || 'active',\n\t\t\tcurrentGoal: existingSupervisor?.currentGoal || `Resolve support ticket ${ticketLabel}`,\n\t\t\tapprovedScope: existingSupervisor?.approvedScope || scope,\n\t\t\tprBranch: cleanText(input.prBranch || existingSupervisor?.prBranch || '', 240),\n\t\t\tactiveStep: existingSupervisor?.activeStep || (diagnosisValidation.valid ? 'compile_check' : 'diagnosis_gate'),\n\t\t\tactiveBlocker: existingSupervisor?.activeBlocker || (diagnosisValidation.valid ? '' : 'SupportDiagnosisGate required before product-code repair.'),\n\t\t\tlastGoodCheckpoint: existingSupervisor?.lastGoodCheckpoint || 'v5_initialized',\n\t\t\tcurrentQaRow: existingSupervisor?.currentQaRow,\n\t\t\tprocessLease: input.processLease || existingSupervisor?.processLease,\n\t\t\tartifactLinks: cleanList(existingSupervisor?.artifactLinks, 40, 500),\n\t\t\tnoEmailUnlessApproved: true,\n\t\t\tupdatedAt: now\n\t\t},\n\t\tsupportV5DiagnosisGate: diagnosisValidation.valid ? diagnosisValidation.normalized : existingDiagnosisGate,\n\t\tsupportV5LaneMemory: {\n\t\t\tbuild: {\n\t\t\t\tlane: 'build',\n\t\t\t\tmodel: existingLaneMemory.build?.model || 'gpt-5.3-codex',\n\t\t\t\tthreadKey: buildThreadKey,\n\t\t\t\tscopeSummary: existingLaneMemory.build?.scopeSummary || scope,\n\t\t\t\tactiveBlocker: existingLaneMemory.build?.activeBlocker || '',\n\t\t\t\tactiveQaRow: existingLaneMemory.build?.activeQaRow,\n\t\t\t\tchangedFiles: cleanList(existingLaneMemory.build?.changedFiles, 80, 500),\n\t\t\t\tartifactPaths: cleanList(existingLaneMemory.build?.artifactPaths, 80, 500),\n\t\t\t\tlatestPromptTokenEstimate: Number(existingLaneMemory.build?.latestPromptTokenEstimate || 0) || undefined,\n\t\t\t\tupdatedAt: existingLaneMemory.build?.updatedAt || now\n\t\t\t},\n\t\t\tqa: {\n\t\t\t\tlane: 'qa',\n\t\t\t\tmodel: existingLaneMemory.qa?.model || 'gpt-5.4-mini',\n\t\t\t\tthreadKey: qaThreadKey,\n\t\t\t\tscopeSummary: existingLaneMemory.qa?.scopeSummary || scope,\n\t\t\t\tactiveBlocker: existingLaneMemory.qa?.activeBlocker || '',\n\t\t\t\tactiveQaRow: existingLaneMemory.qa?.activeQaRow,\n\t\t\t\tchangedFiles: cleanList(existingLaneMemory.qa?.changedFiles, 80, 500),\n\t\t\t\tartifactPaths: cleanList(existingLaneMemory.qa?.artifactPaths, 80, 500),\n\t\t\t\tlatestPromptTokenEstimate: Number(existingLaneMemory.qa?.latestPromptTokenEstimate || 0) || undefined,\n\t\t\t\tupdatedAt: existingLaneMemory.qa?.updatedAt || now\n\t\t\t}\n\t\t},\n\t\tsupportV5StepHistory: Array.isArray(existing.supportV5StepHistory)\n\t\t\t? existing.supportV5StepHistory.slice(-80)\n\t\t\t: [],\n\t\tsupportV5Budget: budget,\n\t\tsupportV5RunnerIncidents: Array.isArray(existing.supportV5RunnerIncidents)\n\t\t\t? existing.supportV5RunnerIncidents.slice(-80)\n\t\t\t: [],\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: diagnosisValidation.valid\n\t\t\t? activeMicrotask?.microtaskId\n\t\t\t: ledger.find((task) => task.type === 'diagnosis_gate' && !['pass', 'parked'].includes(task.status))?.microtaskId || activeMicrotask?.microtaskId,\n\t\tsupportV5ScopeDigest: scopeDigest,\n\t\tsupportV5MicrotaskUsageHistory: Array.isArray((existing as any).supportV5MicrotaskUsageHistory)\n\t\t\t? (existing as any).supportV5MicrotaskUsageHistory.slice(-200)\n\t\t\t: [],\n\t\tsupportV5FailureFingerprints: Array.isArray((existing as any).supportV5FailureFingerprints)\n\t\t\t? (existing as any).supportV5FailureFingerprints.slice(-200)\n\t\t\t: [],\n\t\tsupportV5RecoveryPlan: (existing as any).supportV5RecoveryPlan,\n\t\tsupportV5RecoveryCheckpoint: (existing as any).supportV5RecoveryCheckpoint,\n\t\tsupportV5RecoveryEvidenceProbe: (existing as any).supportV5RecoveryEvidenceProbe,\n\t\tsupportV5RecoveryAction: (existing as any).supportV5RecoveryAction,\n\t\tsupportV5RecoveryDispatchHistory: Array.isArray((existing as any).supportV5RecoveryDispatchHistory)\n\t\t\t? (existing as any).supportV5RecoveryDispatchHistory.slice(-50)\n\t\t\t: [],\n\t\tsupportV5RecoveryDirective: (existing as any).supportV5RecoveryDirective\n\t};\n\treturn diagnosisValidation.valid && diagnosisValidation.normalized\n\t\t? applyResolveIOSupportDiagnosisGateToMicrotasks(initialized, diagnosisValidation.normalized)\n\t\t: initialized;\n}\n\nexport function recordResolveIOSupportV5Step(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tstep: ResolveIOSupportV5StepInput\n): ResolveIOSupportV5StateBundle {\n\tconst now = isoNow(step.now);\n\tconst promptTokens = Math.max(0, Number(step.promptTokenEstimate || 0) || 0);\n\tconst runtimeMs = Math.max(0, Number(step.runtimeMs || 0) || 0);\n\tconst microtaskId = cleanText(step.microtaskId || bundle.supportV5ActiveMicrotaskId, 160);\n\tconst normalizedDiagnosisGate = step.diagnosisGate\n\t\t? normalizeResolveIOSupportDiagnosisGate(step.diagnosisGate, now)\n\t\t: undefined;\n\tconst blockerFingerprint = step.blocker || step.summary\n\t\t? fingerprintResolveIOSupportV5Blocker(step.blocker || step.summary || '')\n\t\t: undefined;\n\tconst evidenceHash = cleanText(step.evidenceHash, 80)\n\t\t|| (step.artifactPaths?.length || step.blocker || step.summary\n\t\t\t? hashResolveIOSupportV5Evidence(step.artifactPaths?.length ? step.artifactPaths : `${step.blocker || ''}\\n${step.summary || ''}`)\n\t\t\t: hashResolveIOAIManagerEvidence({\n\t\t\t\tfailureClass: step.failureClass,\n\t\t\t\tblocker: step.blocker,\n\t\t\t\tsummary: step.summary,\n\t\t\t\tchangedFiles: step.changedFiles,\n\t\t\t\tartifactPaths: step.artifactPaths\n\t\t\t}));\n\tconst record: ResolveIOSupportV5StepRecord = {\n\t\t...(microtaskId ? { microtaskId } : {}),\n\t\tstepType: step.stepType,\n\t\toutcome: step.outcome,\n\t\tlane: step.lane,\n\t\tmodel: cleanText(step.model, 80),\n\t\tthreadKey: cleanText(step.threadKey, 240),\n\t\tpromptTokenEstimate: promptTokens || undefined,\n\t\truntimeMs: runtimeMs || undefined,\n\t\tsummary: cleanText(step.summary || step.blocker || step.outcome, 1200),\n\t\tblocker: cleanText(step.blocker, 1200),\n\t\tchangedFiles: cleanList(step.changedFiles, 80, 500),\n\t\tartifactPaths: cleanList(step.artifactPaths, 80, 500),\n\t\tdiagnosisGate: normalizedDiagnosisGate,\n\t\tfailureClass: cleanText(step.failureClass, 80) || undefined,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\trecordedAt: now\n\t};\n\tconst diagnosisGate = normalizedDiagnosisGate || bundle.supportV5DiagnosisGate;\n\tconst laneMemory = { ...bundle.supportV5LaneMemory };\n\tif (step.lane === 'build' || step.lane === 'qa') {\n\t\tconst previous = laneMemory[step.lane];\n\t\tlaneMemory[step.lane] = {\n\t\t\t...previous,\n\t\t\tactiveBlocker: record.blocker || previous.activeBlocker || '',\n\t\t\tactiveQaRow: step.activeQaRow || previous.activeQaRow,\n\t\t\tchangedFiles: record.changedFiles?.length ? record.changedFiles : previous.changedFiles,\n\t\t\tartifactPaths: record.artifactPaths?.length ? record.artifactPaths : previous.artifactPaths,\n\t\t\tlatestPromptTokenEstimate: promptTokens || previous.latestPromptTokenEstimate,\n\t\t\tupdatedAt: now\n\t\t};\n\t}\n\tconst supervisor = {\n\t\t...bundle.supportV5SupervisorState,\n\t\tstatus: step.outcome === 'ready_for_merge' ? 'complete' as const : (step.outcome === 'park_manual' || step.outcome === 'budget_stop' ? 'parked' as const : 'active' as const),\n\t\tactiveStep: step.stepType,\n\t\tactiveBlocker: record.blocker || '',\n\t\tcurrentQaRow: step.activeQaRow || bundle.supportV5SupervisorState.currentQaRow,\n\t\tlastGoodCheckpoint: step.outcome === 'pass' || step.outcome === 'ready_for_merge'\n\t\t\t? step.stepType\n\t\t\t: bundle.supportV5SupervisorState.lastGoodCheckpoint,\n\t\tartifactLinks: Array.from(new Set([\n\t\t\t...bundle.supportV5SupervisorState.artifactLinks,\n\t\t\t...(record.artifactPaths || [])\n\t\t])).slice(-80),\n\t\tupdatedAt: now\n\t};\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => {\n\t\tif (task.microtaskId !== bundle.supportV5ActiveMicrotaskId) {\n\t\t\treturn task;\n\t\t}\n\t\tconst status: ResolveIOSupportV5MicrotaskStatus = step.outcome === 'pass' || step.outcome === 'ready_for_merge'\n\t\t\t? 'pass'\n\t\t\t: step.outcome === 'park_manual' || step.outcome === 'budget_stop'\n\t\t\t\t? 'parked'\n\t\t\t\t: step.outcome === 'needs_repair' || step.outcome === 'retry_same_step'\n\t\t\t\t\t? 'needs_repair'\n\t\t\t\t\t: 'in_progress';\n\t\treturn {\n\t\t\t...task,\n\t\t\tstatus,\n\t\t\tblocker: record.blocker || task.blocker,\n\t\t\tpromptTokenEstimate: promptTokens || task.promptTokenEstimate,\n\t\t\tattempts: task.attempts + (step.outcome === 'pass' || step.outcome === 'ready_for_merge' ? 0 : 1),\n\t\t\tupdatedAt: now\n\t\t};\n\t});\n\tconst failureFingerprint = record.failureClass && record.blockerFingerprint && record.evidenceHash\n\t\t? {\n\t\t\tstepType: record.stepType,\n\t\t\tfailureClass: cleanText(record.failureClass, 80),\n\t\t\tblockerFingerprint: record.blockerFingerprint,\n\t\t\tevidenceHash: record.evidenceHash,\n\t\t\trecordedAt: now\n\t\t}\n\t\t: undefined;\n\tconst managerDecision = decideResolveIOAIManagerPolicy({\n\t\thistory: [...bundle.supportV5StepHistory, record],\n\t\tcurrent: record,\n\t\tmaxSameFailureRepeats: buildResolveIOSupportV5Budget(bundle.supportV5Budget).maxRepeatedNoProgress,\n\t\tmaxPingPongTransitions: 3,\n\t\tinfraFailureClasses: ['infra', 'compile']\n\t});\n\tconst previousRecord = bundle.supportV5StepHistory[bundle.supportV5StepHistory.length - 1];\n\tconst nextLoopCount = managerDecision.loopBudgetShouldReset\n\t\t|| previousRecord?.failureClass !== record.failureClass\n\t\t|| previousRecord?.blockerFingerprint !== record.blockerFingerprint\n\t\t|| previousRecord?.evidenceHash !== record.evidenceHash\n\t\t? 1\n\t\t: bundle.supportV5Budget.loopCount + 1;\n\tconst nextMicrotask = selectResolveIOSupportV5ActiveMicrotask(ledger, bundle.supportV5ActiveMicrotaskId);\n\tconst nextBundle: ResolveIOSupportV5StateBundle = {\n\t\t...bundle,\n\t\tsupportV5SupervisorState: supervisor,\n\t\tsupportV5DiagnosisGate: diagnosisGate,\n\t\tsupportV5LaneMemory: laneMemory,\n\t\tsupportV5StepHistory: [...bundle.supportV5StepHistory, record].slice(-100),\n\t\tsupportV5Budget: {\n\t\t\t...bundle.supportV5Budget,\n\t\t\ttotalPromptTokenEstimate: bundle.supportV5Budget.totalPromptTokenEstimate + promptTokens,\n\t\t\ttotalRuntimeMs: bundle.supportV5Budget.totalRuntimeMs + runtimeMs,\n\t\t\tloopCount: nextLoopCount\n\t\t},\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5ActiveMicrotaskId: nextMicrotask?.microtaskId,\n\t\tsupportV5MicrotaskUsageHistory: bundle.supportV5MicrotaskUsageHistory || [],\n\t\tsupportV5FailureFingerprints: failureFingerprint\n\t\t\t? [...(bundle.supportV5FailureFingerprints || []), failureFingerprint].slice(-200)\n\t\t\t: (bundle.supportV5FailureFingerprints || []),\n\t\tsupportV5RecoveryPlan: managerDecision.recoveryPlan,\n\t\tsupportV5RecoveryCheckpoint: managerDecision.recoveryCheckpoint,\n\t\tsupportV5RecoveryEvidenceProbe: managerDecision.recoveryEvidenceProbe,\n\t\tsupportV5RecoveryAction: managerDecision.recoveryAction\n\t};\n\tif (normalizedDiagnosisGate && validateResolveIOSupportDiagnosisGate(normalizedDiagnosisGate).valid) {\n\t\treturn applyResolveIOSupportDiagnosisGateToMicrotasks(nextBundle, normalizedDiagnosisGate);\n\t}\n\treturn nextBundle;\n}\n\nexport function recordResolveIOSupportV5MicrotaskUsage(\n\tbundle: ResolveIOSupportV5StateBundle,\n\tusage: Omit<ResolveIOSupportV5MicrotaskUsage, 'recordedAt'>\n): ResolveIOSupportV5StateBundle {\n\tconst record: ResolveIOSupportV5MicrotaskUsage = {\n\t\t...usage,\n\t\tmicrotaskId: cleanText(usage.microtaskId, 160),\n\t\tthreadKey: cleanText(usage.threadKey, 240),\n\t\tmodel: cleanText(usage.model, 80),\n\t\tpromptTokenEstimate: Math.max(0, Number(usage.promptTokenEstimate || 0) || 0),\n\t\tpromptSections: Array.isArray(usage.promptSections)\n\t\t\t? usage.promptSections.map((section) => ({\n\t\t\t\tname: cleanText(section.name, 120),\n\t\t\t\ttokenEstimate: Math.max(0, Number(section.tokenEstimate || 0) || 0)\n\t\t\t})).filter((section) => section.name)\n\t\t\t: [],\n\t\trecordedAt: isoNow()\n\t};\n\tconst ledger = (bundle.supportV5MicrotaskLedger || []).map((task) => task.microtaskId === record.microtaskId\n\t\t? {\n\t\t\t...task,\n\t\t\tpromptTokenEstimate: record.promptTokenEstimate,\n\t\t\tupdatedAt: record.recordedAt\n\t\t}\n\t\t: task);\n\treturn {\n\t\t...bundle,\n\t\tsupportV5MicrotaskLedger: ledger,\n\t\tsupportV5MicrotaskUsageHistory: [\n\t\t\t...(bundle.supportV5MicrotaskUsageHistory || []),\n\t\t\trecord\n\t\t].slice(-200)\n\t};\n}\n\nexport function decideResolveIOSupportV5Continuation(bundle: ResolveIOSupportV5StateBundle): ResolveIOSupportV5ContinuationDecision {\n\tconst history = bundle.supportV5StepHistory || [];\n\tconst budget = buildResolveIOSupportV5Budget(bundle.supportV5Budget);\n\tconst last = history[history.length - 1];\n\tconst activeMicrotaskId = cleanText(bundle.supportV5ActiveMicrotaskId, 160);\n\tconst blockerFingerprint = fingerprintResolveIOSupportV5Blocker(last?.blocker || last?.summary || '');\n\tlet repeatedNoProgressCount = 0;\n\tfor (let index = history.length - 1; index >= 0; index -= 1) {\n\t\tconst item = history[index];\n\t\tif (activeMicrotaskId && cleanText((item as any).microtaskId, 160) !== activeMicrotaskId) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (item.outcome === 'pass' || item.outcome === 'ready_for_merge') {\n\t\t\tbreak;\n\t\t}\n\t\tif (item.stepType !== last?.stepType) {\n\t\t\tbreak;\n\t\t}\n\t\tif (fingerprintResolveIOSupportV5Blocker(item.blocker || item.summary || '') === blockerFingerprint) {\n\t\t\trepeatedNoProgressCount += 1;\n\t\t}\n\t}\n\tconst budgetExceeded = budget.loopCount >= budget.maxLoopsPerTicket\n\t\t|| (last?.promptTokenEstimate || 0) > budget.maxPromptTokensPerNonInitialStep;\n\tconst repeatedFailure = last ? decideResolveIOSupportV5RepeatedFailureStop({\n\t\thistory,\n\t\tfailureClass: last.failureClass,\n\t\tblocker: last.blocker || last.summary,\n\t\tevidenceHash: last.evidenceHash,\n\t\tlimit: budget.maxRepeatedNoProgress,\n\t\tignoreInfra: true\n\t}) : null;\n\tconst recoveryPlanFor = (\n\t\taction: string,\n\t\treason: string,\n\t\textra: Partial<ResolveIOAIManagerRecoveryPlanInput> = {}\n\t): ResolveIOAIManagerRecoveryPlan => buildResolveIOAIManagerRecoveryPlan({\n\t\taction,\n\t\treason,\n\t\tfailureClass: last?.failureClass,\n\t\tlane: last?.lane || 'supervisor',\n\t\tstepType: last?.stepType || bundle.supportV5SupervisorState.activeStep,\n\t\tblocker: last?.blocker || last?.summary,\n\t\tchangedFiles: last?.changedFiles,\n\t\tartifactPaths: last?.artifactPaths,\n\t\tmaxSameFailureRepeats: budget.maxRepeatedNoProgress,\n\t\t...extra\n\t});\n\tconst recoveryCheckpointFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): ResolveIOAIManagerRecoveryCheckpoint => buildResolveIOAIManagerRecoveryCheckpoint({\n\t\tplan: recoveryPlan,\n\t\tcurrent: last\n\t});\n\tconst recoveryFieldsFor = (\n\t\trecoveryPlan: ResolveIOAIManagerRecoveryPlan\n\t): Pick<ResolveIOSupportV5ContinuationDecision, 'recoveryPlan' | 'recoveryCheckpoint' | 'recoveryEvidenceProbe' | 'recoveryAction'> => {\n\t\tconst recoveryCheckpoint = recoveryCheckpointFor(recoveryPlan);\n\t\tconst recoveryEvidenceProbe = buildResolveIOAIManagerRecoveryEvidenceProbe({\n\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\tcurrent: last\n\t\t});\n\t\treturn {\n\t\t\trecoveryPlan,\n\t\t\trecoveryCheckpoint,\n\t\t\trecoveryEvidenceProbe,\n\t\t\trecoveryAction: buildResolveIOAIManagerRecoveryActionPacket({\n\t\t\t\tplan: recoveryPlan,\n\t\t\t\tcheckpoint: recoveryCheckpoint,\n\t\t\t\tprobe: recoveryEvidenceProbe,\n\t\t\t\tcurrent: last\n\t\t\t})\n\t\t};\n\t};\n\tif (budgetExceeded) {\n\t\tconst recoveryPlan = recoveryPlanFor('manual_handoff', 'support_v5_budget_guard', {\n\t\t\tproductRepairFailure: false\n\t\t});\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: 'support_v5_budget_guard',\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (repeatedNoProgressCount > budget.maxRepeatedNoProgress) {\n\t\tconst recoveryPlan = recoveryPlanFor('park_repeated_failure', 'support_v5_repeated_no_progress', {\n\t\t\tproductRepairFailure: true\n\t\t});\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: 'support_v5_repeated_no_progress',\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tif (repeatedFailure?.shouldStop) {\n\t\tconst recoveryPlan = recoveryPlanFor(\n\t\t\trepeatedFailure.reason === 'support_v5_ping_pong_failure_loop' ? 'park_ping_pong' : 'park_repeated_failure',\n\t\t\trepeatedFailure.reason,\n\t\t\t{\n\t\t\t\tfailureClass: repeatedFailure.failureClass,\n\t\t\t\tproductRepairFailure: true\n\t\t\t}\n\t\t);\n\t\treturn {\n\t\t\taction: 'park',\n\t\t\treason: repeatedFailure.reason,\n\t\t\tnextStep: last?.stepType || 'cleanup',\n\t\t\trepeatedNoProgressCount: repeatedFailure.repeatedCount,\n\t\t\tbudgetExceeded,\n\t\t\t...recoveryFieldsFor(recoveryPlan)\n\t\t};\n\t}\n\tconst recoveryPlan = recoveryPlanFor('continue', 'support_v5_continue');\n\treturn {\n\t\taction: 'continue',\n\t\treason: 'support_v5_continue',\n\t\tnextStep: last?.stepType || bundle.supportV5SupervisorState.activeStep,\n\t\trepeatedNoProgressCount,\n\t\tbudgetExceeded: false,\n\t\t...recoveryFieldsFor(recoveryPlan)\n\t};\n}\n\nexport function buildResolveIOSupportV5DiagnoseFirstPrompt(lines: {\n\tgoal?: string;\n\tapprovedScope?: string[];\n\tactiveStep?: ResolveIOSupportV5StepType;\n\tactiveBlocker?: string;\n\tlane?: ResolveIOSupportV5Lane;\n\tlaneSummary?: string;\n\tcurrentQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n\tartifactPaths?: string[];\n\tchangedFiles?: string[];\n}): string[] {\n\treturn [\n\t\t'Support Runner V5 contract: act like a guarded autonomous engineer, not a gate checklist.',\n\t\t'Start with Diagnose First: observed evidence, likely cause, smallest next action, and expected proof.',\n\t\t'Use compact lane memory and current artifacts before asking for broad ticket context.',\n\t\t'Do not send customer email. Do not write production data. Do not spawn duplicate build, QA, server, client, Mongo, browser, or Codex processes.',\n\t\t'If repairing, inspect logs/artifacts/source/diff first; make the smallest code or localhost-data change, then run the smallest finite self-gate.',\n\t\t'For build repairs, prefer `npm run build-prod -- --watch=false`, a targeted `tsc --noEmit`, or a focused unit test. `npm run build-dev` is forbidden for support microtasks because it is slow/watch-oriented and can leave heavy esbuild work. If no finite gate exists, return a blocked self-gate with the exact reason instead of running build-dev.',\n\t\t'If QA fails, retest the failed row before advancing; if the same blocker repeats without new proof, park with the exact blocker.',\n\t\tlines.goal ? `Goal: ${cleanText(lines.goal, 500)}` : '',\n\t\tcleanList(lines.approvedScope, 12, 240).length ? `Approved scope: ${cleanList(lines.approvedScope, 12, 240).join(' | ')}` : '',\n\t\tlines.activeStep ? `Active step: ${lines.activeStep}` : '',\n\t\tlines.lane ? `Lane: ${lines.lane}` : '',\n\t\tlines.laneSummary ? `Lane memory: ${cleanText(lines.laneSummary, 700)}` : '',\n\t\tlines.activeBlocker ? `Active blocker: ${cleanText(lines.activeBlocker, 800)}` : '',\n\t\tlines.currentQaRow?.workflow ? `Current QA row: ${cleanText(lines.currentQaRow.workflow, 300)}` : '',\n\t\tlines.currentQaRow?.route ? `Current QA route: ${cleanText(lines.currentQaRow.route, 300)}` : '',\n\t\tcleanList(lines.changedFiles, 12, 200).length ? `Changed files: ${cleanList(lines.changedFiles, 12, 200).join(', ')}` : '',\n\t\tcleanList(lines.artifactPaths, 12, 240).length ? `Artifacts: ${cleanList(lines.artifactPaths, 12, 240).join(', ')}` : ''\n\t].filter(Boolean);\n}\n\nexport function buildResolveIOSupportV5MicrotaskPrompt(input: {\n\tbundle: ResolveIOSupportV5StateBundle;\n\tlane: 'build' | 'qa';\n\tmodel?: string;\n\tstage?: string;\n\tfailureText?: string;\n\tchangedFiles?: string[];\n\tartifactPaths?: string[];\n\ttargetFiles?: string[];\n\tcontextSnippets?: string[];\n\tactiveQaRow?: ResolveIOSupportV5LaneMemory['activeQaRow'];\n}): {\n\tprompt: string;\n\tpromptTokenEstimate: number;\n\tpromptSections: ResolveIOSupportV5UsageSection[];\n\tactiveMicrotask?: ResolveIOSupportV5Microtask;\n\twithinCap: boolean;\n\twithinHardCap: boolean;\n\tcap: number;\n\thardCap: number;\n\treason?: string;\n} {\n\tconst activeMicrotask = selectResolveIOSupportV5ActiveMicrotask(\n\t\tinput.bundle.supportV5MicrotaskLedger || [],\n\t\tinput.bundle.supportV5ActiveMicrotaskId\n\t);\n\tconst diagnosisValidation = validateResolveIOSupportDiagnosisGate(input.bundle.supportV5DiagnosisGate);\n\tconst diagnosisGate = diagnosisValidation.normalized || input.bundle.supportV5DiagnosisGate;\n\tconst diagnosisActive = activeMicrotask?.type === 'diagnosis_gate';\n\tconst budget = buildResolveIOSupportV5PromptBudget();\n\tconst repairLike = Boolean(input.failureText || activeMicrotask?.status === 'needs_repair' || /repair/i.test(String(input.stage || activeMicrotask?.type || '')));\n\tconst cap = repairLike\n\t\t? budget.repairMicrotaskCap\n\t\t: input.lane === 'qa'\n\t\t\t? budget.qaMicrotaskCap\n\t\t\t: budget.buildMicrotaskCap;\n\tconst hardCap = repairLike\n\t\t? budget.repairMicrotaskHardCap\n\t\t: input.lane === 'qa'\n\t\t\t? budget.qaMicrotaskHardCap\n\t\t\t: budget.buildMicrotaskHardCap;\n\tconst laneMemory = input.bundle.supportV5LaneMemory[input.lane];\n\tconst taskThreadKey = activeMicrotask?.threadKey || laneMemory.threadKey;\n\tconst changedFiles = cleanList(input.changedFiles?.length ? input.changedFiles : laneMemory.changedFiles, 8, 160);\n\tconst artifactPaths = cleanList(input.artifactPaths?.length ? input.artifactPaths : laneMemory.artifactPaths, 8, 200);\n\tconst targetFiles = cleanList(input.targetFiles?.length ? input.targetFiles : activeMicrotask?.targetFiles, 5, 160);\n\tconst contextSnippets = cleanList(input.contextSnippets, 5, 360);\n\tconst qaRow = input.activeQaRow || activeMicrotask?.lane === 'qa'\n\t\t? input.activeQaRow || laneMemory.activeQaRow || input.bundle.supportV5SupervisorState.currentQaRow\n\t\t: undefined;\n\tconst sections = [\n\t\t{\n\t\t\tname: 'microtask_contract',\n\t\t\ttext: [\n\t\t\t\t'Support Runner V5 Microtask Contract.',\n\t\t\t\t'Use the existing persistent lane thread. Do not start a fresh thread.',\n\t\t\t\t'Do exactly one microtask and one proof gate. Do not replay ticket triage, prior plans, attachments, broad QA checklist, or unrelated scope.',\n\t\t\t\t'If context is insufficient, request the smallest missing file/log/artifact by path and park this microtask; do not broaden the prompt.',\n\t\t\t\t'Do not send customer email. Do not deploy. Do not spawn duplicate server/client/Mongo/browser/Codex processes.',\n\t\t\t\tdiagnosisActive\n\t\t\t\t\t? 'Diagnosis gate hard boundary: read-only investigation only. Do not edit source, generated files, package files, tests, fixtures, QA artifacts, or local data. Return the diagnosis JSON contract only.'\n\t\t\t\t\t: input.lane === 'qa'\n\t\t\t\t\t? 'QA lane hard boundary: the platform preflight owns compile, dependency install, Mongo/server/client startup, and Angular startup. This lane owns only browser/data proof and QA artifacts unless the prompt explicitly says preflight was skipped.'\n\t\t\t\t\t: 'Build lane hard boundary: do not run `npm run build-dev`, `ng build`, `npm run server`, `npm run client`, `ng serve`, `run-local-qa.sh`, browser automation, or any watch/long-lived command. If a broad compile gate is needed, run only `npm run build-prod -- --watch=false`; otherwise use a targeted finite check or return the precise blocker.'\n\t\t\t].join('\\n')\n\t\t},\n\t\tdiagnosisActive ? {\n\t\t\tname: 'root_cause_first_diagnosis_contract',\n\t\t\ttext: [\n\t\t\t\t'Before any product-code repair, produce strict JSON only:',\n\t\t\t\t'{\"support_diagnosis_gate\":{\"issue_case\":{\"customer_complaint\":\"\",\"expected_result\":\"\",\"observed_result\":\"\",\"route_module\":\"\",\"account_customer_context\":\"\",\"reproduction_status\":\"reproduced|blocked|classified\",\"reproduction_blocker\":\"\"},\"issue_class\":\"no_op_submit|missing_wrong_data|filter_query_mismatch|invoice_pdf_export|upload_import|route_auth_hydration|slow_query_performance\",\"accepted_hypothesis\":{\"statement\":\"\",\"falsifiable_test\":\"\",\"evidence\":[\"\"]},\"rejected_alternatives\":[\"\"],\"failing_path\":{\"frontend\":\"\",\"backend\":\"\",\"shared_library\":\"\",\"data_query\":\"\",\"description\":\"\"},\"owner_files\":[\"small/exact/file.ts\"],\"proof_plan\":{\"before\":\"\",\"before_state_unavailable_reason\":\"\",\"action\":\"\",\"after\":\"\",\"business_assertion\":\"\",\"route\":\"\",\"data_assertion\":\"\",\"artifact_expectation\":\"\"},\"similar_tickets\":[],\"similar_commits\":[],\"evidence\":[{\"type\":\"ticket|browser|mongo|log|code|commit|qa|other\",\"summary\":\"\",\"artifactPath\":\"\"}],\"status\":\"passed\"}}',\n\t\t\t\t'Owner files must be a small exact editable set, not directories, globs, generated wrappers, or broad repo areas.',\n\t\t\t\t'The accepted hypothesis must be falsifiable and backed by evidence; prior similar tickets or commits are hints only and cannot bypass fresh diagnosis.',\n\t\t\t\t'The proof plan must be before/action/after business proof. If before-state proof is impossible, explain exactly why in before_state_unavailable_reason.'\n\t\t\t].join('\\n')\n\t\t} : {\n\t\t\tname: 'diagnosis_gate_context',\n\t\t\ttext: diagnosisValidation.valid && diagnosisGate ? [\n\t\t\t\t`Diagnosis issue class: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).issue_class}`,\n\t\t\t\t`Accepted hypothesis: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).accepted_hypothesis.statement}`,\n\t\t\t\t`Failing path: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.description || (diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.frontend || (diagnosisGate as ResolveIOSupportDiagnosisGate).failing_path.backend || ''}`,\n\t\t\t\t`Owner files: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).owner_files.join(', ')}`,\n\t\t\t\t`Business proof required: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.business_assertion}`,\n\t\t\t\t`Before/action/after: ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.before || (diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.before_state_unavailable_reason} -> ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.action} -> ${(diagnosisGate as ResolveIOSupportDiagnosisGate).proof_plan.after}`\n\t\t\t].filter(Boolean).join('\\n') : 'SupportDiagnosisGate is not valid. Park instead of editing product code.'\n\t\t},\n\t\t{\n\t\t\tname: 'scope_digest',\n\t\t\ttext: cleanText(input.bundle.supportV5ScopeDigest || input.bundle.supportV5SupervisorState.approvedScope, 900)\n\t\t},\n\t\t{\n\t\t\tname: 'active_microtask',\n\t\t\ttext: activeMicrotask ? [\n\t\t\t\t`Microtask id: ${activeMicrotask.microtaskId}`,\n\t\t\t\t`Lane: ${input.lane}`,\n\t\t\t\t`Type: ${activeMicrotask.type}`,\n\t\t\t\t`Status: ${activeMicrotask.status}`,\n\t\t\t\t`Objective: ${cleanText(activeMicrotask.objective, 360)}`,\n\t\t\t\t`Self-gate: ${cleanText(activeMicrotask.selfGate, 260)}`,\n\t\t\t\t`Acceptance proof: ${cleanText(activeMicrotask.acceptanceProof, 260)}`,\n\t\t\t\t`Attempts on this microtask: ${activeMicrotask.attempts}`,\n\t\t\t\t`Thread key: ${taskThreadKey}`\n\t\t\t].join('\\n') : 'No active microtask found. Park and report support_v5_microtask_missing.'\n\t\t},\n\t\t{\n\t\t\tname: 'failure_delta',\n\t\t\ttext: input.failureText ? `Latest blocker/failure delta: ${cleanText(input.failureText, 700)}` : ''\n\t\t},\n\t\t{\n\t\t\tname: 'target_context',\n\t\t\ttext: [\n\t\t\t\ttargetFiles.length ? `Target files: ${targetFiles.join(', ')}` : '',\n\t\t\t\tchangedFiles.length ? `Changed files: ${changedFiles.join(', ')}` : '',\n\t\t\t\tartifactPaths.length ? `Artifacts: ${artifactPaths.join(', ')}` : '',\n\t\t\t\tqaRow?.workflow ? `QA row workflow: ${cleanText(qaRow.workflow, 220)}` : '',\n\t\t\t\tqaRow?.route ? `QA row route: ${cleanText(qaRow.route, 220)}` : '',\n\t\t\t\tqaRow?.assertion ? `QA row assertion: ${cleanText(qaRow.assertion, 260)}` : '',\n\t\t\t\tcontextSnippets.length ? `Relevant snippets:\\n${contextSnippets.join('\\n---\\n')}` : ''\n\t\t\t].filter(Boolean).join('\\n')\n\t\t},\n\t\tinput.lane === 'qa' ? {\n\t\t\tname: 'qa_browser_evidence_contract',\n\t\t\ttext: [\n\t\t\t\t'QA lane first action after preflight: collect fresh browser evidence for the active row, not a proof review of existing route/auth artifacts.',\n\t\t\t\t'Use the already-running localhost harness and staged env. Before any shell command, run `source .resolveio-support-tools/env.sh 2>/dev/null || source ../.resolveio-support-tools/env.sh 2>/dev/null || true`; then use `$RESOLVEIO_SUPPORT_QA_CLIENT_URL`, `$RESOLVEIO_SUPPORT_QA_SERVER_URL`, `$PUPPETEER_EXECUTABLE_PATH`, and `$CHROME_BIN`.',\n\t\t\t\t'Required auth replay helper inside every Puppeteer row script: `const storage=JSON.parse(fs.readFileSync(\"qa-artifacts/auth-bootstrap-storage-state.json\",\"utf8\")); const entries=[...(Array.isArray(storage.localStorageEntries)?storage.localStorageEntries:[]), ...(Array.isArray(storage.localStorage)?storage.localStorage:Object.entries(storage.localStorage||{}).map(([key,value])=>({key,value}))), ...((storage.origins||[]).flatMap(o=>o.localStorage||[]))].map(e=>({key:e.key||e.name,value:e.value})).filter(e=>e.key); const clientUrl=process.env.RESOLVEIO_SUPPORT_QA_CLIENT_URL||process.env.RESOLVEIO_RUNNER_QA_CLIENT_URL; const rowRoute=\"<ACTIVE_QA_ROUTE>\"; await page.goto(clientUrl,{waitUntil:\"domcontentloaded\"}); await page.evaluate(items=>{localStorage.clear(); for(const item of items)localStorage.setItem(item.key,item.value);}, entries); await page.goto(new URL(rowRoute, clientUrl).href,{waitUntil:\"domcontentloaded\"});` Replace `<ACTIVE_QA_ROUTE>` with the active row route before running. A screenshot of `/home`, the login screen, or a shell route after this helper means the QA script navigated to the wrong route or storage is stale; rerun the same row with the active route before returning an app blocker.',\n\t\t\t\t'Allowed first command shape: one bounded `node`/Puppeteer row script that reads `qa-artifacts/auth-bootstrap-storage-state.json`, opens `$RESOLVEIO_SUPPORT_QA_CLIENT_URL`, seeds localStorage, navigates to the active QA route with `new URL(activeRoute, clientUrl).href`, drives the visible workflow, captures screenshot/caption, and updates the active matrix row. A `/home` proof is invalid for a locked non-home route.',\n\t\t\t\t'Forbidden in QA lane after preflight: `npm run build`, `npm run build-dev`, `npm run build-prod`, `ng build`, `npm install`, `npm ci`, `npm run server`, `npm run client`, `ng serve`, `gulp`, `mongod`, `run-local-qa.sh`, and broad source discovery. If a build/startup/dependency problem is suspected, return `blocked` or `needs-fix` with the existing qa-artifacts log paths instead of launching those commands.',\n\t\t\t\t\t'Launch Puppeteer from `PUPPETEER_EXECUTABLE_PATH || CHROME_BIN`, seed localStorage from `qa-artifacts/auth-bootstrap-storage-state.json`, then navigate to the active QA route.',\n\t\t\t\t\t'Before passing, confirm `qa-artifacts/auth-bootstrap-result.json` used the ticket reporter or named affected user when available. If it used generic admin/dev while `qa-live-data-seed-result.json.selected.qa_user_context` names a reporter/affected user, rerun auth as that user or return needs-fix.',\n\t\t\t\t\t'Drive the visible customer workflow for this one row. Capture a new customer-facing screenshot/caption and update `qa-artifacts/qa-coverage-matrix.json` with workflow, route, data id/name, assertion, screenshot path, caption, and pass/failed/blocked status.',\n\t\t\t\t'After selecting any From/To, source/target, dropdown, combobox, rio-select, filter, item, customer, yard, chemical, or treatment-plan value, read the visible control text back from the DOM. If it still contains placeholder text such as Select Chemical, Select Yard, Select Customer, Select Treatment Plan Type, Loading..., empty, null, or undefined, do not click the action button and do not mark pass. Capture the selected-state blocker screenshot/DOM text and return needs-fix.',\n\t\t\t\t'If the row needs persisted data proof, create that proof yourself in the same bounded QA command by querying localhost QA Mongo through process.env.MONGO_URL after the visible UI action. Write the result under qa-artifacts/ as JSON and reference that path in the matrix. Do not ask for a missing post-action DB artifact while the local QA stack is running; either write it or return needs-fix with the exact query/script error. For update-interchangeables rows, the JSON must include concrete non-placeholder fromText and toText, before/after counts or sample documents for treatment plans and tank/interchangeable records, and must fail if either selected value is only an arrow/placeholder or if the persisted collections are empty.',\n\t\t\t\t\t'If the row names multiple concrete entities such as assets, units, BOLs, invoices, chemicals, customers, yards, or numbered records, prove every named entity. Do not pass by proving only one representative record.',\n\t\t\t\t\t'For customer-reported data bugs, use production-seeded localhost records from `qa-live-data-seed-result.json`. If the exact named record is missing from the seed, fail the row as a seed/query blocker instead of testing a substitute record.',\n\t\t\t\t\t'Route-ready, auth-bootstrap, shell, header-only, and empty-list screenshots do not satisfy this microtask. If the row cannot be proven, capture the blocker screenshot/DOM state and return needs-fix with that exact blocker.',\n\t\t\t\t'Do not run compile/startup/npm install, do not spawn another server/client/Mongo, and do not inspect broad source trees before the first browser evidence command.'\n\t\t\t].join('\\n')\n\t\t} : {\n\t\t\tname: 'non_qa_noop',\n\t\t\ttext: ''\n\t\t},\n\t\t{\n\t\t\tname: 'return_contract',\n\t\t\ttext: diagnosisActive\n\t\t\t\t? 'Return strict JSON only with support_diagnosis_gate. Do not include Markdown and do not edit files.'\n\t\t\t\t: input.lane === 'qa'\n\t\t\t\t? 'Return strict JSON only: {\"status\":\"pass\"|\"needs-fix\"|\"blocked\",\"microtaskId\":\"\",\"summary\":\"\",\"evidence\":[\"\"],\"artifacts\":[\"\"],\"next_actions\":[\"\"]}.'\n\t\t\t\t: 'Return concise Markdown with: Microtask Result, Root Cause, Changes, Self-Gate, Acceptance Proof, Residual Risk.'\n\t\t}\n\t].filter((section) => cleanText(section.text, 20));\n\tconst promptSections = sections.map((section) => ({\n\t\tname: section.name,\n\t\ttokenEstimate: estimateTextTokens(section.text)\n\t}));\n\tconst prompt = sections.map((section) => section.text).join('\\n\\n');\n\tconst promptTokenEstimate = estimateTextTokens(prompt);\n\treturn {\n\t\tprompt,\n\t\tpromptTokenEstimate,\n\t\tpromptSections,\n\t\tactiveMicrotask,\n\t\twithinCap: promptTokenEstimate <= cap,\n\t\twithinHardCap: promptTokenEstimate <= hardCap,\n\t\tcap,\n\t\thardCap,\n\t\treason: promptTokenEstimate > hardCap\n\t\t\t? 'support_v5_microtask_prompt_hard_cap'\n\t\t\t: promptTokenEstimate > cap\n\t\t\t\t? 'support_v5_microtask_prompt_soft_cap'\n\t\t\t\t: undefined\n\t};\n}\n\nexport function summarizeResolveIOSupportV5MicrotaskUsage(bundle: ResolveIOSupportV5StateBundle): {\n\ttotalPromptTokenEstimate: number;\n\tbyMicrotask: Array<{ microtaskId: string; promptTokenEstimate: number; calls: number }>;\n\tbySection: ResolveIOSupportV5UsageSection[];\n\tbroadPromptViolations: ResolveIOSupportV5MicrotaskUsage[];\n} {\n\tconst byMicrotask = new Map<string, { microtaskId: string; promptTokenEstimate: number; calls: number }>();\n\tconst bySection = new Map<string, number>();\n\tlet totalPromptTokenEstimate = 0;\n\tconst broadPromptViolations: ResolveIOSupportV5MicrotaskUsage[] = [];\n\tconst promptBudget = buildResolveIOSupportV5PromptBudget();\n\tfor (const usage of bundle.supportV5MicrotaskUsageHistory || []) {\n\t\ttotalPromptTokenEstimate += usage.promptTokenEstimate || 0;\n\t\tconst existing = byMicrotask.get(usage.microtaskId) || { microtaskId: usage.microtaskId, promptTokenEstimate: 0, calls: 0 };\n\t\texisting.promptTokenEstimate += usage.promptTokenEstimate || 0;\n\t\texisting.calls += 1;\n\t\tbyMicrotask.set(usage.microtaskId, existing);\n\t\tfor (const section of usage.promptSections || []) {\n\t\t\tbySection.set(section.name, (bySection.get(section.name) || 0) + section.tokenEstimate);\n\t\t}\n\t\tconst hardCap = usage.lane === 'qa' ? promptBudget.qaMicrotaskHardCap : promptBudget.buildMicrotaskHardCap;\n\t\tif ((usage.promptTokenEstimate || 0) > hardCap) {\n\t\t\tbroadPromptViolations.push(usage);\n\t\t}\n\t}\n\treturn {\n\t\ttotalPromptTokenEstimate,\n\t\tbyMicrotask: Array.from(byMicrotask.values()),\n\t\tbySection: Array.from(bySection.entries()).map(([name, tokenEstimate]) => ({ name, tokenEstimate })),\n\t\tbroadPromptViolations\n\t};\n}\n\nexport function buildResolveIOSupportV5Incident(input: {\n\tincidentClass: string;\n\tsummary: string;\n\tstepType?: ResolveIOSupportV5StepType;\n\tblocker?: string;\n\tartifactPaths?: string[];\n\tnow?: Date | string;\n}): ResolveIOSupportV5RunnerIncident {\n\treturn {\n\t\tincidentClass: cleanText(input.incidentClass, 120) || 'support_v5_runner_incident',\n\t\tsummary: cleanText(input.summary, 1200),\n\t\tstepType: input.stepType,\n\t\tblockerFingerprint: input.blocker ? fingerprintResolveIOSupportV5Blocker(input.blocker) : undefined,\n\t\tartifactPaths: cleanList(input.artifactPaths, 40, 500),\n\t\trecordedAt: isoNow(input.now)\n\t};\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.countChatTokens = exports.countTokens = void 0;
|
|
4
|
+
var js_tiktoken_1 = require("js-tiktoken");
|
|
5
|
+
var DEFAULT_ENCODING = 'o200k_base';
|
|
6
|
+
var resolveEncoding = function (model) {
|
|
7
|
+
var normalized = String(model || '').trim();
|
|
8
|
+
if (normalized) {
|
|
9
|
+
try {
|
|
10
|
+
return (0, js_tiktoken_1.encodingForModel)(normalized);
|
|
11
|
+
}
|
|
12
|
+
catch (_a) { }
|
|
13
|
+
}
|
|
14
|
+
return (0, js_tiktoken_1.getEncoding)(DEFAULT_ENCODING);
|
|
15
|
+
};
|
|
16
|
+
var countTokens = function (text, model) {
|
|
17
|
+
var encoding = resolveEncoding(model);
|
|
18
|
+
try {
|
|
19
|
+
var tokens = encoding.encode(text || '');
|
|
20
|
+
return tokens.length;
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
var maybeEncoding = encoding;
|
|
24
|
+
if (typeof (maybeEncoding === null || maybeEncoding === void 0 ? void 0 : maybeEncoding.free) === 'function') {
|
|
25
|
+
maybeEncoding.free();
|
|
26
|
+
}
|
|
27
|
+
else if (typeof (maybeEncoding === null || maybeEncoding === void 0 ? void 0 : maybeEncoding.dispose) === 'function') {
|
|
28
|
+
maybeEncoding.dispose();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.countTokens = countTokens;
|
|
33
|
+
var countChatTokens = function (messages, model) {
|
|
34
|
+
var flattened = (messages || [])
|
|
35
|
+
.map(function (msg) { return "".concat((msg === null || msg === void 0 ? void 0 : msg.role) || 'user', ":\n").concat((msg === null || msg === void 0 ? void 0 : msg.content) || ''); })
|
|
36
|
+
.join('\n\n');
|
|
37
|
+
return (0, exports.countTokens)(flattened, model);
|
|
38
|
+
};
|
|
39
|
+
exports.countChatTokens = countChatTokens;
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=tokenizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/tokenizer.ts"],"names":[],"mappings":";;;AAAA,2CAAsE;AAEtE,IAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC,IAAM,eAAe,GAAG,UAAC,KAAc;IACtC,IAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC;YACJ,OAAO,IAAA,8BAAgB,EAAC,UAAiB,CAAC,CAAC;QAC5C,CAAC;QACD,WAAM,CAAC,CAAA,CAAC;IACT,CAAC;IACD,OAAO,IAAA,yBAAW,EAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC,CAAC;AAEK,IAAM,WAAW,GAAG,UAAC,IAAY,EAAE,KAAc;IACvD,IAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC;QACJ,IAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,MAAM,CAAC;IACtB,CAAC;YACO,CAAC;QACR,IAAM,aAAa,GAAG,QAAkE,CAAC;QACzF,IAAI,OAAO,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAA,KAAK,UAAU,EAAE,CAAC;YAC/C,aAAa,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;aACI,IAAI,OAAO,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAA,KAAK,UAAU,EAAE,CAAC;YACvD,aAAa,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB;AAEK,IAAM,eAAe,GAAG,UAAC,QAAkD,EAAE,KAAc;IACjG,IAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;SAChC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,UAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,KAAI,MAAM,gBAAM,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,KAAI,EAAE,CAAE,EAAhD,CAAgD,CAAC;SAC9D,IAAI,CAAC,MAAM,CAAC,CAAC;IACf,OAAO,IAAA,mBAAW,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B","file":"tokenizer.js","sourcesContent":["import { encodingForModel, getEncoding, Tiktoken } from 'js-tiktoken';\n\nconst DEFAULT_ENCODING = 'o200k_base';\n\nconst resolveEncoding = (model?: string): Tiktoken => {\n\tconst normalized = String(model || '').trim();\n\tif (normalized) {\n\t\ttry {\n\t\t\treturn encodingForModel(normalized as any);\n\t\t}\n\t\tcatch {}\n\t}\n\treturn getEncoding(DEFAULT_ENCODING);\n};\n\nexport const countTokens = (text: string, model?: string): number => {\n\tconst encoding = resolveEncoding(model);\n\ttry {\n\t\tconst tokens = encoding.encode(text || '');\n\t\treturn tokens.length;\n\t}\n\tfinally {\n\t\tconst maybeEncoding = encoding as unknown as { free?: () => void; dispose?: () => void };\n\t\tif (typeof maybeEncoding?.free === 'function') {\n\t\t\tmaybeEncoding.free();\n\t\t}\n\t\telse if (typeof maybeEncoding?.dispose === 'function') {\n\t\t\tmaybeEncoding.dispose();\n\t\t}\n\t}\n};\n\nexport const countChatTokens = (messages: Array<{ role: string; content: string }>, model?: string): number => {\n\tconst flattened = (messages || [])\n\t\t.map((msg) => `${msg?.role || 'user'}:\\n${msg?.content || ''}`)\n\t\t.join('\\n\\n');\n\treturn countTokens(flattened, model);\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|