@memberjunction/ng-core-entity-forms 5.22.0 → 5.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +55 -59
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +0 -1
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +4 -5
- 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 +54 -71
- 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.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1053 -1096
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +2 -3
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +39 -82
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +28 -31
- 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 +4 -5
- 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 +15 -14
- 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 +4 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +77 -124
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +2 -2
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +10 -11
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +18 -18
- 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 +4 -5
- 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 +59 -80
- 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 +4 -5
- 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 +23 -24
- 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.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +862 -906
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +4 -5
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +448 -499
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +2 -2
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +6 -11
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +16 -15
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +160 -166
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +93 -94
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts +22 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts.map +1 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.js +165 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.js.map +1 -0
- package/dist/lib/custom/Entities/entity-form.component.js +2 -2
- package/dist/lib/custom/Lists/list-form.component.js +61 -63
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.js +33 -59
- package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +354 -360
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +62 -71
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +128 -124
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +45 -22
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +380 -384
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +34 -36
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +8 -9
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +4 -4
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +7 -7
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +6 -7
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +6 -7
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -409
- 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-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +1 -1
- 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-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +74 -63
- 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-visualization.component.js +10 -10
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
- 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 +352 -332
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +25 -29
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +57 -82
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +59 -66
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +176 -156
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js +65 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +89 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +98 -44
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.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 +35 -17
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +79 -20
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js +73 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +11 -6
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +49 -8
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js +57 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +71 -24
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +43 -15
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +43 -17
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +21 -11
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +19 -13
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js +7 -9
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.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 +78 -60
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +21 -9
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +23 -5
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js +77 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +22 -4
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +139 -19
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js +67 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js +65 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js +10 -8
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.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 +226 -154
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +41 -5
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +286 -279
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +192 -214
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +14 -15
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/package.json +34 -41
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, Output, EventEmitter } from '@angular/core';
|
|
2
2
|
import { Validators } from '@angular/forms';
|
|
3
3
|
import { Subject, BehaviorSubject, takeUntil } from 'rxjs';
|
|
4
4
|
import { RunView } from '@memberjunction/core';
|
|
5
5
|
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
6
6
|
import { UUIDsEqual } from '@memberjunction/global';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@
|
|
9
|
-
import * as i2 from "@
|
|
10
|
-
import * as i3 from "@
|
|
11
|
-
import * as i4 from "@progress/kendo-angular-dropdowns";
|
|
12
|
-
import * as i5 from "@progress/kendo-angular-buttons";
|
|
13
|
-
import * as i6 from "@angular/common";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
14
11
|
const _c0 = () => ({ Name: "Default Type", ID: null });
|
|
15
12
|
function SubAgentAdvancedSettingsDialogComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
16
13
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 6);
|
|
@@ -38,25 +35,7 @@ function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_11_Te
|
|
|
38
35
|
i0.ɵɵadvance();
|
|
39
36
|
i0.ɵɵtextInterpolate(ctx_r0.executionOrderError);
|
|
40
37
|
} }
|
|
41
|
-
function
|
|
42
|
-
i0.ɵɵelementStart(0, "div", 31)(1, "div", 32);
|
|
43
|
-
i0.ɵɵelement(2, "i");
|
|
44
|
-
i0.ɵɵelementStart(3, "span", 33);
|
|
45
|
-
i0.ɵɵtext(4);
|
|
46
|
-
i0.ɵɵelementEnd()();
|
|
47
|
-
i0.ɵɵelementStart(5, "div", 34);
|
|
48
|
-
i0.ɵɵtext(6);
|
|
49
|
-
i0.ɵɵelementEnd()();
|
|
50
|
-
} if (rf & 2) {
|
|
51
|
-
const dataItem_r2 = ctx.$implicit;
|
|
52
|
-
i0.ɵɵadvance(2);
|
|
53
|
-
i0.ɵɵclassMap(i0.ɵɵinterpolate1("fa-solid ", dataItem_r2.icon));
|
|
54
|
-
i0.ɵɵadvance(2);
|
|
55
|
-
i0.ɵɵtextInterpolate(dataItem_r2.text);
|
|
56
|
-
i0.ɵɵadvance(2);
|
|
57
|
-
i0.ɵɵtextInterpolate(dataItem_r2.description);
|
|
58
|
-
} }
|
|
59
|
-
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
60
39
|
i0.ɵɵelementStart(0, "div", 15);
|
|
61
40
|
i0.ɵɵtext(1);
|
|
62
41
|
i0.ɵɵelementEnd();
|
|
@@ -65,7 +44,7 @@ function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_19_Te
|
|
|
65
44
|
i0.ɵɵadvance();
|
|
66
45
|
i0.ɵɵtextInterpolate(ctx_r0.getFieldError("executionMode"));
|
|
67
46
|
} }
|
|
68
|
-
function
|
|
47
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_37_Template(rf, ctx) { if (rf & 1) {
|
|
69
48
|
i0.ɵɵelementStart(0, "div", 15);
|
|
70
49
|
i0.ɵɵtext(1);
|
|
71
50
|
i0.ɵɵelementEnd();
|
|
@@ -82,7 +61,7 @@ function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Template(rf, ctx)
|
|
|
82
61
|
i0.ɵɵelementStart(5, "div", 11)(6, "div", 12)(7, "label", 13);
|
|
83
62
|
i0.ɵɵtext(8, "Execution Order *");
|
|
84
63
|
i0.ɵɵelementEnd();
|
|
85
|
-
i0.ɵɵelement(9, "
|
|
64
|
+
i0.ɵɵelement(9, "mj-numeric-input", 14);
|
|
86
65
|
i0.ɵɵconditionalCreate(10, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_10_Template, 2, 1, "div", 15);
|
|
87
66
|
i0.ɵɵconditionalCreate(11, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_11_Template, 2, 1, "div", 15);
|
|
88
67
|
i0.ɵɵelementStart(12, "small", 16);
|
|
@@ -91,77 +70,75 @@ function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Template(rf, ctx)
|
|
|
91
70
|
i0.ɵɵelementStart(14, "div", 12)(15, "label", 17);
|
|
92
71
|
i0.ɵɵtext(16, "Execution Mode *");
|
|
93
72
|
i0.ɵɵelementEnd();
|
|
94
|
-
i0.ɵɵ
|
|
95
|
-
i0.ɵɵ
|
|
96
|
-
i0.ɵɵ
|
|
97
|
-
i0.ɵɵ
|
|
98
|
-
i0.ɵɵelementStart(20, "small", 16);
|
|
99
|
-
i0.ɵɵtext(21);
|
|
73
|
+
i0.ɵɵelement(17, "mj-dropdown", 18);
|
|
74
|
+
i0.ɵɵconditionalCreate(18, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_18_Template, 2, 1, "div", 15);
|
|
75
|
+
i0.ɵɵelementStart(19, "small", 16);
|
|
76
|
+
i0.ɵɵtext(20);
|
|
100
77
|
i0.ɵɵelementEnd()()()();
|
|
101
|
-
i0.ɵɵelementStart(
|
|
102
|
-
i0.ɵɵelement(
|
|
103
|
-
i0.ɵɵtext(
|
|
78
|
+
i0.ɵɵelementStart(21, "div", 8)(22, "h3", 9);
|
|
79
|
+
i0.ɵɵelement(23, "i", 19);
|
|
80
|
+
i0.ɵɵtext(24, " Agent Configuration ");
|
|
104
81
|
i0.ɵɵelementEnd();
|
|
105
|
-
i0.ɵɵelementStart(
|
|
106
|
-
i0.ɵɵtext(
|
|
82
|
+
i0.ɵɵelementStart(25, "div", 11)(26, "div", 12)(27, "label", 20);
|
|
83
|
+
i0.ɵɵtext(28, "Agent Type");
|
|
107
84
|
i0.ɵɵelementEnd();
|
|
108
|
-
i0.ɵɵelement(
|
|
109
|
-
i0.ɵɵpipe(
|
|
110
|
-
i0.ɵɵelementStart(
|
|
111
|
-
i0.ɵɵtext(
|
|
85
|
+
i0.ɵɵelement(29, "mj-dropdown", 21);
|
|
86
|
+
i0.ɵɵpipe(30, "async");
|
|
87
|
+
i0.ɵɵelementStart(31, "small", 16);
|
|
88
|
+
i0.ɵɵtext(32, "Specialized agent type that defines behavior and capabilities");
|
|
112
89
|
i0.ɵɵelementEnd()();
|
|
113
|
-
i0.ɵɵelementStart(
|
|
114
|
-
i0.ɵɵtext(
|
|
90
|
+
i0.ɵɵelementStart(33, "div", 12)(34, "label", 22);
|
|
91
|
+
i0.ɵɵtext(35, "Status *");
|
|
115
92
|
i0.ɵɵelementEnd();
|
|
116
|
-
i0.ɵɵelement(
|
|
117
|
-
i0.ɵɵconditionalCreate(
|
|
118
|
-
i0.ɵɵelementStart(
|
|
119
|
-
i0.ɵɵtext(
|
|
93
|
+
i0.ɵɵelement(36, "mj-dropdown", 23);
|
|
94
|
+
i0.ɵɵconditionalCreate(37, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_37_Template, 2, 1, "div", 15);
|
|
95
|
+
i0.ɵɵelementStart(38, "small", 16);
|
|
96
|
+
i0.ɵɵtext(39, "Current operational status of this sub-agent");
|
|
120
97
|
i0.ɵɵelementEnd()()()();
|
|
121
|
-
i0.ɵɵelementStart(
|
|
122
|
-
i0.ɵɵelement(
|
|
123
|
-
i0.ɵɵtext(
|
|
98
|
+
i0.ɵɵelementStart(40, "div", 8)(41, "h3", 9);
|
|
99
|
+
i0.ɵɵelement(42, "i", 24);
|
|
100
|
+
i0.ɵɵtext(43, " Capability Restrictions ");
|
|
124
101
|
i0.ɵɵelementEnd();
|
|
125
|
-
i0.ɵɵelementStart(
|
|
126
|
-
i0.ɵɵelement(
|
|
127
|
-
i0.ɵɵtext(
|
|
102
|
+
i0.ɵɵelementStart(44, "div", 11)(45, "div", 25)(46, "label", 26);
|
|
103
|
+
i0.ɵɵelement(47, "input", 27);
|
|
104
|
+
i0.ɵɵtext(48, " Expose As Action ");
|
|
128
105
|
i0.ɵɵelementEnd();
|
|
129
|
-
i0.ɵɵelementStart(
|
|
130
|
-
i0.ɵɵelement(
|
|
131
|
-
i0.ɵɵtext(
|
|
106
|
+
i0.ɵɵelementStart(49, "small", 28);
|
|
107
|
+
i0.ɵɵelement(50, "i", 29);
|
|
108
|
+
i0.ɵɵtext(51, " Sub-agents cannot be exposed as actions. Only root agents (without parents) can be exposed as actions for use by other agents. ");
|
|
132
109
|
i0.ɵɵelementEnd()()()()();
|
|
133
110
|
} if (rf & 2) {
|
|
134
|
-
let
|
|
111
|
+
let tmp_9_0;
|
|
135
112
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
136
113
|
i0.ɵɵproperty("formGroup", ctx_r0.advancedForm);
|
|
137
114
|
i0.ɵɵadvance(9);
|
|
138
115
|
i0.ɵɵclassProp("error-border", ctx_r0.hasExecutionOrderError());
|
|
139
|
-
i0.ɵɵproperty("
|
|
116
|
+
i0.ɵɵproperty("Min", 0);
|
|
140
117
|
i0.ɵɵadvance();
|
|
141
118
|
i0.ɵɵconditional(ctx_r0.isFieldInvalid("executionOrder") ? 10 : -1);
|
|
142
119
|
i0.ɵɵadvance();
|
|
143
120
|
i0.ɵɵconditional(ctx_r0.hasExecutionOrderError() ? 11 : -1);
|
|
144
121
|
i0.ɵɵadvance(6);
|
|
145
|
-
i0.ɵɵproperty("
|
|
146
|
-
i0.ɵɵadvance(
|
|
147
|
-
i0.ɵɵconditional(ctx_r0.isFieldInvalid("executionMode") ?
|
|
122
|
+
i0.ɵɵproperty("Data", ctx_r0.executionModeOptions)("ValuePrimitive", true);
|
|
123
|
+
i0.ɵɵadvance();
|
|
124
|
+
i0.ɵɵconditional(ctx_r0.isFieldInvalid("executionMode") ? 18 : -1);
|
|
148
125
|
i0.ɵɵadvance(2);
|
|
149
|
-
i0.ɵɵtextInterpolate(ctx_r0.getExecutionModeDescription((
|
|
126
|
+
i0.ɵɵtextInterpolate(ctx_r0.getExecutionModeDescription((tmp_9_0 = ctx_r0.advancedForm.get("executionMode")) == null ? null : tmp_9_0.value));
|
|
150
127
|
i0.ɵɵadvance(9);
|
|
151
|
-
i0.ɵɵproperty("
|
|
128
|
+
i0.ɵɵproperty("Data", i0.ɵɵpipeBind1(30, 17, ctx_r0.agentTypes$))("ValuePrimitive", true)("DefaultItem", i0.ɵɵpureFunction0(19, _c0));
|
|
152
129
|
i0.ɵɵadvance(7);
|
|
153
|
-
i0.ɵɵproperty("
|
|
130
|
+
i0.ɵɵproperty("Data", ctx_r0.statusOptions)("ValuePrimitive", true);
|
|
154
131
|
i0.ɵɵadvance();
|
|
155
|
-
i0.ɵɵconditional(ctx_r0.isFieldInvalid("status") ?
|
|
132
|
+
i0.ɵɵconditional(ctx_r0.isFieldInvalid("status") ? 37 : -1);
|
|
156
133
|
i0.ɵɵadvance(10);
|
|
157
134
|
i0.ɵɵproperty("disabled", true);
|
|
158
135
|
} }
|
|
159
136
|
function SubAgentAdvancedSettingsDialogComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
-
i0.ɵɵelement(0, "i",
|
|
137
|
+
i0.ɵɵelement(0, "i", 30);
|
|
161
138
|
i0.ɵɵtext(1, " Saving... ");
|
|
162
139
|
} }
|
|
163
140
|
function SubAgentAdvancedSettingsDialogComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
164
|
-
i0.ɵɵelement(0, "i",
|
|
141
|
+
i0.ɵɵelement(0, "i", 31);
|
|
165
142
|
i0.ɵɵtext(1, " Save Settings ");
|
|
166
143
|
} }
|
|
167
144
|
/**
|
|
@@ -169,8 +146,7 @@ function SubAgentAdvancedSettingsDialogComponent_Conditional_13_Template(rf, ctx
|
|
|
169
146
|
* Manages execution order, execution mode, and other advanced sub-agent configurations.
|
|
170
147
|
*/
|
|
171
148
|
export class SubAgentAdvancedSettingsDialogComponent {
|
|
172
|
-
constructor(
|
|
173
|
-
this.dialogRef = dialogRef;
|
|
149
|
+
constructor(fb, cdr) {
|
|
174
150
|
this.fb = fb;
|
|
175
151
|
this.cdr = cdr;
|
|
176
152
|
this.allSubAgents = []; // For execution order validation
|
|
@@ -203,6 +179,7 @@ export class SubAgentAdvancedSettingsDialogComponent {
|
|
|
203
179
|
];
|
|
204
180
|
// Execution order validation
|
|
205
181
|
this.executionOrderError = null;
|
|
182
|
+
this.DialogClose = new EventEmitter();
|
|
206
183
|
}
|
|
207
184
|
ngOnInit() {
|
|
208
185
|
this.initializeForm();
|
|
@@ -309,7 +286,7 @@ export class SubAgentAdvancedSettingsDialogComponent {
|
|
|
309
286
|
// === Dialog Actions ===
|
|
310
287
|
cancel() {
|
|
311
288
|
this.result.next(null);
|
|
312
|
-
this.
|
|
289
|
+
this.DialogClose.emit();
|
|
313
290
|
}
|
|
314
291
|
async save() {
|
|
315
292
|
if (this.advancedForm.invalid || this.hasExecutionOrderError()) {
|
|
@@ -327,7 +304,7 @@ export class SubAgentAdvancedSettingsDialogComponent {
|
|
|
327
304
|
exposeAsAction: false // Sub-agents cannot be exposed as actions
|
|
328
305
|
};
|
|
329
306
|
this.result.next(formData);
|
|
330
|
-
this.
|
|
307
|
+
this.DialogClose.emit();
|
|
331
308
|
}
|
|
332
309
|
catch (error) {
|
|
333
310
|
console.error('Error saving advanced settings:', error);
|
|
@@ -337,12 +314,12 @@ export class SubAgentAdvancedSettingsDialogComponent {
|
|
|
337
314
|
this.isSaving$.next(false);
|
|
338
315
|
}
|
|
339
316
|
}
|
|
340
|
-
static { this.ɵfac = function SubAgentAdvancedSettingsDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubAgentAdvancedSettingsDialogComponent)(i0.ɵɵdirectiveInject(i1.
|
|
341
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SubAgentAdvancedSettingsDialogComponent, selectors: [["mj-sub-agent-advanced-settings-dialog"]], standalone: false, decls: 14, vars: 14, consts: [[1, "sub-agent-advanced-settings-dialog"], [1, "loading-state"], [1, "advanced-form", 3, "formGroup"], [1, "dialog-footer"], ["
|
|
317
|
+
static { this.ɵfac = function SubAgentAdvancedSettingsDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubAgentAdvancedSettingsDialogComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
318
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SubAgentAdvancedSettingsDialogComponent, selectors: [["mj-sub-agent-advanced-settings-dialog"]], outputs: { DialogClose: "DialogClose" }, standalone: false, decls: 14, vars: 14, consts: [[1, "sub-agent-advanced-settings-dialog"], [1, "loading-state"], [1, "advanced-form", 3, "formGroup"], [1, "dialog-footer"], ["mjButton", "", "variant", "flat", 3, "click", "disabled"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "loading-spinner"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x"], [1, "form-section"], [1, "section-title"], [1, "fa-solid", "fa-play"], [1, "form-grid"], [1, "form-field"], ["for", "executionOrder"], ["formControlName", "executionOrder", "Format", "0", 1, "form-control", 3, "Min"], [1, "field-error"], [1, "field-hint"], ["for", "executionMode"], ["formControlName", "executionMode", "TextField", "text", "ValueField", "value", 1, "form-control", 3, "Data", "ValuePrimitive"], [1, "fa-solid", "fa-robot"], ["for", "typeID"], ["formControlName", "typeID", "TextField", "Name", "ValueField", "ID", 1, "form-control", 3, "Data", "ValuePrimitive", "DefaultItem"], ["for", "status"], ["formControlName", "status", "TextField", "text", "ValueField", "value", 1, "form-control", 3, "Data", "ValuePrimitive"], [1, "fa-solid", "fa-shield-alt"], [1, "form-field", "full-width"], [1, "checkbox-label", "disabled"], ["type", "checkbox", "formControlName", "exposeAsAction", 1, "mj-checkbox", 3, "disabled"], [1, "field-hint", "disabled-hint"], [1, "fa-solid", "fa-info-circle"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-save"]], template: function SubAgentAdvancedSettingsDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
342
319
|
i0.ɵɵelementStart(0, "div", 0);
|
|
343
320
|
i0.ɵɵconditionalCreate(1, SubAgentAdvancedSettingsDialogComponent_Conditional_1_Template, 5, 0, "div", 1);
|
|
344
321
|
i0.ɵɵpipe(2, "async");
|
|
345
|
-
i0.ɵɵconditionalBranchCreate(3, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Template,
|
|
322
|
+
i0.ɵɵconditionalBranchCreate(3, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Template, 52, 20, "form", 2);
|
|
346
323
|
i0.ɵɵelementStart(4, "div", 3)(5, "button", 4);
|
|
347
324
|
i0.ɵɵpipe(6, "async");
|
|
348
325
|
i0.ɵɵlistener("click", function SubAgentAdvancedSettingsDialogComponent_Template_button_click_5_listener() { return ctx.cancel(); });
|
|
@@ -365,11 +342,13 @@ export class SubAgentAdvancedSettingsDialogComponent {
|
|
|
365
342
|
i0.ɵɵproperty("disabled", i0.ɵɵpipeBind1(9, 8, ctx.isSaving$) || false || (i0.ɵɵpipeBind1(10, 10, ctx.isLoading$) || false) || ctx.hasExecutionOrderError());
|
|
366
343
|
i0.ɵɵadvance(3);
|
|
367
344
|
i0.ɵɵconditional(i0.ɵɵpipeBind1(12, 12, ctx.isSaving$) ? 11 : 13);
|
|
368
|
-
} }, dependencies: [
|
|
345
|
+
} }, dependencies: [i1.ɵNgNoValidate, i1.CheckboxControlValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i2.MJButtonDirective, i2.MJDropdownComponent, i2.MJNumericInputComponent, i3.AsyncPipe], styles: [".sub-agent-advanced-settings-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n[_nghost-%COMP%] .k-dialog, \n[_nghost-%COMP%] .k-window {\n z-index: 10000 !important;\n}\n\n[_nghost-%COMP%] .k-overlay {\n z-index: 9999 !important;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: var(--mj-text-muted);\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n.loading-spinner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n\n\n.advanced-form[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.form-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n\n\nlabel[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.9rem;\n}\n\n.checkbox-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.checkbox-label.disabled[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n cursor: not-allowed;\n}\n\n.form-control[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.field-hint[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.disabled-hint[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-style: italic;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.disabled-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.field-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n\n\n.form-control.ng-invalid.ng-touched[_ngcontent-%COMP%], \n.error-border[_ngcontent-%COMP%] {\n border-color: var(--mj-status-error) !important;\n}\n\n.form-control.ng-valid.ng-touched[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n}\n\n\n\n.execution-mode-option[_ngcontent-%COMP%] {\n padding: 0.5rem 0;\n}\n\n.option-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.25rem;\n}\n\n.option-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n width: 16px;\n}\n\n.option-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 0.9rem;\n}\n\n.option-description[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n line-height: 1.3;\n margin-left: 1.5rem;\n}\n\n\n\n.dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[themeColor=\"primary\"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}\n\n\n\n\n\n\n.form-section[_ngcontent-%COMP%]:first-child .section-title[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n\n\n.form-section[_ngcontent-%COMP%]:nth-child(2) .section-title[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n\n\n.form-section[_ngcontent-%COMP%]:nth-child(3) .section-title[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n}\n\n\n\n@media (max-width: 768px) {\n .form-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .form-field.full-width[_ngcontent-%COMP%] {\n grid-column: 1;\n }\n\n .advanced-form[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n\n .section-title[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .dialog-footer[_ngcontent-%COMP%] {\n padding: 1rem;\n flex-direction: column;\n }\n\n .dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n\n\n.error-border[_ngcontent-%COMP%] {\n border: 2px solid var(--mj-status-error) !important;\n background-color: color-mix(in srgb, var(--mj-status-error) 4%, var(--mj-bg-surface));\n}"] }); }
|
|
369
346
|
}
|
|
370
347
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubAgentAdvancedSettingsDialogComponent, [{
|
|
371
348
|
type: Component,
|
|
372
|
-
args: [{ standalone: false, selector: 'mj-sub-agent-advanced-settings-dialog', template: "<!-- Sub-Agent Advanced Settings Dialog -->\n<div class=\"sub-agent-advanced-settings-dialog\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading sub-agent settings...</p>\n </div>\n } @else {\n \n <!-- Form Content -->\n <form [formGroup]=\"advancedForm\" class=\"advanced-form\">\n \n <!-- Execution Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Execution Order -->\n <div class=\"form-field\">\n <label for=\"executionOrder\">Execution Order *</label>\n <kendo-numerictextbox \n formControlName=\"executionOrder\"\n [min]=\"0\"\n [format]=\"'0'\"\n [class.error-border]=\"hasExecutionOrderError()\"\n class=\"form-control\">\n </kendo-numerictextbox>\n @if (isFieldInvalid('executionOrder')) {\n <div class=\"field-error\">{{ getFieldError('executionOrder') }}</div>\n }\n @if (hasExecutionOrderError()) {\n <div class=\"field-error\">{{ executionOrderError }}</div>\n }\n <small class=\"field-hint\">Order in which this sub-agent executes among siblings (0 = first). Must be unique among sibling agents.</small>\n </div>\n \n <!-- Execution Mode -->\n <div class=\"form-field\">\n <label for=\"executionMode\">Execution Mode *</label>\n <kendo-dropdownlist \n formControlName=\"executionMode\"\n [data]=\"executionModeOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"execution-mode-option\">\n <div class=\"option-header\">\n <i class=\"fa-solid {{ dataItem.icon }}\"></i>\n <span class=\"option-title\">{{ dataItem.text }}</span>\n </div>\n <div class=\"option-description\">{{ dataItem.description }}</div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (isFieldInvalid('executionMode')) {\n <div class=\"field-error\">{{ getFieldError('executionMode') }}</div>\n }\n <small class=\"field-hint\">{{ getExecutionModeDescription(advancedForm.get('executionMode')?.value) }}</small>\n </div>\n </div>\n </div>\n\n <!-- Agent Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-robot\"></i>\n Agent Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Agent Type -->\n <div class=\"form-field\">\n <label for=\"typeID\">Agent Type</label>\n <kendo-dropdownlist \n formControlName=\"typeID\"\n [data]=\"agentTypes$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ Name: 'Default Type', ID: null }\"\n class=\"form-control\">\n </kendo-dropdownlist>\n <small class=\"field-hint\">Specialized agent type that defines behavior and capabilities</small>\n </div>\n \n <!-- Status -->\n <div class=\"form-field\">\n <label for=\"status\">Status *</label>\n <kendo-dropdownlist \n formControlName=\"status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n </kendo-dropdownlist>\n @if (isFieldInvalid('status')) {\n <div class=\"field-error\">{{ getFieldError('status') }}</div>\n }\n <small class=\"field-hint\">Current operational status of this sub-agent</small>\n </div>\n </div>\n </div>\n\n <!-- Capability Restrictions Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-shield-alt\"></i>\n Capability Restrictions\n </h3>\n \n <div class=\"form-grid\">\n <!-- Expose As Action (Disabled for Sub-Agents) -->\n <div class=\"form-field full-width\">\n <label class=\"checkbox-label disabled\">\n <kendo-checkbox \n formControlName=\"exposeAsAction\"\n [disabled]=\"true\">\n </kendo-checkbox>\n Expose As Action\n </label>\n <small class=\"field-hint disabled-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Sub-agents cannot be exposed as actions. Only root agents (without parents) can be exposed as actions for use by other agents.\n </small>\n </div>\n </div>\n </div>\n </form>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button kendoButton \n look=\"flat\" \n (click)=\"cancel()\"\n [disabled]=\"(isSaving$ | async) || false\">\n Cancel\n </button>\n \n <button kendoButton \n themeColor=\"primary\" \n (click)=\"save()\"\n [disabled]=\"((isSaving$ | async) || false) || ((isLoading$ | async) || false) || hasExecutionOrderError()\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Save Settings\n }\n </button>\n </div>\n</div>", styles: [".sub-agent-advanced-settings-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* Ensure dialog appears above banner and other elements */\n:host ::ng-deep .k-dialog,\n:host ::ng-deep .k-window {\n z-index: 10000 !important;\n}\n\n:host ::ng-deep .k-overlay {\n z-index: 9999 !important;\n}\n\n/* === Loading State === */\n.loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: var(--mj-text-muted);\n}\n\n.loading-spinner {\n margin-bottom: 1rem;\n}\n\n.loading-spinner i {\n color: var(--mj-brand-primary);\n}\n\n.loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* === Form Layout === */\n.advanced-form {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title i {\n color: var(--mj-brand-primary);\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width {\n grid-column: 1 / -1;\n}\n\n/* === Form Controls === */\nlabel {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.9rem;\n}\n\n.checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.checkbox-label.disabled {\n color: var(--mj-text-muted);\n cursor: not-allowed;\n}\n\n.form-control {\n width: 100%;\n}\n\n.field-hint {\n color: var(--mj-text-muted);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.disabled-hint {\n color: var(--mj-text-disabled);\n font-style: italic;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.disabled-hint i {\n color: var(--mj-brand-primary);\n}\n\n.field-error {\n color: var(--mj-status-error);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* === Validation States === */\n.form-control.ng-invalid.ng-touched,\n.error-border {\n border-color: var(--mj-status-error) !important;\n}\n\n.form-control.ng-valid.ng-touched {\n border-color: var(--mj-status-success);\n}\n\n/* === Execution Mode Option Template === */\n.execution-mode-option {\n padding: 0.5rem 0;\n}\n\n.option-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.25rem;\n}\n\n.option-header i {\n color: var(--mj-brand-primary);\n width: 16px;\n}\n\n.option-title {\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 0.9rem;\n}\n\n.option-description {\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n line-height: 1.3;\n margin-left: 1.5rem;\n}\n\n/* === Dialog Footer === */\n.dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.dialog-footer button {\n min-width: 120px;\n}\n\n.dialog-footer button[themeColor=\"primary\"] i {\n margin-right: 0.5rem;\n}\n\n/* === Section-Specific Styling === */\n\n/* Execution Configuration */\n.form-section:first-child .section-title {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n/* Agent Configuration */\n.form-section:nth-child(2) .section-title {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n/* Capability Restrictions */\n.form-section:nth-child(3) .section-title {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .form-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .form-field.full-width {\n grid-column: 1;\n }\n\n .advanced-form {\n padding: 1rem;\n }\n\n .section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .dialog-footer {\n padding: 1rem;\n flex-direction: column;\n }\n\n .dialog-footer button {\n width: 100%;\n }\n}\n\n/* === Error Highlighting === */\n.error-border {\n border: 2px solid var(--mj-status-error) !important;\n background-color: color-mix(in srgb, var(--mj-status-error) 4%, var(--mj-bg-surface));\n}\n"] }]
|
|
373
|
-
}], () => [{ type: i1.
|
|
374
|
-
|
|
349
|
+
args: [{ standalone: false, selector: 'mj-sub-agent-advanced-settings-dialog', template: "<!-- Sub-Agent Advanced Settings Dialog -->\n<div class=\"sub-agent-advanced-settings-dialog\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading sub-agent settings...</p>\n </div>\n } @else {\n \n <!-- Form Content -->\n <form [formGroup]=\"advancedForm\" class=\"advanced-form\">\n \n <!-- Execution Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Execution Order -->\n <div class=\"form-field\">\n <label for=\"executionOrder\">Execution Order *</label>\n <mj-numeric-input\n formControlName=\"executionOrder\"\n [Min]=\"0\"\n Format=\"0\"\n [class.error-border]=\"hasExecutionOrderError()\"\n class=\"form-control\">\n </mj-numeric-input>\n @if (isFieldInvalid('executionOrder')) {\n <div class=\"field-error\">{{ getFieldError('executionOrder') }}</div>\n }\n @if (hasExecutionOrderError()) {\n <div class=\"field-error\">{{ executionOrderError }}</div>\n }\n <small class=\"field-hint\">Order in which this sub-agent executes among siblings (0 = first). Must be unique among sibling agents.</small>\n </div>\n \n <!-- Execution Mode -->\n <div class=\"form-field\">\n <label for=\"executionMode\">Execution Mode *</label>\n <mj-dropdown\n formControlName=\"executionMode\"\n [Data]=\"executionModeOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"form-control\">\n </mj-dropdown>\n @if (isFieldInvalid('executionMode')) {\n <div class=\"field-error\">{{ getFieldError('executionMode') }}</div>\n }\n <small class=\"field-hint\">{{ getExecutionModeDescription(advancedForm.get('executionMode')?.value) }}</small>\n </div>\n </div>\n </div>\n\n <!-- Agent Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-robot\"></i>\n Agent Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Agent Type -->\n <div class=\"form-field\">\n <label for=\"typeID\">Agent Type</label>\n <mj-dropdown\n formControlName=\"typeID\"\n [Data]=\"agentTypes$ | async\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'Default Type', ID: null }\"\n class=\"form-control\">\n </mj-dropdown>\n <small class=\"field-hint\">Specialized agent type that defines behavior and capabilities</small>\n </div>\n \n <!-- Status -->\n <div class=\"form-field\">\n <label for=\"status\">Status *</label>\n <mj-dropdown\n formControlName=\"status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"form-control\">\n </mj-dropdown>\n @if (isFieldInvalid('status')) {\n <div class=\"field-error\">{{ getFieldError('status') }}</div>\n }\n <small class=\"field-hint\">Current operational status of this sub-agent</small>\n </div>\n </div>\n </div>\n\n <!-- Capability Restrictions Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-shield-alt\"></i>\n Capability Restrictions\n </h3>\n \n <div class=\"form-grid\">\n <!-- Expose As Action (Disabled for Sub-Agents) -->\n <div class=\"form-field full-width\">\n <label class=\"checkbox-label disabled\">\n <input type=\"checkbox\"\n class=\"mj-checkbox\"\n formControlName=\"exposeAsAction\"\n [disabled]=\"true\">\n Expose As Action\n </label>\n <small class=\"field-hint disabled-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Sub-agents cannot be exposed as actions. Only root agents (without parents) can be exposed as actions for use by other agents.\n </small>\n </div>\n </div>\n </div>\n </form>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button mjButton\n variant=\"flat\"\n (click)=\"cancel()\"\n [disabled]=\"(isSaving$ | async) || false\">\n Cancel\n </button>\n\n <button mjButton\n variant=\"primary\"\n (click)=\"save()\"\n [disabled]=\"((isSaving$ | async) || false) || ((isLoading$ | async) || false) || hasExecutionOrderError()\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Save Settings\n }\n </button>\n </div>\n</div>", styles: [".sub-agent-advanced-settings-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* Ensure dialog appears above banner and other elements */\n:host ::ng-deep .k-dialog,\n:host ::ng-deep .k-window {\n z-index: 10000 !important;\n}\n\n:host ::ng-deep .k-overlay {\n z-index: 9999 !important;\n}\n\n/* === Loading State === */\n.loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: var(--mj-text-muted);\n}\n\n.loading-spinner {\n margin-bottom: 1rem;\n}\n\n.loading-spinner i {\n color: var(--mj-brand-primary);\n}\n\n.loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* === Form Layout === */\n.advanced-form {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title i {\n color: var(--mj-brand-primary);\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width {\n grid-column: 1 / -1;\n}\n\n/* === Form Controls === */\nlabel {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.9rem;\n}\n\n.checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.checkbox-label.disabled {\n color: var(--mj-text-muted);\n cursor: not-allowed;\n}\n\n.form-control {\n width: 100%;\n}\n\n.field-hint {\n color: var(--mj-text-muted);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.disabled-hint {\n color: var(--mj-text-disabled);\n font-style: italic;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.disabled-hint i {\n color: var(--mj-brand-primary);\n}\n\n.field-error {\n color: var(--mj-status-error);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* === Validation States === */\n.form-control.ng-invalid.ng-touched,\n.error-border {\n border-color: var(--mj-status-error) !important;\n}\n\n.form-control.ng-valid.ng-touched {\n border-color: var(--mj-status-success);\n}\n\n/* === Execution Mode Option Template === */\n.execution-mode-option {\n padding: 0.5rem 0;\n}\n\n.option-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.25rem;\n}\n\n.option-header i {\n color: var(--mj-brand-primary);\n width: 16px;\n}\n\n.option-title {\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 0.9rem;\n}\n\n.option-description {\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n line-height: 1.3;\n margin-left: 1.5rem;\n}\n\n/* === Dialog Footer === */\n.dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.dialog-footer button {\n min-width: 120px;\n}\n\n.dialog-footer button[themeColor=\"primary\"] i {\n margin-right: 0.5rem;\n}\n\n/* === Section-Specific Styling === */\n\n/* Execution Configuration */\n.form-section:first-child .section-title {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n/* Agent Configuration */\n.form-section:nth-child(2) .section-title {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n/* Capability Restrictions */\n.form-section:nth-child(3) .section-title {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .form-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .form-field.full-width {\n grid-column: 1;\n }\n\n .advanced-form {\n padding: 1rem;\n }\n\n .section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .dialog-footer {\n padding: 1rem;\n flex-direction: column;\n }\n\n .dialog-footer button {\n width: 100%;\n }\n}\n\n/* === Error Highlighting === */\n.error-border {\n border: 2px solid var(--mj-status-error) !important;\n background-color: color-mix(in srgb, var(--mj-status-error) 4%, var(--mj-bg-surface));\n}\n"] }]
|
|
350
|
+
}], () => [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }], { DialogClose: [{
|
|
351
|
+
type: Output
|
|
352
|
+
}] }); })();
|
|
353
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubAgentAdvancedSettingsDialogComponent, { className: "SubAgentAdvancedSettingsDialogComponent", filePath: "src/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.ts", lineNumber: 28 }); })();
|
|
375
354
|
//# sourceMappingURL=sub-agent-advanced-settings-dialog.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sub-agent-advanced-settings-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.ts","../../../../src/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { DialogRef, WindowRef } from '@progress/kendo-angular-dialog';\nimport { Subject, BehaviorSubject, takeUntil } from 'rxjs';\nimport { RunView } from '@memberjunction/core';\nimport { MJAIAgentTypeEntity } from '@memberjunction/core-entities';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJAIAgentEntityExtended } from '@memberjunction/ai-core-plus';\nimport { UUIDsEqual } from '@memberjunction/global';\n\nexport interface SubAgentAdvancedSettingsFormData {\n executionOrder: number;\n executionMode: 'Sequential' | 'Parallel';\n status: 'Active' | 'Disabled' | 'Pending';\n typeID: string | null;\n exposeAsAction: boolean;\n}\n\n/**\n * Advanced Settings dialog for Sub-Agents.\n * Manages execution order, execution mode, and other advanced sub-agent configurations.\n */\n@Component({\n standalone: false,\n selector: 'mj-sub-agent-advanced-settings-dialog',\n templateUrl: './sub-agent-advanced-settings-dialog.component.html',\n styleUrls: ['./sub-agent-advanced-settings-dialog.component.css']\n})\nexport class SubAgentAdvancedSettingsDialogComponent implements OnInit, OnDestroy {\n \n // Input properties set by service\n subAgent!: MJAIAgentEntityExtended;\n allSubAgents: MJAIAgentEntityExtended[] = []; // For execution order validation\n \n // Reactive state management\n private destroy$ = new Subject<void>();\n public result = new Subject<SubAgentAdvancedSettingsFormData | null>();\n \n // Form and data\n advancedForm!: FormGroup;\n isLoading$ = new BehaviorSubject<boolean>(false);\n isSaving$ = new BehaviorSubject<boolean>(false);\n \n // Dropdown data\n agentTypes$ = new BehaviorSubject<MJAIAgentTypeEntity[]>([]);\n \n // Available options\n executionModeOptions = [\n { \n text: 'Sequential', \n value: 'Sequential', \n description: 'Child agents execute one after another in order',\n icon: 'fa-list-ol'\n },\n { \n text: 'Parallel', \n value: 'Parallel', \n description: 'Child agents execute simultaneously for faster processing',\n icon: 'fa-layer-group'\n }\n ];\n\n statusOptions = [\n { text: 'Active', value: 'Active' },\n { text: 'Disabled', value: 'Disabled' },\n { text: 'Pending', value: 'Pending' }\n ];\n\n // Execution order validation\n executionOrderError: string | null = null;\n\n constructor(\n private dialogRef: WindowRef,\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.initializeForm();\n this.loadDropdownData();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initializeForm() {\n this.advancedForm = this.fb.group({\n executionOrder: [this.subAgent.ExecutionOrder || 0, [Validators.required, Validators.min(0)]],\n executionMode: [this.subAgent.ExecutionMode || 'Sequential', [Validators.required]],\n status: [this.subAgent.Status || 'Active', [Validators.required]],\n typeID: [this.subAgent.TypeID],\n exposeAsAction: [this.subAgent.ExposeAsAction || false]\n });\n\n this.setupValidationLogic();\n }\n\n private setupValidationLogic() {\n // Execution order validation\n const executionOrderControl = this.advancedForm.get('executionOrder');\n executionOrderControl?.valueChanges.pipe(\n takeUntil(this.destroy$)\n ).subscribe(order => {\n this.validateExecutionOrder(order);\n });\n\n // ExposeAsAction validation (sub-agents cannot be exposed as actions)\n const exposeAsActionControl = this.advancedForm.get('exposeAsAction');\n exposeAsActionControl?.valueChanges.pipe(\n takeUntil(this.destroy$)\n ).subscribe(expose => {\n if (expose && this.subAgent.ParentID) {\n // Sub-agents cannot be exposed as actions\n exposeAsActionControl.setValue(false);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Sub-agents cannot be exposed as actions. Only root agents can be exposed.',\n 'warning',\n 4000\n );\n }\n });\n }\n\n private validateExecutionOrder(order: number) {\n if (order == null) {\n this.executionOrderError = null;\n return;\n }\n\n // Check for conflicts with other sub-agents under the same parent (excluding current one)\n const conflictingAgent = this.allSubAgents.find(agent => \n !UUIDsEqual(agent.ID, this.subAgent.ID) && \n UUIDsEqual(agent.ParentID, this.subAgent.ParentID) &&\n agent.ExecutionOrder === order\n );\n\n if (conflictingAgent) {\n this.executionOrderError = `Execution order ${order} is already used by \"${conflictingAgent.Name}\". Please choose a different order.`;\n } else {\n this.executionOrderError = null;\n }\n\n this.cdr.detectChanges();\n }\n\n private async loadDropdownData() {\n this.isLoading$.next(true);\n \n try {\n const rv = new RunView();\n \n // Load AI Agent Types\n const agentTypesResult = await rv.RunView<MJAIAgentTypeEntity>({\n EntityName: 'MJ: AI Agent Types',\n ExtraFilter: 'IsActive = 1',\n OrderBy: 'Name',\n ResultType: 'entity_object',\n MaxRows: 1000\n });\n\n if (agentTypesResult.Success) {\n this.agentTypes$.next(agentTypesResult.Results || []);\n }\n\n } catch (error) {\n console.error('Error loading dropdown data:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error loading form data. Please try again.',\n 'error',\n 3000\n );\n } finally {\n this.isLoading$.next(false);\n }\n }\n\n // === Validation Helpers ===\n\n isFieldInvalid(fieldName: string): boolean {\n const field = this.advancedForm.get(fieldName);\n return !!(field && field.invalid && (field.dirty || field.touched));\n }\n\n getFieldError(fieldName: string): string {\n const field = this.advancedForm.get(fieldName);\n if (field?.errors) {\n if (field.errors['required']) return `${fieldName} is required`;\n if (field.errors['min']) return `${fieldName} must be greater than or equal to ${field.errors['min'].min}`;\n }\n return '';\n }\n\n hasExecutionOrderError(): boolean {\n return !!this.executionOrderError;\n }\n\n // === Execution Mode Helpers ===\n\n getExecutionModeIcon(mode: string): string {\n const option = this.executionModeOptions.find(opt => opt.value === mode);\n return option?.icon || 'fa-robot';\n }\n\n getExecutionModeDescription(mode: string): string {\n const option = this.executionModeOptions.find(opt => opt.value === mode);\n return option?.description || '';\n }\n\n // === Dialog Actions ===\n\n cancel() {\n this.result.next(null);\n this.dialogRef.close();\n }\n\n async save() {\n if (this.advancedForm.invalid || this.hasExecutionOrderError()) {\n this.advancedForm.markAllAsTouched();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Please fix validation errors before saving',\n 'error',\n 3000\n );\n return;\n }\n\n this.isSaving$.next(true);\n \n try {\n const formData: SubAgentAdvancedSettingsFormData = {\n executionOrder: this.advancedForm.get('executionOrder')?.value,\n executionMode: this.advancedForm.get('executionMode')?.value,\n status: this.advancedForm.get('status')?.value,\n typeID: this.advancedForm.get('typeID')?.value || null,\n exposeAsAction: false // Sub-agents cannot be exposed as actions\n };\n\n this.result.next(formData);\n this.dialogRef.close();\n \n } catch (error) {\n console.error('Error saving advanced settings:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error saving settings. Please try again.',\n 'error',\n 3000\n );\n } finally {\n this.isSaving$.next(false);\n }\n }\n}","<!-- Sub-Agent Advanced Settings Dialog -->\n<div class=\"sub-agent-advanced-settings-dialog\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading sub-agent settings...</p>\n </div>\n } @else {\n \n <!-- Form Content -->\n <form [formGroup]=\"advancedForm\" class=\"advanced-form\">\n \n <!-- Execution Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Execution Order -->\n <div class=\"form-field\">\n <label for=\"executionOrder\">Execution Order *</label>\n <kendo-numerictextbox \n formControlName=\"executionOrder\"\n [min]=\"0\"\n [format]=\"'0'\"\n [class.error-border]=\"hasExecutionOrderError()\"\n class=\"form-control\">\n </kendo-numerictextbox>\n @if (isFieldInvalid('executionOrder')) {\n <div class=\"field-error\">{{ getFieldError('executionOrder') }}</div>\n }\n @if (hasExecutionOrderError()) {\n <div class=\"field-error\">{{ executionOrderError }}</div>\n }\n <small class=\"field-hint\">Order in which this sub-agent executes among siblings (0 = first). Must be unique among sibling agents.</small>\n </div>\n \n <!-- Execution Mode -->\n <div class=\"form-field\">\n <label for=\"executionMode\">Execution Mode *</label>\n <kendo-dropdownlist \n formControlName=\"executionMode\"\n [data]=\"executionModeOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"execution-mode-option\">\n <div class=\"option-header\">\n <i class=\"fa-solid {{ dataItem.icon }}\"></i>\n <span class=\"option-title\">{{ dataItem.text }}</span>\n </div>\n <div class=\"option-description\">{{ dataItem.description }}</div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (isFieldInvalid('executionMode')) {\n <div class=\"field-error\">{{ getFieldError('executionMode') }}</div>\n }\n <small class=\"field-hint\">{{ getExecutionModeDescription(advancedForm.get('executionMode')?.value) }}</small>\n </div>\n </div>\n </div>\n\n <!-- Agent Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-robot\"></i>\n Agent Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Agent Type -->\n <div class=\"form-field\">\n <label for=\"typeID\">Agent Type</label>\n <kendo-dropdownlist \n formControlName=\"typeID\"\n [data]=\"agentTypes$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ Name: 'Default Type', ID: null }\"\n class=\"form-control\">\n </kendo-dropdownlist>\n <small class=\"field-hint\">Specialized agent type that defines behavior and capabilities</small>\n </div>\n \n <!-- Status -->\n <div class=\"form-field\">\n <label for=\"status\">Status *</label>\n <kendo-dropdownlist \n formControlName=\"status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n </kendo-dropdownlist>\n @if (isFieldInvalid('status')) {\n <div class=\"field-error\">{{ getFieldError('status') }}</div>\n }\n <small class=\"field-hint\">Current operational status of this sub-agent</small>\n </div>\n </div>\n </div>\n\n <!-- Capability Restrictions Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-shield-alt\"></i>\n Capability Restrictions\n </h3>\n \n <div class=\"form-grid\">\n <!-- Expose As Action (Disabled for Sub-Agents) -->\n <div class=\"form-field full-width\">\n <label class=\"checkbox-label disabled\">\n <kendo-checkbox \n formControlName=\"exposeAsAction\"\n [disabled]=\"true\">\n </kendo-checkbox>\n Expose As Action\n </label>\n <small class=\"field-hint disabled-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Sub-agents cannot be exposed as actions. Only root agents (without parents) can be exposed as actions for use by other agents.\n </small>\n </div>\n </div>\n </div>\n </form>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button kendoButton \n look=\"flat\" \n (click)=\"cancel()\"\n [disabled]=\"(isSaving$ | async) || false\">\n Cancel\n </button>\n \n <button kendoButton \n themeColor=\"primary\" \n (click)=\"save()\"\n [disabled]=\"((isSaving$ | async) || false) || ((isLoading$ | async) || false) || hasExecutionOrderError()\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Save Settings\n }\n </button>\n </div>\n</div>"]}
|
|
1
|
+
{"version":3,"file":"sub-agent-advanced-settings-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.ts","../../../../src/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Subject, BehaviorSubject, takeUntil } from 'rxjs';\nimport { RunView } from '@memberjunction/core';\nimport { MJAIAgentTypeEntity } from '@memberjunction/core-entities';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJAIAgentEntityExtended } from '@memberjunction/ai-core-plus';\nimport { UUIDsEqual } from '@memberjunction/global';\n\nexport interface SubAgentAdvancedSettingsFormData {\n executionOrder: number;\n executionMode: 'Sequential' | 'Parallel';\n status: 'Active' | 'Disabled' | 'Pending';\n typeID: string | null;\n exposeAsAction: boolean;\n}\n\n/**\n * Advanced Settings dialog for Sub-Agents.\n * Manages execution order, execution mode, and other advanced sub-agent configurations.\n */\n@Component({\n standalone: false,\n selector: 'mj-sub-agent-advanced-settings-dialog',\n templateUrl: './sub-agent-advanced-settings-dialog.component.html',\n styleUrls: ['./sub-agent-advanced-settings-dialog.component.css']\n})\nexport class SubAgentAdvancedSettingsDialogComponent implements OnInit, OnDestroy {\n \n // Input properties set by service\n subAgent!: MJAIAgentEntityExtended;\n allSubAgents: MJAIAgentEntityExtended[] = []; // For execution order validation\n \n // Reactive state management\n private destroy$ = new Subject<void>();\n public result = new Subject<SubAgentAdvancedSettingsFormData | null>();\n \n // Form and data\n advancedForm!: FormGroup;\n isLoading$ = new BehaviorSubject<boolean>(false);\n isSaving$ = new BehaviorSubject<boolean>(false);\n \n // Dropdown data\n agentTypes$ = new BehaviorSubject<MJAIAgentTypeEntity[]>([]);\n \n // Available options\n executionModeOptions = [\n { \n text: 'Sequential', \n value: 'Sequential', \n description: 'Child agents execute one after another in order',\n icon: 'fa-list-ol'\n },\n { \n text: 'Parallel', \n value: 'Parallel', \n description: 'Child agents execute simultaneously for faster processing',\n icon: 'fa-layer-group'\n }\n ];\n\n statusOptions = [\n { text: 'Active', value: 'Active' },\n { text: 'Disabled', value: 'Disabled' },\n { text: 'Pending', value: 'Pending' }\n ];\n\n // Execution order validation\n executionOrderError: string | null = null;\n\n @Output() DialogClose = new EventEmitter<void>();\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.initializeForm();\n this.loadDropdownData();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initializeForm() {\n this.advancedForm = this.fb.group({\n executionOrder: [this.subAgent.ExecutionOrder || 0, [Validators.required, Validators.min(0)]],\n executionMode: [this.subAgent.ExecutionMode || 'Sequential', [Validators.required]],\n status: [this.subAgent.Status || 'Active', [Validators.required]],\n typeID: [this.subAgent.TypeID],\n exposeAsAction: [this.subAgent.ExposeAsAction || false]\n });\n\n this.setupValidationLogic();\n }\n\n private setupValidationLogic() {\n // Execution order validation\n const executionOrderControl = this.advancedForm.get('executionOrder');\n executionOrderControl?.valueChanges.pipe(\n takeUntil(this.destroy$)\n ).subscribe(order => {\n this.validateExecutionOrder(order);\n });\n\n // ExposeAsAction validation (sub-agents cannot be exposed as actions)\n const exposeAsActionControl = this.advancedForm.get('exposeAsAction');\n exposeAsActionControl?.valueChanges.pipe(\n takeUntil(this.destroy$)\n ).subscribe(expose => {\n if (expose && this.subAgent.ParentID) {\n // Sub-agents cannot be exposed as actions\n exposeAsActionControl.setValue(false);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Sub-agents cannot be exposed as actions. Only root agents can be exposed.',\n 'warning',\n 4000\n );\n }\n });\n }\n\n private validateExecutionOrder(order: number) {\n if (order == null) {\n this.executionOrderError = null;\n return;\n }\n\n // Check for conflicts with other sub-agents under the same parent (excluding current one)\n const conflictingAgent = this.allSubAgents.find(agent => \n !UUIDsEqual(agent.ID, this.subAgent.ID) && \n UUIDsEqual(agent.ParentID, this.subAgent.ParentID) &&\n agent.ExecutionOrder === order\n );\n\n if (conflictingAgent) {\n this.executionOrderError = `Execution order ${order} is already used by \"${conflictingAgent.Name}\". Please choose a different order.`;\n } else {\n this.executionOrderError = null;\n }\n\n this.cdr.detectChanges();\n }\n\n private async loadDropdownData() {\n this.isLoading$.next(true);\n \n try {\n const rv = new RunView();\n \n // Load AI Agent Types\n const agentTypesResult = await rv.RunView<MJAIAgentTypeEntity>({\n EntityName: 'MJ: AI Agent Types',\n ExtraFilter: 'IsActive = 1',\n OrderBy: 'Name',\n ResultType: 'entity_object',\n MaxRows: 1000\n });\n\n if (agentTypesResult.Success) {\n this.agentTypes$.next(agentTypesResult.Results || []);\n }\n\n } catch (error) {\n console.error('Error loading dropdown data:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error loading form data. Please try again.',\n 'error',\n 3000\n );\n } finally {\n this.isLoading$.next(false);\n }\n }\n\n // === Validation Helpers ===\n\n isFieldInvalid(fieldName: string): boolean {\n const field = this.advancedForm.get(fieldName);\n return !!(field && field.invalid && (field.dirty || field.touched));\n }\n\n getFieldError(fieldName: string): string {\n const field = this.advancedForm.get(fieldName);\n if (field?.errors) {\n if (field.errors['required']) return `${fieldName} is required`;\n if (field.errors['min']) return `${fieldName} must be greater than or equal to ${field.errors['min'].min}`;\n }\n return '';\n }\n\n hasExecutionOrderError(): boolean {\n return !!this.executionOrderError;\n }\n\n // === Execution Mode Helpers ===\n\n getExecutionModeIcon(mode: string): string {\n const option = this.executionModeOptions.find(opt => opt.value === mode);\n return option?.icon || 'fa-robot';\n }\n\n getExecutionModeDescription(mode: string): string {\n const option = this.executionModeOptions.find(opt => opt.value === mode);\n return option?.description || '';\n }\n\n // === Dialog Actions ===\n\n cancel() {\n this.result.next(null);\n this.DialogClose.emit();\n }\n\n async save() {\n if (this.advancedForm.invalid || this.hasExecutionOrderError()) {\n this.advancedForm.markAllAsTouched();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Please fix validation errors before saving',\n 'error',\n 3000\n );\n return;\n }\n\n this.isSaving$.next(true);\n \n try {\n const formData: SubAgentAdvancedSettingsFormData = {\n executionOrder: this.advancedForm.get('executionOrder')?.value,\n executionMode: this.advancedForm.get('executionMode')?.value,\n status: this.advancedForm.get('status')?.value,\n typeID: this.advancedForm.get('typeID')?.value || null,\n exposeAsAction: false // Sub-agents cannot be exposed as actions\n };\n\n this.result.next(formData);\n this.DialogClose.emit();\n \n } catch (error) {\n console.error('Error saving advanced settings:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error saving settings. Please try again.',\n 'error',\n 3000\n );\n } finally {\n this.isSaving$.next(false);\n }\n }\n}","<!-- Sub-Agent Advanced Settings Dialog -->\n<div class=\"sub-agent-advanced-settings-dialog\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading sub-agent settings...</p>\n </div>\n } @else {\n \n <!-- Form Content -->\n <form [formGroup]=\"advancedForm\" class=\"advanced-form\">\n \n <!-- Execution Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Execution Order -->\n <div class=\"form-field\">\n <label for=\"executionOrder\">Execution Order *</label>\n <mj-numeric-input\n formControlName=\"executionOrder\"\n [Min]=\"0\"\n Format=\"0\"\n [class.error-border]=\"hasExecutionOrderError()\"\n class=\"form-control\">\n </mj-numeric-input>\n @if (isFieldInvalid('executionOrder')) {\n <div class=\"field-error\">{{ getFieldError('executionOrder') }}</div>\n }\n @if (hasExecutionOrderError()) {\n <div class=\"field-error\">{{ executionOrderError }}</div>\n }\n <small class=\"field-hint\">Order in which this sub-agent executes among siblings (0 = first). Must be unique among sibling agents.</small>\n </div>\n \n <!-- Execution Mode -->\n <div class=\"form-field\">\n <label for=\"executionMode\">Execution Mode *</label>\n <mj-dropdown\n formControlName=\"executionMode\"\n [Data]=\"executionModeOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"form-control\">\n </mj-dropdown>\n @if (isFieldInvalid('executionMode')) {\n <div class=\"field-error\">{{ getFieldError('executionMode') }}</div>\n }\n <small class=\"field-hint\">{{ getExecutionModeDescription(advancedForm.get('executionMode')?.value) }}</small>\n </div>\n </div>\n </div>\n\n <!-- Agent Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-robot\"></i>\n Agent Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Agent Type -->\n <div class=\"form-field\">\n <label for=\"typeID\">Agent Type</label>\n <mj-dropdown\n formControlName=\"typeID\"\n [Data]=\"agentTypes$ | async\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'Default Type', ID: null }\"\n class=\"form-control\">\n </mj-dropdown>\n <small class=\"field-hint\">Specialized agent type that defines behavior and capabilities</small>\n </div>\n \n <!-- Status -->\n <div class=\"form-field\">\n <label for=\"status\">Status *</label>\n <mj-dropdown\n formControlName=\"status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"form-control\">\n </mj-dropdown>\n @if (isFieldInvalid('status')) {\n <div class=\"field-error\">{{ getFieldError('status') }}</div>\n }\n <small class=\"field-hint\">Current operational status of this sub-agent</small>\n </div>\n </div>\n </div>\n\n <!-- Capability Restrictions Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-shield-alt\"></i>\n Capability Restrictions\n </h3>\n \n <div class=\"form-grid\">\n <!-- Expose As Action (Disabled for Sub-Agents) -->\n <div class=\"form-field full-width\">\n <label class=\"checkbox-label disabled\">\n <input type=\"checkbox\"\n class=\"mj-checkbox\"\n formControlName=\"exposeAsAction\"\n [disabled]=\"true\">\n Expose As Action\n </label>\n <small class=\"field-hint disabled-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Sub-agents cannot be exposed as actions. Only root agents (without parents) can be exposed as actions for use by other agents.\n </small>\n </div>\n </div>\n </div>\n </form>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button mjButton\n variant=\"flat\"\n (click)=\"cancel()\"\n [disabled]=\"(isSaving$ | async) || false\">\n Cancel\n </button>\n\n <button mjButton\n variant=\"primary\"\n (click)=\"save()\"\n [disabled]=\"((isSaving$ | async) || false) || ((isLoading$ | async) || false) || hasExecutionOrderError()\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Save Settings\n }\n </button>\n </div>\n</div>"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { OnInit, OnDestroy, ChangeDetectorRef, EventEmitter } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
-
import { WindowRef } from '@progress/kendo-angular-dialog';
|
|
4
3
|
import { Subject, BehaviorSubject } from 'rxjs';
|
|
5
4
|
import { MJAIAgentTypeEntity } from '@memberjunction/core-entities';
|
|
6
5
|
import { MJAIAgentEntityExtended } from "@memberjunction/ai-core-plus";
|
|
@@ -25,7 +24,6 @@ export interface AgentDisplayItem extends MJAIAgentEntityExtended {
|
|
|
25
24
|
* Only shows agents with NULL ParentID (root agents) that can become sub-agents.
|
|
26
25
|
*/
|
|
27
26
|
export declare class SubAgentSelectorDialogComponent implements OnInit, OnDestroy {
|
|
28
|
-
private dialogRef;
|
|
29
27
|
private cdr;
|
|
30
28
|
config: SubAgentSelectorConfig;
|
|
31
29
|
private destroy$;
|
|
@@ -40,7 +38,8 @@ export declare class SubAgentSelectorDialogComponent implements OnInit, OnDestro
|
|
|
40
38
|
get selectedCount(): number;
|
|
41
39
|
get totalAgentCount(): number;
|
|
42
40
|
get filteredCount(): number;
|
|
43
|
-
|
|
41
|
+
DialogClose: EventEmitter<void>;
|
|
42
|
+
constructor(cdr: ChangeDetectorRef);
|
|
44
43
|
ngOnInit(): void;
|
|
45
44
|
ngOnDestroy(): void;
|
|
46
45
|
private initializeData;
|
|
@@ -57,6 +56,6 @@ export declare class SubAgentSelectorDialogComponent implements OnInit, OnDestro
|
|
|
57
56
|
createNew(): void;
|
|
58
57
|
addSelectedAgents(): Promise<void>;
|
|
59
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<SubAgentSelectorDialogComponent, never>;
|
|
60
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SubAgentSelectorDialogComponent, "mj-sub-agent-selector-dialog", never, {}, {}, never, never, false, never>;
|
|
59
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SubAgentSelectorDialogComponent, "mj-sub-agent-selector-dialog", never, {}, { "DialogClose": "DialogClose"; }, never, never, false, never>;
|
|
61
60
|
}
|
|
62
61
|
//# sourceMappingURL=sub-agent-selector-dialog.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sub-agent-selector-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/sub-agent-selector-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sub-agent-selector-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/sub-agent-selector-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2E,MAAM,MAAM,CAAC;AAEzH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;;AAGvE,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAMa,+BAAgC,YAAW,MAAM,EAAE,SAAS;IAoCrE,OAAO,CAAC,GAAG;IAjCb,MAAM,EAAG,sBAAsB,CAAC;IAGhC,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,yCAAgD;IAG7D,UAAU,sCAA+C;IACzD,WAAW,yCAAkD;IAC7D,eAAe,sCAA+C;IAC9D,eAAe,+BAA+C;IAC9D,UAAU,2BAAuC;IAGjD,aAAa,6BAAuB;IACpC,eAAe,0BAAsC;IAGrD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAES,WAAW,qBAA4B;gBAGvC,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAMR,WAAW;YAKG,cAAc;YAYd,kBAAkB;IAwChC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,uBAAuB;IAgB/B,UAAU,CAAC,MAAM,EAAE,MAAM;IAIzB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB;IAqC5C,WAAW;IAIX,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAO7C,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAWpD,MAAM;IAKN,SAAS;IAQH,iBAAiB;yCAvOZ,+BAA+B;2CAA/B,+BAA+B;CAwP3C"}
|