@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.
Files changed (87) hide show
  1. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +2 -2
  2. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +4 -4
  4. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +2 -2
  5. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  6. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +4 -4
  7. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +51 -3
  8. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  9. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +722 -163
  10. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  11. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +3 -2
  12. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
  13. package/dist/lib/custom/AIAgents/ai-agent-management.service.js +74 -46
  14. package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
  15. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +2 -2
  16. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  17. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +4 -4
  18. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +2 -2
  19. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  20. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +39 -32
  21. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  22. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  23. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +2 -2
  24. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  25. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +2 -2
  26. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  27. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +4 -4
  28. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +2 -2
  29. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  30. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +29 -25
  31. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  32. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +299 -283
  33. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  34. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +474 -456
  35. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  36. package/dist/lib/custom/Templates/templates-form.component.d.ts +5 -0
  37. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  38. package/dist/lib/custom/Templates/templates-form.component.js +21 -2
  39. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  40. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +6 -0
  41. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  42. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +70 -16
  43. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  44. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +6 -5
  45. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
  46. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +8 -22
  47. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
  48. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +5 -4
  49. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  50. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +30 -24
  51. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  52. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts +8 -4
  53. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -1
  54. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +39 -18
  55. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
  56. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +20 -3
  57. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  58. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +317 -140
  59. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  60. package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -1
  61. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +13 -4
  62. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -1
  63. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts.map +1 -1
  64. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js +13 -4
  65. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js.map +1 -1
  66. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.d.ts.map +1 -1
  67. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js +13 -4
  68. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js.map +1 -1
  69. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts.map +1 -1
  70. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js +13 -4
  71. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js.map +1 -1
  72. package/dist/lib/generated/Entities/Entity/sections/details.component.d.ts.map +1 -1
  73. package/dist/lib/generated/Entities/Entity/sections/details.component.js +13 -4
  74. package/dist/lib/generated/Entities/Entity/sections/details.component.js.map +1 -1
  75. package/dist/lib/generated/Entities/Query/sections/details.component.d.ts.map +1 -1
  76. package/dist/lib/generated/Entities/Query/sections/details.component.js +40 -4
  77. package/dist/lib/generated/Entities/Query/sections/details.component.js.map +1 -1
  78. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.d.ts.map +1 -1
  79. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js +40 -4
  80. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js.map +1 -1
  81. package/dist/lib/generated/Entities/User/user.form.component.js +6 -6
  82. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  83. package/dist/lib/shared/components/template-editor.component.d.ts +5 -0
  84. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  85. package/dist/lib/shared/components/template-editor.component.js +21 -2
  86. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  87. 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 { AIAgentRunDataService } from './ai-agent-run-data.service';
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(dataService: AIAgentRunDataService, cdr: ChangeDetectorRef);
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,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;;AAEpE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAMa,2BAA4B,YAAW,MAAM,EAAE,SAAS;IA0BjE,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IA1BJ,YAAY,EAAG,MAAM,CAAC;IACtB,WAAW,UAAS;IACpB,eAAe,SAAS;IACvB,YAAY,6BAAoC;IAChD,gBAAgB;oBAAkC,MAAM;kBAAY,MAAM;OAAM;IAChF,iBAAiB,uBAA8B;IAEzD,OAAO,CAAC,QAAQ,CAAuB;IAGvC,MAAM,qCAA2B;IACjC,QAAQ,iCAA6B;IACrC,WAAW,yCAAgC;IAC3C,WAAW,kCAAgC;IAE3C,cAAc,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAE3C,OAAO,UAAS;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEzC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,mBAAmB,CAA6B;gBAG9C,WAAW,EAAE,qBAAqB,EAClC,GAAG,EAAE,iBAAiB;IAgBhC,QAAQ;IAiBR,WAAW;IAQX,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,eAAe;IAYjB,QAAQ;IAMd,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,0BAA0B;IA8BlC,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,cAAc;IAWtB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM;IAazD,UAAU,CAAC,IAAI,EAAE,YAAY;IAKvB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK;YAY5C,oBAAoB;IAsClC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAK5C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAK/C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAK/C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM;yCA3R7C,2BAA2B;2CAA3B,2BAA2B;CA8RvC"}
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,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;;AAEnE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAMa,2BAA4B,YAAW,MAAM,EAAE,SAAS;IA2BjE,OAAO,CAAC,GAAG;IA1BJ,YAAY,EAAG,MAAM,CAAC;IACtB,WAAW,UAAS;IACpB,eAAe,SAAS;IACxB,UAAU,EAAG,oBAAoB,CAAC;IACjC,YAAY,6BAAoC;IAChD,gBAAgB;oBAAkC,MAAM;kBAAY,MAAM;OAAM;IAChF,iBAAiB,uBAA8B;IAEzD,OAAO,CAAC,QAAQ,CAAuB;IAGvC,MAAM,EAAG,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC5C,QAAQ,EAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC1C,WAAW,EAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrD,WAAW,EAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE9C,cAAc,EAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAE5C,OAAO,UAAS;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEzC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,mBAAmB,CAA6B;gBAG9C,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAoCR,WAAW;IAQX,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,eAAe;IAYjB,QAAQ;IAMd,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,0BAA0B;IA8BlC,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,cAAc;IAWtB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM;IAazD,UAAU,CAAC,IAAI,EAAE,YAAY;IAKvB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK;YAY5C,oBAAoB;IAsClC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAK5C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAK/C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAK/C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM;IAIxD,sBAAsB,IAAI,oBAAoB;yCArSnC,2BAA2B;2CAA3B,2BAA2B;CAySvC"}
@@ -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.ɵɵproperty("aiAgentRunId", item_r2.data.ID)("autoRefresh", false);
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, 2, "mj-ai-agent-run-timeline", 14);
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(dataService, cdr) {
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
- ngOnInit() {
182
- // Data loading is now handled by the parent component through the service
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.dataService.error$.pipe(takeUntil(this.destroy$)).subscribe(error => {
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.dataService.loadAgentRunData(this.aiAgentRunId);
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 service
249
- return this.dataService.loadAgentRunData(this.aiAgentRunId);
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.dataService.loadSubAgentData(subAgentRunId);
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
- static { this.ɵfac = function AIAgentRunTimelineComponent_Factory(t) { return new (t || AIAgentRunTimelineComponent)(i0.ɵɵdirectiveInject(i1.AIAgentRunDataService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
385
- 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", 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", "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) {
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: i1.AIAgentRunDataService }, { type: i0.ChangeDetectorRef }], { aiAgentRunId: [{
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 { AIAgentRunDataService } from './ai-agent-run-data.service';
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, dataService: AIAgentRunDataService);
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,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;;AAuBpE,qBAMa,gCAAiC,YAAW,MAAM,EAAE,SAAS,EAAE,aAAa;IAmErF,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,WAAW;IAnEyB,YAAY,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC/E,YAAY,EAAG,MAAM,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,eAAe,CAAS;IAChC,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,EACtB,WAAW,EAAE,qBAAqB;IAG5C,QAAQ;IAgDR,eAAe;IA0Bf,WAAW;IAqEX,OAAO,CAAC,aAAa;YA4CP,kBAAkB;IAgEhC,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;yCAliCvB,gCAAgC;2CAAhC,gCAAgC;CAyiC5C"}
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 "./ai-agent-run-data.service";
6
- import * as i2 from "@progress/kendo-angular-layout";
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
- constructor(cdr, dataService) {
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 service
173
+ // Subscribe to data from helper
167
174
  combineLatest([
168
- this.dataService.steps$,
169
- this.dataService.subRuns$,
170
- this.dataService.actionLogs$,
171
- this.dataService.promptRuns$,
172
- this.dataService.loading$
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.dataService.error$.pipe(takeUntil(this.destroy$)).subscribe(error => {
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 => setTimeout(resolve, 0));
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.dataService.loadSubAgentData(targetLogId);
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), i0.ɵɵdirectiveInject(i1.AIAgentRunDataService)); }; }
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: [i2.SplitterComponent, i2.SplitterPaneComponent, i3.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 }); }
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 }, { type: i1.AIAgentRunDataService }], { svgContainer: [{
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