@resolveio/server-lib 22.3.150 → 22.3.152
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 +188 -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 +30 -0
- package/managers/openai-usage-ledger.manager.js +142 -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 +23193 -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 +30 -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 +838 -0
- package/util/ai-run-evidence-adapters.js.map +1 -0
- package/util/ai-run-evidence-dashboard.d.ts +84 -0
- package/util/ai-run-evidence-dashboard.js +336 -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 +244 -0
- package/util/ai-run-evidence.js +731 -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 +112 -0
- package/util/ai-runner-manager-autopilot.js +313 -0
- package/util/ai-runner-manager-autopilot.js.map +1 -0
- package/util/ai-runner-manager-policy.d.ts +403 -0
- package/util/ai-runner-manager-policy.js +1763 -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 +451 -0
- package/util/support-runner-v5.js +1680 -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 -131
- 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 -112
- 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 -23524
- 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 -56
- 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 -684
- package/src/util/ai-run-evidence-dashboard.ts +0 -313
- package/src/util/ai-run-evidence-eval.ts +0 -885
- package/src/util/ai-run-evidence.ts +0 -1058
- package/src/util/ai-runner-artifacts.ts +0 -586
- package/src/util/ai-runner-manager-autopilot.ts +0 -434
- package/src/util/ai-runner-manager-policy.ts +0 -2733
- 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 -2167
- 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 -177
- package/tests/ai-manager-recovery-checkpoint.test.ts +0 -595
- package/tests/ai-run-eval.test.ts +0 -88
- package/tests/ai-run-evidence.test.ts +0 -348
- package/tests/ai-runner-contract.test.ts +0 -488
- package/tests/aicoder-runner-v6.test.ts +0 -298
- 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 -488
- 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/ai-run-evidence-adapters.ts"],"names":[],"mappings":"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","file":"ai-run-evidence-adapters.js","sourcesContent":["import {\n\tAIRun,\n\tAIRunCost,\n\tAIRunEvent,\n\tAIRunGateResult,\n\tAIQaArtifact,\n\tAIQaBusinessAssertion,\n\tAIQaCompileResult,\n\tAIQaInfraCheck,\n\tAIQaRun,\n\tAIQaRouteProbe,\n\tbuildAIRun,\n\tbuildAIRunCost,\n\tbuildAIQaRun,\n\tnormalizeOpenAIUsageRowsForCosting\n} from './ai-run-evidence';\n\nexport interface SupportAIRunAdapterInput {\n\tticket?: Record<string, any>;\n\tjob?: Record<string, any>;\n\tversions?: Array<Record<string, any>>;\n\tbuildPlans?: Array<Record<string, any>>;\n\taiJobs?: Array<Record<string, any>>;\n\ttaskEvents?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcommits?: Array<Record<string, any>>;\n\tqaEvidence?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport interface AICoderAIRunAdapterInput {\n\tapp?: Record<string, any>;\n\tjob?: Record<string, any>;\n\tlogs?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcommits?: Array<Record<string, any>>;\n\tqaEvidence?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport interface AssistantAIRunAdapterInput {\n\tconversation?: Record<string, any>;\n\tmessages?: Array<Record<string, any>>;\n\tissueReports?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcorrectnessChecks?: Array<Record<string, any>>;\n\tnow?: Date | string;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction idText(value: any, max = 160): string | undefined {\n\tconst normalized = cleanText(value, max);\n\treturn normalized || undefined;\n}\n\nfunction asArray<T = any>(value: any): T[] {\n\treturn Array.isArray(value) ? value : [];\n}\n\nfunction firstText(source: Record<string, any> | undefined, fields: string[], max = 1000): string | undefined {\n\tfor (const field of fields) {\n\t\tconst value = source?.[field];\n\t\tconst normalized = idText(value, max);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction dateValue(source: Record<string, any> | undefined, fields: string[]): Date | string | undefined {\n\tfor (const field of fields) {\n\t\tconst value = source?.[field];\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction addSourceId(sourceIds: Record<string, string>, key: string, value: any): void {\n\tconst normalized = idText(value);\n\tif (normalized) {\n\t\tsourceIds[key] = normalized;\n\t}\n}\n\nfunction pushEvent(events: AIRunEvent[], event: AIRunEvent): void {\n\tconst message = cleanText(event.message, 1800);\n\tconst metadata = event.metadata || {};\n\tif (!message && !Object.keys(metadata).length && !event.artifactPaths?.length) {\n\t\treturn;\n\t}\n\tevents.push({\n\t\t...event,\n\t\tmessage,\n\t\tartifactPaths: asArray<string>(event.artifactPaths).filter(Boolean).slice(0, 20)\n\t});\n}\n\nfunction eventDate(record: Record<string, any>): Date | string | undefined {\n\treturn dateValue(record, ['recordedAt', 'createdAt', 'updatedAt', 'timestamp', 'time', 'date']);\n}\n\nfunction collectUsageEvents(entries: Array<Record<string, any>>, events: AIRunEvent[]): AIRunCost | undefined {\n\tif (!entries.length) {\n\t\treturn undefined;\n\t}\n\tconst normalizedEntries = normalizeOpenAIUsageRowsForCosting(entries);\n\tfor (const entry of normalizedEntries) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'usage',\n\t\t\tcategory: cleanText(entry.category || entry.kind || entry.phase, 160) || 'usage',\n\t\t\tmessage: cleanText(entry.summary || entry.description || entry.model || 'Model usage recorded.', 800),\n\t\t\trecordedAt: eventDate(entry),\n\t\t\tmetadata: {\n\t\t\t\tmodel: entry.model,\n\t\t\t\tinputTokens: entry.inputTokens ?? entry.input_tokens,\n\t\t\t\toutputTokens: entry.outputTokens ?? entry.output_tokens,\n\t\t\t\ttotalTokens: entry.totalTokens ?? entry.total_tokens,\n\t\t\t\testimatedUsd: entry.estimatedUsd ?? entry.cost_estimate,\n\t\t\t\tusageSource: entry.usage_source ?? entry.usageSource,\n\t\t\t\tusageSurface: entry.usage_surface ?? entry.usageSurface,\n\t\t\t\tusagePhase: entry.usage_phase ?? entry.usagePhase,\n\t\t\t\tcostBasis: entry.cost_basis ?? entry.costBasis,\n\t\t\t\tisManual: entry.is_manual ?? entry.isManual,\n\t\t\t\tisUntracked: entry.is_untracked ?? entry.isUntracked,\n\t\t\t\tuntrackedReason: entry.untracked_reason ?? entry.untrackedReason\n\t\t\t}\n\t\t});\n\t}\n\treturn buildAIRunCost(entries);\n}\n\nfunction collectCommitEvents(commits: Array<Record<string, any>>, events: AIRunEvent[]): void {\n\tfor (const commit of commits.slice(0, 80)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'git_commit',\n\t\t\tmessage: cleanText(commit.message || commit.subject || commit.title || commit.hash || commit.sha, 1200),\n\t\t\trecordedAt: eventDate(commit),\n\t\t\tmetadata: {\n\t\t\t\tsha: commit.sha || commit.hash,\n\t\t\t\tbranch: commit.branch,\n\t\t\t\tauthor: commit.author\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction statusFromBoolean(value: any, fallback?: string): string | undefined {\n\tif (value === true) {\n\t\treturn 'pass';\n\t}\n\tif (value === false) {\n\t\treturn 'fail';\n\t}\n\treturn fallback;\n}\n\nfunction collectArtifacts(evidence: Record<string, any> | undefined): AIQaArtifact[] {\n\tconst artifacts: AIQaArtifact[] = [];\n\tfor (const entry of asArray<any>(evidence?.artifacts)) {\n\t\tartifacts.push({\n\t\t\ttype: entry.type || 'other',\n\t\t\tpath: cleanText(entry.path || entry.file || entry.artifactPath, 500),\n\t\t\turl: cleanText(entry.url, 500),\n\t\t\ttitle: cleanText(entry.title || entry.name, 300),\n\t\t\tcaption: cleanText(entry.caption || entry.message, 800),\n\t\t\tmetadata: entry.metadata\n\t\t});\n\t}\n\tconst screenshots = asArray<any>(evidence?.screenshots || evidence?.qaScreenshots || evidence?.browserScreenshots);\n\tfor (const screenshot of screenshots.slice(0, 40)) {\n\t\tif (typeof screenshot === 'string') {\n\t\t\tartifacts.push({ type: 'screenshot', path: screenshot });\n\t\t} else {\n\t\t\tartifacts.push({\n\t\t\t\ttype: 'screenshot',\n\t\t\t\tpath: cleanText(screenshot.path || screenshot.file, 500),\n\t\t\t\turl: cleanText(screenshot.url, 500),\n\t\t\t\ttitle: cleanText(screenshot.title || screenshot.route, 300),\n\t\t\t\tcaption: cleanText(screenshot.caption || screenshot.message, 800),\n\t\t\t\tmetadata: screenshot.metadata\n\t\t\t});\n\t\t}\n\t}\n\treturn artifacts;\n}\n\nfunction collectInfraChecks(evidence: Record<string, any> | undefined): AIQaInfraCheck[] {\n\tconst checks: AIQaInfraCheck[] = [];\n\tfor (const entry of asArray<any>(evidence?.infraChecks || evidence?.preflightChecks)) {\n\t\tchecks.push({\n\t\t\tname: cleanText(entry.name || entry.check || entry.key, 160) || 'infra_check',\n\t\t\tstatus: entry.status || statusFromBoolean(entry.passed),\n\t\t\tmessage: cleanText(entry.message || entry.error || entry.reason, 1000),\n\t\t\tpath: cleanText(entry.path, 500),\n\t\t\tdurationMs: Number(entry.durationMs ?? entry.duration_ms) || undefined,\n\t\t\tmetadata: entry.metadata,\n\t\t\tcheckedAt: eventDate(entry)\n\t\t});\n\t}\n\tif (evidence?.preflightStatus) {\n\t\tchecks.push({\n\t\t\tname: 'qa_preflight',\n\t\t\tstatus: evidence.preflightStatus,\n\t\t\tmessage: cleanText(evidence.preflightMessage || evidence.preflightReason, 1000),\n\t\t\tpath: cleanText(evidence.preflightArtifactPath || evidence.preflightPath, 500)\n\t\t});\n\t}\n\treturn checks;\n}\n\nfunction collectCompileResult(evidence: Record<string, any> | undefined): AIQaCompileResult | undefined {\n\tconst build = evidence?.compile || evidence?.build || evidence?.buildEvidence || evidence?.buildResult;\n\tif (!build && evidence?.compileStatus === undefined && evidence?.buildStatus === undefined) {\n\t\treturn undefined;\n\t}\n\tconst status = build?.status\n\t\t|| evidence?.compileStatus\n\t\t|| evidence?.buildStatus\n\t\t|| statusFromBoolean(build?.passed ?? build?.allExpectedPassed ?? evidence?.buildPassed);\n\treturn {\n\t\tstatus,\n\t\tcommand: cleanText(build?.command || evidence?.buildCommand, 500),\n\t\tartifactPath: cleanText(build?.artifactPath || build?.logPath || evidence?.buildLogPath, 500),\n\t\tmessage: cleanText(build?.message || build?.error || evidence?.buildMessage, 1000),\n\t\tdurationMs: Number(build?.durationMs ?? build?.duration_ms) || undefined,\n\t\tstaleEvidence: build?.staleEvidence === true || evidence?.staleBuildEvidence === true,\n\t\trecordedAt: eventDate(build || evidence || {})\n\t};\n}\n\nfunction collectRouteProbes(evidence: Record<string, any> | undefined): AIQaRouteProbe[] {\n\tconst probes: AIQaRouteProbe[] = [];\n\tfor (const entry of asArray<any>(evidence?.routeProbes || evidence?.routes || evidence?.browserRoutes)) {\n\t\tprobes.push({\n\t\t\troute: cleanText(entry.route || entry.path || entry.url, 500) || '/',\n\t\t\tstatus: entry.status || statusFromBoolean(entry.passed),\n\t\t\tscreenshot: cleanText(entry.screenshot || entry.screenshotPath, 500),\n\t\t\tcaption: cleanText(entry.caption || entry.message, 1000),\n\t\t\tshellOnly: entry.shellOnly === true,\n\t\t\tauthenticated: entry.authenticated === true,\n\t\t\tconsoleErrors: asArray<string>(entry.consoleErrors),\n\t\t\tnetworkErrors: asArray<string>(entry.networkErrors),\n\t\t\tmessage: cleanText(entry.message || entry.error, 1000),\n\t\t\trecordedAt: eventDate(entry)\n\t\t});\n\t}\n\tconst screenshots = asArray<any>(evidence?.screenshots || evidence?.qaScreenshots || evidence?.browserScreenshots);\n\tfor (const screenshot of screenshots.slice(0, 20)) {\n\t\tif (typeof screenshot === 'string') {\n\t\t\tprobes.push({ route: '/', status: 'pass', screenshot, caption: 'Historical browser screenshot recorded.' });\n\t\t} else if (screenshot.route || screenshot.path || screenshot.url || screenshot.screenshot || screenshot.file) {\n\t\t\tprobes.push({\n\t\t\t\troute: cleanText(screenshot.route || screenshot.url || screenshot.path, 500) || '/',\n\t\t\t\tstatus: screenshot.status || statusFromBoolean(screenshot.passed, 'pass'),\n\t\t\t\tscreenshot: cleanText(screenshot.screenshot || screenshot.screenshotPath || screenshot.file || screenshot.path, 500),\n\t\t\t\tcaption: cleanText(screenshot.caption || screenshot.message, 1000),\n\t\t\t\tshellOnly: screenshot.shellOnly === true,\n\t\t\t\tauthenticated: screenshot.authenticated === true,\n\t\t\t\trecordedAt: eventDate(screenshot)\n\t\t\t});\n\t\t}\n\t}\n\treturn probes;\n}\n\nfunction collectBusinessAssertions(evidence: Record<string, any> | undefined): AIQaBusinessAssertion[] {\n\tconst assertions: AIQaBusinessAssertion[] = [];\n\tfor (const entry of asArray<any>(evidence?.businessAssertions || evidence?.workflowAssertions || evidence?.assertions)) {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(entry.assertion || entry.name || entry.workflow || entry.expected, 1000) || 'business assertion',\n\t\t\tstatus: entry.status || statusFromBoolean(entry.passed),\n\t\t\tworkflow: cleanText(entry.workflow, 400),\n\t\t\troute: cleanText(entry.route, 500),\n\t\t\taction: cleanText(entry.action, 500),\n\t\t\texpected: cleanText(entry.expected, 1000),\n\t\t\tobserved: cleanText(entry.observed || entry.actual, 1000),\n\t\t\tdataProof: cleanText(entry.dataProof || entry.proof, 1400),\n\t\t\tartifactPaths: asArray<string>(entry.artifactPaths || entry.artifacts),\n\t\t\tmessage: cleanText(entry.message || entry.error || entry.reason, 1000),\n\t\t\trecordedAt: eventDate(entry),\n\t\t\tmetadata: entry.metadata\n\t\t});\n\t}\n\tif (!assertions.length && evidence?.qaRunOutcome === 'business_assertion_passed') {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(evidence.aiRunOutcomeReason || evidence.reason || 'Historical business assertion passed.', 1000),\n\t\t\tstatus: 'pass',\n\t\t\tdataProof: cleanText(evidence.aiRunOutcomeReason || evidence.reason, 1400)\n\t\t});\n\t}\n\tif (!assertions.length && evidence?.qaRunOutcome === 'business_assertion_failed') {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(evidence.aiRunOutcomeReason || evidence.reason || 'Historical business assertion failed.', 1000),\n\t\t\tstatus: 'fail',\n\t\t\tobserved: cleanText(evidence.aiRunOutcomeReason || evidence.reason, 1000)\n\t\t});\n\t}\n\treturn assertions;\n}\n\nfunction buildQaFromEvidence(evidence: Record<string, any> | undefined, now?: Date | string): AIQaRun {\n\treturn buildAIQaRun({\n\t\tinfraChecks: collectInfraChecks(evidence),\n\t\tcompile: collectCompileResult(evidence),\n\t\trouteProbes: collectRouteProbes(evidence),\n\t\tbusinessAssertions: collectBusinessAssertions(evidence),\n\t\tartifacts: collectArtifacts(evidence),\n\t\tnow\n\t});\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tif (value) {\n\t\tconst parsed = new Date(value);\n\t\tif (!Number.isNaN(parsed.getTime())) {\n\t\t\treturn parsed.toISOString();\n\t\t}\n\t}\n\treturn new Date().toISOString();\n}\n\nfunction normalizeMatchText(value: any): string {\n\treturn cleanText(value, 3000)\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/g, ' ')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim();\n}\n\nfunction importantTokens(value: any): Set<string> {\n\tconst stopWords = new Set([\n\t\t'the', 'and', 'that', 'with', 'from', 'after', 'before', 'when', 'then', 'this', 'must',\n\t\t'should', 'will', 'only', 'into', 'have', 'has', 'are', 'was', 'were', 'been'\n\t]);\n\treturn new Set(normalizeMatchText(value).split(' ')\n\t\t.filter((token) => token.length >= 4 && !stopWords.has(token)));\n}\n\nfunction businessAssertionPassed(assertion: AIQaBusinessAssertion): boolean {\n\treturn /^(pass|passed|success|ok|done)$/i.test(cleanText(assertion.status, 40));\n}\n\nfunction supportAssertionMatchesDiagnosisProof(assertion: AIQaBusinessAssertion, proofPlan: Record<string, any>): boolean {\n\tconst metadata = assertion.metadata || {};\n\tif (metadata.diagnosisProofPlanMatched === true || metadata.proofPlanMatched === true || metadata.supportDiagnosisProof === true) {\n\t\treturn true;\n\t}\n\tconst requiredBusinessAssertion = proofPlan.business_assertion || proofPlan.businessAssertion;\n\tconst proofParts = [\n\t\trequiredBusinessAssertion,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion || proofPlan.dataAssertion,\n\t\tproofPlan.artifact_expectation || proofPlan.artifactExpectation\n\t].map((part) => normalizeMatchText(part)).filter((part) => part.length >= 16);\n\tif (!proofParts.length) {\n\t\treturn true;\n\t}\n\tconst assertionText = normalizeMatchText([\n\t\tassertion.assertion,\n\t\tassertion.workflow,\n\t\tassertion.action,\n\t\tassertion.expected,\n\t\tassertion.observed,\n\t\tassertion.dataProof,\n\t\tassertion.message\n\t].filter(Boolean).join(' '));\n\tif (proofParts.some((part) => assertionText.includes(part))) {\n\t\treturn true;\n\t}\n\tconst proofTokens = importantTokens([\n\t\trequiredBusinessAssertion,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion || proofPlan.dataAssertion\n\t].filter(Boolean).join(' '));\n\tconst assertionTokens = importantTokens(assertionText);\n\tif (!proofTokens.size) {\n\t\treturn true;\n\t}\n\tlet overlap = 0;\n\tfor (const token of proofTokens) {\n\t\tif (assertionTokens.has(token)) {\n\t\t\toverlap += 1;\n\t\t}\n\t}\n\treturn overlap >= Math.min(4, Math.max(3, Math.ceil(proofTokens.size * 0.45)));\n}\n\nfunction supportDiagnosisProofGateResult(diagnosisGate: Record<string, any>, now?: Date | string): AIRunGateResult {\n\tconst proofPlan = diagnosisGate.proof_plan || diagnosisGate.proofPlan || {};\n\treturn {\n\t\tkey: 'support_diagnosis_business_proof',\n\t\tlabel: 'Diagnosis proof plan',\n\t\tstatus: 'blocked',\n\t\treason: 'Support business assertion did not map to the diagnosis proof_plan. Route proof or generic workflow proof cannot accept the ticket.',\n\t\tevidenceRefs: [],\n\t\trecordedAt: isoNow(now),\n\t\tmetadata: {\n\t\t\tissueClass: cleanText(diagnosisGate.issue_class || diagnosisGate.issueClass, 120),\n\t\t\trequiredBusinessAssertion: cleanText(proofPlan.business_assertion || proofPlan.businessAssertion, 1000),\n\t\t\trequiredAfter: cleanText(proofPlan.after, 1000),\n\t\t\trequiredDataAssertion: cleanText(proofPlan.data_assertion || proofPlan.dataAssertion, 1000)\n\t\t}\n\t};\n}\n\nfunction applySupportDiagnosisProofGate(qa: AIQaRun, diagnosisGate: Record<string, any>, now?: Date | string): AIQaRun {\n\tconst proofPlan = diagnosisGate.proof_plan || diagnosisGate.proofPlan || {};\n\tconst requiredBusinessAssertion = cleanText(proofPlan.business_assertion || proofPlan.businessAssertion, 1000);\n\tconst requiredAfter = cleanText(proofPlan.after, 1000);\n\tif (!Object.keys(proofPlan).length || (!requiredBusinessAssertion && !requiredAfter)) {\n\t\treturn qa;\n\t}\n\tconst passedAssertions = qa.businessAssertions.filter(businessAssertionPassed);\n\tif (!passedAssertions.length) {\n\t\treturn qa;\n\t}\n\tif (passedAssertions.some((assertion) => supportAssertionMatchesDiagnosisProof(assertion, proofPlan))) {\n\t\treturn qa;\n\t}\n\tconst gate = supportDiagnosisProofGateResult(diagnosisGate, now);\n\treturn {\n\t\t...qa,\n\t\toutcome: qa.routeProbes.some((probe) => /^(pass|passed|success|ok|done)$/i.test(cleanText(probe.status, 40)))\n\t\t\t? 'route_only_pass'\n\t\t\t: 'incomplete',\n\t\tgateResults: [\n\t\t\t...qa.gateResults.filter((existing) => !(existing.key === 'qa_business_assertion' && existing.status === 'pass')),\n\t\t\tgate\n\t\t]\n\t};\n}\n\nfunction evidenceObject(...values: any[]): Record<string, any> {\n\tfor (const value of values) {\n\t\tif (value && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn {};\n}\n\nexport function buildSupportAIRunFromEvidence(input: SupportAIRunAdapterInput): AIRun {\n\tconst ticket = input.ticket || {};\n\tconst job = input.job || {};\n\tconst evidence = evidenceObject(input.qaEvidence, job.qaEvidence, job.qa_evidence, ticket.qaEvidence, ticket.qa_evidence);\n\tconst events: AIRunEvent[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'ticketId', ticket._id || ticket.id || job.ticketId || job.supportTicketId);\n\taddSourceId(sourceIds, 'ticketNumber', ticket.ticketNumber || ticket.number || job.ticketNumber);\n\taddSourceId(sourceIds, 'jobId', job._id || job.id || job.jobId);\n\taddSourceId(sourceIds, 'buildPlanId', job.buildPlanId || ticket.buildPlanId);\n\n\tfor (const event of asArray<Record<string, any>>(input.taskEvents)) {\n\t\tpushEvent(events, {\n\t\t\ttype: event.type === 'human_intervention' ? 'human_intervention' : 'log',\n\t\t\tcategory: cleanText(event.category || event.phase || event.type, 160),\n\t\t\tmessage: cleanText(event.message || event.summary || event.text || event.title, 1800),\n\t\t\trecordedAt: eventDate(event),\n\t\t\tmetadata: {\n\t\t\t\tstatus: event.status,\n\t\t\t\tphase: event.phase,\n\t\t\t\ttaskId: event.taskId || event._id || event.id\n\t\t\t}\n\t\t});\n\t}\n\tfor (const aiJob of asArray<Record<string, any>>(input.aiJobs)) {\n\t\tpushEvent(events, {\n\t\t\ttype: aiJob.model ? 'model_call' : 'log',\n\t\t\tcategory: cleanText(aiJob.category || aiJob.phase || aiJob.runner, 160),\n\t\t\tmessage: cleanText(aiJob.summary || aiJob.promptSummary || aiJob.status || aiJob.phase, 1800),\n\t\t\trecordedAt: eventDate(aiJob),\n\t\t\tmetadata: {\n\t\t\t\tid: aiJob._id || aiJob.id,\n\t\t\t\tmodel: aiJob.model,\n\t\t\t\tstatus: aiJob.status,\n\t\t\t\tphase: aiJob.phase\n\t\t\t}\n\t\t});\n\t}\n\tcollectCommitEvents(asArray<Record<string, any>>(input.commits), events);\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\n\tconst diagnosisGate = evidenceObject(\n\t\tjob.supportV5DiagnosisGate,\n\t\tjob.support_v5_diagnosis_gate,\n\t\tjob.diagnosisGate,\n\t\tticket.supportV5DiagnosisGate,\n\t\tticket.diagnosisGate,\n\t\tevidence.diagnosisGate,\n\t\tevidence.supportV5DiagnosisGate\n\t);\n\tconst qa = applySupportDiagnosisProofGate(buildQaFromEvidence(evidence, input.now), diagnosisGate, input.now);\n\tconst diagnosisOwnerFiles = asArray<string>(diagnosisGate.owner_files || diagnosisGate.ownerFiles);\n\tconst diagnosisIssueClass = cleanText(diagnosisGate.issue_class || diagnosisGate.issueClass, 120);\n\tif (Object.keys(diagnosisGate).length) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'log',\n\t\t\tcategory: 'diagnosis_gate',\n\t\t\tmessage: cleanText(diagnosisGate.accepted_hypothesis?.statement || diagnosisGate.acceptedHypothesis?.statement || diagnosisGate.summary || 'Support diagnosis gate recorded.', 1800),\n\t\t\tmetadata: {\n\t\t\t\tstatus: diagnosisGate.status,\n\t\t\t\tissueClass: diagnosisIssueClass,\n\t\t\t\townerFiles: diagnosisOwnerFiles\n\t\t\t}\n\t\t});\n\t}\n\treturn buildAIRun({\n\t\tsource: 'support_ticket',\n\t\tsourceIds,\n\t\ttitle: firstText(ticket, ['title', 'subject', 'summary']) || firstText(job, ['title', 'summary']),\n\t\tstatus: firstText(job, ['status', 'state']) || firstText(ticket, ['status', 'state']),\n\t\tphase: firstText(job, ['phase', 'runnerPhase']),\n\t\tstartedAt: dateValue(job, ['startedAt', 'createdAt']) || dateValue(ticket, ['createdAt']),\n\t\tcompletedAt: dateValue(job, ['completedAt', 'finishedAt', 'updatedAt']),\n\t\tevents,\n\t\tqa,\n\t\tcost,\n\t\tscorecardPassed: evidence.scorecardPassed === true || evidence.scorecardStatus === 'pass',\n\t\tdeployStatus: evidence.deployStatus,\n\t\tpublishStatus: evidence.publishStatus,\n\t\tsampleDataStatus: evidence.sampleDataStatus,\n\t\tmanualHandoff: evidence.manualHandoff === true || job.manualHandoff === true,\n\t\tstopped: evidence.stopped === true || job.stopped === true,\n\t\trejected: evidence.rejected === true,\n\t\texplicitAccepted: evidence.explicitAccepted === true || ticket.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${job.status || ''} ${ticket.status || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tversionCount: asArray(input.versions).length,\n\t\t\tbuildPlanCount: asArray(input.buildPlans).length,\n\t\t\tdiagnosis: Object.keys(diagnosisGate).length ? {\n\t\t\t\tstatus: cleanText(diagnosisGate.status, 80),\n\t\t\t\tissueClass: diagnosisIssueClass,\n\t\t\t\townerFiles: diagnosisOwnerFiles,\n\t\t\t\tacceptedHypothesis: cleanText(diagnosisGate.accepted_hypothesis?.statement || diagnosisGate.acceptedHypothesis?.statement, 1000),\n\t\t\t\tproofPlan: diagnosisGate.proof_plan || diagnosisGate.proofPlan\n\t\t\t} : undefined\n\t\t}\n\t});\n}\n\nexport function buildAICoderAIRunFromEvidence(input: AICoderAIRunAdapterInput): AIRun {\n\tconst app = input.app || {};\n\tconst job = input.job || {};\n\tconst evidence = evidenceObject(input.qaEvidence, job.qaEvidence, job.qa_evidence, app.qaEvidence, app.qa_evidence);\n\tconst events: AIRunEvent[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'appId', app._id || app.id || job.appId || job.aicoderAppId);\n\taddSourceId(sourceIds, 'jobId', job._id || job.id || job.jobId);\n\taddSourceId(sourceIds, 'domain', app.domain || app.customDomain || job.domain);\n\n\tfor (const log of asArray<Record<string, any>>(input.logs)) {\n\t\tpushEvent(events, {\n\t\t\ttype: log.type === 'scorecard' ? 'scorecard' : 'log',\n\t\t\tcategory: cleanText(log.category || log.phase || log.level, 160),\n\t\t\tmessage: cleanText(log.message || log.summary || log.text || log.title, 1800),\n\t\t\tartifactPaths: asArray<string>(log.artifactPaths || log.artifacts),\n\t\t\trecordedAt: eventDate(log),\n\t\t\tmetadata: {\n\t\t\t\tstatus: log.status,\n\t\t\t\tlevel: log.level,\n\t\t\t\tscore: log.score\n\t\t\t}\n\t\t});\n\t}\n\tcollectCommitEvents(asArray<Record<string, any>>(input.commits), events);\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\tconst qa = buildQaFromEvidence(evidence, input.now);\n\tconst scorecardPassed = evidence.scorecardPassed === true\n\t\t|| evidence.scorecardStatus === 'pass'\n\t\t|| (Number(evidence.score ?? evidence.qualityScore ?? 0) >= Number(evidence.scoreThreshold ?? job.scoreThreshold ?? 90));\n\n\treturn buildAIRun({\n\t\tsource: 'aicoder_app',\n\t\tsourceIds,\n\t\ttitle: firstText(app, ['name', 'title']) || firstText(job, ['appName', 'title', 'goal']),\n\t\tstatus: firstText(job, ['status', 'state']) || firstText(app, ['status', 'state']),\n\t\tphase: firstText(job, ['phase', 'runnerPhase']),\n\t\tstartedAt: dateValue(job, ['startedAt', 'createdAt']) || dateValue(app, ['createdAt']),\n\t\tcompletedAt: dateValue(job, ['completedAt', 'finishedAt', 'updatedAt']),\n\t\tevents,\n\t\tqa,\n\t\tcost,\n\t\tscorecardPassed,\n\t\tdeployStatus: evidence.deployStatus || statusFromBoolean(evidence.deployReady),\n\t\tpublishStatus: evidence.publishStatus || evidence.pullRequestStatus,\n\t\tsampleDataStatus: evidence.sampleDataStatus || statusFromBoolean(evidence.sampleDataReady ?? evidence.hasSampleData),\n\t\tmanualHandoff: evidence.manualHandoff === true || job.manualHandoff === true,\n\t\tstopped: evidence.stopped === true || job.stopped === true,\n\t\trejected: evidence.rejected === true,\n\t\texplicitAccepted: evidence.explicitAccepted === true || app.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${job.status || ''} ${job.phase || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tdomain: app.domain || app.customDomain || job.domain,\n\t\t\twowScore: evidence.wowScore ?? job.wowScore,\n\t\t\tscore: evidence.score ?? evidence.qualityScore\n\t\t}\n\t});\n}\n\nexport function buildAssistantAIRunFromEvidence(input: AssistantAIRunAdapterInput): AIRun {\n\tconst conversation = input.conversation || {};\n\tconst events: AIRunEvent[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'conversationId', conversation._id || conversation.id || conversation.conversationId);\n\taddSourceId(sourceIds, 'userId', conversation.userId || conversation.ownerId);\n\n\tfor (const message of asArray<Record<string, any>>(input.messages)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'assistant_message',\n\t\t\tcategory: cleanText(message.role || message.authorRole || message.type, 160),\n\t\t\tmessage: cleanText(message.content || message.text || message.message || message.summary, 1800),\n\t\t\trecordedAt: eventDate(message),\n\t\t\tmetadata: {\n\t\t\t\tid: message._id || message.id,\n\t\t\t\trole: message.role,\n\t\t\t\tmodel: message.model\n\t\t\t}\n\t\t});\n\t}\n\tfor (const report of asArray<Record<string, any>>(input.issueReports)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'human_intervention',\n\t\t\tcategory: cleanText(report.category || report.status || 'issue_report', 160),\n\t\t\tmessage: cleanText(report.summary || report.description || report.message || report.title, 1800),\n\t\t\trecordedAt: eventDate(report),\n\t\t\tmetadata: {\n\t\t\t\tid: report._id || report.id,\n\t\t\t\tstatus: report.status,\n\t\t\t\tseverity: report.severity\n\t\t\t}\n\t\t});\n\t}\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\tconst correctnessEvidence = {\n\t\tbusinessAssertions: asArray<Record<string, any>>(input.correctnessChecks).map((check) => ({\n\t\t\tassertion: check.assertion || check.name || check.case || 'assistant correctness check',\n\t\t\tstatus: check.status || statusFromBoolean(check.passed),\n\t\t\texpected: check.expected,\n\t\t\tobserved: check.observed || check.actual,\n\t\t\tdataProof: check.dataProof || check.proof,\n\t\t\tartifactPaths: check.artifactPaths,\n\t\t\tmessage: check.message || check.reason,\n\t\t\tmetadata: check.metadata,\n\t\t\trecordedAt: eventDate(check)\n\t\t}))\n\t};\n\tconst qa = buildQaFromEvidence(correctnessEvidence, input.now);\n\tconst failedReports = asArray<Record<string, any>>(input.issueReports)\n\t\t.filter((report) => /open|new|fail|bug|wrong|incorrect|error/i.test(`${report.status || ''} ${report.category || ''} ${report.summary || ''}`));\n\n\treturn buildAIRun({\n\t\tsource: 'ai_assistant',\n\t\tsourceIds,\n\t\ttitle: firstText(conversation, ['title', 'subject', 'summary']) || 'AI assistant conversation',\n\t\tstatus: firstText(conversation, ['status', 'state']),\n\t\tphase: firstText(conversation, ['phase']),\n\t\tstartedAt: dateValue(conversation, ['startedAt', 'createdAt']),\n\t\tcompletedAt: dateValue(conversation, ['completedAt', 'closedAt', 'updatedAt']),\n\t\tevents,\n\t\tqa,\n\t\tcost,\n\t\trejected: failedReports.length > 0 || conversation.rejected === true,\n\t\tmanualHandoff: conversation.manualHandoff === true,\n\t\tstopped: conversation.stopped === true,\n\t\texplicitAccepted: conversation.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${conversation.status || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tissueReportCount: asArray(input.issueReports).length,\n\t\t\tcorrectnessCheckCount: asArray(input.correctnessChecks).length\n\t\t}\n\t});\n}\n"]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { AIRun, AIRunCost } from './ai-run-evidence';
|
|
2
|
+
import { buildAIRunTrainingExampleFromRun } from './ai-run-evidence-eval';
|
|
3
|
+
export interface AIRunTimelineItem {
|
|
4
|
+
time?: string;
|
|
5
|
+
type: string;
|
|
6
|
+
label: string;
|
|
7
|
+
status?: string;
|
|
8
|
+
message?: string;
|
|
9
|
+
evidenceRefs: string[];
|
|
10
|
+
metadata?: Record<string, any>;
|
|
11
|
+
}
|
|
12
|
+
export interface AIRunQaHealth {
|
|
13
|
+
outcome?: string;
|
|
14
|
+
infra: {
|
|
15
|
+
pass: number;
|
|
16
|
+
fail: number;
|
|
17
|
+
blocked: number;
|
|
18
|
+
warn: number;
|
|
19
|
+
unknown: number;
|
|
20
|
+
};
|
|
21
|
+
compile?: {
|
|
22
|
+
status?: string;
|
|
23
|
+
stale?: boolean;
|
|
24
|
+
artifactPath?: string;
|
|
25
|
+
message?: string;
|
|
26
|
+
};
|
|
27
|
+
route: {
|
|
28
|
+
pass: number;
|
|
29
|
+
fail: number;
|
|
30
|
+
shellOnly: number;
|
|
31
|
+
};
|
|
32
|
+
business: {
|
|
33
|
+
pass: number;
|
|
34
|
+
fail: number;
|
|
35
|
+
blocked: number;
|
|
36
|
+
missing: boolean;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export interface AIRunCostPanel {
|
|
40
|
+
totalTokens: number;
|
|
41
|
+
estimatedUsd: number;
|
|
42
|
+
models: string[];
|
|
43
|
+
categories: Array<{
|
|
44
|
+
category: string;
|
|
45
|
+
totalTokens: number;
|
|
46
|
+
estimatedUsd: number;
|
|
47
|
+
count: number;
|
|
48
|
+
}>;
|
|
49
|
+
sources?: Array<{
|
|
50
|
+
source: string;
|
|
51
|
+
totalTokens: number;
|
|
52
|
+
estimatedUsd: number;
|
|
53
|
+
count: number;
|
|
54
|
+
manualCount: number;
|
|
55
|
+
untrackedCount: number;
|
|
56
|
+
}>;
|
|
57
|
+
surfaces?: Array<{
|
|
58
|
+
surface: string;
|
|
59
|
+
totalTokens: number;
|
|
60
|
+
estimatedUsd: number;
|
|
61
|
+
count: number;
|
|
62
|
+
}>;
|
|
63
|
+
manualEstimatedUsd?: number;
|
|
64
|
+
untrackedEstimatedUsd?: number;
|
|
65
|
+
untrackedWarnings?: string[];
|
|
66
|
+
}
|
|
67
|
+
export interface AIRunOperatorView {
|
|
68
|
+
runId?: string;
|
|
69
|
+
source: string;
|
|
70
|
+
title?: string;
|
|
71
|
+
outcome: string;
|
|
72
|
+
failureClass: string;
|
|
73
|
+
nextAction?: string;
|
|
74
|
+
warnings: string[];
|
|
75
|
+
timeline: AIRunTimelineItem[];
|
|
76
|
+
qaHealth: AIRunQaHealth;
|
|
77
|
+
costPanel: AIRunCostPanel;
|
|
78
|
+
trainingExample: ReturnType<typeof buildAIRunTrainingExampleFromRun>;
|
|
79
|
+
}
|
|
80
|
+
export declare function buildAIRunTimeline(run: AIRun): AIRunTimelineItem[];
|
|
81
|
+
export declare function buildAIRunQaHealth(run: AIRun): AIRunQaHealth;
|
|
82
|
+
export declare function buildAIRunCostPanel(cost?: AIRunCost): AIRunCostPanel;
|
|
83
|
+
export declare function buildAIRunFalsePassWarnings(run: AIRun): string[];
|
|
84
|
+
export declare function buildAIRunOperatorView(run: AIRun): AIRunOperatorView;
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __values = (this && this.__values) || function(o) {
|
|
3
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
+
if (m) return m.call(o);
|
|
5
|
+
if (o && typeof o.length === "number") return {
|
|
6
|
+
next: function () {
|
|
7
|
+
if (o && i >= o.length) o = void 0;
|
|
8
|
+
return { value: o && o[i++], done: !o };
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
+
};
|
|
13
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
30
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
31
|
+
if (ar || !(i in from)) {
|
|
32
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
33
|
+
ar[i] = from[i];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.buildAIRunTimeline = buildAIRunTimeline;
|
|
40
|
+
exports.buildAIRunQaHealth = buildAIRunQaHealth;
|
|
41
|
+
exports.buildAIRunCostPanel = buildAIRunCostPanel;
|
|
42
|
+
exports.buildAIRunFalsePassWarnings = buildAIRunFalsePassWarnings;
|
|
43
|
+
exports.buildAIRunOperatorView = buildAIRunOperatorView;
|
|
44
|
+
var ai_run_evidence_eval_1 = require("./ai-run-evidence-eval");
|
|
45
|
+
function cleanText(value, max) {
|
|
46
|
+
if (max === void 0) { max = 1000; }
|
|
47
|
+
return String(value || '').replace(/\s+/g, ' ').trim().slice(0, max);
|
|
48
|
+
}
|
|
49
|
+
function toIso(value) {
|
|
50
|
+
if (value instanceof Date && Number.isFinite(value.getTime())) {
|
|
51
|
+
return value.toISOString();
|
|
52
|
+
}
|
|
53
|
+
if (value) {
|
|
54
|
+
var parsed = new Date(value);
|
|
55
|
+
if (Number.isFinite(parsed.getTime())) {
|
|
56
|
+
return parsed.toISOString();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
function countStatuses(values) {
|
|
62
|
+
var e_1, _a;
|
|
63
|
+
var result = {
|
|
64
|
+
pass: 0,
|
|
65
|
+
fail: 0,
|
|
66
|
+
blocked: 0,
|
|
67
|
+
warn: 0,
|
|
68
|
+
unknown: 0
|
|
69
|
+
};
|
|
70
|
+
try {
|
|
71
|
+
for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {
|
|
72
|
+
var value = values_1_1.value;
|
|
73
|
+
var status_1 = cleanText(value.status, 40).toLowerCase();
|
|
74
|
+
if (status_1 === 'pass' || status_1 === 'fail' || status_1 === 'blocked' || status_1 === 'warn') {
|
|
75
|
+
result[status_1] += 1;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
result.unknown += 1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
83
|
+
finally {
|
|
84
|
+
try {
|
|
85
|
+
if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);
|
|
86
|
+
}
|
|
87
|
+
finally { if (e_1) throw e_1.error; }
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
function sortTimeline(items) {
|
|
92
|
+
return __spreadArray([], __read(items), false).sort(function (left, right) {
|
|
93
|
+
var leftTime = left.time ? new Date(left.time).getTime() : 0;
|
|
94
|
+
var rightTime = right.time ? new Date(right.time).getTime() : 0;
|
|
95
|
+
return leftTime - rightTime;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function buildAIRunTimeline(run) {
|
|
99
|
+
var e_2, _a, e_3, _b, e_4, _c, e_5, _d, e_6, _e;
|
|
100
|
+
var _f, _g, _h, _j;
|
|
101
|
+
var items = [];
|
|
102
|
+
try {
|
|
103
|
+
for (var _k = __values(run.events || []), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
104
|
+
var event_1 = _l.value;
|
|
105
|
+
items.push({
|
|
106
|
+
time: toIso(event_1.recordedAt),
|
|
107
|
+
type: event_1.type,
|
|
108
|
+
label: event_1.category || event_1.type,
|
|
109
|
+
message: cleanText(event_1.message, 2000),
|
|
110
|
+
evidenceRefs: Array.isArray(event_1.artifactPaths) ? event_1.artifactPaths : [],
|
|
111
|
+
metadata: event_1.metadata
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
116
|
+
finally {
|
|
117
|
+
try {
|
|
118
|
+
if (_l && !_l.done && (_a = _k.return)) _a.call(_k);
|
|
119
|
+
}
|
|
120
|
+
finally { if (e_2) throw e_2.error; }
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
for (var _m = __values(run.gates || []), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
124
|
+
var gate = _o.value;
|
|
125
|
+
items.push({
|
|
126
|
+
time: toIso(gate.recordedAt),
|
|
127
|
+
type: 'gate',
|
|
128
|
+
label: gate.label || gate.key,
|
|
129
|
+
status: gate.status,
|
|
130
|
+
message: gate.reason,
|
|
131
|
+
evidenceRefs: gate.evidenceRefs || [],
|
|
132
|
+
metadata: gate.metadata
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
137
|
+
finally {
|
|
138
|
+
try {
|
|
139
|
+
if (_o && !_o.done && (_b = _m.return)) _b.call(_m);
|
|
140
|
+
}
|
|
141
|
+
finally { if (e_3) throw e_3.error; }
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
for (var _p = __values(((_f = run.qa) === null || _f === void 0 ? void 0 : _f.infraChecks) || []), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
145
|
+
var check = _q.value;
|
|
146
|
+
items.push({
|
|
147
|
+
time: toIso(check.checkedAt),
|
|
148
|
+
type: 'qa_infra',
|
|
149
|
+
label: check.name,
|
|
150
|
+
status: check.status,
|
|
151
|
+
message: check.message,
|
|
152
|
+
evidenceRefs: check.path ? [check.path] : [],
|
|
153
|
+
metadata: check.metadata
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
158
|
+
finally {
|
|
159
|
+
try {
|
|
160
|
+
if (_q && !_q.done && (_c = _p.return)) _c.call(_p);
|
|
161
|
+
}
|
|
162
|
+
finally { if (e_4) throw e_4.error; }
|
|
163
|
+
}
|
|
164
|
+
if ((_g = run.qa) === null || _g === void 0 ? void 0 : _g.compile) {
|
|
165
|
+
items.push({
|
|
166
|
+
time: toIso(run.qa.compile.recordedAt),
|
|
167
|
+
type: 'qa_compile',
|
|
168
|
+
label: run.qa.compile.command || 'Compile/build',
|
|
169
|
+
status: run.qa.compile.status,
|
|
170
|
+
message: run.qa.compile.message,
|
|
171
|
+
evidenceRefs: run.qa.compile.artifactPath ? [run.qa.compile.artifactPath] : [],
|
|
172
|
+
metadata: run.qa.compile.metadata
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
try {
|
|
176
|
+
for (var _r = __values(((_h = run.qa) === null || _h === void 0 ? void 0 : _h.routeProbes) || []), _s = _r.next(); !_s.done; _s = _r.next()) {
|
|
177
|
+
var probe = _s.value;
|
|
178
|
+
items.push({
|
|
179
|
+
time: toIso(probe.recordedAt),
|
|
180
|
+
type: 'qa_route_probe',
|
|
181
|
+
label: probe.route,
|
|
182
|
+
status: probe.status,
|
|
183
|
+
message: probe.message || probe.caption,
|
|
184
|
+
evidenceRefs: probe.screenshot ? [probe.screenshot] : [],
|
|
185
|
+
metadata: probe.metadata
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
190
|
+
finally {
|
|
191
|
+
try {
|
|
192
|
+
if (_s && !_s.done && (_d = _r.return)) _d.call(_r);
|
|
193
|
+
}
|
|
194
|
+
finally { if (e_5) throw e_5.error; }
|
|
195
|
+
}
|
|
196
|
+
try {
|
|
197
|
+
for (var _t = __values(((_j = run.qa) === null || _j === void 0 ? void 0 : _j.businessAssertions) || []), _u = _t.next(); !_u.done; _u = _t.next()) {
|
|
198
|
+
var assertion = _u.value;
|
|
199
|
+
items.push({
|
|
200
|
+
time: toIso(assertion.recordedAt),
|
|
201
|
+
type: 'qa_business_assertion',
|
|
202
|
+
label: assertion.assertion,
|
|
203
|
+
status: assertion.status,
|
|
204
|
+
message: assertion.observed || assertion.dataProof || assertion.message,
|
|
205
|
+
evidenceRefs: assertion.artifactPaths || [],
|
|
206
|
+
metadata: assertion.metadata
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
211
|
+
finally {
|
|
212
|
+
try {
|
|
213
|
+
if (_u && !_u.done && (_e = _t.return)) _e.call(_t);
|
|
214
|
+
}
|
|
215
|
+
finally { if (e_6) throw e_6.error; }
|
|
216
|
+
}
|
|
217
|
+
return sortTimeline(items);
|
|
218
|
+
}
|
|
219
|
+
function buildAIRunQaHealth(run) {
|
|
220
|
+
var _a, _b, _c, _d, _e;
|
|
221
|
+
var infraCounts = countStatuses(((_a = run.qa) === null || _a === void 0 ? void 0 : _a.infraChecks) || []);
|
|
222
|
+
var routeProbes = ((_b = run.qa) === null || _b === void 0 ? void 0 : _b.routeProbes) || [];
|
|
223
|
+
var routePass = routeProbes.filter(function (probe) { return probe.status === 'pass' && probe.shellOnly !== true; }).length;
|
|
224
|
+
var routeFail = routeProbes.filter(function (probe) { return probe.status === 'fail' || probe.status === 'blocked'; }).length;
|
|
225
|
+
var shellOnly = routeProbes.filter(function (probe) { return probe.shellOnly === true; }).length;
|
|
226
|
+
var assertions = ((_c = run.qa) === null || _c === void 0 ? void 0 : _c.businessAssertions) || [];
|
|
227
|
+
var businessPass = assertions.filter(function (assertion) { return assertion.status === 'pass'; }).length;
|
|
228
|
+
var businessFail = assertions.filter(function (assertion) { return assertion.status === 'fail'; }).length;
|
|
229
|
+
var businessBlocked = assertions.filter(function (assertion) { return assertion.status === 'blocked'; }).length;
|
|
230
|
+
return {
|
|
231
|
+
outcome: (_d = run.qa) === null || _d === void 0 ? void 0 : _d.outcome,
|
|
232
|
+
infra: {
|
|
233
|
+
pass: infraCounts.pass,
|
|
234
|
+
fail: infraCounts.fail,
|
|
235
|
+
blocked: infraCounts.blocked,
|
|
236
|
+
warn: infraCounts.warn,
|
|
237
|
+
unknown: infraCounts.unknown
|
|
238
|
+
},
|
|
239
|
+
compile: ((_e = run.qa) === null || _e === void 0 ? void 0 : _e.compile) ? {
|
|
240
|
+
status: run.qa.compile.status,
|
|
241
|
+
stale: run.qa.compile.staleEvidence === true || run.qa.compile.status === 'stale',
|
|
242
|
+
artifactPath: run.qa.compile.artifactPath,
|
|
243
|
+
message: run.qa.compile.message
|
|
244
|
+
} : undefined,
|
|
245
|
+
route: {
|
|
246
|
+
pass: routePass,
|
|
247
|
+
fail: routeFail,
|
|
248
|
+
shellOnly: shellOnly
|
|
249
|
+
},
|
|
250
|
+
business: {
|
|
251
|
+
pass: businessPass,
|
|
252
|
+
fail: businessFail,
|
|
253
|
+
blocked: businessBlocked,
|
|
254
|
+
missing: assertions.length === 0
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function buildAIRunCostPanel(cost) {
|
|
259
|
+
var categories = Object.keys((cost === null || cost === void 0 ? void 0 : cost.categories) || {}).sort().map(function (category) {
|
|
260
|
+
var _a;
|
|
261
|
+
var entry = (_a = cost === null || cost === void 0 ? void 0 : cost.categories) === null || _a === void 0 ? void 0 : _a[category];
|
|
262
|
+
return {
|
|
263
|
+
category: category,
|
|
264
|
+
totalTokens: Number((entry === null || entry === void 0 ? void 0 : entry.totalTokens) || 0),
|
|
265
|
+
estimatedUsd: Number((entry === null || entry === void 0 ? void 0 : entry.estimatedUsd) || 0),
|
|
266
|
+
count: Number((entry === null || entry === void 0 ? void 0 : entry.count) || 0)
|
|
267
|
+
};
|
|
268
|
+
});
|
|
269
|
+
var sources = Object.keys((cost === null || cost === void 0 ? void 0 : cost.sources) || {}).sort().map(function (source) {
|
|
270
|
+
var _a;
|
|
271
|
+
var entry = (_a = cost === null || cost === void 0 ? void 0 : cost.sources) === null || _a === void 0 ? void 0 : _a[source];
|
|
272
|
+
return {
|
|
273
|
+
source: source,
|
|
274
|
+
totalTokens: Number((entry === null || entry === void 0 ? void 0 : entry.totalTokens) || 0),
|
|
275
|
+
estimatedUsd: Number((entry === null || entry === void 0 ? void 0 : entry.estimatedUsd) || 0),
|
|
276
|
+
count: Number((entry === null || entry === void 0 ? void 0 : entry.count) || 0),
|
|
277
|
+
manualCount: Number((entry === null || entry === void 0 ? void 0 : entry.manualCount) || 0),
|
|
278
|
+
untrackedCount: Number((entry === null || entry === void 0 ? void 0 : entry.untrackedCount) || 0)
|
|
279
|
+
};
|
|
280
|
+
});
|
|
281
|
+
var surfaces = Object.keys((cost === null || cost === void 0 ? void 0 : cost.surfaces) || {}).sort().map(function (surface) {
|
|
282
|
+
var _a;
|
|
283
|
+
var entry = (_a = cost === null || cost === void 0 ? void 0 : cost.surfaces) === null || _a === void 0 ? void 0 : _a[surface];
|
|
284
|
+
return {
|
|
285
|
+
surface: surface,
|
|
286
|
+
totalTokens: Number((entry === null || entry === void 0 ? void 0 : entry.totalTokens) || 0),
|
|
287
|
+
estimatedUsd: Number((entry === null || entry === void 0 ? void 0 : entry.estimatedUsd) || 0),
|
|
288
|
+
count: Number((entry === null || entry === void 0 ? void 0 : entry.count) || 0)
|
|
289
|
+
};
|
|
290
|
+
});
|
|
291
|
+
return {
|
|
292
|
+
totalTokens: Number((cost === null || cost === void 0 ? void 0 : cost.totalTokens) || 0),
|
|
293
|
+
estimatedUsd: Number((cost === null || cost === void 0 ? void 0 : cost.estimatedUsd) || 0),
|
|
294
|
+
models: Array.isArray(cost === null || cost === void 0 ? void 0 : cost.models) ? cost.models : [],
|
|
295
|
+
categories: categories,
|
|
296
|
+
sources: sources,
|
|
297
|
+
surfaces: surfaces,
|
|
298
|
+
manualEstimatedUsd: Number((cost === null || cost === void 0 ? void 0 : cost.manualEstimatedUsd) || 0),
|
|
299
|
+
untrackedEstimatedUsd: Number((cost === null || cost === void 0 ? void 0 : cost.untrackedEstimatedUsd) || 0),
|
|
300
|
+
untrackedWarnings: Array.isArray(cost === null || cost === void 0 ? void 0 : cost.untrackedWarnings) ? cost.untrackedWarnings : []
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
function buildAIRunFalsePassWarnings(run) {
|
|
304
|
+
var _a, _b, _c, _d;
|
|
305
|
+
var warnings = Array.isArray(run.warnings) ? __spreadArray([], __read(run.warnings), false) : [];
|
|
306
|
+
if (run.outcome === 'false_pass' && !warnings.includes('false_pass_outcome')) {
|
|
307
|
+
warnings.push('false_pass_outcome');
|
|
308
|
+
}
|
|
309
|
+
if ((((_a = run.qa) === null || _a === void 0 ? void 0 : _a.outcome) === 'route_only_pass' || ((_b = run.qa) === null || _b === void 0 ? void 0 : _b.outcome) === 'incomplete') && !warnings.includes('missing_business_assertion')) {
|
|
310
|
+
warnings.push('missing_business_assertion');
|
|
311
|
+
}
|
|
312
|
+
if (((_d = (_c = run.qa) === null || _c === void 0 ? void 0 : _c.routeProbes) === null || _d === void 0 ? void 0 : _d.some(function (probe) { return probe.shellOnly === true; })) && !warnings.includes('shell_only_route')) {
|
|
313
|
+
warnings.push('shell_only_route');
|
|
314
|
+
}
|
|
315
|
+
if (run.outcome === 'release_blocked' && !warnings.includes('release_blocked_after_scorecard')) {
|
|
316
|
+
warnings.push('release_blocked_after_scorecard');
|
|
317
|
+
}
|
|
318
|
+
return warnings;
|
|
319
|
+
}
|
|
320
|
+
function buildAIRunOperatorView(run) {
|
|
321
|
+
return {
|
|
322
|
+
runId: run.id || run._id,
|
|
323
|
+
source: run.source,
|
|
324
|
+
title: run.title,
|
|
325
|
+
outcome: run.outcome,
|
|
326
|
+
failureClass: (0, ai_run_evidence_eval_1.classifyAIRunFailureClass)(run),
|
|
327
|
+
nextAction: run.nextAction,
|
|
328
|
+
warnings: buildAIRunFalsePassWarnings(run),
|
|
329
|
+
timeline: buildAIRunTimeline(run),
|
|
330
|
+
qaHealth: buildAIRunQaHealth(run),
|
|
331
|
+
costPanel: buildAIRunCostPanel(run.cost),
|
|
332
|
+
trainingExample: (0, ai_run_evidence_eval_1.buildAIRunTrainingExampleFromRun)(run)
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
//# sourceMappingURL=ai-run-evidence-dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/ai-run-evidence-dashboard.ts"],"names":[],"mappings":"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","file":"ai-run-evidence-dashboard.js","sourcesContent":["import { AIRun, AIRunCost } from './ai-run-evidence';\nimport { buildAIRunTrainingExampleFromRun, classifyAIRunFailureClass } from './ai-run-evidence-eval';\n\nexport interface AIRunTimelineItem {\n\ttime?: string;\n\ttype: string;\n\tlabel: string;\n\tstatus?: string;\n\tmessage?: string;\n\tevidenceRefs: string[];\n\tmetadata?: Record<string, any>;\n}\n\nexport interface AIRunQaHealth {\n\toutcome?: string;\n\tinfra: {\n\t\tpass: number;\n\t\tfail: number;\n\t\tblocked: number;\n\t\twarn: number;\n\t\tunknown: number;\n\t};\n\tcompile?: {\n\t\tstatus?: string;\n\t\tstale?: boolean;\n\t\tartifactPath?: string;\n\t\tmessage?: string;\n\t};\n\troute: {\n\t\tpass: number;\n\t\tfail: number;\n\t\tshellOnly: number;\n\t};\n\tbusiness: {\n\t\tpass: number;\n\t\tfail: number;\n\t\tblocked: number;\n\t\tmissing: boolean;\n\t};\n}\n\nexport interface AIRunCostPanel {\n\ttotalTokens: number;\n\testimatedUsd: number;\n\tmodels: string[];\n\tcategories: Array<{\n\t\tcategory: string;\n\t\ttotalTokens: number;\n\t\testimatedUsd: number;\n\t\tcount: number;\n\t}>;\n\tsources?: Array<{\n\t\tsource: string;\n\t\ttotalTokens: number;\n\t\testimatedUsd: number;\n\t\tcount: number;\n\t\tmanualCount: number;\n\t\tuntrackedCount: number;\n\t}>;\n\tsurfaces?: Array<{\n\t\tsurface: string;\n\t\ttotalTokens: number;\n\t\testimatedUsd: number;\n\t\tcount: number;\n\t}>;\n\tmanualEstimatedUsd?: number;\n\tuntrackedEstimatedUsd?: number;\n\tuntrackedWarnings?: string[];\n}\n\nexport interface AIRunOperatorView {\n\trunId?: string;\n\tsource: string;\n\ttitle?: string;\n\toutcome: string;\n\tfailureClass: string;\n\tnextAction?: string;\n\twarnings: string[];\n\ttimeline: AIRunTimelineItem[];\n\tqaHealth: AIRunQaHealth;\n\tcostPanel: AIRunCostPanel;\n\ttrainingExample: ReturnType<typeof buildAIRunTrainingExampleFromRun>;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction toIso(value: any): string | undefined {\n\tif (value instanceof Date && Number.isFinite(value.getTime())) {\n\t\treturn value.toISOString();\n\t}\n\tif (value) {\n\t\tconst parsed = new Date(value);\n\t\tif (Number.isFinite(parsed.getTime())) {\n\t\t\treturn parsed.toISOString();\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction countStatuses(values: Array<{ status?: string }>): Record<string, number> {\n\tconst result: Record<string, number> = {\n\t\tpass: 0,\n\t\tfail: 0,\n\t\tblocked: 0,\n\t\twarn: 0,\n\t\tunknown: 0\n\t};\n\tfor (const value of values) {\n\t\tconst status = cleanText(value.status, 40).toLowerCase();\n\t\tif (status === 'pass' || status === 'fail' || status === 'blocked' || status === 'warn') {\n\t\t\tresult[status] += 1;\n\t\t}\n\t\telse {\n\t\t\tresult.unknown += 1;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction sortTimeline(items: AIRunTimelineItem[]): AIRunTimelineItem[] {\n\treturn [...items].sort((left, right) => {\n\t\tconst leftTime = left.time ? new Date(left.time).getTime() : 0;\n\t\tconst rightTime = right.time ? new Date(right.time).getTime() : 0;\n\t\treturn leftTime - rightTime;\n\t});\n}\n\nexport function buildAIRunTimeline(run: AIRun): AIRunTimelineItem[] {\n\tconst items: AIRunTimelineItem[] = [];\n\tfor (const event of run.events || []) {\n\t\titems.push({\n\t\t\ttime: toIso(event.recordedAt),\n\t\t\ttype: event.type,\n\t\t\tlabel: event.category || event.type,\n\t\t\tmessage: cleanText(event.message, 2000),\n\t\t\tevidenceRefs: Array.isArray(event.artifactPaths) ? event.artifactPaths : [],\n\t\t\tmetadata: event.metadata\n\t\t});\n\t}\n\tfor (const gate of run.gates || []) {\n\t\titems.push({\n\t\t\ttime: toIso(gate.recordedAt),\n\t\t\ttype: 'gate',\n\t\t\tlabel: gate.label || gate.key,\n\t\t\tstatus: gate.status,\n\t\t\tmessage: gate.reason,\n\t\t\tevidenceRefs: gate.evidenceRefs || [],\n\t\t\tmetadata: gate.metadata\n\t\t});\n\t}\n\tfor (const check of run.qa?.infraChecks || []) {\n\t\titems.push({\n\t\t\ttime: toIso(check.checkedAt),\n\t\t\ttype: 'qa_infra',\n\t\t\tlabel: check.name,\n\t\t\tstatus: check.status,\n\t\t\tmessage: check.message,\n\t\t\tevidenceRefs: check.path ? [check.path] : [],\n\t\t\tmetadata: check.metadata\n\t\t});\n\t}\n\tif (run.qa?.compile) {\n\t\titems.push({\n\t\t\ttime: toIso(run.qa.compile.recordedAt),\n\t\t\ttype: 'qa_compile',\n\t\t\tlabel: run.qa.compile.command || 'Compile/build',\n\t\t\tstatus: run.qa.compile.status,\n\t\t\tmessage: run.qa.compile.message,\n\t\t\tevidenceRefs: run.qa.compile.artifactPath ? [run.qa.compile.artifactPath] : [],\n\t\t\tmetadata: run.qa.compile.metadata\n\t\t});\n\t}\n\tfor (const probe of run.qa?.routeProbes || []) {\n\t\titems.push({\n\t\t\ttime: toIso(probe.recordedAt),\n\t\t\ttype: 'qa_route_probe',\n\t\t\tlabel: probe.route,\n\t\t\tstatus: probe.status,\n\t\t\tmessage: probe.message || probe.caption,\n\t\t\tevidenceRefs: probe.screenshot ? [probe.screenshot] : [],\n\t\t\tmetadata: probe.metadata\n\t\t});\n\t}\n\tfor (const assertion of run.qa?.businessAssertions || []) {\n\t\titems.push({\n\t\t\ttime: toIso(assertion.recordedAt),\n\t\t\ttype: 'qa_business_assertion',\n\t\t\tlabel: assertion.assertion,\n\t\t\tstatus: assertion.status,\n\t\t\tmessage: assertion.observed || assertion.dataProof || assertion.message,\n\t\t\tevidenceRefs: assertion.artifactPaths || [],\n\t\t\tmetadata: assertion.metadata\n\t\t});\n\t}\n\treturn sortTimeline(items);\n}\n\nexport function buildAIRunQaHealth(run: AIRun): AIRunQaHealth {\n\tconst infraCounts = countStatuses(run.qa?.infraChecks || []);\n\tconst routeProbes = run.qa?.routeProbes || [];\n\tconst routePass = routeProbes.filter((probe) => probe.status === 'pass' && probe.shellOnly !== true).length;\n\tconst routeFail = routeProbes.filter((probe) => probe.status === 'fail' || probe.status === 'blocked').length;\n\tconst shellOnly = routeProbes.filter((probe) => probe.shellOnly === true).length;\n\tconst assertions = run.qa?.businessAssertions || [];\n\tconst businessPass = assertions.filter((assertion) => assertion.status === 'pass').length;\n\tconst businessFail = assertions.filter((assertion) => assertion.status === 'fail').length;\n\tconst businessBlocked = assertions.filter((assertion) => assertion.status === 'blocked').length;\n\treturn {\n\t\toutcome: run.qa?.outcome,\n\t\tinfra: {\n\t\t\tpass: infraCounts.pass,\n\t\t\tfail: infraCounts.fail,\n\t\t\tblocked: infraCounts.blocked,\n\t\t\twarn: infraCounts.warn,\n\t\t\tunknown: infraCounts.unknown\n\t\t},\n\t\tcompile: run.qa?.compile ? {\n\t\t\tstatus: run.qa.compile.status,\n\t\t\tstale: run.qa.compile.staleEvidence === true || run.qa.compile.status === 'stale',\n\t\t\tartifactPath: run.qa.compile.artifactPath,\n\t\t\tmessage: run.qa.compile.message\n\t\t} : undefined,\n\t\troute: {\n\t\t\tpass: routePass,\n\t\t\tfail: routeFail,\n\t\t\tshellOnly\n\t\t},\n\t\tbusiness: {\n\t\t\tpass: businessPass,\n\t\t\tfail: businessFail,\n\t\t\tblocked: businessBlocked,\n\t\t\tmissing: assertions.length === 0\n\t\t}\n\t};\n}\n\nexport function buildAIRunCostPanel(cost?: AIRunCost): AIRunCostPanel {\n\tconst categories = Object.keys(cost?.categories || {}).sort().map((category) => {\n\t\tconst entry = cost?.categories?.[category];\n\t\treturn {\n\t\t\tcategory,\n\t\t\ttotalTokens: Number(entry?.totalTokens || 0),\n\t\t\testimatedUsd: Number(entry?.estimatedUsd || 0),\n\t\t\tcount: Number(entry?.count || 0)\n\t\t};\n\t});\n\tconst sources = Object.keys(cost?.sources || {}).sort().map((source) => {\n\t\tconst entry = cost?.sources?.[source];\n\t\treturn {\n\t\t\tsource,\n\t\t\ttotalTokens: Number(entry?.totalTokens || 0),\n\t\t\testimatedUsd: Number(entry?.estimatedUsd || 0),\n\t\t\tcount: Number(entry?.count || 0),\n\t\t\tmanualCount: Number(entry?.manualCount || 0),\n\t\t\tuntrackedCount: Number(entry?.untrackedCount || 0)\n\t\t};\n\t});\n\tconst surfaces = Object.keys(cost?.surfaces || {}).sort().map((surface) => {\n\t\tconst entry = cost?.surfaces?.[surface];\n\t\treturn {\n\t\t\tsurface,\n\t\t\ttotalTokens: Number(entry?.totalTokens || 0),\n\t\t\testimatedUsd: Number(entry?.estimatedUsd || 0),\n\t\t\tcount: Number(entry?.count || 0)\n\t\t};\n\t});\n\treturn {\n\t\ttotalTokens: Number(cost?.totalTokens || 0),\n\t\testimatedUsd: Number(cost?.estimatedUsd || 0),\n\t\tmodels: Array.isArray(cost?.models) ? cost.models : [],\n\t\tcategories,\n\t\tsources,\n\t\tsurfaces,\n\t\tmanualEstimatedUsd: Number(cost?.manualEstimatedUsd || 0),\n\t\tuntrackedEstimatedUsd: Number(cost?.untrackedEstimatedUsd || 0),\n\t\tuntrackedWarnings: Array.isArray(cost?.untrackedWarnings) ? cost.untrackedWarnings : []\n\t};\n}\n\nexport function buildAIRunFalsePassWarnings(run: AIRun): string[] {\n\tconst warnings = Array.isArray(run.warnings) ? [...run.warnings] : [];\n\tif (run.outcome === 'false_pass' && !warnings.includes('false_pass_outcome')) {\n\t\twarnings.push('false_pass_outcome');\n\t}\n\tif ((run.qa?.outcome === 'route_only_pass' || run.qa?.outcome === 'incomplete') && !warnings.includes('missing_business_assertion')) {\n\t\twarnings.push('missing_business_assertion');\n\t}\n\tif (run.qa?.routeProbes?.some((probe) => probe.shellOnly === true) && !warnings.includes('shell_only_route')) {\n\t\twarnings.push('shell_only_route');\n\t}\n\tif (run.outcome === 'release_blocked' && !warnings.includes('release_blocked_after_scorecard')) {\n\t\twarnings.push('release_blocked_after_scorecard');\n\t}\n\treturn warnings;\n}\n\nexport function buildAIRunOperatorView(run: AIRun): AIRunOperatorView {\n\treturn {\n\t\trunId: run.id || (run as any)._id,\n\t\tsource: run.source,\n\t\ttitle: run.title,\n\t\toutcome: run.outcome,\n\t\tfailureClass: classifyAIRunFailureClass(run),\n\t\tnextAction: run.nextAction,\n\t\twarnings: buildAIRunFalsePassWarnings(run),\n\t\ttimeline: buildAIRunTimeline(run),\n\t\tqaHealth: buildAIRunQaHealth(run),\n\t\tcostPanel: buildAIRunCostPanel(run.cost),\n\t\ttrainingExample: buildAIRunTrainingExampleFromRun(run)\n\t};\n}\n"]}
|