@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-run-flow.component.js","sourceRoot":"","sources":["../../../../../src/lib/custom/ai-agent-run/flow/agent-run-flow.component.ts","../../../../../src/lib/custom/ai-agent-run/flow/agent-run-flow.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component, Input, ElementRef, ViewChild, NgZone, ChangeDetectorRef,\n OnDestroy, AfterViewInit, ChangeDetectionStrategy, inject\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { combineLatest } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CompositeKey } from '@memberjunction/core';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\nimport { UserInfoEngine } from '@memberjunction/core-entities';\nimport { AIAgentRunDataHelper } from '../ai-agent-run-data.service';\nimport { TimelineItem } from '../ai-agent-run-timeline.component';\nimport {\n FlowModel, FlowNode, buildFlowModel, activeLeaf, ancestors,\n formatDuration, shortLabel, FLOW_COLORS, FLOW_EMOJI, FLOW_LABEL\n} from './agent-run-flow.model';\nimport { FlameCascadeComponent } from './flame-cascade.component';\nimport { SubwayLinesComponent } from './subway-lines.component';\nimport { buildFlowModelFromTree } from './run-tree-flow-projection';\nimport type { AgentRunTreeNode } from '@memberjunction/ai-core-plus';\nimport { ConstellationComponent } from './constellation.component';\nimport { FlowchartComponent } from './flowchart.component';\n\ninterface FlowMode { key: string; label: string; icon: string; enabled: boolean; }\n\n/**\n * Flow — the playable, zoomed-out execution view for an Agent Run.\n *\n * Owns the single master clock (scrub / play / speed) and the narration rail,\n * and hosts three interchangeable renderers (Flame, Subway, Constellation).\n * The per-frame loop runs *outside* Angular's zone and pushes updates straight\n * to the DOM / active renderer, so 60fps playback never triggers change detection.\n */\n@Component({\n standalone: false,\n selector: 'mj-ai-agent-run-flow',\n templateUrl: './agent-run-flow.component.html',\n styleUrls: ['./agent-run-flow.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AIAgentRunFlowComponent implements AfterViewInit, OnDestroy {\n @Input() aiAgentRunId!: string;\n @Input() dataHelper!: AIAgentRunDataHelper;\n @Input() agentName: string | null = null;\n @Input() runStatus = '';\n @Input() agentIconClass: string | null = null;\n @Input() agentLogoUrl: string | null = null;\n\n /**\n * The run's execution tree, loaded once by the form and shared with every tab.\n *\n * Setter-based so a refresh upstream rebuilds all three renderers immediately — they share one\n * model, so one rebuild updates whichever is on screen and every one behind it.\n */\n @Input()\n set RunTree(value: AgentRunTreeNode | null) {\n this.runTree = value;\n void this.rebuildModel();\n }\n private runTree: AgentRunTreeNode | null = null;\n\n public modes: FlowMode[] = [\n { key: 'subway', label: 'Subway Lines', icon: 'fa-train-subway', enabled: true },\n { key: 'constellation', label: 'Constellation', icon: 'fa-star', enabled: true },\n { key: 'flow', label: 'Flow', icon: 'fa-diagram-project', enabled: true },\n { key: 'flame', label: 'Flame Cascade', icon: 'fa-fire', enabled: true }\n ];\n public mode = 'subway';\n public model: FlowModel | null = null;\n public playing = false;\n public speed = 1;\n public loading = true;\n public hasData = false;\n /** Selected node detail (any mode). */\n public selectedStepItem: TimelineItem | null = null;\n private selectedNodeId = -1;\n private logRows = new Map<number, HTMLElement>();\n private lastActiveRowId = -1;\n\n /** The animated modes share the master clock + narration rail; Flow is static. */\n public get isAnimated(): boolean { return this.mode !== 'flow'; }\n /** Rail (now-executing + log tree) shows only for animated modes with nothing selected. */\n public get showRail(): boolean { return this.isAnimated && !this.selectedStepItem; }\n\n /** Right-panel width (rail / inspector), resizable + persisted per user. Default is 50px wider than the old fixed panel. */\n public panelWidth = 410;\n private readonly PANEL_KEY = 'mj.agentRunFlow.panelWidth.v1';\n private resizing = false;\n private resizeStartX = 0;\n private resizeStartW = 0;\n\n @ViewChild(FlameCascadeComponent) private flame?: FlameCascadeComponent;\n @ViewChild(SubwayLinesComponent) private subway?: SubwayLinesComponent;\n @ViewChild(ConstellationComponent) private constellation?: ConstellationComponent;\n @ViewChild(FlowchartComponent) private flowchart?: FlowchartComponent;\n\n @ViewChild('scrub') private scrubRef?: ElementRef<HTMLInputElement>;\n @ViewChild('clock') private clockRef?: ElementRef<HTMLElement>;\n @ViewChild('crumb') private crumbRef?: ElementRef<HTMLElement>;\n @ViewChild('nowIco') private nowIcoRef?: ElementRef<HTMLElement>;\n @ViewChild('nowName') private nowNameRef?: ElementRef<HTMLElement>;\n @ViewChild('nowType') private nowTypeRef?: ElementRef<HTMLElement>;\n @ViewChild('nowDur') private nowDurRef?: ElementRef<HTMLElement>;\n @ViewChild('nowModel') private nowModelRef?: ElementRef<HTMLElement>;\n @ViewChild('nowStat') private nowStatRef?: ElementRef<HTMLElement>;\n @ViewChild('nowBar') private nowBarRef?: ElementRef<HTMLElement>;\n @ViewChild('loglist') private loglistRef?: ElementRef<HTMLElement>;\n\n private destroy$ = new Subject<void>();\n private rafId: number | null = null;\n private p = 0;\n private lastTs = 0;\n private readonly PLAY_MS = 11000;\n private logModelRef: FlowModel | null = null;\n private lastLeafId = -1;\n private viewReady = false;\n\n private zone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n ngAfterViewInit(): void {\n this.viewReady = true;\n const savedW = UserInfoEngine.Instance.GetSetting(this.PANEL_KEY);\n if (savedW) { const n = +savedW; if (n >= 280) this.panelWidth = Math.min(n, this.maxPanelWidth()); }\n combineLatest([this.dataHelper.steps$, this.dataHelper.loading$])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([steps, loading]) => {\n this.loading = loading && steps.length === 0;\n if (!loading || steps.length > 0) this.rebuildModel();\n this.cdr.markForCheck();\n });\n this.zone.runOutsideAngular(() => {\n this.rafId = requestAnimationFrame(ts => this.tick(ts));\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(); this.destroy$.complete();\n if (this.rafId != null) cancelAnimationFrame(this.rafId);\n }\n\n private async rebuildModel(): Promise<void> {\n const wasEmpty = !this.model;\n await AIEngineBase.Instance.EnsureLoaded(); // agent icons/logos read synchronously during build\n const rootIcon = { iconClass: this.agentIconClass || 'fa-robot', logoUrl: this.agentLogoUrl };\n // The TREE is the source. It carries the run's steps AND any task-graph work those steps\n // submitted — which the step-row builder cannot see at all, because a workflow's steps live in\n // MJ: Tasks rather than in the run's step list. Falling back to the step builder when the tree\n // has not arrived keeps the view populated on first paint rather than flashing empty.\n const model = this.runTree\n ? buildFlowModelFromTree(this.runTree, this.agentName ?? '', this.runStatus, rootIcon)\n : await buildFlowModel(this.agentName ?? '', this.runStatus, rootIcon, this.dataHelper);\n if (!model) return;\n this.model = model;\n this.hasData = model.leaves.length > 0;\n if (wasEmpty) this.p = 0;\n this.lastLeafId = -1;\n this.cdr.markForCheck();\n }\n\n /* -------------------------------- transport ------------------------------- */\n\n public togglePlay(): void {\n if (!this.hasData) return;\n if (this.p >= 1) this.p = 0;\n this.playing = !this.playing;\n this.lastTs = 0;\n }\n\n public restart(): void {\n if (!this.hasData) return;\n this.p = 0; this.playing = true; this.lastTs = 0;\n this.lastLeafId = -1;\n }\n\n public onScrub(value: string): void {\n this.p = (+value) / 1000;\n this.playing = false;\n }\n\n public onSpeed(value: string): void { this.speed = (+value) / 100; }\n\n public selectMode(m: FlowMode): void {\n if (!m.enabled) return;\n this.mode = m.key;\n this.applyRendererSelection(this.selectedNodeId === -1 ? null : this.selectedNodeId);\n this.currentRenderer?.ReapplyView?.(); // ensure the now-visible renderer shows its OWN (per-type) zoom\n }\n\n private get currentRenderer(): { Render(p: number, ts: number): void; ZoomIn?(): void; ZoomOut?(): void; FitReset?(): void; ReapplyView?(): void } | undefined {\n switch (this.mode) {\n case 'flame': return this.flame;\n case 'subway': return this.subway;\n case 'constellation': return this.constellation;\n case 'flow': return this.flowchart;\n default: return undefined;\n }\n }\n\n /* --------------------------- zoom (shared toolbar) ------------------------ */\n\n public zoomIn(): void { this.currentRenderer?.ZoomIn?.(); }\n public zoomOut(): void { this.currentRenderer?.ZoomOut?.(); }\n public fitReset(): void { this.currentRenderer?.FitReset?.(); }\n\n /* ---------------------------- panel resize ------------------------------- */\n\n /** Cap the right panel at 75% of the viewport width. */\n private maxPanelWidth(): number { return Math.max(360, window.innerWidth * 0.75); }\n\n public startResize(e: MouseEvent): void {\n e.preventDefault();\n this.resizing = true;\n this.resizeStartX = e.clientX;\n this.resizeStartW = this.panelWidth;\n const move = (ev: MouseEvent) => {\n if (!this.resizing) return;\n const w = this.resizeStartW + (this.resizeStartX - ev.clientX); // drag left → wider\n this.panelWidth = Math.max(280, Math.min(this.maxPanelWidth(), w));\n this.cdr.markForCheck();\n };\n const up = () => {\n this.resizing = false;\n window.removeEventListener('mousemove', move);\n window.removeEventListener('mouseup', up);\n UserInfoEngine.Instance.SetSettingDebounced(this.PANEL_KEY, String(Math.round(this.panelWidth)));\n };\n window.addEventListener('mousemove', move);\n window.addEventListener('mouseup', up);\n }\n\n /* -------------------------------- selection ------------------------------ */\n\n /** A node was clicked in any renderer (or a log row) — highlight it everywhere and show its detail. */\n public selectStep(n: FlowNode): void {\n this.zone.run(() => {\n this.selectedNodeId = n.id;\n this.selectedStepItem = this.toTimelineItem(n);\n this.cdr.markForCheck();\n });\n this.applyRendererSelection(n.id);\n }\n\n public closeDetail(): void {\n this.zone.run(() => { this.selectedStepItem = null; this.selectedNodeId = -1; this.cdr.markForCheck(); });\n this.applyRendererSelection(null);\n this.flowchart?.Deselect();\n }\n\n private applyRendererSelection(id: number | null): void {\n this.flame?.SetSelected(id);\n this.subway?.SetSelected(id);\n this.constellation?.SetSelected(id);\n }\n\n public onDetailNavigateActionLog(logId: string): void {\n SharedService.Instance.OpenEntityRecord('MJ: Action Execution Logs', CompositeKey.FromID(logId));\n }\n\n public async onDetailCopy(text: string): Promise<void> {\n try { await navigator.clipboard.writeText(text); } catch { /* clipboard unavailable */ }\n }\n\n private toTimelineItem(n: FlowNode): TimelineItem | null {\n if (!n.raw) return null;\n return {\n id: n.raw.ID, type: 'step', title: n.name, subtitle: `Type: ${n.raw.StepType}`,\n status: n.status, startTime: n.raw.StartedAt, endTime: n.raw.CompletedAt || undefined,\n duration: formatDuration(n.realDur), icon: 'fa-circle', color: '', data: n.raw, level: n.depth\n };\n }\n\n /* ------------------------------- master loop ------------------------------ */\n\n private tick(ts: number): void {\n const animated = this.isAnimated;\n if (animated && this.playing && this.hasData) {\n if (!this.lastTs) this.lastTs = ts;\n const dt = ts - this.lastTs; this.lastTs = ts;\n this.p += dt / (this.PLAY_MS / this.speed);\n if (this.p >= 1) { this.p = 1; this.playing = false; this.zone.run(() => this.cdr.markForCheck()); }\n } else {\n this.lastTs = 0;\n }\n if (this.viewReady && this.model && this.hasData) {\n if (animated) {\n this.currentRenderer?.Render(this.p, ts);\n this.updateRail(ts);\n } else {\n // Flow (static): just ensure the flowchart is built; no clock.\n this.flowchart?.Render(0, ts);\n }\n }\n this.rafId = requestAnimationFrame(t => this.tick(t));\n }\n\n /* ------------------------------ narration rail ---------------------------- */\n\n private updateRail(_ts: number): void {\n const m = this.model!;\n\n // (Re)populate the imperative rail content whenever the rail DOM is fresh\n // (the @if remounted it with template defaults) or the model changed. Without\n // this, a remount at run-completion leaves an empty log + a blank now-card.\n if (this.loglistRef &&\n (this.logModelRef !== m || (this.loglistRef.nativeElement.childElementCount === 0 && m.nodes.length > 1))) {\n this.buildLogTree();\n this.logModelRef = m;\n this.lastLeafId = -1; // force the now-card to repopulate the fresh DOM\n }\n\n const leaf = activeLeaf(m, this.p);\n const prog = this.p >= leaf.t1 ? 1 : Math.max(0, (this.p - leaf.t0) / (leaf.t1 - leaf.t0));\n\n if (this.scrubRef) this.scrubRef.nativeElement.value = String(Math.round(this.p * 1000));\n if (this.clockRef) {\n const realT = this.p >= 1 ? m.total : leaf.r0 + prog * leaf.realDur;\n this.clockRef.nativeElement.textContent = `${formatDuration(realT)} / ${formatDuration(m.total)}`;\n }\n if (this.nowBarRef) this.nowBarRef.nativeElement.style.width = `${prog * 100}%`;\n\n if (leaf.id !== this.lastLeafId) {\n this.lastLeafId = leaf.id;\n this.refreshNowCard(leaf);\n }\n if (this.nowStatRef) {\n this.nowStatRef.nativeElement.textContent = this.p >= 1 ? 'done' : (this.p > leaf.t0 ? 'running' : 'starting');\n }\n if (this.loglistRef) this.updateLogTree();\n }\n\n private refreshNowCard(leaf: FlowNode): void {\n const col = FLOW_COLORS[leaf.type];\n if (this.nowIcoRef) this.nowIcoRef.nativeElement.textContent = FLOW_EMOJI[leaf.type];\n if (this.nowNameRef) this.nowNameRef.nativeElement.textContent = leaf.name;\n if (this.nowTypeRef) {\n this.nowTypeRef.nativeElement.textContent = FLOW_LABEL[leaf.type];\n this.nowTypeRef.nativeElement.style.color = col;\n }\n if (this.nowDurRef) this.nowDurRef.nativeElement.textContent = formatDuration(leaf.realDur);\n if (this.nowModelRef) this.nowModelRef.nativeElement.textContent = leaf.model ?? '—';\n if (this.crumbRef) {\n const chain = ancestors(leaf);\n this.crumbRef.nativeElement.innerHTML = chain.map((n, i) =>\n `${i ? '<span class=\"sep\">›</span>' : ''}<span style=\"color:${FLOW_COLORS[n.type]}\">${FLOW_EMOJI[n.type]} ${this.escape(n.name)}</span>`\n ).join('');\n }\n }\n\n /* ------------------------------ log tree (rail) --------------------------- */\n\n /** Build a clickable indented tree of every step, mirroring the run hierarchy. */\n private buildLogTree(): void {\n const list = this.loglistRef!.nativeElement;\n list.innerHTML = '';\n this.logRows.clear();\n this.lastActiveRowId = -1;\n const m = this.model!;\n for (const n of m.nodes) {\n if (n.depth === 0) continue; // skip the synthetic root (it's the header)\n const col = FLOW_COLORS[n.type];\n const row = document.createElement('div');\n row.className = 'ftree-row';\n row.style.paddingLeft = `${6 + (n.depth - 1) * 15}px`;\n const ico = n.logoUrl\n ? `<img class=\"ftree-logo\" src=\"${this.escape(n.logoUrl)}\" alt=\"\"/>`\n : `<i class=\"ftree-ico fa-solid ${this.escape(n.iconClass)}\" style=\"color:${col}\"></i>`;\n row.innerHTML = ico +\n `<span class=\"ftree-name\">${this.escape(shortLabel(n))}</span>` +\n `<span class=\"ftree-dur\">${formatDuration(n.realDur)}</span>`;\n row.addEventListener('click', () => this.selectStep(n));\n list.appendChild(row);\n this.logRows.set(n.id, row);\n }\n }\n\n /** Sync each log row's state (pending / running / done / selected) with the clock. */\n private updateLogTree(): void {\n const m = this.model!;\n for (const n of m.nodes) {\n if (n.depth === 0) continue;\n const row = this.logRows.get(n.id);\n if (!row) continue;\n const started = this.p >= n.t0;\n const active = started && this.p < n.t1;\n row.classList.toggle('ftree-pending', !started);\n row.classList.toggle('ftree-active', active);\n row.classList.toggle('ftree-done', this.p >= n.t1);\n row.classList.toggle('ftree-selected', n.id === this.selectedNodeId);\n if (active && n.id !== this.lastActiveRowId && !n.children.length) {\n this.lastActiveRowId = n.id;\n row.scrollIntoView({ block: 'nearest' });\n }\n }\n }\n\n private escape(s: string): string {\n return s.replace(/[&<>\"]/g, c => ({ '&': '&', '<': '<', '>': '>', '\"': '"' }[c] ?? c));\n }\n}\n","<div class=\"flow-cockpit\">\n <!-- mode segmented control -->\n <div class=\"flow-modes\">\n @for (m of modes; track m.key) {\n <button class=\"flow-mode\" [class.on]=\"mode === m.key\" [class.soon]=\"!m.enabled\"\n [disabled]=\"!m.enabled\" (click)=\"selectMode(m)\"\n [title]=\"m.enabled ? m.label : m.label + ' — coming soon'\">\n <i class=\"fas\" [ngClass]=\"m.icon\"></i>\n <span>{{ m.label }}</span>\n @if (!m.enabled) { <span class=\"soon-tag\">Soon</span> }\n </button>\n }\n </div>\n\n <div class=\"flow-main\">\n <!-- stage -->\n <div class=\"flow-stage\">\n @if (loading) {\n <div class=\"flow-overlay\"><mj-loading text=\"Building flow…\"></mj-loading></div>\n } @else if (!hasData) {\n <div class=\"flow-overlay flow-empty\">\n <i class=\"fas fa-wind\"></i>\n <p>No steps recorded for this run yet.</p>\n </div>\n }\n\n <mj-agent-flow-flame [class.flow-hidden]=\"mode !== 'flame'\" [Model]=\"model\" (nodeSelected)=\"selectStep($event)\"></mj-agent-flow-flame>\n <mj-agent-flow-subway [class.flow-hidden]=\"mode !== 'subway'\" [Model]=\"model\" (nodeSelected)=\"selectStep($event)\"></mj-agent-flow-subway>\n <mj-agent-flow-constellation [class.flow-hidden]=\"mode !== 'constellation'\" [Model]=\"model\" (nodeSelected)=\"selectStep($event)\"></mj-agent-flow-constellation>\n <mj-agent-flow-flowchart [class.flow-hidden]=\"mode !== 'flow'\" [Model]=\"model\"\n (nodeSelected)=\"selectStep($event)\"\n (selectionCleared)=\"closeDetail()\"></mj-agent-flow-flowchart>\n\n @if (hasData) {\n <div class=\"flow-zoom\">\n <button class=\"fz-btn\" (click)=\"zoomIn()\" title=\"Zoom in\"><i class=\"fas fa-magnifying-glass-plus\"></i></button>\n <button class=\"fz-btn\" (click)=\"zoomOut()\" title=\"Zoom out\"><i class=\"fas fa-magnifying-glass-minus\"></i></button>\n <button class=\"fz-btn\" (click)=\"fitReset()\" title=\"Fit to view\"><i class=\"fas fa-expand\"></i></button>\n </div>\n }\n </div>\n\n <!-- narration rail (animated modes, nothing selected) -->\n @if (showRail) {\n <aside class=\"flow-rail\" [style.width.px]=\"panelWidth\">\n <div class=\"flow-resizer\" (mousedown)=\"startResize($event)\" title=\"Drag to resize\"></div>\n <div class=\"now\">\n <div class=\"rail-lbl\">Now executing</div>\n <div class=\"breadcrumb\" #crumb></div>\n <div class=\"nowcard\">\n <div class=\"ico\" #nowIco>🤖</div>\n <h3 #nowName>—</h3>\n <div class=\"type\" #nowType>Agent run</div>\n <div class=\"meta\">\n <div>Duration<b #nowDur>—</b></div>\n <div>Status<b #nowStat>—</b></div>\n <div>Model<b #nowModel>—</b></div>\n </div>\n <div class=\"barbg\"><div class=\"barfg\" #nowBar></div></div>\n </div>\n </div>\n <div class=\"log\">\n <div class=\"rail-lbl sticky\">Execution log</div>\n <div #loglist class=\"loglist\"></div>\n </div>\n </aside>\n }\n\n <!-- step inspector (any mode) -->\n @if (selectedStepItem) {\n <aside class=\"flow-detail\" [style.width.px]=\"panelWidth\">\n <div class=\"flow-resizer\" (mousedown)=\"startResize($event)\" title=\"Drag to resize\"></div>\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedStepItem\"\n (closePanel)=\"closeDetail()\"\n (navigateToActionLog)=\"onDetailNavigateActionLog($event)\"\n (copyToClipboard)=\"onDetailCopy($event)\">\n </mj-ai-agent-run-step-detail>\n </aside>\n }\n </div>\n\n <!-- transport (animated modes only) -->\n @if (isAnimated) {\n <div class=\"flow-transport\">\n <button class=\"pbtn\" (click)=\"togglePlay()\" [disabled]=\"!hasData\" [title]=\"playing ? 'Pause' : 'Play'\">\n <i class=\"fas\" [ngClass]=\"playing ? 'fa-pause' : 'fa-play'\"></i>\n </button>\n <button class=\"ibtn\" (click)=\"restart()\" [disabled]=\"!hasData\" title=\"Restart\">\n <i class=\"fas fa-rotate-left\"></i>\n </button>\n <input #scrub class=\"scrub\" type=\"range\" min=\"0\" max=\"1000\" value=\"0\"\n [disabled]=\"!hasData\" (input)=\"onScrub(scrub.value)\"/>\n <div class=\"clock\" #clock>0s / 0s</div>\n <div class=\"speedbox\">\n <i class=\"fas fa-gauge-high\"></i>\n <input class=\"speed\" type=\"range\" min=\"25\" max=\"300\" value=\"100\" (input)=\"onSpeed($any($event.target).value)\"/>\n <span class=\"spdval\">{{ speed.toFixed(1) }}×</span>\n </div>\n </div>\n }\n\n <!-- legend / hint -->\n <div class=\"flow-legend\">\n @if (isAnimated) {\n <span><i class=\"lg\" style=\"background: var(--mj-text-muted)\"></i>Hint:</span>\n <span class=\"legend-note\">Playback is compressed so every step is visible — real duration shows through heat, size & speed, not literal width.</span>\n } @else {\n <span><i class=\"lg\" style=\"background: var(--mj-text-muted)\"></i>Tip:</span>\n <span class=\"legend-note\">Drag to pan, scroll to zoom, click any node to inspect it. Layout is the full execution tree, top to bottom.</span>\n }\n </div>\n</div>\n"]}
|
|
1
|
+
{"version":3,"file":"agent-run-flow.component.js","sourceRoot":"","sources":["../../../../../src/lib/custom/ai-agent-run/flow/agent-run-flow.component.ts","../../../../../src/lib/custom/ai-agent-run/flow/agent-run-flow.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component, Input, ElementRef, ViewChild, NgZone, ChangeDetectorRef,\n OnDestroy, AfterViewInit, ChangeDetectionStrategy, inject\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { combineLatest } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CompositeKey } from '@memberjunction/core';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\nimport { UserInfoEngine } from '@memberjunction/core-entities';\nimport { AIAgentRunDataHelper } from '../ai-agent-run-data.service';\nimport { TimelineItem } from '../ai-agent-run-timeline.component';\nimport {\n FlowModel, FlowNode, BuildFlowModel, ActiveLeaf, Ancestors,\n FormatDuration, ShortLabel, FLOW_COLORS, FLOW_EMOJI, FLOW_LABEL\n} from './agent-run-flow.model';\nimport { FlameCascadeComponent } from './flame-cascade.component';\nimport { SubwayLinesComponent } from './subway-lines.component';\nimport { BuildFlowModelFromTree } from './run-tree-flow-projection';\nimport type { AgentRunTreeNode } from '@memberjunction/ai-core-plus';\nimport { ConstellationComponent } from './constellation.component';\nimport { FlowchartComponent } from './flowchart.component';\n\ninterface FlowMode { key: string; label: string; icon: string; enabled: boolean; }\n\n/**\n * Flow — the playable, zoomed-out execution view for an Agent Run.\n *\n * Owns the single master clock (scrub / play / speed) and the narration rail,\n * and hosts three interchangeable renderers (Flame, Subway, Constellation).\n * The per-frame loop runs *outside* Angular's zone and pushes updates straight\n * to the DOM / active renderer, so 60fps playback never triggers change detection.\n */\n@Component({\n standalone: false,\n selector: 'mj-ai-agent-run-flow',\n templateUrl: './agent-run-flow.component.html',\n styleUrls: ['./agent-run-flow.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AIAgentRunFlowComponent implements AfterViewInit, OnDestroy {\n @Input() AiAgentRunId!: string;\n\n /** @deprecated Use {@link AiAgentRunId}. */\n @Input() set aiAgentRunId(value: string) {\n this.AiAgentRunId = value;\n }\n /** @deprecated Use {@link AiAgentRunId}. */\n get aiAgentRunId(): string {\n return this.AiAgentRunId;\n }\n @Input() DataHelper!: AIAgentRunDataHelper;\n\n /** @deprecated Use {@link DataHelper}. */\n @Input() set dataHelper(value: AIAgentRunDataHelper) {\n this.DataHelper = value;\n }\n /** @deprecated Use {@link DataHelper}. */\n get dataHelper(): AIAgentRunDataHelper {\n return this.DataHelper;\n }\n @Input() AgentName: string | null = null;\n\n /** @deprecated Use {@link AgentName}. */\n @Input() set agentName(value: string | null) {\n this.AgentName = value;\n }\n /** @deprecated Use {@link AgentName}. */\n get agentName(): string | null {\n return this.AgentName;\n }\n @Input() RunStatus = '';\n\n /** @deprecated Use {@link RunStatus}. */\n @Input() set runStatus(value: AIAgentRunFlowComponent['RunStatus']) {\n this.RunStatus = value;\n }\n /** @deprecated Use {@link RunStatus}. */\n get runStatus(): AIAgentRunFlowComponent['RunStatus'] {\n return this.RunStatus;\n }\n @Input() AgentIconClass: string | null = null;\n\n /** @deprecated Use {@link AgentIconClass}. */\n @Input() set agentIconClass(value: string | null) {\n this.AgentIconClass = value;\n }\n /** @deprecated Use {@link AgentIconClass}. */\n get agentIconClass(): string | null {\n return this.AgentIconClass;\n }\n @Input() AgentLogoUrl: string | null = null;\n\n /** @deprecated Use {@link AgentLogoUrl}. */\n @Input() set agentLogoUrl(value: string | null) {\n this.AgentLogoUrl = value;\n }\n /** @deprecated Use {@link AgentLogoUrl}. */\n get agentLogoUrl(): string | null {\n return this.AgentLogoUrl;\n }\n\n /**\n * The run's execution tree, loaded once by the form and shared with every tab.\n *\n * Setter-based so a refresh upstream rebuilds all three renderers immediately — they share one\n * model, so one rebuild updates whichever is on screen and every one behind it.\n */\n @Input()\n set RunTree(value: AgentRunTreeNode | null) {\n this.runTree = value;\n void this.rebuildModel();\n }\n private runTree: AgentRunTreeNode | null = null;\n\n public Modes: FlowMode[] = [\n { key: 'subway', label: 'Subway Lines', icon: 'fa-train-subway', enabled: true },\n { key: 'constellation', label: 'Constellation', icon: 'fa-star', enabled: true },\n { key: 'flow', label: 'Flow', icon: 'fa-diagram-project', enabled: true },\n { key: 'flame', label: 'Flame Cascade', icon: 'fa-fire', enabled: true }\n ];\n\n /** @deprecated Use {@link Modes}. */\n public get modes(): FlowMode[] {\n return this.Modes;\n }\n /** @deprecated Use {@link Modes}. */\n public set modes(value: FlowMode[]) {\n this.Modes = value;\n }\n public Mode = 'subway';\n\n /** @deprecated Use {@link Mode}. */\n public get mode() {\n return this.Mode;\n }\n /** @deprecated Use {@link Mode}. */\n public set mode(value) {\n this.Mode = value;\n }\n public model: FlowModel | null = null;\n public Playing = false;\n\n /** @deprecated Use {@link Playing}. */\n public get playing() {\n return this.Playing;\n }\n /** @deprecated Use {@link Playing}. */\n public set playing(value) {\n this.Playing = value;\n }\n public Speed = 1;\n\n /** @deprecated Use {@link Speed}. */\n public get speed() {\n return this.Speed;\n }\n /** @deprecated Use {@link Speed}. */\n public set speed(value) {\n this.Speed = value;\n }\n public Loading = true;\n\n /** @deprecated Use {@link Loading}. */\n public get loading() {\n return this.Loading;\n }\n /** @deprecated Use {@link Loading}. */\n public set loading(value) {\n this.Loading = value;\n }\n public HasData = false;\n\n /** @deprecated Use {@link HasData}. */\n public get hasData() {\n return this.HasData;\n }\n /** @deprecated Use {@link HasData}. */\n public set hasData(value) {\n this.HasData = value;\n }\n /** Selected node detail (any mode). */\n public SelectedStepItem: TimelineItem | null = null;\n\n /** @deprecated Use {@link SelectedStepItem}. */\n public get selectedStepItem(): TimelineItem | null {\n return this.SelectedStepItem;\n }\n /** @deprecated Use {@link SelectedStepItem}. */\n public set selectedStepItem(value: TimelineItem | null) {\n this.SelectedStepItem = value;\n }\n private selectedNodeId = -1;\n private logRows = new Map<number, HTMLElement>();\n private lastActiveRowId = -1;\n\n /** The animated modes share the master clock + narration rail; Flow is static. */\n public get IsAnimated(): boolean { return this.Mode !== 'flow'; }\n\n /** @deprecated Use {@link IsAnimated}. */\n public get isAnimated(): boolean {\n return this.IsAnimated;\n }\n /** Rail (now-executing + log tree) shows only for animated modes with nothing selected. */\n public get ShowRail(): boolean { return this.IsAnimated && !this.SelectedStepItem; }\n\n /** @deprecated Use {@link ShowRail}. */\n public get showRail(): boolean {\n return this.ShowRail;\n }\n\n /** Right-panel width (rail / inspector), resizable + persisted per user. Default is 50px wider than the old fixed panel. */\n public PanelWidth = 410;\n\n /** @deprecated Use {@link PanelWidth}. */\n public get panelWidth() {\n return this.PanelWidth;\n }\n /** @deprecated Use {@link PanelWidth}. */\n public set panelWidth(value) {\n this.PanelWidth = value;\n }\n private readonly PANEL_KEY = 'mj.agentRunFlow.panelWidth.v1';\n private resizing = false;\n private resizeStartX = 0;\n private resizeStartW = 0;\n\n @ViewChild(FlameCascadeComponent) private flame?: FlameCascadeComponent;\n @ViewChild(SubwayLinesComponent) private subway?: SubwayLinesComponent;\n @ViewChild(ConstellationComponent) private constellation?: ConstellationComponent;\n @ViewChild(FlowchartComponent) private flowchart?: FlowchartComponent;\n\n @ViewChild('scrub') private scrubRef?: ElementRef<HTMLInputElement>;\n @ViewChild('clock') private clockRef?: ElementRef<HTMLElement>;\n @ViewChild('crumb') private crumbRef?: ElementRef<HTMLElement>;\n @ViewChild('nowIco') private nowIcoRef?: ElementRef<HTMLElement>;\n @ViewChild('nowName') private nowNameRef?: ElementRef<HTMLElement>;\n @ViewChild('nowType') private nowTypeRef?: ElementRef<HTMLElement>;\n @ViewChild('nowDur') private nowDurRef?: ElementRef<HTMLElement>;\n @ViewChild('nowModel') private nowModelRef?: ElementRef<HTMLElement>;\n @ViewChild('nowStat') private nowStatRef?: ElementRef<HTMLElement>;\n @ViewChild('nowBar') private nowBarRef?: ElementRef<HTMLElement>;\n @ViewChild('loglist') private loglistRef?: ElementRef<HTMLElement>;\n\n private destroy$ = new Subject<void>();\n private rafId: number | null = null;\n private p = 0;\n private lastTs = 0;\n private readonly PLAY_MS = 11000;\n private logModelRef: FlowModel | null = null;\n private lastLeafId = -1;\n private viewReady = false;\n\n private zone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n ngAfterViewInit(): void {\n this.viewReady = true;\n const savedW = UserInfoEngine.Instance.GetSetting(this.PANEL_KEY);\n if (savedW) { const n = +savedW; if (n >= 280) this.PanelWidth = Math.min(n, this.maxPanelWidth()); }\n combineLatest([this.DataHelper.steps$, this.DataHelper.loading$])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([steps, loading]) => {\n this.Loading = loading && steps.length === 0;\n if (!loading || steps.length > 0) this.rebuildModel();\n this.cdr.markForCheck();\n });\n this.zone.runOutsideAngular(() => {\n this.rafId = requestAnimationFrame(ts => this.tick(ts));\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(); this.destroy$.complete();\n if (this.rafId != null) cancelAnimationFrame(this.rafId);\n }\n\n private async rebuildModel(): Promise<void> {\n const wasEmpty = !this.model;\n await AIEngineBase.Instance.EnsureLoaded(); // agent icons/logos read synchronously during build\n const rootIcon = { iconClass: this.AgentIconClass || 'fa-robot', logoUrl: this.AgentLogoUrl };\n // The TREE is the source. It carries the run's steps AND any task-graph work those steps\n // submitted — which the step-row builder cannot see at all, because a workflow's steps live in\n // MJ: Tasks rather than in the run's step list. Falling back to the step builder when the tree\n // has not arrived keeps the view populated on first paint rather than flashing empty.\n const model = this.runTree\n ? BuildFlowModelFromTree(this.runTree, this.AgentName ?? '', this.RunStatus, rootIcon)\n : await BuildFlowModel(this.AgentName ?? '', this.RunStatus, rootIcon, this.DataHelper);\n if (!model) return;\n this.model = model;\n this.HasData = model.Leaves.length > 0;\n if (wasEmpty) this.p = 0;\n this.lastLeafId = -1;\n this.cdr.markForCheck();\n }\n\n /* -------------------------------- transport ------------------------------- */\n\n public TogglePlay(): void {\n if (!this.HasData) return;\n if (this.p >= 1) this.p = 0;\n this.Playing = !this.Playing;\n this.lastTs = 0;\n }\n\n /** @deprecated Use {@link TogglePlay}. */\n public togglePlay(): void {\n return this.TogglePlay();\n }\n\n public Restart(): void {\n if (!this.HasData) return;\n this.p = 0; this.Playing = true; this.lastTs = 0;\n this.lastLeafId = -1;\n }\n\n /** @deprecated Use {@link Restart}. */\n public restart(): void {\n return this.Restart();\n }\n\n public OnScrub(value: string): void {\n this.p = (+value) / 1000;\n this.Playing = false;\n }\n\n /** @deprecated Use {@link OnScrub}. */\n public onScrub(value: string): void {\n return this.OnScrub(value);\n }\n\n public OnSpeed(value: string): void { this.Speed = (+value) / 100; }\n\n /** @deprecated Use {@link OnSpeed}. */\n public onSpeed(value: string): void {\n return this.OnSpeed(value);\n }\n\n public SelectMode(m: FlowMode): void {\n if (!m.enabled) return;\n this.Mode = m.key;\n this.applyRendererSelection(this.selectedNodeId === -1 ? null : this.selectedNodeId);\n this.currentRenderer?.ReapplyView?.(); // ensure the now-visible renderer shows its OWN (per-type) zoom\n }\n\n /** @deprecated Use {@link SelectMode}. */\n public selectMode(m: FlowMode): void {\n return this.SelectMode(m);\n }\n\n private get currentRenderer(): { Render(p: number, ts: number): void; ZoomIn?(): void; ZoomOut?(): void; FitReset?(): void; ReapplyView?(): void } | undefined {\n switch (this.Mode) {\n case 'flame': return this.flame;\n case 'subway': return this.subway;\n case 'constellation': return this.constellation;\n case 'flow': return this.flowchart;\n default: return undefined;\n }\n }\n\n /* --------------------------- zoom (shared toolbar) ------------------------ */\n\n public ZoomIn(): void { this.currentRenderer?.ZoomIn?.(); }\n\n /** @deprecated Use {@link ZoomIn}. */\n public zoomIn(): void {\n return this.ZoomIn();\n }\n public ZoomOut(): void { this.currentRenderer?.ZoomOut?.(); }\n\n /** @deprecated Use {@link ZoomOut}. */\n public zoomOut(): void {\n return this.ZoomOut();\n }\n public FitReset(): void { this.currentRenderer?.FitReset?.(); }\n\n /** @deprecated Use {@link FitReset}. */\n public fitReset(): void {\n return this.FitReset();\n }\n\n /* ---------------------------- panel resize ------------------------------- */\n\n /** Cap the right panel at 75% of the viewport width. */\n private maxPanelWidth(): number { return Math.max(360, window.innerWidth * 0.75); }\n\n public StartResize(e: MouseEvent): void {\n e.preventDefault();\n this.resizing = true;\n this.resizeStartX = e.clientX;\n this.resizeStartW = this.PanelWidth;\n const move = (ev: MouseEvent) => {\n if (!this.resizing) return;\n const w = this.resizeStartW + (this.resizeStartX - ev.clientX); // drag left → wider\n this.PanelWidth = Math.max(280, Math.min(this.maxPanelWidth(), w));\n this.cdr.markForCheck();\n };\n const up = () => {\n this.resizing = false;\n window.removeEventListener('mousemove', move);\n window.removeEventListener('mouseup', up);\n UserInfoEngine.Instance.SetSettingDebounced(this.PANEL_KEY, String(Math.round(this.PanelWidth)));\n };\n window.addEventListener('mousemove', move);\n window.addEventListener('mouseup', up);\n }\n\n /** @deprecated Use {@link StartResize}. */\n public startResize(e: MouseEvent): void {\n return this.StartResize(e);\n }\n\n /* -------------------------------- selection ------------------------------ */\n\n /** A node was clicked in any renderer (or a log row) — highlight it everywhere and show its detail. */\n public SelectStep(n: FlowNode): void {\n this.zone.run(() => {\n this.selectedNodeId = n.Id;\n this.SelectedStepItem = this.toTimelineItem(n);\n this.cdr.markForCheck();\n });\n this.applyRendererSelection(n.Id);\n }\n\n /** @deprecated Use {@link SelectStep}. */\n public selectStep(n: FlowNode): void {\n return this.SelectStep(n);\n }\n\n public CloseDetail(): void {\n this.zone.run(() => { this.SelectedStepItem = null; this.selectedNodeId = -1; this.cdr.markForCheck(); });\n this.applyRendererSelection(null);\n this.flowchart?.Deselect();\n }\n\n /** @deprecated Use {@link CloseDetail}. */\n public closeDetail(): void {\n return this.CloseDetail();\n }\n\n private applyRendererSelection(id: number | null): void {\n this.flame?.SetSelected(id);\n this.subway?.SetSelected(id);\n this.constellation?.SetSelected(id);\n }\n\n public OnDetailNavigateActionLog(logId: string): void {\n SharedService.Instance.OpenEntityRecord('MJ: Action Execution Logs', CompositeKey.FromID(logId));\n }\n\n /** @deprecated Use {@link OnDetailNavigateActionLog}. */\n public onDetailNavigateActionLog(logId: string): void {\n return this.OnDetailNavigateActionLog(logId);\n }\n\n public async OnDetailCopy(text: string): Promise<void> {\n try { await navigator.clipboard.writeText(text); } catch { /* clipboard unavailable */ }\n }\n\n /** @deprecated Use {@link OnDetailCopy}. */\n public async onDetailCopy(text: string): Promise<void> {\n return this.OnDetailCopy(text);\n }\n\n private toTimelineItem(n: FlowNode): TimelineItem | null {\n if (!n.Raw) return null;\n return {\n id: n.Raw.ID, type: 'step', title: n.Name, subtitle: `Type: ${n.Raw.StepType}`,\n status: n.Status, startTime: n.Raw.StartedAt, endTime: n.Raw.CompletedAt || undefined,\n duration: FormatDuration(n.RealDur), icon: 'fa-circle', color: '', data: n.Raw, level: n.Depth\n };\n }\n\n /* ------------------------------- master loop ------------------------------ */\n\n private tick(ts: number): void {\n const animated = this.IsAnimated;\n if (animated && this.Playing && this.HasData) {\n if (!this.lastTs) this.lastTs = ts;\n const dt = ts - this.lastTs; this.lastTs = ts;\n this.p += dt / (this.PLAY_MS / this.Speed);\n if (this.p >= 1) { this.p = 1; this.Playing = false; this.zone.run(() => this.cdr.markForCheck()); }\n } else {\n this.lastTs = 0;\n }\n if (this.viewReady && this.model && this.HasData) {\n if (animated) {\n this.currentRenderer?.Render(this.p, ts);\n this.updateRail(ts);\n } else {\n // Flow (static): just ensure the flowchart is built; no clock.\n this.flowchart?.Render(0, ts);\n }\n }\n this.rafId = requestAnimationFrame(t => this.tick(t));\n }\n\n /* ------------------------------ narration rail ---------------------------- */\n\n private updateRail(_ts: number): void {\n const m = this.model!;\n\n // (Re)populate the imperative rail content whenever the rail DOM is fresh\n // (the @if remounted it with template defaults) or the model changed. Without\n // this, a remount at run-completion leaves an empty log + a blank now-card.\n if (this.loglistRef &&\n (this.logModelRef !== m || (this.loglistRef.nativeElement.childElementCount === 0 && m.Nodes.length > 1))) {\n this.buildLogTree();\n this.logModelRef = m;\n this.lastLeafId = -1; // force the now-card to repopulate the fresh DOM\n }\n\n const leaf = ActiveLeaf(m, this.p);\n const prog = this.p >= leaf.T1 ? 1 : Math.max(0, (this.p - leaf.T0) / (leaf.T1 - leaf.T0));\n\n if (this.scrubRef) this.scrubRef.nativeElement.value = String(Math.round(this.p * 1000));\n if (this.clockRef) {\n const realT = this.p >= 1 ? m.Total : leaf.R0 + prog * leaf.RealDur;\n this.clockRef.nativeElement.textContent = `${FormatDuration(realT)} / ${FormatDuration(m.Total)}`;\n }\n if (this.nowBarRef) this.nowBarRef.nativeElement.style.width = `${prog * 100}%`;\n\n if (leaf.Id !== this.lastLeafId) {\n this.lastLeafId = leaf.Id;\n this.refreshNowCard(leaf);\n }\n if (this.nowStatRef) {\n this.nowStatRef.nativeElement.textContent = this.p >= 1 ? 'done' : (this.p > leaf.T0 ? 'running' : 'starting');\n }\n if (this.loglistRef) this.updateLogTree();\n }\n\n private refreshNowCard(leaf: FlowNode): void {\n const col = FLOW_COLORS[leaf.Type];\n if (this.nowIcoRef) this.nowIcoRef.nativeElement.textContent = FLOW_EMOJI[leaf.Type];\n if (this.nowNameRef) this.nowNameRef.nativeElement.textContent = leaf.Name;\n if (this.nowTypeRef) {\n this.nowTypeRef.nativeElement.textContent = FLOW_LABEL[leaf.Type];\n this.nowTypeRef.nativeElement.style.color = col;\n }\n if (this.nowDurRef) this.nowDurRef.nativeElement.textContent = FormatDuration(leaf.RealDur);\n if (this.nowModelRef) this.nowModelRef.nativeElement.textContent = leaf.Model ?? '—';\n if (this.crumbRef) {\n const chain = Ancestors(leaf);\n this.crumbRef.nativeElement.innerHTML = chain.map((n, i) =>\n `${i ? '<span class=\"sep\">›</span>' : ''}<span style=\"color:${FLOW_COLORS[n.Type]}\">${FLOW_EMOJI[n.Type]} ${this.escape(n.Name)}</span>`\n ).join('');\n }\n }\n\n /* ------------------------------ log tree (rail) --------------------------- */\n\n /** Build a clickable indented tree of every step, mirroring the run hierarchy. */\n private buildLogTree(): void {\n const list = this.loglistRef!.nativeElement;\n list.innerHTML = '';\n this.logRows.clear();\n this.lastActiveRowId = -1;\n const m = this.model!;\n for (const n of m.Nodes) {\n if (n.Depth === 0) continue; // skip the synthetic root (it's the header)\n const col = FLOW_COLORS[n.Type];\n const row = document.createElement('div');\n row.className = 'ftree-row';\n row.style.paddingLeft = `${6 + (n.Depth - 1) * 15}px`;\n const ico = n.LogoUrl\n ? `<img class=\"ftree-logo\" src=\"${this.escape(n.LogoUrl)}\" alt=\"\"/>`\n : `<i class=\"ftree-ico fa-solid ${this.escape(n.IconClass)}\" style=\"color:${col}\"></i>`;\n row.innerHTML = ico +\n `<span class=\"ftree-name\">${this.escape(ShortLabel(n))}</span>` +\n `<span class=\"ftree-dur\">${FormatDuration(n.RealDur)}</span>`;\n row.addEventListener('click', () => this.SelectStep(n));\n list.appendChild(row);\n this.logRows.set(n.Id, row);\n }\n }\n\n /** Sync each log row's state (pending / running / done / selected) with the clock. */\n private updateLogTree(): void {\n const m = this.model!;\n for (const n of m.Nodes) {\n if (n.Depth === 0) continue;\n const row = this.logRows.get(n.Id);\n if (!row) continue;\n const started = this.p >= n.T0;\n const active = started && this.p < n.T1;\n row.classList.toggle('ftree-pending', !started);\n row.classList.toggle('ftree-active', active);\n row.classList.toggle('ftree-done', this.p >= n.T1);\n row.classList.toggle('ftree-selected', n.Id === this.selectedNodeId);\n if (active && n.Id !== this.lastActiveRowId && !n.Children.length) {\n this.lastActiveRowId = n.Id;\n row.scrollIntoView({ block: 'nearest' });\n }\n }\n }\n\n private escape(s: string): string {\n return s.replace(/[&<>\"]/g, c => ({ '&': '&', '<': '<', '>': '>', '\"': '"' }[c] ?? c));\n }\n}\n","<div class=\"flow-cockpit\">\n <!-- mode segmented control -->\n <div class=\"flow-modes\">\n @for (m of modes; track m.key) {\n <button class=\"flow-mode\" [class.on]=\"mode === m.key\" [class.soon]=\"!m.enabled\"\n [disabled]=\"!m.enabled\" (click)=\"selectMode(m)\"\n [title]=\"m.enabled ? m.label : m.label + ' — coming soon'\">\n <i class=\"fas\" [ngClass]=\"m.icon\"></i>\n <span>{{ m.label }}</span>\n @if (!m.enabled) { <span class=\"soon-tag\">Soon</span> }\n </button>\n }\n </div>\n\n <div class=\"flow-main\">\n <!-- stage -->\n <div class=\"flow-stage\">\n @if (loading) {\n <div class=\"flow-overlay\"><mj-loading text=\"Building flow…\"></mj-loading></div>\n } @else if (!hasData) {\n <div class=\"flow-overlay flow-empty\">\n <i class=\"fas fa-wind\"></i>\n <p>No steps recorded for this run yet.</p>\n </div>\n }\n\n <mj-agent-flow-flame [class.flow-hidden]=\"mode !== 'flame'\" [Model]=\"model\" (nodeSelected)=\"selectStep($event)\"></mj-agent-flow-flame>\n <mj-agent-flow-subway [class.flow-hidden]=\"mode !== 'subway'\" [Model]=\"model\" (nodeSelected)=\"selectStep($event)\"></mj-agent-flow-subway>\n <mj-agent-flow-constellation [class.flow-hidden]=\"mode !== 'constellation'\" [Model]=\"model\" (nodeSelected)=\"selectStep($event)\"></mj-agent-flow-constellation>\n <mj-agent-flow-flowchart [class.flow-hidden]=\"mode !== 'flow'\" [Model]=\"model\"\n (nodeSelected)=\"selectStep($event)\"\n (selectionCleared)=\"closeDetail()\"></mj-agent-flow-flowchart>\n\n @if (hasData) {\n <div class=\"flow-zoom\">\n <button class=\"fz-btn\" (click)=\"zoomIn()\" title=\"Zoom in\"><i class=\"fas fa-magnifying-glass-plus\"></i></button>\n <button class=\"fz-btn\" (click)=\"zoomOut()\" title=\"Zoom out\"><i class=\"fas fa-magnifying-glass-minus\"></i></button>\n <button class=\"fz-btn\" (click)=\"fitReset()\" title=\"Fit to view\"><i class=\"fas fa-expand\"></i></button>\n </div>\n }\n </div>\n\n <!-- narration rail (animated modes, nothing selected) -->\n @if (showRail) {\n <aside class=\"flow-rail\" [style.width.px]=\"panelWidth\">\n <div class=\"flow-resizer\" (mousedown)=\"startResize($event)\" title=\"Drag to resize\"></div>\n <div class=\"now\">\n <div class=\"rail-lbl\">Now executing</div>\n <div class=\"breadcrumb\" #crumb></div>\n <div class=\"nowcard\">\n <div class=\"ico\" #nowIco>🤖</div>\n <h3 #nowName>—</h3>\n <div class=\"type\" #nowType>Agent run</div>\n <div class=\"meta\">\n <div>Duration<b #nowDur>—</b></div>\n <div>Status<b #nowStat>—</b></div>\n <div>Model<b #nowModel>—</b></div>\n </div>\n <div class=\"barbg\"><div class=\"barfg\" #nowBar></div></div>\n </div>\n </div>\n <div class=\"log\">\n <div class=\"rail-lbl sticky\">Execution log</div>\n <div #loglist class=\"loglist\"></div>\n </div>\n </aside>\n }\n\n <!-- step inspector (any mode) -->\n @if (selectedStepItem) {\n <aside class=\"flow-detail\" [style.width.px]=\"panelWidth\">\n <div class=\"flow-resizer\" (mousedown)=\"startResize($event)\" title=\"Drag to resize\"></div>\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedStepItem\"\n (closePanel)=\"closeDetail()\"\n (navigateToActionLog)=\"onDetailNavigateActionLog($event)\"\n (copyToClipboard)=\"onDetailCopy($event)\">\n </mj-ai-agent-run-step-detail>\n </aside>\n }\n </div>\n\n <!-- transport (animated modes only) -->\n @if (isAnimated) {\n <div class=\"flow-transport\">\n <button class=\"pbtn\" (click)=\"togglePlay()\" [disabled]=\"!hasData\" [title]=\"playing ? 'Pause' : 'Play'\">\n <i class=\"fas\" [ngClass]=\"playing ? 'fa-pause' : 'fa-play'\"></i>\n </button>\n <button class=\"ibtn\" (click)=\"restart()\" [disabled]=\"!hasData\" title=\"Restart\">\n <i class=\"fas fa-rotate-left\"></i>\n </button>\n <input #scrub class=\"scrub\" type=\"range\" min=\"0\" max=\"1000\" value=\"0\"\n [disabled]=\"!hasData\" (input)=\"onScrub(scrub.value)\"/>\n <div class=\"clock\" #clock>0s / 0s</div>\n <div class=\"speedbox\">\n <i class=\"fas fa-gauge-high\"></i>\n <input class=\"speed\" type=\"range\" min=\"25\" max=\"300\" value=\"100\" (input)=\"onSpeed($any($event.target).value)\"/>\n <span class=\"spdval\">{{ speed.toFixed(1) }}×</span>\n </div>\n </div>\n }\n\n <!-- legend / hint -->\n <div class=\"flow-legend\">\n @if (isAnimated) {\n <span><i class=\"lg\" style=\"background: var(--mj-text-muted)\"></i>Hint:</span>\n <span class=\"legend-note\">Playback is compressed so every step is visible — real duration shows through heat, size & speed, not literal width.</span>\n } @else {\n <span><i class=\"lg\" style=\"background: var(--mj-text-muted)\"></i>Tip:</span>\n <span class=\"legend-note\">Drag to pan, scroll to zoom, click any node to inspect it. Layout is the full execution tree, top to bottom.</span>\n }\n </div>\n</div>\n"]}
|
|
@@ -24,27 +24,27 @@ export interface RootIcon {
|
|
|
24
24
|
export type FlowNodeType = 'agent' | 'subagent' | 'prompt' | 'action' | 'decision' | 'loop' | 'validation' | 'other';
|
|
25
25
|
export interface FlowNode {
|
|
26
26
|
/** Stable index within the flattened model (renderer scratch keys off this). */
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
Id: number;
|
|
28
|
+
Name: string;
|
|
29
|
+
Type: FlowNodeType;
|
|
30
|
+
Status: string;
|
|
31
|
+
Model: string | null;
|
|
32
32
|
/** Real duration in seconds (container nodes = sum of children). */
|
|
33
|
-
|
|
33
|
+
RealDur: number;
|
|
34
34
|
/** Normalized playback window [0..1]. */
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
T0: number;
|
|
36
|
+
T1: number;
|
|
37
|
+
Tmid: number;
|
|
38
38
|
/** Real cumulative wall-clock window in seconds. */
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
R0: number;
|
|
40
|
+
R1: number;
|
|
41
|
+
Depth: number;
|
|
42
42
|
/** Relative heat tier 0..3 (3 = among the longest steps in this run). */
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
Heat: 0 | 1 | 2 | 3;
|
|
44
|
+
Parent: FlowNode | null;
|
|
45
|
+
Children: FlowNode[];
|
|
46
46
|
/** Underlying step entity (null for the synthetic root, and for task-graph nodes). */
|
|
47
|
-
|
|
47
|
+
Raw: MJAIAgentRunStepEntity | null;
|
|
48
48
|
/**
|
|
49
49
|
* Which record this node came from, whatever entity that is.
|
|
50
50
|
*
|
|
@@ -52,22 +52,22 @@ export interface FlowNode {
|
|
|
52
52
|
* be represented by it. This generic reference is what lets one model hold both, and what lets a
|
|
53
53
|
* click open the right record either way.
|
|
54
54
|
*/
|
|
55
|
-
|
|
55
|
+
Source?: {
|
|
56
56
|
entity: string;
|
|
57
57
|
id: string;
|
|
58
58
|
} | null;
|
|
59
59
|
/** Font Awesome class (e.g. 'fa-brain'); sub-agents resolve their agent's icon. */
|
|
60
|
-
|
|
60
|
+
IconClass: string;
|
|
61
61
|
/** Agent logo image URL when available (sub-agents / root), else null. */
|
|
62
|
-
|
|
62
|
+
LogoUrl: string | null;
|
|
63
63
|
}
|
|
64
64
|
export interface FlowModel {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
Root: FlowNode;
|
|
66
|
+
Nodes: FlowNode[];
|
|
67
|
+
Leaves: FlowNode[];
|
|
68
|
+
Total: number;
|
|
69
|
+
MaxDepth: number;
|
|
70
|
+
MaxLeafDur: number;
|
|
71
71
|
}
|
|
72
72
|
/** Categorical data-visualization palette (per CLAUDE.md, chart colors may be literal). */
|
|
73
73
|
export declare const FLOW_COLORS: Record<FlowNodeType, string>;
|
|
@@ -80,6 +80,8 @@ export declare const FLOW_LABEL: Record<FlowNodeType, string>;
|
|
|
80
80
|
* sub-agent tree (via the helper's cached `loadSubAgentData`) so the zoomed-out
|
|
81
81
|
* view shows the entire run at once.
|
|
82
82
|
*/
|
|
83
|
+
export declare function BuildFlowModel(rootName: string, rootStatus: string, rootIcon: RootIcon, helper: AIAgentRunDataHelper): Promise<FlowModel>;
|
|
84
|
+
/** @deprecated Use {@link BuildFlowModel}. */
|
|
83
85
|
export declare function buildFlowModel(rootName: string, rootStatus: string, rootIcon: RootIcon, helper: AIAgentRunDataHelper): Promise<FlowModel>;
|
|
84
86
|
/**
|
|
85
87
|
* Durations, playback window, wall-clock and heat — the normalization every FlowModel shares.
|
|
@@ -89,17 +91,29 @@ export declare function buildFlowModel(rootName: string, rootStatus: string, roo
|
|
|
89
91
|
* into looking like different products — different bar widths, different heat thresholds — for the
|
|
90
92
|
* same run.
|
|
91
93
|
*/
|
|
94
|
+
export declare function FinalizeFlowModel(root: FlowNode): FlowModel;
|
|
95
|
+
/** @deprecated Use {@link FinalizeFlowModel}. */
|
|
92
96
|
export declare function finalizeFlowModel(root: FlowNode): FlowModel;
|
|
97
|
+
export declare function ActiveLeaf(model: FlowModel, p: number): FlowNode;
|
|
98
|
+
/** @deprecated Use {@link ActiveLeaf}. */
|
|
93
99
|
export declare function activeLeaf(model: FlowModel, p: number): FlowNode;
|
|
100
|
+
export declare function Ancestors(n: FlowNode): FlowNode[];
|
|
101
|
+
/** @deprecated Use {@link Ancestors}. */
|
|
94
102
|
export declare function ancestors(n: FlowNode): FlowNode[];
|
|
103
|
+
export declare function AgentOf(n: FlowNode): FlowNode;
|
|
104
|
+
/** @deprecated Use {@link AgentOf}. */
|
|
95
105
|
export declare function agentOf(n: FlowNode): FlowNode;
|
|
96
106
|
/** "Execute Sub-Agent: Query Strategist" → "Query Strategist". */
|
|
107
|
+
export declare function AgentShortName(a: FlowNode): string;
|
|
108
|
+
/** @deprecated Use {@link AgentShortName}. */
|
|
97
109
|
export declare function agentShortName(a: FlowNode): string;
|
|
98
110
|
/**
|
|
99
111
|
* Label with the owning agent's prefix stripped — child step names tend to be
|
|
100
112
|
* "Query Strategist: Execute Agent Prompt"; on a view that already shows which
|
|
101
113
|
* agent/line a node belongs to, the prefix is pure noise that causes overlap.
|
|
102
114
|
*/
|
|
115
|
+
export declare function DisplayName(n: FlowNode): string;
|
|
116
|
+
/** @deprecated Use {@link DisplayName}. */
|
|
103
117
|
export declare function displayName(n: FlowNode): string;
|
|
104
118
|
/**
|
|
105
119
|
* Aggressively abbreviated label for tight surfaces (subway stations, flame bars,
|
|
@@ -109,6 +123,10 @@ export declare function displayName(n: FlowNode): string;
|
|
|
109
123
|
* "Execute Action: Search Query Catalog"→ "Search Query Catalog"
|
|
110
124
|
* "Agent Validation" → "Validation"
|
|
111
125
|
*/
|
|
126
|
+
export declare function ShortLabel(n: FlowNode): string;
|
|
127
|
+
/** @deprecated Use {@link ShortLabel}. */
|
|
112
128
|
export declare function shortLabel(n: FlowNode): string;
|
|
129
|
+
export declare function FormatDuration(seconds: number): string;
|
|
130
|
+
/** @deprecated Use {@link FormatDuration}. */
|
|
113
131
|
export declare function formatDuration(seconds: number): string;
|
|
114
132
|
//# sourceMappingURL=agent-run-flow.model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-run-flow.model.d.ts","sourceRoot":"","sources":["../../../../../src/lib/custom/ai-agent-run/flow/agent-run-flow.model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-run-flow.model.d.ts","sourceRoot":"","sources":["../../../../../src/lib/custom/ai-agent-run/flow/agent-run-flow.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAuB,MAAM,+BAA+B,CAAC;AAG5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAAE;AAExE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GACpB,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;AAE9F,MAAM,WAAW,QAAQ;IACvB,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,sFAAsF;IACtF,GAAG,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACnC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,2FAA2F;AAC3F,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAGpD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAGnD,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAGlD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAGnD,CAAC;AAmIF;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,SAAS,CAAC,CAepB;AAED,8CAA8C;AAC9C,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,SAAS,CAAC,CAEpB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAiB3D;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAE3D;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,CAMhE;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,CAEhE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAIjD;AAED,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAEjD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAI7C;AAED,uCAAuC;AACvC,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE7C;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAGlD;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAO/C;AAED,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAQ9C;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAE9C;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|