@memberjunction/ng-core-entity-forms 2.53.0 → 2.54.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.
Files changed (72) hide show
  1. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +20 -0
  2. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +188 -40
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  5. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +5 -7
  6. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  7. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +1 -0
  8. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  9. package/dist/lib/custom/Actions/action-execution-log-form.component.js +212 -293
  10. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  11. package/dist/lib/custom/Actions/action-form.component.js +6 -8
  12. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  13. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +25 -0
  14. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -0
  15. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +261 -0
  16. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -0
  17. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +73 -0
  18. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -0
  19. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +510 -0
  20. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -0
  21. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +40 -0
  22. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -0
  23. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +490 -0
  24. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -0
  25. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.d.ts +31 -2
  26. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.d.ts.map +1 -1
  27. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.js +167 -65
  28. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.js.map +1 -1
  29. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.d.ts +35 -2
  30. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.d.ts.map +1 -1
  31. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.js +423 -247
  32. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.js.map +1 -1
  33. package/dist/lib/custom/custom-forms.module.d.ts +25 -21
  34. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  35. package/dist/lib/custom/custom-forms.module.js +25 -2
  36. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  37. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +10 -10
  38. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
  39. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +7 -9
  40. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
  41. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js +3 -5
  42. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js.map +1 -1
  43. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -1
  44. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +13 -4
  45. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -1
  46. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js +5 -7
  47. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js.map +1 -1
  48. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +9 -9
  49. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
  50. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js +3 -5
  51. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js.map +1 -1
  52. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js +5 -7
  53. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js.map +1 -1
  54. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js +5 -7
  55. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js.map +1 -1
  56. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +13 -13
  57. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
  58. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js +9 -9
  59. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js.map +1 -1
  60. package/dist/lib/generated/Entities/Action/action.form.component.js +5 -5
  61. package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
  62. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js +1 -1
  63. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js.map +1 -1
  64. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js +1 -1
  65. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js.map +1 -1
  66. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js +5 -5
  67. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js.map +1 -1
  68. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js +4 -4
  69. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js.map +1 -1
  70. package/dist/lib/generated/Entities/User/user.form.component.js +5 -5
  71. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  72. package/package.json +12 -12
@@ -0,0 +1,510 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
3
+ import { map, shareReplay } from 'rxjs/operators';
4
+ import { RunView } from '@memberjunction/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
8
+ i0.ɵɵelementStart(0, "div", 15);
9
+ i0.ɵɵelement(1, "i", 16);
10
+ i0.ɵɵtext(2, " Loading sub-agent steps... ");
11
+ i0.ɵɵelementEnd();
12
+ } }
13
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_div_2_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵelementStart(0, "div", 17);
15
+ i0.ɵɵelement(1, "i", 18);
16
+ i0.ɵɵtext(2, " No sub-agent steps found ");
17
+ i0.ɵɵelementEnd();
18
+ } }
19
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_div_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
20
+ const _r6 = i0.ɵɵgetCurrentView();
21
+ i0.ɵɵelementContainerStart(0);
22
+ i0.ɵɵelementStart(1, "mj-ai-agent-run-step-node", 8);
23
+ i0.ɵɵlistener("itemClick", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_div_2_ng_container_1_Template_mj_ai_agent_run_step_node_itemClick_1_listener() { const step_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(8); return i0.ɵɵresetView(ctx_r2.selectItem(step_r7)); })("expandToggle", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_div_2_ng_container_1_Template_mj_ai_agent_run_step_node_expandToggle_1_listener($event) { const step_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(8); return i0.ɵɵresetView(ctx_r2.toggleItemExpansion(step_r7, $event)); })("navigateToEntity", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_div_2_ng_container_1_Template_mj_ai_agent_run_step_node_navigateToEntity_1_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(8); return i0.ɵɵresetView(ctx_r2.navigateToEntity.emit($event)); });
24
+ i0.ɵɵelementEnd();
25
+ i0.ɵɵelementContainerEnd();
26
+ } if (rf & 2) {
27
+ const step_r7 = ctx.$implicit;
28
+ const ctx_r2 = i0.ɵɵnextContext(8);
29
+ i0.ɵɵadvance();
30
+ i0.ɵɵproperty("item", step_r7)("isSelected", (ctx_r2.selectedItem == null ? null : ctx_r2.selectedItem.id) === step_r7.id);
31
+ } }
32
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelementStart(0, "div", 20);
34
+ i0.ɵɵtemplate(1, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_div_2_ng_container_1_Template, 2, 2, "ng-container", 7);
35
+ i0.ɵɵelementEnd();
36
+ } if (rf & 2) {
37
+ const child_r5 = i0.ɵɵnextContext().$implicit;
38
+ i0.ɵɵadvance();
39
+ i0.ɵɵproperty("ngForOf", child_r5.children);
40
+ } }
41
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
42
+ const _r4 = i0.ɵɵgetCurrentView();
43
+ i0.ɵɵelementContainerStart(0);
44
+ i0.ɵɵelementStart(1, "mj-ai-agent-run-step-node", 8);
45
+ i0.ɵɵlistener("itemClick", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_Template_mj_ai_agent_run_step_node_itemClick_1_listener() { const child_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.selectItem(child_r5)); })("expandToggle", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_Template_mj_ai_agent_run_step_node_expandToggle_1_listener($event) { const child_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.toggleItemExpansion(child_r5, $event)); })("navigateToEntity", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_Template_mj_ai_agent_run_step_node_navigateToEntity_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.navigateToEntity.emit($event)); });
46
+ i0.ɵɵelementEnd();
47
+ i0.ɵɵtemplate(2, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_div_2_Template, 2, 1, "div", 19);
48
+ i0.ɵɵelementContainerEnd();
49
+ } if (rf & 2) {
50
+ const child_r5 = ctx.$implicit;
51
+ const ctx_r2 = i0.ɵɵnextContext(6);
52
+ i0.ɵɵadvance();
53
+ i0.ɵɵproperty("item", child_r5)("isSelected", (ctx_r2.selectedItem == null ? null : ctx_r2.selectedItem.id) === child_r5.id);
54
+ i0.ɵɵadvance();
55
+ i0.ɵɵproperty("ngIf", child_r5.isExpanded && child_r5.children);
56
+ } }
57
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵelementContainerStart(0);
59
+ i0.ɵɵtemplate(1, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_ng_container_3_ng_container_1_Template, 3, 3, "ng-container", 7);
60
+ i0.ɵɵelementContainerEnd();
61
+ } if (rf & 2) {
62
+ const item_r2 = i0.ɵɵnextContext(2).$implicit;
63
+ i0.ɵɵadvance();
64
+ i0.ɵɵproperty("ngForOf", item_r2.children);
65
+ } }
66
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_mj_ai_agent_run_timeline_4_Template(rf, ctx) { if (rf & 1) {
67
+ const _r8 = i0.ɵɵgetCurrentView();
68
+ i0.ɵɵelementStart(0, "mj-ai-agent-run-timeline", 21);
69
+ i0.ɵɵlistener("itemSelected", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_mj_ai_agent_run_timeline_4_Template_mj_ai_agent_run_timeline_itemSelected_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.selectItem($event)); })("navigateToEntity", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_mj_ai_agent_run_timeline_4_Template_mj_ai_agent_run_timeline_navigateToEntity_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.navigateToEntity.emit($event)); });
70
+ i0.ɵɵelementEnd();
71
+ } if (rf & 2) {
72
+ const item_r2 = i0.ɵɵnextContext(2).$implicit;
73
+ i0.ɵɵproperty("aiAgentRunId", item_r2.data.ID)("autoRefresh", false);
74
+ } }
75
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
76
+ i0.ɵɵelementStart(0, "div", 10);
77
+ 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, 1, "ng-container", 13)(4, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_mj_ai_agent_run_timeline_4_Template, 1, 2, "mj-ai-agent-run-timeline", 14);
78
+ i0.ɵɵelementEnd();
79
+ } if (rf & 2) {
80
+ const item_r2 = i0.ɵɵnextContext().$implicit;
81
+ i0.ɵɵadvance();
82
+ i0.ɵɵproperty("ngIf", item_r2.type === "step" && !item_r2.childrenLoaded);
83
+ i0.ɵɵadvance();
84
+ i0.ɵɵproperty("ngIf", item_r2.type === "step" && item_r2.childrenLoaded && item_r2.hasNoChildren);
85
+ i0.ɵɵadvance();
86
+ i0.ɵɵproperty("ngIf", item_r2.type === "step" && item_r2.childrenLoaded && item_r2.children && item_r2.children.length > 0);
87
+ i0.ɵɵadvance();
88
+ i0.ɵɵproperty("ngIf", item_r2.type === "subrun" && (item_r2.data == null ? null : item_r2.data.ID));
89
+ } }
90
+ function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
91
+ const _r1 = i0.ɵɵgetCurrentView();
92
+ i0.ɵɵelementContainerStart(0);
93
+ i0.ɵɵelementStart(1, "mj-ai-agent-run-step-node", 8);
94
+ i0.ɵɵlistener("itemClick", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_Template_mj_ai_agent_run_step_node_itemClick_1_listener() { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectItem(item_r2)); })("expandToggle", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_Template_mj_ai_agent_run_step_node_expandToggle_1_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.toggleItemExpansion(item_r2, $event)); })("navigateToEntity", function AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_Template_mj_ai_agent_run_step_node_navigateToEntity_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.navigateToEntity.emit($event)); });
95
+ i0.ɵɵelementEnd();
96
+ i0.ɵɵtemplate(2, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_div_2_Template, 5, 4, "div", 9);
97
+ i0.ɵɵelementContainerEnd();
98
+ } if (rf & 2) {
99
+ const item_r2 = ctx.$implicit;
100
+ const ctx_r2 = i0.ɵɵnextContext(3);
101
+ i0.ɵɵadvance();
102
+ i0.ɵɵproperty("item", item_r2)("isSelected", (ctx_r2.selectedItem == null ? null : ctx_r2.selectedItem.id) === item_r2.id);
103
+ i0.ɵɵadvance();
104
+ i0.ɵɵproperty("ngIf", (item_r2.type === "subrun" || item_r2.type === "step" && (item_r2.data == null ? null : item_r2.data.StepType) === "subagent") && item_r2.isExpanded);
105
+ } }
106
+ function AIAgentRunTimelineComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
107
+ i0.ɵɵelementStart(0, "div", 6);
108
+ i0.ɵɵtemplate(1, AIAgentRunTimelineComponent_div_0_div_1_ng_container_1_Template, 3, 3, "ng-container", 7);
109
+ i0.ɵɵelementEnd();
110
+ } if (rf & 2) {
111
+ const items_r9 = i0.ɵɵnextContext().ngIf;
112
+ i0.ɵɵadvance();
113
+ i0.ɵɵproperty("ngForOf", items_r9);
114
+ } }
115
+ function AIAgentRunTimelineComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
116
+ i0.ɵɵelementStart(0, "div", 22);
117
+ i0.ɵɵelement(1, "i", 23);
118
+ i0.ɵɵelementStart(2, "p");
119
+ i0.ɵɵtext(3, "No execution steps found");
120
+ i0.ɵɵelementEnd()();
121
+ } }
122
+ function AIAgentRunTimelineComponent_div_0_Template(rf, ctx) { if (rf & 1) {
123
+ i0.ɵɵelementStart(0, "div", 3);
124
+ i0.ɵɵtemplate(1, AIAgentRunTimelineComponent_div_0_div_1_Template, 2, 1, "div", 4)(2, AIAgentRunTimelineComponent_div_0_div_2_Template, 4, 0, "div", 5);
125
+ i0.ɵɵelementEnd();
126
+ } if (rf & 2) {
127
+ const items_r9 = ctx.ngIf;
128
+ i0.ɵɵadvance();
129
+ i0.ɵɵproperty("ngIf", items_r9.length > 0);
130
+ i0.ɵɵadvance();
131
+ i0.ɵɵproperty("ngIf", items_r9.length === 0);
132
+ } }
133
+ function AIAgentRunTimelineComponent_div_2_Template(rf, ctx) { if (rf & 1) {
134
+ i0.ɵɵelementStart(0, "div", 24);
135
+ i0.ɵɵelement(1, "i", 25);
136
+ i0.ɵɵelementStart(2, "p");
137
+ i0.ɵɵtext(3, "Loading timeline...");
138
+ i0.ɵɵelementEnd()();
139
+ } }
140
+ function AIAgentRunTimelineComponent_div_3_Template(rf, ctx) { if (rf & 1) {
141
+ i0.ɵɵelementStart(0, "div", 26);
142
+ i0.ɵɵelement(1, "i", 27);
143
+ i0.ɵɵelementStart(2, "p");
144
+ i0.ɵɵtext(3);
145
+ i0.ɵɵelementEnd()();
146
+ } if (rf & 2) {
147
+ const ctx_r2 = i0.ɵɵnextContext();
148
+ i0.ɵɵadvance(3);
149
+ i0.ɵɵtextInterpolate(ctx_r2.error);
150
+ } }
151
+ export class AIAgentRunTimelineComponent {
152
+ constructor(router) {
153
+ this.router = router;
154
+ this.autoRefresh = false;
155
+ this.refreshInterval = 5000;
156
+ this.itemSelected = new EventEmitter();
157
+ this.navigateToEntity = new EventEmitter();
158
+ this.destroy$ = new Subject();
159
+ // Observable subjects
160
+ this.stepsSubject$ = new BehaviorSubject([]);
161
+ this.subRunsSubject$ = new BehaviorSubject([]);
162
+ this.actionLogsSubject$ = new BehaviorSubject([]);
163
+ this.promptRunsSubject$ = new BehaviorSubject([]);
164
+ // Public observables
165
+ this.steps$ = this.stepsSubject$.asObservable();
166
+ this.subRuns$ = this.subRunsSubject$.asObservable();
167
+ this.actionLogs$ = this.actionLogsSubject$.asObservable();
168
+ this.promptRuns$ = this.promptRunsSubject$.asObservable();
169
+ this.loading = false;
170
+ this.error = null;
171
+ this.selectedItem = null;
172
+ // Combine all data sources to build timeline
173
+ this.timelineItems$ = combineLatest([
174
+ this.steps$,
175
+ this.subRuns$,
176
+ this.actionLogs$,
177
+ this.promptRuns$
178
+ ]).pipe(map(([steps, subRuns, actionLogs, promptRuns]) => this.buildTimelineItems(steps, subRuns, actionLogs, promptRuns)), shareReplay(1));
179
+ }
180
+ ngOnInit() {
181
+ if (this.aiAgentRunId) {
182
+ this.loadData();
183
+ if (this.autoRefresh) {
184
+ this.startAutoRefresh();
185
+ }
186
+ }
187
+ }
188
+ ngOnDestroy() {
189
+ this.destroy$.next();
190
+ this.destroy$.complete();
191
+ }
192
+ startAutoRefresh() {
193
+ const interval = setInterval(() => {
194
+ this.loadData();
195
+ }, this.refreshInterval);
196
+ this.destroy$.subscribe(() => clearInterval(interval));
197
+ }
198
+ async loadData() {
199
+ if (!this.aiAgentRunId)
200
+ return;
201
+ this.loading = true;
202
+ this.error = null;
203
+ try {
204
+ await this.loadStepsAndSubRuns();
205
+ }
206
+ catch (error) {
207
+ this.error = 'Failed to load timeline data';
208
+ console.error('Error loading timeline:', error);
209
+ }
210
+ finally {
211
+ this.loading = false;
212
+ }
213
+ }
214
+ async loadStepsAndSubRuns() {
215
+ const rv = new RunView();
216
+ const [stepsResult, subRunsResult] = await rv.RunViews([
217
+ {
218
+ EntityName: 'MJ: AI Agent Run Steps',
219
+ ExtraFilter: `AgentRunID='${this.aiAgentRunId}'`,
220
+ OrderBy: 'StepNumber',
221
+ ResultType: 'entity_object'
222
+ },
223
+ {
224
+ EntityName: 'MJ: AI Agent Runs',
225
+ ExtraFilter: `ParentRunID='${this.aiAgentRunId}'`,
226
+ OrderBy: 'StartedAt',
227
+ ResultType: 'entity_object'
228
+ }
229
+ ]);
230
+ if (stepsResult.Success) {
231
+ const steps = stepsResult.Results || [];
232
+ this.stepsSubject$.next(steps);
233
+ // Load action logs for action steps
234
+ const actionSteps = steps.filter(s => s.StepType === 'action' || s.StepType === 'tool');
235
+ if (actionSteps.length > 0) {
236
+ await this.loadActionLogs(actionSteps);
237
+ }
238
+ // Load prompt runs for prompt steps
239
+ const promptSteps = steps.filter(s => s.StepType === 'prompt');
240
+ if (promptSteps.length > 0) {
241
+ await this.loadPromptRuns(promptSteps);
242
+ }
243
+ }
244
+ if (subRunsResult.Success) {
245
+ const subRuns = subRunsResult.Results || [];
246
+ this.subRunsSubject$.next(subRuns);
247
+ // For each sub-run that has its own sub-runs, we'll need to handle that in the component
248
+ // This creates the hierarchical structure
249
+ }
250
+ }
251
+ async loadActionLogs(steps) {
252
+ const actionIds = steps
253
+ .map(s => s.TargetID)
254
+ .filter(id => id != null);
255
+ if (actionIds.length === 0)
256
+ return;
257
+ const rv = new RunView();
258
+ const result = await rv.RunView({
259
+ EntityName: 'Action Execution Logs',
260
+ ExtraFilter: `ActionID IN ('${actionIds.join("','")}')`,
261
+ OrderBy: 'StartedAt',
262
+ ResultType: 'entity_object'
263
+ });
264
+ if (result.Success) {
265
+ this.actionLogsSubject$.next(result.Results || []);
266
+ }
267
+ }
268
+ async loadPromptRuns(steps) {
269
+ const promptIds = steps
270
+ .map(s => s.TargetID)
271
+ .filter(id => id != null);
272
+ if (promptIds.length === 0)
273
+ return;
274
+ const rv = new RunView();
275
+ const result = await rv.RunView({
276
+ EntityName: 'MJ: AI Prompt Runs',
277
+ ExtraFilter: `ID IN ('${promptIds.join("','")}')`,
278
+ OrderBy: '__mj_CreatedAt',
279
+ ResultType: 'entity_object'
280
+ });
281
+ if (result.Success) {
282
+ this.promptRunsSubject$.next(result.Results || []);
283
+ }
284
+ }
285
+ buildTimelineItems(steps, subRuns, actionLogs, promptRuns) {
286
+ const items = [];
287
+ console.log('🔍 Timeline: Building items with:', {
288
+ stepsCount: steps.length,
289
+ subRunsCount: subRuns.length,
290
+ actionLogsCount: actionLogs.length,
291
+ promptRunsCount: promptRuns.length
292
+ });
293
+ // Build main timeline from steps
294
+ steps.forEach(step => {
295
+ const item = this.createTimelineItemFromStep(step, 0);
296
+ // Don't load children immediately for sub-agents
297
+ // They will be loaded on demand when expanded
298
+ items.push(item);
299
+ });
300
+ return items;
301
+ }
302
+ createTimelineItemFromStep(step, level) {
303
+ return {
304
+ id: step.ID,
305
+ type: 'step',
306
+ title: step.StepName || `Step ${step.StepNumber}`,
307
+ subtitle: `Type: ${step.StepType}`,
308
+ status: step.Status,
309
+ startTime: step.StartedAt,
310
+ endTime: step.CompletedAt || undefined,
311
+ duration: this.calculateDuration(step.StartedAt, step.CompletedAt),
312
+ icon: this.getStepIcon(step.StepType),
313
+ color: this.getStatusColor(step.Status),
314
+ data: step,
315
+ children: [],
316
+ level,
317
+ isExpanded: false
318
+ };
319
+ }
320
+ createTimelineItemFromSubRun(run, level) {
321
+ return {
322
+ id: run.ID,
323
+ type: 'subrun',
324
+ title: `Sub-Agent Run`,
325
+ subtitle: `Agent: ${run.Agent || 'Unknown'}`,
326
+ status: run.Status,
327
+ startTime: run.StartedAt,
328
+ endTime: run.CompletedAt || undefined,
329
+ duration: this.calculateDuration(run.StartedAt, run.CompletedAt),
330
+ icon: 'fa-robot',
331
+ color: this.getStatusColor(run.Status),
332
+ data: run,
333
+ level,
334
+ isExpanded: false
335
+ };
336
+ }
337
+ createTimelineItemFromActionLog(log, level) {
338
+ return {
339
+ id: log.ID,
340
+ type: 'action',
341
+ title: log.Action || 'Action',
342
+ subtitle: `Code: ${log.ResultCode || 'N/A'}`,
343
+ status: log.ResultCode === 'Success' ? 'Completed' : 'Failed',
344
+ startTime: log.StartedAt,
345
+ endTime: log.EndedAt || undefined,
346
+ duration: this.calculateDuration(log.StartedAt, log.EndedAt),
347
+ icon: 'fa-cog',
348
+ color: log.ResultCode === 'Success' ? 'success' : 'error',
349
+ data: log,
350
+ level
351
+ };
352
+ }
353
+ createTimelineItemFromPromptRun(run, level) {
354
+ return {
355
+ id: run.ID,
356
+ type: 'prompt',
357
+ title: run.Prompt || 'Prompt Run',
358
+ subtitle: `Model: ${run.Model || 'Unknown'}`,
359
+ status: 'Completed',
360
+ startTime: run.__mj_CreatedAt,
361
+ endTime: run.__mj_UpdatedAt,
362
+ duration: this.calculateDuration(run.__mj_CreatedAt, run.__mj_UpdatedAt),
363
+ icon: 'fa-microchip',
364
+ color: 'info',
365
+ data: run,
366
+ level
367
+ };
368
+ }
369
+ getStepIcon(stepType) {
370
+ const iconMap = {
371
+ 'prompt': 'fa-microchip',
372
+ 'tool': 'fa-tools',
373
+ 'subagent': 'fa-robot',
374
+ 'decision': 'fa-code-branch',
375
+ 'action': 'fa-cog'
376
+ };
377
+ return iconMap[stepType] || 'fa-circle';
378
+ }
379
+ getStatusColor(status) {
380
+ const colorMap = {
381
+ 'Running': 'info',
382
+ 'Completed': 'success',
383
+ 'Failed': 'error',
384
+ 'Cancelled': 'warning',
385
+ 'Paused': 'secondary'
386
+ };
387
+ return colorMap[status] || 'secondary';
388
+ }
389
+ calculateDuration(start, end) {
390
+ if (!end)
391
+ return 'Running...';
392
+ const startTime = new Date(start).getTime();
393
+ const endTime = new Date(end).getTime();
394
+ const duration = endTime - startTime;
395
+ if (duration < 1000)
396
+ return `${duration}ms`;
397
+ if (duration < 60000)
398
+ return `${(duration / 1000).toFixed(1)}s`;
399
+ if (duration < 3600000)
400
+ return `${Math.floor(duration / 60000)}m ${Math.floor((duration % 60000) / 1000)}s`;
401
+ return `${Math.floor(duration / 3600000)}h ${Math.floor((duration % 3600000) / 60000)}m`;
402
+ }
403
+ selectItem(item) {
404
+ this.selectedItem = item;
405
+ this.itemSelected.emit(item);
406
+ }
407
+ async toggleItemExpansion(item, event) {
408
+ event.stopPropagation();
409
+ console.log('🔄 Timeline: Toggling expansion for item:', {
410
+ id: item.id,
411
+ type: item.type,
412
+ title: item.title,
413
+ wasExpanded: item.isExpanded,
414
+ willBeExpanded: !item.isExpanded,
415
+ hasData: !!item.data,
416
+ dataId: item.data?.ID,
417
+ childrenLoaded: item.childrenLoaded
418
+ });
419
+ // Toggle expansion state
420
+ item.isExpanded = !item.isExpanded;
421
+ // If expanding and children not loaded yet, load them
422
+ if (item.isExpanded && !item.childrenLoaded && item.type === 'step' && item.data?.StepType === 'subagent') {
423
+ await this.loadSubAgentChildren(item);
424
+ }
425
+ }
426
+ async loadSubAgentChildren(item) {
427
+ console.log('🔄 Timeline: Loading children for sub-agent step:', item.id);
428
+ try {
429
+ const rv = new RunView();
430
+ // For a sub-agent step, we need to find the steps from sub-runs
431
+ // that have the current agent run as their parent
432
+ const stepsResult = await rv.RunView({
433
+ EntityName: 'MJ: AI Agent Run Steps',
434
+ ExtraFilter: `AgentRunID IN (SELECT ID FROM __mj.vwAIAgentRuns WHERE ParentRunID = '${this.aiAgentRunId}')`,
435
+ OrderBy: 'StepNumber',
436
+ ResultType: 'entity_object'
437
+ });
438
+ if (stepsResult.Success && stepsResult.Results && stepsResult.Results.length > 0) {
439
+ console.log(`🔄 Timeline: Found ${stepsResult.Results.length} sub-agent steps`);
440
+ // Group steps by their AgentRunID to create a hierarchy
441
+ const stepsByRun = new Map();
442
+ stepsResult.Results.forEach(step => {
443
+ const runId = step.AgentRunID;
444
+ if (!stepsByRun.has(runId)) {
445
+ stepsByRun.set(runId, []);
446
+ }
447
+ stepsByRun.get(runId).push(step);
448
+ });
449
+ // Create timeline items directly from steps (no intermediate node)
450
+ item.children = [];
451
+ for (const [runId, steps] of stepsByRun) {
452
+ // Add steps directly as children, no intermediate container
453
+ const childSteps = steps.map(step => this.createTimelineItemFromStep(step, item.level + 1));
454
+ item.children.push(...childSteps);
455
+ }
456
+ }
457
+ else {
458
+ console.log('🔄 Timeline: No sub-agent steps found');
459
+ item.hasNoChildren = true;
460
+ item.children = [];
461
+ }
462
+ item.childrenLoaded = true;
463
+ }
464
+ catch (error) {
465
+ console.error('🔄 Timeline: Error loading sub-agent children:', error);
466
+ item.hasNoChildren = true;
467
+ item.childrenLoaded = true;
468
+ }
469
+ }
470
+ navigateToSubRun(runId, event) {
471
+ event.stopPropagation();
472
+ this.navigateToEntity.emit({ entityName: 'MJ: AI Agent Runs', recordId: runId });
473
+ }
474
+ navigateToActionLog(logId, event) {
475
+ event.stopPropagation();
476
+ this.navigateToEntity.emit({ entityName: 'Action Execution Logs', recordId: logId });
477
+ }
478
+ navigateToPromptRun(runId, event) {
479
+ event.stopPropagation();
480
+ this.navigateToEntity.emit({ entityName: 'MJ: AI Prompt Runs', recordId: runId });
481
+ }
482
+ static { this.ɵfac = function AIAgentRunTimelineComponent_Factory(t) { return new (t || AIAgentRunTimelineComponent)(i0.ɵɵdirectiveInject(i1.Router)); }; }
483
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunTimelineComponent, selectors: [["mj-ai-agent-run-timeline"]], inputs: { aiAgentRunId: "aiAgentRunId", autoRefresh: "autoRefresh", refreshInterval: "refreshInterval" }, outputs: { itemSelected: "itemSelected", navigateToEntity: "navigateToEntity" }, 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"], [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", "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", "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) {
484
+ i0.ɵɵtemplate(0, AIAgentRunTimelineComponent_div_0_Template, 3, 2, "div", 0);
485
+ i0.ɵɵpipe(1, "async");
486
+ i0.ɵɵtemplate(2, AIAgentRunTimelineComponent_div_2_Template, 4, 0, "div", 1)(3, AIAgentRunTimelineComponent_div_3_Template, 4, 1, "div", 2);
487
+ } if (rf & 2) {
488
+ i0.ɵɵproperty("ngIf", !ctx.loading && i0.ɵɵpipeBind1(1, 3, ctx.timelineItems$));
489
+ i0.ɵɵadvance(2);
490
+ i0.ɵɵproperty("ngIf", ctx.loading);
491
+ i0.ɵɵadvance();
492
+ i0.ɵɵproperty("ngIf", ctx.error);
493
+ } }, styles: [".timeline-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 40px; \n\n}\n\n.sub-timeline[_ngcontent-%COMP%] {\n margin-left: 24px;\n margin-top: 8px;\n padding-left: 12px;\n border-left: 2px dashed #e0e6ed;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n\n\n.loading-children[_ngcontent-%COMP%], \n.no-children[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.no-children[_ngcontent-%COMP%] {\n color: #868e96;\n font-style: italic;\n}\n\n.no-children[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #adb5bd;\n}\n\n\n\n.sub-run-steps[_ngcontent-%COMP%] {\n margin-left: 20px;\n padding-left: 20px;\n border-left: 2px solid #e9ecef;\n margin-top: 8px;\n}"] }); }
494
+ }
495
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunTimelineComponent, [{
496
+ type: Component,
497
+ args: [{ selector: 'mj-ai-agent-run-timeline', 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\">\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 === 'subagent')) && 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\">\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\">\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}"] }]
498
+ }], () => [{ type: i1.Router }], { aiAgentRunId: [{
499
+ type: Input
500
+ }], autoRefresh: [{
501
+ type: Input
502
+ }], refreshInterval: [{
503
+ type: Input
504
+ }], itemSelected: [{
505
+ type: Output
506
+ }], navigateToEntity: [{
507
+ type: Output
508
+ }] }); })();
509
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentRunTimelineComponent, { className: "AIAgentRunTimelineComponent", filePath: "src/lib/custom/ai-agent-run/ai-agent-run-timeline.component.ts", lineNumber: 33 }); })();
510
+ //# sourceMappingURL=ai-agent-run-timeline.component.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,40 @@
1
+ import { OnInit, OnDestroy, ChangeDetectorRef, ElementRef } from '@angular/core';
2
+ import { Router, ActivatedRoute } from '@angular/router';
3
+ import { AIAgentRunEntity, AIAgentEntity } from '@memberjunction/core-entities';
4
+ import { BaseFormComponent } from '@memberjunction/ng-base-forms';
5
+ import { SharedService } from '@memberjunction/ng-shared';
6
+ import { TimelineItem } from './ai-agent-run-timeline.component';
7
+ import * as i0 from "@angular/core";
8
+ export declare class AIAgentRunFormComponent extends BaseFormComponent implements OnInit, OnDestroy {
9
+ protected router: Router;
10
+ record: AIAgentRunEntity;
11
+ private destroy$;
12
+ activeTab: string;
13
+ selectedTimelineItem: TimelineItem | null;
14
+ jsonPanelExpanded: boolean;
15
+ loading: boolean;
16
+ error: string | null;
17
+ selectedItemJsonString: string;
18
+ agent: AIAgentEntity | null;
19
+ constructor(elementRef: ElementRef, sharedService: SharedService, router: Router, route: ActivatedRoute, cdr: ChangeDetectorRef);
20
+ ngOnInit(): Promise<void>;
21
+ ngOnDestroy(): void;
22
+ private loadAgent;
23
+ calculateDuration(start: Date, end?: Date | null): string;
24
+ selectTimelineItem(item: TimelineItem): void;
25
+ closeJsonPanel(): void;
26
+ navigateToSubRun(runId: string): void;
27
+ navigateToParentRun(): void;
28
+ navigateToActionLog(logId: string): void;
29
+ navigateToEntityRecord(event: {
30
+ entityName: string;
31
+ recordId: string;
32
+ }): void;
33
+ refreshData(): void;
34
+ getSelectedItemJson(): string;
35
+ getStatusIcon(status: string): string;
36
+ copyToClipboard(text: string): Promise<void>;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<AIAgentRunFormComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentRunFormComponent, "mj-ai-agent-run-form", never, {}, {}, never, never, false, never>;
39
+ }
40
+ //# sourceMappingURL=ai-agent-run.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-agent-run.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAa,iBAAiB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIzD,OAAO,EAAE,gBAAgB,EAAqE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;;AAEjE,qBAMa,uBAAwB,SAAQ,iBAAkB,YAAW,MAAM,EAAE,SAAS;IAkBvF,SAAS,CAAC,MAAM,EAAE,MAAM;IAjBnB,MAAM,EAAG,gBAAgB,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAuB;IAGvC,SAAS,SAAc;IACvB,oBAAoB,EAAE,YAAY,GAAG,IAAI,CAAQ;IACjD,iBAAiB,UAAS;IAC1B,OAAO,UAAS;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,sBAAsB,SAAQ;IAE9B,KAAK,EAAE,aAAa,GAAG,IAAI,CAAQ;gBAGjC,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACxB,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,iBAAiB;IAKlB,QAAQ;IAQd,WAAW;YAKG,SAAS;IAevB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM;IAUzD,kBAAkB,CAAC,IAAI,EAAE,YAAY;IAOrC,cAAc;IAMd,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAI9B,mBAAmB;IAMnB,mBAAmB,CAAC,KAAK,EAAE,MAAM;IAIjC,sBAAsB,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAItE,WAAW;IAIX,mBAAmB,IAAI,MAAM;IAK7B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAW/B,eAAe,CAAC,IAAI,EAAE,MAAM;yCAlHvB,uBAAuB;2CAAvB,uBAAuB;CA0HnC"}