@memberjunction/ng-dashboards 6.2.0-edge.5 → 6.2.0-edge.6

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.
Files changed (143) hide show
  1. package/README.md +28 -0
  2. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
  3. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  4. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +15 -7
  5. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  6. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
  7. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  8. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +209 -57
  9. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  10. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
  11. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
  12. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
  13. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
  14. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  15. package/dist/AI/components/execution-monitoring.component.js +28 -16
  16. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  17. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
  18. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  19. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +30 -6
  20. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  21. package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
  22. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  23. package/dist/AI/components/tags/tags-resource.component.js +15 -7
  24. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  25. package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
  26. package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
  27. package/dist/AI/components/vectors/sensitive-fields.js +39 -14
  28. package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
  29. package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
  30. package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
  31. package/dist/AI/components/vectors/vector-document-rules.js +14 -0
  32. package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
  33. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
  34. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  35. package/dist/AI/components/vectors/vector-management-resource.component.js +127 -50
  36. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  37. package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
  38. package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
  39. package/dist/AI/components/vectors/vector-store-selection.js +57 -0
  40. package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
  41. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +236 -0
  42. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
  43. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +374 -0
  44. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
  45. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +195 -0
  46. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +1 -0
  47. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +2910 -0
  48. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +1 -0
  49. package/dist/ChiefOfStaff/index.d.ts +3 -0
  50. package/dist/ChiefOfStaff/index.d.ts.map +1 -0
  51. package/dist/ChiefOfStaff/index.js +3 -0
  52. package/dist/ChiefOfStaff/index.js.map +1 -0
  53. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  54. package/dist/Communication/communication-logs-resource.component.js +2 -1
  55. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  56. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  57. package/dist/Communication/communication-monitor-resource.component.js +23 -18
  58. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  59. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  60. package/dist/Communication/communication-runs-resource.component.js +11 -10
  61. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  62. package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
  63. package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
  64. package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
  65. package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
  66. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +24 -0
  67. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  68. package/dist/DataExplorer/data-explorer-dashboard.component.js +146 -50
  69. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  70. package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
  71. package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
  72. package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
  73. package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
  74. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
  75. package/dist/LoginStudio/login-studio-resource.component.js +110 -77
  76. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
  77. package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
  78. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  79. package/dist/MCP/mcp-dashboard.component.js +118 -65
  80. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  81. package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
  82. package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
  83. package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
  84. package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
  85. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
  86. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  87. package/dist/PredictiveStudio/components/ps-experiments.component.js +256 -521
  88. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  89. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
  90. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
  91. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +122 -249
  92. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
  93. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
  94. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
  95. package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
  96. package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
  97. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
  98. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
  99. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +335 -326
  100. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
  101. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
  102. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
  103. package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
  104. package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
  105. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
  106. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
  107. package/dist/PredictiveStudio/engine/predictive-studio.engine.js +51 -2
  108. package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
  109. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
  110. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
  111. package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
  112. package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
  113. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
  114. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
  115. package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
  116. package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
  117. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
  118. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  119. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +185 -103
  120. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  121. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
  122. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
  123. package/dist/ai-dashboards.module.d.ts +22 -21
  124. package/dist/ai-dashboards.module.d.ts.map +1 -1
  125. package/dist/ai-dashboards.module.js +8 -2
  126. package/dist/ai-dashboards.module.js.map +1 -1
  127. package/dist/public-api.d.ts +2 -0
  128. package/dist/public-api.d.ts.map +1 -1
  129. package/dist/public-api.js +3 -0
  130. package/dist/public-api.js.map +1 -1
  131. package/package.json +71 -71
  132. package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
  133. package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
  134. package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
  135. package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
  136. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
  137. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
  138. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
  139. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
  140. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
  141. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
  142. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
  143. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Public API Surface of dashboards\n */\n\n// Dashboards\nexport * from './EntityAdmin/entity-admin-dashboard.component';\nexport * from './ComponentStudio';\nexport * from './Scheduling/scheduling-dashboard.component';\nexport * from './Testing/testing-dashboard.component';\nexport * from './DataExplorer';\nexport * from './Communication/communication-dashboard.component';\nexport * from './Credentials';\nexport * from './SystemDiagnostics';\nexport * from './ThemeStudio/theme-studio-dashboard.component';\nexport * from './ThemeStudio/theme-studio-resource.component';\nexport * from './ThemeStudio/theme-manager-dashboard.component';\nexport * from './ThemeStudio/theme-manager-resource.component';\nexport * from './LoginStudio/login-studio-resource.component';\nexport * from './DevTools';\nexport * from './Admin';\nexport * from './Lists';\n\n// Export AI components as resources (BaseResourceComponent-based)\nexport {\n ExecutionMonitoringComponent,\n PromptManagementComponent,\n AgentConfigurationComponent,\n ModelManagementComponent,\n SystemConfigurationComponent,\n KPICardComponent,\n LiveExecutionWidgetComponent,\n TimeSeriesChartComponent,\n PerformanceHeatmapComponent,\n AgentRequestsResourceComponent,\n AutotaggingPipelineResourceComponent,\n TagsResourceComponent,\n LoadTagsResource,\n VectorManagementResourceComponent,\n DuplicateDetectionResourceComponent,\n AIAnalyticsResourceComponent,\n LoadAIAnalyticsResource,\n AnalyticsFilterBarComponent,\n AIOverviewHubComponent,\n LoadAIOverviewHub,\n AnalyticsExecutiveSummaryComponent,\n LoadAnalyticsExecutiveSummary,\n AnalyticsPromptRunsComponent,\n LoadAnalyticsPromptRuns,\n AnalyticsAgentRunsComponent,\n LoadAnalyticsAgentRuns,\n AnalyticsModelPerformanceComponent,\n LoadAnalyticsModelPerformance,\n AnalyticsCostBudgetComponent,\n LoadAnalyticsCostBudget,\n AnalyticsErrorAnalysisComponent,\n LoadAnalyticsErrorAnalysis,\n AnalyticsUsagePatternsComponent,\n LoadAnalyticsUsagePatterns,\n UsageExplorerComponent,\n LoadUsageExplorer\n} from './AI/index';\n\n// Knowledge Hub components\nexport {\n KnowledgeConfigResourceComponent,\n LoadKnowledgeConfigResource\n} from './KnowledgeHub/components/config/knowledge-config-resource.component';\nexport { SearchResultDetailComponent } from './KnowledgeHub/components/results-detail/search-result-detail.component';\nexport {\n ClusterVisualizationResourceComponent,\n LoadClusterVisualizationResource\n} from './KnowledgeHub/components/clusters/cluster-visualization-resource.component';\nexport {\n VisualizeResourceComponent,\n LoadVisualizeResource\n} from './KnowledgeHub/components/visualize/visualize-resource.component';\nexport { TagCloudComponent } from './KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component';\nexport { RecordDrilldownComponent } from './KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component';\nexport {\n AnalyticsResourceComponent,\n LoadAnalyticsResource\n} from './KnowledgeHub/components/analytics/analytics-resource.component';\nexport {\n FeaturePipelinesResourceComponent,\n LoadFeaturePipelinesResource\n} from './KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component';\n\n// Archiving components\nexport {\n ArchiveConfigResourceComponent,\n LoadArchiveConfigResource\n} from './Archiving/components/archive-config-resource.component';\nexport {\n ArchiveRunsResourceComponent,\n LoadArchiveRunsResource\n} from './Archiving/components/archive-runs-resource.component';\n\n// Export Actions components as resources (BaseResourceComponent-based)\nexport {\n ActionsOverviewComponent,\n CodeManagementComponent,\n EntityIntegrationComponent,\n SecurityPermissionsComponent,\n // Action Explorer components\n ActionExplorerComponent,\n ActionTreePanelComponent,\n ActionBreadcrumbComponent,\n ActionCardComponent,\n ActionListItemComponent,\n NewCategoryPanelComponent,\n NewActionPanelComponent,\n // State service\n ActionExplorerStateService\n} from './Actions';\n\n// Re-export Actions ExecutionMonitoringComponent (renamed to avoid conflict with AI version)\nexport { ActionExecutionMonitoringComponent } from './Actions/components/execution-monitoring.component';\n\n// Export Scheduling components as resources (BaseResourceComponent-based)\nexport {\n SchedulingOverviewResourceComponent,\n SchedulingJobsResourceComponent,\n SchedulingActivityResourceComponent\n} from './Scheduling/components';\n\n// Export Communication components as resources\nexport {\n CommunicationMonitorResourceComponent\n} from './Communication/communication-monitor-resource.component';\nexport {\n CommunicationLogsResourceComponent\n} from './Communication/communication-logs-resource.component';\nexport {\n CommunicationProvidersResourceComponent\n} from './Communication/communication-providers-resource.component';\nexport {\n CommunicationRunsResourceComponent\n} from './Communication/communication-runs-resource.component';\nexport {\n CommunicationTemplatesResourceComponent\n} from './Communication/communication-templates-resource.component';\nexport {\n CommunicationsNewMessageResource,\n LoadCommunicationsNewMessageResource\n} from './Communication/communication-new-message-resource.component';\n\n// Export Testing components as resources (BaseResourceComponent-based)\nexport {\n TestingDashboardTabResourceComponent,\n TestingRunsResourceComponent,\n TestingAnalyticsResourceComponent,\n TestingReviewResourceComponent,\n TestingExplorerResourceComponent\n} from './Testing/components';\n\n// Query Browser\nexport {\n QueryBrowserResourceComponent\n} from './QueryBrowser/query-browser-resource.component';\n\n// Dashboard Browser\nexport {\n DashboardBrowserResourceComponent\n} from './DashboardBrowser/dashboard-browser-resource.component';\nexport {\n DashboardShareDialogComponent,\n ShareDialogResult\n} from './DashboardBrowser/dashboard-share-dialog.component';\n\n// Dashboards app pages (the Library is DashboardBrowserResourceComponent above)\nexport { DashboardsCategoriesResourceComponent, LoadDashboardsCategoriesResource } from './DashboardBrowser/dashboards-categories-resource.component';\nexport * from './shared/dashboards-app.helpers';\n\n// Home Application and Dashboard\nexport { HomeApplication } from './Home/home-application';\nexport { HomeDashboardComponent } from './Home/home-dashboard.component';\n\n// Application Roles\nexport { ApplicationRolesResourceComponent, LoadApplicationRolesResource } from './ApplicationRoles/application-roles-resource.component';\n\n// Realtime Recordings — review & replay recorded realtime sessions (audio + transcript)\nexport { RealtimeRecordingsDashboardComponent, LoadRealtimeRecordingsDashboard } from './RealtimeRecordings/realtime-recordings-dashboard.component';\n\n// Telephony & Interaction Operations\nexport { TelephonyOperationsDashboardComponent } from './TelephonyOperations/telephony-operations-dashboard.component';\nexport * from './TelephonyOperations/telephony-operations-agent-context';\n\n// Permissions admin — three independent resource tabs (Phase 2a/b/c — unified permissions)\nexport {\n PermissionsUserAccessResourceComponent,\n LoadPermissionsUserAccessResource,\n} from './Permissions/user-access-resource.component';\nexport {\n PermissionsResourceAccessResourceComponent,\n LoadPermissionsResourceAccessResource,\n} from './Permissions/resource-access-resource.component';\nexport {\n PermissionsAuditLogResourceComponent,\n LoadPermissionsAuditLogResource,\n} from './Permissions/audit-log-resource.component';\n\n// API Keys\nexport { APIKeysResourceComponent } from './APIKeys/api-keys-resource.component';\nexport { APIKeyCreateDialogComponent, APIKeyCreateResult } from './APIKeys/api-key-create-dialog.component';\nexport { APIKeyEditPanelComponent } from './APIKeys/api-key-edit-panel.component';\nexport { APIKeyListComponent, APIKeyFilter } from './APIKeys/api-key-list.component';\nexport { APIApplicationsPanelComponent } from './APIKeys/api-applications-panel.component';\nexport { APIScopesPanelComponent } from './APIKeys/api-scopes-panel.component';\nexport { APIUsagePanelComponent } from './APIKeys/api-usage-panel.component';\n\n// MCP (Model Context Protocol)\nexport * from './MCP';\n\n// Version History Dashboard Components\nexport * from './VersionHistory';\n\n// Integration Dashboard\nexport * from './Integration';\n\n// NOTE: DashboardsModule (backward-compatible wrapper that imports ALL feature modules) is\n// intentionally not re-exported from the barrel to enable ESBuild code splitting.\n// Consumers who need it: import { DashboardsModule } from '@memberjunction/ng-dashboards/module'\n\n// Feature modules for lazy loading\nexport * from './core-dashboards.module';\nexport * from './ai-dashboards.module';\nexport * from './actions-dashboards.module';\nexport * from './testing-dashboards.module';\nexport * from './scheduling-dashboards.module';\nexport * from './rubrics-dashboards.module';\nexport * from './communication-dashboards.module';\nexport * from './credentials-dashboards.module';\nexport * from './data-explorer-dashboards.module';\nexport * from './lists-dashboards.module';\nexport * from './routines-dashboards.module';\nexport * from './component-studio-dashboards.module';\nexport * from './predictive-studio-dashboards.module';\n\n// Workflows app — the workflow list, the Create Workflow front door, and the run history (D18/D19).\nexport * from './workflows-dashboards.module';\nexport * from './Workflows/workflows-dashboard.component';\nexport * from './Workflows/components/create-workflow.component';\nexport * from './Workflows/components/workflows-resource.component';\nexport * from './Workflows/components/workflow-runs-resource.component';\nexport * from './Workflows/workflows.types';\nexport { PredictiveStudioEngine } from './PredictiveStudio/engine/predictive-studio.engine';\nexport * from './DatabaseDesigner/database-designer-dashboards.module';\nexport { DatabaseDesignerDashboardComponent, LoadDatabaseDesignerDashboard } from './DatabaseDesigner/components/database-designer-dashboard.component';\nexport * from './shared/shared-dashboard-widgets.module';\nexport * from './archiving-dashboards.module';\n\n// Work Queue app — operator dashboard over the WorkQueue.* remote operations (spec 09b)\nexport * from './work-queue-dashboards.module';\nexport { WorkQueueDashboardComponent } from './WorkQueue/work-queue-dashboard.component';\n\n// Routines app — schedule AI agents to run on a cron cadence\nexport { UserRoutinesResourceComponent, LoadUserRoutinesResource } from './UserRoutines/user-routines-resource.component';\n"]}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Public API Surface of dashboards\n */\n\n// Dashboards\nexport * from './EntityAdmin/entity-admin-dashboard.component';\nexport * from './ComponentStudio';\nexport * from './Scheduling/scheduling-dashboard.component';\nexport * from './Testing/testing-dashboard.component';\nexport * from './DataExplorer';\nexport * from './Communication/communication-dashboard.component';\nexport * from './Credentials';\nexport * from './SystemDiagnostics';\nexport * from './ThemeStudio/theme-studio-dashboard.component';\nexport * from './ThemeStudio/theme-studio-resource.component';\nexport * from './ThemeStudio/theme-manager-dashboard.component';\nexport * from './ThemeStudio/theme-manager-resource.component';\nexport * from './LoginStudio/login-studio-resource.component';\nexport * from './DevTools';\nexport * from './Admin';\nexport * from './Lists';\n\n// Export AI components as resources (BaseResourceComponent-based)\nexport {\n ExecutionMonitoringComponent,\n PromptManagementComponent,\n AgentConfigurationComponent,\n ModelManagementComponent,\n SystemConfigurationComponent,\n KPICardComponent,\n LiveExecutionWidgetComponent,\n TimeSeriesChartComponent,\n PerformanceHeatmapComponent,\n AgentRequestsResourceComponent,\n AutotaggingPipelineResourceComponent,\n TagsResourceComponent,\n LoadTagsResource,\n VectorManagementResourceComponent,\n DuplicateDetectionResourceComponent,\n AIAnalyticsResourceComponent,\n LoadAIAnalyticsResource,\n AnalyticsFilterBarComponent,\n AIOverviewHubComponent,\n LoadAIOverviewHub,\n AnalyticsExecutiveSummaryComponent,\n LoadAnalyticsExecutiveSummary,\n AnalyticsPromptRunsComponent,\n LoadAnalyticsPromptRuns,\n AnalyticsAgentRunsComponent,\n LoadAnalyticsAgentRuns,\n AnalyticsModelPerformanceComponent,\n LoadAnalyticsModelPerformance,\n AnalyticsCostBudgetComponent,\n LoadAnalyticsCostBudget,\n AnalyticsErrorAnalysisComponent,\n LoadAnalyticsErrorAnalysis,\n AnalyticsUsagePatternsComponent,\n LoadAnalyticsUsagePatterns,\n UsageExplorerComponent,\n LoadUsageExplorer\n} from './AI/index';\n\n// Knowledge Hub components\nexport {\n KnowledgeConfigResourceComponent,\n LoadKnowledgeConfigResource\n} from './KnowledgeHub/components/config/knowledge-config-resource.component';\nexport { SearchResultDetailComponent } from './KnowledgeHub/components/results-detail/search-result-detail.component';\nexport {\n ClusterVisualizationResourceComponent,\n LoadClusterVisualizationResource\n} from './KnowledgeHub/components/clusters/cluster-visualization-resource.component';\nexport {\n VisualizeResourceComponent,\n LoadVisualizeResource\n} from './KnowledgeHub/components/visualize/visualize-resource.component';\nexport { TagCloudComponent } from './KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component';\nexport { RecordDrilldownComponent } from './KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component';\nexport {\n AnalyticsResourceComponent,\n LoadAnalyticsResource\n} from './KnowledgeHub/components/analytics/analytics-resource.component';\nexport {\n FeaturePipelinesResourceComponent,\n LoadFeaturePipelinesResource\n} from './KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component';\n\n// Archiving components\nexport {\n ArchiveConfigResourceComponent,\n LoadArchiveConfigResource\n} from './Archiving/components/archive-config-resource.component';\nexport {\n ArchiveRunsResourceComponent,\n LoadArchiveRunsResource\n} from './Archiving/components/archive-runs-resource.component';\n\n// Export Actions components as resources (BaseResourceComponent-based)\nexport {\n ActionsOverviewComponent,\n CodeManagementComponent,\n EntityIntegrationComponent,\n SecurityPermissionsComponent,\n // Action Explorer components\n ActionExplorerComponent,\n ActionTreePanelComponent,\n ActionBreadcrumbComponent,\n ActionCardComponent,\n ActionListItemComponent,\n NewCategoryPanelComponent,\n NewActionPanelComponent,\n // State service\n ActionExplorerStateService\n} from './Actions';\n\n// Re-export Actions ExecutionMonitoringComponent (renamed to avoid conflict with AI version)\nexport { ActionExecutionMonitoringComponent } from './Actions/components/execution-monitoring.component';\n\n// Export Scheduling components as resources (BaseResourceComponent-based)\nexport {\n SchedulingOverviewResourceComponent,\n SchedulingJobsResourceComponent,\n SchedulingActivityResourceComponent\n} from './Scheduling/components';\n\n// Export Communication components as resources\nexport {\n CommunicationMonitorResourceComponent\n} from './Communication/communication-monitor-resource.component';\nexport {\n CommunicationLogsResourceComponent\n} from './Communication/communication-logs-resource.component';\nexport {\n CommunicationProvidersResourceComponent\n} from './Communication/communication-providers-resource.component';\nexport {\n CommunicationRunsResourceComponent\n} from './Communication/communication-runs-resource.component';\nexport {\n CommunicationTemplatesResourceComponent\n} from './Communication/communication-templates-resource.component';\nexport {\n CommunicationsNewMessageResource,\n LoadCommunicationsNewMessageResource\n} from './Communication/communication-new-message-resource.component';\n\n// Export Testing components as resources (BaseResourceComponent-based)\nexport {\n TestingDashboardTabResourceComponent,\n TestingRunsResourceComponent,\n TestingAnalyticsResourceComponent,\n TestingReviewResourceComponent,\n TestingExplorerResourceComponent\n} from './Testing/components';\n\n// Query Browser\nexport {\n QueryBrowserResourceComponent\n} from './QueryBrowser/query-browser-resource.component';\n\n// Dashboard Browser\nexport {\n DashboardBrowserResourceComponent\n} from './DashboardBrowser/dashboard-browser-resource.component';\nexport {\n DashboardShareDialogComponent,\n ShareDialogResult\n} from './DashboardBrowser/dashboard-share-dialog.component';\n\n// Dashboards app pages (the Library is DashboardBrowserResourceComponent above)\nexport { DashboardsCategoriesResourceComponent, LoadDashboardsCategoriesResource } from './DashboardBrowser/dashboards-categories-resource.component';\nexport * from './shared/dashboards-app.helpers';\n\n// Home Application and Dashboard\nexport { HomeApplication } from './Home/home-application';\nexport { HomeDashboardComponent } from './Home/home-dashboard.component';\n\n// Application Roles\nexport { ApplicationRolesResourceComponent, LoadApplicationRolesResource } from './ApplicationRoles/application-roles-resource.component';\n\n// Realtime Recordings — review & replay recorded realtime sessions (audio + transcript)\nexport { RealtimeRecordingsDashboardComponent, LoadRealtimeRecordingsDashboard } from './RealtimeRecordings/realtime-recordings-dashboard.component';\n\n// Telephony & Interaction Operations\nexport { TelephonyOperationsDashboardComponent } from './TelephonyOperations/telephony-operations-dashboard.component';\nexport * from './TelephonyOperations/telephony-operations-agent-context';\n\n// Permissions admin — three independent resource tabs (Phase 2a/b/c — unified permissions)\nexport {\n PermissionsUserAccessResourceComponent,\n LoadPermissionsUserAccessResource,\n} from './Permissions/user-access-resource.component';\nexport {\n PermissionsResourceAccessResourceComponent,\n LoadPermissionsResourceAccessResource,\n} from './Permissions/resource-access-resource.component';\nexport {\n PermissionsAuditLogResourceComponent,\n LoadPermissionsAuditLogResource,\n} from './Permissions/audit-log-resource.component';\n\n// API Keys\nexport { APIKeysResourceComponent } from './APIKeys/api-keys-resource.component';\nexport { APIKeyCreateDialogComponent, APIKeyCreateResult } from './APIKeys/api-key-create-dialog.component';\nexport { APIKeyEditPanelComponent } from './APIKeys/api-key-edit-panel.component';\nexport { APIKeyListComponent, APIKeyFilter } from './APIKeys/api-key-list.component';\nexport { APIApplicationsPanelComponent } from './APIKeys/api-applications-panel.component';\nexport { APIScopesPanelComponent } from './APIKeys/api-scopes-panel.component';\nexport { APIUsagePanelComponent } from './APIKeys/api-usage-panel.component';\n\n// MCP (Model Context Protocol)\nexport * from './MCP';\n\n// Version History Dashboard Components\nexport * from './VersionHistory';\n\n// Integration Dashboard\nexport * from './Integration';\n\n// NOTE: DashboardsModule (backward-compatible wrapper that imports ALL feature modules) is\n// intentionally not re-exported from the barrel to enable ESBuild code splitting.\n// Consumers who need it: import { DashboardsModule } from '@memberjunction/ng-dashboards/module'\n\n// Feature modules for lazy loading\nexport * from './core-dashboards.module';\nexport * from './ai-dashboards.module';\nexport * from './actions-dashboards.module';\nexport * from './testing-dashboards.module';\nexport * from './scheduling-dashboards.module';\nexport * from './rubrics-dashboards.module';\nexport * from './communication-dashboards.module';\nexport * from './credentials-dashboards.module';\nexport * from './data-explorer-dashboards.module';\nexport * from './lists-dashboards.module';\nexport * from './routines-dashboards.module';\nexport * from './component-studio-dashboards.module';\nexport * from './predictive-studio-dashboards.module';\n\n// Workflows app — the workflow list, the Create Workflow front door, and the run history (D18/D19).\nexport * from './workflows-dashboards.module';\nexport * from './Workflows/workflows-dashboard.component';\nexport * from './Workflows/components/create-workflow.component';\nexport * from './Workflows/components/workflows-resource.component';\nexport * from './Workflows/components/workflow-runs-resource.component';\nexport * from './Workflows/workflows.types';\nexport { PredictiveStudioEngine } from './PredictiveStudio/engine/predictive-studio.engine';\nexport * from './DatabaseDesigner/database-designer-dashboards.module';\nexport { DatabaseDesignerDashboardComponent, LoadDatabaseDesignerDashboard } from './DatabaseDesigner/components/database-designer-dashboard.component';\nexport * from './shared/shared-dashboard-widgets.module';\nexport * from './archiving-dashboards.module';\n\n// Work Queue app — operator dashboard over the WorkQueue.* remote operations (spec 09b)\nexport * from './work-queue-dashboards.module';\nexport { WorkQueueDashboardComponent } from './WorkQueue/work-queue-dashboard.component';\n\n// Routines app — schedule AI agents to run on a cron cadence\nexport { UserRoutinesResourceComponent, LoadUserRoutinesResource } from './UserRoutines/user-routines-resource.component';\n\n// Chief of Staff Executive Cockpit\nexport {\n ChiefOfStaffDashboardComponent,\n LoadChiefOfStaffDashboard,\n} from './ChiefOfStaff/chief-of-staff-dashboard.component';\nexport * from './ChiefOfStaff/chief-of-staff-agent-context';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-dashboards",
3
- "version": "6.2.0-edge.5",
3
+ "version": "6.2.0-edge.6",
4
4
  "description": "MemberJunction Dashboards",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -98,7 +98,7 @@
98
98
  "@fortawesome/fontawesome-free": "6.7.2",
99
99
  "@types/d3": "^7.4.0",
100
100
  "sass": "^1.97.3",
101
- "@memberjunction/ng-test-utils": "6.2.0-edge.5"
101
+ "@memberjunction/ng-test-utils": "6.2.0-edge.6"
102
102
  },
103
103
  "peerDependencies": {
104
104
  "@angular/animations": "^21.2.22",
@@ -115,74 +115,74 @@
115
115
  "@codemirror/merge": "^6.11.2",
116
116
  "@codemirror/state": "^6.5.4",
117
117
  "@codemirror/view": "^6.39.12",
118
- "@memberjunction/actions-base": "6.2.0-edge.5",
119
- "@memberjunction/ai-core-plus": "6.2.0-edge.5",
120
- "@memberjunction/ai-engine-base": "6.2.0-edge.5",
121
- "@memberjunction/api-keys-base": "6.2.0-edge.5",
122
- "@memberjunction/core": "6.2.0-edge.5",
123
- "@memberjunction/core-entities": "6.2.0-edge.5",
124
- "@memberjunction/credentials": "6.2.0-edge.5",
125
- "@memberjunction/export-engine": "6.2.0-edge.5",
126
- "@memberjunction/feature-pipelines": "6.2.0-edge.5",
127
- "@memberjunction/global": "6.2.0-edge.5",
128
- "@memberjunction/graphql-dataprovider": "6.2.0-edge.5",
129
- "@memberjunction/integration-engine-base": "6.2.0-edge.5",
130
- "@memberjunction/interactive-component-types": "6.2.0-edge.5",
131
- "@memberjunction/lists-base": "6.2.0-edge.5",
132
- "@memberjunction/ng-action-gallery": "6.2.0-edge.5",
133
- "@memberjunction/ng-actions": "6.2.0-edge.5",
134
- "@memberjunction/ng-agent-requests": "6.2.0-edge.5",
135
- "@memberjunction/ng-agents": "6.2.0-edge.5",
136
- "@memberjunction/ng-rubrics": "6.2.0-edge.5",
137
- "@memberjunction/record-set-processor-base": "6.2.0-edge.5",
138
- "@memberjunction/rubrics-base": "6.2.0-edge.5",
139
- "@memberjunction/ng-ai-test-harness": "6.2.0-edge.5",
140
- "@memberjunction/ng-archive-manager": "6.2.0-edge.5",
141
- "@memberjunction/ng-artifacts": "6.2.0-edge.5",
142
- "@memberjunction/ng-base-application": "6.2.0-edge.5",
143
- "@memberjunction/ng-base-forms": "6.2.0-edge.5",
144
- "@memberjunction/ng-base-types": "6.2.0-edge.5",
145
- "@memberjunction/ng-clustering": "6.2.0-edge.5",
146
- "@memberjunction/ng-code-editor": "6.2.0-edge.5",
147
- "@memberjunction/ng-composer": "6.2.0-edge.5",
148
- "@memberjunction/ng-container-directives": "6.2.0-edge.5",
149
- "@memberjunction/ng-conversations": "6.2.0-edge.5",
150
- "@memberjunction/ng-core-entity-forms": "6.2.0-edge.5",
151
- "@memberjunction/ng-credentials": "6.2.0-edge.5",
152
- "@memberjunction/ng-dashboard-viewer": "6.2.0-edge.5",
153
- "@memberjunction/ng-entity-relationship-diagram": "6.2.0-edge.5",
154
- "@memberjunction/ng-entity-viewer": "6.2.0-edge.5",
155
- "@memberjunction/ng-explorer-settings": "6.2.0-edge.5",
156
- "@memberjunction/ng-export-service": "6.2.0-edge.5",
157
- "@memberjunction/ng-filter-builder": "6.2.0-edge.5",
158
- "@memberjunction/ng-list-management": "6.2.0-edge.5",
159
- "@memberjunction/ng-map-view": "6.2.0-edge.5",
160
- "@memberjunction/ng-markdown": "6.2.0-edge.5",
161
- "@memberjunction/ng-media-player": "6.2.0-edge.5",
162
- "@memberjunction/ng-notifications": "6.2.0-edge.5",
163
- "@memberjunction/ng-query-viewer": "6.2.0-edge.5",
164
- "@memberjunction/ng-react": "6.2.0-edge.5",
165
- "@memberjunction/ng-record-process-studio": "6.2.0-edge.5",
166
- "@memberjunction/ng-resource-permissions": "6.2.0-edge.5",
167
- "@memberjunction/ng-scheduling": "6.2.0-edge.5",
168
- "@memberjunction/ng-search": "6.2.0-edge.5",
169
- "@memberjunction/ng-shared": "6.2.0-edge.5",
170
- "@memberjunction/ng-shared-generic": "6.2.0-edge.5",
171
- "@memberjunction/ng-task-graph-editor": "6.2.0-edge.5",
172
- "@memberjunction/ng-tabstrip": "6.2.0-edge.5",
173
- "@memberjunction/ng-testing": "6.2.0-edge.5",
174
- "@memberjunction/ng-trees": "6.2.0-edge.5",
175
- "@memberjunction/ng-ui-components": "6.2.0-edge.5",
176
- "@memberjunction/ng-user-routines": "6.2.0-edge.5",
177
- "@memberjunction/ng-versions": "6.2.0-edge.5",
178
- "@memberjunction/ng-word-cloud": "6.2.0-edge.5",
179
- "@memberjunction/predictive-studio-core": "6.2.0-edge.5",
180
- "@memberjunction/tag-engine-base": "6.2.0-edge.5",
181
- "@memberjunction/templates-base-types": "6.2.0-edge.5",
182
- "@memberjunction/testing-engine-base": "6.2.0-edge.5",
183
- "@memberjunction/theme-engine": "6.2.0-edge.5",
184
- "@memberjunction/work-queue-base": "6.2.0-edge.5",
185
- "@memberjunction/work-queue-core": "6.2.0-edge.5",
118
+ "@memberjunction/actions-base": "6.2.0-edge.6",
119
+ "@memberjunction/ai-core-plus": "6.2.0-edge.6",
120
+ "@memberjunction/ai-engine-base": "6.2.0-edge.6",
121
+ "@memberjunction/api-keys-base": "6.2.0-edge.6",
122
+ "@memberjunction/core": "6.2.0-edge.6",
123
+ "@memberjunction/core-entities": "6.2.0-edge.6",
124
+ "@memberjunction/credentials": "6.2.0-edge.6",
125
+ "@memberjunction/export-engine": "6.2.0-edge.6",
126
+ "@memberjunction/feature-pipelines": "6.2.0-edge.6",
127
+ "@memberjunction/global": "6.2.0-edge.6",
128
+ "@memberjunction/graphql-dataprovider": "6.2.0-edge.6",
129
+ "@memberjunction/integration-engine-base": "6.2.0-edge.6",
130
+ "@memberjunction/interactive-component-types": "6.2.0-edge.6",
131
+ "@memberjunction/lists-base": "6.2.0-edge.6",
132
+ "@memberjunction/ng-action-gallery": "6.2.0-edge.6",
133
+ "@memberjunction/ng-actions": "6.2.0-edge.6",
134
+ "@memberjunction/ng-agent-requests": "6.2.0-edge.6",
135
+ "@memberjunction/ng-agents": "6.2.0-edge.6",
136
+ "@memberjunction/ng-rubrics": "6.2.0-edge.6",
137
+ "@memberjunction/record-set-processor-base": "6.2.0-edge.6",
138
+ "@memberjunction/rubrics-base": "6.2.0-edge.6",
139
+ "@memberjunction/ng-ai-test-harness": "6.2.0-edge.6",
140
+ "@memberjunction/ng-archive-manager": "6.2.0-edge.6",
141
+ "@memberjunction/ng-artifacts": "6.2.0-edge.6",
142
+ "@memberjunction/ng-base-application": "6.2.0-edge.6",
143
+ "@memberjunction/ng-base-forms": "6.2.0-edge.6",
144
+ "@memberjunction/ng-base-types": "6.2.0-edge.6",
145
+ "@memberjunction/ng-clustering": "6.2.0-edge.6",
146
+ "@memberjunction/ng-code-editor": "6.2.0-edge.6",
147
+ "@memberjunction/ng-composer": "6.2.0-edge.6",
148
+ "@memberjunction/ng-container-directives": "6.2.0-edge.6",
149
+ "@memberjunction/ng-conversations": "6.2.0-edge.6",
150
+ "@memberjunction/ng-core-entity-forms": "6.2.0-edge.6",
151
+ "@memberjunction/ng-credentials": "6.2.0-edge.6",
152
+ "@memberjunction/ng-dashboard-viewer": "6.2.0-edge.6",
153
+ "@memberjunction/ng-entity-relationship-diagram": "6.2.0-edge.6",
154
+ "@memberjunction/ng-entity-viewer": "6.2.0-edge.6",
155
+ "@memberjunction/ng-explorer-settings": "6.2.0-edge.6",
156
+ "@memberjunction/ng-export-service": "6.2.0-edge.6",
157
+ "@memberjunction/ng-filter-builder": "6.2.0-edge.6",
158
+ "@memberjunction/ng-list-management": "6.2.0-edge.6",
159
+ "@memberjunction/ng-map-view": "6.2.0-edge.6",
160
+ "@memberjunction/ng-markdown": "6.2.0-edge.6",
161
+ "@memberjunction/ng-media-player": "6.2.0-edge.6",
162
+ "@memberjunction/ng-notifications": "6.2.0-edge.6",
163
+ "@memberjunction/ng-query-viewer": "6.2.0-edge.6",
164
+ "@memberjunction/ng-react": "6.2.0-edge.6",
165
+ "@memberjunction/ng-record-process-studio": "6.2.0-edge.6",
166
+ "@memberjunction/ng-resource-permissions": "6.2.0-edge.6",
167
+ "@memberjunction/ng-scheduling": "6.2.0-edge.6",
168
+ "@memberjunction/ng-search": "6.2.0-edge.6",
169
+ "@memberjunction/ng-shared": "6.2.0-edge.6",
170
+ "@memberjunction/ng-shared-generic": "6.2.0-edge.6",
171
+ "@memberjunction/ng-task-graph-editor": "6.2.0-edge.6",
172
+ "@memberjunction/ng-tabstrip": "6.2.0-edge.6",
173
+ "@memberjunction/ng-testing": "6.2.0-edge.6",
174
+ "@memberjunction/ng-trees": "6.2.0-edge.6",
175
+ "@memberjunction/ng-ui-components": "6.2.0-edge.6",
176
+ "@memberjunction/ng-user-routines": "6.2.0-edge.6",
177
+ "@memberjunction/ng-versions": "6.2.0-edge.6",
178
+ "@memberjunction/ng-word-cloud": "6.2.0-edge.6",
179
+ "@memberjunction/predictive-studio-core": "6.2.0-edge.6",
180
+ "@memberjunction/tag-engine-base": "6.2.0-edge.6",
181
+ "@memberjunction/templates-base-types": "6.2.0-edge.6",
182
+ "@memberjunction/testing-engine-base": "6.2.0-edge.6",
183
+ "@memberjunction/theme-engine": "6.2.0-edge.6",
184
+ "@memberjunction/work-queue-base": "6.2.0-edge.6",
185
+ "@memberjunction/work-queue-core": "6.2.0-edge.6",
186
186
  "ag-grid-angular": "^35.0.1",
187
187
  "ag-grid-community": "^35.0.1",
188
188
  "angular-split": "^20.0.0",
@@ -190,7 +190,7 @@
190
190
  "d3": "^7.8.5",
191
191
  "rxjs": "^7.8.2",
192
192
  "tslib": "^2.8.1",
193
- "@memberjunction/ng-auth-services": "6.2.0-edge.5"
193
+ "@memberjunction/ng-auth-services": "6.2.0-edge.6"
194
194
  },
195
195
  "sideEffects": false,
196
196
  "repository": {
@@ -1,120 +0,0 @@
1
- /**
2
- * Pure derivations for the business workspace's **ranked at-risk list** — turning a model's per-record
3
- * scoring results (`MJ: Process Run Details` payloads) into a "who to focus on" list sorted by risk, and
4
- * the model's global feature importance into plain-language "what's driving this" drivers.
5
- *
6
- * Honest about the gap: MJ stores only GLOBAL feature importance (not per-record/SHAP), so we surface the
7
- * top global drivers once for the whole prediction rather than fabricating per-member attribution.
8
- *
9
- * Framework-free + deterministic → unit-tested with no Angular.
10
- */
11
- import { type OutcomeConfig } from '@memberjunction/predictive-studio-core';
12
- /** A scored record in the at-risk list. */
13
- export interface AtRiskRow {
14
- recordId: string;
15
- /**
16
- * Human-readable label for the record (e.g. the member's name/email), resolved from the model's
17
- * target entity. Null until resolved; the UI falls back to {@link recordId} so the row is never blank.
18
- */
19
- label: string | null;
20
- /** 0–1 prediction score (probability / risk). */
21
- score: number;
22
- /** Risk as a 0–100 integer, for display. */
23
- riskPct: number;
24
- /** Predicted class label, when present (classification). */
25
- class: string | null;
26
- /** Risk band, for color / filtering. */
27
- band: 'high' | 'medium' | 'low' | string;
28
- /** Qualitative status label (e.g. "High", "Critical", "Low Risk"). */
29
- status?: string;
30
- /** Semantic badge color. */
31
- badgeColor?: string;
32
- /** Icon class. */
33
- icon?: string;
34
- /**
35
- * Top signed per-record drivers behind THIS row's prediction (P1-5), humanized + one-hot-collapsed for
36
- * display. `up: true` pushed the risk up, `false` down. Null when the model doesn't produce per-record
37
- * attribution (tree/ensemble/multiclass) — the UI then shows the model's global drivers instead.
38
- */
39
- drivers: RowDriver[] | null;
40
- }
41
- /** A humanized, signed per-record driver for the at-risk row's inline "why". */
42
- export interface RowDriver {
43
- /** Display label (humanized, one-hot base collapsed). */
44
- label: string;
45
- /** Signed contribution magnitude for this row. */
46
- value: number;
47
- /** Whether this pushed the risk UP (value > 0) or down. */
48
- up: boolean;
49
- }
50
- /** Parse + humanize the raw per-record `drivers` (post-preprocessing `feature`/`value`) into {@link RowDriver}s. */
51
- export declare function ParseRowDrivers(raw: unknown): RowDriver[] | null;
52
- /** @deprecated Use {@link ParseRowDrivers}. */
53
- export declare function parseRowDrivers(raw: unknown): RowDriver[] | null;
54
- /**
55
- * Build a human-readable label for a record from its (simple) row of the target entity — preferring a
56
- * single `Name`, else `FirstName`+`LastName`, else `Email`, else any first non-empty string field.
57
- * Returns null when nothing usable is found (caller falls back to the record id).
58
- */
59
- export declare function LabelFromRecord(row: Record<string, unknown> | undefined | null): string | null;
60
- /** @deprecated Use {@link LabelFromRecord}. */
61
- export declare function labelFromRecord(row: Record<string, unknown> | undefined | null): string | null;
62
- /** The raw per-record detail the list is built from (a slice of `MJ: Process Run Details`). */
63
- export interface RunDetailLike {
64
- recordId: string;
65
- ResultPayload?: string | null;
66
- }
67
- /** Options for parsing predictions into at-risk rows. */
68
- export interface ParseAtRiskOptions {
69
- /**
70
- * When true, the model predicts probability of a positive outcome (e.g. `P(Renewed)`).
71
- * Churn / adverse risk is therefore inverted: `riskScore = 1.0 - score`.
72
- * High score (0.99) -> Low Risk (1%, green). Low score (0.10) -> High Risk (90%, red).
73
- */
74
- InvertedRisk?: boolean;
75
- /**
76
- * Configured outcome metadata for the model (labels, thresholds, colors, icons).
77
- * When provided, `resolveScoreBand()` evaluates the dynamic band, status, badgeColor, and icon.
78
- */
79
- OutcomeConfig?: OutcomeConfig;
80
- }
81
- /** Result of detecting whether a model is a renewal model and what its output score represents. */
82
- export interface RenewalPolarityResult {
83
- IsRenewalModel: boolean;
84
- /**
85
- * True if `score` represents adverse lapse risk (P(Lapse) / Churn Risk), e.g. 0.01 = 1% risk.
86
- * False if `score` represents positive outcome probability (P(Renewed)), e.g. 0.99 = 99% renewal chance.
87
- */
88
- ScoreIsLapseRisk: boolean;
89
- }
90
- /**
91
- * Robustly inspects model metadata and sample scoring payloads to determine:
92
- * 1. Whether this is a renewal/retention/churn model (`isRenewalModel`)
93
- * 2. Whether the raw payload `score` represents adverse lapse risk (P(Lapse)) or positive outcome (P(Renewed))
94
- */
95
- export declare function ResolveRenewalPolarity(rawPayloads: Array<string | null | undefined>, targetVariable?: string | null, modelName?: string | null): RenewalPolarityResult;
96
- /** @deprecated Use {@link ResolveRenewalPolarity}. */
97
- export declare function resolveRenewalPolarity(rawPayloads: Array<string | null | undefined>, targetVariable?: string | null, modelName?: string | null): RenewalPolarityResult;
98
- /** Parse + rank the per-record predictions into the at-risk list (highest risk first). */
99
- export declare function ParseAtRiskRows(details: RunDetailLike[], options?: ParseAtRiskOptions): AtRiskRow[];
100
- /** @deprecated Use {@link ParseAtRiskRows}. */
101
- export declare function parseAtRiskRows(details: RunDetailLike[], options?: ParseAtRiskOptions): AtRiskRow[];
102
- /**
103
- * The top plain-language drivers for the whole prediction, from the model's global feature importance.
104
- * Accepts the object form (`{"MembershipType=Student": 0.9, ...}`) or the array form
105
- * (`[{feature, importance}]`), strips one-hot `=value` suffixes, de-duplicates, and returns the
106
- * highest-importance feature names — so a business user sees "what's driving this", not raw weights.
107
- */
108
- export declare function TopGlobalDrivers(featureImportanceJson: string | null | undefined, n?: number): string[];
109
- /** @deprecated Use {@link TopGlobalDrivers}. */
110
- export declare function topGlobalDrivers(featureImportanceJson: string | null | undefined, n?: number): string[];
111
- /**
112
- * Turn a raw feature/column name into a readable label — `RetentionOverdueInvoices` → `Retention Overdue
113
- * Invoices`, `overdue_invoices` → `Overdue Invoices`, and a one-hot `MembershipType=Student` →
114
- * `Membership Type = Student`. Splits camelCase + snake/kebab, spaces one-hot `=`, collapses whitespace,
115
- * and capitalizes the first letter. Already-spaced labels pass through unchanged.
116
- */
117
- export declare function HumanizeFeatureName(name: string): string;
118
- /** @deprecated Use {@link HumanizeFeatureName}. */
119
- export declare function humanizeFeatureName(name: string): string;
120
- //# sourceMappingURL=at-risk.view-models.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"at-risk.view-models.d.ts","sourceRoot":"","sources":["../../src/PredictiveStudio/at-risk.view-models.ts"],"names":[],"mappings":"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"}
@@ -1,261 +0,0 @@
1
- /**
2
- * Pure derivations for the business workspace's **ranked at-risk list** — turning a model's per-record
3
- * scoring results (`MJ: Process Run Details` payloads) into a "who to focus on" list sorted by risk, and
4
- * the model's global feature importance into plain-language "what's driving this" drivers.
5
- *
6
- * Honest about the gap: MJ stores only GLOBAL feature importance (not per-record/SHAP), so we surface the
7
- * top global drivers once for the whole prediction rather than fabricating per-member attribution.
8
- *
9
- * Framework-free + deterministic → unit-tested with no Angular.
10
- */
11
- import { resolveScoreBand, } from '@memberjunction/predictive-studio-core';
12
- /** Parse + humanize the raw per-record `drivers` (post-preprocessing `feature`/`value`) into {@link RowDriver}s. */
13
- export function ParseRowDrivers(raw) {
14
- if (!Array.isArray(raw) || raw.length === 0)
15
- return null;
16
- const out = [];
17
- for (const d of raw) {
18
- const feature = typeof d?.feature === 'string' ? d.feature : '';
19
- const rawVal = typeof d?.value === 'number' ? d.value : typeof d?.importance === 'number' ? d.importance : typeof d?.weight === 'number' ? d.weight : NaN;
20
- const value = Number(rawVal);
21
- if (!feature || !Number.isFinite(value))
22
- continue;
23
- // Keep the one-hot category: for a per-record "why", the category IS the story — "Membership Type =
24
- // Student lowers risk" is actionable where a collapsed "Membership Type" is close to meaningless.
25
- // (Collapsing across categories is only right for GLOBAL importance — see topGlobalDrivers.)
26
- out.push({ label: HumanizeFeatureName(feature), value, up: value > 0 });
27
- }
28
- return out.length > 0 ? out : null;
29
- }
30
- /** @deprecated Use {@link ParseRowDrivers}. */
31
- export function parseRowDrivers(raw) {
32
- return ParseRowDrivers(raw);
33
- }
34
- /**
35
- * Build a human-readable label for a record from its (simple) row of the target entity — preferring a
36
- * single `Name`, else `FirstName`+`LastName`, else `Email`, else any first non-empty string field.
37
- * Returns null when nothing usable is found (caller falls back to the record id).
38
- */
39
- export function LabelFromRecord(row) {
40
- if (!row)
41
- return null;
42
- const str = (v) => (typeof v === 'string' ? v.trim() : '');
43
- const member = str(row['MemberName'] || row['Member'] || row['FullName']);
44
- if (member)
45
- return member;
46
- const name = str(row['Name']);
47
- if (name)
48
- return name;
49
- const full = `${str(row['FirstName'])} ${str(row['LastName'])}`.trim();
50
- const email = str(row['Email']);
51
- if (full && email)
52
- return `${full} (${email})`;
53
- if (full)
54
- return full;
55
- if (email)
56
- return email;
57
- for (const v of Object.values(row)) {
58
- const s = str(v);
59
- if (s && s.length <= 120)
60
- return s;
61
- }
62
- return null;
63
- }
64
- /** @deprecated Use {@link LabelFromRecord}. */
65
- export function labelFromRecord(row) {
66
- return LabelFromRecord(row);
67
- }
68
- /**
69
- * Robustly inspects model metadata and sample scoring payloads to determine:
70
- * 1. Whether this is a renewal/retention/churn model (`isRenewalModel`)
71
- * 2. Whether the raw payload `score` represents adverse lapse risk (P(Lapse)) or positive outcome (P(Renewed))
72
- */
73
- export function ResolveRenewalPolarity(rawPayloads, targetVariable, modelName) {
74
- const target = (targetVariable ?? '').toLowerCase();
75
- const name = (modelName ?? '').toLowerCase();
76
- const isTargetRenewal = target.includes('renew') ||
77
- target.includes('lapse') ||
78
- target.includes('retention') ||
79
- target.includes('churn') ||
80
- target === 'status' ||
81
- name.includes('renew') ||
82
- name.includes('retention') ||
83
- name.includes('churn');
84
- let hasRenewalKeywords = false;
85
- const sampleScoresForRenewed = [];
86
- for (const p of rawPayloads.slice(0, 50)) {
87
- if (!p)
88
- continue;
89
- if (p.includes('"Renewed"') ||
90
- p.includes('"renewed"') ||
91
- p.includes('"Lapsed"') ||
92
- p.includes('"lapsed"') ||
93
- p.includes('Renewal Risk')) {
94
- hasRenewalKeywords = true;
95
- }
96
- try {
97
- const parsed = JSON.parse(p);
98
- const out = (parsed.output ?? parsed);
99
- if (typeof out.score === 'number' && typeof out.class === 'string') {
100
- const cls = out.class.toLowerCase();
101
- if (cls === 'renewed' || cls === 'active') {
102
- sampleScoresForRenewed.push(out.score);
103
- }
104
- }
105
- }
106
- catch {
107
- // skip invalid json
108
- }
109
- }
110
- const isRenewalModel = isTargetRenewal || hasRenewalKeywords;
111
- if (!isRenewalModel) {
112
- return { IsRenewalModel: false, ScoreIsLapseRisk: false };
113
- }
114
- if (sampleScoresForRenewed.length > 0) {
115
- const avg = sampleScoresForRenewed.reduce((a, b) => a + b, 0) / sampleScoresForRenewed.length;
116
- // If members predicted 'Renewed' have small scores (< 0.5), the score represents Lapse Risk (P(Lapse))
117
- return { IsRenewalModel: true, ScoreIsLapseRisk: avg < 0.5 };
118
- }
119
- // Fallback: target or name containing "risk", "lapse", or "churn" outputs lapse probability
120
- const scoreIsLapseRisk = target.includes('risk') ||
121
- target.includes('lapse') ||
122
- target.includes('churn') ||
123
- name.includes('risk') ||
124
- name.includes('churn');
125
- return { IsRenewalModel: true, ScoreIsLapseRisk: scoreIsLapseRisk };
126
- }
127
- /** @deprecated Use {@link ResolveRenewalPolarity}. */
128
- export function resolveRenewalPolarity(rawPayloads, targetVariable, modelName) {
129
- return ResolveRenewalPolarity(rawPayloads, targetVariable, modelName);
130
- }
131
- function bandFor(score) {
132
- return score >= 0.7 ? 'high' : score >= 0.4 ? 'medium' : 'low';
133
- }
134
- /** Parse + rank the per-record predictions into the at-risk list (highest risk first). */
135
- export function ParseAtRiskRows(details, options) {
136
- const rows = [];
137
- const isInverted = options?.InvertedRisk === true;
138
- const outcomeConfig = options?.OutcomeConfig;
139
- for (const d of details) {
140
- if (!d.ResultPayload)
141
- continue;
142
- let parsed;
143
- try {
144
- parsed = JSON.parse(d.ResultPayload);
145
- }
146
- catch {
147
- continue;
148
- }
149
- // Write-back runs nest the prediction under `output`; generic runs carry it at the top level.
150
- const p = parsed.output ?? parsed;
151
- if (typeof p.score !== 'number' || !Number.isFinite(p.score))
152
- continue;
153
- const score = p.score;
154
- const effectiveRisk = isInverted ? Math.max(0, Math.min(1, 1 - score)) : score;
155
- const riskPct = Math.round(effectiveRisk * 100);
156
- let bandKey;
157
- let status = p.status;
158
- let badgeColor = p.badgeColor;
159
- let icon = p.icon;
160
- if (outcomeConfig) {
161
- const resolved = resolveScoreBand(score, outcomeConfig);
162
- if (resolved) {
163
- bandKey = resolved.Key;
164
- status = status ?? resolved.Label;
165
- badgeColor = badgeColor ?? resolved.BadgeColor;
166
- icon = icon ?? resolved.Icon;
167
- }
168
- else {
169
- bandKey = p.band ?? bandFor(effectiveRisk);
170
- }
171
- }
172
- else if (p.band) {
173
- bandKey = p.band;
174
- }
175
- else {
176
- bandKey = bandFor(effectiveRisk);
177
- }
178
- rows.push({
179
- recordId: d.recordId,
180
- label: null,
181
- score,
182
- riskPct,
183
- class: p.class ?? null,
184
- band: bandKey,
185
- status,
186
- badgeColor,
187
- icon,
188
- drivers: ParseRowDrivers(p.drivers),
189
- });
190
- }
191
- return rows.sort((a, b) => b.riskPct - a.riskPct);
192
- }
193
- /** @deprecated Use {@link ParseAtRiskRows}. */
194
- export function parseAtRiskRows(details, options) {
195
- return ParseAtRiskRows(details, options);
196
- }
197
- /**
198
- * The top plain-language drivers for the whole prediction, from the model's global feature importance.
199
- * Accepts the object form (`{"MembershipType=Student": 0.9, ...}`) or the array form
200
- * (`[{feature, importance}]`), strips one-hot `=value` suffixes, de-duplicates, and returns the
201
- * highest-importance feature names — so a business user sees "what's driving this", not raw weights.
202
- */
203
- export function TopGlobalDrivers(featureImportanceJson, n = 3) {
204
- if (!featureImportanceJson)
205
- return [];
206
- let parsed;
207
- try {
208
- parsed = JSON.parse(featureImportanceJson);
209
- }
210
- catch {
211
- return [];
212
- }
213
- const pairs = [];
214
- if (Array.isArray(parsed)) {
215
- for (const e of parsed) {
216
- const name = (e.feature ?? e.name);
217
- const weight = (e.importance ?? e.value);
218
- if (typeof name === 'string' && typeof weight === 'number')
219
- pairs.push({ name, weight: Math.abs(weight) });
220
- }
221
- }
222
- else if (parsed && typeof parsed === 'object') {
223
- for (const [name, weight] of Object.entries(parsed)) {
224
- if (typeof weight === 'number')
225
- pairs.push({ name, weight: Math.abs(weight) });
226
- }
227
- }
228
- // Collapse one-hot columns ("Feature=Value" → "Feature"), keeping each feature's max weight.
229
- const byFeature = new Map();
230
- for (const { name, weight } of pairs) {
231
- const base = name.split('=')[0].trim();
232
- if (!base)
233
- continue;
234
- byFeature.set(base, Math.max(byFeature.get(base) ?? 0, weight));
235
- }
236
- return [...byFeature.entries()].sort((a, b) => b[1] - a[1]).slice(0, n).map(([name]) => HumanizeFeatureName(name));
237
- }
238
- /** @deprecated Use {@link TopGlobalDrivers}. */
239
- export function topGlobalDrivers(featureImportanceJson, n = 3) {
240
- return TopGlobalDrivers(featureImportanceJson, n);
241
- }
242
- /**
243
- * Turn a raw feature/column name into a readable label — `RetentionOverdueInvoices` → `Retention Overdue
244
- * Invoices`, `overdue_invoices` → `Overdue Invoices`, and a one-hot `MembershipType=Student` →
245
- * `Membership Type = Student`. Splits camelCase + snake/kebab, spaces one-hot `=`, collapses whitespace,
246
- * and capitalizes the first letter. Already-spaced labels pass through unchanged.
247
- */
248
- export function HumanizeFeatureName(name) {
249
- return name
250
- .replace(/[_-]+/g, ' ')
251
- .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
252
- .replace(/\s*=\s*/g, ' = ')
253
- .replace(/\s+/g, ' ')
254
- .trim()
255
- .replace(/^\w/, (c) => c.toUpperCase());
256
- }
257
- /** @deprecated Use {@link HumanizeFeatureName}. */
258
- export function humanizeFeatureName(name) {
259
- return HumanizeFeatureName(name);
260
- }
261
- //# sourceMappingURL=at-risk.view-models.js.map