@memberjunction/ng-dashboards 6.2.0-edge.4 → 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.
- package/README.md +28 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +15 -7
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +209 -57
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +28 -16
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +30 -6
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +15 -7
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.d.ts +58 -0
- package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -0
- package/dist/AI/components/vectors/sensitive-fields.js +251 -0
- package/dist/AI/components/vectors/sensitive-fields.js.map +1 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts +139 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-document-rules.js +182 -0
- package/dist/AI/components/vectors/vector-document-rules.js.map +1 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +83 -14
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +546 -271
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
- package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-store-selection.js +57 -0
- package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +236 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +374 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +195 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +2910 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +1 -0
- package/dist/ChiefOfStaff/index.d.ts +3 -0
- package/dist/ChiefOfStaff/index.d.ts.map +1 -0
- package/dist/ChiefOfStaff/index.js +3 -0
- package/dist/ChiefOfStaff/index.js.map +1 -0
- package/dist/Communication/communication-agent-context.d.ts +11 -1
- package/dist/Communication/communication-agent-context.d.ts.map +1 -1
- package/dist/Communication/communication-agent-context.js +15 -0
- package/dist/Communication/communication-agent-context.js.map +1 -1
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +5 -0
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +2 -1
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +23 -18
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts +27 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +722 -78
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +11 -10
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
- package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
- package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +49 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +220 -55
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
- package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +1 -0
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.d.ts.map +1 -1
- package/dist/DevTools/class-registry.component.js +1 -0
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.d.ts.map +1 -1
- package/dist/DevTools/event-monitor.component.js +2 -0
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.d.ts.map +1 -1
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/grid-width-lab.component.d.ts.map +1 -1
- package/dist/DevTools/grid-width-lab.component.js +1 -0
- package/dist/DevTools/grid-width-lab.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +1 -0
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/DevTools/lazy-module-status.component.d.ts.map +1 -1
- package/dist/DevTools/lazy-module-status.component.js +1 -0
- package/dist/DevTools/lazy-module-status.component.js.map +1 -1
- package/dist/DevTools/settings-explorer.component.d.ts.map +1 -1
- package/dist/DevTools/settings-explorer.component.js +1 -0
- package/dist/DevTools/settings-explorer.component.js.map +1 -1
- package/dist/DevTools/tab-strip-lab.component.d.ts.map +1 -1
- package/dist/DevTools/tab-strip-lab.component.js +1 -0
- package/dist/DevTools/tab-strip-lab.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +5 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +8 -5
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +2 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts +11 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js +24 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts +16 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +87 -33
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
- package/dist/LoginStudio/login-studio-inspector.component.d.ts +130 -0
- package/dist/LoginStudio/login-studio-inspector.component.d.ts.map +1 -0
- package/dist/LoginStudio/login-studio-inspector.component.js +781 -0
- package/dist/LoginStudio/login-studio-inspector.component.js.map +1 -0
- package/dist/LoginStudio/login-studio-resource.component.d.ts +161 -0
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -0
- package/dist/LoginStudio/login-studio-resource.component.js +890 -0
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -0
- package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +118 -65
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
- package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +256 -521
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +122 -249
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
- package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +335 -326
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js +51 -2
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
- package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +185 -103
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
- package/dist/Workflows/components/workflow-runs-resource.component.js +4 -4
- package/dist/Workflows/components/workflow-runs-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +22 -21
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +8 -2
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +2 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +11 -3
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +72 -69
- package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
- package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
- package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
- package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ps-run-experiment-modal.component.js","sourceRoot":"","sources":["../../../src/PredictiveStudio/components/ps-run-experiment-modal.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { IMetadataProvider, UserInfo } from '@memberjunction/core';\nimport {\n MJMLAlgorithmEntity,\n MJMLTrainingPipelineEntity,\n PredictiveStudioStartExperimentSessionOperation,\n} from '@memberjunction/core-entities';\nimport {\n DOMINANCE_THRESHOLD_DEFAULT,\n type SourceBinding,\n type FeatureStepGraph,\n type LeakageGuard,\n type AsOfStrategy,\n type ValidationStrategy,\n type ModelingPlanSpec,\n type Budget,\n} from '@memberjunction/predictive-studio-core';\nimport { PredictiveStudioEngine } from '../engine/predictive-studio.engine';\n\nconst ALGO_ICONS: Record<string, string> = {\n xgboost: 'fa-solid fa-bolt',\n lightgbm: 'fa-solid fa-feather',\n logistic_regression: 'fa-solid fa-wave-square',\n random_forest: 'fa-solid fa-tree',\n ridge: 'fa-solid fa-ruler',\n linear_regression: 'fa-solid fa-ruler',\n mlp: 'fa-solid fa-network-wired',\n};\n\n/**\n * Manual Experiment Runner modal — lets data scientists configure and launch a\n * multi-algorithm tournament session on an existing training pipeline.\n */\n@Component({\n standalone: true,\n selector: 'ps-run-experiment-modal',\n imports: [CommonModule, FormsModule, MJButtonDirective],\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../predictive-studio.shared.css', './ps-run-experiment-modal.component.css'],\n template: `\n <div class=\"ps-modal-backdrop\" (click)=\"onBackdropClick($event)\">\n <div class=\"ps-modal-dialog ps-run-exp-dialog\" role=\"dialog\" aria-modal=\"true\" data-testid=\"ps-run-experiment-modal\">\n <!-- Header -->\n <div class=\"ps-wizard-header\">\n <div class=\"ps-wizard-header-title\">\n <i class=\"fa-solid fa-flask\" style=\"color: var(--mj-brand-primary)\"></i>\n <div>\n <h2>Run Multi-Algorithm Experiment</h2>\n <span class=\"ps-wizard-subtitle\">Execute a tournament search across multiple algorithms under bounded budget</span>\n </div>\n </div>\n <button class=\"ps-wizard-close\" (click)=\"cancel()\" aria-label=\"Close dialog\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <!-- Body -->\n <div class=\"ps-run-exp-body\">\n <!-- Step 1: Select Pipeline -->\n <div class=\"ps-form-group\">\n <label class=\"ps-form-label\">\n <i class=\"fa-solid fa-diagram-project\"></i> Training Pipeline\n </label>\n <select class=\"mj-input\" [ngModel]=\"selectedPipelineId\" (ngModelChange)=\"onPipelineChange($event)\" [disabled]=\"busy\">\n @for (p of engine.Pipelines; track p.ID) {\n <option [value]=\"p.ID\">{{ p.Name }} (Target: {{ p.TargetVariable || 'None' }})</option>\n }\n </select>\n <span class=\"ps-form-hint\">\n The dataset, feature assembly graph, and leakage deny-list are derived from this pipeline.\n </span>\n </div>\n\n <!-- Session Name & Goal -->\n <div class=\"exp-grid-2\">\n <div class=\"ps-form-group\">\n <label class=\"ps-form-label\">Session Name</label>\n <input class=\"mj-input\" type=\"text\" [(ngModel)]=\"sessionName\" placeholder=\"e.g. Churn Tournament Q3\" [disabled]=\"busy\" />\n </div>\n <div class=\"ps-form-group\">\n <label class=\"ps-form-label\">Evaluation Metric</label>\n <select class=\"mj-input\" [(ngModel)]=\"successMetric\" [disabled]=\"busy\">\n @if (problemType === 'classification') {\n <option value=\"AUC\">ROC-AUC (Default)</option>\n <option value=\"F1\">F1 Score</option>\n <option value=\"Accuracy\">Accuracy</option>\n } @else {\n <option value=\"RMSE\">RMSE (Default)</option>\n <option value=\"MAE\">MAE</option>\n <option value=\"R2\">R-Squared</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"ps-form-group\">\n <label class=\"ps-form-label\">Experiment Goal</label>\n <input class=\"mj-input\" type=\"text\" [(ngModel)]=\"goal\" placeholder=\"e.g. Find best algorithm on holdout split\" [disabled]=\"busy\" />\n </div>\n\n <!-- Step 2: Algorithm Candidates -->\n <div class=\"ps-form-group\">\n <div class=\"algo-bar-actions\">\n <label class=\"ps-form-label\" style=\"margin-bottom:0\">\n <i class=\"fa-solid fa-shapes\"></i> Candidate Algorithms ({{ selectedAlgoIds.size }} selected)\n </label>\n <div style=\"display:flex; gap:8px\">\n <button type=\"button\" class=\"ps-link-btn\" (click)=\"selectAllAlgos()\" [disabled]=\"busy\">Select All</button>\n <span class=\"ps-muted\">·</span>\n <button type=\"button\" class=\"ps-link-btn\" (click)=\"selectRecommendedAlgos()\" [disabled]=\"busy\">Recommended</button>\n <span class=\"ps-muted\">·</span>\n <button type=\"button\" class=\"ps-link-btn\" (click)=\"clearAlgos()\" [disabled]=\"busy\">Clear</button>\n </div>\n </div>\n\n <div class=\"algo-selection-grid\">\n @for (algo of availableAlgorithms; track algo.ID) {\n <div class=\"algo-select-card\"\n [class.selected]=\"isAlgoSelected(algo.ID)\"\n (click)=\"toggleAlgo(algo.ID)\">\n <input type=\"checkbox\"\n [checked]=\"isAlgoSelected(algo.ID)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlgo(algo.ID)\"\n [disabled]=\"busy\" />\n <div class=\"algo-select-info\">\n <div class=\"algo-select-name\">\n <i [class]=\"getAlgoIcon(algo.DriverClass)\"></i>\n <span>{{ algo.Name }}</span>\n </div>\n @if (algo.Description) {\n <div class=\"algo-select-desc\">{{ algo.Description }}</div>\n }\n <div class=\"algo-select-tags\">\n @if (algo.SupportsFeatureImportance) {\n <span class=\"ps-badge green\" style=\"font-size:10px\">Importance</span>\n }\n <span class=\"ps-tag\" style=\"font-size:10px\">{{ algo.DriverClass }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n\n <!-- Step 3: Validation & Budget -->\n <div class=\"exp-grid-3\">\n <div class=\"ps-form-group\">\n <label class=\"ps-form-label\">Max Iterations (Trials)</label>\n <input class=\"mj-input\" type=\"number\" min=\"1\" max=\"100\" [(ngModel)]=\"budgetRuns\" [disabled]=\"busy\" />\n <span class=\"ps-form-hint\">Total model training runs bounded</span>\n </div>\n <div class=\"ps-form-group\">\n <label class=\"ps-form-label\">Compute Cost Cap ($)</label>\n <input class=\"mj-input\" type=\"number\" min=\"1\" max=\"500\" [(ngModel)]=\"budgetCost\" [disabled]=\"busy\" />\n <span class=\"ps-form-hint\">Max spending for cloud / GPU compute</span>\n </div>\n <div class=\"ps-form-group\">\n <label class=\"ps-form-label\">Wall-Clock Cap (Minutes)</label>\n <input class=\"mj-input\" type=\"number\" min=\"5\" max=\"300\" [(ngModel)]=\"budgetMinutes\" [disabled]=\"busy\" />\n <span class=\"ps-form-hint\">Session timeouts if exceeded</span>\n </div>\n </div>\n\n <div class=\"budget-banner\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n <div style=\"font-size: 12px; color: var(--mj-text-secondary)\">\n <strong>Autonomous Guardrails:</strong> The session will run across waves, evaluate each candidate on a locked holdout fraction ({{ holdoutPercent }}%), rank them on the leaderboard by {{ successMetric }}, and automatically prune unpromising configurations.\n </div>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"ps-wizard-footer\">\n <button mjButton variant=\"secondary\" size=\"md\" (click)=\"cancel()\" [disabled]=\"busy\">\n Cancel\n </button>\n <span class=\"ps-spacer\"></span>\n <button mjButton variant=\"primary\" size=\"md\" (click)=\"launch()\" [disabled]=\"busy || !isValid\">\n @if (busy) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Launching Experiment…\n } @else {\n <i class=\"fa-solid fa-play\"></i> Launch Experiment\n }\n </button>\n </div>\n </div>\n </div>\n `,\n})\nexport class PSRunExperimentModalComponent implements OnInit {\n @Input() engine!: PredictiveStudioEngine;\n @Input() provider: IMetadataProvider | null = null;\n @Input() CurrentUser: UserInfo | null = null;\n\n /** @deprecated Use {@link CurrentUser}. */\n @Input() set currentUser(value: UserInfo | null) {\n this.CurrentUser = value;\n }\n /** @deprecated Use {@link CurrentUser}. */\n get currentUser(): UserInfo | null {\n return this.CurrentUser;\n }\n @Input() PreselectedPipelineId?: string;\n\n /** @deprecated Use {@link PreselectedPipelineId}. */\n @Input() set preselectedPipelineId(value: string | undefined) {\n this.PreselectedPipelineId = value;\n }\n /** @deprecated Use {@link PreselectedPipelineId}. */\n get preselectedPipelineId(): string | undefined {\n return this.PreselectedPipelineId;\n }\n\n @Output() Closed = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link Closed}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (closed) keeps working. Must stay AFTER Closed: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() closed = this.Closed;\n @Output() Started = new EventEmitter<string>();\n\n /**\n * @deprecated Use {@link Started}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (started) keeps working. Must stay AFTER Started: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() started = this.Started;\n\n private cdr = inject(ChangeDetectorRef);\n private notifications = inject(MJNotificationService);\n\n public SelectedPipelineId = '';\n\n /** @deprecated Use {@link SelectedPipelineId}. */\n public get selectedPipelineId() {\n return this.SelectedPipelineId;\n }\n /** @deprecated Use {@link SelectedPipelineId}. */\n public set selectedPipelineId(value) {\n this.SelectedPipelineId = value;\n }\n public sessionName = '';\n public Goal = '';\n\n /** @deprecated Use {@link Goal}. */\n public get goal() {\n return this.Goal;\n }\n /** @deprecated Use {@link Goal}. */\n public set goal(value) {\n this.Goal = value;\n }\n public SuccessMetric: 'AUC' | 'F1' | 'Accuracy' | 'RMSE' | 'MAE' | 'R2' = 'AUC';\n\n /** @deprecated Use {@link SuccessMetric}. */\n public get successMetric(): 'AUC' | 'F1' | 'Accuracy' | 'RMSE' | 'MAE' | 'R2' {\n return this.SuccessMetric;\n }\n /** @deprecated Use {@link SuccessMetric}. */\n public set successMetric(value: 'AUC' | 'F1' | 'Accuracy' | 'RMSE' | 'MAE' | 'R2') {\n this.SuccessMetric = value;\n }\n public ProblemType: 'classification' | 'regression' = 'classification';\n\n /** @deprecated Use {@link ProblemType}. */\n public get problemType(): 'classification' | 'regression' {\n return this.ProblemType;\n }\n /** @deprecated Use {@link ProblemType}. */\n public set problemType(value: 'classification' | 'regression') {\n this.ProblemType = value;\n }\n\n public SelectedAlgoIds = new Set<string>();\n\n /** @deprecated Use {@link SelectedAlgoIds}. */\n public get selectedAlgoIds() {\n return this.SelectedAlgoIds;\n }\n /** @deprecated Use {@link SelectedAlgoIds}. */\n public set selectedAlgoIds(value) {\n this.SelectedAlgoIds = value;\n }\n\n public BudgetRuns = 15;\n\n /** @deprecated Use {@link BudgetRuns}. */\n public get budgetRuns() {\n return this.BudgetRuns;\n }\n /** @deprecated Use {@link BudgetRuns}. */\n public set budgetRuns(value) {\n this.BudgetRuns = value;\n }\n public BudgetCost = 25;\n\n /** @deprecated Use {@link BudgetCost}. */\n public get budgetCost() {\n return this.BudgetCost;\n }\n /** @deprecated Use {@link BudgetCost}. */\n public set budgetCost(value) {\n this.BudgetCost = value;\n }\n public BudgetMinutes = 30;\n\n /** @deprecated Use {@link BudgetMinutes}. */\n public get budgetMinutes() {\n return this.BudgetMinutes;\n }\n /** @deprecated Use {@link BudgetMinutes}. */\n public set budgetMinutes(value) {\n this.BudgetMinutes = value;\n }\n public HoldoutPercent = 15;\n\n /** @deprecated Use {@link HoldoutPercent}. */\n public get holdoutPercent() {\n return this.HoldoutPercent;\n }\n /** @deprecated Use {@link HoldoutPercent}. */\n public set holdoutPercent(value) {\n this.HoldoutPercent = value;\n }\n\n public Busy = false;\n\n /** @deprecated Use {@link Busy}. */\n public get busy() {\n return this.Busy;\n }\n /** @deprecated Use {@link Busy}. */\n public set busy(value) {\n this.Busy = value;\n }\n\n ngOnInit(): void {\n const pipelines = this.engine?.Pipelines ?? [];\n if (this.PreselectedPipelineId && pipelines.some((p) => UUIDsEqual(p.ID, this.PreselectedPipelineId))) {\n this.SelectedPipelineId = this.PreselectedPipelineId;\n } else if (pipelines.length > 0) {\n this.SelectedPipelineId = pipelines[0].ID;\n }\n this.syncFromSelectedPipeline();\n }\n\n public get AvailableAlgorithms(): MJMLAlgorithmEntity[] {\n return this.engine?.Algorithms ?? [];\n }\n\n /** @deprecated Use {@link AvailableAlgorithms}. */\n public get availableAlgorithms(): MJMLAlgorithmEntity[] {\n return this.AvailableAlgorithms;\n }\n\n public get SelectedPipeline(): MJMLTrainingPipelineEntity | undefined {\n return this.engine?.Pipelines.find((p) => UUIDsEqual(p.ID, this.SelectedPipelineId));\n }\n\n /** @deprecated Use {@link SelectedPipeline}. */\n public get selectedPipeline(): MJMLTrainingPipelineEntity | undefined {\n return this.SelectedPipeline;\n }\n\n public OnPipelineChange(newId: string): void {\n this.SelectedPipelineId = newId;\n this.syncFromSelectedPipeline();\n }\n\n /** @deprecated Use {@link OnPipelineChange}. */\n public onPipelineChange(newId: string): void {\n return this.OnPipelineChange(newId);\n }\n\n private syncFromSelectedPipeline(): void {\n const p = this.SelectedPipeline;\n if (!p) return;\n this.ProblemType = (p.ProblemType as 'classification' | 'regression') || 'classification';\n this.SuccessMetric = this.ProblemType === 'classification' ? 'AUC' : 'RMSE';\n this.sessionName = `${p.Name} — Multi-Algorithm Tournament`;\n this.Goal = `Evaluate and compare algorithms on ${p.Name} to maximize ${this.SuccessMetric}.`;\n this.SelectRecommendedAlgos();\n }\n\n public SelectRecommendedAlgos(): void {\n this.SelectedAlgoIds.clear();\n const pt = this.ProblemType;\n for (const algo of this.AvailableAlgorithms) {\n const types = (algo.ProblemTypes || '').toLowerCase();\n if (types.includes(pt) || types.length === 0) {\n // Recommend gradient boosting and random forest by default\n const dc = (algo.DriverClass || '').toLowerCase();\n if (dc.includes('xgboost') || dc.includes('lightgbm') || dc.includes('forest') || dc.includes('logistic')) {\n this.SelectedAlgoIds.add(algo.ID);\n }\n }\n }\n if (this.SelectedAlgoIds.size === 0) {\n // Fallback: select first 3\n this.AvailableAlgorithms.slice(0, 3).forEach((a) => this.SelectedAlgoIds.add(a.ID));\n }\n }\n\n /** @deprecated Use {@link SelectRecommendedAlgos}. */\n public selectRecommendedAlgos(): void {\n return this.SelectRecommendedAlgos();\n }\n\n public SelectAllAlgos(): void {\n this.AvailableAlgorithms.forEach((a) => this.SelectedAlgoIds.add(a.ID));\n }\n\n /** @deprecated Use {@link SelectAllAlgos}. */\n public selectAllAlgos(): void {\n return this.SelectAllAlgos();\n }\n\n public ClearAlgos(): void {\n this.SelectedAlgoIds.clear();\n }\n\n /** @deprecated Use {@link ClearAlgos}. */\n public clearAlgos(): void {\n return this.ClearAlgos();\n }\n\n public IsAlgoSelected(id: string): boolean {\n return this.SelectedAlgoIds.has(id);\n }\n\n /** @deprecated Use {@link IsAlgoSelected}. */\n public isAlgoSelected(id: string): boolean {\n return this.IsAlgoSelected(id);\n }\n\n public ToggleAlgo(id: string): void {\n if (this.SelectedAlgoIds.has(id)) {\n this.SelectedAlgoIds.delete(id);\n } else {\n this.SelectedAlgoIds.add(id);\n }\n }\n\n /** @deprecated Use {@link ToggleAlgo}. */\n public toggleAlgo(id: string): void {\n return this.ToggleAlgo(id);\n }\n\n public GetAlgoIcon(driverClass: string): string {\n const key = (driverClass || '').toLowerCase();\n for (const [k, icon] of Object.entries(ALGO_ICONS)) {\n if (key.includes(k)) return icon;\n }\n return 'fa-solid fa-chart-line';\n }\n\n /** @deprecated Use {@link GetAlgoIcon}. */\n public getAlgoIcon(driverClass: string): string {\n return this.GetAlgoIcon(driverClass);\n }\n\n public get IsValid(): boolean {\n return Boolean(\n this.SelectedPipelineId &&\n this.sessionName.trim() &&\n this.SelectedAlgoIds.size > 0 &&\n this.BudgetRuns > 0 &&\n this.BudgetCost > 0\n );\n }\n\n /** @deprecated Use {@link IsValid}. */\n public get isValid(): boolean {\n return this.IsValid;\n }\n\n public cancel(): void {\n if (this.Busy) return;\n this.Closed.emit();\n }\n\n public OnBackdropClick(event: MouseEvent): void {\n if (event.target === event.currentTarget && !this.Busy) {\n this.cancel();\n }\n }\n\n /** @deprecated Use {@link OnBackdropClick}. */\n public onBackdropClick(event: MouseEvent): void {\n return this.OnBackdropClick(event);\n }\n\n public async Launch(): Promise<void> {\n const pipeline = this.SelectedPipeline;\n if (!pipeline || !this.IsValid || this.Busy) return;\n\n this.Busy = true;\n this.notifications.CreateSimpleNotification('Starting experiment session…', 'info', 3000);\n\n try {\n // Parse pipeline configuration\n const sources = this.parseJson<SourceBinding[]>(pipeline.SourceBindings, []);\n const stepGraph = this.parseJson<FeatureStepGraph>(pipeline.FeatureSteps, { Steps: [] });\n const leakage = this.parseJson<LeakageGuard>(pipeline.LeakageGuard, {\n DenyFields: [],\n SingleFeatureDominanceThreshold: DOMINANCE_THRESHOLD_DEFAULT,\n });\n const asOf = this.parseJson<AsOfStrategy>(pipeline.AsOfStrategy, { Mode: 'none' });\n const validation = this.parseJson<ValidationStrategy>(pipeline.ValidationStrategy, {\n Strategy: 'train_test_split',\n TestSize: 0.2,\n LockedHoldoutFraction: 0.15,\n });\n\n const sourceEntity = sources[0]?.Ref || 'Entity';\n const features: string[] = [];\n for (const step of stepGraph.Steps ?? []) {\n if ('Columns' in step && Array.isArray(step.Columns)) {\n features.push(...step.Columns);\n } else if ('Column' in step && typeof step.Column === 'string') {\n features.push(step.Column);\n }\n }\n\n const selectedAlgos = this.AvailableAlgorithms.filter((a) => this.SelectedAlgoIds.has(a.ID));\n\n const planSpec: ModelingPlanSpec = {\n Goal: this.Goal.trim() || `Optimize model for ${pipeline.Name}`,\n TargetDefinition: {\n EntityName: sourceEntity,\n TargetVariable: pipeline.TargetVariable || 'Target',\n ProblemType: this.ProblemType,\n SuccessMetric: this.SuccessMetric,\n AsOfStrategy: asOf,\n },\n CandidateSources: sources.map((s) => ({\n Kind: s.Kind,\n Ref: s.Ref,\n Why: 'Configured in training pipeline',\n })),\n CandidateFeatures: features.map((f) => ({\n Name: f,\n SourceRef: sourceEntity,\n Kind: 'numeric',\n Why: 'Selected in pipeline feature steps',\n })),\n LeakageNotes: (leakage.DenyFields || []).map((field) => ({\n Field: field,\n Risk: 'Deny-listed leakage risk',\n Action: 'exclude',\n })),\n ProposedExperiments: selectedAlgos.map((algo, index) => ({\n Label: `${algo.Name} (tournament trial)`,\n AlgorithmName: algo.Name,\n FeatureSet: features,\n Rationale: `Evaluate ${algo.Name} across pipeline features`,\n Priority: index + 1,\n })),\n ValidationStrategy: validation,\n ProposedBudget: {\n MaxRuns: this.BudgetRuns,\n MaxComputeCost: this.BudgetCost,\n MaxWallclockMinutes: this.BudgetMinutes,\n },\n Approved: true,\n };\n\n const budget: Budget = {\n MaxRuns: this.BudgetRuns,\n MaxComputeCost: this.BudgetCost,\n MaxWallclockMinutes: this.BudgetMinutes,\n };\n\n const op = new PredictiveStudioStartExperimentSessionOperation();\n const result = await op.Execute(\n {\n planSpec,\n budget,\n },\n { provider: this.provider ?? undefined, user: this.CurrentUser ?? undefined },\n );\n\n if (result.Success && result.Output) {\n this.notifications.CreateSimpleNotification(\n `Experiment session started! Session ID: ${result.Output.sessionId}`,\n 'success',\n 5000,\n );\n this.Started.emit(result.Output.sessionId);\n this.Closed.emit();\n } else {\n this.notifications.CreateSimpleNotification(\n result.ErrorMessage || 'Failed to start experiment session.',\n 'error',\n 6000,\n );\n }\n } catch (err) {\n this.notifications.CreateSimpleNotification(\n `Experiment error: ${err instanceof Error ? err.message : String(err)}`,\n 'error',\n 6000,\n );\n } finally {\n this.Busy = false;\n this.cdr.detectChanges();\n }\n }\n\n /** @deprecated Use {@link Launch}. */\n public async launch(): Promise<void> {\n return this.Launch();\n }\n\n private parseJson<T>(raw: string | null | undefined, fallback: T): T {\n if (!raw) return fallback;\n try {\n const val: unknown = JSON.parse(raw);\n return (val ?? fallback) as T;\n } catch {\n return fallback;\n }\n }\n}\n"]}
|