@resolveio/server-lib 22.3.220 → 22.3.221
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/.nodemon.json +5 -0
- package/.vscode/settings.json +21 -0
- package/AGENTS.md +195 -0
- package/README.md +22 -0
- package/build_package.sh +5 -0
- package/compileDTS.pl +64 -0
- package/docs/ai-assistant-nightly-eval.md +65 -0
- package/docs/ai-assistant-preflight-checklist.md +23 -0
- package/docs/ai-assistant-report-builder-bridge-playbook.md +115 -0
- package/eslint-plugin-custom/index.js +7 -0
- package/eslint-plugin-custom/rules/no-filter-zero-index.js +44 -0
- package/eslint.config.js +103 -0
- package/gulpfile.js +216 -0
- package/methodAndPublicationListGenerator.py +375 -0
- package/mongodbensurers.js +2 -0
- package/mongostop.js +3 -0
- package/package.json +1 -1
- package/scripts/cleanup-bypassed-callmethod-logs.js +616 -0
- package/settings.development.json +25 -0
- package/settings.development.redacted.json +25 -0
- package/src/.env +12 -0
- package/src/ai/assistant-core-heuristics.ts +379 -0
- package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +185 -0
- package/src/ai/resolveio-platform-intelligence-memory.ts +325 -0
- package/{ai/resolveio-platform-intelligence-types.d.ts → src/ai/resolveio-platform-intelligence-types.ts} +20 -15
- package/src/ai/resolveio-platform-intelligence.ts +462 -0
- package/src/client-server-app.ts +12 -0
- package/src/collections/ai-run.collection.ts +117 -0
- package/src/collections/ai-terminal-conversation.collection.ts +91 -0
- package/src/collections/ai-terminal-issue-report.collection.ts +99 -0
- package/src/collections/ai-terminal-message.collection.ts +77 -0
- package/src/collections/app-setting.collection.ts +104 -0
- package/src/collections/app-status.collection.ts +58 -0
- package/src/collections/communication-metric.collection.ts +84 -0
- package/src/collections/counter.collection.ts +56 -0
- package/src/collections/cron-job-history.collection.ts +94 -0
- package/src/collections/cron-job.collection.ts +92 -0
- package/src/collections/customer-notification.collection.ts +131 -0
- package/src/collections/customer-portal-password.collection.ts +76 -0
- package/src/collections/email-history.collection.ts +134 -0
- package/src/collections/email-verified.collection.ts +62 -0
- package/src/collections/file.collection.ts +74 -0
- package/src/collections/flag-update.collection.ts +57 -0
- package/src/collections/flag.collection.ts +57 -0
- package/src/collections/log-method-latency.collection.ts +77 -0
- package/src/collections/log-subscription.collection.ts +80 -0
- package/src/collections/log.collection.ts +93 -0
- package/src/collections/logged-in-users.collection.ts +67 -0
- package/src/collections/monitor-cpu.collection.ts +65 -0
- package/src/collections/monitor-function.collection.ts +74 -0
- package/src/collections/monitor-memory.collection.ts +77 -0
- package/src/collections/monitor-mongo.collection.ts +71 -0
- package/src/collections/notification.collection.ts +57 -0
- package/src/collections/openai-usage-ledger.collection.ts +131 -0
- package/src/collections/report-builder-dashboard-builder.collection.ts +109 -0
- package/src/collections/report-builder-library.collection.ts +89 -0
- package/src/collections/report-builder-report.collection.ts +184 -0
- package/src/collections/user-group.collection.ts +89 -0
- package/src/collections/user-guide.collection.ts +57 -0
- package/src/collections/user.collection.ts +181 -0
- package/src/cron/cron.ts +117 -0
- package/src/fixtures/cron-jobs.ts +95 -0
- package/src/fixtures/init.ts +35 -0
- package/src/http/auth.ts +818 -0
- package/src/http/health.ts +7 -0
- package/src/http/home.ts +90 -0
- package/src/http/slow-query-publication.ts +49 -0
- package/src/index.ts +1 -0
- package/src/managers/ai-assistant-codex-manager.manager.ts +1131 -0
- package/src/managers/ai-run-evidence.manager.ts +264 -0
- package/src/managers/communication-metric.manager.ts +82 -0
- package/src/managers/cron.manager.ts +333 -0
- package/src/managers/customer-notification-content.manager.ts +236 -0
- package/src/managers/diagnostic-manager-bootstrap.ts +165 -0
- package/src/managers/error-auto-fix.manager.ts +2767 -0
- package/src/managers/local-log.manager.ts +113 -0
- package/src/managers/method.manager.ts +1857 -0
- package/src/managers/mongo.manager.ts +4575 -0
- package/src/managers/monitor.manager.ts +507 -0
- package/src/managers/openai-usage-ledger.manager.ts +112 -0
- package/src/managers/slow-query-verifier.manager.ts +3590 -0
- package/src/managers/slow-query.manager.ts +519 -0
- package/src/managers/subscription.manager.ts +3128 -0
- package/src/managers/websocket.manager.ts +746 -0
- package/src/managers/worker-dispatcher.manager.ts +1360 -0
- package/src/managers/worker-server.manager.ts +536 -0
- package/src/methods/accounts.ts +532 -0
- package/src/methods/ai-terminal.ts +29070 -0
- package/src/methods/app-settings.ts +114 -0
- package/src/methods/aws.ts +649 -0
- package/src/methods/collections.ts +641 -0
- package/src/methods/counters.ts +69 -0
- package/src/methods/cron-jobs.ts +2614 -0
- package/src/methods/customer-notifications.ts +458 -0
- package/src/methods/diagnostics.ts +616 -0
- package/src/methods/flag-updates.ts +7 -0
- package/src/methods/flags.ts +7 -0
- package/src/methods/logs.ts +657 -0
- package/src/methods/mongo-explorer.ts +1880 -0
- package/src/methods/monitor.ts +540 -0
- package/src/methods/pdf.ts +1236 -0
- package/src/methods/publications.ts +129 -0
- package/src/methods/report-builder.ts +3300 -0
- package/src/methods/support.ts +335 -0
- package/src/models/ai-run.model.ts +27 -0
- package/src/models/ai-terminal-conversation.model.ts +19 -0
- package/src/models/ai-terminal-issue-report.model.ts +21 -0
- package/src/models/ai-terminal-message.model.ts +24 -0
- package/src/models/app-setting.model.ts +17 -0
- package/{models/app-status.model.d.ts → src/models/app-status.model.ts} +3 -2
- package/{models/billing-logged-in-users.model.d.ts → src/models/billing-logged-in-users.model.ts} +5 -4
- package/src/models/collection-document.model.ts +24 -0
- package/src/models/communication-metric.model.ts +23 -0
- package/{models/counter.model.d.ts → src/models/counter.model.ts} +4 -3
- package/src/models/cron-job-history.model.ts +16 -0
- package/src/models/cron-job.model.ts +15 -0
- package/src/models/customer-notification.model.ts +28 -0
- package/src/models/customer-portal-password.model.ts +12 -0
- package/src/models/dialog.model.ts +25 -0
- package/{models/email-history.model.js → src/models/email-history.model.ts} +36 -4
- package/{models/email-verified.model.d.ts → src/models/email-verified.model.ts} +6 -5
- package/{models/file.model.d.ts → src/models/file.model.ts} +8 -7
- package/{models/flag-update.model.d.ts → src/models/flag-update.model.ts} +4 -3
- package/{models/flag.model.d.ts → src/models/flag.model.ts} +4 -3
- package/src/models/log-method-latency.model.ts +11 -0
- package/{models/log-subscription.model.d.ts → src/models/log-subscription.model.ts} +11 -9
- package/src/models/log.model.ts +19 -0
- package/{models/logged-in-users.model.d.ts → src/models/logged-in-users.model.ts} +6 -5
- package/{models/method-response.model.d.ts → src/models/method-response.model.ts} +7 -6
- package/src/models/method.model.ts +25 -0
- package/{models/monitor-cpu.model.d.ts → src/models/monitor-cpu.model.ts} +9 -7
- package/src/models/monitor-function.model.ts +16 -0
- package/src/models/monitor-memory.model.ts +17 -0
- package/src/models/monitor-mongo.model.ts +15 -0
- package/{models/notification.model.d.ts → src/models/notification.model.ts} +6 -4
- package/src/models/openai-usage-ledger.model.ts +56 -0
- package/src/models/pagination.model.ts +35 -0
- package/src/models/permission.model.ts +14 -0
- package/src/models/report-builder-dashboard-builder.model.ts +29 -0
- package/src/models/report-builder-library.model.ts +20 -0
- package/src/models/report-builder-report.model.ts +136 -0
- package/src/models/report-builder.model.ts +68 -0
- package/src/models/select-data-label.model.ts +9 -0
- package/src/models/server-message.model.ts +31 -0
- package/src/models/slow-query-report.model.ts +23 -0
- package/src/models/subscription.model.ts +73 -0
- package/src/models/support-ticket.model.ts +104 -0
- package/src/models/user-group.model.ts +24 -0
- package/{models/user-guide.model.d.ts → src/models/user-guide.model.ts} +5 -4
- package/src/models/user.model.ts +96 -0
- package/src/private/images/ResolveIO.png +0 -0
- package/src/publications/ai-terminal.ts +73 -0
- package/src/publications/app-settings.ts +25 -0
- package/src/publications/app-status.ts +13 -0
- package/src/publications/cron-jobs.ts +40 -0
- package/src/publications/customer-notifications.ts +101 -0
- package/src/publications/files.ts +33 -0
- package/src/publications/flags-update.ts +19 -0
- package/src/publications/flags.ts +19 -0
- package/src/publications/logs.ts +163 -0
- package/src/publications/notifications.ts +13 -0
- package/src/publications/report-builder-dashboard-builders.ts +39 -0
- package/src/publications/report-builder-libraries.ts +41 -0
- package/src/publications/report-builder-reports.ts +47 -0
- package/src/publications/super-admin.ts +13 -0
- package/src/publications/user-groups.ts +12 -0
- package/src/publications/user-guides.ts +12 -0
- package/src/resolveio-server-app.ts +617 -0
- package/src/server-app.ts +3354 -0
- package/src/services/codex-client.ts +1231 -0
- package/src/services/openai-client.ts +265 -0
- package/src/types/error-report.ts +26 -0
- package/src/types/js-tiktoken.d.ts +11 -0
- package/src/types/slow-query-report.ts +28 -0
- package/src/util/ai-qa-policy.ts +925 -0
- package/src/util/ai-run-evidence-adapters.ts +8347 -0
- package/src/util/ai-run-evidence-dashboard.ts +323 -0
- package/src/util/ai-run-evidence-eval.ts +1057 -0
- package/src/util/ai-run-evidence.ts +1430 -0
- package/src/util/ai-runner-artifacts.ts +586 -0
- package/src/util/ai-runner-manager-autopilot.ts +961 -0
- package/src/util/ai-runner-manager-policy.ts +5011 -0
- package/src/util/ai-runner-qa-auth.ts +838 -0
- package/src/util/ai-runner-qa-tools.ts +3536 -0
- package/src/util/aicoder-runner-v6.ts +3121 -0
- package/src/util/common.ts +649 -0
- package/src/util/customer-portal-password.ts +183 -0
- package/src/util/error-reporter.ts +332 -0
- package/src/util/error-tracking.ts +79 -0
- package/src/util/openai-usage-cost.ts +114 -0
- package/src/util/report-builder-unwinds.ts +180 -0
- package/src/util/runner-process-janitor.ts +219 -0
- package/src/util/schema-report-builder.ts +448 -0
- package/src/util/slow-query-reporter.ts +216 -0
- package/src/util/subscription-dependency-context.ts +1096 -0
- package/src/util/support-runner-v5.ts +10040 -0
- package/src/util/tokenizer.ts +38 -0
- package/src/workers/codex-runner.worker.ts +142 -0
- package/start_server.sh +5 -0
- package/tests/ai-assistant-corpus-build.ts +484 -0
- package/tests/ai-assistant-corpus-replay-e2e.ts +774 -0
- package/tests/ai-assistant-data-parity-e2e.ts +1989 -0
- package/tests/ai-assistant-eval-triage.ts +831 -0
- package/tests/ai-assistant-openai-e2e.ts +1061 -0
- package/tests/ai-assistant-openai-git-e2e.ts +155 -0
- package/tests/ai-assistant-preflight-matrix.ts +215 -0
- package/tests/ai-assistant-routing-eval.test.ts +585 -0
- package/tests/ai-assistant-snf-live-eval.ts +975 -0
- package/tests/ai-assistant-utils.test.ts +4834 -0
- package/tests/ai-manager-autopilot-snapshot.test.ts +193 -0
- package/tests/ai-manager-recovery-checkpoint.test.ts +1383 -0
- package/tests/ai-run-eval.test.ts +132 -0
- package/tests/ai-run-evidence.test.ts +3773 -0
- package/tests/ai-runner-contract.test.ts +515 -0
- package/tests/aicoder-runner-v6.test.ts +822 -0
- package/tests/error-reporter.test.ts +145 -0
- package/tests/method-publication-generator.test.ts +46 -0
- package/tests/report-builder-linking.test.ts +79 -0
- package/tests/resolveio-platform-intelligence.test.ts +352 -0
- package/tests/server-app-cron-owner.test.ts +127 -0
- package/tests/subscription-connect-race.test.ts +158 -0
- package/tests/subscription-dependency-context.test.ts +324 -0
- package/tests/subscription-manager-collection-tracking.test.ts +86 -0
- package/tests/subscription-manager-invalidation.test.ts +86 -0
- package/tests/support-runner-v5.test.ts +3201 -0
- package/tsconfig.json +34 -0
- package/ai/assistant-core-heuristics.d.ts +0 -11
- package/ai/assistant-core-heuristics.js +0 -356
- package/ai/assistant-core-heuristics.js.map +0 -1
- package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +0 -3
- package/ai/resolveio-platform-intelligence-memory-corpus.js +0 -214
- package/ai/resolveio-platform-intelligence-memory-corpus.js.map +0 -1
- package/ai/resolveio-platform-intelligence-memory.d.ts +0 -20
- package/ai/resolveio-platform-intelligence-memory.js +0 -341
- package/ai/resolveio-platform-intelligence-memory.js.map +0 -1
- package/ai/resolveio-platform-intelligence-types.js +0 -4
- package/ai/resolveio-platform-intelligence-types.js.map +0 -1
- package/ai/resolveio-platform-intelligence.d.ts +0 -6
- package/ai/resolveio-platform-intelligence.js +0 -463
- package/ai/resolveio-platform-intelligence.js.map +0 -1
- package/client-server-app.d.ts +0 -1
- package/client-server-app.js +0 -68
- package/client-server-app.js.map +0 -1
- package/collections/ai-run.collection.d.ts +0 -3
- package/collections/ai-run.collection.js +0 -170
- package/collections/ai-run.collection.js.map +0 -1
- package/collections/ai-terminal-conversation.collection.d.ts +0 -2
- package/collections/ai-terminal-conversation.collection.js +0 -140
- package/collections/ai-terminal-conversation.collection.js.map +0 -1
- package/collections/ai-terminal-issue-report.collection.d.ts +0 -2
- package/collections/ai-terminal-issue-report.collection.js +0 -148
- package/collections/ai-terminal-issue-report.collection.js.map +0 -1
- package/collections/ai-terminal-message.collection.d.ts +0 -2
- package/collections/ai-terminal-message.collection.js +0 -121
- package/collections/ai-terminal-message.collection.js.map +0 -1
- package/collections/app-setting.collection.d.ts +0 -3
- package/collections/app-setting.collection.js +0 -103
- package/collections/app-setting.collection.js.map +0 -1
- package/collections/app-status.collection.d.ts +0 -3
- package/collections/app-status.collection.js +0 -57
- package/collections/app-status.collection.js.map +0 -1
- package/collections/communication-metric.collection.d.ts +0 -2
- package/collections/communication-metric.collection.js +0 -133
- package/collections/communication-metric.collection.js.map +0 -1
- package/collections/counter.collection.d.ts +0 -3
- package/collections/counter.collection.js +0 -56
- package/collections/counter.collection.js.map +0 -1
- package/collections/cron-job-history.collection.d.ts +0 -3
- package/collections/cron-job-history.collection.js +0 -137
- package/collections/cron-job-history.collection.js.map +0 -1
- package/collections/cron-job.collection.d.ts +0 -3
- package/collections/cron-job.collection.js +0 -92
- package/collections/cron-job.collection.js.map +0 -1
- package/collections/customer-notification.collection.d.ts +0 -3
- package/collections/customer-notification.collection.js +0 -130
- package/collections/customer-notification.collection.js.map +0 -1
- package/collections/customer-portal-password.collection.d.ts +0 -3
- package/collections/customer-portal-password.collection.js +0 -75
- package/collections/customer-portal-password.collection.js.map +0 -1
- package/collections/email-history.collection.d.ts +0 -3
- package/collections/email-history.collection.js +0 -134
- package/collections/email-history.collection.js.map +0 -1
- package/collections/email-verified.collection.d.ts +0 -3
- package/collections/email-verified.collection.js +0 -62
- package/collections/email-verified.collection.js.map +0 -1
- package/collections/file.collection.d.ts +0 -3
- package/collections/file.collection.js +0 -74
- package/collections/file.collection.js.map +0 -1
- package/collections/flag-update.collection.d.ts +0 -3
- package/collections/flag-update.collection.js +0 -57
- package/collections/flag-update.collection.js.map +0 -1
- package/collections/flag.collection.d.ts +0 -3
- package/collections/flag.collection.js +0 -57
- package/collections/flag.collection.js.map +0 -1
- package/collections/log-method-latency.collection.d.ts +0 -3
- package/collections/log-method-latency.collection.js +0 -77
- package/collections/log-method-latency.collection.js.map +0 -1
- package/collections/log-subscription.collection.d.ts +0 -3
- package/collections/log-subscription.collection.js +0 -80
- package/collections/log-subscription.collection.js.map +0 -1
- package/collections/log.collection.d.ts +0 -3
- package/collections/log.collection.js +0 -93
- package/collections/log.collection.js.map +0 -1
- package/collections/logged-in-users.collection.d.ts +0 -3
- package/collections/logged-in-users.collection.js +0 -67
- package/collections/logged-in-users.collection.js.map +0 -1
- package/collections/monitor-cpu.collection.d.ts +0 -3
- package/collections/monitor-cpu.collection.js +0 -65
- package/collections/monitor-cpu.collection.js.map +0 -1
- package/collections/monitor-function.collection.d.ts +0 -3
- package/collections/monitor-function.collection.js +0 -74
- package/collections/monitor-function.collection.js.map +0 -1
- package/collections/monitor-memory.collection.d.ts +0 -3
- package/collections/monitor-memory.collection.js +0 -77
- package/collections/monitor-memory.collection.js.map +0 -1
- package/collections/monitor-mongo.collection.d.ts +0 -3
- package/collections/monitor-mongo.collection.js +0 -71
- package/collections/monitor-mongo.collection.js.map +0 -1
- package/collections/notification.collection.d.ts +0 -3
- package/collections/notification.collection.js +0 -57
- package/collections/notification.collection.js.map +0 -1
- package/collections/openai-usage-ledger.collection.d.ts +0 -2
- package/collections/openai-usage-ledger.collection.js +0 -188
- package/collections/openai-usage-ledger.collection.js.map +0 -1
- package/collections/report-builder-dashboard-builder.collection.d.ts +0 -3
- package/collections/report-builder-dashboard-builder.collection.js +0 -109
- package/collections/report-builder-dashboard-builder.collection.js.map +0 -1
- package/collections/report-builder-library.collection.d.ts +0 -3
- package/collections/report-builder-library.collection.js +0 -87
- package/collections/report-builder-library.collection.js.map +0 -1
- package/collections/report-builder-report.collection.d.ts +0 -4
- package/collections/report-builder-report.collection.js +0 -184
- package/collections/report-builder-report.collection.js.map +0 -1
- package/collections/user-group.collection.d.ts +0 -4
- package/collections/user-group.collection.js +0 -89
- package/collections/user-group.collection.js.map +0 -1
- package/collections/user-guide.collection.d.ts +0 -3
- package/collections/user-guide.collection.js +0 -57
- package/collections/user-guide.collection.js.map +0 -1
- package/collections/user.collection.d.ts +0 -4
- package/collections/user.collection.js +0 -180
- package/collections/user.collection.js.map +0 -1
- package/cron/cron.d.ts +0 -14
- package/cron/cron.js +0 -216
- package/cron/cron.js.map +0 -1
- package/fixtures/cron-jobs.d.ts +0 -1
- package/fixtures/cron-jobs.js +0 -150
- package/fixtures/cron-jobs.js.map +0 -1
- package/fixtures/init.d.ts +0 -1
- package/fixtures/init.js +0 -91
- package/fixtures/init.js.map +0 -1
- package/http/auth.d.ts +0 -2
- package/http/auth.js +0 -951
- package/http/auth.js.map +0 -1
- package/http/health.d.ts +0 -1
- package/http/health.js +0 -11
- package/http/health.js.map +0 -1
- package/http/home.d.ts +0 -1
- package/http/home.js +0 -134
- package/http/home.js.map +0 -1
- package/http/slow-query-publication.d.ts +0 -2
- package/http/slow-query-publication.js +0 -99
- package/http/slow-query-publication.js.map +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -19
- package/index.js.map +0 -1
- package/managers/ai-assistant-codex-manager.manager.d.ts +0 -67
- package/managers/ai-assistant-codex-manager.manager.js +0 -1113
- package/managers/ai-assistant-codex-manager.manager.js.map +0 -1
- package/managers/ai-run-evidence.manager.d.ts +0 -36
- package/managers/ai-run-evidence.manager.js +0 -377
- package/managers/ai-run-evidence.manager.js.map +0 -1
- package/managers/communication-metric.manager.d.ts +0 -16
- package/managers/communication-metric.manager.js +0 -134
- package/managers/communication-metric.manager.js.map +0 -1
- package/managers/cron.manager.d.ts +0 -20
- package/managers/cron.manager.js +0 -534
- package/managers/cron.manager.js.map +0 -1
- package/managers/customer-notification-content.manager.d.ts +0 -55
- package/managers/customer-notification-content.manager.js +0 -158
- package/managers/customer-notification-content.manager.js.map +0 -1
- package/managers/diagnostic-manager-bootstrap.d.ts +0 -9
- package/managers/diagnostic-manager-bootstrap.js +0 -260
- package/managers/diagnostic-manager-bootstrap.js.map +0 -1
- package/managers/error-auto-fix.manager.d.ts +0 -149
- package/managers/error-auto-fix.manager.js +0 -3064
- package/managers/error-auto-fix.manager.js.map +0 -1
- package/managers/local-log.manager.d.ts +0 -18
- package/managers/local-log.manager.js +0 -88
- package/managers/local-log.manager.js.map +0 -1
- package/managers/method.manager.d.ts +0 -84
- package/managers/method.manager.js +0 -1964
- package/managers/method.manager.js.map +0 -1
- package/managers/mongo.manager.d.ts +0 -224
- package/managers/mongo.manager.js +0 -5000
- package/managers/mongo.manager.js.map +0 -1
- package/managers/monitor.manager.d.ts +0 -70
- package/managers/monitor.manager.js +0 -550
- package/managers/monitor.manager.js.map +0 -1
- package/managers/openai-usage-ledger.manager.d.ts +0 -30
- package/managers/openai-usage-ledger.manager.js +0 -142
- package/managers/openai-usage-ledger.manager.js.map +0 -1
- package/managers/slow-query-verifier.manager.d.ts +0 -144
- package/managers/slow-query-verifier.manager.js +0 -3857
- package/managers/slow-query-verifier.manager.js.map +0 -1
- package/managers/slow-query.manager.d.ts +0 -28
- package/managers/slow-query.manager.js +0 -468
- package/managers/slow-query.manager.js.map +0 -1
- package/managers/subscription.manager.d.ts +0 -169
- package/managers/subscription.manager.js +0 -3434
- package/managers/subscription.manager.js.map +0 -1
- package/managers/websocket.manager.d.ts +0 -73
- package/managers/websocket.manager.js +0 -673
- package/managers/websocket.manager.js.map +0 -1
- package/managers/worker-dispatcher.manager.d.ts +0 -120
- package/managers/worker-dispatcher.manager.js +0 -1266
- package/managers/worker-dispatcher.manager.js.map +0 -1
- package/managers/worker-server.manager.d.ts +0 -35
- package/managers/worker-server.manager.js +0 -582
- package/managers/worker-server.manager.js.map +0 -1
- package/methods/accounts.d.ts +0 -2
- package/methods/accounts.js +0 -624
- package/methods/accounts.js.map +0 -1
- package/methods/ai-terminal.d.ts +0 -458
- package/methods/ai-terminal.js +0 -27991
- package/methods/ai-terminal.js.map +0 -1
- package/methods/app-settings.d.ts +0 -2
- package/methods/app-settings.js +0 -169
- package/methods/app-settings.js.map +0 -1
- package/methods/aws.d.ts +0 -2
- package/methods/aws.js +0 -877
- package/methods/aws.js.map +0 -1
- package/methods/collections.d.ts +0 -2
- package/methods/collections.js +0 -719
- package/methods/collections.js.map +0 -1
- package/methods/counters.d.ts +0 -2
- package/methods/counters.js +0 -113
- package/methods/counters.js.map +0 -1
- package/methods/cron-jobs.d.ts +0 -2
- package/methods/cron-jobs.js +0 -2475
- package/methods/cron-jobs.js.map +0 -1
- package/methods/customer-notifications.d.ts +0 -2
- package/methods/customer-notifications.js +0 -528
- package/methods/customer-notifications.js.map +0 -1
- package/methods/diagnostics.d.ts +0 -2
- package/methods/diagnostics.js +0 -703
- package/methods/diagnostics.js.map +0 -1
- package/methods/flag-updates.d.ts +0 -2
- package/methods/flag-updates.js +0 -8
- package/methods/flag-updates.js.map +0 -1
- package/methods/flags.d.ts +0 -2
- package/methods/flags.js +0 -8
- package/methods/flags.js.map +0 -1
- package/methods/logs.d.ts +0 -2
- package/methods/logs.js +0 -751
- package/methods/logs.js.map +0 -1
- package/methods/mongo-explorer.d.ts +0 -2
- package/methods/mongo-explorer.js +0 -1808
- package/methods/mongo-explorer.js.map +0 -1
- package/methods/monitor.d.ts +0 -2
- package/methods/monitor.js +0 -543
- package/methods/monitor.js.map +0 -1
- package/methods/pdf.d.ts +0 -2
- package/methods/pdf.js +0 -1216
- package/methods/pdf.js.map +0 -1
- package/methods/publications.d.ts +0 -1
- package/methods/publications.js +0 -183
- package/methods/publications.js.map +0 -1
- package/methods/report-builder.d.ts +0 -2
- package/methods/report-builder.js +0 -3094
- package/methods/report-builder.js.map +0 -1
- package/methods/support.d.ts +0 -2
- package/methods/support.js +0 -430
- package/methods/support.js.map +0 -1
- package/models/ai-run.model.d.ts +0 -19
- package/models/ai-run.model.js +0 -4
- package/models/ai-run.model.js.map +0 -1
- package/models/ai-terminal-conversation.model.d.ts +0 -17
- package/models/ai-terminal-conversation.model.js +0 -4
- package/models/ai-terminal-conversation.model.js.map +0 -1
- package/models/ai-terminal-issue-report.model.d.ts +0 -19
- package/models/ai-terminal-issue-report.model.js +0 -4
- package/models/ai-terminal-issue-report.model.js.map +0 -1
- package/models/ai-terminal-message.model.d.ts +0 -22
- package/models/ai-terminal-message.model.js +0 -4
- package/models/ai-terminal-message.model.js.map +0 -1
- package/models/app-setting.model.d.ts +0 -16
- package/models/app-setting.model.js +0 -4
- package/models/app-setting.model.js.map +0 -1
- package/models/app-status.model.js +0 -4
- package/models/app-status.model.js.map +0 -1
- package/models/billing-logged-in-users.model.js +0 -4
- package/models/billing-logged-in-users.model.js.map +0 -1
- package/models/collection-document.model.d.ts +0 -21
- package/models/collection-document.model.js +0 -4
- package/models/collection-document.model.js.map +0 -1
- package/models/communication-metric.model.d.ts +0 -20
- package/models/communication-metric.model.js +0 -4
- package/models/communication-metric.model.js.map +0 -1
- package/models/counter.model.js +0 -4
- package/models/counter.model.js.map +0 -1
- package/models/cron-job-history.model.d.ts +0 -15
- package/models/cron-job-history.model.js +0 -4
- package/models/cron-job-history.model.js.map +0 -1
- package/models/cron-job.model.d.ts +0 -14
- package/models/cron-job.model.js +0 -4
- package/models/cron-job.model.js.map +0 -1
- package/models/customer-notification.model.d.ts +0 -26
- package/models/customer-notification.model.js +0 -4
- package/models/customer-notification.model.js.map +0 -1
- package/models/customer-portal-password.model.d.ts +0 -11
- package/models/customer-portal-password.model.js +0 -4
- package/models/customer-portal-password.model.js.map +0 -1
- package/models/dialog.model.d.ts +0 -23
- package/models/dialog.model.js +0 -4
- package/models/dialog.model.js.map +0 -1
- package/models/email-history.model.d.ts +0 -32
- package/models/email-history.model.js.map +0 -1
- package/models/email-verified.model.js +0 -4
- package/models/email-verified.model.js.map +0 -1
- package/models/file.model.js +0 -4
- package/models/file.model.js.map +0 -1
- package/models/flag-update.model.js +0 -4
- package/models/flag-update.model.js.map +0 -1
- package/models/flag.model.js +0 -4
- package/models/flag.model.js.map +0 -1
- package/models/log-method-latency.model.d.ts +0 -10
- package/models/log-method-latency.model.js +0 -4
- package/models/log-method-latency.model.js.map +0 -1
- package/models/log-subscription.model.js +0 -4
- package/models/log-subscription.model.js.map +0 -1
- package/models/log.model.d.ts +0 -17
- package/models/log.model.js +0 -4
- package/models/log.model.js.map +0 -1
- package/models/logged-in-users.model.js +0 -4
- package/models/logged-in-users.model.js.map +0 -1
- package/models/method-response.model.js +0 -4
- package/models/method-response.model.js.map +0 -1
- package/models/method.model.d.ts +0 -26
- package/models/method.model.js +0 -4
- package/models/method.model.js.map +0 -1
- package/models/monitor-cpu.model.js +0 -4
- package/models/monitor-cpu.model.js.map +0 -1
- package/models/monitor-function.model.d.ts +0 -14
- package/models/monitor-function.model.js +0 -4
- package/models/monitor-function.model.js.map +0 -1
- package/models/monitor-memory.model.d.ts +0 -15
- package/models/monitor-memory.model.js +0 -4
- package/models/monitor-memory.model.js.map +0 -1
- package/models/monitor-mongo.model.d.ts +0 -13
- package/models/monitor-mongo.model.js +0 -4
- package/models/monitor-mongo.model.js.map +0 -1
- package/models/notification.model.js +0 -4
- package/models/notification.model.js.map +0 -1
- package/models/openai-usage-ledger.model.d.ts +0 -30
- package/models/openai-usage-ledger.model.js +0 -4
- package/models/openai-usage-ledger.model.js.map +0 -1
- package/models/pagination.model.d.ts +0 -11
- package/models/pagination.model.js +0 -28
- package/models/pagination.model.js.map +0 -1
- package/models/permission.model.d.ts +0 -12
- package/models/permission.model.js +0 -4
- package/models/permission.model.js.map +0 -1
- package/models/report-builder-dashboard-builder.model.d.ts +0 -25
- package/models/report-builder-dashboard-builder.model.js +0 -4
- package/models/report-builder-dashboard-builder.model.js.map +0 -1
- package/models/report-builder-library.model.d.ts +0 -17
- package/models/report-builder-library.model.js +0 -4
- package/models/report-builder-library.model.js.map +0 -1
- package/models/report-builder-report.model.d.ts +0 -121
- package/models/report-builder-report.model.js +0 -4
- package/models/report-builder-report.model.js.map +0 -1
- package/models/report-builder.model.d.ts +0 -61
- package/models/report-builder.model.js +0 -4
- package/models/report-builder.model.js.map +0 -1
- package/models/select-data-label.model.d.ts +0 -9
- package/models/select-data-label.model.js +0 -4
- package/models/select-data-label.model.js.map +0 -1
- package/models/server-message.model.d.ts +0 -32
- package/models/server-message.model.js +0 -4
- package/models/server-message.model.js.map +0 -1
- package/models/slow-query-report.model.d.ts +0 -23
- package/models/slow-query-report.model.js +0 -4
- package/models/slow-query-report.model.js.map +0 -1
- package/models/subscription.model.d.ts +0 -31
- package/models/subscription.model.js +0 -4
- package/models/subscription.model.js.map +0 -1
- package/models/support-ticket.model.d.ts +0 -87
- package/models/support-ticket.model.js +0 -4
- package/models/support-ticket.model.js.map +0 -1
- package/models/user-group.model.d.ts +0 -20
- package/models/user-group.model.js +0 -4
- package/models/user-group.model.js.map +0 -1
- package/models/user-guide.model.js +0 -4
- package/models/user-guide.model.js.map +0 -1
- package/models/user.model.d.ts +0 -84
- package/models/user.model.js +0 -4
- package/models/user.model.js.map +0 -1
- package/private/images/ResolveIO.png +0 -0
- package/public_api.js +0 -127
- package/public_api.js.map +0 -1
- package/publications/ai-terminal.d.ts +0 -1
- package/publications/ai-terminal.js +0 -122
- package/publications/ai-terminal.js.map +0 -1
- package/publications/app-settings.d.ts +0 -2
- package/publications/app-settings.js +0 -28
- package/publications/app-settings.js.map +0 -1
- package/publications/app-status.d.ts +0 -2
- package/publications/app-status.js +0 -16
- package/publications/app-status.js.map +0 -1
- package/publications/cron-jobs.d.ts +0 -2
- package/publications/cron-jobs.js +0 -88
- package/publications/cron-jobs.js.map +0 -1
- package/publications/customer-notifications.d.ts +0 -2
- package/publications/customer-notifications.js +0 -161
- package/publications/customer-notifications.js.map +0 -1
- package/publications/files.d.ts +0 -2
- package/publications/files.js +0 -36
- package/publications/files.js.map +0 -1
- package/publications/flags-update.d.ts +0 -2
- package/publications/flags-update.js +0 -22
- package/publications/flags-update.js.map +0 -1
- package/publications/flags.d.ts +0 -2
- package/publications/flags.js +0 -22
- package/publications/flags.js.map +0 -1
- package/publications/logs.d.ts +0 -2
- package/publications/logs.js +0 -164
- package/publications/logs.js.map +0 -1
- package/publications/notifications.d.ts +0 -2
- package/publications/notifications.js +0 -16
- package/publications/notifications.js.map +0 -1
- package/publications/report-builder-dashboard-builders.d.ts +0 -2
- package/publications/report-builder-dashboard-builders.js +0 -42
- package/publications/report-builder-dashboard-builders.js.map +0 -1
- package/publications/report-builder-libraries.d.ts +0 -2
- package/publications/report-builder-libraries.js +0 -90
- package/publications/report-builder-libraries.js.map +0 -1
- package/publications/report-builder-reports.d.ts +0 -2
- package/publications/report-builder-reports.js +0 -50
- package/publications/report-builder-reports.js.map +0 -1
- package/publications/super-admin.d.ts +0 -2
- package/publications/super-admin.js +0 -16
- package/publications/super-admin.js.map +0 -1
- package/publications/user-groups.d.ts +0 -1
- package/publications/user-groups.js +0 -16
- package/publications/user-groups.js.map +0 -1
- package/publications/user-guides.d.ts +0 -1
- package/publications/user-guides.js +0 -16
- package/publications/user-guides.js.map +0 -1
- package/resolveio-server-app.d.ts +0 -70
- package/resolveio-server-app.js +0 -801
- package/resolveio-server-app.js.map +0 -1
- package/server-app.d.ts +0 -228
- package/server-app.js +0 -3566
- package/server-app.js.map +0 -1
- package/services/codex-client.d.ts +0 -128
- package/services/codex-client.js +0 -1629
- package/services/codex-client.js.map +0 -1
- package/services/openai-client.d.ts +0 -46
- package/services/openai-client.js +0 -318
- package/services/openai-client.js.map +0 -1
- package/types/error-report.d.ts +0 -25
- package/types/error-report.js +0 -4
- package/types/error-report.js.map +0 -1
- package/types/slow-query-report.d.ts +0 -27
- package/types/slow-query-report.js +0 -6
- package/types/slow-query-report.js.map +0 -1
- package/util/ai-qa-policy.d.ts +0 -124
- package/util/ai-qa-policy.js +0 -736
- package/util/ai-qa-policy.js.map +0 -1
- package/util/ai-run-evidence-adapters.d.ts +0 -109
- package/util/ai-run-evidence-adapters.js +0 -7234
- package/util/ai-run-evidence-adapters.js.map +0 -1
- package/util/ai-run-evidence-dashboard.d.ts +0 -88
- package/util/ai-run-evidence-dashboard.js +0 -343
- package/util/ai-run-evidence-dashboard.js.map +0 -1
- package/util/ai-run-evidence-eval.d.ts +0 -86
- package/util/ai-run-evidence-eval.js +0 -1018
- package/util/ai-run-evidence-eval.js.map +0 -1
- package/util/ai-run-evidence.d.ts +0 -244
- package/util/ai-run-evidence.js +0 -1096
- package/util/ai-run-evidence.js.map +0 -1
- package/util/ai-runner-artifacts.d.ts +0 -82
- package/util/ai-runner-artifacts.js +0 -713
- package/util/ai-runner-artifacts.js.map +0 -1
- package/util/ai-runner-manager-autopilot.d.ts +0 -210
- package/util/ai-runner-manager-autopilot.js +0 -642
- package/util/ai-runner-manager-autopilot.js.map +0 -1
- package/util/ai-runner-manager-policy.d.ts +0 -807
- package/util/ai-runner-manager-policy.js +0 -3501
- package/util/ai-runner-manager-policy.js.map +0 -1
- package/util/ai-runner-qa-auth.d.ts +0 -5
- package/util/ai-runner-qa-auth.js +0 -839
- package/util/ai-runner-qa-auth.js.map +0 -1
- package/util/ai-runner-qa-tools.d.ts +0 -26
- package/util/ai-runner-qa-tools.js +0 -3520
- package/util/ai-runner-qa-tools.js.map +0 -1
- package/util/aicoder-runner-v6.d.ts +0 -426
- package/util/aicoder-runner-v6.js +0 -2464
- package/util/aicoder-runner-v6.js.map +0 -1
- package/util/common.d.ts +0 -31
- package/util/common.js +0 -683
- package/util/common.js.map +0 -1
- package/util/customer-portal-password.d.ts +0 -13
- package/util/customer-portal-password.js +0 -209
- package/util/customer-portal-password.js.map +0 -1
- package/util/error-reporter.d.ts +0 -52
- package/util/error-reporter.js +0 -326
- package/util/error-reporter.js.map +0 -1
- package/util/error-tracking.d.ts +0 -13
- package/util/error-tracking.js +0 -120
- package/util/error-tracking.js.map +0 -1
- package/util/openai-usage-cost.d.ts +0 -6
- package/util/openai-usage-cost.js +0 -103
- package/util/openai-usage-cost.js.map +0 -1
- package/util/report-builder-unwinds.d.ts +0 -15
- package/util/report-builder-unwinds.js +0 -156
- package/util/report-builder-unwinds.js.map +0 -1
- package/util/runner-process-janitor.d.ts +0 -27
- package/util/runner-process-janitor.js +0 -208
- package/util/runner-process-janitor.js.map +0 -1
- package/util/schema-report-builder.d.ts +0 -6
- package/util/schema-report-builder.js +0 -481
- package/util/schema-report-builder.js.map +0 -1
- package/util/slow-query-reporter.d.ts +0 -28
- package/util/slow-query-reporter.js +0 -226
- package/util/slow-query-reporter.js.map +0 -1
- package/util/subscription-dependency-context.d.ts +0 -34
- package/util/subscription-dependency-context.js +0 -1283
- package/util/subscription-dependency-context.js.map +0 -1
- package/util/support-runner-v5.d.ts +0 -1426
- package/util/support-runner-v5.js +0 -7631
- package/util/support-runner-v5.js.map +0 -1
- package/util/tokenizer.d.ts +0 -5
- package/util/tokenizer.js +0 -41
- package/util/tokenizer.js.map +0 -1
- package/workers/codex-runner.worker.d.ts +0 -1
- package/workers/codex-runner.worker.js +0 -192
- package/workers/codex-runner.worker.js.map +0 -1
- /package/{private → src/private}/email-templates/enrollment.html +0 -0
- /package/{private → src/private}/email-templates/forgot-password.html +0 -0
- /package/{private → src/private}/email-templates/support-ticket-deleted.html +0 -0
- /package/{private → src/private}/email-templates/support-ticket-modified.html +0 -0
- /package/{private → src/private}/email-templates/support-ticket.html +0 -0
- /package/{public_api.d.ts → src/public_api.ts} +0 -0
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildAssistantChangeHistorySummaryFromCommits,
|
|
3
|
+
classifyAssistantRequestType,
|
|
4
|
+
collectAssistantAllowedRoutesForUser,
|
|
5
|
+
evaluateAssistantNavigationFastPathWithRoutes,
|
|
6
|
+
resolveAssistantUserAccessTier,
|
|
7
|
+
shouldUseAssistantChangeHistoryFastPath,
|
|
8
|
+
userHasInvoiceAccess
|
|
9
|
+
} from '../src/methods/ai-terminal';
|
|
10
|
+
|
|
11
|
+
function assert(condition: boolean, message: string) {
|
|
12
|
+
if (!condition) {
|
|
13
|
+
throw new Error(message);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const ALL_ROUTES = [
|
|
18
|
+
'/dashboard',
|
|
19
|
+
'/invoice/list',
|
|
20
|
+
'/invoice/detail',
|
|
21
|
+
'/order/list',
|
|
22
|
+
'/work-order/list',
|
|
23
|
+
'/work-order/detail',
|
|
24
|
+
'/chemical/list',
|
|
25
|
+
'/chemical-blend/list',
|
|
26
|
+
'/customer-portal/dashboard',
|
|
27
|
+
'/customer-portal/invoice/list',
|
|
28
|
+
'/customer-portal/order/list'
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const USERS = {
|
|
32
|
+
superAdmin: {
|
|
33
|
+
roles: {
|
|
34
|
+
super_admin: true,
|
|
35
|
+
groups: [],
|
|
36
|
+
miscs: []
|
|
37
|
+
},
|
|
38
|
+
other: {}
|
|
39
|
+
},
|
|
40
|
+
internalInvoice: {
|
|
41
|
+
roles: {
|
|
42
|
+
super_admin: false,
|
|
43
|
+
groups: [
|
|
44
|
+
{
|
|
45
|
+
name: 'Operations',
|
|
46
|
+
views: ['/dashboard', '/invoice/list', '/work-order/list']
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
miscs: []
|
|
50
|
+
},
|
|
51
|
+
other: {
|
|
52
|
+
id_client: 'CLIENT-A'
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
internalNoInvoice: {
|
|
56
|
+
roles: {
|
|
57
|
+
super_admin: false,
|
|
58
|
+
groups: [
|
|
59
|
+
{
|
|
60
|
+
name: 'Field',
|
|
61
|
+
views: ['/dashboard', '/work-order/list', '/chemical/list']
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
miscs: []
|
|
65
|
+
},
|
|
66
|
+
other: {
|
|
67
|
+
id_client: 'CLIENT-A'
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
internalBlendPlural: {
|
|
71
|
+
roles: {
|
|
72
|
+
super_admin: false,
|
|
73
|
+
groups: [
|
|
74
|
+
{
|
|
75
|
+
name: 'Blend Ops',
|
|
76
|
+
views: ['/dashboard', '/chemical-blends/list', '/work-order/list']
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
miscs: []
|
|
80
|
+
},
|
|
81
|
+
other: {
|
|
82
|
+
id_client: 'CLIENT-A'
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
internalMiscInvoice: {
|
|
86
|
+
roles: {
|
|
87
|
+
super_admin: false,
|
|
88
|
+
groups: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Operations',
|
|
91
|
+
views: ['/dashboard', '/work-order/list']
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
miscs: ['Invoice Dashboard Access']
|
|
95
|
+
},
|
|
96
|
+
other: {
|
|
97
|
+
id_client: 'CLIENT-A'
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
customerWithInvoice: {
|
|
101
|
+
roles: {
|
|
102
|
+
super_admin: false,
|
|
103
|
+
groups: [
|
|
104
|
+
{
|
|
105
|
+
name: 'Customer Portal',
|
|
106
|
+
views: ['/customer-portal/dashboard', '/customer-portal/invoice/list']
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
miscs: []
|
|
110
|
+
},
|
|
111
|
+
other: {
|
|
112
|
+
id_customer: 'CUST-100'
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
customerNoInvoice: {
|
|
116
|
+
roles: {
|
|
117
|
+
super_admin: false,
|
|
118
|
+
groups: [
|
|
119
|
+
{
|
|
120
|
+
name: 'Customer Portal',
|
|
121
|
+
views: ['/customer-portal/dashboard', '/customer-portal/order/list']
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
miscs: []
|
|
125
|
+
},
|
|
126
|
+
other: {
|
|
127
|
+
id_customer: 'CUST-200'
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
function testPromptClassificationCoverage() {
|
|
133
|
+
const cases: Array<{ message: string; expected: 'navigation' | 'data' | 'mixed' | 'bug_issue' | 'feature_info'; expectedDataQuestion: boolean }> = [
|
|
134
|
+
{
|
|
135
|
+
message: 'What is the route link for invoice list?',
|
|
136
|
+
expected: 'navigation',
|
|
137
|
+
expectedDataQuestion: false
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
message: 'Where do I go to edit a work order?',
|
|
141
|
+
expected: 'navigation',
|
|
142
|
+
expectedDataQuestion: false
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
message: 'Where is work order list?',
|
|
146
|
+
expected: 'navigation',
|
|
147
|
+
expectedDataQuestion: false
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
message: 'How many invoices were paid this month?',
|
|
151
|
+
expected: 'data',
|
|
152
|
+
expectedDataQuestion: true
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
message: 'Break down my total revenue over the last 6 month by month',
|
|
156
|
+
expected: 'data',
|
|
157
|
+
expectedDataQuestion: true
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
message: 'Break down my total revenue over the last 6 month by month by each customer',
|
|
161
|
+
expected: 'data',
|
|
162
|
+
expectedDataQuestion: true
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
message: 'Break down my total revenue over the last 6 month per month per customer',
|
|
166
|
+
expected: 'data',
|
|
167
|
+
expectedDataQuestion: true
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
message: 'Total revenue by month for the last 6 months.',
|
|
171
|
+
expected: 'data',
|
|
172
|
+
expectedDataQuestion: true
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
message: 'Break up the support tickets last 6 months, give me a total per user per month of the amount of hours they are billing for',
|
|
176
|
+
expected: 'data',
|
|
177
|
+
expectedDataQuestion: true
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
message: 'Summarize the hazelwood cross job for pioneer',
|
|
181
|
+
expected: 'data',
|
|
182
|
+
expectedDataQuestion: true
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
message: 'Which blends used Chemical Red Ultra Lift in the last 30 days? Include lot/batch and volume.',
|
|
186
|
+
expected: 'data',
|
|
187
|
+
expectedDataQuestion: true
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
message: 'Where do I go and how many open invoices do we have?',
|
|
191
|
+
expected: 'mixed',
|
|
192
|
+
expectedDataQuestion: true
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
message: 'Invoice screen is not working and throws an exception.',
|
|
196
|
+
expected: 'bug_issue',
|
|
197
|
+
expectedDataQuestion: false
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
message: 'Why is this happening: the save button fails every time.',
|
|
201
|
+
expected: 'bug_issue',
|
|
202
|
+
expectedDataQuestion: false
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
message: "Why won't this work order let me close it, it's greyed out?",
|
|
206
|
+
expected: 'bug_issue',
|
|
207
|
+
expectedDataQuestion: false
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
message: "Why don't I see this asset in this dropdown?",
|
|
211
|
+
expected: 'bug_issue',
|
|
212
|
+
expectedDataQuestion: false
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
message: 'The submit button is red and I filled out everything.',
|
|
216
|
+
expected: 'bug_issue',
|
|
217
|
+
expectedDataQuestion: false
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
message: 'How does invoice approval workflow work?',
|
|
221
|
+
expected: 'feature_info',
|
|
222
|
+
expectedDataQuestion: false
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
message: 'What is the difference between quote and invoice?',
|
|
226
|
+
expected: 'feature_info',
|
|
227
|
+
expectedDataQuestion: false
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
message: 'What changed recently in invoices?',
|
|
231
|
+
expected: 'feature_info',
|
|
232
|
+
expectedDataQuestion: false
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
message: 'What is this new exception list? How long has it been around?',
|
|
236
|
+
expected: 'feature_info',
|
|
237
|
+
expectedDataQuestion: false
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
message: 'How long has the exception list been on this page?',
|
|
241
|
+
expected: 'feature_info',
|
|
242
|
+
expectedDataQuestion: false
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
message: 'What changed on this page?',
|
|
246
|
+
expected: 'feature_info',
|
|
247
|
+
expectedDataQuestion: false
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
message: 'What changed on the invoice page?',
|
|
251
|
+
expected: 'feature_info',
|
|
252
|
+
expectedDataQuestion: false
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
message: 'What did the last update just do?',
|
|
256
|
+
expected: 'feature_info',
|
|
257
|
+
expectedDataQuestion: false
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
message: 'What did the last system update do?',
|
|
261
|
+
expected: 'feature_info',
|
|
262
|
+
expectedDataQuestion: false
|
|
263
|
+
}
|
|
264
|
+
];
|
|
265
|
+
|
|
266
|
+
cases.forEach((entry) => {
|
|
267
|
+
const result = classifyAssistantRequestType(entry.message);
|
|
268
|
+
assert(
|
|
269
|
+
result.type === entry.expected,
|
|
270
|
+
`Classification mismatch for "${entry.message}". Expected ${entry.expected}, got ${result.type}`
|
|
271
|
+
);
|
|
272
|
+
assert(
|
|
273
|
+
result.dataQuestion === entry.expectedDataQuestion,
|
|
274
|
+
`dataQuestion mismatch for "${entry.message}". Expected ${entry.expectedDataQuestion}, got ${result.dataQuestion}`
|
|
275
|
+
);
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function testUserAccessTiersAndInvoicePermissions() {
|
|
280
|
+
assert(resolveAssistantUserAccessTier(USERS.superAdmin) === 'super_admin', 'Expected super admin tier');
|
|
281
|
+
assert(resolveAssistantUserAccessTier(USERS.internalInvoice) === 'client_user', 'Expected client user tier');
|
|
282
|
+
assert(resolveAssistantUserAccessTier(USERS.customerWithInvoice) === 'customer_portal', 'Expected customer portal tier');
|
|
283
|
+
|
|
284
|
+
assert(userHasInvoiceAccess(USERS.superAdmin), 'Expected super admin to have invoice access');
|
|
285
|
+
assert(userHasInvoiceAccess(USERS.internalInvoice), 'Expected invoice user to have invoice access');
|
|
286
|
+
assert(userHasInvoiceAccess(USERS.internalMiscInvoice), 'Expected invoice misc-tagged user to have invoice access');
|
|
287
|
+
assert(!userHasInvoiceAccess(USERS.internalNoInvoice), 'Expected no-invoice user to have no invoice access');
|
|
288
|
+
assert(userHasInvoiceAccess(USERS.customerWithInvoice), 'Expected customer invoice user to have invoice access');
|
|
289
|
+
assert(!userHasInvoiceAccess(USERS.customerNoInvoice), 'Expected customer no-invoice user to have no invoice access');
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
function testAllowedRoutesByUser() {
|
|
293
|
+
const superAdminRoutes = collectAssistantAllowedRoutesForUser(USERS.superAdmin, ALL_ROUTES, true);
|
|
294
|
+
assert(superAdminRoutes.includes('/invoice/list'), 'Expected super admin route inventory to include invoice list');
|
|
295
|
+
assert(superAdminRoutes.includes('/customer-portal/invoice/list'), 'Expected super admin route inventory to include customer portal invoice list');
|
|
296
|
+
|
|
297
|
+
const internalNoInvoiceRoutes = collectAssistantAllowedRoutesForUser(USERS.internalNoInvoice, ALL_ROUTES, false);
|
|
298
|
+
assert(!internalNoInvoiceRoutes.includes('/invoice/list'), 'Expected non-invoice internal user to exclude invoice routes');
|
|
299
|
+
assert(internalNoInvoiceRoutes.includes('/work-order/list'), 'Expected internal user to include work order list');
|
|
300
|
+
assert(internalNoInvoiceRoutes.includes('/order/list'), 'Expected work-order permission to map to /order/list alias route');
|
|
301
|
+
|
|
302
|
+
const internalBlendPluralRoutes = collectAssistantAllowedRoutesForUser(USERS.internalBlendPlural, ALL_ROUTES, false);
|
|
303
|
+
assert(internalBlendPluralRoutes.includes('/chemical-blend/list'), 'Expected plural blend permission to map to canonical blend route');
|
|
304
|
+
assert(!internalBlendPluralRoutes.includes('/invoice/list'), 'Expected blend user without invoice permission to exclude invoice routes');
|
|
305
|
+
|
|
306
|
+
const customerRoutes = collectAssistantAllowedRoutesForUser(USERS.customerNoInvoice, ALL_ROUTES, false);
|
|
307
|
+
assert(customerRoutes.includes('/customer-portal/dashboard'), 'Expected customer to include customer dashboard');
|
|
308
|
+
assert(!customerRoutes.includes('/invoice/list'), 'Expected customer user to exclude internal invoice route');
|
|
309
|
+
|
|
310
|
+
const internalRoutes = collectAssistantAllowedRoutesForUser(USERS.internalNoInvoice, ALL_ROUTES, false);
|
|
311
|
+
assert(internalRoutes.includes('/home'), 'Expected internal user to include core home route');
|
|
312
|
+
assert(internalRoutes.includes('/user-settings/settings'), 'Expected internal user to include core user settings route');
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
function testNavigationFastPathPermissions() {
|
|
316
|
+
const invoicePrompt = 'Need the route link for invoice list';
|
|
317
|
+
|
|
318
|
+
const internalInvoiceRoutes = collectAssistantAllowedRoutesForUser(USERS.internalInvoice, ALL_ROUTES, false);
|
|
319
|
+
const internalInvoiceResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
320
|
+
message: invoicePrompt,
|
|
321
|
+
hasAttachments: false,
|
|
322
|
+
allowedRoutes: internalInvoiceRoutes
|
|
323
|
+
});
|
|
324
|
+
assert(!!internalInvoiceResult, 'Expected fast-path response for internal invoice user');
|
|
325
|
+
assert(
|
|
326
|
+
(internalInvoiceResult?.routes || []).some(route => route.includes('/invoice/list')),
|
|
327
|
+
'Expected invoice route for invoice-permitted user'
|
|
328
|
+
);
|
|
329
|
+
|
|
330
|
+
const internalNoInvoiceRoutes = collectAssistantAllowedRoutesForUser(USERS.internalNoInvoice, ALL_ROUTES, false);
|
|
331
|
+
const internalNoInvoiceResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
332
|
+
message: invoicePrompt,
|
|
333
|
+
hasAttachments: false,
|
|
334
|
+
allowedRoutes: internalNoInvoiceRoutes
|
|
335
|
+
});
|
|
336
|
+
assert(!!internalNoInvoiceResult, 'Expected fast-path response for no-invoice user');
|
|
337
|
+
assert(
|
|
338
|
+
!(internalNoInvoiceResult?.routes || []).some(route => route.includes('/invoice')),
|
|
339
|
+
'Expected no invoice routes for non-permitted user'
|
|
340
|
+
);
|
|
341
|
+
const wherePromptResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
342
|
+
message: 'Where is work order list?',
|
|
343
|
+
hasAttachments: false,
|
|
344
|
+
allowedRoutes: internalNoInvoiceRoutes
|
|
345
|
+
});
|
|
346
|
+
assert(!!wherePromptResult, 'Expected fast-path response for where/list route prompt');
|
|
347
|
+
assert(
|
|
348
|
+
(wherePromptResult?.routes || []).some(route => route.includes('/work-order/list')),
|
|
349
|
+
'Expected work-order list route for where/list prompt'
|
|
350
|
+
);
|
|
351
|
+
|
|
352
|
+
const customerWithInvoiceRoutes = collectAssistantAllowedRoutesForUser(USERS.customerWithInvoice, ALL_ROUTES, false);
|
|
353
|
+
const customerWithInvoiceResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
354
|
+
message: invoicePrompt,
|
|
355
|
+
hasAttachments: false,
|
|
356
|
+
allowedRoutes: customerWithInvoiceRoutes
|
|
357
|
+
});
|
|
358
|
+
assert(!!customerWithInvoiceResult, 'Expected fast-path response for customer invoice user');
|
|
359
|
+
assert(
|
|
360
|
+
(customerWithInvoiceResult?.routes || []).some(route => route.includes('/customer-portal/invoice/list')),
|
|
361
|
+
'Expected customer portal invoice route for permitted customer user'
|
|
362
|
+
);
|
|
363
|
+
|
|
364
|
+
const customerNoInvoiceRoutes = collectAssistantAllowedRoutesForUser(USERS.customerNoInvoice, ALL_ROUTES, false);
|
|
365
|
+
const customerNoInvoiceResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
366
|
+
message: invoicePrompt,
|
|
367
|
+
hasAttachments: false,
|
|
368
|
+
allowedRoutes: customerNoInvoiceRoutes
|
|
369
|
+
});
|
|
370
|
+
assert(!!customerNoInvoiceResult, 'Expected fast-path response for customer no-invoice user');
|
|
371
|
+
assert(
|
|
372
|
+
!(customerNoInvoiceResult?.routes || []).some(route => route.includes('/invoice')),
|
|
373
|
+
'Expected no invoice routes for customer without invoice permissions'
|
|
374
|
+
);
|
|
375
|
+
assert(
|
|
376
|
+
customerNoInvoiceResult?.reason === 'permission_denied' || customerNoInvoiceResult?.reason === 'ranked',
|
|
377
|
+
'Expected denied/ranked fallback reason for customer no-invoice prompt'
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
function testNavigationFastPathFuzzyRoutePermissions() {
|
|
382
|
+
const blendPrompt = 'Need the route link for chemical blend list';
|
|
383
|
+
const blendRoutes = collectAssistantAllowedRoutesForUser(USERS.internalBlendPlural, ALL_ROUTES, false);
|
|
384
|
+
const blendResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
385
|
+
message: blendPrompt,
|
|
386
|
+
hasAttachments: false,
|
|
387
|
+
allowedRoutes: blendRoutes
|
|
388
|
+
});
|
|
389
|
+
assert(!!blendResult, 'Expected fast-path response for blend-permitted user');
|
|
390
|
+
assert(
|
|
391
|
+
(blendResult?.routes || []).some(route => route.includes('/chemical-blend/list')),
|
|
392
|
+
'Expected canonical blend route for plural blend permission'
|
|
393
|
+
);
|
|
394
|
+
|
|
395
|
+
const noBlendRoutes = collectAssistantAllowedRoutesForUser(USERS.internalNoInvoice, ALL_ROUTES, false);
|
|
396
|
+
const noBlendResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
397
|
+
message: blendPrompt,
|
|
398
|
+
hasAttachments: false,
|
|
399
|
+
allowedRoutes: noBlendRoutes
|
|
400
|
+
});
|
|
401
|
+
assert(!!noBlendResult, 'Expected fast-path response for blend-denied user');
|
|
402
|
+
assert(
|
|
403
|
+
!(noBlendResult?.routes || []).some(route => route.includes('/chemical-blend')),
|
|
404
|
+
'Expected blend-denied user to avoid blend routes'
|
|
405
|
+
);
|
|
406
|
+
assert(
|
|
407
|
+
noBlendResult?.reason === 'permission_denied' || noBlendResult?.reason === 'ranked',
|
|
408
|
+
'Expected denied/ranked fallback reason for blend-denied user'
|
|
409
|
+
);
|
|
410
|
+
|
|
411
|
+
const orderAliasResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
412
|
+
message: 'I need the route link for /order/list',
|
|
413
|
+
hasAttachments: false,
|
|
414
|
+
allowedRoutes: noBlendRoutes
|
|
415
|
+
});
|
|
416
|
+
assert(!!orderAliasResult, 'Expected fast-path response for /order/list alias route');
|
|
417
|
+
assert(
|
|
418
|
+
(orderAliasResult?.routes || []).some(route => route.includes('/order/list') || route.includes('/work-order/list')),
|
|
419
|
+
'Expected order alias prompt to map to order/work-order route'
|
|
420
|
+
);
|
|
421
|
+
|
|
422
|
+
const listingResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
423
|
+
message: 'Where can I find a listing of assets?',
|
|
424
|
+
hasAttachments: false,
|
|
425
|
+
allowedRoutes: ['/asset/new', '/asset/edit', '/asset/list']
|
|
426
|
+
});
|
|
427
|
+
assert(!!listingResult, 'Expected fast-path response for asset listing route prompt');
|
|
428
|
+
assert(
|
|
429
|
+
listingResult?.routes?.[0] === '/asset/list',
|
|
430
|
+
'Expected asset list to outrank asset new/edit for listing prompt'
|
|
431
|
+
);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
function testFastPathSkipsAttachmentAndDataPrompts() {
|
|
435
|
+
const routes = collectAssistantAllowedRoutesForUser(USERS.internalInvoice, ALL_ROUTES, false);
|
|
436
|
+
const attachmentResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
437
|
+
message: 'What route link for invoice list?',
|
|
438
|
+
hasAttachments: true,
|
|
439
|
+
allowedRoutes: routes
|
|
440
|
+
});
|
|
441
|
+
assert(!attachmentResult, 'Expected attachments to disable navigation fast path');
|
|
442
|
+
|
|
443
|
+
const dataResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
444
|
+
message: 'How many invoices were paid this month?',
|
|
445
|
+
hasAttachments: false,
|
|
446
|
+
allowedRoutes: routes
|
|
447
|
+
});
|
|
448
|
+
assert(!dataResult, 'Expected quantitative data prompt to skip navigation fast path');
|
|
449
|
+
|
|
450
|
+
const changeHistoryResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
451
|
+
message: 'What changed on this page?',
|
|
452
|
+
hasAttachments: false,
|
|
453
|
+
allowedRoutes: routes
|
|
454
|
+
});
|
|
455
|
+
assert(!changeHistoryResult, 'Expected change-history prompt to skip navigation fast path');
|
|
456
|
+
const durationOnPageResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
457
|
+
message: 'How long has the exception list been on this page?',
|
|
458
|
+
hasAttachments: false,
|
|
459
|
+
allowedRoutes: routes
|
|
460
|
+
});
|
|
461
|
+
assert(!durationOnPageResult, 'Expected "how long on this page" prompt to skip navigation fast path');
|
|
462
|
+
|
|
463
|
+
const bugIssueResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
464
|
+
message: 'Why don\'t I see this asset in this dropdown?',
|
|
465
|
+
hasAttachments: false,
|
|
466
|
+
allowedRoutes: routes
|
|
467
|
+
});
|
|
468
|
+
assert(!bugIssueResult, 'Expected bug/issue prompt to skip navigation fast path');
|
|
469
|
+
|
|
470
|
+
const contextDependentDashboardResult = evaluateAssistantNavigationFastPathWithRoutes({
|
|
471
|
+
message: 'Is there not a Dashboard Page that displays this information?',
|
|
472
|
+
hasAttachments: false,
|
|
473
|
+
allowedRoutes: ['/dashboard/gc', '/dashboard/qa', '/dashboard/qb', '/dashboard/asset-supervisor']
|
|
474
|
+
});
|
|
475
|
+
assert(
|
|
476
|
+
!contextDependentDashboardResult,
|
|
477
|
+
'Expected context-dependent dashboard follow-up to skip generic route fast path'
|
|
478
|
+
);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
function testChangeHistoryFastPathAndPermissionSummary() {
|
|
482
|
+
assert(
|
|
483
|
+
shouldUseAssistantChangeHistoryFastPath('What changed recently in invoices?', false),
|
|
484
|
+
'Expected change-history question to use change-history fast path'
|
|
485
|
+
);
|
|
486
|
+
assert(
|
|
487
|
+
shouldUseAssistantChangeHistoryFastPath('When was the last time the invoice document was updated?', false),
|
|
488
|
+
'Expected "last updated" question to use change-history fast path'
|
|
489
|
+
);
|
|
490
|
+
assert(
|
|
491
|
+
shouldUseAssistantChangeHistoryFastPath('When does this dropdown for XYZ get added to this page?', false),
|
|
492
|
+
'Expected "dropdown added" question to use change-history fast path'
|
|
493
|
+
);
|
|
494
|
+
assert(
|
|
495
|
+
shouldUseAssistantChangeHistoryFastPath('What changed on this page?', false),
|
|
496
|
+
'Expected "what changed on this page" question to use change-history fast path'
|
|
497
|
+
);
|
|
498
|
+
assert(
|
|
499
|
+
shouldUseAssistantChangeHistoryFastPath('What changed on the invoice page?', false),
|
|
500
|
+
'Expected "what changed on invoice page" question to use change-history fast path'
|
|
501
|
+
);
|
|
502
|
+
assert(
|
|
503
|
+
shouldUseAssistantChangeHistoryFastPath('What did the last update just do?', false),
|
|
504
|
+
'Expected "last update did" question to use change-history fast path'
|
|
505
|
+
);
|
|
506
|
+
assert(
|
|
507
|
+
shouldUseAssistantChangeHistoryFastPath('What did the last system update do?', false),
|
|
508
|
+
'Expected "last system update did" question to use change-history fast path'
|
|
509
|
+
);
|
|
510
|
+
assert(
|
|
511
|
+
shouldUseAssistantChangeHistoryFastPath('What is this new exception list? How long has it been around?', false),
|
|
512
|
+
'Expected "been around" question to use change-history fast path'
|
|
513
|
+
);
|
|
514
|
+
assert(
|
|
515
|
+
shouldUseAssistantChangeHistoryFastPath('How long has the exception list been on this page?', false),
|
|
516
|
+
'Expected "been on this page" question to use change-history fast path'
|
|
517
|
+
);
|
|
518
|
+
assert(
|
|
519
|
+
!shouldUseAssistantChangeHistoryFastPath('What changed recently in invoices?', true),
|
|
520
|
+
'Expected attachments to disable change-history fast path'
|
|
521
|
+
);
|
|
522
|
+
|
|
523
|
+
const commits = [
|
|
524
|
+
{
|
|
525
|
+
date: '2026-02-05T12:00:00.000Z',
|
|
526
|
+
subject: 'Fix invoice approval validation edge case',
|
|
527
|
+
files: ['server/invoice/approval.ts'],
|
|
528
|
+
modules: ['invoice']
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
date: '2026-02-04T12:00:00.000Z',
|
|
532
|
+
subject: 'Improve work order dispatch retries',
|
|
533
|
+
files: ['server/work-order/dispatch.ts'],
|
|
534
|
+
modules: ['work_order']
|
|
535
|
+
}
|
|
536
|
+
] as any[];
|
|
537
|
+
|
|
538
|
+
const permitted = buildAssistantChangeHistorySummaryFromCommits({
|
|
539
|
+
message: 'What changed recently in invoices?',
|
|
540
|
+
user: USERS.internalInvoice,
|
|
541
|
+
isSuperAdmin: false,
|
|
542
|
+
commits,
|
|
543
|
+
branch: 'main',
|
|
544
|
+
now: new Date('2026-02-08T00:00:00.000Z')
|
|
545
|
+
});
|
|
546
|
+
assert(!permitted.generic, 'Expected invoice-permitted user to receive non-generic change summary');
|
|
547
|
+
assert(
|
|
548
|
+
String(permitted.response || '').includes('Fix invoice approval validation edge case'),
|
|
549
|
+
'Expected permitted summary to include invoice change detail'
|
|
550
|
+
);
|
|
551
|
+
|
|
552
|
+
const restricted = buildAssistantChangeHistorySummaryFromCommits({
|
|
553
|
+
message: 'What changed recently in invoices?',
|
|
554
|
+
user: USERS.internalNoInvoice,
|
|
555
|
+
isSuperAdmin: false,
|
|
556
|
+
commits,
|
|
557
|
+
branch: 'main',
|
|
558
|
+
now: new Date('2026-02-08T00:00:00.000Z')
|
|
559
|
+
});
|
|
560
|
+
assert(restricted.generic, 'Expected invoice-restricted user to receive generic change summary');
|
|
561
|
+
assert(
|
|
562
|
+
!String(restricted.response || '').includes('Fix invoice approval validation edge case'),
|
|
563
|
+
'Expected restricted summary to omit invoice detail'
|
|
564
|
+
);
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
function run() {
|
|
568
|
+
testPromptClassificationCoverage();
|
|
569
|
+
testUserAccessTiersAndInvoicePermissions();
|
|
570
|
+
testAllowedRoutesByUser();
|
|
571
|
+
testNavigationFastPathPermissions();
|
|
572
|
+
testNavigationFastPathFuzzyRoutePermissions();
|
|
573
|
+
testFastPathSkipsAttachmentAndDataPrompts();
|
|
574
|
+
testChangeHistoryFastPathAndPermissionSummary();
|
|
575
|
+
console.log('ai assistant routing eval tests passed');
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
try {
|
|
579
|
+
run();
|
|
580
|
+
process.exit(process.exitCode ?? 0);
|
|
581
|
+
}
|
|
582
|
+
catch (error) {
|
|
583
|
+
console.error(error);
|
|
584
|
+
process.exit(1);
|
|
585
|
+
}
|