@memberjunction/ng-core-entity-forms 2.74.0 → 2.76.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/README.md +124 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.d.ts +109 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.js +2020 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts +32 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js +413 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.d.ts +9 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.js +84 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +34 -6
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +656 -520
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +11 -6
- 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 +459 -448
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +51 -49
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-test-harness.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-test-harness.component.js +5 -3
- package/dist/lib/custom/Actions/action-test-harness.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +35 -7
- 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 +235 -219
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts +37 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +117 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +49 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +211 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +33 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +265 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +0 -8
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +4 -8
- 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 +47 -189
- 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 +71 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +931 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +10 -4
- 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 +257 -295
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +30 -25
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +31 -4
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +34 -14
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.js +80 -0
- package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.js +277 -0
- package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.js +59 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.js +147 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentType/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentType/sections/details.component.js +31 -4
- package/dist/lib/generated/Entities/AIAgentType/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +16 -6
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.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 +15 -4
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Action/action.form.component.js +19 -9
- package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +294 -285
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +183 -110
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +21 -17
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { RunView } from '@memberjunction/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AIAgentRunDataService {
|
|
6
|
+
constructor() {
|
|
7
|
+
// Data subjects
|
|
8
|
+
this.stepsSubject$ = new BehaviorSubject([]);
|
|
9
|
+
this.subRunsSubject$ = new BehaviorSubject([]);
|
|
10
|
+
this.actionLogsSubject$ = new BehaviorSubject([]);
|
|
11
|
+
this.promptRunsSubject$ = new BehaviorSubject([]);
|
|
12
|
+
this.loadingSubject$ = new BehaviorSubject(false);
|
|
13
|
+
this.errorSubject$ = new BehaviorSubject(null);
|
|
14
|
+
// Public observables
|
|
15
|
+
this.steps$ = this.stepsSubject$.asObservable();
|
|
16
|
+
this.subRuns$ = this.subRunsSubject$.asObservable();
|
|
17
|
+
this.actionLogs$ = this.actionLogsSubject$.asObservable();
|
|
18
|
+
this.promptRuns$ = this.promptRunsSubject$.asObservable();
|
|
19
|
+
this.loading$ = this.loadingSubject$.asObservable();
|
|
20
|
+
this.error$ = this.errorSubject$.asObservable();
|
|
21
|
+
// Cache for sub-agent data
|
|
22
|
+
this.subAgentDataCache = new Map();
|
|
23
|
+
this.currentAgentRunId = null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Load all data for an agent run
|
|
27
|
+
*/
|
|
28
|
+
async loadAgentRunData(agentRunId) {
|
|
29
|
+
if (!agentRunId) {
|
|
30
|
+
this.errorSubject$.next('No agent run ID provided');
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// If already loaded for this run, don't reload
|
|
34
|
+
if (this.currentAgentRunId === agentRunId && this.stepsSubject$.value.length > 0) {
|
|
35
|
+
console.log('AgentRunDataService: Data already loaded for', agentRunId);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.currentAgentRunId = agentRunId;
|
|
39
|
+
this.loadingSubject$.next(true);
|
|
40
|
+
this.errorSubject$.next(null);
|
|
41
|
+
// Clear cache when loading new run
|
|
42
|
+
this.subAgentDataCache.clear();
|
|
43
|
+
try {
|
|
44
|
+
await this.loadStepsAndSubRuns(agentRunId);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
this.errorSubject$.next('Failed to load agent run data');
|
|
48
|
+
console.error('Error loading agent run data:', error);
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
this.loadingSubject$.next(false);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async loadStepsAndSubRuns(agentRunId) {
|
|
55
|
+
const rv = new RunView();
|
|
56
|
+
// First, get all steps to determine what additional data we need
|
|
57
|
+
const stepsResult = await rv.RunView({
|
|
58
|
+
EntityName: 'MJ: AI Agent Run Steps',
|
|
59
|
+
ExtraFilter: `AgentRunID='${agentRunId}'`,
|
|
60
|
+
OrderBy: 'StepNumber'
|
|
61
|
+
});
|
|
62
|
+
if (!stepsResult.Success) {
|
|
63
|
+
throw new Error('Failed to load agent run steps');
|
|
64
|
+
}
|
|
65
|
+
const steps = stepsResult.Results || [];
|
|
66
|
+
// Build filters for batch loading
|
|
67
|
+
const actionLogIds = steps
|
|
68
|
+
.filter(s => s.StepType === 'Actions' && s.TargetLogID)
|
|
69
|
+
.map(s => s.TargetLogID)
|
|
70
|
+
.filter(id => id != null);
|
|
71
|
+
const promptRunIds = steps
|
|
72
|
+
.filter(s => s.StepType === 'Prompt' && s.TargetLogID)
|
|
73
|
+
.map(s => s.TargetLogID)
|
|
74
|
+
.filter(id => id != null);
|
|
75
|
+
// Build batch queries array
|
|
76
|
+
const batchQueries = [
|
|
77
|
+
// Sub-runs query
|
|
78
|
+
{
|
|
79
|
+
EntityName: 'MJ: AI Agent Runs',
|
|
80
|
+
ExtraFilter: `ParentRunID='${agentRunId}'`,
|
|
81
|
+
OrderBy: 'StartedAt'
|
|
82
|
+
},
|
|
83
|
+
// Current run query
|
|
84
|
+
{
|
|
85
|
+
EntityName: 'MJ: AI Agent Runs',
|
|
86
|
+
ExtraFilter: `ID='${agentRunId}'`
|
|
87
|
+
}
|
|
88
|
+
];
|
|
89
|
+
// Add action logs query if needed
|
|
90
|
+
if (actionLogIds.length > 0) {
|
|
91
|
+
batchQueries.push({
|
|
92
|
+
EntityName: 'Action Execution Logs',
|
|
93
|
+
ExtraFilter: `ID IN ('${actionLogIds.join("','")}')`,
|
|
94
|
+
OrderBy: 'StartedAt'
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
// Add prompt runs query if needed
|
|
98
|
+
if (promptRunIds.length > 0) {
|
|
99
|
+
batchQueries.push({
|
|
100
|
+
EntityName: 'MJ: AI Prompt Runs',
|
|
101
|
+
ExtraFilter: `ID IN ('${promptRunIds.join("','")}')`,
|
|
102
|
+
OrderBy: '__mj_CreatedAt'
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// Execute all queries in one batch
|
|
106
|
+
const batchResults = await rv.RunViews(batchQueries);
|
|
107
|
+
// Process results
|
|
108
|
+
let resultIndex = 0;
|
|
109
|
+
// Sub-runs
|
|
110
|
+
const subRuns = batchResults[resultIndex].Success
|
|
111
|
+
? (batchResults[resultIndex].Results || [])
|
|
112
|
+
: [];
|
|
113
|
+
resultIndex++;
|
|
114
|
+
// Skip current run result
|
|
115
|
+
resultIndex++;
|
|
116
|
+
// Action logs
|
|
117
|
+
const actionLogs = actionLogIds.length > 0 && batchResults[resultIndex]?.Success
|
|
118
|
+
? (batchResults[resultIndex].Results || [])
|
|
119
|
+
: [];
|
|
120
|
+
if (actionLogIds.length > 0)
|
|
121
|
+
resultIndex++;
|
|
122
|
+
// Prompt runs
|
|
123
|
+
const promptRuns = promptRunIds.length > 0 && batchResults[resultIndex]?.Success
|
|
124
|
+
? (batchResults[resultIndex].Results || [])
|
|
125
|
+
: [];
|
|
126
|
+
// Update all subjects
|
|
127
|
+
this.stepsSubject$.next(steps);
|
|
128
|
+
this.subRunsSubject$.next(subRuns);
|
|
129
|
+
this.actionLogsSubject$.next(actionLogs);
|
|
130
|
+
this.promptRunsSubject$.next(promptRuns);
|
|
131
|
+
console.log('AgentRunDataService: Data loaded', {
|
|
132
|
+
steps: steps.length,
|
|
133
|
+
subRuns: subRuns.length,
|
|
134
|
+
actionLogs: actionLogs.length,
|
|
135
|
+
promptRuns: promptRuns.length
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Load sub-agent data (for expanding sub-agent nodes)
|
|
140
|
+
*/
|
|
141
|
+
async loadSubAgentData(subAgentRunId) {
|
|
142
|
+
// Check cache first
|
|
143
|
+
const cachedData = this.subAgentDataCache.get(subAgentRunId);
|
|
144
|
+
if (cachedData) {
|
|
145
|
+
return cachedData;
|
|
146
|
+
}
|
|
147
|
+
const rv = new RunView();
|
|
148
|
+
// Load steps first to determine what else we need
|
|
149
|
+
const stepsResult = await rv.RunView({
|
|
150
|
+
EntityName: 'MJ: AI Agent Run Steps',
|
|
151
|
+
ExtraFilter: `AgentRunID = '${subAgentRunId}'`,
|
|
152
|
+
OrderBy: 'StepNumber'
|
|
153
|
+
});
|
|
154
|
+
if (!stepsResult.Success || !stepsResult.Results) {
|
|
155
|
+
return { steps: [], promptRuns: [] };
|
|
156
|
+
}
|
|
157
|
+
const steps = stepsResult.Results;
|
|
158
|
+
// Get prompt run IDs
|
|
159
|
+
const promptRunIds = steps
|
|
160
|
+
.filter(s => s.StepType === 'Prompt' && s.TargetLogID)
|
|
161
|
+
.map(s => s.TargetLogID)
|
|
162
|
+
.filter(id => id != null);
|
|
163
|
+
let promptRuns = [];
|
|
164
|
+
// Load prompt runs if needed
|
|
165
|
+
if (promptRunIds.length > 0) {
|
|
166
|
+
const promptResult = await rv.RunView({
|
|
167
|
+
EntityName: 'MJ: AI Prompt Runs',
|
|
168
|
+
ExtraFilter: `ID IN ('${promptRunIds.join("','")}')`,
|
|
169
|
+
OrderBy: '__mj_CreatedAt'
|
|
170
|
+
});
|
|
171
|
+
if (promptResult.Success) {
|
|
172
|
+
promptRuns = promptResult.Results || [];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Cache the data
|
|
176
|
+
const data = { steps, promptRuns };
|
|
177
|
+
this.subAgentDataCache.set(subAgentRunId, data);
|
|
178
|
+
return data;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Clear all data
|
|
182
|
+
*/
|
|
183
|
+
clearData() {
|
|
184
|
+
this.stepsSubject$.next([]);
|
|
185
|
+
this.subRunsSubject$.next([]);
|
|
186
|
+
this.actionLogsSubject$.next([]);
|
|
187
|
+
this.promptRunsSubject$.next([]);
|
|
188
|
+
this.subAgentDataCache.clear();
|
|
189
|
+
this.currentAgentRunId = null;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Get current data snapshot
|
|
193
|
+
*/
|
|
194
|
+
getCurrentData() {
|
|
195
|
+
return {
|
|
196
|
+
steps: this.stepsSubject$.value,
|
|
197
|
+
subRuns: this.subRunsSubject$.value,
|
|
198
|
+
actionLogs: this.actionLogsSubject$.value,
|
|
199
|
+
promptRuns: this.promptRunsSubject$.value
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
static { this.ɵfac = function AIAgentRunDataService_Factory(t) { return new (t || AIAgentRunDataService)(); }; }
|
|
203
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AIAgentRunDataService, factory: AIAgentRunDataService.ɵfac, providedIn: 'root' }); }
|
|
204
|
+
}
|
|
205
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunDataService, [{
|
|
206
|
+
type: Injectable,
|
|
207
|
+
args: [{
|
|
208
|
+
providedIn: 'root'
|
|
209
|
+
}]
|
|
210
|
+
}], () => [], null); })();
|
|
211
|
+
//# sourceMappingURL=ai-agent-run-data.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-agent-run-data.service.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-data.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { EventEmitter, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { TimelineItem } from './ai-agent-run-timeline.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class AIAgentRunStepDetailComponent {
|
|
5
|
+
private cdr;
|
|
6
|
+
selectedTimelineItem: TimelineItem | null;
|
|
7
|
+
closePanel: EventEmitter<void>;
|
|
8
|
+
navigateToActionLog: EventEmitter<string>;
|
|
9
|
+
copyToClipboard: EventEmitter<string>;
|
|
10
|
+
selectedItemJsonString: string;
|
|
11
|
+
detailPaneTab: 'json' | 'diff';
|
|
12
|
+
constructor(cdr: ChangeDetectorRef);
|
|
13
|
+
ngOnChanges(): void;
|
|
14
|
+
getSelectedItemJson(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Check if selected timeline item is a step with payload changes
|
|
17
|
+
*/
|
|
18
|
+
get showStepPayloadDiff(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Get parsed PayloadAtStart for the selected step
|
|
21
|
+
*/
|
|
22
|
+
get stepPayloadAtStartObject(): any;
|
|
23
|
+
/**
|
|
24
|
+
* Get parsed PayloadAtEnd for the selected step
|
|
25
|
+
*/
|
|
26
|
+
get stepPayloadAtEndObject(): any;
|
|
27
|
+
onClosePanel(): void;
|
|
28
|
+
onNavigateToActionLog(logId: string): void;
|
|
29
|
+
onCopyToClipboard(): void;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AIAgentRunStepDetailComponent, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentRunStepDetailComponent, "mj-ai-agent-run-step-detail", never, { "selectedTimelineItem": { "alias": "selectedTimelineItem"; "required": false; }; }, { "closePanel": "closePanel"; "navigateToActionLog": "navigateToActionLog"; "copyToClipboard": "copyToClipboard"; }, never, never, false, never>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ai-agent-run-step-detail.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-agent-run-step-detail.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;;AAIjE,qBAKa,6BAA6B;IAS5B,OAAO,CAAC,GAAG;IARd,oBAAoB,EAAE,YAAY,GAAG,IAAI,CAAQ;IAChD,UAAU,qBAA4B;IACtC,mBAAmB,uBAA8B;IACjD,eAAe,uBAA8B;IAEvD,sBAAsB,SAAQ;IAC9B,aAAa,EAAE,MAAM,GAAG,MAAM,CAAU;gBAEpB,GAAG,EAAE,iBAAiB;IAE1C,WAAW;IASX,mBAAmB,IAAI,MAAM;IAuB7B;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAYjC;IAED;;OAEG;IACH,IAAI,wBAAwB,IAAI,GAAG,CA4BlC;IAED;;OAEG;IACH,IAAI,sBAAsB,IAAI,GAAG,CA4BhC;IAED,YAAY;IAIZ,qBAAqB,CAAC,KAAK,EAAE,MAAM;IAInC,iBAAiB;yCAtIN,6BAA6B;2CAA7B,6BAA6B;CAyIzC"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { AIAgentRunStepEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import { ParseJSONRecursive } from '@memberjunction/global';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
import * as i3 from "@memberjunction/ng-code-editor";
|
|
8
|
+
import * as i4 from "@memberjunction/ng-deep-diff";
|
|
9
|
+
function AIAgentRunStepDetailComponent_div_0_div_24_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
11
|
+
i0.ɵɵelementStart(0, "div", 15)(1, "button", 16);
|
|
12
|
+
i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_div_0_div_24_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onNavigateToActionLog(ctx_r1.selectedTimelineItem.data.ID)); });
|
|
13
|
+
i0.ɵɵelement(2, "i", 17);
|
|
14
|
+
i0.ɵɵtext(3, " View Action Execution Log ");
|
|
15
|
+
i0.ɵɵelementEnd()();
|
|
16
|
+
} }
|
|
17
|
+
function AIAgentRunStepDetailComponent_div_0_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
19
|
+
i0.ɵɵelementStart(0, "div", 11)(1, "button", 18);
|
|
20
|
+
i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_div_0_Conditional_25_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.detailPaneTab = "diff"); });
|
|
21
|
+
i0.ɵɵelement(2, "i", 19);
|
|
22
|
+
i0.ɵɵtext(3, " Payload Changes ");
|
|
23
|
+
i0.ɵɵelementEnd();
|
|
24
|
+
i0.ɵɵelementStart(4, "button", 18);
|
|
25
|
+
i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_div_0_Conditional_25_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.detailPaneTab = "json"); });
|
|
26
|
+
i0.ɵɵelement(5, "i", 20);
|
|
27
|
+
i0.ɵɵtext(6, " Full JSON ");
|
|
28
|
+
i0.ɵɵelementEnd()();
|
|
29
|
+
} if (rf & 2) {
|
|
30
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
31
|
+
i0.ɵɵadvance();
|
|
32
|
+
i0.ɵɵclassProp("active", ctx_r1.detailPaneTab === "diff");
|
|
33
|
+
i0.ɵɵadvance(3);
|
|
34
|
+
i0.ɵɵclassProp("active", ctx_r1.detailPaneTab === "json");
|
|
35
|
+
} }
|
|
36
|
+
function AIAgentRunStepDetailComponent_div_0_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
i0.ɵɵelementStart(0, "div", 13);
|
|
38
|
+
i0.ɵɵelement(1, "mj-deep-diff", 21);
|
|
39
|
+
i0.ɵɵelementEnd();
|
|
40
|
+
} if (rf & 2) {
|
|
41
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
42
|
+
i0.ɵɵadvance();
|
|
43
|
+
i0.ɵɵproperty("oldValue", ctx_r1.stepPayloadAtStartObject)("newValue", ctx_r1.stepPayloadAtEndObject)("title", "")("showSummary", true)("showUnchanged", false)("expandAll", false)("maxDepth", 8)("maxStringLength", 150)("treatNullAsUndefined", true);
|
|
44
|
+
} }
|
|
45
|
+
function AIAgentRunStepDetailComponent_div_0_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
47
|
+
i0.ɵɵelementStart(0, "div", 14)(1, "div", 22)(2, "button", 23);
|
|
48
|
+
i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_div_0_Conditional_28_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onCopyToClipboard()); });
|
|
49
|
+
i0.ɵɵelement(3, "i", 24);
|
|
50
|
+
i0.ɵɵelementEnd()();
|
|
51
|
+
i0.ɵɵelementStart(4, "mj-code-editor", 25);
|
|
52
|
+
i0.ɵɵtwoWayListener("ngModelChange", function AIAgentRunStepDetailComponent_div_0_Conditional_28_Template_mj_code_editor_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.selectedItemJsonString, $event) || (ctx_r1.selectedItemJsonString = $event); return i0.ɵɵresetView($event); });
|
|
53
|
+
i0.ɵɵelementEnd()();
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
56
|
+
i0.ɵɵadvance(4);
|
|
57
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.selectedItemJsonString);
|
|
58
|
+
i0.ɵɵproperty("language", "json")("readonly", true);
|
|
59
|
+
} }
|
|
60
|
+
function AIAgentRunStepDetailComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
61
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
62
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "h3");
|
|
63
|
+
i0.ɵɵelement(3, "i", 3);
|
|
64
|
+
i0.ɵɵtext(4);
|
|
65
|
+
i0.ɵɵelementEnd();
|
|
66
|
+
i0.ɵɵelementStart(5, "button", 4);
|
|
67
|
+
i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_div_0_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onClosePanel()); });
|
|
68
|
+
i0.ɵɵelement(6, "i", 5);
|
|
69
|
+
i0.ɵɵelementEnd()();
|
|
70
|
+
i0.ɵɵelementStart(7, "div", 6)(8, "div", 7)(9, "div", 8)(10, "label");
|
|
71
|
+
i0.ɵɵtext(11, "Type");
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
i0.ɵɵelementStart(12, "span");
|
|
74
|
+
i0.ɵɵtext(13);
|
|
75
|
+
i0.ɵɵelementEnd()();
|
|
76
|
+
i0.ɵɵelementStart(14, "div", 8)(15, "label");
|
|
77
|
+
i0.ɵɵtext(16, "Status");
|
|
78
|
+
i0.ɵɵelementEnd();
|
|
79
|
+
i0.ɵɵelementStart(17, "span", 9);
|
|
80
|
+
i0.ɵɵtext(18);
|
|
81
|
+
i0.ɵɵelementEnd()();
|
|
82
|
+
i0.ɵɵelementStart(19, "div", 8)(20, "label");
|
|
83
|
+
i0.ɵɵtext(21, "Duration");
|
|
84
|
+
i0.ɵɵelementEnd();
|
|
85
|
+
i0.ɵɵelementStart(22, "span");
|
|
86
|
+
i0.ɵɵtext(23);
|
|
87
|
+
i0.ɵɵelementEnd()()();
|
|
88
|
+
i0.ɵɵtemplate(24, AIAgentRunStepDetailComponent_div_0_div_24_Template, 4, 0, "div", 10)(25, AIAgentRunStepDetailComponent_div_0_Conditional_25_Template, 7, 4, "div", 11);
|
|
89
|
+
i0.ɵɵelementStart(26, "div", 12);
|
|
90
|
+
i0.ɵɵtemplate(27, AIAgentRunStepDetailComponent_div_0_Conditional_27_Template, 2, 9, "div", 13)(28, AIAgentRunStepDetailComponent_div_0_Conditional_28_Template, 5, 3, "div", 14);
|
|
91
|
+
i0.ɵɵelementEnd()()();
|
|
92
|
+
} if (rf & 2) {
|
|
93
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
94
|
+
i0.ɵɵadvance(3);
|
|
95
|
+
i0.ɵɵproperty("ngClass", ctx_r1.selectedTimelineItem.icon);
|
|
96
|
+
i0.ɵɵadvance();
|
|
97
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.selectedTimelineItem.title, " ");
|
|
98
|
+
i0.ɵɵadvance(9);
|
|
99
|
+
i0.ɵɵtextInterpolate(ctx_r1.selectedTimelineItem.type);
|
|
100
|
+
i0.ɵɵadvance(4);
|
|
101
|
+
i0.ɵɵattribute("data-status", ctx_r1.selectedTimelineItem.status);
|
|
102
|
+
i0.ɵɵadvance();
|
|
103
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.selectedTimelineItem.status, " ");
|
|
104
|
+
i0.ɵɵadvance(5);
|
|
105
|
+
i0.ɵɵtextInterpolate(ctx_r1.selectedTimelineItem.duration || "N/A");
|
|
106
|
+
i0.ɵɵadvance();
|
|
107
|
+
i0.ɵɵproperty("ngIf", ctx_r1.selectedTimelineItem.type === "action" && (ctx_r1.selectedTimelineItem.data == null ? null : ctx_r1.selectedTimelineItem.data.ID));
|
|
108
|
+
i0.ɵɵadvance();
|
|
109
|
+
i0.ɵɵconditional(ctx_r1.showStepPayloadDiff ? 25 : -1);
|
|
110
|
+
i0.ɵɵadvance();
|
|
111
|
+
i0.ɵɵclassProp("with-tabs", ctx_r1.showStepPayloadDiff);
|
|
112
|
+
i0.ɵɵadvance();
|
|
113
|
+
i0.ɵɵconditional(ctx_r1.detailPaneTab === "diff" && ctx_r1.showStepPayloadDiff ? 27 : -1);
|
|
114
|
+
i0.ɵɵadvance();
|
|
115
|
+
i0.ɵɵconditional(ctx_r1.detailPaneTab === "json" || !ctx_r1.showStepPayloadDiff ? 28 : -1);
|
|
116
|
+
} }
|
|
117
|
+
export class AIAgentRunStepDetailComponent {
|
|
118
|
+
constructor(cdr) {
|
|
119
|
+
this.cdr = cdr;
|
|
120
|
+
this.selectedTimelineItem = null;
|
|
121
|
+
this.closePanel = new EventEmitter();
|
|
122
|
+
this.navigateToActionLog = new EventEmitter();
|
|
123
|
+
this.copyToClipboard = new EventEmitter();
|
|
124
|
+
this.selectedItemJsonString = '{}';
|
|
125
|
+
this.detailPaneTab = 'diff';
|
|
126
|
+
}
|
|
127
|
+
ngOnChanges() {
|
|
128
|
+
if (this.selectedTimelineItem) {
|
|
129
|
+
this.selectedItemJsonString = this.getSelectedItemJson();
|
|
130
|
+
// Default to diff tab if step has payload diff, otherwise json tab
|
|
131
|
+
this.detailPaneTab = this.showStepPayloadDiff ? 'diff' : 'json';
|
|
132
|
+
this.cdr.detectChanges();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
getSelectedItemJson() {
|
|
136
|
+
if (!this.selectedTimelineItem)
|
|
137
|
+
return '{}';
|
|
138
|
+
// Get all the data from the entity
|
|
139
|
+
let data;
|
|
140
|
+
if (this.selectedTimelineItem.data instanceof AIAgentRunStepEntity) {
|
|
141
|
+
// If it's a step entity, we need to get the full run data
|
|
142
|
+
data = this.selectedTimelineItem.data.GetAll();
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
data = this.selectedTimelineItem.data;
|
|
146
|
+
}
|
|
147
|
+
// Apply recursive JSON parsing to the entire data object
|
|
148
|
+
const parseOptions = {
|
|
149
|
+
extractInlineJson: true,
|
|
150
|
+
maxDepth: 100,
|
|
151
|
+
debug: false
|
|
152
|
+
};
|
|
153
|
+
const parsedData = ParseJSONRecursive(data, parseOptions);
|
|
154
|
+
return JSON.stringify(parsedData, null, 2);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Check if selected timeline item is a step with payload changes
|
|
158
|
+
*/
|
|
159
|
+
get showStepPayloadDiff() {
|
|
160
|
+
if (!this.selectedTimelineItem || this.selectedTimelineItem.type !== 'step') {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
const stepData = this.selectedTimelineItem.data;
|
|
164
|
+
if (stepData && (stepData.PayloadAtStart?.trim().length > 0
|
|
165
|
+
|| stepData.PayloadAtEnd?.trim().length > 0)) {
|
|
166
|
+
return stepData.PayloadAtStart !== stepData.PayloadAtEnd;
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get parsed PayloadAtStart for the selected step
|
|
174
|
+
*/
|
|
175
|
+
get stepPayloadAtStartObject() {
|
|
176
|
+
if (!this.selectedTimelineItem || this.selectedTimelineItem.type !== 'step') {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
const stepData = this.selectedTimelineItem.data;
|
|
180
|
+
if (!stepData?.PayloadAtStart)
|
|
181
|
+
return null;
|
|
182
|
+
try {
|
|
183
|
+
// First, check if PayloadAtStart is a JSON string that needs to be parsed
|
|
184
|
+
let payloadData = stepData.PayloadAtStart;
|
|
185
|
+
try {
|
|
186
|
+
// If PayloadAtStart is a JSON string, parse it first
|
|
187
|
+
payloadData = JSON.parse(stepData.PayloadAtStart);
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// If it's not valid JSON, use it as-is
|
|
191
|
+
payloadData = stepData.PayloadAtStart;
|
|
192
|
+
}
|
|
193
|
+
const parseOptions = {
|
|
194
|
+
extractInlineJson: true,
|
|
195
|
+
maxDepth: 100,
|
|
196
|
+
debug: false
|
|
197
|
+
};
|
|
198
|
+
return ParseJSONRecursive(payloadData, parseOptions);
|
|
199
|
+
}
|
|
200
|
+
catch (e) {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Get parsed PayloadAtEnd for the selected step
|
|
206
|
+
*/
|
|
207
|
+
get stepPayloadAtEndObject() {
|
|
208
|
+
if (!this.selectedTimelineItem || this.selectedTimelineItem.type !== 'step') {
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
const stepData = this.selectedTimelineItem.data;
|
|
212
|
+
if (!stepData?.PayloadAtEnd)
|
|
213
|
+
return null;
|
|
214
|
+
try {
|
|
215
|
+
// First, check if PayloadAtEnd is a JSON string that needs to be parsed
|
|
216
|
+
let payloadData = stepData.PayloadAtEnd;
|
|
217
|
+
try {
|
|
218
|
+
// If PayloadAtEnd is a JSON string, parse it first
|
|
219
|
+
payloadData = JSON.parse(stepData.PayloadAtEnd);
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
// If it's not valid JSON, use it as-is
|
|
223
|
+
payloadData = stepData.PayloadAtEnd;
|
|
224
|
+
}
|
|
225
|
+
const parseOptions = {
|
|
226
|
+
extractInlineJson: true,
|
|
227
|
+
maxDepth: 100,
|
|
228
|
+
debug: false
|
|
229
|
+
};
|
|
230
|
+
return ParseJSONRecursive(payloadData, parseOptions);
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
onClosePanel() {
|
|
237
|
+
this.closePanel.emit();
|
|
238
|
+
}
|
|
239
|
+
onNavigateToActionLog(logId) {
|
|
240
|
+
this.navigateToActionLog.emit(logId);
|
|
241
|
+
}
|
|
242
|
+
onCopyToClipboard() {
|
|
243
|
+
this.copyToClipboard.emit(this.getSelectedItemJson());
|
|
244
|
+
}
|
|
245
|
+
static { this.ɵfac = function AIAgentRunStepDetailComponent_Factory(t) { return new (t || AIAgentRunStepDetailComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
246
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunStepDetailComponent, selectors: [["mj-ai-agent-run-step-detail"]], inputs: { selectedTimelineItem: "selectedTimelineItem" }, outputs: { closePanel: "closePanel", navigateToActionLog: "navigateToActionLog", copyToClipboard: "copyToClipboard" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["class", "json-detail-pane", 4, "ngIf"], [1, "json-detail-pane"], [1, "json-pane-header"], [1, "fas", 3, "ngClass"], ["title", "Close", 1, "btn-icon", 3, "click"], [1, "fas", "fa-times"], [1, "json-pane-content"], [1, "json-meta"], [1, "meta-item"], [1, "status-badge", "small"], ["class", "action-link", 4, "ngIf"], [1, "detail-pane-tabs"], [1, "detail-pane-content"], [1, "step-payload-diff"], [1, "json-viewer"], [1, "action-link"], [1, "btn-link", 3, "click"], [1, "fas", "fa-external-link-alt"], [1, "detail-tab", 3, "click"], [1, "fa-solid", "fa-code-branch"], [1, "fa-solid", "fa-code"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"], [1, "json-toolbar"], ["title", "Copy JSON", 1, "btn-icon", 3, "click"], [1, "fas", "fa-copy"], [2, "height", "calc(100% - 40px)", "width", "100%", 3, "ngModelChange", "ngModel", "language", "readonly"]], template: function AIAgentRunStepDetailComponent_Template(rf, ctx) { if (rf & 1) {
|
|
247
|
+
i0.ɵɵtemplate(0, AIAgentRunStepDetailComponent_div_0_Template, 29, 12, "div", 0);
|
|
248
|
+
} if (rf & 2) {
|
|
249
|
+
i0.ɵɵproperty("ngIf", ctx.selectedTimelineItem);
|
|
250
|
+
} }, dependencies: [i1.NgClass, i1.NgIf, i2.NgControlStatus, i2.NgModel, i3.CodeEditorComponent, i4.DeepDiffComponent], styles: [".json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n padding: 16px;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #f8f9fa;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px 8px;\n cursor: pointer;\n color: #6c757d;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.05);\n color: #495057;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n gap: 24px;\n border-bottom: 1px solid #e0e6ed;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n color: #6c757d;\n font-weight: 600;\n}\n\n.meta-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #2c3e50;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-badge.small[_ngcontent-%COMP%] {\n padding: 2px 6px;\n font-size: 10px;\n}\n\n.status-badge[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: #e3f2fd;\n color: #1976d2;\n}\n\n.status-badge[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: #e8f5e9;\n color: #388e3c;\n}\n\n.status-badge[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: #ffebee;\n color: #d32f2f;\n}\n\n.status-badge[data-status=\"Cancelled\"][_ngcontent-%COMP%] {\n background: #fff3e0;\n color: #f57c00;\n}\n\n.action-link[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid #e0e6ed;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: #2196f3;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n background: rgba(33, 150, 243, 0.1);\n color: #1976d2;\n}\n\n.detail-pane-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n padding: 0 16px;\n}\n\n.detail-tab[_ngcontent-%COMP%] {\n padding: 12px 16px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 13px;\n color: #6c757d;\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab[_ngcontent-%COMP%]:hover {\n color: #495057;\n background: rgba(0, 0, 0, 0.02);\n}\n\n.detail-tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n font-weight: 600;\n}\n\n.detail-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: calc(100% - 200px);\n}\n\n.detail-pane-content.with-tabs[_ngcontent-%COMP%] {\n height: calc(100% - 250px);\n}\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 10;\n display: flex;\n gap: 4px;\n}\n\n.step-payload-diff[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}"] }); }
|
|
251
|
+
}
|
|
252
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunStepDetailComponent, [{
|
|
253
|
+
type: Component,
|
|
254
|
+
args: [{ selector: 'mj-ai-agent-run-step-detail', template: "<div class=\"json-detail-pane\" *ngIf=\"selectedTimelineItem\">\n <div class=\"json-pane-header\">\n <h3>\n <i class=\"fas\" [ngClass]=\"selectedTimelineItem.icon\"></i>\n {{ selectedTimelineItem.title }}\n </h3>\n <button class=\"btn-icon\" (click)=\"onClosePanel()\" title=\"Close\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n <div class=\"json-pane-content\">\n <div class=\"json-meta\">\n <div class=\"meta-item\">\n <label>Type</label>\n <span>{{ selectedTimelineItem.type }}</span>\n </div>\n <div class=\"meta-item\">\n <label>Status</label>\n <span class=\"status-badge small\" [attr.data-status]=\"selectedTimelineItem.status\">\n {{ selectedTimelineItem.status }}\n </span>\n </div>\n <div class=\"meta-item\">\n <label>Duration</label>\n <span>{{ selectedTimelineItem.duration || 'N/A' }}</span>\n </div>\n </div>\n \n <!-- Action-specific link -->\n <div class=\"action-link\" *ngIf=\"selectedTimelineItem.type === 'action' && selectedTimelineItem.data?.ID\">\n <button class=\"btn-link\" (click)=\"onNavigateToActionLog(selectedTimelineItem.data.ID)\">\n <i class=\"fas fa-external-link-alt\"></i> View Action Execution Log\n </button>\n </div>\n \n <!-- Tab Navigation - Only show when we have both options -->\n @if (showStepPayloadDiff) {\n <div class=\"detail-pane-tabs\">\n <button \n class=\"detail-tab\" \n [class.active]=\"detailPaneTab === 'diff'\"\n (click)=\"detailPaneTab = 'diff'\">\n <i class=\"fa-solid fa-code-branch\"></i>\n Payload Changes\n </button>\n <button \n class=\"detail-tab\" \n [class.active]=\"detailPaneTab === 'json'\"\n (click)=\"detailPaneTab = 'json'\">\n <i class=\"fa-solid fa-code\"></i>\n Full JSON\n </button>\n </div>\n }\n \n <!-- Tab Content -->\n <div class=\"detail-pane-content\" [class.with-tabs]=\"showStepPayloadDiff\">\n <!-- Payload Diff Tab -->\n @if (detailPaneTab === 'diff' && showStepPayloadDiff) {\n <div class=\"step-payload-diff\">\n <mj-deep-diff\n [oldValue]=\"stepPayloadAtStartObject\"\n [newValue]=\"stepPayloadAtEndObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"8\"\n [maxStringLength]=\"150\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n </div>\n }\n \n <!-- Full JSON Tab -->\n @if (detailPaneTab === 'json' || !showStepPayloadDiff) {\n <div class=\"json-viewer\">\n <div class=\"json-toolbar\">\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"onCopyToClipboard()\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n <mj-code-editor\n [(ngModel)]=\"selectedItemJsonString\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: calc(100% - 40px); width: 100%;\">\n </mj-code-editor>\n </div>\n }\n </div>\n </div>\n</div>", styles: [".json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header {\n padding: 16px;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #f8f9fa;\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-icon {\n background: none;\n border: none;\n padding: 4px 8px;\n cursor: pointer;\n color: #6c757d;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.btn-icon:hover {\n background: rgba(0, 0, 0, 0.05);\n color: #495057;\n}\n\n.json-pane-content {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta {\n padding: 16px;\n display: flex;\n gap: 24px;\n border-bottom: 1px solid #e0e6ed;\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: #6c757d;\n font-weight: 600;\n}\n\n.meta-item span {\n font-size: 13px;\n color: #2c3e50;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-badge.small {\n padding: 2px 6px;\n font-size: 10px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: #e3f2fd;\n color: #1976d2;\n}\n\n.status-badge[data-status=\"Completed\"] {\n background: #e8f5e9;\n color: #388e3c;\n}\n\n.status-badge[data-status=\"Failed\"] {\n background: #ffebee;\n color: #d32f2f;\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: #fff3e0;\n color: #f57c00;\n}\n\n.action-link {\n padding: 12px 16px;\n border-bottom: 1px solid #e0e6ed;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: #2196f3;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n}\n\n.btn-link:hover {\n background: rgba(33, 150, 243, 0.1);\n color: #1976d2;\n}\n\n.detail-pane-tabs {\n display: flex;\n gap: 0;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 12px 16px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 13px;\n color: #6c757d;\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: #495057;\n background: rgba(0, 0, 0, 0.02);\n}\n\n.detail-tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n font-weight: 600;\n}\n\n.detail-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: calc(100% - 200px);\n}\n\n.detail-pane-content.with-tabs {\n height: calc(100% - 250px);\n}\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n.json-toolbar {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 10;\n display: flex;\n gap: 4px;\n}\n\n.step-payload-diff {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}"] }]
|
|
255
|
+
}], () => [{ type: i0.ChangeDetectorRef }], { selectedTimelineItem: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], closePanel: [{
|
|
258
|
+
type: Output
|
|
259
|
+
}], navigateToActionLog: [{
|
|
260
|
+
type: Output
|
|
261
|
+
}], copyToClipboard: [{
|
|
262
|
+
type: Output
|
|
263
|
+
}] }); })();
|
|
264
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentRunStepDetailComponent, { className: "AIAgentRunStepDetailComponent", filePath: "src/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.ts", lineNumber: 11 }); })();
|
|
265
|
+
//# sourceMappingURL=ai-agent-run-step-detail.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-agent-run-step-detail.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.ts","../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.html"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-step-node.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;;AAEjE,qBAKa,2BAA2B;IAC7B,IAAI,EAAG,YAAY,CAAC;IACpB,UAAU,UAAS;IAClB,SAAS,6BAAoC;IAC7C,YAAY,sBAA6B;IACzC,gBAAgB;oBAAkC,MAAM;kBAAY,MAAM;OAAM;IAE1F,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,mBAAmB,IAAI,OAAO,CAQjC;IAED,IAAI,oBAAoB,IAAI,MAAM,CAiBjC;IAED,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWrC,WAAW;IAIX,kBAAkB,CAAC,KAAK,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"ai-agent-run-step-node.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;;AAEjE,qBAKa,2BAA2B;IAC7B,IAAI,EAAG,YAAY,CAAC;IACpB,UAAU,UAAS;IAClB,SAAS,6BAAoC;IAC7C,YAAY,sBAA6B;IACzC,gBAAgB;oBAAkC,MAAM;kBAAY,MAAM;OAAM;IAE1F,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,mBAAmB,IAAI,OAAO,CAQjC;IAED,IAAI,oBAAoB,IAAI,MAAM,CAiBjC;IAED,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWrC,WAAW;IAIX,kBAAkB,CAAC,KAAK,EAAE,KAAK;IAM/B,gBAAgB,CAAC,KAAK,EAAE,KAAK;IA8C7B,iBAAiB,IAAI,MAAM;yCA/GhB,2BAA2B;2CAA3B,2BAA2B;CAuIvC"}
|
|
@@ -99,14 +99,6 @@ export class AIAgentRunStepNodeComponent {
|
|
|
99
99
|
this.itemClick.emit(this.item);
|
|
100
100
|
}
|
|
101
101
|
handleExpandToggle(event) {
|
|
102
|
-
console.log('🔄 StepNode: Expand toggle clicked:', {
|
|
103
|
-
itemId: this.item.id,
|
|
104
|
-
itemType: this.item.type,
|
|
105
|
-
isSubAgent: this.isSubAgent,
|
|
106
|
-
stepType: this.item.data?.StepType,
|
|
107
|
-
hasChildren: this.hasChildren,
|
|
108
|
-
currentExpanded: this.item.isExpanded
|
|
109
|
-
});
|
|
110
102
|
if (this.isSubAgent) {
|
|
111
103
|
this.expandToggle.emit(event);
|
|
112
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-run-step-node.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-node.component.ts","../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-node.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;;;;;ICQrE,kCAG+C;IADvC,gMAAS,iCAA0B,KAAC;IAE1C,wBAEiD;IACnD,iBAAS;;;;IAFJ,cAA2C;IAC3C,AADA,2DAA2C,2CACF;;;IAiB5C,+BAAkE;IAChE,YACF;IAAA,iBAAM;;;IADJ,cACF;IADE,2DACF;;;IAGE,gCAA6C;IAC3C,wBAA4B;IAAC,YAC/B;IAAA,iBAAO;;;IADwB,eAC/B;IAD+B,qDAC/B;;;;IAUF,kCAGuC;IAD/B,iMAAS,+BAAwB,KAAC;IAExC,wBAAwC;IACxC,gCAA0B;IAAA,YAA0B;IACtD,AADsD,iBAAO,EACpD;;;IAHD,mDAA8B;IAEV,eAA0B;IAA1B,iDAA0B;;AD7C1D,MAAM,OAAO,2BAA2B;IALxC;QAOW,eAAU,GAAG,KAAK,CAAC;QAClB,cAAS,GAAG,IAAI,YAAY,EAAgB,CAAC;QAC7C,iBAAY,GAAG,IAAI,YAAY,EAAS,CAAC;QACzC,qBAAgB,GAAG,IAAI,YAAY,EAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-agent-run-step-node.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-node.component.ts","../../../../src/lib/custom/ai-agent-run/ai-agent-run-step-node.component.html"],"names":[],"mappings":"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"}
|