@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":"create-sub-agent-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/create-sub-agent-dialog.component.ts","../../../../src/lib/custom/AIAgents/create-sub-agent-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef, ViewContainerRef, Output, EventEmitter } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Subject, BehaviorSubject, takeUntil } from 'rxjs';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { MJAIAgentTypeEntity, MJAIAgentPromptEntity, MJAIAgentActionEntity, MJActionEntity } from '@memberjunction/core-entities';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { AIAgentManagementService } from './ai-agent-management.service';\nimport { MJAIPromptEntityExtended, MJAIAgentEntityExtended } from \"@memberjunction/ai-core-plus\";\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nexport interface CreateSubAgentConfig {\n /** Title for the dialog */\n title?: string;\n /** Initial name for the sub-agent */\n initialName?: string;\n /** Pre-selected agent type ID */\n initialTypeID?: string;\n /** Parent agent ID for relationship */\n parentAgentId: string;\n /** Parent agent name for display */\n parentAgentName?: string;\n}\n\nexport interface CreateSubAgentResult {\n /** Created sub-agent entity (not saved to database) */\n subAgent: MJAIAgentEntityExtended;\n /** Agent prompt link entities (not saved to database) */\n agentPrompts?: MJAIAgentPromptEntity[];\n /** Agent action link entities (not saved to database) */\n agentActions?: MJAIAgentActionEntity[];\n /** Any new prompts created within the dialog */\n newPrompts?: MJAIPromptEntityExtended[];\n /** Any new prompt templates created within the dialog */\n newPromptTemplates?: any[];\n /** Any new template contents created within the dialog */\n newTemplateContents?: any[];\n}\n\n/**\n * Dialog for creating new AI Sub-Agents with essential fields, actions, and prompts management.\n * Creates entities but does not save them - returns entities for parent to add to PendingRecords.\n * This ensures atomicity with the parent form's save operation.\n */\n@Component({\n standalone: false,\n selector: 'mj-create-sub-agent-dialog',\n templateUrl: './create-sub-agent-dialog.component.html',\n styleUrls: ['./create-sub-agent-dialog.component.css']\n})\nexport class CreateSubAgentDialogComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n \n // Configuration\n config: CreateSubAgentConfig = {} as CreateSubAgentConfig;\n \n // State management\n private destroy$ = new Subject<void>();\n public result = new Subject<CreateSubAgentResult | null>();\n \n // Form and validation\n subAgentForm: FormGroup;\n isLoading$ = new BehaviorSubject<boolean>(false);\n isSaving$ = new BehaviorSubject<boolean>(false);\n \n // Data\n availableAgentTypes$ = new BehaviorSubject<MJAIAgentTypeEntity[]>([]);\n availablePrompts$ = new BehaviorSubject<MJAIPromptEntityExtended[]>([]);\n availableActions$ = new BehaviorSubject<MJActionEntity[]>([]);\n \n // Entities (not saved to database)\n subAgentEntity: MJAIAgentEntityExtended | null = null;\n linkedPrompts: MJAIPromptEntityExtended[] = [];\n linkedActions: MJActionEntity[] = [];\n \n // Link entities for database relationships\n agentPromptLinks: MJAIAgentPromptEntity[] = [];\n agentActionLinks: MJAIAgentActionEntity[] = [];\n \n // Storage for new entities created within dialog\n newlyCreatedPrompts: MJAIPromptEntityExtended[] = [];\n newlyCreatedPromptTemplates: any[] = [];\n newlyCreatedTemplateContents: any[] = [];\n\n @Output() DialogClose = new EventEmitter<void>();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private agentManagementService: AIAgentManagementService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n this.subAgentForm = this.createForm();\n }\n\n ngOnInit() {\n this.loadInitialData();\n this.setupFormWatching();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createForm(): FormGroup {\n return new FormGroup({\n name: new FormControl(this.config.initialName || '', [Validators.required]),\n description: new FormControl(''),\n typeID: new FormControl(this.config.initialTypeID || '', [Validators.required]),\n status: new FormControl('Pending'),\n executionMode: new FormControl('Sequential'),\n purpose: new FormControl(''),\n userMessage: new FormControl(''),\n // systemMessage: new FormControl(''), // SystemMessage does not exist on MJAIAgentEntity\n modelSelectionMode: new FormControl('Agent Type'),\n temperature: new FormControl(0.1),\n topP: new FormControl(0.1),\n topK: new FormControl(40),\n maxTokens: new FormControl(4000),\n enableCaching: new FormControl(false),\n cacheTTL: new FormControl(3600)\n });\n }\n\n private setupFormWatching() {\n // Watch for form changes to update entity\n this.subAgentForm.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(formValue => {\n this.updateSubAgentEntity(formValue);\n });\n }\n\n private async loadInitialData() {\n this.isLoading$.next(true);\n \n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n \n // Load all data in a single batch for better performance\n const results = await rv.RunViews([\n // Agent types (index 0)\n {\n EntityName: 'MJ: AI Agent Types',\n OrderBy: 'Name ASC',\n ResultType: 'entity_object'\n },\n // Available prompts (index 1)\n {\n EntityName: 'MJ: AI Prompts',\n ExtraFilter: `Status = 'Active'`,\n OrderBy: 'Name ASC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n // Available actions (index 2)\n {\n EntityName: 'MJ: Actions',\n ExtraFilter: `Status = 'Active'`,\n OrderBy: 'Name ASC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n }\n ]);\n\n // Process agent types (index 0)\n if (results[0].Success && results[0].Results) {\n this.availableAgentTypes$.next(results[0].Results as MJAIAgentTypeEntity[]);\n \n // Set default type if not specified\n if (!this.config.initialTypeID && results[0].Results.length > 0) {\n this.subAgentForm.patchValue({ typeID: results[0].Results[0].ID });\n }\n }\n\n // Process available prompts (index 1)\n if (results[1].Success && results[1].Results) {\n this.availablePrompts$.next(results[1].Results as MJAIPromptEntityExtended[]);\n }\n\n // Process available actions (index 2)\n const actionsResult = results[2];\n\n if (actionsResult.Success && actionsResult.Results) {\n this.availableActions$.next(actionsResult.Results);\n }\n\n // Create the sub-agent entity\n const md = this.ProviderToUse;\n this.subAgentEntity = await md.GetEntityObject<MJAIAgentEntityExtended>('MJ: AI Agents');\n this.subAgentEntity.NewRecord();\n \n // Set default values\n this.subAgentEntity.Status = 'Pending';\n this.subAgentEntity.ExecutionMode = 'Sequential';\n this.subAgentEntity.ExposeAsAction = false; // Database constraint for sub-agents\n this.subAgentEntity.ParentID = this.config.parentAgentId;\n this.subAgentEntity.ModelSelectionMode = 'Agent Type';\n this.subAgentEntity.Set('Temperature', 0.1);\n this.subAgentEntity.Set('TopP', 0.1);\n this.subAgentEntity.Set('TopK', 40);\n this.subAgentEntity.Set('MaxTokensPerRun', 4000);\n this.subAgentEntity.Set('EnableCaching', false);\n this.subAgentEntity.Set('CacheTTLSeconds', 3600);\n\n // Update form with initial values\n this.updateSubAgentEntity(this.subAgentForm.value);\n\n } catch (error) {\n console.error('Error loading sub-agent creation data:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error loading data for sub-agent creation',\n 'error',\n 3000\n );\n } finally {\n this.isLoading$.next(false);\n }\n }\n\n private updateSubAgentEntity(formValue: any) {\n if (!this.subAgentEntity) return;\n\n // Update entity with form values\n this.subAgentEntity.Name = formValue.name;\n this.subAgentEntity.Description = formValue.description || '';\n this.subAgentEntity.TypeID = formValue.typeID;\n this.subAgentEntity.Status = formValue.status;\n this.subAgentEntity.ExecutionMode = formValue.executionMode;\n this.subAgentEntity.Set('Purpose', formValue.purpose || '');\n this.subAgentEntity.Set('UserMessage', formValue.userMessage || '');\n // Note: SystemMessage does not exist on MJAIAgentEntityExtended, removing this line\n this.subAgentEntity.ModelSelectionMode = formValue.modelSelectionMode;\n this.subAgentEntity.Set('Temperature', formValue.temperature);\n this.subAgentEntity.Set('TopP', formValue.topP);\n this.subAgentEntity.Set('TopK', formValue.topK);\n this.subAgentEntity.Set('MaxTokensPerRun', formValue.maxTokens);\n this.subAgentEntity.Set('EnableCaching', formValue.enableCaching);\n this.subAgentEntity.Set('CacheTTLSeconds', formValue.cacheTTL);\n }\n\n public async addPrompt() {\n // Get currently linked prompt IDs\n const linkedPromptIds = this.linkedPrompts.map(p => p.ID);\n \n try {\n this.agentManagementService.openPromptSelectorDialog({\n title: 'Add Prompts to Sub-Agent',\n multiSelect: true,\n selectedPromptIds: [],\n showCreateNew: true,\n linkedPromptIds: linkedPromptIds,\n viewContainerRef: this.viewContainerRef\n }).subscribe({\n next: async (result) => {\n if (result && result.selectedPrompts.length > 0) {\n // Filter out already linked prompts\n const newPrompts = result.selectedPrompts.filter(prompt =>\n !linkedPromptIds.some(id => UUIDsEqual(id, prompt.ID))\n );\n \n if (newPrompts.length > 0) {\n // Add to UI\n this.linkedPrompts.push(...newPrompts);\n \n // Create agent prompt link entities\n const md = this.ProviderToUse;\n for (const prompt of newPrompts) {\n const agentPrompt = await md.GetEntityObject<MJAIAgentPromptEntity>('MJ: AI Agent Prompts');\n agentPrompt.NewRecord();\n agentPrompt.AgentID = this.subAgentEntity!.ID;\n agentPrompt.PromptID = prompt.ID;\n agentPrompt.Status = 'Active';\n agentPrompt.ExecutionOrder = this.agentPromptLinks.length + 1;\n \n this.agentPromptLinks.push(agentPrompt);\n }\n \n // Trigger change detection\n this.cdr.detectChanges();\n \n MJNotificationService.Instance.CreateSimpleNotification(\n `${newPrompts.length} prompt${newPrompts.length === 1 ? '' : 's'} added to sub-agent`,\n 'success',\n 3000\n );\n }\n } else if (result && result.createNew) {\n // User wants to create a new prompt\n await this.createNewPrompt();\n }\n },\n error: (error) => {\n console.error('Error opening prompt selector:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error opening prompt selector. Please try again.',\n 'error',\n 3000\n );\n }\n });\n } catch (error) {\n console.error('Error in addPrompt:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error adding prompts. Please try again.',\n 'error',\n 3000\n );\n }\n }\n\n public async createNewPrompt() {\n try {\n this.agentManagementService.openCreatePromptDialog({\n title: `Create New Prompt for ${this.subAgentEntity?.Name || 'Sub-Agent'}`,\n initialName: '',\n viewContainerRef: this.viewContainerRef\n }).subscribe({\n next: async (result) => {\n if (result && result.prompt) {\n try {\n // Store the newly created entities\n this.newlyCreatedPrompts.push(result.prompt);\n \n if (result.template) {\n this.newlyCreatedPromptTemplates.push(result.template);\n }\n \n if (result.templateContents && result.templateContents.length > 0) {\n this.newlyCreatedTemplateContents.push(...result.templateContents);\n }\n\n // Add to UI\n this.linkedPrompts.push(result.prompt);\n \n // Create agent prompt link entity\n const md = this.ProviderToUse;\n const agentPrompt = await md.GetEntityObject<MJAIAgentPromptEntity>('MJ: AI Agent Prompts');\n agentPrompt.NewRecord();\n agentPrompt.AgentID = this.subAgentEntity!.ID;\n agentPrompt.PromptID = result.prompt.ID;\n agentPrompt.Status = 'Active';\n agentPrompt.ExecutionOrder = this.agentPromptLinks.length + 1;\n \n this.agentPromptLinks.push(agentPrompt);\n\n // Trigger change detection\n this.cdr.detectChanges();\n\n MJNotificationService.Instance.CreateSimpleNotification(\n `New prompt \"${result.prompt.Name}\" created and linked to sub-agent`,\n 'success',\n 3000\n );\n } catch (error) {\n console.error('Error processing created prompt:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error processing created prompt. Please try again.',\n 'error',\n 3000\n );\n }\n }\n },\n error: (error) => {\n console.error('Error in create prompt dialog:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error opening prompt creation dialog. Please try again.',\n 'error',\n 3000\n );\n }\n });\n } catch (error) {\n console.error('Error in createNewPrompt:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error creating new prompt. Please try again.',\n 'error',\n 3000\n );\n }\n }\n\n public async addAction() {\n // Get currently linked action IDs\n const linkedActionIds = this.linkedActions.map(a => a.ID);\n \n try {\n this.agentManagementService.openAddActionDialog({\n agentId: this.subAgentEntity?.ID || '',\n agentName: this.subAgentEntity?.Name || 'Sub-Agent',\n existingActionIds: linkedActionIds,\n viewContainerRef: this.viewContainerRef\n }).subscribe({\n next: async (selectedActions) => {\n if (selectedActions && selectedActions.length > 0) {\n // Filter out already linked actions\n const newActions = selectedActions.filter(action =>\n !linkedActionIds.some(id => UUIDsEqual(id, action.ID))\n );\n \n if (newActions.length > 0) {\n // Add to UI\n this.linkedActions.push(...newActions);\n \n // Create agent action link entities\n const md = this.ProviderToUse;\n for (const action of newActions) {\n const agentAction = await md.GetEntityObject<MJAIAgentActionEntity>('MJ: AI Agent Actions');\n agentAction.NewRecord();\n agentAction.AgentID = this.subAgentEntity!.ID;\n agentAction.ActionID = action.ID;\n agentAction.Status = 'Active';\n \n this.agentActionLinks.push(agentAction);\n }\n \n // Trigger change detection\n this.cdr.detectChanges();\n \n MJNotificationService.Instance.CreateSimpleNotification(\n `${newActions.length} action${newActions.length === 1 ? '' : 's'} added to sub-agent`,\n 'success',\n 3000\n );\n }\n }\n },\n error: (error) => {\n console.error('Error in add action dialog:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error opening action selection dialog. Please try again.',\n 'error',\n 3000\n );\n }\n });\n } catch (error) {\n console.error('Error in addAction:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error adding actions. Please try again.',\n 'error',\n 3000\n );\n }\n }\n\n public removePrompt(prompt: MJAIPromptEntityExtended) {\n // Remove from UI\n const promptIndex = this.linkedPrompts.findIndex(p => UUIDsEqual(p.ID, prompt.ID));\n if (promptIndex >= 0) {\n this.linkedPrompts.splice(promptIndex, 1);\n }\n \n // Remove from link entities\n const linkIndex = this.agentPromptLinks.findIndex(ap => UUIDsEqual(ap.PromptID, prompt.ID));\n if (linkIndex >= 0) {\n this.agentPromptLinks.splice(linkIndex, 1);\n }\n \n // Remove from newly created prompts if it was created in this dialog\n const newPromptIndex = this.newlyCreatedPrompts.findIndex(p => UUIDsEqual(p.ID, prompt.ID));\n if (newPromptIndex >= 0) {\n this.newlyCreatedPrompts.splice(newPromptIndex, 1);\n }\n \n this.cdr.detectChanges();\n \n MJNotificationService.Instance.CreateSimpleNotification(\n `Prompt \"${prompt.Name}\" removed from sub-agent`,\n 'info',\n 3000\n );\n }\n\n public removeAction(action: MJActionEntity) {\n // Remove from UI\n const actionIndex = this.linkedActions.findIndex(a => UUIDsEqual(a.ID, action.ID));\n if (actionIndex >= 0) {\n this.linkedActions.splice(actionIndex, 1);\n }\n \n // Remove from link entities\n const linkIndex = this.agentActionLinks.findIndex(aa => UUIDsEqual(aa.ActionID, action.ID));\n if (linkIndex >= 0) {\n this.agentActionLinks.splice(linkIndex, 1);\n }\n \n this.cdr.detectChanges();\n \n MJNotificationService.Instance.CreateSimpleNotification(\n `Action \"${action.Name}\" removed from sub-agent`,\n 'info',\n 3000\n );\n }\n\n public async save() {\n if (!this.subAgentForm.valid || !this.subAgentEntity) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Please fill in all required fields',\n 'warning',\n 3000\n );\n return;\n }\n\n this.isSaving$.next(true);\n\n try {\n // Update entity with final form values\n this.updateSubAgentEntity(this.subAgentForm.value);\n\n // Return the created entities (not saved to database)\n const result: CreateSubAgentResult = {\n subAgent: this.subAgentEntity,\n agentPrompts: this.agentPromptLinks,\n agentActions: this.agentActionLinks,\n newPrompts: this.newlyCreatedPrompts.length > 0 ? this.newlyCreatedPrompts : undefined,\n newPromptTemplates: this.newlyCreatedPromptTemplates.length > 0 ? this.newlyCreatedPromptTemplates : undefined,\n newTemplateContents: this.newlyCreatedTemplateContents.length > 0 ? this.newlyCreatedTemplateContents : undefined\n };\n\n this.result.next(result);\n this.DialogClose.emit();\n\n } catch (error) {\n console.error('Error preparing sub-agent for creation:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error preparing sub-agent for creation',\n 'error',\n 3000\n );\n } finally {\n this.isSaving$.next(false);\n }\n }\n\n public cancel() {\n this.result.next(null);\n this.DialogClose.emit();\n }\n\n // Helper methods for UI\n public getAgentIcon(): string {\n return this.subAgentEntity?.IconClass || 'fa-solid fa-robot';\n }\n\n public getPromptIcon(): string {\n return 'fa-solid fa-comments';\n }\n\n public getActionIcon(): string {\n return 'fa-solid fa-bolt';\n }\n\n public get linkedPromptCount(): number {\n return this.linkedPrompts.length;\n }\n\n public get linkedActionCount(): number {\n return this.linkedActions.length;\n }\n}","<div class=\"sub-agent-dialog\">\n <div class=\"sub-agent-header\">\n <h2 class=\"dialog-title\">\n <i class=\"fa-solid fa-robot\"></i>\n {{ config.title || 'Create New Sub-Agent' }}\n </h2>\n @if (config.parentAgentName) {\n <p class=\"parent-info\">\n <i class=\"fa-solid fa-link\"></i>\n Sub-agent of: <strong>{{ config.parentAgentName }}</strong>\n </p>\n }\n </div>\n\n @if (isLoading$ | async) {\n <div class=\"loading-container\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>Loading sub-agent creation form...</span>\n </div>\n } @else {\n <form [formGroup]=\"subAgentForm\" class=\"sub-agent-form\">\n <!-- Basic Information Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Basic Information\n </h3>\n \n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"name\">Name *</label>\n <input type=\"text\" id=\"name\" formControlName=\"name\" class=\"form-control\" placeholder=\"Enter sub-agent name\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"typeID\">Type *</label>\n <select id=\"typeID\" formControlName=\"typeID\" class=\"form-control\">\n <option value=\"\">Select agent type...</option>\n @for (type of availableAgentTypes$ | async; track type.ID) {\n <option [value]=\"type.ID\">{{ type.Name }}</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"description\">Description</label>\n <textarea id=\"description\" formControlName=\"description\" class=\"form-control\" rows=\"2\" placeholder=\"Enter description\"></textarea>\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"status\">Status</label>\n <select id=\"status\" formControlName=\"status\" class=\"form-control\">\n <option value=\"Pending\">Pending</option>\n <option value=\"Active\">Active</option>\n <option value=\"Disabled\">Disabled</option>\n </select>\n </div>\n \n <div class=\"form-group\">\n <label for=\"executionMode\">Execution Mode</label>\n <select id=\"executionMode\" formControlName=\"executionMode\" class=\"form-control\">\n <option value=\"Sequential\">Sequential</option>\n <option value=\"Parallel\">Parallel</option>\n </select>\n </div>\n </div>\n </div>\n\n <!-- Purpose & Messages Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-bullseye\"></i>\n Purpose & Messages\n </h3>\n \n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"purpose\">Purpose</label>\n <input type=\"text\" id=\"purpose\" formControlName=\"purpose\" class=\"form-control\" placeholder=\"Enter the purpose of this sub-agent\">\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"userMessage\">User Message</label>\n <textarea id=\"userMessage\" formControlName=\"userMessage\" class=\"form-control\" rows=\"3\" placeholder=\"Enter user message\"></textarea>\n </div>\n </div>\n\n <!-- System Message field removed - property does not exist on MJAIAgentEntity -->\n </div>\n\n <!-- Model Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-cogs\"></i>\n Model Configuration\n </h3>\n \n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"modelSelectionMode\">Model Selection Mode</label>\n <select id=\"modelSelectionMode\" formControlName=\"modelSelectionMode\" class=\"form-control\">\n <option value=\"Agent Type\">Agent Type</option>\n <option value=\"Agent\">Agent</option>\n </select>\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"temperature\">Temperature</label>\n <input type=\"number\" id=\"temperature\" formControlName=\"temperature\" class=\"form-control\" min=\"0\" max=\"2\" step=\"0.1\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"topP\">Top P</label>\n <input type=\"number\" id=\"topP\" formControlName=\"topP\" class=\"form-control\" min=\"0\" max=\"1\" step=\"0.1\">\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"topK\">Top K</label>\n <input type=\"number\" id=\"topK\" formControlName=\"topK\" class=\"form-control\" min=\"1\" max=\"100\" step=\"1\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"maxTokens\">Max Tokens</label>\n <input type=\"number\" id=\"maxTokens\" formControlName=\"maxTokens\" class=\"form-control\" min=\"1\" max=\"32000\" step=\"1\">\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"enableCaching\">\n <input type=\"checkbox\" id=\"enableCaching\" formControlName=\"enableCaching\">\n Enable Caching\n </label>\n </div>\n \n <div class=\"form-group\">\n <label for=\"cacheTTL\">Cache TTL (seconds)</label>\n <input type=\"number\" id=\"cacheTTL\" formControlName=\"cacheTTL\" class=\"form-control\" min=\"60\" max=\"86400\" step=\"60\">\n </div>\n </div>\n </div>\n\n <!-- Prompts Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Prompts ({{ linkedPromptCount }})\n </h3>\n \n <div class=\"section-actions\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Existing Prompt\n </button>\n <button type=\"button\" class=\"btn btn-success btn-sm\" (click)=\"createNewPrompt()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create New Prompt\n </button>\n </div>\n\n @if (linkedPrompts.length > 0) {\n <div class=\"linked-items\">\n @for (prompt of linkedPrompts; track prompt.ID) {\n <div class=\"linked-item prompt-item\">\n <div class=\"item-info\">\n <i class=\"fa-solid fa-comments\"></i>\n <span class=\"item-name\">{{ prompt.Name }}</span>\n @if (prompt.Description) {\n <span class=\"item-description\">{{ prompt.Description }}</span>\n }\n </div>\n <button type=\"button\" class=\"btn btn-danger btn-xs\" (click)=\"removePrompt(prompt)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n </div>\n } @else {\n <mj-empty-state\n Icon=\"fa-solid fa-comments\"\n Title=\"No prompts added yet. Click the buttons above to add prompts.\"\n Size=\"compact\" />\n }\n </div>\n\n <!-- Actions Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-bolt\"></i>\n Actions ({{ linkedActionCount }})\n </h3>\n \n <div class=\"section-actions\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"addAction()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Action\n </button>\n </div>\n\n @if (linkedActions.length > 0) {\n <div class=\"linked-items\">\n @for (action of linkedActions; track action.ID) {\n <div class=\"linked-item action-item\">\n <div class=\"item-info\">\n <i class=\"fa-solid fa-bolt\"></i>\n <span class=\"item-name\">{{ action.Name }}</span>\n @if (action.Description) {\n <span class=\"item-description\">{{ action.Description }}</span>\n }\n </div>\n <button type=\"button\" class=\"btn btn-danger btn-xs\" (click)=\"removeAction(action)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n </div>\n } @else {\n <mj-empty-state\n Icon=\"fa-solid fa-bolt\"\n Title=\"No actions added yet. Click the button above to add actions.\"\n Size=\"compact\" />\n }\n </div>\n </form>\n }\n\n <!-- Dialog Actions -->\n <div class=\"dialog-actions\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\" [disabled]=\"isSaving$ | async\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"(isSaving$ | async) || !subAgentForm.valid\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Creating...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Create Sub-Agent\n }\n </button>\n </div>\n</div>"]}
|
|
1
|
+
{"version":3,"file":"create-sub-agent-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/create-sub-agent-dialog.component.ts","../../../../src/lib/custom/AIAgents/create-sub-agent-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef, ViewContainerRef, Output, EventEmitter } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Subject, BehaviorSubject, takeUntil } from 'rxjs';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { MJAIAgentTypeEntity, MJAIAgentPromptEntity, MJAIAgentActionEntity, MJActionEntity } from '@memberjunction/core-entities';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { AIAgentManagementService } from './ai-agent-management.service';\nimport { MJAIPromptEntityExtended, MJAIAgentEntityExtended } from \"@memberjunction/ai-core-plus\";\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nexport interface CreateSubAgentConfig {\n /** Title for the dialog */\n title?: string; // case-violation-ok-legacy-back-compat: optional, and the old name is also read off a value the checker cannot type; renaming it stays assignable and silently yields undefined\n /** Initial name for the sub-agent */\n InitialName?: string;\n /** Pre-selected agent type ID */\n InitialTypeID?: string;\n /** Parent agent ID for relationship */\n ParentAgentId: string;\n /** Parent agent name for display */\n ParentAgentName?: string;\n}\n\nexport interface CreateSubAgentResult {\n /** Created sub-agent entity (not saved to database) */\n SubAgent: MJAIAgentEntityExtended;\n /** Agent prompt link entities (not saved to database) */\n AgentPrompts?: MJAIAgentPromptEntity[];\n /** Agent action link entities (not saved to database) */\n AgentActions?: MJAIAgentActionEntity[];\n /** Any new prompts created within the dialog */\n NewPrompts?: MJAIPromptEntityExtended[];\n /** Any new prompt templates created within the dialog */\n NewPromptTemplates?: any[];\n /** Any new template contents created within the dialog */\n NewTemplateContents?: any[];\n}\n\n/**\n * Dialog for creating new AI Sub-Agents with essential fields, actions, and prompts management.\n * Creates entities but does not save them - returns entities for parent to add to PendingRecords.\n * This ensures atomicity with the parent form's save operation.\n */\n@Component({\n standalone: false,\n selector: 'mj-create-sub-agent-dialog',\n templateUrl: './create-sub-agent-dialog.component.html',\n styleUrls: ['./create-sub-agent-dialog.component.css']\n})\nexport class CreateSubAgentDialogComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n \n // Configuration\n config: CreateSubAgentConfig = {} as CreateSubAgentConfig;\n \n // State management\n private destroy$ = new Subject<void>();\n public Result = new Subject<CreateSubAgentResult | null>();\n\n /** @deprecated Use {@link Result}. */\n public get result() {\n return this.Result;\n }\n /** @deprecated Use {@link Result}. */\n public set result(value) {\n this.Result = value;\n }\n \n // Form and validation\n SubAgentForm: FormGroup;\n\n /** @deprecated Use {@link SubAgentForm}. */\n get subAgentForm(): FormGroup {\n return this.SubAgentForm;\n }\n /** @deprecated Use {@link SubAgentForm}. */\n set subAgentForm(value: FormGroup) {\n this.SubAgentForm = value;\n }\n IsLoading$ = new BehaviorSubject<boolean>(false);\n\n /** @deprecated Use {@link IsLoading$}. */\n get isLoading$() {\n return this.IsLoading$;\n }\n /** @deprecated Use {@link IsLoading$}. */\n set isLoading$(value) {\n this.IsLoading$ = value;\n }\n IsSaving$ = new BehaviorSubject<boolean>(false);\n\n /** @deprecated Use {@link IsSaving$}. */\n get isSaving$() {\n return this.IsSaving$;\n }\n /** @deprecated Use {@link IsSaving$}. */\n set isSaving$(value) {\n this.IsSaving$ = value;\n }\n \n // Data\n AvailableAgentTypes$ = new BehaviorSubject<MJAIAgentTypeEntity[]>([]);\n\n /** @deprecated Use {@link AvailableAgentTypes$}. */\n get availableAgentTypes$() {\n return this.AvailableAgentTypes$;\n }\n /** @deprecated Use {@link AvailableAgentTypes$}. */\n set availableAgentTypes$(value) {\n this.AvailableAgentTypes$ = value;\n }\n AvailablePrompts$ = new BehaviorSubject<MJAIPromptEntityExtended[]>([]);\n\n /** @deprecated Use {@link AvailablePrompts$}. */\n get availablePrompts$() {\n return this.AvailablePrompts$;\n }\n /** @deprecated Use {@link AvailablePrompts$}. */\n set availablePrompts$(value) {\n this.AvailablePrompts$ = value;\n }\n AvailableActions$ = new BehaviorSubject<MJActionEntity[]>([]);\n\n /** @deprecated Use {@link AvailableActions$}. */\n get availableActions$() {\n return this.AvailableActions$;\n }\n /** @deprecated Use {@link AvailableActions$}. */\n set availableActions$(value) {\n this.AvailableActions$ = value;\n }\n \n // Entities (not saved to database)\n SubAgentEntity: MJAIAgentEntityExtended | null = null;\n\n /** @deprecated Use {@link SubAgentEntity}. */\n get subAgentEntity(): MJAIAgentEntityExtended | null {\n return this.SubAgentEntity;\n }\n /** @deprecated Use {@link SubAgentEntity}. */\n set subAgentEntity(value: MJAIAgentEntityExtended | null) {\n this.SubAgentEntity = value;\n }\n LinkedPrompts: MJAIPromptEntityExtended[] = [];\n\n /** @deprecated Use {@link LinkedPrompts}. */\n get linkedPrompts(): MJAIPromptEntityExtended[] {\n return this.LinkedPrompts;\n }\n /** @deprecated Use {@link LinkedPrompts}. */\n set linkedPrompts(value: MJAIPromptEntityExtended[]) {\n this.LinkedPrompts = value;\n }\n LinkedActions: MJActionEntity[] = [];\n\n /** @deprecated Use {@link LinkedActions}. */\n get linkedActions(): MJActionEntity[] {\n return this.LinkedActions;\n }\n /** @deprecated Use {@link LinkedActions}. */\n set linkedActions(value: MJActionEntity[]) {\n this.LinkedActions = value;\n }\n \n // Link entities for database relationships\n AgentPromptLinks: MJAIAgentPromptEntity[] = [];\n\n /** @deprecated Use {@link AgentPromptLinks}. */\n get agentPromptLinks(): MJAIAgentPromptEntity[] {\n return this.AgentPromptLinks;\n }\n /** @deprecated Use {@link AgentPromptLinks}. */\n set agentPromptLinks(value: MJAIAgentPromptEntity[]) {\n this.AgentPromptLinks = value;\n }\n AgentActionLinks: MJAIAgentActionEntity[] = [];\n\n /** @deprecated Use {@link AgentActionLinks}. */\n get agentActionLinks(): MJAIAgentActionEntity[] {\n return this.AgentActionLinks;\n }\n /** @deprecated Use {@link AgentActionLinks}. */\n set agentActionLinks(value: MJAIAgentActionEntity[]) {\n this.AgentActionLinks = value;\n }\n \n // Storage for new entities created within dialog\n NewlyCreatedPrompts: MJAIPromptEntityExtended[] = [];\n\n /** @deprecated Use {@link NewlyCreatedPrompts}. */\n get newlyCreatedPrompts(): MJAIPromptEntityExtended[] {\n return this.NewlyCreatedPrompts;\n }\n /** @deprecated Use {@link NewlyCreatedPrompts}. */\n set newlyCreatedPrompts(value: MJAIPromptEntityExtended[]) {\n this.NewlyCreatedPrompts = value;\n }\n NewlyCreatedPromptTemplates: any[] = [];\n\n /** @deprecated Use {@link NewlyCreatedPromptTemplates}. */\n get newlyCreatedPromptTemplates(): any[] {\n return this.NewlyCreatedPromptTemplates;\n }\n /** @deprecated Use {@link NewlyCreatedPromptTemplates}. */\n set newlyCreatedPromptTemplates(value: any[]) {\n this.NewlyCreatedPromptTemplates = value;\n }\n NewlyCreatedTemplateContents: any[] = [];\n\n /** @deprecated Use {@link NewlyCreatedTemplateContents}. */\n get newlyCreatedTemplateContents(): any[] {\n return this.NewlyCreatedTemplateContents;\n }\n /** @deprecated Use {@link NewlyCreatedTemplateContents}. */\n set newlyCreatedTemplateContents(value: any[]) {\n this.NewlyCreatedTemplateContents = value;\n }\n\n @Output() DialogClose = new EventEmitter<void>();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private agentManagementService: AIAgentManagementService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n this.SubAgentForm = this.createForm();\n }\n\n ngOnInit() {\n this.loadInitialData();\n this.setupFormWatching();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createForm(): FormGroup {\n return new FormGroup({\n name: new FormControl(this.config.InitialName || '', [Validators.required]),\n description: new FormControl(''),\n typeID: new FormControl(this.config.InitialTypeID || '', [Validators.required]),\n status: new FormControl('Pending'),\n executionMode: new FormControl('Sequential'),\n purpose: new FormControl(''),\n userMessage: new FormControl(''),\n // systemMessage: new FormControl(''), // SystemMessage does not exist on MJAIAgentEntity\n modelSelectionMode: new FormControl('Agent Type'),\n temperature: new FormControl(0.1),\n topP: new FormControl(0.1),\n topK: new FormControl(40),\n maxTokens: new FormControl(4000),\n enableCaching: new FormControl(false),\n cacheTTL: new FormControl(3600)\n });\n }\n\n private setupFormWatching() {\n // Watch for form changes to update entity\n this.SubAgentForm.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(formValue => {\n this.updateSubAgentEntity(formValue);\n });\n }\n\n private async loadInitialData() {\n this.IsLoading$.next(true);\n \n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n \n // Load all data in a single batch for better performance\n const results = await rv.RunViews([\n // Agent types (index 0)\n {\n EntityName: 'MJ: AI Agent Types',\n OrderBy: 'Name ASC',\n ResultType: 'entity_object'\n },\n // Available prompts (index 1)\n {\n EntityName: 'MJ: AI Prompts',\n ExtraFilter: `Status = 'Active'`,\n OrderBy: 'Name ASC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n // Available actions (index 2)\n {\n EntityName: 'MJ: Actions',\n ExtraFilter: `Status = 'Active'`,\n OrderBy: 'Name ASC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n }\n ]);\n\n // Process agent types (index 0)\n if (results[0].Success && results[0].Results) {\n this.AvailableAgentTypes$.next(results[0].Results as MJAIAgentTypeEntity[]);\n \n // Set default type if not specified\n if (!this.config.InitialTypeID && results[0].Results.length > 0) {\n this.SubAgentForm.patchValue({ typeID: results[0].Results[0].ID });\n }\n }\n\n // Process available prompts (index 1)\n if (results[1].Success && results[1].Results) {\n this.AvailablePrompts$.next(results[1].Results as MJAIPromptEntityExtended[]);\n }\n\n // Process available actions (index 2)\n const actionsResult = results[2];\n\n if (actionsResult.Success && actionsResult.Results) {\n this.AvailableActions$.next(actionsResult.Results);\n }\n\n // Create the sub-agent entity\n const md = this.ProviderToUse;\n this.SubAgentEntity = await md.GetEntityObject<MJAIAgentEntityExtended>('MJ: AI Agents');\n this.SubAgentEntity.NewRecord();\n \n // Set default values\n this.SubAgentEntity.Status = 'Pending';\n this.SubAgentEntity.ExecutionMode = 'Sequential';\n this.SubAgentEntity.ExposeAsAction = false; // Database constraint for sub-agents\n this.SubAgentEntity.ParentID = this.config.ParentAgentId;\n this.SubAgentEntity.ModelSelectionMode = 'Agent Type';\n this.SubAgentEntity.Set('Temperature', 0.1);\n this.SubAgentEntity.Set('TopP', 0.1);\n this.SubAgentEntity.Set('TopK', 40);\n this.SubAgentEntity.Set('MaxTokensPerRun', 4000);\n this.SubAgentEntity.Set('EnableCaching', false);\n this.SubAgentEntity.Set('CacheTTLSeconds', 3600);\n\n // Update form with initial values\n this.updateSubAgentEntity(this.SubAgentForm.value);\n\n } catch (error) {\n console.error('Error loading sub-agent creation data:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error loading data for sub-agent creation',\n 'error',\n 3000\n );\n } finally {\n this.IsLoading$.next(false);\n }\n }\n\n private updateSubAgentEntity(formValue: any) {\n if (!this.SubAgentEntity) return;\n\n // Update entity with form values\n this.SubAgentEntity.Name = formValue.name;\n this.SubAgentEntity.Description = formValue.description || '';\n this.SubAgentEntity.TypeID = formValue.typeID;\n this.SubAgentEntity.Status = formValue.status;\n this.SubAgentEntity.ExecutionMode = formValue.executionMode;\n this.SubAgentEntity.Set('Purpose', formValue.purpose || '');\n this.SubAgentEntity.Set('UserMessage', formValue.userMessage || '');\n // Note: SystemMessage does not exist on MJAIAgentEntityExtended, removing this line\n this.SubAgentEntity.ModelSelectionMode = formValue.modelSelectionMode;\n this.SubAgentEntity.Set('Temperature', formValue.temperature);\n this.SubAgentEntity.Set('TopP', formValue.topP);\n this.SubAgentEntity.Set('TopK', formValue.topK);\n this.SubAgentEntity.Set('MaxTokensPerRun', formValue.maxTokens);\n this.SubAgentEntity.Set('EnableCaching', formValue.enableCaching);\n this.SubAgentEntity.Set('CacheTTLSeconds', formValue.cacheTTL);\n }\n\n public async AddPrompt() {\n // Get currently linked prompt IDs\n const linkedPromptIds = this.LinkedPrompts.map(p => p.ID);\n \n try {\n this.agentManagementService.openPromptSelectorDialog({\n title: 'Add Prompts to Sub-Agent',\n multiSelect: true,\n selectedPromptIds: [],\n showCreateNew: true,\n linkedPromptIds: linkedPromptIds,\n viewContainerRef: this.viewContainerRef\n }).subscribe({\n next: async (result) => {\n if (result && result.SelectedPrompts.length > 0) {\n // Filter out already linked prompts\n const newPrompts = result.SelectedPrompts.filter(prompt =>\n !linkedPromptIds.some(id => UUIDsEqual(id, prompt.ID))\n );\n \n if (newPrompts.length > 0) {\n // Add to UI\n this.LinkedPrompts.push(...newPrompts);\n \n // Create agent prompt link entities\n const md = this.ProviderToUse;\n for (const prompt of newPrompts) {\n const agentPrompt = await md.GetEntityObject<MJAIAgentPromptEntity>('MJ: AI Agent Prompts');\n agentPrompt.NewRecord();\n agentPrompt.AgentID = this.SubAgentEntity!.ID;\n agentPrompt.PromptID = prompt.ID;\n agentPrompt.Status = 'Active';\n agentPrompt.ExecutionOrder = this.AgentPromptLinks.length + 1;\n \n this.AgentPromptLinks.push(agentPrompt);\n }\n \n // Trigger change detection\n this.cdr.detectChanges();\n \n MJNotificationService.Instance.CreateSimpleNotification(\n `${newPrompts.length} prompt${newPrompts.length === 1 ? '' : 's'} added to sub-agent`,\n 'success',\n 3000\n );\n }\n } else if (result && result.createNew) {\n // User wants to create a new prompt\n await this.CreateNewPrompt();\n }\n },\n error: (error) => {\n console.error('Error opening prompt selector:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error opening prompt selector. Please try again.',\n 'error',\n 3000\n );\n }\n });\n } catch (error) {\n console.error('Error in addPrompt:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error adding prompts. Please try again.',\n 'error',\n 3000\n );\n }\n }\n\n /** @deprecated Use {@link AddPrompt}. */\n public async addPrompt() {\n return this.AddPrompt();\n }\n\n public async CreateNewPrompt() {\n try {\n this.agentManagementService.openCreatePromptDialog({\n title: `Create New Prompt for ${this.SubAgentEntity?.Name || 'Sub-Agent'}`,\n initialName: '',\n viewContainerRef: this.viewContainerRef\n }).subscribe({\n next: async (result) => {\n if (result && result.prompt) {\n try {\n // Store the newly created entities\n this.NewlyCreatedPrompts.push(result.prompt);\n \n if (result.Template) {\n this.NewlyCreatedPromptTemplates.push(result.Template);\n }\n \n if (result.templateContents && result.templateContents.length > 0) {\n this.NewlyCreatedTemplateContents.push(...result.templateContents);\n }\n\n // Add to UI\n this.LinkedPrompts.push(result.prompt);\n \n // Create agent prompt link entity\n const md = this.ProviderToUse;\n const agentPrompt = await md.GetEntityObject<MJAIAgentPromptEntity>('MJ: AI Agent Prompts');\n agentPrompt.NewRecord();\n agentPrompt.AgentID = this.SubAgentEntity!.ID;\n agentPrompt.PromptID = result.prompt.ID;\n agentPrompt.Status = 'Active';\n agentPrompt.ExecutionOrder = this.AgentPromptLinks.length + 1;\n \n this.AgentPromptLinks.push(agentPrompt);\n\n // Trigger change detection\n this.cdr.detectChanges();\n\n MJNotificationService.Instance.CreateSimpleNotification(\n `New prompt \"${result.prompt.Name}\" created and linked to sub-agent`,\n 'success',\n 3000\n );\n } catch (error) {\n console.error('Error processing created prompt:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error processing created prompt. Please try again.',\n 'error',\n 3000\n );\n }\n }\n },\n error: (error) => {\n console.error('Error in create prompt dialog:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error opening prompt creation dialog. Please try again.',\n 'error',\n 3000\n );\n }\n });\n } catch (error) {\n console.error('Error in createNewPrompt:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error creating new prompt. Please try again.',\n 'error',\n 3000\n );\n }\n }\n\n /** @deprecated Use {@link CreateNewPrompt}. */\n public async createNewPrompt() {\n return this.CreateNewPrompt();\n }\n\n public async AddAction() {\n // Get currently linked action IDs\n const linkedActionIds = this.LinkedActions.map(a => a.ID);\n \n try {\n this.agentManagementService.openAddActionDialog({\n agentId: this.SubAgentEntity?.ID || '',\n agentName: this.SubAgentEntity?.Name || 'Sub-Agent',\n existingActionIds: linkedActionIds,\n viewContainerRef: this.viewContainerRef\n }).subscribe({\n next: async (selectedActions) => {\n if (selectedActions && selectedActions.length > 0) {\n // Filter out already linked actions\n const newActions = selectedActions.filter(action =>\n !linkedActionIds.some(id => UUIDsEqual(id, action.ID))\n );\n \n if (newActions.length > 0) {\n // Add to UI\n this.LinkedActions.push(...newActions);\n \n // Create agent action link entities\n const md = this.ProviderToUse;\n for (const action of newActions) {\n const agentAction = await md.GetEntityObject<MJAIAgentActionEntity>('MJ: AI Agent Actions');\n agentAction.NewRecord();\n agentAction.AgentID = this.SubAgentEntity!.ID;\n agentAction.ActionID = action.ID;\n agentAction.Status = 'Active';\n \n this.AgentActionLinks.push(agentAction);\n }\n \n // Trigger change detection\n this.cdr.detectChanges();\n \n MJNotificationService.Instance.CreateSimpleNotification(\n `${newActions.length} action${newActions.length === 1 ? '' : 's'} added to sub-agent`,\n 'success',\n 3000\n );\n }\n }\n },\n error: (error) => {\n console.error('Error in add action dialog:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error opening action selection dialog. Please try again.',\n 'error',\n 3000\n );\n }\n });\n } catch (error) {\n console.error('Error in addAction:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error adding actions. Please try again.',\n 'error',\n 3000\n );\n }\n }\n\n /** @deprecated Use {@link AddAction}. */\n public async addAction() {\n return this.AddAction();\n }\n\n public RemovePrompt(prompt: MJAIPromptEntityExtended) {\n // Remove from UI\n const promptIndex = this.LinkedPrompts.findIndex(p => UUIDsEqual(p.ID, prompt.ID));\n if (promptIndex >= 0) {\n this.LinkedPrompts.splice(promptIndex, 1);\n }\n \n // Remove from link entities\n const linkIndex = this.AgentPromptLinks.findIndex(ap => UUIDsEqual(ap.PromptID, prompt.ID));\n if (linkIndex >= 0) {\n this.AgentPromptLinks.splice(linkIndex, 1);\n }\n \n // Remove from newly created prompts if it was created in this dialog\n const newPromptIndex = this.NewlyCreatedPrompts.findIndex(p => UUIDsEqual(p.ID, prompt.ID));\n if (newPromptIndex >= 0) {\n this.NewlyCreatedPrompts.splice(newPromptIndex, 1);\n }\n \n this.cdr.detectChanges();\n \n MJNotificationService.Instance.CreateSimpleNotification(\n `Prompt \"${prompt.Name}\" removed from sub-agent`,\n 'info',\n 3000\n );\n }\n\n /** @deprecated Use {@link RemovePrompt}. */\n public removePrompt(prompt: MJAIPromptEntityExtended) {\n return this.RemovePrompt(prompt);\n }\n\n public RemoveAction(action: MJActionEntity) {\n // Remove from UI\n const actionIndex = this.LinkedActions.findIndex(a => UUIDsEqual(a.ID, action.ID));\n if (actionIndex >= 0) {\n this.LinkedActions.splice(actionIndex, 1);\n }\n \n // Remove from link entities\n const linkIndex = this.AgentActionLinks.findIndex(aa => UUIDsEqual(aa.ActionID, action.ID));\n if (linkIndex >= 0) {\n this.AgentActionLinks.splice(linkIndex, 1);\n }\n \n this.cdr.detectChanges();\n \n MJNotificationService.Instance.CreateSimpleNotification(\n `Action \"${action.Name}\" removed from sub-agent`,\n 'info',\n 3000\n );\n }\n\n /** @deprecated Use {@link RemoveAction}. */\n public removeAction(action: MJActionEntity) {\n return this.RemoveAction(action);\n }\n\n public async save() {\n if (!this.SubAgentForm.valid || !this.SubAgentEntity) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Please fill in all required fields',\n 'warning',\n 3000\n );\n return;\n }\n\n this.IsSaving$.next(true);\n\n try {\n // Update entity with final form values\n this.updateSubAgentEntity(this.SubAgentForm.value);\n\n // Return the created entities (not saved to database)\n const result: CreateSubAgentResult = {\n SubAgent: this.SubAgentEntity,\n AgentPrompts: this.AgentPromptLinks,\n AgentActions: this.AgentActionLinks,\n NewPrompts: this.NewlyCreatedPrompts.length > 0 ? this.NewlyCreatedPrompts : undefined,\n NewPromptTemplates: this.NewlyCreatedPromptTemplates.length > 0 ? this.NewlyCreatedPromptTemplates : undefined,\n NewTemplateContents: this.NewlyCreatedTemplateContents.length > 0 ? this.NewlyCreatedTemplateContents : undefined\n };\n\n this.Result.next(result);\n this.DialogClose.emit();\n\n } catch (error) {\n console.error('Error preparing sub-agent for creation:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error preparing sub-agent for creation',\n 'error',\n 3000\n );\n } finally {\n this.IsSaving$.next(false);\n }\n }\n\n public cancel() {\n this.Result.next(null);\n this.DialogClose.emit();\n }\n\n // Helper methods for UI\n public GetAgentIcon(): string {\n return this.SubAgentEntity?.IconClass || 'fa-solid fa-robot';\n }\n\n /** @deprecated Use {@link GetAgentIcon}. */\n public getAgentIcon(): string {\n return this.GetAgentIcon();\n }\n\n public GetPromptIcon(): string {\n return 'fa-solid fa-comments';\n }\n\n /** @deprecated Use {@link GetPromptIcon}. */\n public getPromptIcon(): string {\n return this.GetPromptIcon();\n }\n\n public GetActionIcon(): string {\n return 'fa-solid fa-bolt';\n }\n\n /** @deprecated Use {@link GetActionIcon}. */\n public getActionIcon(): string {\n return this.GetActionIcon();\n }\n\n public get LinkedPromptCount(): number {\n return this.LinkedPrompts.length;\n }\n\n /** @deprecated Use {@link LinkedPromptCount}. */\n public get linkedPromptCount(): number {\n return this.LinkedPromptCount;\n }\n\n public get LinkedActionCount(): number {\n return this.LinkedActions.length;\n }\n\n /** @deprecated Use {@link LinkedActionCount}. */\n public get linkedActionCount(): number {\n return this.LinkedActionCount;\n }\n}","<div class=\"sub-agent-dialog\">\n <div class=\"sub-agent-header\">\n <h2 class=\"dialog-title\">\n <i class=\"fa-solid fa-robot\"></i>\n {{ config.title || 'Create New Sub-Agent' }}\n </h2>\n @if (config.ParentAgentName) {\n <p class=\"parent-info\">\n <i class=\"fa-solid fa-link\"></i>\n Sub-agent of: <strong>{{ config.ParentAgentName }}</strong>\n </p>\n }\n </div>\n\n @if (isLoading$ | async) {\n <div class=\"loading-container\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>Loading sub-agent creation form...</span>\n </div>\n } @else {\n <form [formGroup]=\"subAgentForm\" class=\"sub-agent-form\">\n <!-- Basic Information Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Basic Information\n </h3>\n \n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"name\">Name *</label>\n <input type=\"text\" id=\"name\" formControlName=\"name\" class=\"form-control\" placeholder=\"Enter sub-agent name\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"typeID\">Type *</label>\n <select id=\"typeID\" formControlName=\"typeID\" class=\"form-control\">\n <option value=\"\">Select agent type...</option>\n @for (type of availableAgentTypes$ | async; track type.ID) {\n <option [value]=\"type.ID\">{{ type.Name }}</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"description\">Description</label>\n <textarea id=\"description\" formControlName=\"description\" class=\"form-control\" rows=\"2\" placeholder=\"Enter description\"></textarea>\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"status\">Status</label>\n <select id=\"status\" formControlName=\"status\" class=\"form-control\">\n <option value=\"Pending\">Pending</option>\n <option value=\"Active\">Active</option>\n <option value=\"Disabled\">Disabled</option>\n </select>\n </div>\n \n <div class=\"form-group\">\n <label for=\"executionMode\">Execution Mode</label>\n <select id=\"executionMode\" formControlName=\"executionMode\" class=\"form-control\">\n <option value=\"Sequential\">Sequential</option>\n <option value=\"Parallel\">Parallel</option>\n </select>\n </div>\n </div>\n </div>\n\n <!-- Purpose & Messages Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-bullseye\"></i>\n Purpose & Messages\n </h3>\n \n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"purpose\">Purpose</label>\n <input type=\"text\" id=\"purpose\" formControlName=\"purpose\" class=\"form-control\" placeholder=\"Enter the purpose of this sub-agent\">\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"userMessage\">User Message</label>\n <textarea id=\"userMessage\" formControlName=\"userMessage\" class=\"form-control\" rows=\"3\" placeholder=\"Enter user message\"></textarea>\n </div>\n </div>\n\n <!-- System Message field removed - property does not exist on MJAIAgentEntity -->\n </div>\n\n <!-- Model Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-cogs\"></i>\n Model Configuration\n </h3>\n \n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"modelSelectionMode\">Model Selection Mode</label>\n <select id=\"modelSelectionMode\" formControlName=\"modelSelectionMode\" class=\"form-control\">\n <option value=\"Agent Type\">Agent Type</option>\n <option value=\"Agent\">Agent</option>\n </select>\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"temperature\">Temperature</label>\n <input type=\"number\" id=\"temperature\" formControlName=\"temperature\" class=\"form-control\" min=\"0\" max=\"2\" step=\"0.1\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"topP\">Top P</label>\n <input type=\"number\" id=\"topP\" formControlName=\"topP\" class=\"form-control\" min=\"0\" max=\"1\" step=\"0.1\">\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"topK\">Top K</label>\n <input type=\"number\" id=\"topK\" formControlName=\"topK\" class=\"form-control\" min=\"1\" max=\"100\" step=\"1\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"maxTokens\">Max Tokens</label>\n <input type=\"number\" id=\"maxTokens\" formControlName=\"maxTokens\" class=\"form-control\" min=\"1\" max=\"32000\" step=\"1\">\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label for=\"enableCaching\">\n <input type=\"checkbox\" id=\"enableCaching\" formControlName=\"enableCaching\">\n Enable Caching\n </label>\n </div>\n \n <div class=\"form-group\">\n <label for=\"cacheTTL\">Cache TTL (seconds)</label>\n <input type=\"number\" id=\"cacheTTL\" formControlName=\"cacheTTL\" class=\"form-control\" min=\"60\" max=\"86400\" step=\"60\">\n </div>\n </div>\n </div>\n\n <!-- Prompts Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Prompts ({{ linkedPromptCount }})\n </h3>\n \n <div class=\"section-actions\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Existing Prompt\n </button>\n <button type=\"button\" class=\"btn btn-success btn-sm\" (click)=\"createNewPrompt()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create New Prompt\n </button>\n </div>\n\n @if (linkedPrompts.length > 0) {\n <div class=\"linked-items\">\n @for (prompt of linkedPrompts; track prompt.ID) {\n <div class=\"linked-item prompt-item\">\n <div class=\"item-info\">\n <i class=\"fa-solid fa-comments\"></i>\n <span class=\"item-name\">{{ prompt.Name }}</span>\n @if (prompt.Description) {\n <span class=\"item-description\">{{ prompt.Description }}</span>\n }\n </div>\n <button type=\"button\" class=\"btn btn-danger btn-xs\" (click)=\"removePrompt(prompt)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n </div>\n } @else {\n <mj-empty-state\n Icon=\"fa-solid fa-comments\"\n Title=\"No prompts added yet. Click the buttons above to add prompts.\"\n Size=\"compact\" />\n }\n </div>\n\n <!-- Actions Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-bolt\"></i>\n Actions ({{ linkedActionCount }})\n </h3>\n \n <div class=\"section-actions\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"addAction()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Action\n </button>\n </div>\n\n @if (linkedActions.length > 0) {\n <div class=\"linked-items\">\n @for (action of linkedActions; track action.ID) {\n <div class=\"linked-item action-item\">\n <div class=\"item-info\">\n <i class=\"fa-solid fa-bolt\"></i>\n <span class=\"item-name\">{{ action.Name }}</span>\n @if (action.Description) {\n <span class=\"item-description\">{{ action.Description }}</span>\n }\n </div>\n <button type=\"button\" class=\"btn btn-danger btn-xs\" (click)=\"removeAction(action)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n </div>\n } @else {\n <mj-empty-state\n Icon=\"fa-solid fa-bolt\"\n Title=\"No actions added yet. Click the button above to add actions.\"\n Size=\"compact\" />\n }\n </div>\n </form>\n }\n\n <!-- Dialog Actions -->\n <div class=\"dialog-actions\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\" [disabled]=\"isSaving$ | async\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"(isSaving$ | async) || !subAgentForm.valid\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Creating...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Create Sub-Agent\n }\n </button>\n </div>\n</div>"]}
|
|
@@ -16,17 +16,43 @@ export declare class NewAgentDialogComponent extends BaseAngularComponent implem
|
|
|
16
16
|
private fb;
|
|
17
17
|
private navigationService;
|
|
18
18
|
config: NewAgentConfig;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
Form: FormGroup;
|
|
20
|
+
/** @deprecated Use {@link Form}. */
|
|
21
|
+
get form(): FormGroup;
|
|
22
|
+
/** @deprecated Use {@link Form}. */
|
|
23
|
+
set form(value: FormGroup);
|
|
24
|
+
IsLoading$: BehaviorSubject<boolean>;
|
|
25
|
+
/** @deprecated Use {@link IsLoading$}. */
|
|
26
|
+
get isLoading$(): BehaviorSubject<boolean>;
|
|
27
|
+
/** @deprecated Use {@link IsLoading$}. */
|
|
28
|
+
set isLoading$(value: BehaviorSubject<boolean>);
|
|
29
|
+
Models$: BehaviorSubject<MJAIModelEntityExtended[]>;
|
|
30
|
+
/** @deprecated Use {@link Models$}. */
|
|
31
|
+
get models$(): BehaviorSubject<MJAIModelEntityExtended[]>;
|
|
32
|
+
/** @deprecated Use {@link Models$}. */
|
|
33
|
+
set models$(value: BehaviorSubject<MJAIModelEntityExtended[]>);
|
|
34
|
+
AgentTypes$: BehaviorSubject<MJAIAgentTypeEntity[]>;
|
|
35
|
+
/** @deprecated Use {@link AgentTypes$}. */
|
|
36
|
+
get agentTypes$(): BehaviorSubject<MJAIAgentTypeEntity[]>;
|
|
37
|
+
/** @deprecated Use {@link AgentTypes$}. */
|
|
38
|
+
set agentTypes$(value: BehaviorSubject<MJAIAgentTypeEntity[]>);
|
|
39
|
+
IsSubmitting: boolean;
|
|
40
|
+
/** @deprecated Use {@link IsSubmitting}. */
|
|
41
|
+
get isSubmitting(): boolean;
|
|
42
|
+
/** @deprecated Use {@link IsSubmitting}. */
|
|
43
|
+
set isSubmitting(value: boolean);
|
|
24
44
|
/** Set by NewAgentDialogService after creation */
|
|
25
|
-
|
|
45
|
+
DialogRef: MJDialogRef | null;
|
|
46
|
+
/** @deprecated Use {@link DialogRef}. */
|
|
47
|
+
get dialogRef(): MJDialogRef | null;
|
|
48
|
+
/** @deprecated Use {@link DialogRef}. */
|
|
49
|
+
set dialogRef(value: MJDialogRef | null);
|
|
26
50
|
constructor(fb: FormBuilder, navigationService: NavigationService);
|
|
27
51
|
ngOnInit(): void;
|
|
28
52
|
private initializeForm;
|
|
29
53
|
private loadData;
|
|
54
|
+
OnSubmit(): Promise<void>;
|
|
55
|
+
/** @deprecated Use {@link OnSubmit}. */
|
|
30
56
|
onSubmit(): Promise<void>;
|
|
31
57
|
onCancel(): void;
|
|
32
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<NewAgentDialogComponent, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-agent-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAA2B,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AACrE,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAMa,uBAAwB,SAAQ,oBAAqB,YAAW,MAAM;
|
|
1
|
+
{"version":3,"file":"new-agent-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAA2B,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AACrE,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAMa,uBAAwB,SAAQ,oBAAqB,YAAW,MAAM;IAqE/E,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,iBAAiB;IArElB,MAAM,EAAE,cAAc,CAE7B;IAEF,IAAI,EAAG,SAAS,CAAC;IAEjB,oCAAoC;IACpC,IAAI,IAAI,IAAI,SAAS,CAEpB;IACD,oCAAoC;IACpC,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,EAExB;IACD,UAAU,2BAAuC;IAEjD,0CAA0C;IAC1C,IAAI,UAAU,6BAEb;IACD,0CAA0C;IAC1C,IAAI,UAAU,CAAC,KAAK,0BAAA,EAEnB;IACD,OAAO,6CAAsD;IAE7D,uCAAuC;IACvC,IAAI,OAAO,+CAEV;IACD,uCAAuC;IACvC,IAAI,OAAO,CAAC,KAAK,4CAAA,EAEhB;IACD,WAAW,yCAAkD;IAE7D,2CAA2C;IAC3C,IAAI,WAAW,2CAEd;IACD,2CAA2C;IAC3C,IAAI,WAAW,CAAC,KAAK,wCAAA,EAEpB;IACD,YAAY,UAAS;IAErB,4CAA4C;IAC5C,IAAI,YAAY,YAEf;IACD,4CAA4C;IAC5C,IAAI,YAAY,CAAC,KAAK,SAAA,EAErB;IAED,kDAAkD;IAC3C,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE5C,yCAAyC;IACzC,IAAW,SAAS,IAAI,WAAW,GAAG,IAAI,CAEzC;IACD,yCAAyC;IACzC,IAAW,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAE7C;gBAGS,EAAE,EAAE,WAAW,EACf,iBAAiB,EAAE,iBAAiB;IAI9C,QAAQ;IAKR,OAAO,CAAC,cAAc;YAaR,QAAQ;IA4BhB,QAAQ;IAyDd,wCAAwC;IAClC,QAAQ;IAId,QAAQ;yCAtLG,uBAAuB;2CAAvB,uBAAuB;CAyLnC"}
|
|
@@ -50,6 +50,54 @@ function NewAgentDialogComponent_Conditional_60_Template(rf, ctx) { if (rf & 1)
|
|
|
50
50
|
i0.ɵɵelementEnd();
|
|
51
51
|
} }
|
|
52
52
|
export class NewAgentDialogComponent extends BaseAngularComponent {
|
|
53
|
+
/** @deprecated Use {@link Form}. */
|
|
54
|
+
get form() {
|
|
55
|
+
return this.Form;
|
|
56
|
+
}
|
|
57
|
+
/** @deprecated Use {@link Form}. */
|
|
58
|
+
set form(value) {
|
|
59
|
+
this.Form = value;
|
|
60
|
+
}
|
|
61
|
+
/** @deprecated Use {@link IsLoading$}. */
|
|
62
|
+
get isLoading$() {
|
|
63
|
+
return this.IsLoading$;
|
|
64
|
+
}
|
|
65
|
+
/** @deprecated Use {@link IsLoading$}. */
|
|
66
|
+
set isLoading$(value) {
|
|
67
|
+
this.IsLoading$ = value;
|
|
68
|
+
}
|
|
69
|
+
/** @deprecated Use {@link Models$}. */
|
|
70
|
+
get models$() {
|
|
71
|
+
return this.Models$;
|
|
72
|
+
}
|
|
73
|
+
/** @deprecated Use {@link Models$}. */
|
|
74
|
+
set models$(value) {
|
|
75
|
+
this.Models$ = value;
|
|
76
|
+
}
|
|
77
|
+
/** @deprecated Use {@link AgentTypes$}. */
|
|
78
|
+
get agentTypes$() {
|
|
79
|
+
return this.AgentTypes$;
|
|
80
|
+
}
|
|
81
|
+
/** @deprecated Use {@link AgentTypes$}. */
|
|
82
|
+
set agentTypes$(value) {
|
|
83
|
+
this.AgentTypes$ = value;
|
|
84
|
+
}
|
|
85
|
+
/** @deprecated Use {@link IsSubmitting}. */
|
|
86
|
+
get isSubmitting() {
|
|
87
|
+
return this.IsSubmitting;
|
|
88
|
+
}
|
|
89
|
+
/** @deprecated Use {@link IsSubmitting}. */
|
|
90
|
+
set isSubmitting(value) {
|
|
91
|
+
this.IsSubmitting = value;
|
|
92
|
+
}
|
|
93
|
+
/** @deprecated Use {@link DialogRef}. */
|
|
94
|
+
get dialogRef() {
|
|
95
|
+
return this.DialogRef;
|
|
96
|
+
}
|
|
97
|
+
/** @deprecated Use {@link DialogRef}. */
|
|
98
|
+
set dialogRef(value) {
|
|
99
|
+
this.DialogRef = value;
|
|
100
|
+
}
|
|
53
101
|
constructor(fb, navigationService) {
|
|
54
102
|
super();
|
|
55
103
|
this.fb = fb;
|
|
@@ -57,19 +105,19 @@ export class NewAgentDialogComponent extends BaseAngularComponent {
|
|
|
57
105
|
this.config = {
|
|
58
106
|
redirectToForm: true
|
|
59
107
|
};
|
|
60
|
-
this.
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
108
|
+
this.IsLoading$ = new BehaviorSubject(false);
|
|
109
|
+
this.Models$ = new BehaviorSubject([]);
|
|
110
|
+
this.AgentTypes$ = new BehaviorSubject([]);
|
|
111
|
+
this.IsSubmitting = false;
|
|
64
112
|
/** Set by NewAgentDialogService after creation */
|
|
65
|
-
this.
|
|
113
|
+
this.DialogRef = null;
|
|
66
114
|
}
|
|
67
115
|
ngOnInit() {
|
|
68
116
|
this.initializeForm();
|
|
69
117
|
this.loadData();
|
|
70
118
|
}
|
|
71
119
|
initializeForm() {
|
|
72
|
-
this.
|
|
120
|
+
this.Form = this.fb.group({
|
|
73
121
|
name: ['', [Validators.required, Validators.maxLength(255)]],
|
|
74
122
|
description: [''],
|
|
75
123
|
modelId: ['', Validators.required],
|
|
@@ -81,7 +129,7 @@ export class NewAgentDialogComponent extends BaseAngularComponent {
|
|
|
81
129
|
});
|
|
82
130
|
}
|
|
83
131
|
async loadData() {
|
|
84
|
-
this.
|
|
132
|
+
this.IsLoading$.next(true);
|
|
85
133
|
try {
|
|
86
134
|
const engine = AIEngineBase.Instance;
|
|
87
135
|
await engine.Config(false);
|
|
@@ -89,27 +137,27 @@ export class NewAgentDialogComponent extends BaseAngularComponent {
|
|
|
89
137
|
models.sort((a, b) => {
|
|
90
138
|
return a.Name.localeCompare(b.Name);
|
|
91
139
|
});
|
|
92
|
-
this.
|
|
140
|
+
this.Models$.next(models || []);
|
|
93
141
|
// Pre-select first model if available
|
|
94
142
|
if (models && models.length > 0) {
|
|
95
|
-
this.
|
|
143
|
+
this.Form.patchValue({ modelId: models[0].ID });
|
|
96
144
|
}
|
|
97
145
|
const agentTypes = engine.AgentTypes;
|
|
98
|
-
this.
|
|
146
|
+
this.AgentTypes$.next(agentTypes || []);
|
|
99
147
|
}
|
|
100
148
|
catch (error) {
|
|
101
149
|
console.error('Error loading data:', error);
|
|
102
150
|
console.error('Failed to load required data');
|
|
103
151
|
}
|
|
104
152
|
finally {
|
|
105
|
-
this.
|
|
153
|
+
this.IsLoading$.next(false);
|
|
106
154
|
}
|
|
107
155
|
}
|
|
108
|
-
async
|
|
109
|
-
if (this.
|
|
156
|
+
async OnSubmit() {
|
|
157
|
+
if (this.Form.invalid || this.IsSubmitting) {
|
|
110
158
|
return;
|
|
111
159
|
}
|
|
112
|
-
this.
|
|
160
|
+
this.IsSubmitting = true;
|
|
113
161
|
try {
|
|
114
162
|
const md = this.ProviderToUse;
|
|
115
163
|
const agent = await md.GetEntityObject('MJ: AI Agents');
|
|
@@ -117,8 +165,8 @@ export class NewAgentDialogComponent extends BaseAngularComponent {
|
|
|
117
165
|
throw new Error('Failed to create agent entity');
|
|
118
166
|
}
|
|
119
167
|
// Set agent properties
|
|
120
|
-
agent.Name = this.
|
|
121
|
-
agent.Description = this.
|
|
168
|
+
agent.Name = this.Form.value.name;
|
|
169
|
+
agent.Description = this.Form.value.description;
|
|
122
170
|
// Set parent agent if provided
|
|
123
171
|
if (this.config.parentAgentId) {
|
|
124
172
|
agent.ParentID = this.config.parentAgentId;
|
|
@@ -132,7 +180,7 @@ export class NewAgentDialogComponent extends BaseAngularComponent {
|
|
|
132
180
|
if (saveResult) {
|
|
133
181
|
MJNotificationService.Instance.CreateSimpleNotification('Agent created successfully!', 'success', 3000);
|
|
134
182
|
// Close dialog with the new agent
|
|
135
|
-
this.
|
|
183
|
+
this.DialogRef?.Close({ agent, action: 'created' });
|
|
136
184
|
// Redirect to form if configured
|
|
137
185
|
if (this.config.redirectToForm && !this.config.parentAgentId) {
|
|
138
186
|
// Only redirect for top-level agents - use NavigationService to open the record
|
|
@@ -151,11 +199,15 @@ export class NewAgentDialogComponent extends BaseAngularComponent {
|
|
|
151
199
|
MJNotificationService.Instance.CreateSimpleNotification('Failed to create agent: ' + errorMessage, 'error', 5000);
|
|
152
200
|
}
|
|
153
201
|
finally {
|
|
154
|
-
this.
|
|
202
|
+
this.IsSubmitting = false;
|
|
155
203
|
}
|
|
156
204
|
}
|
|
205
|
+
/** @deprecated Use {@link OnSubmit}. */
|
|
206
|
+
async onSubmit() {
|
|
207
|
+
return this.OnSubmit();
|
|
208
|
+
}
|
|
157
209
|
onCancel() {
|
|
158
|
-
this.
|
|
210
|
+
this.DialogRef?.Close({ action: 'cancelled' });
|
|
159
211
|
}
|
|
160
212
|
static { this.ɵfac = function NewAgentDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NewAgentDialogComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.NavigationService)); }; }
|
|
161
213
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NewAgentDialogComponent, selectors: [["mj-new-agent-dialog"]], inputs: { config: "config" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 61, vars: 17, consts: [[1, "new-agent-dialog"], [3, "ngSubmit", "formGroup"], ["Variant", "info", "Icon", "fa-solid fa-robot", 1, "new-agent-alert-pos"], [1, "loading-overlay"], [1, "form-fields"], [1, "form-group"], [1, "required"], ["formControlName", "name", "placeholder", "Enter a descriptive name for your agent", 1, "mj-input", "full-width"], [1, "error-message"], ["formControlName", "description", "placeholder", "Describe what this agent does...", "rows", "3", 1, "mj-textarea", "full-width"], ["formControlName", "modelId", "TextField", "Name", "ValueField", "ID", "Placeholder", "Select an AI model...", 1, "full-width", 3, "Data"], ["formControlName", "systemPrompt", "placeholder", "Define the agent's behavior and personality...", "rows", "4", 1, "mj-textarea", "full-width"], [1, "field-hint"], [1, "fa-solid", "fa-info-circle"], [1, "advanced-settings"], [1, "section-header"], [1, "fa-solid", "fa-cog"], [1, "advanced-grid"], [1, "setting-group"], [1, "slider-container"], ["type", "range", "formControlName", "temperature", "min", "0", "max", "2", "step", "0.1", 1, "mj-input", "temperature-slider"], [1, "slider-value"], ["formControlName", "maxTokens", "Format", "n0", 1, "full-width", 3, "Min", "Max", "Step"], [1, "setting-group", "checkbox-group"], ["type", "checkbox", "formControlName", "enableStreaming", 1, "mj-checkbox"], [1, "dialog-actions"], ["type", "button", "mjButton", "", 3, "click", "disabled"], ["type", "submit", "mjButton", "", "variant", "primary", 3, "disabled"], [1, "spinner"], [1, "fa-solid", "fa-exclamation-circle"], [1, "spinner-small"], [1, "fa-solid", "fa-plus-circle"]], template: function NewAgentDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-agent-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.component.ts","../../../../src/lib/custom/AIAgents/new-agent-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Metadata } from '@memberjunction/core';\nimport { MJAIAgentTypeEntity } from '@memberjunction/core-entities';\nimport { MJAIAgentEntityExtended, MJAIModelEntityExtended } from \"@memberjunction/ai-core-plus\";\nimport { NavigationService } from '@memberjunction/ng-shared';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJDialogRef } from '@memberjunction/ng-ui-components';\nimport { BehaviorSubject } from 'rxjs';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\n\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nexport interface NewAgentConfig {\n parentAgentId?: string;\n parentAgentName?: string;\n redirectToForm?: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-new-agent-dialog',\n templateUrl: './new-agent-dialog.component.html',\n styleUrls: ['./new-agent-dialog.component.css']\n})\nexport class NewAgentDialogComponent extends BaseAngularComponent implements OnInit {\n @Input() config: NewAgentConfig = {\n redirectToForm: true\n };\n \n form!: FormGroup;\n isLoading$ = new BehaviorSubject<boolean>(false);\n models$ = new BehaviorSubject<MJAIModelEntityExtended[]>([]);\n agentTypes$ = new BehaviorSubject<MJAIAgentTypeEntity[]>([]);\n isSubmitting = false;\n \n /** Set by NewAgentDialogService after creation */\n public dialogRef: MJDialogRef | null = null;\n\n constructor(\n private fb: FormBuilder,\n private navigationService: NavigationService\n ) {\n super();}\n \n ngOnInit() {\n this.initializeForm();\n this.loadData();\n }\n \n private initializeForm() {\n this.form = this.fb.group({\n name: ['', [Validators.required, Validators.maxLength(255)]],\n description: [''],\n modelId: ['', Validators.required],\n agentType: ['standard', Validators.required],\n systemPrompt: ['You are a helpful AI assistant.'],\n enableStreaming: [true],\n temperature: [0.7, [Validators.min(0), Validators.max(2)]],\n maxTokens: [2000, [Validators.min(1), Validators.max(8000)]]\n });\n }\n \n private async loadData() {\n this.isLoading$.next(true);\n \n try {\n const engine = AIEngineBase.Instance;\n await engine.Config(false);\n const models = engine.Models;\n models.sort ((a, b) => { \n return a.Name.localeCompare(b.Name);\n });\n \n this.models$.next(models || []);\n \n // Pre-select first model if available\n if (models && models.length > 0) {\n this.form.patchValue({ modelId: models[0].ID });\n }\n \n const agentTypes = engine.AgentTypes;\n this.agentTypes$.next(agentTypes as MJAIAgentTypeEntity[] || []);\n } catch (error) {\n console.error('Error loading data:', error);\n console.error('Failed to load required data');\n } finally {\n this.isLoading$.next(false);\n }\n }\n \n async onSubmit() {\n if (this.form.invalid || this.isSubmitting) {\n return;\n }\n \n this.isSubmitting = true;\n \n try {\n const md = this.ProviderToUse;\n const agent = await md.GetEntityObject<MJAIAgentEntityExtended>('MJ: AI Agents');\n \n if (!agent) {\n throw new Error('Failed to create agent entity');\n }\n \n // Set agent properties\n agent.Name = this.form.value.name;\n agent.Description = this.form.value.description;\n \n // Set parent agent if provided\n if (this.config.parentAgentId) {\n agent.ParentID = this.config.parentAgentId;\n }\n \n // Set execution mode\n agent.ExecutionMode = 'Sequential';\n agent.ExecutionOrder = 0;\n agent.ExposeAsAction = false;\n \n // Save the agent\n const saveResult = await agent.Save();\n \n if (saveResult) {\n MJNotificationService.Instance.CreateSimpleNotification('Agent created successfully!', 'success', 3000);\n\n // Close dialog with the new agent\n this.dialogRef?.Close({ agent, action: 'created' });\n\n // Redirect to form if configured\n if (this.config.redirectToForm && !this.config.parentAgentId) {\n // Only redirect for top-level agents - use NavigationService to open the record\n setTimeout(() => {\n this.navigationService.OpenEntityRecord('MJ: AI Agents', agent.PrimaryKey);\n }, 100);\n }\n } else {\n throw new Error('Failed to save agent');\n }\n } catch (error: unknown) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n console.error('Error creating agent:', error);\n MJNotificationService.Instance.CreateSimpleNotification('Failed to create agent: ' + errorMessage, 'error', 5000);\n } finally {\n this.isSubmitting = false;\n }\n }\n\n onCancel() {\n this.dialogRef?.Close({ action: 'cancelled' });\n }\n}","<div class=\"new-agent-dialog\">\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <!-- Parent Agent Info (if creating sub-agent) -->\n @if (config.parentAgentId) {\n <mj-alert Variant=\"info\" Icon=\"fa-solid fa-robot\" class=\"new-agent-alert-pos\">\n Creating sub-agent for: <strong>{{ config.parentAgentName || 'Parent Agent' }}</strong>\n </mj-alert>\n }\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-overlay\">\n <div class=\"spinner\">Loading...</div>\n </div>\n }\n \n <!-- Form Fields -->\n <div class=\"form-fields\">\n <!-- Agent Name -->\n <div class=\"form-group\">\n <label class=\"required\">Agent Name</label>\n <input\n class=\"mj-input full-width\"\n formControlName=\"name\"\n placeholder=\"Enter a descriptive name for your agent\">\n @if (form.get('name')?.invalid && form.get('name')?.touched) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n Agent name is required\n </div>\n }\n </div>\n \n <!-- Description -->\n <div class=\"form-group\">\n <label>Description</label>\n <textarea\n class=\"mj-textarea full-width\"\n formControlName=\"description\"\n placeholder=\"Describe what this agent does...\"\n rows=\"3\"></textarea>\n </div>\n \n <!-- AI Model Selection -->\n <div class=\"form-group\">\n <label class=\"required\">AI Model</label>\n <mj-dropdown\n formControlName=\"modelId\"\n [Data]=\"models$ | async\"\n TextField=\"Name\"\n ValueField=\"ID\"\n Placeholder=\"Select an AI model...\"\n class=\"full-width\">\n </mj-dropdown>\n @if (form.get('modelId')?.invalid && form.get('modelId')?.touched) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n Please select an AI model\n </div>\n }\n </div>\n \n <!-- System Prompt -->\n <div class=\"form-group\">\n <label>System Prompt</label>\n <textarea\n class=\"mj-textarea full-width\"\n formControlName=\"systemPrompt\"\n placeholder=\"Define the agent's behavior and personality...\"\n rows=\"4\"></textarea>\n <div class=\"field-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n This sets the agent's context and behavior\n </div>\n </div>\n \n <!-- Advanced Settings -->\n <div class=\"advanced-settings\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-cog\"></i>\n Advanced Settings\n </div>\n \n <div class=\"advanced-grid\">\n <!-- Temperature -->\n <div class=\"setting-group\">\n <label>Temperature</label>\n <div class=\"slider-container\">\n <input\n type=\"range\"\n class=\"mj-input temperature-slider\"\n formControlName=\"temperature\"\n min=\"0\"\n max=\"2\"\n step=\"0.1\">\n <span class=\"slider-value\">{{ form.get('temperature')?.value }}</span>\n </div>\n <div class=\"field-hint\">Higher values make output more creative</div>\n </div>\n \n <!-- Max Tokens -->\n <div class=\"setting-group\">\n <label>Max Tokens</label>\n <mj-numeric-input\n formControlName=\"maxTokens\"\n [Min]=\"1\"\n [Max]=\"8000\"\n [Step]=\"100\"\n Format=\"n0\"\n class=\"full-width\">\n </mj-numeric-input>\n <div class=\"field-hint\">Maximum response length</div>\n </div>\n \n <!-- Enable Streaming -->\n <div class=\"setting-group checkbox-group\">\n <label>\n <input type=\"checkbox\" formControlName=\"enableStreaming\" class=\"mj-checkbox\" />\n <span>Enable Response Streaming</span>\n </label>\n <div class=\"field-hint\">Stream responses in real-time</div>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Dialog Actions -->\n <div class=\"dialog-actions\">\n <button\n type=\"button\"\n mjButton\n (click)=\"onCancel()\"\n [disabled]=\"isSubmitting\">\n Cancel\n </button>\n <button\n type=\"submit\"\n mjButton\n variant=\"primary\"\n [disabled]=\"form.invalid || isSubmitting\">\n @if (isSubmitting) {\n <span class=\"spinner-small\"></span>\n <span>Creating...</span>\n } @else {\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span>Create Agent</span>\n }\n </button>\n </div>\n </form>\n</div>"]}
|
|
1
|
+
{"version":3,"file":"new-agent-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.component.ts","../../../../src/lib/custom/AIAgents/new-agent-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Metadata } from '@memberjunction/core';\nimport { MJAIAgentTypeEntity } from '@memberjunction/core-entities';\nimport { MJAIAgentEntityExtended, MJAIModelEntityExtended } from \"@memberjunction/ai-core-plus\";\nimport { NavigationService } from '@memberjunction/ng-shared';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJDialogRef } from '@memberjunction/ng-ui-components';\nimport { BehaviorSubject } from 'rxjs';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\n\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nexport interface NewAgentConfig {\n parentAgentId?: 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 parentAgentName?: 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 redirectToForm?: 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}\n\n@Component({\n standalone: false,\n selector: 'mj-new-agent-dialog',\n templateUrl: './new-agent-dialog.component.html',\n styleUrls: ['./new-agent-dialog.component.css']\n})\nexport class NewAgentDialogComponent extends BaseAngularComponent implements OnInit {\n @Input() config: NewAgentConfig = {\n redirectToForm: true\n };\n \n Form!: FormGroup;\n\n /** @deprecated Use {@link Form}. */\n get form(): FormGroup {\n return this.Form;\n }\n /** @deprecated Use {@link Form}. */\n set form(value: FormGroup) {\n this.Form = value;\n }\n IsLoading$ = new BehaviorSubject<boolean>(false);\n\n /** @deprecated Use {@link IsLoading$}. */\n get isLoading$() {\n return this.IsLoading$;\n }\n /** @deprecated Use {@link IsLoading$}. */\n set isLoading$(value) {\n this.IsLoading$ = value;\n }\n Models$ = new BehaviorSubject<MJAIModelEntityExtended[]>([]);\n\n /** @deprecated Use {@link Models$}. */\n get models$() {\n return this.Models$;\n }\n /** @deprecated Use {@link Models$}. */\n set models$(value) {\n this.Models$ = value;\n }\n AgentTypes$ = new BehaviorSubject<MJAIAgentTypeEntity[]>([]);\n\n /** @deprecated Use {@link AgentTypes$}. */\n get agentTypes$() {\n return this.AgentTypes$;\n }\n /** @deprecated Use {@link AgentTypes$}. */\n set agentTypes$(value) {\n this.AgentTypes$ = value;\n }\n IsSubmitting = false;\n\n /** @deprecated Use {@link IsSubmitting}. */\n get isSubmitting() {\n return this.IsSubmitting;\n }\n /** @deprecated Use {@link IsSubmitting}. */\n set isSubmitting(value) {\n this.IsSubmitting = value;\n }\n \n /** Set by NewAgentDialogService after creation */\n public DialogRef: MJDialogRef | null = null;\n\n /** @deprecated Use {@link DialogRef}. */\n public get dialogRef(): MJDialogRef | null {\n return this.DialogRef;\n }\n /** @deprecated Use {@link DialogRef}. */\n public set dialogRef(value: MJDialogRef | null) {\n this.DialogRef = value;\n }\n\n constructor(\n private fb: FormBuilder,\n private navigationService: NavigationService\n ) {\n super();}\n \n ngOnInit() {\n this.initializeForm();\n this.loadData();\n }\n \n private initializeForm() {\n this.Form = this.fb.group({\n name: ['', [Validators.required, Validators.maxLength(255)]],\n description: [''],\n modelId: ['', Validators.required],\n agentType: ['standard', Validators.required],\n systemPrompt: ['You are a helpful AI assistant.'],\n enableStreaming: [true],\n temperature: [0.7, [Validators.min(0), Validators.max(2)]],\n maxTokens: [2000, [Validators.min(1), Validators.max(8000)]]\n });\n }\n \n private async loadData() {\n this.IsLoading$.next(true);\n \n try {\n const engine = AIEngineBase.Instance;\n await engine.Config(false);\n const models = engine.Models;\n models.sort ((a, b) => { \n return a.Name.localeCompare(b.Name);\n });\n \n this.Models$.next(models || []);\n \n // Pre-select first model if available\n if (models && models.length > 0) {\n this.Form.patchValue({ modelId: models[0].ID });\n }\n \n const agentTypes = engine.AgentTypes;\n this.AgentTypes$.next(agentTypes as MJAIAgentTypeEntity[] || []);\n } catch (error) {\n console.error('Error loading data:', error);\n console.error('Failed to load required data');\n } finally {\n this.IsLoading$.next(false);\n }\n }\n \n async OnSubmit() {\n if (this.Form.invalid || this.IsSubmitting) {\n return;\n }\n \n this.IsSubmitting = true;\n \n try {\n const md = this.ProviderToUse;\n const agent = await md.GetEntityObject<MJAIAgentEntityExtended>('MJ: AI Agents');\n \n if (!agent) {\n throw new Error('Failed to create agent entity');\n }\n \n // Set agent properties\n agent.Name = this.Form.value.name;\n agent.Description = this.Form.value.description;\n \n // Set parent agent if provided\n if (this.config.parentAgentId) {\n agent.ParentID = this.config.parentAgentId;\n }\n \n // Set execution mode\n agent.ExecutionMode = 'Sequential';\n agent.ExecutionOrder = 0;\n agent.ExposeAsAction = false;\n \n // Save the agent\n const saveResult = await agent.Save();\n \n if (saveResult) {\n MJNotificationService.Instance.CreateSimpleNotification('Agent created successfully!', 'success', 3000);\n\n // Close dialog with the new agent\n this.DialogRef?.Close({ agent, action: 'created' });\n\n // Redirect to form if configured\n if (this.config.redirectToForm && !this.config.parentAgentId) {\n // Only redirect for top-level agents - use NavigationService to open the record\n setTimeout(() => {\n this.navigationService.OpenEntityRecord('MJ: AI Agents', agent.PrimaryKey);\n }, 100);\n }\n } else {\n throw new Error('Failed to save agent');\n }\n } catch (error: unknown) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n console.error('Error creating agent:', error);\n MJNotificationService.Instance.CreateSimpleNotification('Failed to create agent: ' + errorMessage, 'error', 5000);\n } finally {\n this.IsSubmitting = false;\n }\n }\n\n /** @deprecated Use {@link OnSubmit}. */\n async onSubmit() {\n return this.OnSubmit();\n }\n\n onCancel() {\n this.DialogRef?.Close({ action: 'cancelled' });\n }\n}","<div class=\"new-agent-dialog\">\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <!-- Parent Agent Info (if creating sub-agent) -->\n @if (config.parentAgentId) {\n <mj-alert Variant=\"info\" Icon=\"fa-solid fa-robot\" class=\"new-agent-alert-pos\">\n Creating sub-agent for: <strong>{{ config.parentAgentName || 'Parent Agent' }}</strong>\n </mj-alert>\n }\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-overlay\">\n <div class=\"spinner\">Loading...</div>\n </div>\n }\n \n <!-- Form Fields -->\n <div class=\"form-fields\">\n <!-- Agent Name -->\n <div class=\"form-group\">\n <label class=\"required\">Agent Name</label>\n <input\n class=\"mj-input full-width\"\n formControlName=\"name\"\n placeholder=\"Enter a descriptive name for your agent\">\n @if (form.get('name')?.invalid && form.get('name')?.touched) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n Agent name is required\n </div>\n }\n </div>\n \n <!-- Description -->\n <div class=\"form-group\">\n <label>Description</label>\n <textarea\n class=\"mj-textarea full-width\"\n formControlName=\"description\"\n placeholder=\"Describe what this agent does...\"\n rows=\"3\"></textarea>\n </div>\n \n <!-- AI Model Selection -->\n <div class=\"form-group\">\n <label class=\"required\">AI Model</label>\n <mj-dropdown\n formControlName=\"modelId\"\n [Data]=\"models$ | async\"\n TextField=\"Name\"\n ValueField=\"ID\"\n Placeholder=\"Select an AI model...\"\n class=\"full-width\">\n </mj-dropdown>\n @if (form.get('modelId')?.invalid && form.get('modelId')?.touched) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n Please select an AI model\n </div>\n }\n </div>\n \n <!-- System Prompt -->\n <div class=\"form-group\">\n <label>System Prompt</label>\n <textarea\n class=\"mj-textarea full-width\"\n formControlName=\"systemPrompt\"\n placeholder=\"Define the agent's behavior and personality...\"\n rows=\"4\"></textarea>\n <div class=\"field-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n This sets the agent's context and behavior\n </div>\n </div>\n \n <!-- Advanced Settings -->\n <div class=\"advanced-settings\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-cog\"></i>\n Advanced Settings\n </div>\n \n <div class=\"advanced-grid\">\n <!-- Temperature -->\n <div class=\"setting-group\">\n <label>Temperature</label>\n <div class=\"slider-container\">\n <input\n type=\"range\"\n class=\"mj-input temperature-slider\"\n formControlName=\"temperature\"\n min=\"0\"\n max=\"2\"\n step=\"0.1\">\n <span class=\"slider-value\">{{ form.get('temperature')?.value }}</span>\n </div>\n <div class=\"field-hint\">Higher values make output more creative</div>\n </div>\n \n <!-- Max Tokens -->\n <div class=\"setting-group\">\n <label>Max Tokens</label>\n <mj-numeric-input\n formControlName=\"maxTokens\"\n [Min]=\"1\"\n [Max]=\"8000\"\n [Step]=\"100\"\n Format=\"n0\"\n class=\"full-width\">\n </mj-numeric-input>\n <div class=\"field-hint\">Maximum response length</div>\n </div>\n \n <!-- Enable Streaming -->\n <div class=\"setting-group checkbox-group\">\n <label>\n <input type=\"checkbox\" formControlName=\"enableStreaming\" class=\"mj-checkbox\" />\n <span>Enable Response Streaming</span>\n </label>\n <div class=\"field-hint\">Stream responses in real-time</div>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Dialog Actions -->\n <div class=\"dialog-actions\">\n <button\n type=\"button\"\n mjButton\n (click)=\"onCancel()\"\n [disabled]=\"isSubmitting\">\n Cancel\n </button>\n <button\n type=\"submit\"\n mjButton\n variant=\"primary\"\n [disabled]=\"form.invalid || isSubmitting\">\n @if (isSubmitting) {\n <span class=\"spinner-small\"></span>\n <span>Creating...</span>\n } @else {\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span>Create Agent</span>\n }\n </button>\n </div>\n </form>\n</div>"]}
|