@memberjunction/ng-core-entity-forms 5.22.0 → 5.23.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/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 +22 -27
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +51 -81
- 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 +80 -44
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +11 -8
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +39 -24
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.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 +35 -17
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +15 -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/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/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 +280 -279
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +102 -142
- 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,20 +1,17 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { Validators } from '@angular/forms';
|
|
3
3
|
import { Metadata } from '@memberjunction/core';
|
|
4
|
+
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
4
5
|
import { BehaviorSubject } from 'rxjs';
|
|
5
6
|
import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/forms";
|
|
8
|
-
import * as i2 from "@
|
|
9
|
-
import * as i3 from "@memberjunction/ng-
|
|
10
|
-
import * as i4 from "@
|
|
11
|
-
import * as i5 from "@progress/kendo-angular-inputs";
|
|
12
|
-
import * as i6 from "@progress/kendo-angular-dropdowns";
|
|
13
|
-
import * as i7 from "@progress/kendo-angular-buttons";
|
|
14
|
-
import * as i8 from "@angular/common";
|
|
9
|
+
import * as i2 from "@memberjunction/ng-shared";
|
|
10
|
+
import * as i3 from "@memberjunction/ng-ui-components";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
15
12
|
function NewAgentDialogComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
16
13
|
i0.ɵɵelementStart(0, "div", 2);
|
|
17
|
-
i0.ɵɵelement(1, "i",
|
|
14
|
+
i0.ɵɵelement(1, "i", 28);
|
|
18
15
|
i0.ɵɵelementStart(2, "span");
|
|
19
16
|
i0.ɵɵtext(3, "Creating sub-agent for: ");
|
|
20
17
|
i0.ɵɵelementStart(4, "strong");
|
|
@@ -26,57 +23,38 @@ function NewAgentDialogComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
26
23
|
i0.ɵɵtextInterpolate(ctx_r0.config.parentAgentName || "Parent Agent");
|
|
27
24
|
} }
|
|
28
25
|
function NewAgentDialogComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
-
i0.ɵɵelementStart(0, "div", 3)(1, "div",
|
|
26
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "div", 29);
|
|
30
27
|
i0.ɵɵtext(2, "Loading...");
|
|
31
28
|
i0.ɵɵelementEnd()();
|
|
32
29
|
} }
|
|
33
30
|
function NewAgentDialogComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
34
31
|
i0.ɵɵelementStart(0, "div", 8);
|
|
35
|
-
i0.ɵɵelement(1, "i",
|
|
32
|
+
i0.ɵɵelement(1, "i", 30);
|
|
36
33
|
i0.ɵɵtext(2, " Agent name is required ");
|
|
37
34
|
i0.ɵɵelementEnd();
|
|
38
35
|
} }
|
|
39
|
-
function
|
|
40
|
-
i0.ɵɵelementStart(0, "div", 32)(1, "div", 33);
|
|
41
|
-
i0.ɵɵelement(2, "i", 34);
|
|
42
|
-
i0.ɵɵelementEnd();
|
|
43
|
-
i0.ɵɵelementStart(3, "div", 35)(4, "span", 36);
|
|
44
|
-
i0.ɵɵtext(5);
|
|
45
|
-
i0.ɵɵelementEnd();
|
|
46
|
-
i0.ɵɵelementStart(6, "span", 37);
|
|
47
|
-
i0.ɵɵtext(7);
|
|
48
|
-
i0.ɵɵelementEnd()()();
|
|
49
|
-
} if (rf & 2) {
|
|
50
|
-
const dataItem_r2 = ctx.$implicit;
|
|
51
|
-
i0.ɵɵadvance(5);
|
|
52
|
-
i0.ɵɵtextInterpolate(dataItem_r2.Name);
|
|
53
|
-
i0.ɵɵadvance(2);
|
|
54
|
-
i0.ɵɵtextInterpolate(dataItem_r2.Vendor);
|
|
55
|
-
} }
|
|
56
|
-
function NewAgentDialogComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
function NewAgentDialogComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
57
37
|
i0.ɵɵelementStart(0, "div", 8);
|
|
58
|
-
i0.ɵɵelement(1, "i",
|
|
38
|
+
i0.ɵɵelement(1, "i", 30);
|
|
59
39
|
i0.ɵɵtext(2, " Please select an AI model ");
|
|
60
40
|
i0.ɵɵelementEnd();
|
|
61
41
|
} }
|
|
62
|
-
function
|
|
63
|
-
i0.ɵɵelement(0, "span",
|
|
42
|
+
function NewAgentDialogComponent_Conditional_59_Template(rf, ctx) { if (rf & 1) {
|
|
43
|
+
i0.ɵɵelement(0, "span", 31);
|
|
64
44
|
i0.ɵɵelementStart(1, "span");
|
|
65
45
|
i0.ɵɵtext(2, "Creating...");
|
|
66
46
|
i0.ɵɵelementEnd();
|
|
67
47
|
} }
|
|
68
|
-
function
|
|
69
|
-
i0.ɵɵelement(0, "i",
|
|
48
|
+
function NewAgentDialogComponent_Conditional_60_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
i0.ɵɵelement(0, "i", 32);
|
|
70
50
|
i0.ɵɵelementStart(1, "span");
|
|
71
51
|
i0.ɵɵtext(2, "Create Agent");
|
|
72
52
|
i0.ɵɵelementEnd();
|
|
73
53
|
} }
|
|
74
54
|
export class NewAgentDialogComponent {
|
|
75
|
-
constructor(fb,
|
|
55
|
+
constructor(fb, navigationService) {
|
|
76
56
|
this.fb = fb;
|
|
77
|
-
this.dialog = dialog;
|
|
78
57
|
this.navigationService = navigationService;
|
|
79
|
-
this.notificationService = notificationService;
|
|
80
58
|
this.config = {
|
|
81
59
|
redirectToForm: true
|
|
82
60
|
};
|
|
@@ -84,6 +62,8 @@ export class NewAgentDialogComponent {
|
|
|
84
62
|
this.models$ = new BehaviorSubject([]);
|
|
85
63
|
this.agentTypes$ = new BehaviorSubject([]);
|
|
86
64
|
this.isSubmitting = false;
|
|
65
|
+
/** Set by NewAgentDialogService after creation */
|
|
66
|
+
this.dialogRef = null;
|
|
87
67
|
}
|
|
88
68
|
ngOnInit() {
|
|
89
69
|
this.initializeForm();
|
|
@@ -120,7 +100,7 @@ export class NewAgentDialogComponent {
|
|
|
120
100
|
}
|
|
121
101
|
catch (error) {
|
|
122
102
|
console.error('Error loading data:', error);
|
|
123
|
-
|
|
103
|
+
console.error('Failed to load required data');
|
|
124
104
|
}
|
|
125
105
|
finally {
|
|
126
106
|
this.isLoading$.next(false);
|
|
@@ -151,9 +131,9 @@ export class NewAgentDialogComponent {
|
|
|
151
131
|
// Save the agent
|
|
152
132
|
const saveResult = await agent.Save();
|
|
153
133
|
if (saveResult) {
|
|
154
|
-
|
|
134
|
+
MJNotificationService.Instance.CreateSimpleNotification('Agent created successfully!', 'success', 3000);
|
|
155
135
|
// Close dialog with the new agent
|
|
156
|
-
this.
|
|
136
|
+
this.dialogRef?.Close({ agent, action: 'created' });
|
|
157
137
|
// Redirect to form if configured
|
|
158
138
|
if (this.config.redirectToForm && !this.config.parentAgentId) {
|
|
159
139
|
// Only redirect for top-level agents - use NavigationService to open the record
|
|
@@ -167,36 +147,19 @@ export class NewAgentDialogComponent {
|
|
|
167
147
|
}
|
|
168
148
|
}
|
|
169
149
|
catch (error) {
|
|
150
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
170
151
|
console.error('Error creating agent:', error);
|
|
171
|
-
|
|
152
|
+
MJNotificationService.Instance.CreateSimpleNotification('Failed to create agent: ' + errorMessage, 'error', 5000);
|
|
172
153
|
}
|
|
173
154
|
finally {
|
|
174
155
|
this.isSubmitting = false;
|
|
175
156
|
}
|
|
176
157
|
}
|
|
177
158
|
onCancel() {
|
|
178
|
-
this.
|
|
179
|
-
}
|
|
180
|
-
showSuccess(message) {
|
|
181
|
-
this.notificationService.show({
|
|
182
|
-
content: message,
|
|
183
|
-
type: { style: 'success', icon: true },
|
|
184
|
-
position: { horizontal: 'right', vertical: 'top' },
|
|
185
|
-
animation: { type: 'slide', duration: 300 },
|
|
186
|
-
hideAfter: 3000
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
showError(message) {
|
|
190
|
-
this.notificationService.show({
|
|
191
|
-
content: message,
|
|
192
|
-
type: { style: 'error', icon: true },
|
|
193
|
-
position: { horizontal: 'right', vertical: 'top' },
|
|
194
|
-
animation: { type: 'slide', duration: 300 },
|
|
195
|
-
hideAfter: 5000
|
|
196
|
-
});
|
|
159
|
+
this.dialogRef?.Close({ action: 'cancelled' });
|
|
197
160
|
}
|
|
198
|
-
static { this.ɵfac = function NewAgentDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NewAgentDialogComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.
|
|
199
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NewAgentDialogComponent, selectors: [["mj-new-agent-dialog"]], inputs: { config: "config" }, standalone: false, decls:
|
|
161
|
+
static { this.ɵfac = function NewAgentDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NewAgentDialogComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.NavigationService)); }; }
|
|
162
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NewAgentDialogComponent, selectors: [["mj-new-agent-dialog"]], inputs: { config: "config" }, standalone: false, decls: 61, vars: 17, consts: [[1, "new-agent-dialog"], [3, "ngSubmit", "formGroup"], [1, "parent-info"], [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, "fa-solid", "fa-robot"], [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) {
|
|
200
163
|
i0.ɵɵelementStart(0, "div", 0)(1, "form", 1);
|
|
201
164
|
i0.ɵɵlistener("ngSubmit", function NewAgentDialogComponent_Template_form_ngSubmit_1_listener() { return ctx.onSubmit(); });
|
|
202
165
|
i0.ɵɵconditionalCreate(2, NewAgentDialogComponent_Conditional_2_Template, 6, 1, "div", 2);
|
|
@@ -205,108 +168,98 @@ export class NewAgentDialogComponent {
|
|
|
205
168
|
i0.ɵɵelementStart(5, "div", 4)(6, "div", 5)(7, "label", 6);
|
|
206
169
|
i0.ɵɵtext(8, "Agent Name");
|
|
207
170
|
i0.ɵɵelementEnd();
|
|
208
|
-
i0.ɵɵelement(9, "
|
|
171
|
+
i0.ɵɵelement(9, "input", 7);
|
|
209
172
|
i0.ɵɵconditionalCreate(10, NewAgentDialogComponent_Conditional_10_Template, 3, 0, "div", 8);
|
|
210
173
|
i0.ɵɵelementEnd();
|
|
211
174
|
i0.ɵɵelementStart(11, "div", 5)(12, "label");
|
|
212
175
|
i0.ɵɵtext(13, "Description");
|
|
213
176
|
i0.ɵɵelementEnd();
|
|
214
|
-
i0.ɵɵelement(14, "
|
|
177
|
+
i0.ɵɵelement(14, "textarea", 9);
|
|
215
178
|
i0.ɵɵelementEnd();
|
|
216
179
|
i0.ɵɵelementStart(15, "div", 5)(16, "label", 6);
|
|
217
180
|
i0.ɵɵtext(17, "AI Model");
|
|
218
181
|
i0.ɵɵelementEnd();
|
|
219
|
-
i0.ɵɵ
|
|
182
|
+
i0.ɵɵelement(18, "mj-dropdown", 10);
|
|
220
183
|
i0.ɵɵpipe(19, "async");
|
|
221
|
-
i0.ɵɵ
|
|
222
|
-
i0.ɵɵelementEnd();
|
|
223
|
-
i0.ɵɵconditionalCreate(21, NewAgentDialogComponent_Conditional_21_Template, 3, 0, "div", 8);
|
|
184
|
+
i0.ɵɵconditionalCreate(20, NewAgentDialogComponent_Conditional_20_Template, 3, 0, "div", 8);
|
|
224
185
|
i0.ɵɵelementEnd();
|
|
225
|
-
i0.ɵɵelementStart(
|
|
226
|
-
i0.ɵɵtext(
|
|
186
|
+
i0.ɵɵelementStart(21, "div", 5)(22, "label");
|
|
187
|
+
i0.ɵɵtext(23, "System Prompt");
|
|
227
188
|
i0.ɵɵelementEnd();
|
|
228
|
-
i0.ɵɵelement(
|
|
229
|
-
i0.ɵɵelementStart(
|
|
230
|
-
i0.ɵɵelement(
|
|
231
|
-
i0.ɵɵtext(
|
|
189
|
+
i0.ɵɵelement(24, "textarea", 11);
|
|
190
|
+
i0.ɵɵelementStart(25, "div", 12);
|
|
191
|
+
i0.ɵɵelement(26, "i", 13);
|
|
192
|
+
i0.ɵɵtext(27, " This sets the agent's context and behavior ");
|
|
232
193
|
i0.ɵɵelementEnd()();
|
|
233
|
-
i0.ɵɵelementStart(
|
|
234
|
-
i0.ɵɵelement(
|
|
235
|
-
i0.ɵɵtext(
|
|
194
|
+
i0.ɵɵelementStart(28, "div", 14)(29, "div", 15);
|
|
195
|
+
i0.ɵɵelement(30, "i", 16);
|
|
196
|
+
i0.ɵɵtext(31, " Advanced Settings ");
|
|
236
197
|
i0.ɵɵelementEnd();
|
|
237
|
-
i0.ɵɵelementStart(
|
|
238
|
-
i0.ɵɵtext(
|
|
198
|
+
i0.ɵɵelementStart(32, "div", 17)(33, "div", 18)(34, "label");
|
|
199
|
+
i0.ɵɵtext(35, "Temperature");
|
|
239
200
|
i0.ɵɵelementEnd();
|
|
240
|
-
i0.ɵɵelementStart(
|
|
241
|
-
i0.ɵɵelement(
|
|
242
|
-
i0.ɵɵelementStart(
|
|
243
|
-
i0.ɵɵtext(
|
|
201
|
+
i0.ɵɵelementStart(36, "div", 19);
|
|
202
|
+
i0.ɵɵelement(37, "input", 20);
|
|
203
|
+
i0.ɵɵelementStart(38, "span", 21);
|
|
204
|
+
i0.ɵɵtext(39);
|
|
244
205
|
i0.ɵɵelementEnd()();
|
|
245
|
-
i0.ɵɵelementStart(
|
|
246
|
-
i0.ɵɵtext(
|
|
206
|
+
i0.ɵɵelementStart(40, "div", 12);
|
|
207
|
+
i0.ɵɵtext(41, "Higher values make output more creative");
|
|
247
208
|
i0.ɵɵelementEnd()();
|
|
248
|
-
i0.ɵɵelementStart(
|
|
249
|
-
i0.ɵɵtext(
|
|
209
|
+
i0.ɵɵelementStart(42, "div", 18)(43, "label");
|
|
210
|
+
i0.ɵɵtext(44, "Max Tokens");
|
|
250
211
|
i0.ɵɵelementEnd();
|
|
251
|
-
i0.ɵɵelement(
|
|
252
|
-
i0.ɵɵelementStart(
|
|
253
|
-
i0.ɵɵtext(
|
|
212
|
+
i0.ɵɵelement(45, "mj-numeric-input", 22);
|
|
213
|
+
i0.ɵɵelementStart(46, "div", 12);
|
|
214
|
+
i0.ɵɵtext(47, "Maximum response length");
|
|
254
215
|
i0.ɵɵelementEnd()();
|
|
255
|
-
i0.ɵɵelementStart(
|
|
256
|
-
i0.ɵɵelement(
|
|
257
|
-
i0.ɵɵelementStart(
|
|
258
|
-
i0.ɵɵtext(
|
|
216
|
+
i0.ɵɵelementStart(48, "div", 23)(49, "label");
|
|
217
|
+
i0.ɵɵelement(50, "input", 24);
|
|
218
|
+
i0.ɵɵelementStart(51, "span");
|
|
219
|
+
i0.ɵɵtext(52, "Enable Response Streaming");
|
|
259
220
|
i0.ɵɵelementEnd()();
|
|
260
|
-
i0.ɵɵelementStart(
|
|
261
|
-
i0.ɵɵtext(
|
|
221
|
+
i0.ɵɵelementStart(53, "div", 12);
|
|
222
|
+
i0.ɵɵtext(54, "Stream responses in real-time");
|
|
262
223
|
i0.ɵɵelementEnd()()()()();
|
|
263
|
-
i0.ɵɵelementStart(
|
|
264
|
-
i0.ɵɵlistener("click", function
|
|
265
|
-
i0.ɵɵtext(
|
|
224
|
+
i0.ɵɵelementStart(55, "div", 25)(56, "button", 26);
|
|
225
|
+
i0.ɵɵlistener("click", function NewAgentDialogComponent_Template_button_click_56_listener() { return ctx.onCancel(); });
|
|
226
|
+
i0.ɵɵtext(57, " Cancel ");
|
|
266
227
|
i0.ɵɵelementEnd();
|
|
267
|
-
i0.ɵɵelementStart(
|
|
268
|
-
i0.ɵɵconditionalCreate(
|
|
228
|
+
i0.ɵɵelementStart(58, "button", 27);
|
|
229
|
+
i0.ɵɵconditionalCreate(59, NewAgentDialogComponent_Conditional_59_Template, 3, 0)(60, NewAgentDialogComponent_Conditional_60_Template, 3, 0);
|
|
269
230
|
i0.ɵɵelementEnd()()()();
|
|
270
231
|
} if (rf & 2) {
|
|
271
|
-
let
|
|
272
|
-
let
|
|
273
|
-
let
|
|
232
|
+
let tmp_3_0;
|
|
233
|
+
let tmp_5_0;
|
|
234
|
+
let tmp_6_0;
|
|
274
235
|
i0.ɵɵadvance();
|
|
275
236
|
i0.ɵɵproperty("formGroup", ctx.form);
|
|
276
237
|
i0.ɵɵadvance();
|
|
277
238
|
i0.ɵɵconditional(ctx.config.parentAgentId ? 2 : -1);
|
|
278
239
|
i0.ɵɵadvance();
|
|
279
|
-
i0.ɵɵconditional(i0.ɵɵpipeBind1(4,
|
|
280
|
-
i0.ɵɵadvance(
|
|
281
|
-
i0.ɵɵ
|
|
282
|
-
i0.ɵɵadvance();
|
|
283
|
-
i0.ɵɵ
|
|
284
|
-
i0.ɵɵadvance(4);
|
|
285
|
-
i0.ɵɵproperty("rows", 3);
|
|
286
|
-
i0.ɵɵadvance(4);
|
|
287
|
-
i0.ɵɵproperty("data", i0.ɵɵpipeBind1(19, 23, ctx.models$));
|
|
288
|
-
i0.ɵɵadvance(3);
|
|
289
|
-
i0.ɵɵconditional(((tmp_7_0 = ctx.form.get("modelId")) == null ? null : tmp_7_0.invalid) && ((tmp_7_0 = ctx.form.get("modelId")) == null ? null : tmp_7_0.touched) ? 21 : -1);
|
|
290
|
-
i0.ɵɵadvance(4);
|
|
291
|
-
i0.ɵɵproperty("rows", 4);
|
|
292
|
-
i0.ɵɵadvance(13);
|
|
293
|
-
i0.ɵɵproperty("min", 0)("max", 2)("smallStep", 0.1)("showButtons", true);
|
|
240
|
+
i0.ɵɵconditional(i0.ɵɵpipeBind1(4, 13, ctx.isLoading$) ? 3 : -1);
|
|
241
|
+
i0.ɵɵadvance(7);
|
|
242
|
+
i0.ɵɵconditional(((tmp_3_0 = ctx.form.get("name")) == null ? null : tmp_3_0.invalid) && ((tmp_3_0 = ctx.form.get("name")) == null ? null : tmp_3_0.touched) ? 10 : -1);
|
|
243
|
+
i0.ɵɵadvance(8);
|
|
244
|
+
i0.ɵɵproperty("Data", i0.ɵɵpipeBind1(19, 15, ctx.models$));
|
|
294
245
|
i0.ɵɵadvance(2);
|
|
295
|
-
i0.ɵɵ
|
|
246
|
+
i0.ɵɵconditional(((tmp_5_0 = ctx.form.get("modelId")) == null ? null : tmp_5_0.invalid) && ((tmp_5_0 = ctx.form.get("modelId")) == null ? null : tmp_5_0.touched) ? 20 : -1);
|
|
247
|
+
i0.ɵɵadvance(19);
|
|
248
|
+
i0.ɵɵtextInterpolate((tmp_6_0 = ctx.form.get("temperature")) == null ? null : tmp_6_0.value);
|
|
296
249
|
i0.ɵɵadvance(6);
|
|
297
|
-
i0.ɵɵproperty("
|
|
250
|
+
i0.ɵɵproperty("Min", 1)("Max", 8000)("Step", 100);
|
|
298
251
|
i0.ɵɵadvance(11);
|
|
299
252
|
i0.ɵɵproperty("disabled", ctx.isSubmitting);
|
|
300
253
|
i0.ɵɵadvance(2);
|
|
301
254
|
i0.ɵɵproperty("disabled", ctx.form.invalid || ctx.isSubmitting);
|
|
302
255
|
i0.ɵɵadvance();
|
|
303
|
-
i0.ɵɵconditional(ctx.isSubmitting ?
|
|
304
|
-
} }, dependencies: [i1.ɵNgNoValidate, i1.
|
|
256
|
+
i0.ɵɵconditional(ctx.isSubmitting ? 59 : 60);
|
|
257
|
+
} }, dependencies: [i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.RangeValueAccessor, i1.CheckboxControlValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i3.MJButtonDirective, i3.MJDropdownComponent, i3.MJNumericInputComponent, i4.AsyncPipe], styles: [".new-agent-dialog[_ngcontent-%COMP%] {\n padding: 1.5rem;\n min-width: 500px;\n position: relative;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 0.75rem 1rem;\n margin-bottom: 1.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n border-radius: 8px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: var(--mj-text-secondary);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] label.required[_ngcontent-%COMP%]::after {\n content: ' *';\n color: var(--mj-status-error);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .full-width[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 0.875rem;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .field-hint[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .field-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] .model-name[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] .model-vendor[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-textbox[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-textarea[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-dropdown[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-numerictextbox[_ngcontent-%COMP%] {\n border-radius: 6px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] {\n margin-top: 1.5rem;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .k-expander-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .k-expander-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] {\n padding: 1rem;\n display: grid;\n gap: 1.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: var(--mj-text-secondary);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] .temperature-slider[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] .slider-value[_ngcontent-%COMP%] {\n min-width: 3rem;\n text-align: right;\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group.checkbox-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n font-weight: normal;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group.checkbox-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 2rem;\n padding-top: 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}"] }); }
|
|
305
258
|
}
|
|
306
259
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NewAgentDialogComponent, [{
|
|
307
260
|
type: Component,
|
|
308
|
-
args: [{ standalone: false, selector: 'mj-new-agent-dialog', template: "<div class=\"new-agent-dialog\">\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <!-- Parent Agent Info (if creating sub-agent) -->\n @if (config.parentAgentId) {\n <div class=\"parent-info\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Creating sub-agent for: <strong>{{ config.parentAgentName || 'Parent Agent' }}</strong></span>\n </div>\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 <kendo-textbox \n formControlName=\"name\" \n placeholder=\"Enter a descriptive name for your agent\"\n [clearButton]=\"true\"\n class=\"full-width\">\n </kendo-textbox>\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 <kendo-textarea \n formControlName=\"description\" \n placeholder=\"Describe what this agent does...\"\n [rows]=\"3\"\n class=\"full-width\">\n </kendo-textarea>\n </div>\n \n <!-- AI Model Selection -->\n <div class=\"form-group\">\n <label class=\"required\">AI Model</label>\n <kendo-dropdownlist \n formControlName=\"modelId\"\n [data]=\"models$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n placeholder=\"Select an AI model...\"\n class=\"full-width\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"model-item\">\n <div class=\"model-icon\">\n <i class=\"fa-solid fa-microchip\"></i>\n </div>\n <div class=\"model-details\">\n <span class=\"model-name\">{{ dataItem.Name }}</span>\n <span class=\"model-vendor\">{{ dataItem.Vendor }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\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 <kendo-textarea \n formControlName=\"systemPrompt\" \n placeholder=\"Define the agent's behavior and personality...\"\n [rows]=\"4\"\n class=\"full-width\">\n </kendo-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 <kendo-slider \n formControlName=\"temperature\"\n [min]=\"0\"\n [max]=\"2\"\n [smallStep]=\"0.1\"\n [showButtons]=\"true\"\n class=\"temperature-slider\">\n </kendo-slider>\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 <kendo-numerictextbox \n formControlName=\"maxTokens\"\n [min]=\"1\"\n [max]=\"8000\"\n [step]=\"100\"\n [format]=\"'n0'\"\n class=\"full-width\">\n </kendo-numerictextbox>\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\" kendoCheckBox />\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 kendoButton \n (click)=\"onCancel()\"\n [disabled]=\"isSubmitting\">\n Cancel\n </button>\n <button \n type=\"submit\" \n kendoButton \n themeColor=\"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>", styles: [".new-agent-dialog {\n padding: 1.5rem;\n min-width: 500px;\n position: relative;\n}\n\n.new-agent-dialog .parent-info {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 0.75rem 1rem;\n margin-bottom: 1.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.new-agent-dialog .parent-info i {\n color: var(--mj-brand-primary);\n font-size: 1.1rem;\n}\n\n.new-agent-dialog .parent-info strong {\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n border-radius: 8px;\n}\n\n.new-agent-dialog .form-fields .form-group {\n margin-bottom: 1.5rem;\n}\n\n.new-agent-dialog .form-fields .form-group label {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: var(--mj-text-secondary);\n}\n\n.new-agent-dialog .form-fields .form-group label.required::after {\n content: ' *';\n color: var(--mj-status-error);\n}\n\n.new-agent-dialog .form-fields .form-group .full-width {\n width: 100%;\n}\n\n.new-agent-dialog .form-fields .form-group .error-message {\n color: var(--mj-status-error);\n font-size: 0.875rem;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog .form-fields .form-group .error-message i {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog .form-fields .form-group .field-hint {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog .form-fields .form-group .field-hint i {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog .form-fields .model-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.new-agent-dialog .form-fields .model-item .model-icon {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n}\n\n.new-agent-dialog .form-fields .model-item .model-icon i {\n font-size: 1rem;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details {\n display: flex;\n flex-direction: column;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details .model-name {\n font-weight: 500;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details .model-vendor {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.new-agent-dialog .form-fields .k-textbox,\n.new-agent-dialog .form-fields .k-textarea,\n.new-agent-dialog .form-fields .k-dropdown,\n.new-agent-dialog .form-fields .k-numerictextbox {\n border-radius: 6px;\n}\n\n.new-agent-dialog .advanced-settings {\n margin-top: 1.5rem;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.new-agent-dialog .advanced-settings .k-expander-header {\n background: var(--mj-bg-surface-card);\n padding: 1rem;\n}\n\n.new-agent-dialog .advanced-settings .k-expander-header i {\n margin-right: 0.5rem;\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid {\n padding: 1rem;\n display: grid;\n gap: 1.5rem;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group label {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: var(--mj-text-secondary);\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container .temperature-slider {\n flex: 1;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container .slider-value {\n min-width: 3rem;\n text-align: right;\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group.checkbox-group label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n font-weight: normal;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group.checkbox-group label input[type=\"checkbox\"] {\n cursor: pointer;\n}\n\n.new-agent-dialog .dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 2rem;\n padding-top: 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.new-agent-dialog .dialog-actions button {\n min-width: 120px;\n}\n\n.new-agent-dialog .dialog-actions button i {\n margin-right: 0.5rem;\n}\n"] }]
|
|
309
|
-
}], () => [{ type: i1.FormBuilder }, { type: i2.
|
|
261
|
+
args: [{ standalone: false, selector: 'mj-new-agent-dialog', template: "<div class=\"new-agent-dialog\">\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <!-- Parent Agent Info (if creating sub-agent) -->\n @if (config.parentAgentId) {\n <div class=\"parent-info\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Creating sub-agent for: <strong>{{ config.parentAgentName || 'Parent Agent' }}</strong></span>\n </div>\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>", styles: [".new-agent-dialog {\n padding: 1.5rem;\n min-width: 500px;\n position: relative;\n}\n\n.new-agent-dialog .parent-info {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 0.75rem 1rem;\n margin-bottom: 1.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.new-agent-dialog .parent-info i {\n color: var(--mj-brand-primary);\n font-size: 1.1rem;\n}\n\n.new-agent-dialog .parent-info strong {\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n border-radius: 8px;\n}\n\n.new-agent-dialog .form-fields .form-group {\n margin-bottom: 1.5rem;\n}\n\n.new-agent-dialog .form-fields .form-group label {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: var(--mj-text-secondary);\n}\n\n.new-agent-dialog .form-fields .form-group label.required::after {\n content: ' *';\n color: var(--mj-status-error);\n}\n\n.new-agent-dialog .form-fields .form-group .full-width {\n width: 100%;\n}\n\n.new-agent-dialog .form-fields .form-group .error-message {\n color: var(--mj-status-error);\n font-size: 0.875rem;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog .form-fields .form-group .error-message i {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog .form-fields .form-group .field-hint {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog .form-fields .form-group .field-hint i {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog .form-fields .model-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.new-agent-dialog .form-fields .model-item .model-icon {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n}\n\n.new-agent-dialog .form-fields .model-item .model-icon i {\n font-size: 1rem;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details {\n display: flex;\n flex-direction: column;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details .model-name {\n font-weight: 500;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details .model-vendor {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.new-agent-dialog .form-fields .k-textbox,\n.new-agent-dialog .form-fields .k-textarea,\n.new-agent-dialog .form-fields .k-dropdown,\n.new-agent-dialog .form-fields .k-numerictextbox {\n border-radius: 6px;\n}\n\n.new-agent-dialog .advanced-settings {\n margin-top: 1.5rem;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.new-agent-dialog .advanced-settings .k-expander-header {\n background: var(--mj-bg-surface-card);\n padding: 1rem;\n}\n\n.new-agent-dialog .advanced-settings .k-expander-header i {\n margin-right: 0.5rem;\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid {\n padding: 1rem;\n display: grid;\n gap: 1.5rem;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group label {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: var(--mj-text-secondary);\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container .temperature-slider {\n flex: 1;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container .slider-value {\n min-width: 3rem;\n text-align: right;\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group.checkbox-group label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n font-weight: normal;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group.checkbox-group label input[type=\"checkbox\"] {\n cursor: pointer;\n}\n\n.new-agent-dialog .dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 2rem;\n padding-top: 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.new-agent-dialog .dialog-actions button {\n min-width: 120px;\n}\n\n.new-agent-dialog .dialog-actions button i {\n margin-right: 0.5rem;\n}\n"] }]
|
|
262
|
+
}], () => [{ type: i1.FormBuilder }, { type: i2.NavigationService }], { config: [{
|
|
310
263
|
type: Input
|
|
311
264
|
}] }); })();
|
|
312
265
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NewAgentDialogComponent, { className: "NewAgentDialogComponent", filePath: "src/lib/custom/AIAgents/new-agent-dialog.component.ts", lineNumber: 24 }); })();
|
|
@@ -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 { DialogRef } from '@progress/kendo-angular-dialog';\nimport { NotificationService } from '@progress/kendo-angular-notification';\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 { BehaviorSubject } from 'rxjs';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\n\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 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 constructor(\n private fb: FormBuilder,\n private dialog: DialogRef,\n private navigationService: NavigationService,\n private notificationService: NotificationService\n ) {}\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 this.showError('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 = new Metadata();\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 this.showSuccess('Agent created successfully!');\n \n // Close dialog with the new agent\n this.dialog.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: any) {\n console.error('Error creating agent:', error);\n this.showError('Failed to create agent: ' + (error.message || 'Unknown error'));\n } finally {\n this.isSubmitting = false;\n }\n }\n \n onCancel() {\n this.dialog.close({ action: 'cancelled' });\n }\n \n private showSuccess(message: string) {\n this.notificationService.show({\n content: message,\n type: { style: 'success', icon: true },\n position: { horizontal: 'right', vertical: 'top' },\n animation: { type: 'slide', duration: 300 },\n hideAfter: 3000\n });\n }\n \n private showError(message: string) {\n this.notificationService.show({\n content: message,\n type: { style: 'error', icon: true },\n position: { horizontal: 'right', vertical: 'top' },\n animation: { type: 'slide', duration: 300 },\n hideAfter: 5000\n });\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 <div class=\"parent-info\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Creating sub-agent for: <strong>{{ config.parentAgentName || 'Parent Agent' }}</strong></span>\n </div>\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 <kendo-textbox \n formControlName=\"name\" \n placeholder=\"Enter a descriptive name for your agent\"\n [clearButton]=\"true\"\n class=\"full-width\">\n </kendo-textbox>\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 <kendo-textarea \n formControlName=\"description\" \n placeholder=\"Describe what this agent does...\"\n [rows]=\"3\"\n class=\"full-width\">\n </kendo-textarea>\n </div>\n \n <!-- AI Model Selection -->\n <div class=\"form-group\">\n <label class=\"required\">AI Model</label>\n <kendo-dropdownlist \n formControlName=\"modelId\"\n [data]=\"models$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n placeholder=\"Select an AI model...\"\n class=\"full-width\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"model-item\">\n <div class=\"model-icon\">\n <i class=\"fa-solid fa-microchip\"></i>\n </div>\n <div class=\"model-details\">\n <span class=\"model-name\">{{ dataItem.Name }}</span>\n <span class=\"model-vendor\">{{ dataItem.Vendor }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\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 <kendo-textarea \n formControlName=\"systemPrompt\" \n placeholder=\"Define the agent's behavior and personality...\"\n [rows]=\"4\"\n class=\"full-width\">\n </kendo-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 <kendo-slider \n formControlName=\"temperature\"\n [min]=\"0\"\n [max]=\"2\"\n [smallStep]=\"0.1\"\n [showButtons]=\"true\"\n class=\"temperature-slider\">\n </kendo-slider>\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 <kendo-numerictextbox \n formControlName=\"maxTokens\"\n [min]=\"1\"\n [max]=\"8000\"\n [step]=\"100\"\n [format]=\"'n0'\"\n class=\"full-width\">\n </kendo-numerictextbox>\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\" kendoCheckBox />\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 kendoButton \n (click)=\"onCancel()\"\n [disabled]=\"isSubmitting\">\n Cancel\n </button>\n <button \n type=\"submit\" \n kendoButton \n themeColor=\"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":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACzD,OAAO,EAA0B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;;;;;;;ICLxD,8BAAyB;IACvB,wBAAiC;IACjC,4BAAM;IAAA,wCAAwB;IAAA,8BAAQ;IAAA,YAA8C;IACtF,AAD+F,AAAT,iBAAS,EAAO,EAChG;;;IADkC,eAA8C;IAA9C,qEAA8C;;;IAOpF,AADF,8BAA6B,cACN;IAAA,0BAAU;IACjC,AADiC,iBAAM,EACjC;;;IAaF,8BAA2B;IACzB,wBAA8C;IAC9C,wCACF;IAAA,iBAAM;;;IA0BN,8BAA2B;IACzB,wBAA8C;IAC9C,2CACF;IAAA,iBAAM;;;IAmFN,2BAAmC;IACnC,4BAAM;IAAA,2BAAW;IAAA,iBAAO;;;IAExB,wBAAuC;IACvC,4BAAM;IAAA,4BAAY;IAAA,iBAAO;;AD3HnC,MAAM,OAAO,uBAAuB;IAclC,YACU,EAAe,EACf,iBAAoC;QADpC,OAAE,GAAF,EAAE,CAAa;QACf,sBAAiB,GAAjB,iBAAiB,CAAmB;QAfrC,WAAM,GAAmB;YAChC,cAAc,EAAE,IAAI;SACrB,CAAC;QAGF,eAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QACjD,YAAO,GAAG,IAAI,eAAe,CAA4B,EAAE,CAAC,CAAC;QAC7D,gBAAW,GAAG,IAAI,eAAe,CAAwB,EAAE,CAAC,CAAC;QAC7D,iBAAY,GAAG,KAAK,CAAC;QAErB,kDAAkD;QAC3C,cAAS,GAAuB,IAAI,CAAC;IAKzC,CAAC;IAEJ,QAAQ;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,WAAW,EAAE,CAAC,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAClC,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC5C,YAAY,EAAE,CAAC,iCAAiC,CAAC;YACjD,eAAe,EAAE,CAAC,IAAI,CAAC;YACvB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC;YACrC,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAEhC,sCAAsC;YACtC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAmC,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAA0B,eAAe,CAAC,CAAC;YAEjF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,uBAAuB;YACvB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAEhD,+BAA+B;YAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC9B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC7C,CAAC;YAED,qBAAqB;YACrB,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;YACnC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YAE7B,iBAAiB;YACjB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAEtC,IAAI,UAAU,EAAE,CAAC;gBACf,qBAAqB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,6BAA6B,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAExG,kCAAkC;gBAClC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAEpD,iCAAiC;gBACjC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;oBAC7D,gFAAgF;oBAChF,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC7E,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC9C,qBAAqB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,0BAA0B,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACpH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;wHA5HU,uBAAuB;oEAAvB,uBAAuB;YCtBlC,AADF,8BAA8B,cACqB;YAAxB,wGAAY,cAAU,IAAC;YAE9C,yFAA4B;YAQ5B,yFAA0B;;YAUtB,AADF,AAFF,8BAAyB,aAEC,eACE;YAAA,0BAAU;YAAA,iBAAQ;YAC1C,2BAGwD;YACxD,2FAA8D;YAMhE,iBAAM;YAIJ,AADF,+BAAwB,aACf;YAAA,4BAAW;YAAA,iBAAQ;YAC1B,+BAIsB;YACxB,iBAAM;YAIJ,AADF,+BAAwB,gBACE;YAAA,yBAAQ;YAAA,iBAAQ;YACxC,mCAOc;;YACd,2FAAoE;YAMtE,iBAAM;YAIJ,AADF,+BAAwB,aACf;YAAA,8BAAa;YAAA,iBAAQ;YAC5B,gCAIsB;YACtB,gCAAwB;YACtB,yBAAuC;YACvC,6DACF;YACF,AADE,iBAAM,EACF;YAIJ,AADF,gCAA+B,eACD;YAC1B,yBAA+B;YAC/B,oCACF;YAAA,iBAAM;YAKF,AADF,AAFF,gCAA2B,eAEE,aAClB;YAAA,4BAAW;YAAA,iBAAQ;YAC1B,gCAA8B;YAC5B,6BAMa;YACb,iCAA2B;YAAA,aAAoC;YACjE,AADiE,iBAAO,EAClE;YACN,gCAAwB;YAAA,wDAAuC;YACjE,AADiE,iBAAM,EACjE;YAIJ,AADF,gCAA2B,aAClB;YAAA,2BAAU;YAAA,iBAAQ;YACzB,wCAOmB;YACnB,gCAAwB;YAAA,wCAAuB;YACjD,AADiD,iBAAM,EACjD;YAIJ,AADF,gCAA0C,aACjC;YACL,6BAA+E;YAC/E,6BAAM;YAAA,0CAAyB;YACjC,AADiC,iBAAO,EAChC;YACR,gCAAwB;YAAA,8CAA6B;YAI7D,AADE,AADE,AADE,AADuD,iBAAM,EACvD,EACF,EACF,EACF;YAIJ,AADF,gCAA4B,kBAKE;YAD1B,qGAAS,cAAU,IAAC;YAEpB,yBACF;YAAA,iBAAS;YACT,mCAI4C;YAIxC,AAHF,iFAAoB,2DAGX;YAOjB,AADE,AADE,AADE,iBAAS,EACL,EACD,EACH;;;;;YAtJE,cAAkB;YAAlB,oCAAkB;YAEtB,cAKC;YALD,mDAKC;YAGD,cAIC;YAJD,gEAIC;YAWG,eAKC;YALD,sKAKC;YAkBC,eAAwB;YAAxB,0DAAwB;YAM1B,eAKC;YALD,4KAKC;YAoCgC,gBAAoC;YAApC,4FAAoC;YAU/D,eAAS;YAET,AADA,AADA,uBAAS,aACG,aACA;YAyBlB,gBAAyB;YAAzB,2CAAyB;YAOzB,eAAyC;YAAzC,+DAAyC;YACzC,cAMC;YAND,4CAMC;;;iFD5HI,uBAAuB;cANnC,SAAS;6BACI,KAAK,YACP,qBAAqB;;kBAK9B,KAAK;;kFADK,uBAAuB","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\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 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 \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 = new Metadata();\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 <div class=\"parent-info\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Creating sub-agent for: <strong>{{ config.parentAgentName || 'Parent Agent' }}</strong></span>\n </div>\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,5 +1,5 @@
|
|
|
1
1
|
import { ViewContainerRef } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { MJDialogService } from '@memberjunction/ng-ui-components';
|
|
3
3
|
import { NewAgentConfig } from './new-agent-dialog.component';
|
|
4
4
|
import { MJAIAgentEntityExtended } from '@memberjunction/ai-core-plus';
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
@@ -11,7 +11,7 @@ export interface NewAgentDialogResult {
|
|
|
11
11
|
export declare class NewAgentDialogService {
|
|
12
12
|
private dialogService;
|
|
13
13
|
private dialogRef;
|
|
14
|
-
constructor(dialogService:
|
|
14
|
+
constructor(dialogService: MJDialogService);
|
|
15
15
|
/**
|
|
16
16
|
* Opens the New Agent dialog
|
|
17
17
|
* @param config Configuration for the dialog
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-agent-dialog.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"new-agent-dialog.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAiC,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAA2B,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;;AAE3C,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;CACjC;AAED,qBAGa,qBAAqB;IAGpB,OAAO,CAAC,aAAa;IAFjC,OAAO,CAAC,SAAS,CAA4B;gBAEzB,aAAa,EAAE,eAAe;IAElD;;;;;OAKG;IACH,IAAI,CAAC,MAAM,GAAE,cAAmB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC,oBAAoB,CAAC;IAgCxG;;OAEG;IACH,eAAe,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC,oBAAoB,CAAC;IAMtF;;OAEG;IACH,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC,oBAAoB,CAAC;IAQtI;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,MAAM,IAAI,OAAO;yCA5EN,qBAAqB;6CAArB,qBAAqB;CA+EjC"}
|
|
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { NewAgentDialogComponent } from './new-agent-dialog.component';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@
|
|
5
|
+
import * as i1 from "@memberjunction/ng-ui-components";
|
|
6
6
|
export class NewAgentDialogService {
|
|
7
7
|
constructor(dialogService) {
|
|
8
8
|
this.dialogService = dialogService;
|
|
@@ -21,18 +21,17 @@ export class NewAgentDialogService {
|
|
|
21
21
|
content: NewAgentDialogComponent,
|
|
22
22
|
width: 600,
|
|
23
23
|
height: 600,
|
|
24
|
-
minWidth: 500
|
|
25
|
-
minHeight: 500,
|
|
26
|
-
preventAction: () => false
|
|
24
|
+
minWidth: 500
|
|
27
25
|
};
|
|
28
26
|
this.dialogRef = this.dialogService.open(dialogSettings);
|
|
29
27
|
// Configure the component
|
|
30
|
-
const component = this.dialogRef.
|
|
28
|
+
const component = this.dialogRef.Content.instance;
|
|
31
29
|
component.config = config;
|
|
30
|
+
component.dialogRef = this.dialogRef;
|
|
32
31
|
// Handle dialog result
|
|
33
|
-
this.dialogRef.
|
|
34
|
-
if (result && result
|
|
35
|
-
resultSubject.next({ agent: result
|
|
32
|
+
this.dialogRef.Result.subscribe((result) => {
|
|
33
|
+
if (result && typeof result === 'object' && 'agent' in result) {
|
|
34
|
+
resultSubject.next({ agent: result['agent'], action: 'created' });
|
|
36
35
|
}
|
|
37
36
|
else {
|
|
38
37
|
resultSubject.next({ action: 'cancelled' });
|
|
@@ -65,7 +64,7 @@ export class NewAgentDialogService {
|
|
|
65
64
|
*/
|
|
66
65
|
close() {
|
|
67
66
|
if (this.dialogRef) {
|
|
68
|
-
this.dialogRef.
|
|
67
|
+
this.dialogRef.Close();
|
|
69
68
|
this.dialogRef = null;
|
|
70
69
|
}
|
|
71
70
|
}
|
|
@@ -75,7 +74,7 @@ export class NewAgentDialogService {
|
|
|
75
74
|
isOpen() {
|
|
76
75
|
return this.dialogRef !== null;
|
|
77
76
|
}
|
|
78
|
-
static { this.ɵfac = function NewAgentDialogService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NewAgentDialogService)(i0.ɵɵinject(i1.
|
|
77
|
+
static { this.ɵfac = function NewAgentDialogService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NewAgentDialogService)(i0.ɵɵinject(i1.MJDialogService)); }; }
|
|
79
78
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NewAgentDialogService, factory: NewAgentDialogService.ɵfac, providedIn: 'root' }); }
|
|
80
79
|
}
|
|
81
80
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NewAgentDialogService, [{
|
|
@@ -83,5 +82,5 @@ export class NewAgentDialogService {
|
|
|
83
82
|
args: [{
|
|
84
83
|
providedIn: 'root'
|
|
85
84
|
}]
|
|
86
|
-
}], () => [{ type: i1.
|
|
85
|
+
}], () => [{ type: i1.MJDialogService }], null); })();
|
|
87
86
|
//# sourceMappingURL=new-agent-dialog.service.js.map
|