@memberjunction/ng-core-entity-forms 6.1.4 → 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/README.md +22 -0
- 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-form.component.d.ts +27 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.js +193 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.js.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +75 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.js +244 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +173 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.js +883 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -0
- 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 +133 -7
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js +1268 -19
- 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 +121 -14
- 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 +287 -79
- 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/custom-forms.module.d.ts +32 -30
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +21 -4
- package/dist/lib/custom/custom-forms.module.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/MJAIPrompt/mjaiprompt.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +62 -26
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.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/MJCredential/mjcredential.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +33 -15
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +100 -82
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +24 -20
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js +122 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js +125 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +23 -5
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.js +25 -6
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.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/MJQuery/mjquery.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +11 -15
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +43 -7
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.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/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.js +78 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.js.map +1 -0
- package/dist/lib/generated/generated-forms.module.d.ts +240 -237
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +11 -2
- package/dist/lib/generated/generated-forms.module.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 +122 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.js +236 -11
- package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +72 -13
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.js +577 -78
- 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/dist/public-api.d.ts +4 -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 +43 -41
|
@@ -14,14 +14,20 @@ export declare class AIAgentRunCostService {
|
|
|
14
14
|
* Get comprehensive cost metrics for an agent run including all nested sub-runs
|
|
15
15
|
* Uses the high-performance CalculateAIAgentRunCost templated query
|
|
16
16
|
*/
|
|
17
|
+
GetAgentRunCostMetrics(agentRunId: string, useCache?: boolean): Promise<AgentRunCostMetrics>;
|
|
18
|
+
/** @deprecated Use {@link GetAgentRunCostMetrics}. */
|
|
17
19
|
getAgentRunCostMetrics(agentRunId: string, useCache?: boolean): Promise<AgentRunCostMetrics>;
|
|
18
20
|
/**
|
|
19
21
|
* Get just the total cost for display (simplified version)
|
|
20
22
|
*/
|
|
23
|
+
GetTotalCost(agentRunId: string, useCache?: boolean): Promise<number>;
|
|
24
|
+
/** @deprecated Use {@link GetTotalCost}. */
|
|
21
25
|
getTotalCost(agentRunId: string, useCache?: boolean): Promise<number>;
|
|
22
26
|
/**
|
|
23
27
|
* Clear cache for specific agent run or all cached data
|
|
24
28
|
*/
|
|
29
|
+
ClearCache(agentRunId?: string): void;
|
|
30
|
+
/** @deprecated Use {@link ClearCache}. */
|
|
25
31
|
clearCache(agentRunId?: string): void;
|
|
26
32
|
/**
|
|
27
33
|
* Get cached metrics if they exist and are still valid
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-cost.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-cost.service.ts"],"names":[],"mappings":";AAGA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,qBAGa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAA0E;IAC3F,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAE3C;;;OAGG;IACG,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0DxG;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjF;;OAEG;IACH,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"ai-agent-run-cost.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-cost.service.ts"],"names":[],"mappings":";AAGA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,qBAGa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAA0E;IAC3F,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAE3C;;;OAGG;IACG,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0DxG,sDAAsD;IAChD,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIxG;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjF,4CAA4C;IACtC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjF;;OAEG;IACH,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrC,0CAA0C;IAC1C,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;yCAxHb,qBAAqB;6CAArB,qBAAqB;CA8HjC"}
|
|
@@ -10,7 +10,7 @@ export class AIAgentRunCostService {
|
|
|
10
10
|
* Get comprehensive cost metrics for an agent run including all nested sub-runs
|
|
11
11
|
* Uses the high-performance CalculateAIAgentRunCost templated query
|
|
12
12
|
*/
|
|
13
|
-
async
|
|
13
|
+
async GetAgentRunCostMetrics(agentRunId, useCache = true) {
|
|
14
14
|
// Check cache first
|
|
15
15
|
if (useCache) {
|
|
16
16
|
const cached = this.getCachedMetrics(agentRunId);
|
|
@@ -61,17 +61,25 @@ export class AIAgentRunCostService {
|
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
+
/** @deprecated Use {@link GetAgentRunCostMetrics}. */
|
|
65
|
+
async getAgentRunCostMetrics(agentRunId, useCache = true) {
|
|
66
|
+
return this.GetAgentRunCostMetrics(agentRunId, useCache);
|
|
67
|
+
}
|
|
64
68
|
/**
|
|
65
69
|
* Get just the total cost for display (simplified version)
|
|
66
70
|
*/
|
|
67
|
-
async
|
|
68
|
-
const metrics = await this.
|
|
71
|
+
async GetTotalCost(agentRunId, useCache = true) {
|
|
72
|
+
const metrics = await this.GetAgentRunCostMetrics(agentRunId, useCache);
|
|
69
73
|
return metrics.totalCost;
|
|
70
74
|
}
|
|
75
|
+
/** @deprecated Use {@link GetTotalCost}. */
|
|
76
|
+
async getTotalCost(agentRunId, useCache = true) {
|
|
77
|
+
return this.GetTotalCost(agentRunId, useCache);
|
|
78
|
+
}
|
|
71
79
|
/**
|
|
72
80
|
* Clear cache for specific agent run or all cached data
|
|
73
81
|
*/
|
|
74
|
-
|
|
82
|
+
ClearCache(agentRunId) {
|
|
75
83
|
if (agentRunId) {
|
|
76
84
|
this.costCache.delete(agentRunId);
|
|
77
85
|
}
|
|
@@ -79,6 +87,10 @@ export class AIAgentRunCostService {
|
|
|
79
87
|
this.costCache.clear();
|
|
80
88
|
}
|
|
81
89
|
}
|
|
90
|
+
/** @deprecated Use {@link ClearCache}. */
|
|
91
|
+
clearCache(agentRunId) {
|
|
92
|
+
return this.ClearCache(agentRunId);
|
|
93
|
+
}
|
|
82
94
|
/**
|
|
83
95
|
* Get cached metrics if they exist and are still valid
|
|
84
96
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-cost.service.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-cost.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;AAuB1D,MAAM,OAAO,qBAAqB;IAHlC;QAIU,cAAS,GAAG,IAAI,GAAG,EAA+D,CAAC;QAC1E,sBAAiB,GAAG,KAAK,CAAC,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"ai-agent-run-cost.service.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-cost.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Metadata, RunQuery } from '@memberjunction/core';\n\nexport interface AgentRunCostMetrics {\n totalCost: number; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n totalPrompts: number; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n totalTokensInput: number; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n totalTokensOutput: number; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n isLoading: boolean; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n error?: string; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n}\n\ninterface QueryResult {\n AgentRunID: string;\n TotalCost: number;\n TotalPrompts: number;\n TotalTokensInput: number;\n TotalTokensOutput: number;\n TotalTokens: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AIAgentRunCostService {\n private costCache = new Map<string, { metrics: AgentRunCostMetrics; timestamp: number }>();\n private readonly CACHE_DURATION_MS = 30000; // 30 seconds\n\n /**\n * Get comprehensive cost metrics for an agent run including all nested sub-runs\n * Uses the high-performance CalculateAIAgentRunCost templated query\n */\n async GetAgentRunCostMetrics(agentRunId: string, useCache: boolean = true): Promise<AgentRunCostMetrics> {\n // Check cache first\n if (useCache) {\n const cached = this.getCachedMetrics(agentRunId);\n if (cached) {\n return cached;\n }\n }\n\n const metrics: AgentRunCostMetrics = {\n totalCost: 0,\n totalPrompts: 0,\n totalTokensInput: 0,\n totalTokensOutput: 0,\n isLoading: true\n };\n\n try {\n // Use the high-performance templated query\n const rq = new RunQuery();\n const queryResult = await rq.RunQuery({\n QueryName: 'CalculateRunCost',\n CategoryPath: '/MJ/AI/Agents/',\n Parameters: {\n AIAgentRunID: agentRunId\n }\n });\n\n if (queryResult.Success && queryResult.Results && queryResult.Results.length > 0) {\n const result = queryResult.Results[0] as QueryResult;\n \n metrics.totalCost = result.TotalCost || 0;\n metrics.totalPrompts = result.TotalPrompts || 0;\n metrics.totalTokensInput = result.TotalTokensInput || 0;\n metrics.totalTokensOutput = result.TotalTokensOutput || 0;\n } else {\n console.warn(`No cost data found for agent run ${agentRunId}:`, queryResult.ErrorMessage);\n }\n \n metrics.isLoading = false;\n \n // Cache the results\n if (useCache) {\n this.setCachedMetrics(agentRunId, metrics);\n }\n \n return metrics;\n \n } catch (error) {\n console.error('Error calculating agent run cost metrics:', error);\n return {\n ...metrics,\n isLoading: false,\n error: 'Failed to calculate cost metrics'\n };\n }\n }\n\n /** @deprecated Use {@link GetAgentRunCostMetrics}. */\n async getAgentRunCostMetrics(agentRunId: string, useCache: boolean = true): Promise<AgentRunCostMetrics> {\n return this.GetAgentRunCostMetrics(agentRunId, useCache);\n }\n\n /**\n * Get just the total cost for display (simplified version)\n */\n async GetTotalCost(agentRunId: string, useCache: boolean = true): Promise<number> {\n const metrics = await this.GetAgentRunCostMetrics(agentRunId, useCache);\n return metrics.totalCost;\n }\n\n /** @deprecated Use {@link GetTotalCost}. */\n async getTotalCost(agentRunId: string, useCache: boolean = true): Promise<number> {\n return this.GetTotalCost(agentRunId, useCache);\n }\n\n /**\n * Clear cache for specific agent run or all cached data\n */\n ClearCache(agentRunId?: string): void {\n if (agentRunId) {\n this.costCache.delete(agentRunId);\n } else {\n this.costCache.clear();\n }\n }\n\n /** @deprecated Use {@link ClearCache}. */\n clearCache(agentRunId?: string): void {\n return this.ClearCache(agentRunId);\n }\n\n /**\n * Get cached metrics if they exist and are still valid\n */\n private getCachedMetrics(agentRunId: string): AgentRunCostMetrics | null {\n const cached = this.costCache.get(agentRunId);\n if (cached && (Date.now() - cached.timestamp) < this.CACHE_DURATION_MS) {\n return { ...cached.metrics }; // Return a copy\n }\n \n // Remove stale cache entry\n if (cached) {\n this.costCache.delete(agentRunId);\n }\n \n return null;\n }\n\n /**\n * Cache metrics for future use\n */\n private setCachedMetrics(agentRunId: string, metrics: AgentRunCostMetrics): void {\n this.costCache.set(agentRunId, {\n metrics: { ...metrics }, // Store a copy\n timestamp: Date.now()\n });\n }\n}"]}
|
|
@@ -18,12 +18,36 @@ export declare class AIAgentRunDataHelper {
|
|
|
18
18
|
private promptRunsSubject$;
|
|
19
19
|
private loadingSubject$;
|
|
20
20
|
private errorSubject$;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
Steps$: Observable<MJAIAgentRunStepEntity[]>;
|
|
22
|
+
/** @deprecated Use {@link Steps$}. */
|
|
23
|
+
get steps$(): Observable<MJAIAgentRunStepEntity[]>;
|
|
24
|
+
/** @deprecated Use {@link Steps$}. */
|
|
25
|
+
set steps$(value: Observable<MJAIAgentRunStepEntity[]>);
|
|
26
|
+
SubRuns$: Observable<MJAIAgentRunEntity[]>;
|
|
27
|
+
/** @deprecated Use {@link SubRuns$}. */
|
|
28
|
+
get subRuns$(): Observable<MJAIAgentRunEntity[]>;
|
|
29
|
+
/** @deprecated Use {@link SubRuns$}. */
|
|
30
|
+
set subRuns$(value: Observable<MJAIAgentRunEntity[]>);
|
|
31
|
+
ActionLogs$: Observable<MJActionExecutionLogEntity[]>;
|
|
32
|
+
/** @deprecated Use {@link ActionLogs$}. */
|
|
33
|
+
get actionLogs$(): Observable<MJActionExecutionLogEntity[]>;
|
|
34
|
+
/** @deprecated Use {@link ActionLogs$}. */
|
|
35
|
+
set actionLogs$(value: Observable<MJActionExecutionLogEntity[]>);
|
|
36
|
+
PromptRuns$: Observable<MJAIPromptRunEntity[]>;
|
|
37
|
+
/** @deprecated Use {@link PromptRuns$}. */
|
|
38
|
+
get promptRuns$(): Observable<MJAIPromptRunEntity[]>;
|
|
39
|
+
/** @deprecated Use {@link PromptRuns$}. */
|
|
40
|
+
set promptRuns$(value: Observable<MJAIPromptRunEntity[]>);
|
|
41
|
+
Loading$: Observable<boolean>;
|
|
42
|
+
/** @deprecated Use {@link Loading$}. */
|
|
43
|
+
get loading$(): Observable<boolean>;
|
|
44
|
+
/** @deprecated Use {@link Loading$}. */
|
|
45
|
+
set loading$(value: Observable<boolean>);
|
|
46
|
+
Error$: Observable<string | null>;
|
|
47
|
+
/** @deprecated Use {@link Error$}. */
|
|
48
|
+
get error$(): Observable<string | null>;
|
|
49
|
+
/** @deprecated Use {@link Error$}. */
|
|
50
|
+
set error$(value: Observable<string | null>);
|
|
27
51
|
private readonly MAX_CACHE_SIZE;
|
|
28
52
|
private readonly CACHE_TTL_MS;
|
|
29
53
|
private subAgentDataCache;
|
|
@@ -41,11 +65,18 @@ export declare class AIAgentRunDataHelper {
|
|
|
41
65
|
/**
|
|
42
66
|
* Load all data for an agent run
|
|
43
67
|
*/
|
|
68
|
+
LoadAgentRunData(agentRunId: string, forceReload?: boolean): Promise<void>;
|
|
69
|
+
/** @deprecated Use {@link LoadAgentRunData}. */
|
|
44
70
|
loadAgentRunData(agentRunId: string, forceReload?: boolean): Promise<void>;
|
|
45
71
|
private loadStepsAndSubRuns;
|
|
46
72
|
/**
|
|
47
73
|
* Load sub-agent data (for expanding sub-agent nodes)
|
|
48
74
|
*/
|
|
75
|
+
LoadSubAgentData(subAgentRunId: string): Promise<{
|
|
76
|
+
steps: MJAIAgentRunStepEntity[];
|
|
77
|
+
promptRuns: MJAIPromptRunEntity[];
|
|
78
|
+
}>;
|
|
79
|
+
/** @deprecated Use {@link LoadSubAgentData}. */
|
|
49
80
|
loadSubAgentData(subAgentRunId: string): Promise<{
|
|
50
81
|
steps: MJAIAgentRunStepEntity[];
|
|
51
82
|
promptRuns: MJAIPromptRunEntity[];
|
|
@@ -53,10 +84,14 @@ export declare class AIAgentRunDataHelper {
|
|
|
53
84
|
/**
|
|
54
85
|
* Clear all data
|
|
55
86
|
*/
|
|
87
|
+
ClearData(): void;
|
|
88
|
+
/** @deprecated Use {@link ClearData}. */
|
|
56
89
|
clearData(): void;
|
|
57
90
|
/**
|
|
58
91
|
* Clear just the cache for the current agent run
|
|
59
92
|
*/
|
|
93
|
+
ClearCurrentRunCache(): void;
|
|
94
|
+
/** @deprecated Use {@link ClearCurrentRunCache}. */
|
|
60
95
|
clearCurrentRunCache(): void;
|
|
61
96
|
/**
|
|
62
97
|
* Clear entire cache
|
|
@@ -73,6 +108,13 @@ export declare class AIAgentRunDataHelper {
|
|
|
73
108
|
/**
|
|
74
109
|
* Get cache statistics for monitoring
|
|
75
110
|
*/
|
|
111
|
+
GetCacheStats(): {
|
|
112
|
+
size: number;
|
|
113
|
+
maxSize: number;
|
|
114
|
+
ttlMs: number;
|
|
115
|
+
accessOrder: string[];
|
|
116
|
+
};
|
|
117
|
+
/** @deprecated Use {@link GetCacheStats}. */
|
|
76
118
|
getCacheStats(): {
|
|
77
119
|
size: number;
|
|
78
120
|
maxSize: number;
|
|
@@ -82,6 +124,8 @@ export declare class AIAgentRunDataHelper {
|
|
|
82
124
|
/**
|
|
83
125
|
* Get current data snapshot
|
|
84
126
|
*/
|
|
127
|
+
GetCurrentData(): AgentRunData;
|
|
128
|
+
/** @deprecated Use {@link GetCurrentData}. */
|
|
85
129
|
getCurrentData(): AgentRunData;
|
|
86
130
|
}
|
|
87
131
|
//# sourceMappingURL=ai-agent-run-data.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-data.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-data.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAqB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAG5I,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,UAAU,EAAE,0BAA0B,EAAE,CAAC;IACzC,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAE/B,OAAO,CAAC,aAAa,CAAqD;IAC1E,OAAO,CAAC,eAAe,CAAiD;IACxE,OAAO,CAAC,kBAAkB,CAAyD;IACnF,OAAO,CAAC,kBAAkB,CAAkD;IAC5E,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,aAAa,CAA4C;IAGjE,MAAM,uCAAqC;
|
|
1
|
+
{"version":3,"file":"ai-agent-run-data.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-data.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,54 @@ import { SortAgentRunStepsByExecutionOrder } from './agent-run-step-order';
|
|
|
6
6
|
* No longer a singleton Angular service - instantiated per component
|
|
7
7
|
*/
|
|
8
8
|
export class AIAgentRunDataHelper {
|
|
9
|
+
/** @deprecated Use {@link Steps$}. */
|
|
10
|
+
get steps$() {
|
|
11
|
+
return this.Steps$;
|
|
12
|
+
}
|
|
13
|
+
/** @deprecated Use {@link Steps$}. */
|
|
14
|
+
set steps$(value) {
|
|
15
|
+
this.Steps$ = value;
|
|
16
|
+
}
|
|
17
|
+
/** @deprecated Use {@link SubRuns$}. */
|
|
18
|
+
get subRuns$() {
|
|
19
|
+
return this.SubRuns$;
|
|
20
|
+
}
|
|
21
|
+
/** @deprecated Use {@link SubRuns$}. */
|
|
22
|
+
set subRuns$(value) {
|
|
23
|
+
this.SubRuns$ = value;
|
|
24
|
+
}
|
|
25
|
+
/** @deprecated Use {@link ActionLogs$}. */
|
|
26
|
+
get actionLogs$() {
|
|
27
|
+
return this.ActionLogs$;
|
|
28
|
+
}
|
|
29
|
+
/** @deprecated Use {@link ActionLogs$}. */
|
|
30
|
+
set actionLogs$(value) {
|
|
31
|
+
this.ActionLogs$ = value;
|
|
32
|
+
}
|
|
33
|
+
/** @deprecated Use {@link PromptRuns$}. */
|
|
34
|
+
get promptRuns$() {
|
|
35
|
+
return this.PromptRuns$;
|
|
36
|
+
}
|
|
37
|
+
/** @deprecated Use {@link PromptRuns$}. */
|
|
38
|
+
set promptRuns$(value) {
|
|
39
|
+
this.PromptRuns$ = value;
|
|
40
|
+
}
|
|
41
|
+
/** @deprecated Use {@link Loading$}. */
|
|
42
|
+
get loading$() {
|
|
43
|
+
return this.Loading$;
|
|
44
|
+
}
|
|
45
|
+
/** @deprecated Use {@link Loading$}. */
|
|
46
|
+
set loading$(value) {
|
|
47
|
+
this.Loading$ = value;
|
|
48
|
+
}
|
|
49
|
+
/** @deprecated Use {@link Error$}. */
|
|
50
|
+
get error$() {
|
|
51
|
+
return this.Error$;
|
|
52
|
+
}
|
|
53
|
+
/** @deprecated Use {@link Error$}. */
|
|
54
|
+
set error$(value) {
|
|
55
|
+
this.Error$ = value;
|
|
56
|
+
}
|
|
9
57
|
set Provider(value) {
|
|
10
58
|
this._provider = value;
|
|
11
59
|
}
|
|
@@ -21,12 +69,12 @@ export class AIAgentRunDataHelper {
|
|
|
21
69
|
this.loadingSubject$ = new BehaviorSubject(true);
|
|
22
70
|
this.errorSubject$ = new BehaviorSubject(null);
|
|
23
71
|
// Public observables
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
72
|
+
this.Steps$ = this.stepsSubject$.asObservable();
|
|
73
|
+
this.SubRuns$ = this.subRunsSubject$.asObservable();
|
|
74
|
+
this.ActionLogs$ = this.actionLogsSubject$.asObservable();
|
|
75
|
+
this.PromptRuns$ = this.promptRunsSubject$.asObservable();
|
|
76
|
+
this.Loading$ = this.loadingSubject$.asObservable();
|
|
77
|
+
this.Error$ = this.errorSubject$.asObservable();
|
|
30
78
|
// Cache for sub-agent data with size limit
|
|
31
79
|
this.MAX_CACHE_SIZE = 100; // Maximum 100 sub-agent entries
|
|
32
80
|
this.CACHE_TTL_MS = 15 * 60 * 1000; // 15 minute TTL
|
|
@@ -44,7 +92,7 @@ export class AIAgentRunDataHelper {
|
|
|
44
92
|
/**
|
|
45
93
|
* Load all data for an agent run
|
|
46
94
|
*/
|
|
47
|
-
async
|
|
95
|
+
async LoadAgentRunData(agentRunId, forceReload = false) {
|
|
48
96
|
if (!agentRunId) {
|
|
49
97
|
this.errorSubject$.next('No agent run ID provided');
|
|
50
98
|
return;
|
|
@@ -69,6 +117,10 @@ export class AIAgentRunDataHelper {
|
|
|
69
117
|
this.loadingSubject$.next(false);
|
|
70
118
|
}
|
|
71
119
|
}
|
|
120
|
+
/** @deprecated Use {@link LoadAgentRunData}. */
|
|
121
|
+
async loadAgentRunData(agentRunId, forceReload = false) {
|
|
122
|
+
return this.LoadAgentRunData(agentRunId, forceReload);
|
|
123
|
+
}
|
|
72
124
|
async loadStepsAndSubRuns(agentRunId) {
|
|
73
125
|
const rv = RunView.FromMetadataProvider(this.Provider);
|
|
74
126
|
// First, get all steps to determine what additional data we need
|
|
@@ -154,7 +206,7 @@ export class AIAgentRunDataHelper {
|
|
|
154
206
|
/**
|
|
155
207
|
* Load sub-agent data (for expanding sub-agent nodes)
|
|
156
208
|
*/
|
|
157
|
-
async
|
|
209
|
+
async LoadSubAgentData(subAgentRunId) {
|
|
158
210
|
// Check cache first
|
|
159
211
|
const cachedData = this.subAgentDataCache.get(subAgentRunId);
|
|
160
212
|
if (cachedData) {
|
|
@@ -212,10 +264,14 @@ export class AIAgentRunDataHelper {
|
|
|
212
264
|
this.updateCacheAccessOrder(subAgentRunId);
|
|
213
265
|
return data;
|
|
214
266
|
}
|
|
267
|
+
/** @deprecated Use {@link LoadSubAgentData}. */
|
|
268
|
+
async loadSubAgentData(subAgentRunId) {
|
|
269
|
+
return this.LoadSubAgentData(subAgentRunId);
|
|
270
|
+
}
|
|
215
271
|
/**
|
|
216
272
|
* Clear all data
|
|
217
273
|
*/
|
|
218
|
-
|
|
274
|
+
ClearData() {
|
|
219
275
|
this.stepsSubject$.next([]);
|
|
220
276
|
this.subRunsSubject$.next([]);
|
|
221
277
|
this.actionLogsSubject$.next([]);
|
|
@@ -223,10 +279,14 @@ export class AIAgentRunDataHelper {
|
|
|
223
279
|
this.clearCache();
|
|
224
280
|
this.currentAgentRunId = null;
|
|
225
281
|
}
|
|
282
|
+
/** @deprecated Use {@link ClearData}. */
|
|
283
|
+
clearData() {
|
|
284
|
+
return this.ClearData();
|
|
285
|
+
}
|
|
226
286
|
/**
|
|
227
287
|
* Clear just the cache for the current agent run
|
|
228
288
|
*/
|
|
229
|
-
|
|
289
|
+
ClearCurrentRunCache() {
|
|
230
290
|
// Clear all cache entries related to current run
|
|
231
291
|
if (this.currentAgentRunId) {
|
|
232
292
|
const keysToRemove = [];
|
|
@@ -237,6 +297,10 @@ export class AIAgentRunDataHelper {
|
|
|
237
297
|
keysToRemove.forEach(key => this.removeCacheEntry(key));
|
|
238
298
|
}
|
|
239
299
|
}
|
|
300
|
+
/** @deprecated Use {@link ClearCurrentRunCache}. */
|
|
301
|
+
clearCurrentRunCache() {
|
|
302
|
+
return this.ClearCurrentRunCache();
|
|
303
|
+
}
|
|
240
304
|
/**
|
|
241
305
|
* Clear entire cache
|
|
242
306
|
*/
|
|
@@ -267,7 +331,7 @@ export class AIAgentRunDataHelper {
|
|
|
267
331
|
/**
|
|
268
332
|
* Get cache statistics for monitoring
|
|
269
333
|
*/
|
|
270
|
-
|
|
334
|
+
GetCacheStats() {
|
|
271
335
|
return {
|
|
272
336
|
size: this.subAgentDataCache.size,
|
|
273
337
|
maxSize: this.MAX_CACHE_SIZE,
|
|
@@ -275,10 +339,14 @@ export class AIAgentRunDataHelper {
|
|
|
275
339
|
accessOrder: [...this.cacheAccessOrder]
|
|
276
340
|
};
|
|
277
341
|
}
|
|
342
|
+
/** @deprecated Use {@link GetCacheStats}. */
|
|
343
|
+
getCacheStats() {
|
|
344
|
+
return this.GetCacheStats();
|
|
345
|
+
}
|
|
278
346
|
/**
|
|
279
347
|
* Get current data snapshot
|
|
280
348
|
*/
|
|
281
|
-
|
|
349
|
+
GetCurrentData() {
|
|
282
350
|
return {
|
|
283
351
|
steps: this.stepsSubject$.value,
|
|
284
352
|
subRuns: this.subRunsSubject$.value,
|
|
@@ -286,5 +354,9 @@ export class AIAgentRunDataHelper {
|
|
|
286
354
|
promptRuns: this.promptRunsSubject$.value
|
|
287
355
|
};
|
|
288
356
|
}
|
|
357
|
+
/** @deprecated Use {@link GetCurrentData}. */
|
|
358
|
+
getCurrentData() {
|
|
359
|
+
return this.GetCurrentData();
|
|
360
|
+
}
|
|
289
361
|
}
|
|
290
362
|
//# sourceMappingURL=ai-agent-run-data.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-data.service.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-data.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { BehaviorSubject, Observable } from 'rxjs';\nimport { IMetadataProvider, Metadata, RunView } from '@memberjunction/core';\nimport { MJAIAgentRunEntity, MJAIAgentRunStepEntity, MJActionExecutionLogEntity, MJAIPromptRunEntity } from '@memberjunction/core-entities';\nimport { SortAgentRunStepsByExecutionOrder } from './agent-run-step-order';\n\nexport interface AgentRunData {\n steps: MJAIAgentRunStepEntity[];\n subRuns: MJAIAgentRunEntity[];\n actionLogs: MJActionExecutionLogEntity[];\n promptRuns: MJAIPromptRunEntity[];\n}\n\n/**\n * Helper class for managing AI Agent Run data per component instance\n * No longer a singleton Angular service - instantiated per component\n */\nexport class AIAgentRunDataHelper {\n // Data subjects\n private stepsSubject$ = new BehaviorSubject<MJAIAgentRunStepEntity[]>([]);\n private subRunsSubject$ = new BehaviorSubject<MJAIAgentRunEntity[]>([]);\n private actionLogsSubject$ = new BehaviorSubject<MJActionExecutionLogEntity[]>([]);\n private promptRunsSubject$ = new BehaviorSubject<MJAIPromptRunEntity[]>([]);\n private loadingSubject$ = new BehaviorSubject<boolean>(true);\n private errorSubject$ = new BehaviorSubject<string | null>(null);\n \n // Public observables\n steps$ = this.stepsSubject$.asObservable();\n subRuns$ = this.subRunsSubject$.asObservable();\n actionLogs$ = this.actionLogsSubject$.asObservable();\n promptRuns$ = this.promptRunsSubject$.asObservable();\n loading$ = this.loadingSubject$.asObservable();\n error$ = this.errorSubject$.asObservable();\n \n // Cache for sub-agent data with size limit\n private readonly MAX_CACHE_SIZE = 100; // Maximum 100 sub-agent entries\n private readonly CACHE_TTL_MS = 15 * 60 * 1000; // 15 minute TTL\n \n private subAgentDataCache = new Map<string, {\n steps: MJAIAgentRunStepEntity[];\n promptRuns: MJAIPromptRunEntity[];\n timestamp: number;\n }>();\n \n // Track cache access order for LRU eviction\n private cacheAccessOrder: string[] = [];\n \n private currentAgentRunId: string | null = null;\n\n /**\n * Optional explicit metadata provider. Set via `setProvider()` by the\n * owning component (which has provider context via BaseAngularComponent).\n * Falls back to `Metadata.Provider` when not set.\n */\n private _provider: IMetadataProvider | null = null;\n\n public set Provider(value: IMetadataProvider | null) {\n this._provider = value;\n }\n\n public get Provider(): IMetadataProvider {\n return this._provider ?? Metadata.Provider;\n }\n\n constructor() {}\n \n /**\n * Load all data for an agent run\n */\n async loadAgentRunData(agentRunId: string, forceReload = false): Promise<void> {\n if (!agentRunId) {\n this.errorSubject$.next('No agent run ID provided');\n return;\n }\n \n // Skip cache check when force reloading\n if (!forceReload && this.currentAgentRunId === agentRunId && this.stepsSubject$.value.length > 0) {\n return;\n }\n \n this.currentAgentRunId = agentRunId;\n this.loadingSubject$.next(true);\n this.errorSubject$.next(null);\n \n // Clear cache when loading new run\n this.subAgentDataCache.clear();\n \n try {\n await this.loadStepsAndSubRuns(agentRunId);\n } catch (error) {\n this.errorSubject$.next('Failed to load agent run data');\n console.error('Error loading agent run data:', error);\n } finally {\n this.loadingSubject$.next(false);\n }\n }\n \n private async loadStepsAndSubRuns(agentRunId: string) {\n const rv = RunView.FromMetadataProvider(this.Provider);\n \n // First, get all steps to determine what additional data we need\n // StartedAt is execution time (what the timeline paints). __mj_CreatedAt is persist time\n // and inverts for fast sibling steps whose fire-and-forget INSERTs race. StepNumber is\n // the same-millisecond tie-break. Client-sort after the query as well — T-SQL NULLs\n // sort first, and SQL datetime rounding can still disagree with JS Date.getTime().\n const stepsResult = await rv.RunView<MJAIAgentRunStepEntity>({\n EntityName: 'MJ: AI Agent Run Steps',\n ExtraFilter: `AgentRunID='${agentRunId}'`,\n OrderBy: 'StartedAt, StepNumber'\n });\n \n if (!stepsResult.Success) {\n throw new Error('Failed to load agent run steps');\n }\n \n const steps = SortAgentRunStepsByExecutionOrder(stepsResult.Results as MJAIAgentRunStepEntity[] || []);\n \n // Build filters for batch loading\n const actionLogIds = steps\n .filter(s => s.StepType === 'Actions' && s.TargetLogID)\n .map(s => s.TargetLogID)\n .filter(id => id != null);\n \n const promptRunIds = steps\n .filter(s => s.StepType === 'Prompt' && s.TargetLogID)\n .map(s => s.TargetLogID)\n .filter(id => id != null);\n \n // Build batch queries array\n const batchQueries: any[] = [\n // Sub-runs query\n {\n EntityName: 'MJ: AI Agent Runs',\n ExtraFilter: `ParentRunID='${agentRunId}'`,\n OrderBy: 'StartedAt'\n },\n // Current run query\n {\n EntityName: 'MJ: AI Agent Runs',\n ExtraFilter: `ID='${agentRunId}'`\n }\n ];\n \n // Add action logs query if needed\n if (actionLogIds.length > 0) {\n batchQueries.push({\n EntityName: 'MJ: Action Execution Logs',\n ExtraFilter: `ID IN ('${actionLogIds.join(\"','\")}')`,\n OrderBy: 'StartedAt'\n });\n }\n \n // Add prompt runs query if needed\n if (promptRunIds.length > 0) {\n batchQueries.push({\n EntityName: 'MJ: AI Prompt Runs',\n ExtraFilter: `ID IN ('${promptRunIds.join(\"','\")}')`,\n OrderBy: '__mj_CreatedAt'\n });\n }\n \n // Execute all queries in one batch\n const batchResults = await rv.RunViews(batchQueries);\n \n // Process results\n let resultIndex = 0;\n \n // Sub-runs\n const subRuns = batchResults[resultIndex].Success \n ? (batchResults[resultIndex].Results as MJAIAgentRunEntity[] || [])\n : [];\n resultIndex++;\n \n // Skip current run result\n resultIndex++;\n \n // Action logs\n const actionLogs = actionLogIds.length > 0 && batchResults[resultIndex]?.Success\n ? (batchResults[resultIndex].Results as MJActionExecutionLogEntity[] || [])\n : [];\n if (actionLogIds.length > 0) resultIndex++;\n \n // Prompt runs\n const promptRuns = promptRunIds.length > 0 && batchResults[resultIndex]?.Success\n ? (batchResults[resultIndex].Results as MJAIPromptRunEntity[] || [])\n : [];\n \n // Update all subjects\n this.stepsSubject$.next(steps);\n this.subRunsSubject$.next(subRuns);\n this.actionLogsSubject$.next(actionLogs);\n this.promptRunsSubject$.next(promptRuns);\n }\n \n /**\n * Load sub-agent data (for expanding sub-agent nodes)\n */\n async loadSubAgentData(subAgentRunId: string): Promise<{ steps: MJAIAgentRunStepEntity[], promptRuns: MJAIPromptRunEntity[] }> {\n // Check cache first\n const cachedData = this.subAgentDataCache.get(subAgentRunId);\n if (cachedData) {\n // Check if cache is still valid\n const now = Date.now();\n if (now - cachedData.timestamp < this.CACHE_TTL_MS) {\n // Update access order for LRU\n this.updateCacheAccessOrder(subAgentRunId);\n return { steps: cachedData.steps, promptRuns: cachedData.promptRuns };\n } else {\n // Cache expired, remove it\n this.removeCacheEntry(subAgentRunId);\n }\n }\n \n const rv = RunView.FromMetadataProvider(this.Provider);\n\n // Load steps first to determine what else we need\n const stepsResult = await rv.RunView<MJAIAgentRunStepEntity>({\n EntityName: 'MJ: AI Agent Run Steps',\n ExtraFilter: `AgentRunID = '${subAgentRunId}'`,\n OrderBy: 'StartedAt, StepNumber'\n });\n \n if (!stepsResult.Success || !stepsResult.Results) {\n return { steps: [], promptRuns: [] };\n }\n \n const steps = SortAgentRunStepsByExecutionOrder(stepsResult.Results);\n \n // Get prompt run IDs\n const promptRunIds = steps\n .filter(s => s.StepType === 'Prompt' && s.TargetLogID)\n .map(s => s.TargetLogID)\n .filter(id => id != null);\n \n let promptRuns: MJAIPromptRunEntity[] = [];\n \n // Load prompt runs if needed\n if (promptRunIds.length > 0) {\n const promptResult = await rv.RunView<MJAIPromptRunEntity>({\n EntityName: 'MJ: AI Prompt Runs',\n ExtraFilter: `ID IN ('${promptRunIds.join(\"','\")}')`,\n OrderBy: '__mj_CreatedAt'\n });\n \n if (promptResult.Success) {\n promptRuns = promptResult.Results || [];\n }\n }\n \n // Cache the data with timestamp\n const data = { steps, promptRuns, timestamp: Date.now() };\n \n // Enforce cache size limit\n if (this.subAgentDataCache.size >= this.MAX_CACHE_SIZE) {\n // Remove least recently used entry\n const lruKey = this.cacheAccessOrder[0];\n if (lruKey && lruKey !== subAgentRunId) {\n this.removeCacheEntry(lruKey);\n }\n }\n \n this.subAgentDataCache.set(subAgentRunId, data);\n this.updateCacheAccessOrder(subAgentRunId);\n \n return data;\n }\n \n /**\n * Clear all data\n */\n clearData() {\n this.stepsSubject$.next([]);\n this.subRunsSubject$.next([]);\n this.actionLogsSubject$.next([]);\n this.promptRunsSubject$.next([]);\n this.clearCache();\n this.currentAgentRunId = null;\n }\n \n /**\n * Clear just the cache for the current agent run\n */\n clearCurrentRunCache() {\n // Clear all cache entries related to current run\n if (this.currentAgentRunId) {\n const keysToRemove: string[] = [];\n for (const [key, value] of this.subAgentDataCache.entries()) {\n // You might want to add logic here to identify related entries\n keysToRemove.push(key);\n }\n keysToRemove.forEach(key => this.removeCacheEntry(key));\n }\n }\n \n /**\n * Clear entire cache\n */\n private clearCache() {\n this.subAgentDataCache.clear();\n this.cacheAccessOrder = [];\n }\n \n /**\n * Update cache access order for LRU eviction\n */\n private updateCacheAccessOrder(key: string) {\n const index = this.cacheAccessOrder.indexOf(key);\n if (index > -1) {\n this.cacheAccessOrder.splice(index, 1);\n }\n this.cacheAccessOrder.push(key);\n }\n \n /**\n * Remove a cache entry\n */\n private removeCacheEntry(key: string) {\n this.subAgentDataCache.delete(key);\n const index = this.cacheAccessOrder.indexOf(key);\n if (index > -1) {\n this.cacheAccessOrder.splice(index, 1);\n }\n }\n \n /**\n * Get cache statistics for monitoring\n */\n getCacheStats() {\n return {\n size: this.subAgentDataCache.size,\n maxSize: this.MAX_CACHE_SIZE,\n ttlMs: this.CACHE_TTL_MS,\n accessOrder: [...this.cacheAccessOrder]\n };\n }\n \n /**\n * Get current data snapshot\n */\n getCurrentData(): AgentRunData {\n return {\n steps: this.stepsSubject$.value,\n subRuns: this.subRunsSubject$.value,\n actionLogs: this.actionLogsSubject$.value,\n promptRuns: this.promptRunsSubject$.value\n };\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"ai-agent-run-data.service.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-data.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { BehaviorSubject, Observable } from 'rxjs';\nimport { IMetadataProvider, Metadata, RunView } from '@memberjunction/core';\nimport { MJAIAgentRunEntity, MJAIAgentRunStepEntity, MJActionExecutionLogEntity, MJAIPromptRunEntity } from '@memberjunction/core-entities';\nimport { SortAgentRunStepsByExecutionOrder } from './agent-run-step-order';\n\nexport interface AgentRunData {\n steps: MJAIAgentRunStepEntity[]; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n subRuns: MJAIAgentRunEntity[]; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n actionLogs: MJActionExecutionLogEntity[]; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n promptRuns: MJAIPromptRunEntity[]; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n}\n\n/**\n * Helper class for managing AI Agent Run data per component instance\n * No longer a singleton Angular service - instantiated per component\n */\nexport class AIAgentRunDataHelper {\n // Data subjects\n private stepsSubject$ = new BehaviorSubject<MJAIAgentRunStepEntity[]>([]);\n private subRunsSubject$ = new BehaviorSubject<MJAIAgentRunEntity[]>([]);\n private actionLogsSubject$ = new BehaviorSubject<MJActionExecutionLogEntity[]>([]);\n private promptRunsSubject$ = new BehaviorSubject<MJAIPromptRunEntity[]>([]);\n private loadingSubject$ = new BehaviorSubject<boolean>(true);\n private errorSubject$ = new BehaviorSubject<string | null>(null);\n \n // Public observables\n Steps$ = this.stepsSubject$.asObservable();\n\n /** @deprecated Use {@link Steps$}. */\n get steps$() {\n return this.Steps$;\n }\n /** @deprecated Use {@link Steps$}. */\n set steps$(value) {\n this.Steps$ = value;\n }\n SubRuns$ = this.subRunsSubject$.asObservable();\n\n /** @deprecated Use {@link SubRuns$}. */\n get subRuns$() {\n return this.SubRuns$;\n }\n /** @deprecated Use {@link SubRuns$}. */\n set subRuns$(value) {\n this.SubRuns$ = value;\n }\n ActionLogs$ = this.actionLogsSubject$.asObservable();\n\n /** @deprecated Use {@link ActionLogs$}. */\n get actionLogs$() {\n return this.ActionLogs$;\n }\n /** @deprecated Use {@link ActionLogs$}. */\n set actionLogs$(value) {\n this.ActionLogs$ = value;\n }\n PromptRuns$ = this.promptRunsSubject$.asObservable();\n\n /** @deprecated Use {@link PromptRuns$}. */\n get promptRuns$() {\n return this.PromptRuns$;\n }\n /** @deprecated Use {@link PromptRuns$}. */\n set promptRuns$(value) {\n this.PromptRuns$ = value;\n }\n Loading$ = this.loadingSubject$.asObservable();\n\n /** @deprecated Use {@link Loading$}. */\n get loading$() {\n return this.Loading$;\n }\n /** @deprecated Use {@link Loading$}. */\n set loading$(value) {\n this.Loading$ = value;\n }\n Error$ = this.errorSubject$.asObservable();\n\n /** @deprecated Use {@link Error$}. */\n get error$() {\n return this.Error$;\n }\n /** @deprecated Use {@link Error$}. */\n set error$(value) {\n this.Error$ = value;\n }\n \n // Cache for sub-agent data with size limit\n private readonly MAX_CACHE_SIZE = 100; // Maximum 100 sub-agent entries\n private readonly CACHE_TTL_MS = 15 * 60 * 1000; // 15 minute TTL\n \n private subAgentDataCache = new Map<string, {\n steps: MJAIAgentRunStepEntity[];\n promptRuns: MJAIPromptRunEntity[];\n timestamp: number;\n }>();\n \n // Track cache access order for LRU eviction\n private cacheAccessOrder: string[] = [];\n \n private currentAgentRunId: string | null = null;\n\n /**\n * Optional explicit metadata provider. Set via `setProvider()` by the\n * owning component (which has provider context via BaseAngularComponent).\n * Falls back to `Metadata.Provider` when not set.\n */\n private _provider: IMetadataProvider | null = null;\n\n public set Provider(value: IMetadataProvider | null) {\n this._provider = value;\n }\n\n public get Provider(): IMetadataProvider {\n return this._provider ?? Metadata.Provider;\n }\n\n constructor() {}\n \n /**\n * Load all data for an agent run\n */\n async LoadAgentRunData(agentRunId: string, forceReload = false): Promise<void> {\n if (!agentRunId) {\n this.errorSubject$.next('No agent run ID provided');\n return;\n }\n \n // Skip cache check when force reloading\n if (!forceReload && this.currentAgentRunId === agentRunId && this.stepsSubject$.value.length > 0) {\n return;\n }\n \n this.currentAgentRunId = agentRunId;\n this.loadingSubject$.next(true);\n this.errorSubject$.next(null);\n \n // Clear cache when loading new run\n this.subAgentDataCache.clear();\n \n try {\n await this.loadStepsAndSubRuns(agentRunId);\n } catch (error) {\n this.errorSubject$.next('Failed to load agent run data');\n console.error('Error loading agent run data:', error);\n } finally {\n this.loadingSubject$.next(false);\n }\n }\n\n /** @deprecated Use {@link LoadAgentRunData}. */\n async loadAgentRunData(agentRunId: string, forceReload = false): Promise<void> {\n return this.LoadAgentRunData(agentRunId, forceReload);\n }\n \n private async loadStepsAndSubRuns(agentRunId: string) {\n const rv = RunView.FromMetadataProvider(this.Provider);\n \n // First, get all steps to determine what additional data we need\n // StartedAt is execution time (what the timeline paints). __mj_CreatedAt is persist time\n // and inverts for fast sibling steps whose fire-and-forget INSERTs race. StepNumber is\n // the same-millisecond tie-break. Client-sort after the query as well — T-SQL NULLs\n // sort first, and SQL datetime rounding can still disagree with JS Date.getTime().\n const stepsResult = await rv.RunView<MJAIAgentRunStepEntity>({\n EntityName: 'MJ: AI Agent Run Steps',\n ExtraFilter: `AgentRunID='${agentRunId}'`,\n OrderBy: 'StartedAt, StepNumber'\n });\n \n if (!stepsResult.Success) {\n throw new Error('Failed to load agent run steps');\n }\n \n const steps = SortAgentRunStepsByExecutionOrder(stepsResult.Results as MJAIAgentRunStepEntity[] || []);\n \n // Build filters for batch loading\n const actionLogIds = steps\n .filter(s => s.StepType === 'Actions' && s.TargetLogID)\n .map(s => s.TargetLogID)\n .filter(id => id != null);\n \n const promptRunIds = steps\n .filter(s => s.StepType === 'Prompt' && s.TargetLogID)\n .map(s => s.TargetLogID)\n .filter(id => id != null);\n \n // Build batch queries array\n const batchQueries: any[] = [\n // Sub-runs query\n {\n EntityName: 'MJ: AI Agent Runs',\n ExtraFilter: `ParentRunID='${agentRunId}'`,\n OrderBy: 'StartedAt'\n },\n // Current run query\n {\n EntityName: 'MJ: AI Agent Runs',\n ExtraFilter: `ID='${agentRunId}'`\n }\n ];\n \n // Add action logs query if needed\n if (actionLogIds.length > 0) {\n batchQueries.push({\n EntityName: 'MJ: Action Execution Logs',\n ExtraFilter: `ID IN ('${actionLogIds.join(\"','\")}')`,\n OrderBy: 'StartedAt'\n });\n }\n \n // Add prompt runs query if needed\n if (promptRunIds.length > 0) {\n batchQueries.push({\n EntityName: 'MJ: AI Prompt Runs',\n ExtraFilter: `ID IN ('${promptRunIds.join(\"','\")}')`,\n OrderBy: '__mj_CreatedAt'\n });\n }\n \n // Execute all queries in one batch\n const batchResults = await rv.RunViews(batchQueries);\n \n // Process results\n let resultIndex = 0;\n \n // Sub-runs\n const subRuns = batchResults[resultIndex].Success \n ? (batchResults[resultIndex].Results as MJAIAgentRunEntity[] || [])\n : [];\n resultIndex++;\n \n // Skip current run result\n resultIndex++;\n \n // Action logs\n const actionLogs = actionLogIds.length > 0 && batchResults[resultIndex]?.Success\n ? (batchResults[resultIndex].Results as MJActionExecutionLogEntity[] || [])\n : [];\n if (actionLogIds.length > 0) resultIndex++;\n \n // Prompt runs\n const promptRuns = promptRunIds.length > 0 && batchResults[resultIndex]?.Success\n ? (batchResults[resultIndex].Results as MJAIPromptRunEntity[] || [])\n : [];\n \n // Update all subjects\n this.stepsSubject$.next(steps);\n this.subRunsSubject$.next(subRuns);\n this.actionLogsSubject$.next(actionLogs);\n this.promptRunsSubject$.next(promptRuns);\n }\n \n /**\n * Load sub-agent data (for expanding sub-agent nodes)\n */\n async LoadSubAgentData(subAgentRunId: string): Promise<{ steps: MJAIAgentRunStepEntity[], promptRuns: MJAIPromptRunEntity[] }> {\n // Check cache first\n const cachedData = this.subAgentDataCache.get(subAgentRunId);\n if (cachedData) {\n // Check if cache is still valid\n const now = Date.now();\n if (now - cachedData.timestamp < this.CACHE_TTL_MS) {\n // Update access order for LRU\n this.updateCacheAccessOrder(subAgentRunId);\n return { steps: cachedData.steps, promptRuns: cachedData.promptRuns };\n } else {\n // Cache expired, remove it\n this.removeCacheEntry(subAgentRunId);\n }\n }\n \n const rv = RunView.FromMetadataProvider(this.Provider);\n\n // Load steps first to determine what else we need\n const stepsResult = await rv.RunView<MJAIAgentRunStepEntity>({\n EntityName: 'MJ: AI Agent Run Steps',\n ExtraFilter: `AgentRunID = '${subAgentRunId}'`,\n OrderBy: 'StartedAt, StepNumber'\n });\n \n if (!stepsResult.Success || !stepsResult.Results) {\n return { steps: [], promptRuns: [] };\n }\n \n const steps = SortAgentRunStepsByExecutionOrder(stepsResult.Results);\n \n // Get prompt run IDs\n const promptRunIds = steps\n .filter(s => s.StepType === 'Prompt' && s.TargetLogID)\n .map(s => s.TargetLogID)\n .filter(id => id != null);\n \n let promptRuns: MJAIPromptRunEntity[] = [];\n \n // Load prompt runs if needed\n if (promptRunIds.length > 0) {\n const promptResult = await rv.RunView<MJAIPromptRunEntity>({\n EntityName: 'MJ: AI Prompt Runs',\n ExtraFilter: `ID IN ('${promptRunIds.join(\"','\")}')`,\n OrderBy: '__mj_CreatedAt'\n });\n \n if (promptResult.Success) {\n promptRuns = promptResult.Results || [];\n }\n }\n \n // Cache the data with timestamp\n const data = { steps, promptRuns, timestamp: Date.now() };\n \n // Enforce cache size limit\n if (this.subAgentDataCache.size >= this.MAX_CACHE_SIZE) {\n // Remove least recently used entry\n const lruKey = this.cacheAccessOrder[0];\n if (lruKey && lruKey !== subAgentRunId) {\n this.removeCacheEntry(lruKey);\n }\n }\n \n this.subAgentDataCache.set(subAgentRunId, data);\n this.updateCacheAccessOrder(subAgentRunId);\n \n return data;\n }\n\n /** @deprecated Use {@link LoadSubAgentData}. */\n async loadSubAgentData(subAgentRunId: string): Promise<{ steps: MJAIAgentRunStepEntity[], promptRuns: MJAIPromptRunEntity[] }> {\n return this.LoadSubAgentData(subAgentRunId);\n }\n \n /**\n * Clear all data\n */\n ClearData() {\n this.stepsSubject$.next([]);\n this.subRunsSubject$.next([]);\n this.actionLogsSubject$.next([]);\n this.promptRunsSubject$.next([]);\n this.clearCache();\n this.currentAgentRunId = null;\n }\n\n /** @deprecated Use {@link ClearData}. */\n clearData() {\n return this.ClearData();\n }\n \n /**\n * Clear just the cache for the current agent run\n */\n ClearCurrentRunCache() {\n // Clear all cache entries related to current run\n if (this.currentAgentRunId) {\n const keysToRemove: string[] = [];\n for (const [key, value] of this.subAgentDataCache.entries()) {\n // You might want to add logic here to identify related entries\n keysToRemove.push(key);\n }\n keysToRemove.forEach(key => this.removeCacheEntry(key));\n }\n }\n\n /** @deprecated Use {@link ClearCurrentRunCache}. */\n clearCurrentRunCache() {\n return this.ClearCurrentRunCache();\n }\n \n /**\n * Clear entire cache\n */\n private clearCache() {\n this.subAgentDataCache.clear();\n this.cacheAccessOrder = [];\n }\n \n /**\n * Update cache access order for LRU eviction\n */\n private updateCacheAccessOrder(key: string) {\n const index = this.cacheAccessOrder.indexOf(key);\n if (index > -1) {\n this.cacheAccessOrder.splice(index, 1);\n }\n this.cacheAccessOrder.push(key);\n }\n \n /**\n * Remove a cache entry\n */\n private removeCacheEntry(key: string) {\n this.subAgentDataCache.delete(key);\n const index = this.cacheAccessOrder.indexOf(key);\n if (index > -1) {\n this.cacheAccessOrder.splice(index, 1);\n }\n }\n \n /**\n * Get cache statistics for monitoring\n */\n GetCacheStats() {\n return {\n size: this.subAgentDataCache.size,\n maxSize: this.MAX_CACHE_SIZE,\n ttlMs: this.CACHE_TTL_MS,\n accessOrder: [...this.cacheAccessOrder]\n };\n }\n\n /** @deprecated Use {@link GetCacheStats}. */\n getCacheStats() {\n return this.GetCacheStats();\n }\n \n /**\n * Get current data snapshot\n */\n GetCurrentData(): AgentRunData {\n return {\n steps: this.stepsSubject$.value,\n subRuns: this.subRunsSubject$.value,\n actionLogs: this.actionLogsSubject$.value,\n promptRuns: this.promptRunsSubject$.value\n };\n }\n\n /** @deprecated Use {@link GetCurrentData}. */\n getCurrentData(): AgentRunData {\n return this.GetCurrentData();\n }\n}"]}
|