@memberjunction/ng-core-entity-forms 2.80.1 → 2.82.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 +2 -2
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +4 -4
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +2 -2
- 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 +4 -4
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +51 -3
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +722 -163
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +3 -2
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +74 -46
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +2 -2
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +4 -4
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +2 -2
- 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 +39 -32
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +2 -2
- 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 +2 -2
- 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 +4 -4
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +2 -2
- 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 +29 -25
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +299 -283
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +474 -456
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts +5 -0
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +21 -2
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +6 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +70 -16
- 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 +6 -5
- 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 +8 -22
- 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 +5 -4
- 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 +30 -24
- 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.d.ts +8 -4
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +39 -18
- 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 +20 -3
- 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 +317 -140
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Entity/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Entity/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/Entity/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Query/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Query/sections/details.component.js +40 -4
- package/dist/lib/generated/Entities/Query/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js +40 -4
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/User/user.form.component.js +6 -6
- package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.d.ts +5 -0
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +21 -2
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/package.json +17 -16
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { AIAgentRunEntity, AIAgentRunStepEntity, ActionExecutionLogEntity, AIPromptRunEntity } from '@memberjunction/core-entities';
|
|
4
|
-
import {
|
|
4
|
+
import { AIAgentRunDataHelper } from './ai-agent-run-data.service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export interface TimelineItem {
|
|
7
7
|
id: string;
|
|
@@ -23,11 +23,11 @@ export interface TimelineItem {
|
|
|
23
23
|
hasNoChildren?: boolean;
|
|
24
24
|
}
|
|
25
25
|
export declare class AIAgentRunTimelineComponent implements OnInit, OnDestroy {
|
|
26
|
-
private dataService;
|
|
27
26
|
private cdr;
|
|
28
27
|
aiAgentRunId: string;
|
|
29
28
|
autoRefresh: boolean;
|
|
30
29
|
refreshInterval: number;
|
|
30
|
+
dataHelper: AIAgentRunDataHelper;
|
|
31
31
|
itemSelected: EventEmitter<TimelineItem>;
|
|
32
32
|
navigateToEntity: EventEmitter<{
|
|
33
33
|
entityName: string;
|
|
@@ -45,7 +45,7 @@ export declare class AIAgentRunTimelineComponent implements OnInit, OnDestroy {
|
|
|
45
45
|
selectedItem: TimelineItem | null;
|
|
46
46
|
private refreshTimer;
|
|
47
47
|
private refreshSubscription;
|
|
48
|
-
constructor(
|
|
48
|
+
constructor(cdr: ChangeDetectorRef);
|
|
49
49
|
ngOnInit(): void;
|
|
50
50
|
ngOnDestroy(): void;
|
|
51
51
|
private startAutoRefresh;
|
|
@@ -66,7 +66,8 @@ export declare class AIAgentRunTimelineComponent implements OnInit, OnDestroy {
|
|
|
66
66
|
* TrackBy function for timeline items
|
|
67
67
|
*/
|
|
68
68
|
trackByItemId(index: number, item: TimelineItem): string;
|
|
69
|
+
createSubRunDataHelper(): AIAgentRunDataHelper;
|
|
69
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<AIAgentRunTimelineComponent, never>;
|
|
70
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentRunTimelineComponent, "mj-ai-agent-run-timeline", never, { "aiAgentRunId": { "alias": "aiAgentRunId"; "required": false; }; "autoRefresh": { "alias": "autoRefresh"; "required": false; }; "refreshInterval": { "alias": "refreshInterval"; "required": false; }; }, { "itemSelected": "itemSelected"; "navigateToEntity": "navigateToEntity"; "agentRunCompleted": "agentRunCompleted"; }, never, never, false, never>;
|
|
71
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentRunTimelineComponent, "mj-ai-agent-run-timeline", never, { "aiAgentRunId": { "alias": "aiAgentRunId"; "required": false; }; "autoRefresh": { "alias": "autoRefresh"; "required": false; }; "refreshInterval": { "alias": "refreshInterval"; "required": false; }; "dataHelper": { "alias": "dataHelper"; "required": false; }; }, { "itemSelected": "itemSelected"; "navigateToEntity": "navigateToEntity"; "agentRunCompleted": "agentRunCompleted"; }, never, never, false, never>;
|
|
71
72
|
}
|
|
72
73
|
//# sourceMappingURL=ai-agent-run-timeline.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-timeline.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-timeline.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAA2B,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACtI,OAAO,EAAW,UAAU,EAAmD,MAAM,MAAM,CAAC;AAG5F,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACpI,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ai-agent-run-timeline.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-timeline.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from
|
|
|
2
2
|
import { Subject, combineLatest, interval, of, from } from 'rxjs';
|
|
3
3
|
import { takeUntil, map, shareReplay, switchMap, filter } from 'rxjs/operators';
|
|
4
4
|
import { RunView } from '@memberjunction/core';
|
|
5
|
+
import { AIAgentRunDataHelper } from './ai-agent-run-data.service';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./ai-agent-run-data.service";
|
|
7
7
|
function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
8
8
|
i0.ɵɵelementStart(0, "div", 15);
|
|
9
9
|
i0.ɵɵelement(1, "i", 16);
|
|
@@ -72,11 +72,12 @@ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_mj_ai_agen
|
|
|
72
72
|
i0.ɵɵelementEnd();
|
|
73
73
|
} if (rf & 2) {
|
|
74
74
|
const item_r2 = i0.ɵɵnextContext(2).$implicit;
|
|
75
|
-
i0.ɵɵ
|
|
75
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
76
|
+
i0.ɵɵproperty("aiAgentRunId", item_r2.data.ID)("dataHelper", ctx_r2.createSubRunDataHelper())("autoRefresh", false);
|
|
76
77
|
} }
|
|
77
78
|
function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
78
79
|
i0.ɵɵelementStart(0, "div", 10);
|
|
79
|
-
i0.ɵɵtemplate(1, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_div_1_Template, 3, 0, "div", 11)(2, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_div_2_Template, 3, 0, "div", 12)(3, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_Template, 2, 2, "ng-container", 13)(4, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_mj_ai_agent_run_timeline_4_Template, 1,
|
|
80
|
+
i0.ɵɵtemplate(1, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_div_1_Template, 3, 0, "div", 11)(2, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_div_2_Template, 3, 0, "div", 12)(3, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_Template, 2, 2, "ng-container", 13)(4, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_mj_ai_agent_run_timeline_4_Template, 1, 3, "mj-ai-agent-run-timeline", 14);
|
|
80
81
|
i0.ɵɵelementEnd();
|
|
81
82
|
} if (rf & 2) {
|
|
82
83
|
const item_r2 = i0.ɵɵnextContext().$implicit;
|
|
@@ -152,8 +153,7 @@ function AIAgentRunTimelineComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
152
153
|
i0.ɵɵtextInterpolate(ctx_r2.error);
|
|
153
154
|
} }
|
|
154
155
|
export class AIAgentRunTimelineComponent {
|
|
155
|
-
constructor(
|
|
156
|
-
this.dataService = dataService;
|
|
156
|
+
constructor(cdr) {
|
|
157
157
|
this.cdr = cdr;
|
|
158
158
|
this.autoRefresh = false;
|
|
159
159
|
this.refreshInterval = 30000; // Minimum 30 seconds
|
|
@@ -161,15 +161,17 @@ export class AIAgentRunTimelineComponent {
|
|
|
161
161
|
this.navigateToEntity = new EventEmitter();
|
|
162
162
|
this.agentRunCompleted = new EventEmitter();
|
|
163
163
|
this.destroy$ = new Subject();
|
|
164
|
-
// Public observables from service
|
|
165
|
-
this.steps$ = this.dataService.steps$;
|
|
166
|
-
this.subRuns$ = this.dataService.subRuns$;
|
|
167
|
-
this.actionLogs$ = this.dataService.actionLogs$;
|
|
168
|
-
this.promptRuns$ = this.dataService.promptRuns$;
|
|
169
164
|
this.loading = false;
|
|
170
165
|
this.error = null;
|
|
171
166
|
this.selectedItem = null;
|
|
172
167
|
this.refreshSubscription = null;
|
|
168
|
+
}
|
|
169
|
+
ngOnInit() {
|
|
170
|
+
// Initialize observables from the data helper
|
|
171
|
+
this.steps$ = this.dataHelper.steps$;
|
|
172
|
+
this.subRuns$ = this.dataHelper.subRuns$;
|
|
173
|
+
this.actionLogs$ = this.dataHelper.actionLogs$;
|
|
174
|
+
this.promptRuns$ = this.dataHelper.promptRuns$;
|
|
173
175
|
// Combine all data sources to build timeline
|
|
174
176
|
this.timelineItems$ = combineLatest([
|
|
175
177
|
this.steps$,
|
|
@@ -177,14 +179,12 @@ export class AIAgentRunTimelineComponent {
|
|
|
177
179
|
this.actionLogs$,
|
|
178
180
|
this.promptRuns$
|
|
179
181
|
]).pipe(map(([steps, subRuns, actionLogs, promptRuns]) => this.buildTimelineItems(steps, subRuns, actionLogs, promptRuns)), shareReplay(1));
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
// Subscribe to loading state from service
|
|
184
|
-
this.dataService.loading$.pipe(takeUntil(this.destroy$)).subscribe(loading => {
|
|
182
|
+
// Data loading is now handled by the parent component through the helper
|
|
183
|
+
// Subscribe to loading state from helper
|
|
184
|
+
this.dataHelper.loading$.pipe(takeUntil(this.destroy$)).subscribe(loading => {
|
|
185
185
|
this.loading = loading;
|
|
186
186
|
});
|
|
187
|
-
this.
|
|
187
|
+
this.dataHelper.error$.pipe(takeUntil(this.destroy$)).subscribe(error => {
|
|
188
188
|
this.error = error;
|
|
189
189
|
});
|
|
190
190
|
// Auto-refresh logic
|
|
@@ -220,7 +220,7 @@ export class AIAgentRunTimelineComponent {
|
|
|
220
220
|
// Check if the agent run is still running
|
|
221
221
|
if (agentRun.Status === 'Running') {
|
|
222
222
|
// Reload data
|
|
223
|
-
this.
|
|
223
|
+
this.dataHelper.loadAgentRunData(this.aiAgentRunId);
|
|
224
224
|
}
|
|
225
225
|
else {
|
|
226
226
|
// Agent run completed/failed - stop refresh
|
|
@@ -245,8 +245,8 @@ export class AIAgentRunTimelineComponent {
|
|
|
245
245
|
async loadData() {
|
|
246
246
|
if (!this.aiAgentRunId)
|
|
247
247
|
return;
|
|
248
|
-
// The parent component should handle data loading through the
|
|
249
|
-
return this.
|
|
248
|
+
// The parent component should handle data loading through the helper
|
|
249
|
+
return this.dataHelper.loadAgentRunData(this.aiAgentRunId);
|
|
250
250
|
}
|
|
251
251
|
buildTimelineItems(steps, subRuns, actionLogs, promptRuns) {
|
|
252
252
|
const items = [];
|
|
@@ -342,7 +342,7 @@ export class AIAgentRunTimelineComponent {
|
|
|
342
342
|
return;
|
|
343
343
|
}
|
|
344
344
|
// Load sub-agent data through service
|
|
345
|
-
const data = await this.
|
|
345
|
+
const data = await this.dataHelper.loadSubAgentData(subAgentRunId);
|
|
346
346
|
if (!data.steps || data.steps.length === 0) {
|
|
347
347
|
item.hasNoChildren = true;
|
|
348
348
|
item.children = [];
|
|
@@ -381,8 +381,12 @@ export class AIAgentRunTimelineComponent {
|
|
|
381
381
|
trackByItemId(index, item) {
|
|
382
382
|
return item.id;
|
|
383
383
|
}
|
|
384
|
-
|
|
385
|
-
|
|
384
|
+
createSubRunDataHelper() {
|
|
385
|
+
// Create a new data helper instance for sub-runs to prevent caching conflicts
|
|
386
|
+
return new AIAgentRunDataHelper();
|
|
387
|
+
}
|
|
388
|
+
static { this.ɵfac = function AIAgentRunTimelineComponent_Factory(t) { return new (t || AIAgentRunTimelineComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
389
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunTimelineComponent, selectors: [["mj-ai-agent-run-timeline"]], inputs: { aiAgentRunId: "aiAgentRunId", autoRefresh: "autoRefresh", refreshInterval: "refreshInterval", dataHelper: "dataHelper" }, outputs: { itemSelected: "itemSelected", navigateToEntity: "navigateToEntity", agentRunCompleted: "agentRunCompleted" }, decls: 4, vars: 5, consts: [["class", "timeline-container", 4, "ngIf"], ["class", "loading-state", 4, "ngIf"], ["class", "error-state", 4, "ngIf"], [1, "timeline-container"], ["class", "timeline", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], [1, "timeline"], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "itemClick", "expandToggle", "navigateToEntity", "item", "isSelected"], ["class", "sub-timeline", 4, "ngIf"], [1, "sub-timeline"], ["class", "loading-children", 4, "ngIf"], ["class", "no-children", 4, "ngIf"], [4, "ngIf"], [3, "aiAgentRunId", "dataHelper", "autoRefresh", "itemSelected", "navigateToEntity", 4, "ngIf"], [1, "loading-children"], [1, "fas", "fa-spinner", "fa-spin"], [1, "no-children"], [1, "fas", "fa-info-circle"], ["class", "sub-run-steps", 4, "ngIf"], [1, "sub-run-steps"], [3, "itemSelected", "navigateToEntity", "aiAgentRunId", "dataHelper", "autoRefresh"], [1, "empty-state"], [1, "fas", "fa-stream", "fa-3x"], [1, "loading-state"], [1, "fas", "fa-spinner", "fa-spin", "fa-2x"], [1, "error-state"], [1, "fas", "fa-exclamation-triangle", "fa-2x"]], template: function AIAgentRunTimelineComponent_Template(rf, ctx) { if (rf & 1) {
|
|
386
390
|
i0.ɵɵtemplate(0, AIAgentRunTimelineComponent_div_0_Template, 3, 2, "div", 0);
|
|
387
391
|
i0.ɵɵpipe(1, "async");
|
|
388
392
|
i0.ɵɵtemplate(2, AIAgentRunTimelineComponent_div_2_Template, 4, 0, "div", 1)(3, AIAgentRunTimelineComponent_div_3_Template, 4, 1, "div", 2);
|
|
@@ -396,13 +400,15 @@ export class AIAgentRunTimelineComponent {
|
|
|
396
400
|
}
|
|
397
401
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunTimelineComponent, [{
|
|
398
402
|
type: Component,
|
|
399
|
-
args: [{ selector: 'mj-ai-agent-run-timeline', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"timeline-container\" *ngIf=\"!loading && (timelineItems$ | async) as items\">\n <div class=\"timeline\" *ngIf=\"items.length > 0\">\n <ng-container *ngFor=\"let item of items; trackBy: trackByItemId\">\n <!-- Main Timeline Item -->\n <mj-ai-agent-run-step-node\n [item]=\"item\"\n [isSelected]=\"selectedItem?.id === item.id\"\n (itemClick)=\"selectItem(item)\"\n (expandToggle)=\"toggleItemExpansion(item, $event)\"\n (navigateToEntity)=\"navigateToEntity.emit($event)\">\n </mj-ai-agent-run-step-node>\n \n <!-- Sub-Run Timeline (Recursive) -->\n <div class=\"sub-timeline\" *ngIf=\"(item.type === 'subrun' || (item.type === 'step' && item.data?.StepType === 'Sub-Agent')) && item.isExpanded\">\n <!-- Show loading indicator while loading children -->\n <div class=\"loading-children\" *ngIf=\"item.type === 'step' && !item.childrenLoaded\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading sub-agent steps...\n </div>\n \n <!-- Show no children message -->\n <div class=\"no-children\" *ngIf=\"item.type === 'step' && item.childrenLoaded && item.hasNoChildren\">\n <i class=\"fas fa-info-circle\"></i> No sub-agent steps found\n </div>\n \n <!-- For sub-agent steps that have loaded children -->\n <ng-container *ngIf=\"item.type === 'step' && item.childrenLoaded && item.children && item.children.length > 0\">\n <ng-container *ngFor=\"let child of item.children; trackBy: trackByItemId\">\n <!-- Render the sub-run container with its steps -->\n <mj-ai-agent-run-step-node\n [item]=\"child\"\n [isSelected]=\"selectedItem?.id === child.id\"\n (itemClick)=\"selectItem(child)\"\n (expandToggle)=\"toggleItemExpansion(child, $event)\"\n (navigateToEntity)=\"navigateToEntity.emit($event)\">\n </mj-ai-agent-run-step-node>\n \n <!-- Show the steps within this sub-run when expanded -->\n <div class=\"sub-run-steps\" *ngIf=\"child.isExpanded && child.children\">\n <ng-container *ngFor=\"let step of child.children; trackBy: trackByItemId\">\n <mj-ai-agent-run-step-node\n [item]=\"step\"\n [isSelected]=\"selectedItem?.id === step.id\"\n (itemClick)=\"selectItem(step)\"\n (expandToggle)=\"toggleItemExpansion(step, $event)\"\n (navigateToEntity)=\"navigateToEntity.emit($event)\">\n </mj-ai-agent-run-step-node>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- For actual sub-run items (from the initial load) -->\n <mj-ai-agent-run-timeline\n *ngIf=\"item.type === 'subrun' && item.data?.ID\"\n [aiAgentRunId]=\"item.data.ID\"\n [autoRefresh]=\"false\"\n (itemSelected)=\"selectItem($event)\"\n (navigateToEntity)=\"navigateToEntity.emit($event)\">\n </mj-ai-agent-run-timeline>\n </div>\n </ng-container>\n </div>\n \n <div class=\"empty-state\" *ngIf=\"items.length === 0\">\n <i class=\"fas fa-stream fa-3x\"></i>\n <p>No execution steps found</p>\n </div>\n</div>\n\n<div class=\"loading-state\" *ngIf=\"loading\">\n <i class=\"fas fa-spinner fa-spin fa-2x\"></i>\n <p>Loading timeline...</p>\n</div>\n\n<div class=\"error-state\" *ngIf=\"error\">\n <i class=\"fas fa-exclamation-triangle fa-2x\"></i>\n <p>{{ error }}</p>\n</div>", styles: [".timeline-container {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline {\n position: relative;\n padding-left: 40px; /* Add padding to accommodate expand buttons */\n}\n\n.sub-timeline {\n margin-left: 24px;\n margin-top: 8px;\n padding-left: 12px;\n border-left: 2px dashed #e0e6ed;\n}\n\n/* State Displays */\n.empty-state,\n.loading-state,\n.error-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #6c757d;\n gap: 16px;\n}\n\n.error-state {\n color: #dc3545;\n}\n\n/* Loading and No Children States */\n.loading-children,\n.no-children {\n padding: 12px 20px;\n margin-left: 60px;\n color: #6c757d;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.loading-children i {\n color: #2196f3;\n}\n\n.no-children {\n color: #868e96;\n font-style: italic;\n}\n\n.no-children i {\n color: #adb5bd;\n}\n\n/* Sub-run steps container */\n.sub-run-steps {\n margin-left: 20px;\n padding-left: 20px;\n border-left: 2px solid #e9ecef;\n margin-top: 8px;\n}"] }]
|
|
400
|
-
}], () => [{ type:
|
|
403
|
+
args: [{ selector: 'mj-ai-agent-run-timeline', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"timeline-container\" *ngIf=\"!loading && (timelineItems$ | async) as items\">\n <div class=\"timeline\" *ngIf=\"items.length > 0\">\n <ng-container *ngFor=\"let item of items; trackBy: trackByItemId\">\n <!-- Main Timeline Item -->\n <mj-ai-agent-run-step-node\n [item]=\"item\"\n [isSelected]=\"selectedItem?.id === item.id\"\n (itemClick)=\"selectItem(item)\"\n (expandToggle)=\"toggleItemExpansion(item, $event)\"\n (navigateToEntity)=\"navigateToEntity.emit($event)\">\n </mj-ai-agent-run-step-node>\n \n <!-- Sub-Run Timeline (Recursive) -->\n <div class=\"sub-timeline\" *ngIf=\"(item.type === 'subrun' || (item.type === 'step' && item.data?.StepType === 'Sub-Agent')) && item.isExpanded\">\n <!-- Show loading indicator while loading children -->\n <div class=\"loading-children\" *ngIf=\"item.type === 'step' && !item.childrenLoaded\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading sub-agent steps...\n </div>\n \n <!-- Show no children message -->\n <div class=\"no-children\" *ngIf=\"item.type === 'step' && item.childrenLoaded && item.hasNoChildren\">\n <i class=\"fas fa-info-circle\"></i> No sub-agent steps found\n </div>\n \n <!-- For sub-agent steps that have loaded children -->\n <ng-container *ngIf=\"item.type === 'step' && item.childrenLoaded && item.children && item.children.length > 0\">\n <ng-container *ngFor=\"let child of item.children; trackBy: trackByItemId\">\n <!-- Render the sub-run container with its steps -->\n <mj-ai-agent-run-step-node\n [item]=\"child\"\n [isSelected]=\"selectedItem?.id === child.id\"\n (itemClick)=\"selectItem(child)\"\n (expandToggle)=\"toggleItemExpansion(child, $event)\"\n (navigateToEntity)=\"navigateToEntity.emit($event)\">\n </mj-ai-agent-run-step-node>\n \n <!-- Show the steps within this sub-run when expanded -->\n <div class=\"sub-run-steps\" *ngIf=\"child.isExpanded && child.children\">\n <ng-container *ngFor=\"let step of child.children; trackBy: trackByItemId\">\n <mj-ai-agent-run-step-node\n [item]=\"step\"\n [isSelected]=\"selectedItem?.id === step.id\"\n (itemClick)=\"selectItem(step)\"\n (expandToggle)=\"toggleItemExpansion(step, $event)\"\n (navigateToEntity)=\"navigateToEntity.emit($event)\">\n </mj-ai-agent-run-step-node>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- For actual sub-run items (from the initial load) -->\n <mj-ai-agent-run-timeline\n *ngIf=\"item.type === 'subrun' && item.data?.ID\"\n [aiAgentRunId]=\"item.data.ID\"\n [dataHelper]=\"createSubRunDataHelper()\"\n [autoRefresh]=\"false\"\n (itemSelected)=\"selectItem($event)\"\n (navigateToEntity)=\"navigateToEntity.emit($event)\">\n </mj-ai-agent-run-timeline>\n </div>\n </ng-container>\n </div>\n \n <div class=\"empty-state\" *ngIf=\"items.length === 0\">\n <i class=\"fas fa-stream fa-3x\"></i>\n <p>No execution steps found</p>\n </div>\n</div>\n\n<div class=\"loading-state\" *ngIf=\"loading\">\n <i class=\"fas fa-spinner fa-spin fa-2x\"></i>\n <p>Loading timeline...</p>\n</div>\n\n<div class=\"error-state\" *ngIf=\"error\">\n <i class=\"fas fa-exclamation-triangle fa-2x\"></i>\n <p>{{ error }}</p>\n</div>", styles: [".timeline-container {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline {\n position: relative;\n padding-left: 40px; /* Add padding to accommodate expand buttons */\n}\n\n.sub-timeline {\n margin-left: 24px;\n margin-top: 8px;\n padding-left: 12px;\n border-left: 2px dashed #e0e6ed;\n}\n\n/* State Displays */\n.empty-state,\n.loading-state,\n.error-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #6c757d;\n gap: 16px;\n}\n\n.error-state {\n color: #dc3545;\n}\n\n/* Loading and No Children States */\n.loading-children,\n.no-children {\n padding: 12px 20px;\n margin-left: 60px;\n color: #6c757d;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.loading-children i {\n color: #2196f3;\n}\n\n.no-children {\n color: #868e96;\n font-style: italic;\n}\n\n.no-children i {\n color: #adb5bd;\n}\n\n/* Sub-run steps container */\n.sub-run-steps {\n margin-left: 20px;\n padding-left: 20px;\n border-left: 2px solid #e9ecef;\n margin-top: 8px;\n}"] }]
|
|
404
|
+
}], () => [{ type: i0.ChangeDetectorRef }], { aiAgentRunId: [{
|
|
401
405
|
type: Input
|
|
402
406
|
}], autoRefresh: [{
|
|
403
407
|
type: Input
|
|
404
408
|
}], refreshInterval: [{
|
|
405
409
|
type: Input
|
|
410
|
+
}], dataHelper: [{
|
|
411
|
+
type: Input
|
|
406
412
|
}], itemSelected: [{
|
|
407
413
|
type: Output
|
|
408
414
|
}], navigateToEntity: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-timeline.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-timeline.component.ts","../../../../src/lib/custom/ai-agent-run/ai-agent-run-timeline.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-agent-run-timeline.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-timeline.component.ts","../../../../src/lib/custom/ai-agent-run/ai-agent-run-timeline.component.html"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { OnInit, OnDestroy, ElementRef, AfterViewInit, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { TimelineItem } from './ai-agent-run-timeline.component';
|
|
3
|
-
import {
|
|
3
|
+
import { AIAgentRunDataHelper } from './ai-agent-run-data.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class AIAgentRunVisualizationComponent implements OnInit, OnDestroy, AfterViewInit {
|
|
6
6
|
private cdr;
|
|
7
|
-
private dataService;
|
|
8
7
|
svgContainer: ElementRef<HTMLDivElement>;
|
|
9
8
|
aiAgentRunId: string;
|
|
9
|
+
dataHelper: AIAgentRunDataHelper;
|
|
10
10
|
private destroy$;
|
|
11
11
|
private viewInitialized;
|
|
12
|
+
/** Track active timeouts for cleanup */
|
|
13
|
+
private activeTimeouts;
|
|
14
|
+
/** Remove timeout from tracking array */
|
|
15
|
+
private removeTimeoutFromTracking;
|
|
12
16
|
private pendingData;
|
|
13
17
|
loading: boolean;
|
|
14
18
|
error: string | null;
|
|
@@ -32,7 +36,7 @@ export declare class AIAgentRunVisualizationComponent implements OnInit, OnDestr
|
|
|
32
36
|
private boundOnSvgMouseDown;
|
|
33
37
|
private boundOnSvgMouseMove;
|
|
34
38
|
private boundOnSvgMouseUp;
|
|
35
|
-
constructor(cdr: ChangeDetectorRef
|
|
39
|
+
constructor(cdr: ChangeDetectorRef);
|
|
36
40
|
ngOnInit(): void;
|
|
37
41
|
ngAfterViewInit(): void;
|
|
38
42
|
ngOnDestroy(): void;
|
|
@@ -72,6 +76,6 @@ export declare class AIAgentRunVisualizationComponent implements OnInit, OnDestr
|
|
|
72
76
|
navigateToActionLog(logId: string): void;
|
|
73
77
|
copyToClipboard(text: string): Promise<void>;
|
|
74
78
|
static ɵfac: i0.ɵɵFactoryDeclaration<AIAgentRunVisualizationComponent, never>;
|
|
75
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentRunVisualizationComponent, "mj-ai-agent-run-visualization", never, { "aiAgentRunId": { "alias": "aiAgentRunId"; "required": false; }; }, {}, never, never, false, never>;
|
|
79
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentRunVisualizationComponent, "mj-ai-agent-run-visualization", never, { "aiAgentRunId": { "alias": "aiAgentRunId"; "required": false; }; "dataHelper": { "alias": "dataHelper"; "required": false; }; }, {}, never, never, false, never>;
|
|
76
80
|
}
|
|
77
81
|
//# sourceMappingURL=ai-agent-run-visualization.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-visualization.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-visualization.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAa,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;AAItJ,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ai-agent-run-visualization.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-visualization.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAa,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;AAItJ,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;;AAuBnE,qBAMa,gCAAiC,YAAW,MAAM,EAAE,SAAS,EAAE,aAAa;IA+ErF,OAAO,CAAC,GAAG;IA9EiC,YAAY,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC/E,YAAY,EAAG,MAAM,CAAC;IACtB,UAAU,EAAG,oBAAoB,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,eAAe,CAAS;IAEhC,wCAAwC;IACxC,OAAO,CAAC,cAAc,CAAgB;IAEtC,yCAAyC;IACzC,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,WAAW,CAAwJ;IAE3K,OAAO,UAAS;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,OAAO,CAAC,WAAW,CAAS;IAE5B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAGzC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,WAAW,CAAgE;IAGnF,OAAO;;;;;;;MAOL;IAGF,OAAO,CAAC,SAAS,CAgBf;IAGF,OAAO,CAAC,QAAQ,CAMd;IAGF,OAAO,CAAC,gBAAgB,CAAuB;IAG/C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,iBAAiB,CAAgC;gBAG/C,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAgDR,eAAe;IA0Bf,WAAW;IA4EX,OAAO,CAAC,aAAa;YA4CP,kBAAkB;IAsEhC,OAAO,CAAC,kBAAkB;YAiBZ,mBAAmB;IAiEjC,OAAO,CAAC,iBAAiB;YAwFX,kBAAkB;IA0FhC,OAAO,CAAC,aAAa;IAmDrB,OAAO,CAAC,eAAe;IA6DvB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,kBAAkB;YAWZ,kBAAkB;YAmBlB,iBAAiB;IAyB/B,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,WAAW,CA6BlB;IAED,OAAO,CAAC,SAAS,CAiBhB;IAGD,OAAO,CAAC,KAAK,EAAE,UAAU;IAOzB,cAAc,CAAC,KAAK,EAAE,UAAU;IAShC,cAAc,CAAC,KAAK,EAAE,UAAU;IAQhC,YAAY,CAAC,KAAK,EAAE,UAAU;IAI9B,OAAO,CAAC,eAAe;IAYvB,MAAM;IAKN,OAAO;IAKP,SAAS;IAQT,eAAe;IAKf,mBAAmB,CAAC,KAAK,EAAE,MAAM;IAK3B,eAAe,CAAC,IAAI,EAAE,MAAM;yCA1jCvB,gCAAgC;2CAAhC,gCAAgC;CAikC5C"}
|
|
@@ -2,9 +2,8 @@ import { Component, Input, ViewChild, ChangeDetectionStrategy } from '@angular/c
|
|
|
2
2
|
import { Subject, combineLatest } from 'rxjs';
|
|
3
3
|
import { takeUntil } from 'rxjs/operators';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "
|
|
7
|
-
import * as i3 from "./ai-agent-run-step-detail.component";
|
|
5
|
+
import * as i1 from "@progress/kendo-angular-layout";
|
|
6
|
+
import * as i2 from "./ai-agent-run-step-detail.component";
|
|
8
7
|
const _c0 = ["svgContainer"];
|
|
9
8
|
function AIAgentRunVisualizationComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
10
9
|
i0.ɵɵelementStart(0, "div", 2);
|
|
@@ -72,11 +71,19 @@ function AIAgentRunVisualizationComponent_Conditional_2_Template(rf, ctx) { if (
|
|
|
72
71
|
i0.ɵɵconditional(ctx_r0.selectedItem ? 18 : -1);
|
|
73
72
|
} }
|
|
74
73
|
export class AIAgentRunVisualizationComponent {
|
|
75
|
-
|
|
74
|
+
/** Remove timeout from tracking array */
|
|
75
|
+
removeTimeoutFromTracking(timeoutId) {
|
|
76
|
+
const index = this.activeTimeouts.indexOf(timeoutId);
|
|
77
|
+
if (index > -1) {
|
|
78
|
+
this.activeTimeouts.splice(index, 1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
constructor(cdr) {
|
|
76
82
|
this.cdr = cdr;
|
|
77
|
-
this.dataService = dataService;
|
|
78
83
|
this.destroy$ = new Subject();
|
|
79
84
|
this.viewInitialized = false;
|
|
85
|
+
/** Track active timeouts for cleanup */
|
|
86
|
+
this.activeTimeouts = [];
|
|
80
87
|
this.pendingData = null;
|
|
81
88
|
this.loading = false; // Start with false so the container renders
|
|
82
89
|
this.error = null;
|
|
@@ -163,13 +170,13 @@ export class AIAgentRunVisualizationComponent {
|
|
|
163
170
|
}
|
|
164
171
|
ngOnInit() {
|
|
165
172
|
if (this.aiAgentRunId) {
|
|
166
|
-
// Subscribe to data from
|
|
173
|
+
// Subscribe to data from helper
|
|
167
174
|
combineLatest([
|
|
168
|
-
this.
|
|
169
|
-
this.
|
|
170
|
-
this.
|
|
171
|
-
this.
|
|
172
|
-
this.
|
|
175
|
+
this.dataHelper.steps$,
|
|
176
|
+
this.dataHelper.subRuns$,
|
|
177
|
+
this.dataHelper.actionLogs$,
|
|
178
|
+
this.dataHelper.promptRuns$,
|
|
179
|
+
this.dataHelper.loading$
|
|
173
180
|
]).pipe(takeUntil(this.destroy$)).subscribe(([steps, subRuns, actionLogs, promptRuns, loading]) => {
|
|
174
181
|
this.dataLoading = loading;
|
|
175
182
|
if (!loading && steps && steps.length > 0) {
|
|
@@ -194,7 +201,7 @@ export class AIAgentRunVisualizationComponent {
|
|
|
194
201
|
}
|
|
195
202
|
});
|
|
196
203
|
// Subscribe to error state
|
|
197
|
-
this.
|
|
204
|
+
this.dataHelper.error$.pipe(takeUntil(this.destroy$)).subscribe((error) => {
|
|
198
205
|
if (error) {
|
|
199
206
|
this.error = error;
|
|
200
207
|
this.loading = false;
|
|
@@ -225,8 +232,14 @@ export class AIAgentRunVisualizationComponent {
|
|
|
225
232
|
}
|
|
226
233
|
}
|
|
227
234
|
ngOnDestroy() {
|
|
235
|
+
// Signal all subscriptions to complete
|
|
228
236
|
this.destroy$.next();
|
|
229
237
|
this.destroy$.complete();
|
|
238
|
+
// Clear all active timeouts
|
|
239
|
+
this.activeTimeouts.forEach(timeoutId => {
|
|
240
|
+
clearTimeout(timeoutId);
|
|
241
|
+
});
|
|
242
|
+
this.activeTimeouts.length = 0;
|
|
230
243
|
// Clean up document-level event listeners
|
|
231
244
|
document.removeEventListener('mousemove', this.onMouseMove);
|
|
232
245
|
document.removeEventListener('mouseup', this.onMouseUp);
|
|
@@ -343,7 +356,13 @@ export class AIAgentRunVisualizationComponent {
|
|
|
343
356
|
this.error = null;
|
|
344
357
|
try {
|
|
345
358
|
// Wait a tick for the view to be fully ready
|
|
346
|
-
await new Promise(resolve =>
|
|
359
|
+
await new Promise(resolve => {
|
|
360
|
+
const timeoutId = setTimeout(() => {
|
|
361
|
+
this.removeTimeoutFromTracking(timeoutId);
|
|
362
|
+
resolve(undefined);
|
|
363
|
+
}, 0);
|
|
364
|
+
this.activeTimeouts.push(timeoutId);
|
|
365
|
+
});
|
|
347
366
|
// Clear existing elements
|
|
348
367
|
this.clearVisualization();
|
|
349
368
|
// Build nodes and scopes
|
|
@@ -812,7 +831,7 @@ export class AIAgentRunVisualizationComponent {
|
|
|
812
831
|
const targetLogId = step.TargetLogID;
|
|
813
832
|
try {
|
|
814
833
|
// Load sub-agent data through service
|
|
815
|
-
const data = await this.
|
|
834
|
+
const data = await this.dataHelper.loadSubAgentData(targetLogId);
|
|
816
835
|
if (data.steps && data.steps.length > 0) {
|
|
817
836
|
// Create nodes from data
|
|
818
837
|
this.createScopeNodes(scope, data.steps, data.promptRuns);
|
|
@@ -969,29 +988,31 @@ export class AIAgentRunVisualizationComponent {
|
|
|
969
988
|
console.error('Failed to copy to clipboard:', err);
|
|
970
989
|
}
|
|
971
990
|
}
|
|
972
|
-
static { this.ɵfac = function AIAgentRunVisualizationComponent_Factory(t) { return new (t || AIAgentRunVisualizationComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)
|
|
991
|
+
static { this.ɵfac = function AIAgentRunVisualizationComponent_Factory(t) { return new (t || AIAgentRunVisualizationComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
973
992
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunVisualizationComponent, selectors: [["mj-ai-agent-run-visualization"]], viewQuery: function AIAgentRunVisualizationComponent_Query(rf, ctx) { if (rf & 1) {
|
|
974
993
|
i0.ɵɵviewQuery(_c0, 5);
|
|
975
994
|
} if (rf & 2) {
|
|
976
995
|
let _t;
|
|
977
996
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.svgContainer = _t.first);
|
|
978
|
-
} }, inputs: { aiAgentRunId: "aiAgentRunId" }, decls: 3, vars: 1, consts: [["svgContainer", ""], [1, "visualization-container"], [1, "error-state"], ["orientation", "horizontal", 2, "height", "100%"], [1, "fa-solid", "fa-exclamation-triangle"], [3, "collapsible"], [1, "diagram-container"], [1, "diagram-toolbar"], [1, "toolbar-title"], [1, "fa-solid", "fa-diagram-project"], [1, "zoom-controls"], ["title", "Zoom in", 3, "click"], [1, "fa-solid", "fa-search-plus"], ["title", "Zoom out", 3, "click"], [1, "fa-solid", "fa-search-minus"], ["title", "Reset zoom", 3, "click"], [1, "fa-solid", "fa-compress"], [1, "zoom-level"], [1, "loading-overlay"], [3, "size", "min", "max", "collapsible"], [1, "fa-solid", "fa-spinner", "fa-spin"], [3, "closePanel", "navigateToActionLog", "copyToClipboard", "selectedTimelineItem"]], template: function AIAgentRunVisualizationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
997
|
+
} }, inputs: { aiAgentRunId: "aiAgentRunId", dataHelper: "dataHelper" }, decls: 3, vars: 1, consts: [["svgContainer", ""], [1, "visualization-container"], [1, "error-state"], ["orientation", "horizontal", 2, "height", "100%"], [1, "fa-solid", "fa-exclamation-triangle"], [3, "collapsible"], [1, "diagram-container"], [1, "diagram-toolbar"], [1, "toolbar-title"], [1, "fa-solid", "fa-diagram-project"], [1, "zoom-controls"], ["title", "Zoom in", 3, "click"], [1, "fa-solid", "fa-search-plus"], ["title", "Zoom out", 3, "click"], [1, "fa-solid", "fa-search-minus"], ["title", "Reset zoom", 3, "click"], [1, "fa-solid", "fa-compress"], [1, "zoom-level"], [1, "loading-overlay"], [3, "size", "min", "max", "collapsible"], [1, "fa-solid", "fa-spinner", "fa-spin"], [3, "closePanel", "navigateToActionLog", "copyToClipboard", "selectedTimelineItem"]], template: function AIAgentRunVisualizationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
979
998
|
i0.ɵɵelementStart(0, "div", 1);
|
|
980
999
|
i0.ɵɵtemplate(1, AIAgentRunVisualizationComponent_Conditional_1_Template, 4, 1, "div", 2)(2, AIAgentRunVisualizationComponent_Conditional_2_Template, 19, 4, "kendo-splitter", 3);
|
|
981
1000
|
i0.ɵɵelementEnd();
|
|
982
1001
|
} if (rf & 2) {
|
|
983
1002
|
i0.ɵɵadvance();
|
|
984
1003
|
i0.ɵɵconditional(ctx.error ? 1 : 2);
|
|
985
|
-
} }, dependencies: [
|
|
1004
|
+
} }, dependencies: [i1.SplitterComponent, i1.SplitterPaneComponent, i2.AIAgentRunStepDetailComponent], styles: [".visualization-container[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n position: relative;\n background: #f5f5f5;\n border: 1px solid #ddd;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.loading-state[_ngcontent-%COMP%], .error-state[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 0.5rem;\n color: #666;\n}\n\n.error-state[_ngcontent-%COMP%] {\n color: #c00;\n}\n\n.empty-state[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 1rem;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n opacity: 0.5;\n}\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n background: rgba(255, 255, 255, 0.9);\n padding: 1rem 2rem;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 10;\n}\n\n.diagram-container[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n background: #fafafa;\n}\n\n.diagram-toolbar[_ngcontent-%COMP%] {\n position: absolute;\n top: 10px;\n right: 10px;\n left: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: white;\n padding: 8px 12px;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n z-index: 10;\n}\n\n.toolbar-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.zoom-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.zoom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 6px 10px;\n border: 1px solid #ddd;\n background: white;\n border-radius: 3px;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n transition: all 0.2s;\n}\n\n.zoom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover {\n background: #f0f0f0;\n border-color: #4a90e2;\n}\n\n.zoom-level[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n margin-left: 8px;\n font-family: monospace;\n}\n\n.visualization-svg[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n cursor: grab;\n}\n\n.visualization-svg[_ngcontent-%COMP%]:active {\n cursor: grabbing;\n}\n\n\n\n[_nghost-%COMP%] .step-node {\n cursor: pointer;\n transition: transform 0.2s;\n}\n\n[_nghost-%COMP%] .step-node:hover {\n transform: scale(1.02);\n}\n\n[_nghost-%COMP%] .step-node.dragging {\n opacity: 0.8;\n cursor: move;\n}\n\n[_nghost-%COMP%] .step-node rect {\n filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));\n}\n\n[_nghost-%COMP%] .step-node:hover rect {\n filter: drop-shadow(0 4px 8px rgba(0,0,0,0.15));\n}\n\n[_nghost-%COMP%] .scope-container {\n cursor: pointer;\n}\n\n[_nghost-%COMP%] .scope-container rect {\n filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));\n}\n\n[_nghost-%COMP%] .expand-button:hover circle {\n fill: #e3f2fd;\n}\n\n[_nghost-%COMP%] .connections-group path {\n transition: stroke-width 0.2s;\n}\n\n[_nghost-%COMP%] .connections-group path:hover {\n stroke-width: 3;\n}\n\n\n\n[_nghost-%COMP%] .k-splitter {\n border: none;\n}\n\n[_nghost-%COMP%] .k-splitter-pane {\n overflow: visible;\n}\n\n[_nghost-%COMP%] .k-splitbar {\n background: #e0e6ed;\n width: 4px;\n}\n\n[_nghost-%COMP%] .k-splitbar:hover {\n background: #c1c9d2;\n}\n\n[_nghost-%COMP%] .k-splitbar-draggable-horizontal {\n cursor: col-resize;\n}\n\n\n\n[_nghost-%COMP%] .step-node[data-type=\"prompt\"] rect {\n fill: #e3f2fd;\n}\n\n[_nghost-%COMP%] .step-node[data-type=\"action\"] rect {\n fill: #e8f5e9;\n}\n\n[_nghost-%COMP%] .step-node[data-type=\"subagent\"] rect {\n fill: #fff3e0;\n}\n\n[_nghost-%COMP%] .step-node[data-type=\"tool\"] rect {\n fill: #f3e5f5;\n}\n\n[_nghost-%COMP%] .step-node[data-type=\"decision\"] rect {\n fill: #ffebee;\n}"], changeDetection: 0 }); }
|
|
986
1005
|
}
|
|
987
1006
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunVisualizationComponent, [{
|
|
988
1007
|
type: Component,
|
|
989
1008
|
args: [{ selector: 'mj-ai-agent-run-visualization', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"visualization-container\">\n @if (error) {\n <div class=\"error-state\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <span>{{ error }}</span>\n </div>\n } @else {\n <kendo-splitter orientation=\"horizontal\" style=\"height: 100%;\">\n <!-- Diagram Pane -->\n <kendo-splitter-pane [collapsible]=\"false\">\n <div class=\"diagram-container\" #svgContainer>\n <div class=\"diagram-toolbar\">\n <div class=\"toolbar-title\">\n <i class=\"fa-solid fa-diagram-project\"></i>\n Agent Execution Flow\n </div>\n <div class=\"zoom-controls\">\n <button (click)=\"zoomIn()\" title=\"Zoom in\">\n <i class=\"fa-solid fa-search-plus\"></i>\n </button>\n <button (click)=\"zoomOut()\" title=\"Zoom out\">\n <i class=\"fa-solid fa-search-minus\"></i>\n </button>\n <button (click)=\"resetZoom()\" title=\"Reset zoom\">\n <i class=\"fa-solid fa-compress\"></i>\n </button>\n <span class=\"zoom-level\">{{ (panZoom.scale * 100).toFixed(0) }}%</span>\n </div>\n </div>\n @if (loading) {\n <div class=\"loading-overlay\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>Loading visualization...</span>\n </div>\n }\n </div>\n </kendo-splitter-pane>\n \n <!-- Detail Pane -->\n @if (selectedItem) {\n <kendo-splitter-pane [size]=\"'400px'\" [min]=\"'300px'\" [max]=\"'600px'\" [collapsible]=\"true\">\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedItem\"\n (closePanel)=\"closeDetailPane()\"\n (navigateToActionLog)=\"navigateToActionLog($event)\"\n (copyToClipboard)=\"copyToClipboard($event)\">\n </mj-ai-agent-run-step-detail>\n </kendo-splitter-pane>\n }\n </kendo-splitter>\n }\n</div>", styles: [".visualization-container {\n width: 100%;\n height: 100%;\n position: relative;\n background: #f5f5f5;\n border: 1px solid #ddd;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.loading-state, .error-state, .empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 0.5rem;\n color: #666;\n}\n\n.error-state {\n color: #c00;\n}\n\n.empty-state {\n flex-direction: column;\n gap: 1rem;\n}\n\n.empty-state i {\n font-size: 2rem;\n opacity: 0.5;\n}\n\n.loading-overlay {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n background: rgba(255, 255, 255, 0.9);\n padding: 1rem 2rem;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 10;\n}\n\n.diagram-container {\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n background: #fafafa;\n}\n\n.diagram-toolbar {\n position: absolute;\n top: 10px;\n right: 10px;\n left: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: white;\n padding: 8px 12px;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n z-index: 10;\n}\n\n.toolbar-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.zoom-controls {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.zoom-controls button {\n padding: 6px 10px;\n border: 1px solid #ddd;\n background: white;\n border-radius: 3px;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n transition: all 0.2s;\n}\n\n.zoom-controls button:hover {\n background: #f0f0f0;\n border-color: #4a90e2;\n}\n\n.zoom-level {\n font-size: 12px;\n color: #666;\n margin-left: 8px;\n font-family: monospace;\n}\n\n.visualization-svg {\n width: 100%;\n height: 100%;\n cursor: grab;\n}\n\n.visualization-svg:active {\n cursor: grabbing;\n}\n\n/* SVG Styles */\n:host ::ng-deep .step-node {\n cursor: pointer;\n transition: transform 0.2s;\n}\n\n:host ::ng-deep .step-node:hover {\n transform: scale(1.02);\n}\n\n:host ::ng-deep .step-node.dragging {\n opacity: 0.8;\n cursor: move;\n}\n\n:host ::ng-deep .step-node rect {\n filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));\n}\n\n:host ::ng-deep .step-node:hover rect {\n filter: drop-shadow(0 4px 8px rgba(0,0,0,0.15));\n}\n\n:host ::ng-deep .scope-container {\n cursor: pointer;\n}\n\n:host ::ng-deep .scope-container rect {\n filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));\n}\n\n:host ::ng-deep .expand-button:hover circle {\n fill: #e3f2fd;\n}\n\n:host ::ng-deep .connections-group path {\n transition: stroke-width 0.2s;\n}\n\n:host ::ng-deep .connections-group path:hover {\n stroke-width: 3;\n}\n\n/* Splitter customization */\n:host ::ng-deep .k-splitter {\n border: none;\n}\n\n:host ::ng-deep .k-splitter-pane {\n overflow: visible;\n}\n\n:host ::ng-deep .k-splitbar {\n background: #e0e6ed;\n width: 4px;\n}\n\n:host ::ng-deep .k-splitbar:hover {\n background: #c1c9d2;\n}\n\n:host ::ng-deep .k-splitbar-draggable-horizontal {\n cursor: col-resize;\n}\n\n/* Node type colors */\n:host ::ng-deep .step-node[data-type=\"prompt\"] rect {\n fill: #e3f2fd;\n}\n\n:host ::ng-deep .step-node[data-type=\"action\"] rect {\n fill: #e8f5e9;\n}\n\n:host ::ng-deep .step-node[data-type=\"subagent\"] rect {\n fill: #fff3e0;\n}\n\n:host ::ng-deep .step-node[data-type=\"tool\"] rect {\n fill: #f3e5f5;\n}\n\n:host ::ng-deep .step-node[data-type=\"decision\"] rect {\n fill: #ffebee;\n}"] }]
|
|
990
|
-
}], () => [{ type: i0.ChangeDetectorRef }
|
|
1009
|
+
}], () => [{ type: i0.ChangeDetectorRef }], { svgContainer: [{
|
|
991
1010
|
type: ViewChild,
|
|
992
1011
|
args: ['svgContainer', { static: false }]
|
|
993
1012
|
}], aiAgentRunId: [{
|
|
994
1013
|
type: Input
|
|
1014
|
+
}], dataHelper: [{
|
|
1015
|
+
type: Input
|
|
995
1016
|
}] }); })();
|
|
996
1017
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentRunVisualizationComponent, { className: "AIAgentRunVisualizationComponent", filePath: "src/lib/custom/ai-agent-run/ai-agent-run-visualization.component.ts", lineNumber: 35 }); })();
|
|
997
1018
|
//# sourceMappingURL=ai-agent-run-visualization.component.js.map
|