@memberjunction/ng-core-entity-forms 6.2.0-edge.0 → 6.2.0-edge.1
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/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +2 -2
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +90 -16
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +218 -70
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +80 -16
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +146 -46
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +329 -27
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +794 -262
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +76 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +77 -33
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +69 -15
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +182 -74
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +105 -25
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +272 -112
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +32 -6
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +71 -19
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +10 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +27 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -15
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +152 -52
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +81 -15
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +145 -45
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +71 -17
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +175 -67
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +173 -27
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -93
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +64 -4
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +129 -29
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +260 -27
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +686 -238
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +10 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +17 -9
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +74 -16
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +174 -58
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +108 -14
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +258 -70
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts +198 -14
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +387 -107
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts +12 -6
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js +41 -29
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js +14 -14
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js.map +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.js +2 -2
- package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +2 -2
- package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.js +2 -2
- package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +209 -28
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +494 -138
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +5 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -2
- package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.component.d.ts +1 -1
- package/dist/lib/custom/Files/file-form.component.js +2 -2
- package/dist/lib/custom/Files/file-form.component.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts +300 -36
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +664 -208
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +31 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.js +52 -16
- package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +107 -10
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.js +291 -101
- package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +201 -26
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +429 -109
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts +107 -14
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +249 -79
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts +110 -4
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js +858 -86
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +4 -4
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/SessionBridges/session-bridge-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts +77 -13
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +196 -78
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +49 -7
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +132 -44
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts +142 -17
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +333 -113
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +24 -4
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.js +64 -20
- package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +217 -27
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +549 -169
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-checks.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.js +5 -1
- package/dist/lib/custom/Tests/test-run-checks.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +5 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts +146 -18
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +362 -106
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +390 -47
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1015 -343
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +214 -26
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -159
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/Users/user-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Users/user-overview.panel.js +2 -2
- package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +208 -29
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +446 -138
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts +6 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +16 -4
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +50 -6
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +84 -12
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +89 -5
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +216 -70
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +62 -3
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +140 -42
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +81 -10
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +165 -37
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +140 -15
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +326 -100
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts +101 -15
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js +281 -97
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts +43 -25
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js +100 -64
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js +71 -53
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js +70 -52
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts +8 -0
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js +22 -6
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts +24 -2
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js +91 -59
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts +10 -2
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js +33 -17
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts +2 -0
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js +34 -30
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js +69 -51
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +38 -12
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +103 -51
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +59 -51
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +76 -74
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +155 -119
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts +5 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +11 -3
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +2 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +16 -12
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +2 -2
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +45 -19
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.js +95 -43
- package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +20 -16
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.js +73 -65
- package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.d.ts +133 -14
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +322 -124
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/package.json +43 -42
|
@@ -892,16 +892,248 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
892
892
|
this.activeTimeouts.splice(index, 1);
|
|
893
893
|
}
|
|
894
894
|
}
|
|
895
|
+
/** @deprecated Use {@link ExpandedCharts}. */
|
|
896
|
+
get expandedCharts() {
|
|
897
|
+
return this.ExpandedCharts;
|
|
898
|
+
}
|
|
899
|
+
/** @deprecated Use {@link ExpandedCharts}. */
|
|
900
|
+
set expandedCharts(value) {
|
|
901
|
+
this.ExpandedCharts = value;
|
|
902
|
+
}
|
|
903
|
+
/** @deprecated Use {@link ViewMode}. */
|
|
904
|
+
get viewMode() {
|
|
905
|
+
return this.ViewMode;
|
|
906
|
+
}
|
|
907
|
+
/** @deprecated Use {@link ViewMode}. */
|
|
908
|
+
set viewMode(value) {
|
|
909
|
+
this.ViewMode = value;
|
|
910
|
+
}
|
|
911
|
+
/** @deprecated Use {@link AgentRun}. */
|
|
912
|
+
get agentRun() {
|
|
913
|
+
return this.AgentRun;
|
|
914
|
+
}
|
|
915
|
+
/** @deprecated Use {@link AgentRun}. */
|
|
916
|
+
set agentRun(value) {
|
|
917
|
+
this.AgentRun = value;
|
|
918
|
+
}
|
|
919
|
+
/** @deprecated Use {@link AllPromptRuns}. */
|
|
920
|
+
get allPromptRuns() {
|
|
921
|
+
return this.AllPromptRuns;
|
|
922
|
+
}
|
|
923
|
+
/** @deprecated Use {@link AllPromptRuns}. */
|
|
924
|
+
set allPromptRuns(value) {
|
|
925
|
+
this.AllPromptRuns = value;
|
|
926
|
+
}
|
|
927
|
+
/** @deprecated Use {@link AllActionLogs}. */
|
|
928
|
+
get allActionLogs() {
|
|
929
|
+
return this.AllActionLogs;
|
|
930
|
+
}
|
|
931
|
+
/** @deprecated Use {@link AllActionLogs}. */
|
|
932
|
+
set allActionLogs(value) {
|
|
933
|
+
this.AllActionLogs = value;
|
|
934
|
+
}
|
|
935
|
+
/** @deprecated Use {@link AllSteps}. */
|
|
936
|
+
get allSteps() {
|
|
937
|
+
return this.AllSteps;
|
|
938
|
+
}
|
|
939
|
+
/** @deprecated Use {@link AllSteps}. */
|
|
940
|
+
set allSteps(value) {
|
|
941
|
+
this.AllSteps = value;
|
|
942
|
+
}
|
|
943
|
+
/** @deprecated Use {@link SubAgentRuns}. */
|
|
944
|
+
get subAgentRuns() {
|
|
945
|
+
return this.SubAgentRuns;
|
|
946
|
+
}
|
|
947
|
+
/** @deprecated Use {@link SubAgentRuns}. */
|
|
948
|
+
set subAgentRuns(value) {
|
|
949
|
+
this.SubAgentRuns = value;
|
|
950
|
+
}
|
|
951
|
+
/** @deprecated Use {@link PromptMetrics}. */
|
|
952
|
+
get promptMetrics() {
|
|
953
|
+
return this.PromptMetrics;
|
|
954
|
+
}
|
|
955
|
+
/** @deprecated Use {@link PromptMetrics}. */
|
|
956
|
+
set promptMetrics(value) {
|
|
957
|
+
this.PromptMetrics = value;
|
|
958
|
+
}
|
|
959
|
+
/** @deprecated Use {@link ActionMetrics}. */
|
|
960
|
+
get actionMetrics() {
|
|
961
|
+
return this.ActionMetrics;
|
|
962
|
+
}
|
|
963
|
+
/** @deprecated Use {@link ActionMetrics}. */
|
|
964
|
+
set actionMetrics(value) {
|
|
965
|
+
this.ActionMetrics = value;
|
|
966
|
+
}
|
|
967
|
+
/** @deprecated Use {@link TimelineMetrics}. */
|
|
968
|
+
get timelineMetrics() {
|
|
969
|
+
return this.TimelineMetrics;
|
|
970
|
+
}
|
|
971
|
+
/** @deprecated Use {@link TimelineMetrics}. */
|
|
972
|
+
set timelineMetrics(value) {
|
|
973
|
+
this.TimelineMetrics = value;
|
|
974
|
+
}
|
|
975
|
+
/** @deprecated Use {@link ModelDistributionChartData}. */
|
|
976
|
+
get modelDistributionChartData() {
|
|
977
|
+
return this.ModelDistributionChartData;
|
|
978
|
+
}
|
|
979
|
+
/** @deprecated Use {@link ModelDistributionChartData}. */
|
|
980
|
+
set modelDistributionChartData(value) {
|
|
981
|
+
this.ModelDistributionChartData = value;
|
|
982
|
+
}
|
|
983
|
+
/** @deprecated Use {@link ExecutionTimeChartData}. */
|
|
984
|
+
get executionTimeChartData() {
|
|
985
|
+
return this.ExecutionTimeChartData;
|
|
986
|
+
}
|
|
987
|
+
/** @deprecated Use {@link ExecutionTimeChartData}. */
|
|
988
|
+
set executionTimeChartData(value) {
|
|
989
|
+
this.ExecutionTimeChartData = value;
|
|
990
|
+
}
|
|
991
|
+
/** @deprecated Use {@link CostByVendorChartData}. */
|
|
992
|
+
get costByVendorChartData() {
|
|
993
|
+
return this.CostByVendorChartData;
|
|
994
|
+
}
|
|
995
|
+
/** @deprecated Use {@link CostByVendorChartData}. */
|
|
996
|
+
set costByVendorChartData(value) {
|
|
997
|
+
this.CostByVendorChartData = value;
|
|
998
|
+
}
|
|
999
|
+
/** @deprecated Use {@link TokenUsageChartData}. */
|
|
1000
|
+
get tokenUsageChartData() {
|
|
1001
|
+
return this.TokenUsageChartData;
|
|
1002
|
+
}
|
|
1003
|
+
/** @deprecated Use {@link TokenUsageChartData}. */
|
|
1004
|
+
set tokenUsageChartData(value) {
|
|
1005
|
+
this.TokenUsageChartData = value;
|
|
1006
|
+
}
|
|
1007
|
+
/** @deprecated Use {@link ActionSuccessRateChartData}. */
|
|
1008
|
+
get actionSuccessRateChartData() {
|
|
1009
|
+
return this.ActionSuccessRateChartData;
|
|
1010
|
+
}
|
|
1011
|
+
/** @deprecated Use {@link ActionSuccessRateChartData}. */
|
|
1012
|
+
set actionSuccessRateChartData(value) {
|
|
1013
|
+
this.ActionSuccessRateChartData = value;
|
|
1014
|
+
}
|
|
1015
|
+
/** @deprecated Use {@link StepTypeDistributionChartData}. */
|
|
1016
|
+
get stepTypeDistributionChartData() {
|
|
1017
|
+
return this.StepTypeDistributionChartData;
|
|
1018
|
+
}
|
|
1019
|
+
/** @deprecated Use {@link StepTypeDistributionChartData}. */
|
|
1020
|
+
set stepTypeDistributionChartData(value) {
|
|
1021
|
+
this.StepTypeDistributionChartData = value;
|
|
1022
|
+
}
|
|
1023
|
+
/** @deprecated Use {@link PromptDetailsExpanded}. */
|
|
1024
|
+
get promptDetailsExpanded() {
|
|
1025
|
+
return this.PromptDetailsExpanded;
|
|
1026
|
+
}
|
|
1027
|
+
/** @deprecated Use {@link PromptDetailsExpanded}. */
|
|
1028
|
+
set promptDetailsExpanded(value) {
|
|
1029
|
+
this.PromptDetailsExpanded = value;
|
|
1030
|
+
}
|
|
1031
|
+
/** @deprecated Use {@link ActionDetailsExpanded}. */
|
|
1032
|
+
get actionDetailsExpanded() {
|
|
1033
|
+
return this.ActionDetailsExpanded;
|
|
1034
|
+
}
|
|
1035
|
+
/** @deprecated Use {@link ActionDetailsExpanded}. */
|
|
1036
|
+
set actionDetailsExpanded(value) {
|
|
1037
|
+
this.ActionDetailsExpanded = value;
|
|
1038
|
+
}
|
|
1039
|
+
/** @deprecated Use {@link PanelStates}. */
|
|
1040
|
+
get panelStates() {
|
|
1041
|
+
return this.PanelStates;
|
|
1042
|
+
}
|
|
1043
|
+
/** @deprecated Use {@link PanelStates}. */
|
|
1044
|
+
set panelStates(value) {
|
|
1045
|
+
this.PanelStates = value;
|
|
1046
|
+
}
|
|
1047
|
+
/** @deprecated Use {@link ModelDistributionChart}. */
|
|
1048
|
+
get modelDistributionChart() {
|
|
1049
|
+
return this.ModelDistributionChart;
|
|
1050
|
+
}
|
|
1051
|
+
/** @deprecated Use {@link ModelDistributionChart}. */
|
|
1052
|
+
set modelDistributionChart(value) {
|
|
1053
|
+
this.ModelDistributionChart = value;
|
|
1054
|
+
}
|
|
1055
|
+
/** @deprecated Use {@link ExecutionTimeChart}. */
|
|
1056
|
+
get executionTimeChart() {
|
|
1057
|
+
return this.ExecutionTimeChart;
|
|
1058
|
+
}
|
|
1059
|
+
/** @deprecated Use {@link ExecutionTimeChart}. */
|
|
1060
|
+
set executionTimeChart(value) {
|
|
1061
|
+
this.ExecutionTimeChart = value;
|
|
1062
|
+
}
|
|
1063
|
+
/** @deprecated Use {@link CostByVendorChart}. */
|
|
1064
|
+
get costByVendorChart() {
|
|
1065
|
+
return this.CostByVendorChart;
|
|
1066
|
+
}
|
|
1067
|
+
/** @deprecated Use {@link CostByVendorChart}. */
|
|
1068
|
+
set costByVendorChart(value) {
|
|
1069
|
+
this.CostByVendorChart = value;
|
|
1070
|
+
}
|
|
1071
|
+
/** @deprecated Use {@link TokenUsageChart}. */
|
|
1072
|
+
get tokenUsageChart() {
|
|
1073
|
+
return this.TokenUsageChart;
|
|
1074
|
+
}
|
|
1075
|
+
/** @deprecated Use {@link TokenUsageChart}. */
|
|
1076
|
+
set tokenUsageChart(value) {
|
|
1077
|
+
this.TokenUsageChart = value;
|
|
1078
|
+
}
|
|
1079
|
+
/** @deprecated Use {@link ActionSuccessRateChart}. */
|
|
1080
|
+
get actionSuccessRateChart() {
|
|
1081
|
+
return this.ActionSuccessRateChart;
|
|
1082
|
+
}
|
|
1083
|
+
/** @deprecated Use {@link ActionSuccessRateChart}. */
|
|
1084
|
+
set actionSuccessRateChart(value) {
|
|
1085
|
+
this.ActionSuccessRateChart = value;
|
|
1086
|
+
}
|
|
1087
|
+
/** @deprecated Use {@link StepTypeChart}. */
|
|
1088
|
+
get stepTypeChart() {
|
|
1089
|
+
return this.StepTypeChart;
|
|
1090
|
+
}
|
|
1091
|
+
/** @deprecated Use {@link StepTypeChart}. */
|
|
1092
|
+
set stepTypeChart(value) {
|
|
1093
|
+
this.StepTypeChart = value;
|
|
1094
|
+
}
|
|
1095
|
+
/** @deprecated Use {@link PromptTimeDistributionChart}. */
|
|
1096
|
+
get promptTimeDistributionChart() {
|
|
1097
|
+
return this.PromptTimeDistributionChart;
|
|
1098
|
+
}
|
|
1099
|
+
/** @deprecated Use {@link PromptTimeDistributionChart}. */
|
|
1100
|
+
set promptTimeDistributionChart(value) {
|
|
1101
|
+
this.PromptTimeDistributionChart = value;
|
|
1102
|
+
}
|
|
1103
|
+
/** @deprecated Use {@link PromptTokenDistributionChart}. */
|
|
1104
|
+
get promptTokenDistributionChart() {
|
|
1105
|
+
return this.PromptTokenDistributionChart;
|
|
1106
|
+
}
|
|
1107
|
+
/** @deprecated Use {@link PromptTokenDistributionChart}. */
|
|
1108
|
+
set promptTokenDistributionChart(value) {
|
|
1109
|
+
this.PromptTokenDistributionChart = value;
|
|
1110
|
+
}
|
|
1111
|
+
/** @deprecated Use {@link PromptCostDistributionChart}. */
|
|
1112
|
+
get promptCostDistributionChart() {
|
|
1113
|
+
return this.PromptCostDistributionChart;
|
|
1114
|
+
}
|
|
1115
|
+
/** @deprecated Use {@link PromptCostDistributionChart}. */
|
|
1116
|
+
set promptCostDistributionChart(value) {
|
|
1117
|
+
this.PromptCostDistributionChart = value;
|
|
1118
|
+
}
|
|
1119
|
+
/** @deprecated Use {@link PromptCountByNameChart}. */
|
|
1120
|
+
get promptCountByNameChart() {
|
|
1121
|
+
return this.PromptCountByNameChart;
|
|
1122
|
+
}
|
|
1123
|
+
/** @deprecated Use {@link PromptCountByNameChart}. */
|
|
1124
|
+
set promptCountByNameChart(value) {
|
|
1125
|
+
this.PromptCountByNameChart = value;
|
|
1126
|
+
}
|
|
895
1127
|
constructor(cdr, costService) {
|
|
896
1128
|
super();
|
|
897
1129
|
this.cdr = cdr;
|
|
898
1130
|
this.costService = costService;
|
|
899
|
-
this.runTree = null;
|
|
1131
|
+
this.runTree = null; // case-violation-ok-legacy-back-compat: the PascalCase name is already taken in this scope
|
|
900
1132
|
this.destroy$ = new Subject();
|
|
901
1133
|
/** Track active timeouts for cleanup */
|
|
902
1134
|
this.activeTimeouts = [];
|
|
903
1135
|
// Chart expansion states
|
|
904
|
-
this.
|
|
1136
|
+
this.ExpandedCharts = {
|
|
905
1137
|
modelDistribution: false,
|
|
906
1138
|
executionTime: false,
|
|
907
1139
|
costByVendor: false,
|
|
@@ -913,27 +1145,27 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
913
1145
|
actionSuccess: false,
|
|
914
1146
|
stepType: false
|
|
915
1147
|
};
|
|
916
|
-
this.
|
|
1148
|
+
this.ViewMode = 'grid';
|
|
917
1149
|
// Loading state
|
|
918
1150
|
this.isLoading = true;
|
|
919
1151
|
this.error = null;
|
|
920
1152
|
// Data
|
|
921
|
-
this.
|
|
922
|
-
this.
|
|
1153
|
+
this.AgentRun = null;
|
|
1154
|
+
this.AllPromptRuns = [];
|
|
923
1155
|
// Per model+vendor cache pricing (currency-per-token), loaded from AIModelCost for the cost split.
|
|
924
1156
|
this.cacheRates = new Map();
|
|
925
|
-
this.
|
|
926
|
-
this.
|
|
927
|
-
this.
|
|
1157
|
+
this.AllActionLogs = [];
|
|
1158
|
+
this.AllSteps = [];
|
|
1159
|
+
this.SubAgentRuns = [];
|
|
928
1160
|
// Metrics
|
|
929
|
-
this.
|
|
930
|
-
this.
|
|
931
|
-
this.
|
|
1161
|
+
this.PromptMetrics = this.initializePromptMetrics();
|
|
1162
|
+
this.ActionMetrics = this.initializeActionMetrics();
|
|
1163
|
+
this.TimelineMetrics = this.initializeTimelineMetrics();
|
|
932
1164
|
// Expanded sections
|
|
933
|
-
this.
|
|
934
|
-
this.
|
|
1165
|
+
this.PromptDetailsExpanded = false;
|
|
1166
|
+
this.ActionDetailsExpanded = false;
|
|
935
1167
|
// Expansion panel states
|
|
936
|
-
this.
|
|
1168
|
+
this.PanelStates = {
|
|
937
1169
|
summary: true,
|
|
938
1170
|
prompts: true,
|
|
939
1171
|
actions: true,
|
|
@@ -962,16 +1194,16 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
962
1194
|
cleanupAllCharts() {
|
|
963
1195
|
// List of all chart element refs
|
|
964
1196
|
const chartRefs = [
|
|
965
|
-
this.
|
|
966
|
-
this.
|
|
967
|
-
this.
|
|
968
|
-
this.
|
|
969
|
-
this.
|
|
970
|
-
this.
|
|
971
|
-
this.
|
|
972
|
-
this.
|
|
973
|
-
this.
|
|
974
|
-
this.
|
|
1197
|
+
this.ModelDistributionChart,
|
|
1198
|
+
this.ExecutionTimeChart,
|
|
1199
|
+
this.CostByVendorChart,
|
|
1200
|
+
this.TokenUsageChart,
|
|
1201
|
+
this.ActionSuccessRateChart,
|
|
1202
|
+
this.StepTypeChart,
|
|
1203
|
+
this.PromptTimeDistributionChart,
|
|
1204
|
+
this.PromptTokenDistributionChart,
|
|
1205
|
+
this.PromptCostDistributionChart,
|
|
1206
|
+
this.PromptCountByNameChart
|
|
975
1207
|
];
|
|
976
1208
|
// More comprehensive D3 cleanup
|
|
977
1209
|
chartRefs.forEach(chartRef => {
|
|
@@ -1078,13 +1310,13 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1078
1310
|
]);
|
|
1079
1311
|
// Process results
|
|
1080
1312
|
if (results[0].Success && results[0].Results && results[0].Results.length > 0) {
|
|
1081
|
-
this.
|
|
1313
|
+
this.AgentRun = results[0].Results[0];
|
|
1082
1314
|
}
|
|
1083
1315
|
if (results[1].Success) {
|
|
1084
|
-
this.
|
|
1316
|
+
this.SubAgentRuns = results[1].Results || [];
|
|
1085
1317
|
}
|
|
1086
1318
|
// Load all prompt runs for the agent run hierarchy
|
|
1087
|
-
this.
|
|
1319
|
+
this.AllPromptRuns = await this.loadAllPromptRuns(agentRunIds);
|
|
1088
1320
|
// Load cache pricing so cost can be split (input/output) and cache savings computed
|
|
1089
1321
|
await this.loadCacheRates();
|
|
1090
1322
|
if (results[2].Success) {
|
|
@@ -1100,13 +1332,13 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1100
1332
|
ExtraFilter: `ID IN ('${actionLogIds.join("','")}')`
|
|
1101
1333
|
});
|
|
1102
1334
|
if (actionResult.Success) {
|
|
1103
|
-
this.
|
|
1335
|
+
this.AllActionLogs = actionResult.Results || [];
|
|
1104
1336
|
}
|
|
1105
1337
|
}
|
|
1106
1338
|
}
|
|
1107
1339
|
}
|
|
1108
1340
|
if (results[3].Success) {
|
|
1109
|
-
this.
|
|
1341
|
+
this.AllSteps = results[3].Results || [];
|
|
1110
1342
|
}
|
|
1111
1343
|
}
|
|
1112
1344
|
initializePromptMetrics() {
|
|
@@ -1200,7 +1432,7 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1200
1432
|
}
|
|
1201
1433
|
calculatePromptMetrics() {
|
|
1202
1434
|
const metrics = this.initializePromptMetrics();
|
|
1203
|
-
for (const promptRun of this.
|
|
1435
|
+
for (const promptRun of this.AllPromptRuns) {
|
|
1204
1436
|
metrics.totalCount++;
|
|
1205
1437
|
// Calculate execution time
|
|
1206
1438
|
const execTime = this.calculateExecutionTime(promptRun.RunAt, promptRun.CompletedAt);
|
|
@@ -1275,11 +1507,11 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1275
1507
|
if (metrics.totalCount > 0) {
|
|
1276
1508
|
metrics.averageExecutionTime = metrics.totalExecutionTime / metrics.totalCount;
|
|
1277
1509
|
}
|
|
1278
|
-
this.
|
|
1510
|
+
this.PromptMetrics = metrics;
|
|
1279
1511
|
}
|
|
1280
1512
|
calculateActionMetrics() {
|
|
1281
1513
|
const metrics = this.initializeActionMetrics();
|
|
1282
|
-
for (const actionLog of this.
|
|
1514
|
+
for (const actionLog of this.AllActionLogs) {
|
|
1283
1515
|
metrics.totalCount++;
|
|
1284
1516
|
// Calculate execution time
|
|
1285
1517
|
const execTime = this.calculateExecutionTime(actionLog.StartedAt, actionLog.EndedAt);
|
|
@@ -1327,20 +1559,20 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1327
1559
|
if (metrics.totalCount > 0) {
|
|
1328
1560
|
metrics.averageExecutionTime = metrics.totalExecutionTime / metrics.totalCount;
|
|
1329
1561
|
}
|
|
1330
|
-
this.
|
|
1562
|
+
this.ActionMetrics = metrics;
|
|
1331
1563
|
}
|
|
1332
1564
|
calculateTimelineMetrics() {
|
|
1333
1565
|
const metrics = this.initializeTimelineMetrics();
|
|
1334
|
-
metrics.totalSteps = this.
|
|
1566
|
+
metrics.totalSteps = this.AllSteps.length;
|
|
1335
1567
|
// Count steps by type
|
|
1336
|
-
for (const step of this.
|
|
1568
|
+
for (const step of this.AllSteps) {
|
|
1337
1569
|
const type = step.StepType || 'Unknown';
|
|
1338
1570
|
const count = metrics.stepsByType.get(type) || 0;
|
|
1339
1571
|
metrics.stepsByType.set(type, count + 1);
|
|
1340
1572
|
}
|
|
1341
1573
|
// TODO: Calculate parallel executions, deepest nesting, and critical path
|
|
1342
1574
|
// This would require more complex analysis of the step relationships
|
|
1343
|
-
this.
|
|
1575
|
+
this.TimelineMetrics = metrics;
|
|
1344
1576
|
}
|
|
1345
1577
|
calculateExecutionTime(start, end) {
|
|
1346
1578
|
if (!start || !end)
|
|
@@ -1349,66 +1581,66 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1349
1581
|
}
|
|
1350
1582
|
prepareChartData() {
|
|
1351
1583
|
// Model distribution pie chart
|
|
1352
|
-
this.
|
|
1353
|
-
labels: Array.from(this.
|
|
1584
|
+
this.ModelDistributionChartData = {
|
|
1585
|
+
labels: Array.from(this.PromptMetrics.byModel.keys()),
|
|
1354
1586
|
datasets: [{
|
|
1355
|
-
data: Array.from(this.
|
|
1356
|
-
backgroundColor: this.generateColors(this.
|
|
1587
|
+
data: Array.from(this.PromptMetrics.byModel.values()).map(m => m.count),
|
|
1588
|
+
backgroundColor: this.generateColors(this.PromptMetrics.byModel.size)
|
|
1357
1589
|
}]
|
|
1358
1590
|
};
|
|
1359
1591
|
// Execution time by vendor bar chart
|
|
1360
|
-
this.
|
|
1361
|
-
labels: Array.from(this.
|
|
1592
|
+
this.ExecutionTimeChartData = {
|
|
1593
|
+
labels: Array.from(this.PromptMetrics.byVendor.keys()),
|
|
1362
1594
|
datasets: [{
|
|
1363
1595
|
label: 'Average Execution Time (ms)',
|
|
1364
|
-
data: Array.from(this.
|
|
1596
|
+
data: Array.from(this.PromptMetrics.byVendor.values()).map(v => v.avgTime),
|
|
1365
1597
|
backgroundColor: 'rgba(54, 162, 235, 0.5)',
|
|
1366
1598
|
borderColor: 'rgba(54, 162, 235, 1)',
|
|
1367
1599
|
borderWidth: 1
|
|
1368
1600
|
}]
|
|
1369
1601
|
};
|
|
1370
1602
|
// Cost by vendor doughnut chart
|
|
1371
|
-
this.
|
|
1372
|
-
labels: Array.from(this.
|
|
1603
|
+
this.CostByVendorChartData = {
|
|
1604
|
+
labels: Array.from(this.PromptMetrics.costBreakdown.byVendor.keys()),
|
|
1373
1605
|
datasets: [{
|
|
1374
|
-
data: Array.from(this.
|
|
1375
|
-
backgroundColor: this.generateColors(this.
|
|
1606
|
+
data: Array.from(this.PromptMetrics.costBreakdown.byVendor.values()),
|
|
1607
|
+
backgroundColor: this.generateColors(this.PromptMetrics.costBreakdown.byVendor.size)
|
|
1376
1608
|
}]
|
|
1377
1609
|
};
|
|
1378
1610
|
// Token usage stacked bar chart
|
|
1379
|
-
const tokenModels = Array.from(this.
|
|
1380
|
-
this.
|
|
1611
|
+
const tokenModels = Array.from(this.PromptMetrics.tokenUsage.byModel.keys());
|
|
1612
|
+
this.TokenUsageChartData = {
|
|
1381
1613
|
labels: tokenModels,
|
|
1382
1614
|
datasets: [
|
|
1383
1615
|
{
|
|
1384
1616
|
label: 'Input Tokens',
|
|
1385
|
-
data: tokenModels.map(m => this.
|
|
1617
|
+
data: tokenModels.map(m => this.PromptMetrics.tokenUsage.byModel.get(m)?.input || 0),
|
|
1386
1618
|
backgroundColor: 'rgba(255, 99, 132, 0.5)'
|
|
1387
1619
|
},
|
|
1388
1620
|
{
|
|
1389
1621
|
label: 'Output Tokens',
|
|
1390
|
-
data: tokenModels.map(m => this.
|
|
1622
|
+
data: tokenModels.map(m => this.PromptMetrics.tokenUsage.byModel.get(m)?.output || 0),
|
|
1391
1623
|
backgroundColor: 'rgba(75, 192, 192, 0.5)'
|
|
1392
1624
|
}
|
|
1393
1625
|
]
|
|
1394
1626
|
};
|
|
1395
1627
|
// Action success rate bar chart
|
|
1396
|
-
this.
|
|
1397
|
-
labels: Array.from(this.
|
|
1628
|
+
this.ActionSuccessRateChartData = {
|
|
1629
|
+
labels: Array.from(this.ActionMetrics.byAction.keys()),
|
|
1398
1630
|
datasets: [{
|
|
1399
1631
|
label: 'Success Rate (%)',
|
|
1400
|
-
data: Array.from(this.
|
|
1632
|
+
data: Array.from(this.ActionMetrics.byAction.values()).map(a => a.successRate * 100),
|
|
1401
1633
|
backgroundColor: 'rgba(75, 192, 192, 0.5)',
|
|
1402
1634
|
borderColor: 'rgba(75, 192, 192, 1)',
|
|
1403
1635
|
borderWidth: 1
|
|
1404
1636
|
}]
|
|
1405
1637
|
};
|
|
1406
1638
|
// Step type distribution pie chart
|
|
1407
|
-
this.
|
|
1408
|
-
labels: Array.from(this.
|
|
1639
|
+
this.StepTypeDistributionChartData = {
|
|
1640
|
+
labels: Array.from(this.TimelineMetrics.stepsByType.keys()),
|
|
1409
1641
|
datasets: [{
|
|
1410
|
-
data: Array.from(this.
|
|
1411
|
-
backgroundColor: this.generateColors(this.
|
|
1642
|
+
data: Array.from(this.TimelineMetrics.stepsByType.values()),
|
|
1643
|
+
backgroundColor: this.generateColors(this.TimelineMetrics.stepsByType.size)
|
|
1412
1644
|
}]
|
|
1413
1645
|
};
|
|
1414
1646
|
}
|
|
@@ -1441,41 +1673,73 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1441
1673
|
return `${Math.floor(ms / 60000)}m ${Math.floor((ms % 60000) / 1000)}s`;
|
|
1442
1674
|
return `${Math.floor(ms / 3600000)}h ${Math.floor((ms % 3600000) / 60000)}m`;
|
|
1443
1675
|
}
|
|
1444
|
-
|
|
1676
|
+
FormatCost(cost) {
|
|
1445
1677
|
if (cost < 0.01)
|
|
1446
1678
|
return `$${cost.toFixed(4)}`;
|
|
1447
1679
|
if (cost < 1)
|
|
1448
1680
|
return `$${cost.toFixed(3)}`;
|
|
1449
1681
|
return `$${cost.toFixed(2)}`;
|
|
1450
1682
|
}
|
|
1683
|
+
/** @deprecated Use {@link FormatCost}. */
|
|
1684
|
+
formatCost(cost) {
|
|
1685
|
+
return this.FormatCost(cost);
|
|
1686
|
+
}
|
|
1451
1687
|
/** Total tokens the models processed across this run, including cached input (true throughput). */
|
|
1452
|
-
get
|
|
1453
|
-
const u = this.
|
|
1688
|
+
get TotalTokensProcessed() {
|
|
1689
|
+
const u = this.PromptMetrics.tokenUsage;
|
|
1454
1690
|
return u.totalInput + u.totalOutput + u.totalCacheRead + u.totalCacheWrite;
|
|
1455
1691
|
}
|
|
1692
|
+
/** @deprecated Use {@link TotalTokensProcessed}. */
|
|
1693
|
+
get totalTokensProcessed() {
|
|
1694
|
+
return this.TotalTokensProcessed;
|
|
1695
|
+
}
|
|
1456
1696
|
/** Rate-derived input-side dollars (uncached + cache read + cache write). */
|
|
1457
|
-
get
|
|
1697
|
+
get InputCost() { return this.PromptMetrics.costBreakdown.inputCost; }
|
|
1698
|
+
/** @deprecated Use {@link InputCost}. */
|
|
1699
|
+
get inputCost() {
|
|
1700
|
+
return this.InputCost;
|
|
1701
|
+
}
|
|
1458
1702
|
/** Rate-derived output dollars. */
|
|
1459
|
-
get
|
|
1703
|
+
get OutputCost() { return this.PromptMetrics.costBreakdown.outputCost; }
|
|
1704
|
+
/** @deprecated Use {@link OutputCost}. */
|
|
1705
|
+
get outputCost() {
|
|
1706
|
+
return this.OutputCost;
|
|
1707
|
+
}
|
|
1460
1708
|
/** Net dollars saved by caching vs. pricing all input at the full input rate. */
|
|
1461
|
-
get
|
|
1709
|
+
get CacheSavings() { return this.PromptMetrics.costBreakdown.savings; }
|
|
1710
|
+
/** @deprecated Use {@link CacheSavings}. */
|
|
1711
|
+
get cacheSavings() {
|
|
1712
|
+
return this.CacheSavings;
|
|
1713
|
+
}
|
|
1462
1714
|
/** Savings as a % of what the run would have cost with no caching. */
|
|
1463
|
-
get
|
|
1464
|
-
const cb = this.
|
|
1715
|
+
get CacheSavingsPct() {
|
|
1716
|
+
const cb = this.PromptMetrics.costBreakdown;
|
|
1465
1717
|
const fullPrice = cb.totalCost + cb.savings;
|
|
1466
1718
|
return fullPrice > 0 ? (cb.savings / fullPrice) * 100 : 0;
|
|
1467
1719
|
}
|
|
1720
|
+
/** @deprecated Use {@link CacheSavingsPct}. */
|
|
1721
|
+
get cacheSavingsPct() {
|
|
1722
|
+
return this.CacheSavingsPct;
|
|
1723
|
+
}
|
|
1468
1724
|
/** Percentage of input tokens served from the provider's prompt cache across this agent run. */
|
|
1469
|
-
get
|
|
1470
|
-
const u = this.
|
|
1725
|
+
get CacheHitRatePct() {
|
|
1726
|
+
const u = this.PromptMetrics.tokenUsage;
|
|
1471
1727
|
const totalInput = u.totalInput + u.totalCacheRead + u.totalCacheWrite;
|
|
1472
1728
|
return totalInput > 0 ? (u.totalCacheRead / totalInput) * 100 : 0;
|
|
1473
1729
|
}
|
|
1474
|
-
|
|
1730
|
+
/** @deprecated Use {@link CacheHitRatePct}. */
|
|
1731
|
+
get cacheHitRatePct() {
|
|
1732
|
+
return this.CacheHitRatePct;
|
|
1733
|
+
}
|
|
1734
|
+
Refresh() {
|
|
1475
1735
|
this.loadData();
|
|
1476
1736
|
}
|
|
1737
|
+
/** @deprecated Use {@link Refresh}. */
|
|
1738
|
+
refresh() {
|
|
1739
|
+
return this.Refresh();
|
|
1740
|
+
}
|
|
1477
1741
|
renderCharts() {
|
|
1478
|
-
if (!this.
|
|
1742
|
+
if (!this.ModelDistributionChart)
|
|
1479
1743
|
return; // Charts not ready yet
|
|
1480
1744
|
this.renderModelDistributionChart();
|
|
1481
1745
|
this.renderExecutionTimeChart();
|
|
@@ -1490,8 +1754,8 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1490
1754
|
this.renderPromptCountByNameChart();
|
|
1491
1755
|
}
|
|
1492
1756
|
renderModelDistributionChart() {
|
|
1493
|
-
const element = this.
|
|
1494
|
-
const data = Array.from(this.
|
|
1757
|
+
const element = this.ModelDistributionChart.nativeElement;
|
|
1758
|
+
const data = Array.from(this.PromptMetrics.byModel.entries()).map(([name, metrics]) => ({
|
|
1495
1759
|
name,
|
|
1496
1760
|
value: metrics.count
|
|
1497
1761
|
}));
|
|
@@ -1499,7 +1763,7 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1499
1763
|
return;
|
|
1500
1764
|
// Clear previous chart
|
|
1501
1765
|
d3.select(element).selectAll('*').remove();
|
|
1502
|
-
const isExpanded = this.
|
|
1766
|
+
const isExpanded = this.ExpandedCharts['modelDistribution'];
|
|
1503
1767
|
const width = isExpanded ? 500 : 300;
|
|
1504
1768
|
const height = isExpanded ? 400 : 220;
|
|
1505
1769
|
const radius = Math.min(width, height) / 2 - 40;
|
|
@@ -1542,8 +1806,8 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1542
1806
|
.text('Prompts by Model');
|
|
1543
1807
|
}
|
|
1544
1808
|
renderExecutionTimeChart() {
|
|
1545
|
-
const element = this.
|
|
1546
|
-
const data = Array.from(this.
|
|
1809
|
+
const element = this.ExecutionTimeChart.nativeElement;
|
|
1810
|
+
const data = Array.from(this.PromptMetrics.byVendor.entries()).map(([name, metrics]) => ({
|
|
1547
1811
|
name,
|
|
1548
1812
|
value: metrics.avgTime
|
|
1549
1813
|
}));
|
|
@@ -1551,7 +1815,7 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1551
1815
|
return;
|
|
1552
1816
|
// Clear previous chart
|
|
1553
1817
|
d3.select(element).selectAll('*').remove();
|
|
1554
|
-
const isExpanded = this.
|
|
1818
|
+
const isExpanded = this.ExpandedCharts['executionTime'];
|
|
1555
1819
|
const margin = { top: 40, right: 20, bottom: 70, left: 60 };
|
|
1556
1820
|
const width = (isExpanded ? 600 : 320) - margin.left - margin.right;
|
|
1557
1821
|
const height = (isExpanded ? 350 : 200) - margin.top - margin.bottom;
|
|
@@ -1598,8 +1862,8 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1598
1862
|
.text('Average Execution Time by Vendor');
|
|
1599
1863
|
}
|
|
1600
1864
|
renderCostByVendorChart() {
|
|
1601
|
-
const element = this.
|
|
1602
|
-
const data = Array.from(this.
|
|
1865
|
+
const element = this.CostByVendorChart.nativeElement;
|
|
1866
|
+
const data = Array.from(this.PromptMetrics.costBreakdown.byVendor.entries()).map(([name, cost]) => ({
|
|
1603
1867
|
name,
|
|
1604
1868
|
value: cost
|
|
1605
1869
|
}));
|
|
@@ -1642,17 +1906,17 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1642
1906
|
.text('Cost Distribution by Vendor');
|
|
1643
1907
|
}
|
|
1644
1908
|
renderTokenUsageChart() {
|
|
1645
|
-
const element = this.
|
|
1646
|
-
const models = Array.from(this.
|
|
1909
|
+
const element = this.TokenUsageChart.nativeElement;
|
|
1910
|
+
const models = Array.from(this.PromptMetrics.tokenUsage.byModel.keys());
|
|
1647
1911
|
const inputData = models.map(model => ({
|
|
1648
1912
|
model,
|
|
1649
1913
|
type: 'Input',
|
|
1650
|
-
value: this.
|
|
1914
|
+
value: this.PromptMetrics.tokenUsage.byModel.get(model)?.input || 0
|
|
1651
1915
|
}));
|
|
1652
1916
|
const outputData = models.map(model => ({
|
|
1653
1917
|
model,
|
|
1654
1918
|
type: 'Output',
|
|
1655
|
-
value: this.
|
|
1919
|
+
value: this.PromptMetrics.tokenUsage.byModel.get(model)?.output || 0
|
|
1656
1920
|
}));
|
|
1657
1921
|
const data = [...inputData, ...outputData];
|
|
1658
1922
|
if (data.length === 0)
|
|
@@ -1735,8 +1999,8 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1735
1999
|
.text('Token Usage by Model');
|
|
1736
2000
|
}
|
|
1737
2001
|
renderActionSuccessRateChart() {
|
|
1738
|
-
const element = this.
|
|
1739
|
-
const data = Array.from(this.
|
|
2002
|
+
const element = this.ActionSuccessRateChart.nativeElement;
|
|
2003
|
+
const data = Array.from(this.ActionMetrics.byAction.entries()).map(([name, metrics]) => ({
|
|
1740
2004
|
name,
|
|
1741
2005
|
value: metrics.successRate * 100
|
|
1742
2006
|
}));
|
|
@@ -1790,8 +2054,8 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1790
2054
|
.text('Action Success Rates');
|
|
1791
2055
|
}
|
|
1792
2056
|
renderStepTypeChart() {
|
|
1793
|
-
const element = this.
|
|
1794
|
-
const data = Array.from(this.
|
|
2057
|
+
const element = this.StepTypeChart.nativeElement;
|
|
2058
|
+
const data = Array.from(this.TimelineMetrics.stepsByType.entries()).map(([name, value]) => ({
|
|
1795
2059
|
name,
|
|
1796
2060
|
value
|
|
1797
2061
|
}));
|
|
@@ -1843,45 +2107,61 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1843
2107
|
.style('font-weight', 'bold')
|
|
1844
2108
|
.text('Step Type Distribution');
|
|
1845
2109
|
}
|
|
1846
|
-
|
|
1847
|
-
const successfulRuns = this.
|
|
1848
|
-
const totalRuns = this.
|
|
2110
|
+
CalculatePromptSuccessRate(promptName) {
|
|
2111
|
+
const successfulRuns = this.AllPromptRuns.filter(run => run.Prompt === promptName && run.Success === true).length;
|
|
2112
|
+
const totalRuns = this.AllPromptRuns.filter(run => run.Prompt === promptName).length;
|
|
1849
2113
|
if (totalRuns === 0)
|
|
1850
2114
|
return '0';
|
|
1851
2115
|
return ((successfulRuns / totalRuns) * 100).toFixed(1);
|
|
1852
2116
|
}
|
|
1853
|
-
|
|
1854
|
-
|
|
2117
|
+
/** @deprecated Use {@link CalculatePromptSuccessRate}. */
|
|
2118
|
+
calculatePromptSuccessRate(promptName) {
|
|
2119
|
+
return this.CalculatePromptSuccessRate(promptName);
|
|
2120
|
+
}
|
|
2121
|
+
ToggleChartExpansion(chartKey) {
|
|
2122
|
+
this.ExpandedCharts[chartKey] = !this.ExpandedCharts[chartKey];
|
|
1855
2123
|
// Re-render the chart after expansion state changes
|
|
1856
2124
|
this.setTrackedTimeout(() => {
|
|
1857
2125
|
this.renderCharts();
|
|
1858
2126
|
}, 100);
|
|
1859
2127
|
}
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
2128
|
+
/** @deprecated Use {@link ToggleChartExpansion}. */
|
|
2129
|
+
toggleChartExpansion(chartKey) {
|
|
2130
|
+
return this.ToggleChartExpansion(chartKey);
|
|
2131
|
+
}
|
|
2132
|
+
ToggleViewMode() {
|
|
2133
|
+
if (this.ViewMode === 'grid') {
|
|
2134
|
+
this.ViewMode = 'expanded';
|
|
1863
2135
|
// Expand all charts
|
|
1864
|
-
Object.keys(this.
|
|
1865
|
-
this.
|
|
2136
|
+
Object.keys(this.ExpandedCharts).forEach(key => {
|
|
2137
|
+
this.ExpandedCharts[key] = true;
|
|
1866
2138
|
});
|
|
1867
2139
|
}
|
|
1868
2140
|
else {
|
|
1869
|
-
this.
|
|
2141
|
+
this.ViewMode = 'grid';
|
|
1870
2142
|
// Collapse all charts
|
|
1871
|
-
Object.keys(this.
|
|
1872
|
-
this.
|
|
2143
|
+
Object.keys(this.ExpandedCharts).forEach(key => {
|
|
2144
|
+
this.ExpandedCharts[key] = false;
|
|
1873
2145
|
});
|
|
1874
2146
|
}
|
|
1875
2147
|
this.setTrackedTimeout(() => {
|
|
1876
2148
|
this.renderCharts();
|
|
1877
2149
|
}, 100);
|
|
1878
2150
|
}
|
|
1879
|
-
|
|
2151
|
+
/** @deprecated Use {@link ToggleViewMode}. */
|
|
2152
|
+
toggleViewMode() {
|
|
2153
|
+
return this.ToggleViewMode();
|
|
2154
|
+
}
|
|
2155
|
+
GetActionType(actionName) {
|
|
1880
2156
|
// Action type is not directly available on MJActionExecutionLogEntity
|
|
1881
2157
|
return 'Action';
|
|
1882
2158
|
}
|
|
1883
|
-
|
|
1884
|
-
|
|
2159
|
+
/** @deprecated Use {@link GetActionType}. */
|
|
2160
|
+
getActionType(actionName) {
|
|
2161
|
+
return this.GetActionType(actionName);
|
|
2162
|
+
}
|
|
2163
|
+
GetTopErrors() {
|
|
2164
|
+
return Array.from(this.ActionMetrics.errorAnalysis.entries())
|
|
1885
2165
|
.map(([message, count]) => {
|
|
1886
2166
|
// Try to extract meaningful error message from potentially complex error strings
|
|
1887
2167
|
let cleanMessage = message;
|
|
@@ -1898,9 +2178,13 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1898
2178
|
.sort((a, b) => b.count - a.count)
|
|
1899
2179
|
.slice(0, 5); // Top 5 errors
|
|
1900
2180
|
}
|
|
1901
|
-
|
|
2181
|
+
/** @deprecated Use {@link GetTopErrors}. */
|
|
2182
|
+
getTopErrors() {
|
|
2183
|
+
return this.GetTopErrors();
|
|
2184
|
+
}
|
|
2185
|
+
GetModelPerformanceData() {
|
|
1902
2186
|
const modelData = new Map();
|
|
1903
|
-
for (const promptRun of this.
|
|
2187
|
+
for (const promptRun of this.AllPromptRuns) {
|
|
1904
2188
|
const model = promptRun.Model || 'Unknown';
|
|
1905
2189
|
const vendor = promptRun.Vendor || 'Unknown';
|
|
1906
2190
|
const key = `${model}|${vendor}`;
|
|
@@ -1929,7 +2213,11 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1929
2213
|
}
|
|
1930
2214
|
return Array.from(modelData.values()).sort((a, b) => b.count - a.count);
|
|
1931
2215
|
}
|
|
1932
|
-
|
|
2216
|
+
/** @deprecated Use {@link GetModelPerformanceData}. */
|
|
2217
|
+
getModelPerformanceData() {
|
|
2218
|
+
return this.GetModelPerformanceData();
|
|
2219
|
+
}
|
|
2220
|
+
GetStepTypeIcon(stepType) {
|
|
1933
2221
|
const iconMap = {
|
|
1934
2222
|
'Prompts': 'fa-microchip',
|
|
1935
2223
|
'Actions': 'fa-cog',
|
|
@@ -1942,7 +2230,11 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1942
2230
|
};
|
|
1943
2231
|
return iconMap[stepType] || 'fa-circle';
|
|
1944
2232
|
}
|
|
1945
|
-
|
|
2233
|
+
/** @deprecated Use {@link GetStepTypeIcon}. */
|
|
2234
|
+
getStepTypeIcon(stepType) {
|
|
2235
|
+
return this.GetStepTypeIcon(stepType);
|
|
2236
|
+
}
|
|
2237
|
+
GetModelColor(model) {
|
|
1946
2238
|
// Return a color from the same palette used in generateColors
|
|
1947
2239
|
const colors = [
|
|
1948
2240
|
'rgba(255, 99, 132, 0.5)',
|
|
@@ -1963,9 +2255,13 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
1963
2255
|
}
|
|
1964
2256
|
return colors[Math.abs(hash) % colors.length];
|
|
1965
2257
|
}
|
|
2258
|
+
/** @deprecated Use {@link GetModelColor}. */
|
|
2259
|
+
getModelColor(model) {
|
|
2260
|
+
return this.GetModelColor(model);
|
|
2261
|
+
}
|
|
1966
2262
|
renderPromptTimeDistributionChart() {
|
|
1967
|
-
const element = this.
|
|
1968
|
-
const data = Array.from(this.
|
|
2263
|
+
const element = this.PromptTimeDistributionChart.nativeElement;
|
|
2264
|
+
const data = Array.from(this.PromptMetrics.byPrompt.entries())
|
|
1969
2265
|
.map(([name, metrics]) => ({
|
|
1970
2266
|
name: name.length > 20 ? name.substring(0, 20) + '...' : name,
|
|
1971
2267
|
value: metrics.avgTime
|
|
@@ -2023,10 +2319,10 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
2023
2319
|
.text('Average Execution Time by Prompt');
|
|
2024
2320
|
}
|
|
2025
2321
|
renderPromptTokenDistributionChart() {
|
|
2026
|
-
const element = this.
|
|
2322
|
+
const element = this.PromptTokenDistributionChart.nativeElement;
|
|
2027
2323
|
// Aggregate token data by prompt
|
|
2028
2324
|
const promptTokenData = new Map();
|
|
2029
|
-
for (const run of this.
|
|
2325
|
+
for (const run of this.AllPromptRuns) {
|
|
2030
2326
|
const promptName = run.Prompt || 'Unknown';
|
|
2031
2327
|
const existing = promptTokenData.get(promptName) || { input: 0, output: 0 };
|
|
2032
2328
|
existing.input += run.TokensPrompt || 0;
|
|
@@ -2129,10 +2425,10 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
2129
2425
|
.text('Token Usage by Prompt');
|
|
2130
2426
|
}
|
|
2131
2427
|
renderPromptCostDistributionChart() {
|
|
2132
|
-
const element = this.
|
|
2428
|
+
const element = this.PromptCostDistributionChart.nativeElement;
|
|
2133
2429
|
// Aggregate cost data by prompt
|
|
2134
2430
|
const promptCostData = new Map();
|
|
2135
|
-
for (const run of this.
|
|
2431
|
+
for (const run of this.AllPromptRuns) {
|
|
2136
2432
|
const promptName = run.Prompt || 'Unknown';
|
|
2137
2433
|
const existing = promptCostData.get(promptName) || 0;
|
|
2138
2434
|
promptCostData.set(promptName, existing + (run.TotalCost || 0));
|
|
@@ -2194,11 +2490,11 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
2194
2490
|
.attr('dy', '1em')
|
|
2195
2491
|
.style('font-size', '18px')
|
|
2196
2492
|
.style('font-weight', 'bold')
|
|
2197
|
-
.text(this.
|
|
2493
|
+
.text(this.FormatCost(data.reduce((sum, d) => sum + d.value, 0)));
|
|
2198
2494
|
}
|
|
2199
2495
|
renderPromptCountByNameChart() {
|
|
2200
|
-
const element = this.
|
|
2201
|
-
const data = Array.from(this.
|
|
2496
|
+
const element = this.PromptCountByNameChart.nativeElement;
|
|
2497
|
+
const data = Array.from(this.PromptMetrics.byPrompt.entries())
|
|
2202
2498
|
.map(([name, metrics]) => ({
|
|
2203
2499
|
name: name.length > 20 ? name.substring(0, 20) + '...' : name,
|
|
2204
2500
|
value: metrics.count
|
|
@@ -2342,36 +2638,48 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
2342
2638
|
/**
|
|
2343
2639
|
* TrackBy function for keyvalue pipe
|
|
2344
2640
|
*/
|
|
2345
|
-
|
|
2641
|
+
TrackByKey(index, item) {
|
|
2346
2642
|
return item.key;
|
|
2347
2643
|
}
|
|
2644
|
+
/** @deprecated Use {@link TrackByKey}. */
|
|
2645
|
+
trackByKey(index, item) {
|
|
2646
|
+
return this.TrackByKey(index, item);
|
|
2647
|
+
}
|
|
2348
2648
|
/**
|
|
2349
2649
|
* TrackBy function for error messages
|
|
2350
2650
|
*/
|
|
2351
|
-
|
|
2651
|
+
TrackByErrorMessage(index, error) {
|
|
2352
2652
|
return error.message;
|
|
2353
2653
|
}
|
|
2654
|
+
/** @deprecated Use {@link TrackByErrorMessage}. */
|
|
2655
|
+
trackByErrorMessage(index, error) {
|
|
2656
|
+
return this.TrackByErrorMessage(index, error);
|
|
2657
|
+
}
|
|
2354
2658
|
/**
|
|
2355
2659
|
* TrackBy function for model performance data
|
|
2356
2660
|
*/
|
|
2357
|
-
|
|
2661
|
+
TrackByModelName(index, model) {
|
|
2358
2662
|
return model.name || index.toString();
|
|
2359
2663
|
}
|
|
2664
|
+
/** @deprecated Use {@link TrackByModelName}. */
|
|
2665
|
+
trackByModelName(index, model) {
|
|
2666
|
+
return this.TrackByModelName(index, model);
|
|
2667
|
+
}
|
|
2360
2668
|
static { this.ɵfac = function AIAgentRunAnalyticsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AIAgentRunAnalyticsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.AIAgentRunCostService)); }; }
|
|
2361
2669
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunAnalyticsComponent, selectors: [["mj-ai-agent-run-analytics"]], viewQuery: function AIAgentRunAnalyticsComponent_Query(rf, ctx) { if (rf & 1) {
|
|
2362
2670
|
i0.ɵɵviewQuery(_c0, 5)(_c1, 5)(_c2, 5)(_c3, 5)(_c4, 5)(_c5, 5)(_c6, 5)(_c7, 5)(_c8, 5)(_c9, 5);
|
|
2363
2671
|
} if (rf & 2) {
|
|
2364
2672
|
let _t;
|
|
2365
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2366
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2367
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2368
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2369
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2370
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2371
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2372
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2373
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2374
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2673
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ModelDistributionChart = _t.first);
|
|
2674
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ExecutionTimeChart = _t.first);
|
|
2675
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.CostByVendorChart = _t.first);
|
|
2676
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.TokenUsageChart = _t.first);
|
|
2677
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ActionSuccessRateChart = _t.first);
|
|
2678
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.StepTypeChart = _t.first);
|
|
2679
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.PromptTimeDistributionChart = _t.first);
|
|
2680
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.PromptTokenDistributionChart = _t.first);
|
|
2681
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.PromptCostDistributionChart = _t.first);
|
|
2682
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.PromptCountByNameChart = _t.first);
|
|
2375
2683
|
} }, inputs: { agentRunId: "agentRunId", RunTree: "RunTree" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 3, consts: [["actionSuccessRateChart", ""], ["stepTypeChart", ""], ["modelDistributionChart", ""], ["executionTimeChart", ""], ["costByVendorChart", ""], ["tokenUsageChart", ""], ["promptTimeDistributionChart", ""], ["promptTokenDistributionChart", ""], ["promptCostDistributionChart", ""], ["promptCountByNameChart", ""], [1, "analytics-container"], [1, "loading-state"], ["Variant", "error", "ActionText", "Retry", "ActionIcon", "fa-solid fa-arrows-rotate", 3, "Message"], [1, "analytics-content"], [1, "fas", "fa-spinner", "fa-spin", "fa-2x"], ["Variant", "error", "ActionText", "Retry", "ActionIcon", "fa-solid fa-arrows-rotate", 3, "Action", "Message"], [3, "Expanded"], ["mjAccordionTitle", ""], [1, "summary-cards"], [1, "summary-card"], [1, "card-icon", "prompts"], [1, "fas", "fa-microchip"], [1, "card-content"], [1, "metric-value"], [1, "metric-detail"], [1, "success"], [1, "failed"], [1, "card-icon", "actions"], [1, "fas", "fa-cog"], [1, "card-icon", "cost"], [1, "fas", "fa-dollar-sign"], [1, "metric-detail", "cache-detail"], [1, "card-icon", "cache"], [1, "fas", "fa-bolt"], [1, "card-icon", "time"], [1, "fas", "fa-clock"], [1, "analytics-panel"], [1, "view-mode-toggle"], ["Icon", "fa-solid fa-circle-info", "Title", "No prompt executions found in this agent run.", "Message", "This agent run may have only executed actions without any AI prompts."], [1, "charts-grid"], [1, "charts-grid", 2, "margin-top", "20px"], [1, "detailed-metrics"], ["mjButton", "", "variant", "flat", 3, "click"], [1, "fas", 3, "ngClass"], [1, "metrics-table"], [1, "chart-card"], [1, "chart-card-header", 3, "click"], [1, "fas", "fa-chart-bar"], [1, "expand-btn"], ["aria-hidden", "true", 1, "fas", 3, "ngClass"], [1, "chart-card-body"], [1, "chart-container"], ["id", "actionSuccessRateChart"], [1, "fas", "fa-layer-group"], ["id", "stepTypeChart"], [1, "error-analysis-section"], [1, "error-analysis"], ["Variant", "success", "Message", "No action errors detected in this run. All actions completed successfully!"], [1, "model-comparison"], [1, "timeline-stats"], [1, "stat-item"], [1, "stat-label"], [1, "stat-value"], [1, "step-breakdown"], [1, "step-type-list"], [1, "step-type-item"], [1, "fas", "fa-tachometer-alt"], [1, "fas", "fa-chart-pie"], ["id", "modelDistributionChart"], [1, "chart-legend"], ["id", "executionTimeChart"], ["id", "costByVendorChart"], [1, "chart-total"], [1, "fas", "fa-coins"], ["id", "tokenUsageChart"], [1, "legend-item"], [1, "legend-color"], [1, "legend-label"], [1, "fas", "fa-hourglass-half"], ["id", "promptTimeDistributionChart"], [1, "fas", "fa-database"], ["id", "promptTokenDistributionChart"], ["id", "promptCostDistributionChart"], [1, "fas", "fa-list-ol"], ["id", "promptCountByNameChart"], [1, "success-rate"], [1, "fas", "fa-exclamation-triangle"], [1, "error-analysis-description"], [1, "error-list"], [1, "error-item"], [1, "error-count"], [1, "error-message"], [1, "fas", "fa-chart-line"], [1, "fas", "fa-stream"], [1, "type-name"], [1, "type-count"], [1, "type-percentage"]], template: function AIAgentRunAnalyticsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2376
2684
|
i0.ɵɵelementStart(0, "div", 10);
|
|
2377
2685
|
i0.ɵɵconditionalCreate(1, AIAgentRunAnalyticsComponent_Conditional_1_Template, 4, 0, "div", 11);
|
|
@@ -2394,34 +2702,34 @@ export class AIAgentRunAnalyticsComponent extends BaseAngularComponent {
|
|
|
2394
2702
|
type: Input
|
|
2395
2703
|
}], RunTree: [{
|
|
2396
2704
|
type: Input
|
|
2397
|
-
}],
|
|
2705
|
+
}], ModelDistributionChart: [{
|
|
2398
2706
|
type: ViewChild,
|
|
2399
2707
|
args: ['modelDistributionChart', { static: false }]
|
|
2400
|
-
}],
|
|
2708
|
+
}], ExecutionTimeChart: [{
|
|
2401
2709
|
type: ViewChild,
|
|
2402
2710
|
args: ['executionTimeChart', { static: false }]
|
|
2403
|
-
}],
|
|
2711
|
+
}], CostByVendorChart: [{
|
|
2404
2712
|
type: ViewChild,
|
|
2405
2713
|
args: ['costByVendorChart', { static: false }]
|
|
2406
|
-
}],
|
|
2714
|
+
}], TokenUsageChart: [{
|
|
2407
2715
|
type: ViewChild,
|
|
2408
2716
|
args: ['tokenUsageChart', { static: false }]
|
|
2409
|
-
}],
|
|
2717
|
+
}], ActionSuccessRateChart: [{
|
|
2410
2718
|
type: ViewChild,
|
|
2411
2719
|
args: ['actionSuccessRateChart', { static: false }]
|
|
2412
|
-
}],
|
|
2720
|
+
}], StepTypeChart: [{
|
|
2413
2721
|
type: ViewChild,
|
|
2414
2722
|
args: ['stepTypeChart', { static: false }]
|
|
2415
|
-
}],
|
|
2723
|
+
}], PromptTimeDistributionChart: [{
|
|
2416
2724
|
type: ViewChild,
|
|
2417
2725
|
args: ['promptTimeDistributionChart', { static: false }]
|
|
2418
|
-
}],
|
|
2726
|
+
}], PromptTokenDistributionChart: [{
|
|
2419
2727
|
type: ViewChild,
|
|
2420
2728
|
args: ['promptTokenDistributionChart', { static: false }]
|
|
2421
|
-
}],
|
|
2729
|
+
}], PromptCostDistributionChart: [{
|
|
2422
2730
|
type: ViewChild,
|
|
2423
2731
|
args: ['promptCostDistributionChart', { static: false }]
|
|
2424
|
-
}],
|
|
2732
|
+
}], PromptCountByNameChart: [{
|
|
2425
2733
|
type: ViewChild,
|
|
2426
2734
|
args: ['promptCountByNameChart', { static: false }]
|
|
2427
2735
|
}] }); })();
|