@memberjunction/ng-ai-test-harness 2.58.0 → 2.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/agent-execution-monitor.component.d.ts +18 -4
- package/dist/lib/agent-execution-monitor.component.d.ts.map +1 -1
- package/dist/lib/agent-execution-monitor.component.js +297 -87
- package/dist/lib/agent-execution-monitor.component.js.map +1 -1
- package/dist/lib/agent-execution-node.component.d.ts +5 -2
- package/dist/lib/agent-execution-node.component.d.ts.map +1 -1
- package/dist/lib/agent-execution-node.component.js +175 -110
- package/dist/lib/agent-execution-node.component.js.map +1 -1
- package/dist/lib/ai-test-harness.component.d.ts +8 -0
- package/dist/lib/ai-test-harness.component.d.ts.map +1 -1
- package/dist/lib/ai-test-harness.component.js +140 -24
- package/dist/lib/ai-test-harness.component.js.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-execution-node.component.js","sourceRoot":"","sources":["../../src/lib/agent-execution-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"agent-execution-node.component.js","sourceRoot":"","sources":["../../src/lib/agent-execution-node.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -243,6 +243,8 @@ export declare class AITestHarnessComponent implements OnInit, OnDestroy, OnChan
|
|
|
243
243
|
executionMonitorMode: 'live' | 'historical';
|
|
244
244
|
/** Current execution data for the monitor */
|
|
245
245
|
currentExecutionData: any;
|
|
246
|
+
/** Track the last processed run ID to avoid reprocessing same data */
|
|
247
|
+
private lastProcessedRunId;
|
|
246
248
|
/** Agent conversation state tracking */
|
|
247
249
|
private agentConversationState;
|
|
248
250
|
private lastAgentReturnValue;
|
|
@@ -502,6 +504,11 @@ export declare class AITestHarnessComponent implements OnInit, OnDestroy, OnChan
|
|
|
502
504
|
* Get the last run ID from conversation messages
|
|
503
505
|
*/
|
|
504
506
|
getLastRunId(): string | null;
|
|
507
|
+
/**
|
|
508
|
+
* Expands all nodes in the execution monitor
|
|
509
|
+
* Called automatically when execution completes
|
|
510
|
+
*/
|
|
511
|
+
private expandAllMonitoringNodes;
|
|
505
512
|
/**
|
|
506
513
|
* Navigate to the run details form
|
|
507
514
|
*/
|
|
@@ -526,6 +533,7 @@ export declare class AITestHarnessComponent implements OnInit, OnDestroy, OnChan
|
|
|
526
533
|
isJsonContent(content: string): boolean;
|
|
527
534
|
/**
|
|
528
535
|
* Formats JSON content with proper indentation for display.
|
|
536
|
+
* Also recursively parses any nested JSON strings.
|
|
529
537
|
* @param content - JSON string to format
|
|
530
538
|
* @returns Formatted JSON string or original content if parsing fails
|
|
531
539
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-test-harness.component.d.ts","sourceRoot":"","sources":["../../src/lib/ai-test-harness.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAyB,gBAAgB,EAAmB,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACnN,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAgC,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAuB,MAAM,+BAA+B,CAAC;AAKnG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;;
|
|
1
|
+
{"version":3,"file":"ai-test-harness.component.d.ts","sourceRoot":"","sources":["../../src/lib/ai-test-harness.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAyB,gBAAgB,EAAmB,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACnN,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAgC,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAuB,MAAM,+BAA+B,CAAC;AAKnG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;;AAMjD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjD;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAChC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACpD,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,SAAS,EAAE,IAAI,CAAC;IAChB,uDAAuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,qEAAqE;IACrE,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8CAA8C;IAC9C,SAAS,EAAE,IAAI,CAAC;IAChB,8CAA8C;IAC9C,SAAS,EAAE,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAKa,sBAAuB,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB;IASrF,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IAZlB;;;;;;OAMG;gBAES,SAAS,EAAE,YAAY,EACvB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM;IAG1B,yDAAyD;IAChD,IAAI,EAAE,eAAe,CAAW;IAEzC,2DAA2D;IAClD,MAAM,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI,CAAQ;IAE9D,yEAAyE;IACzE,IACI,OAAO,IAAI,aAAa,GAAG,IAAI,CAElC;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,EAKtC;IAED,OAAO,CAAC,UAAU,CAAkB;IAEpC;;;OAGG;IACH,IACI,SAAS,IAAI,OAAO,CAEvB;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAM3B;IAED,2FAA2F;IACjF,gBAAgB,wBAA+B;IAEzD;;OAEG;IACO,SAAS;eAA6B,MAAM;iBAAW,OAAO,GAAG,QAAQ;OAAM;IAEzF,sFAAsF;IACtD,OAAO,CAAC,iBAAiB,CAAc;IAEvE,uFAAuF;IAC/D,OAAO,CAAC,SAAS,CAAc;IAEvD,8CAA8C;IACnB,OAAO,CAAC,YAAY,CAAqB;IAEpE,yCAAyC;IACX,OAAO,CAAC,eAAe,CAAC,CAAa;IAGnE,yEAAyE;IAClE,oBAAoB,EAAE,mBAAmB,EAAE,CAAM;IAExD,yDAAyD;IAClD,kBAAkB,EAAE,MAAM,CAAM;IAEvC,0DAA0D;IACnD,WAAW,UAAS;IAG3B,sFAAsF;IAC/E,cAAc,EAAE,mBAAmB,EAAE,CAAM;IAGlD,8CAA8C;IACvC,iBAAiB,EAAE,mBAAmB,EAAE,CAAM;IAErD,6CAA6C;IACtC,eAAe,EAAE,MAAM,CAAM;IAEpC,8CAA8C;IACvC,gBAAgB,EAAE,MAAM,CAAM;IAErC,kDAAkD;IAC3C,gBAAgB,EAAE,GAAG,EAAE,CAAM;IAEpC,wDAAwD;IACxD,OAAO,CAAC,gBAAgB,CAAc;IAEtC,0CAA0C;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEvC,sDAAsD;IAC/C,cAAc,EAAE,OAAO,CAAS;IAEvC,8BAA8B;IACvB,cAAc;;;;;;;;;;;MAWnB;IAEF,4CAA4C;IACrC,iBAAiB,EAAE,MAAM,CAAM;IAEtC,oDAAoD;IAC7C,sBAAsB,EAAE,OAAO,CAAS;IAE/C,+CAA+C;IACxC,eAAe,EAAE,GAAG,EAAE,CAAM;IAEnC,wCAAwC;IACxC,SAAS,CAAC,qBAAqB;;;QAM7B;IAEF,oDAAoD;IAC7C,sBAAsB;;;MAAiC;IAG9D,6DAA6D;IACtD,WAAW,UAAQ;IAE1B,0CAA0C;IACnC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,eAAe,GAAG,oBAAoB,CAAoB;IAE1I,oEAAoE;IAC7D,kBAAkB,EAAE,iBAAiB,EAAE,CAAM;IAEpD,6DAA6D;IACtD,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEnD,6CAA6C;IACtC,cAAc,EAAE,OAAO,CAAS;IAEvC,oDAAoD;IAC7C,kBAAkB,EAAE,MAAM,CAAM;IAEvC,6CAA6C;IAC7C,OAAO,CAAC,aAAa,CAA0B;IAG/C,+CAA+C;IACxC,oBAAoB,EAAE,MAAM,GAAG,YAAY,CAAgB;IAElE,6CAA6C;IACtC,oBAAoB,EAAE,GAAG,CAAQ;IAExC,sEAAsE;IACtE,OAAO,CAAC,kBAAkB,CAAuB;IAEjD,wCAAwC;IACxC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,eAAe,CAAa;IAEpC,mDAAmD;IAC5C,cAAc,EAAE,OAAO,CAAS;IAEvC,gDAAgD;IACzC,mBAAmB,EAAE,MAAM,CAAM;IAExC,qEAAqE;IAC9D,oBAAoB,EAAE,MAAM,CAAM;IAEzC,mDAAmD;IAC5C,qBAAqB,EAAE,OAAO,CAAS;IAE9C,wCAAwC;IACxC,OAAO,CAAC,uBAAuB,CAAkC;IAEjE,wDAAwD;IACxD,OAAO,CAAC,kBAAkB,CAAoC;IAG9D,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAuB;IAEvC,oEAAoE;IACpE,OAAO,CAAC,YAAY,CAAS;IAG7B,gEAAgE;IAChE,OAAO,CAAC,mBAAmB,CAAM;IAEjC,6DAA6D;IAC7D,OAAO,CAAC,SAAS,CAAkB;IAEnC,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAAS;IAE5B,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB,CAA2B;IAEpD,gEAAgE;IAChE,OAAO,CAAC,eAAe,CAA2B;IAElD;;;OAGG;IACH,QAAQ;IAoBR;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,aAAa;IAuBlC;;;OAGG;IACH,WAAW;IAcX;;;OAGG;IACH,kBAAkB;IAgBlB,OAAO,CAAC,iBAAiB;IA+EzB;;;OAGG;YACW,mBAAmB;IA0DjC,qEAAqE;IACrE,OAAO,CAAC,YAAY,CAAa;IAEjC;;OAEG;YACW,mBAAmB;IA2DjC;;OAEG;YACW,iBAAiB;IA0C/B;;OAEG;IACI,sBAAsB;IAsB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwC3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;;OAGG;YACW,sBAAsB;IA2CpC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAoBpC;;OAEG;IACI,qBAAqB;IA+C5B;;;OAGG;IACI,YAAY;IAoCnB;;OAEG;IACI,eAAe;IAqBtB;;;OAGG;IACI,KAAK;IAKZ;;;OAGG;IACI,aAAa;IAIpB;;;OAGG;IACI,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,eAAe,GAAG,oBAAoB;IAiE1H;;;OAGG;IACI,2BAA2B,CAAC,OAAO,EAAE,mBAAmB;IAW/D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;;;;;;;;;OAUG;IACU,WAAW;YAuCV,YAAY;YAuQZ,aAAa;IA2L3B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAiB5B;;;OAGG;IACI,gBAAgB;IAQvB;;;OAGG;IACI,mBAAmB,CAAC,KAAK,EAAE,MAAM;IAIxC;;;OAGG;IACI,mBAAmB;IAQ1B;;;OAGG;IACI,sBAAsB,CAAC,KAAK,EAAE,MAAM;IAI3C;;;OAGG;IACI,iBAAiB;IASxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,sBAAsB;IA0B9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;;;;;;OAUG;IACI,gBAAgB;IA8BhB,sBAAsB;IAI7B;;OAEG;IACI,uBAAuB;IAkE9B;;OAEG;IACI,gBAAgB;IAQvB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,oBAAoB;IA2BrB,gBAAgB,CAAC,YAAY,EAAE,iBAAiB;IAUvD;;OAEG;IACI,uBAAuB;IAQ9B;;OAEG;IACI,sBAAsB;IAK7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6Fb,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK;IAwBtE,kBAAkB;IA6ClB,kBAAkB;IAIlB,cAAc,CAAC,KAAK,EAAE,KAAK;IAuElC;;;;OAIG;IACI,cAAc,CAAC,KAAK,EAAE,aAAa;IAO1C;;;;OAIG;IACI,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;IAI5D;;;;OAIG;IACI,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAO1C;;;;;OAKG;IACI,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAYjD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAUtD,OAAO,CAAC,uBAAuB;IAe/B;;;OAGG;IACI,iBAAiB,CAAC,OAAO,EAAE,mBAAmB;IA+DrD;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAyC9B;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAO7B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE;IAWnE;;;OAGG;IACU,WAAW,CAAC,OAAO,EAAE,mBAAmB;IAwBrD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAU9C;;;;;OAKG;IACI,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM;IAuBvC;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAaxC;;;OAGG;IACI,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAIhE;;;;OAIG;IACI,4BAA4B,CAAC,OAAO,EAAE,mBAAmB,GAAG,QAAQ;IAiB3E;;;;;OAKG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM;IA2BhE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAuDzC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,QAAQ;IAuBlE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA2BhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;;OAGG;IAEH;;;;OAIG;IACI,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;IAmBhE;;OAEG;IACI,eAAe;IAStB;;OAEG;IACI,eAAe;IAUtB;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAuDnC;;;;;OAKG;IACI,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAcnE;;;;;OAKG;IACI,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAI3D,OAAO,CAAC,UAAU;IAMlB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsC7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACI,aAAa,IAAI,MAAM;IAK9B;;OAEG;IACI,kBAAkB,IAAI,MAAM;IAcnC;;OAEG;IACI,aAAa,IAAI,OAAO;IAO/B;;OAEG;IACI,gBAAgB,IAAI,MAAM;IAOjC;;OAEG;IACI,mBAAmB;IAY1B;;OAEG;IACI,oBAAoB;IAI3B;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM;yCAr0FnC,sBAAsB;2CAAtB,sBAAsB;CA00FlC"}
|
|
@@ -4,6 +4,7 @@ import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
|
4
4
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
6
|
import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
7
|
+
import { ParseJSONRecursive } from '@memberjunction/global';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@angular/platform-browser";
|
|
9
10
|
import * as i2 from "@progress/kendo-angular-dialog";
|
|
@@ -1136,6 +1137,8 @@ export class AITestHarnessComponent {
|
|
|
1136
1137
|
this.executionMonitorMode = 'historical';
|
|
1137
1138
|
/** Current execution data for the monitor */
|
|
1138
1139
|
this.currentExecutionData = null;
|
|
1140
|
+
/** Track the last processed run ID to avoid reprocessing same data */
|
|
1141
|
+
this.lastProcessedRunId = null;
|
|
1139
1142
|
/** Agent conversation state tracking */
|
|
1140
1143
|
this.agentConversationState = null;
|
|
1141
1144
|
this.lastAgentReturnValue = null;
|
|
@@ -1685,7 +1688,9 @@ export class AITestHarnessComponent {
|
|
|
1685
1688
|
this.templateVariables = [];
|
|
1686
1689
|
this.currentConversationId = null;
|
|
1687
1690
|
this.showSidebar = true;
|
|
1691
|
+
// Clear execution data and tracking when explicitly resetting
|
|
1688
1692
|
this.currentExecutionData = null;
|
|
1693
|
+
this.lastProcessedRunId = null;
|
|
1689
1694
|
this.executionMonitorMode = 'historical';
|
|
1690
1695
|
// Reset conversation state
|
|
1691
1696
|
this.agentConversationState = null;
|
|
@@ -1721,6 +1726,9 @@ export class AITestHarnessComponent {
|
|
|
1721
1726
|
return;
|
|
1722
1727
|
}
|
|
1723
1728
|
}
|
|
1729
|
+
// Clear execution data when explicitly starting a new conversation
|
|
1730
|
+
this.currentExecutionData = null;
|
|
1731
|
+
this.lastProcessedRunId = null;
|
|
1724
1732
|
this.resetHarness();
|
|
1725
1733
|
MJNotificationService.Instance.CreateSimpleNotification('Started new conversation', 'info', 2000);
|
|
1726
1734
|
}
|
|
@@ -1744,17 +1752,63 @@ export class AITestHarnessComponent {
|
|
|
1744
1752
|
* @param tab - The tab to activate
|
|
1745
1753
|
*/
|
|
1746
1754
|
selectTab(tab) {
|
|
1755
|
+
console.log('🔄 Switching to tab:', tab, {
|
|
1756
|
+
currentExecutionData: !!this.currentExecutionData,
|
|
1757
|
+
executionDataKeys: this.currentExecutionData ? Object.keys(this.currentExecutionData) : [],
|
|
1758
|
+
conversationMessages: this.conversationMessages.length,
|
|
1759
|
+
executionMonitorMode: this.executionMonitorMode
|
|
1760
|
+
});
|
|
1747
1761
|
this.activeTab = tab;
|
|
1748
1762
|
// If switching to execution monitor tab, ensure it has the latest data
|
|
1749
|
-
if (tab === 'executionMonitor'
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1763
|
+
if (tab === 'executionMonitor') {
|
|
1764
|
+
console.log('📊 Switching to execution monitor tab');
|
|
1765
|
+
// Always ensure we have the latest execution data when switching to monitor
|
|
1766
|
+
if (this.conversationMessages.length > 0) {
|
|
1767
|
+
const lastAssistantMessage = this.conversationMessages
|
|
1768
|
+
.filter(m => m.role === 'assistant' && m.executionData)
|
|
1769
|
+
.pop();
|
|
1770
|
+
console.log('🔍 Last assistant message with execution data:', {
|
|
1771
|
+
found: !!lastAssistantMessage,
|
|
1772
|
+
hasExecutionData: !!lastAssistantMessage?.executionData,
|
|
1773
|
+
agentRunId: lastAssistantMessage?.agentRunId,
|
|
1774
|
+
executionDataKeys: lastAssistantMessage?.executionData ? Object.keys(lastAssistantMessage.executionData) : []
|
|
1775
|
+
});
|
|
1776
|
+
if (lastAssistantMessage && lastAssistantMessage.executionData) {
|
|
1777
|
+
// Always update execution data to ensure it's fresh
|
|
1778
|
+
const messageRunId = lastAssistantMessage.agentRunId;
|
|
1779
|
+
// Force update the execution data
|
|
1780
|
+
this.currentExecutionData = {
|
|
1781
|
+
...lastAssistantMessage.executionData,
|
|
1782
|
+
_forceRefresh: Date.now() // Add timestamp to force refresh
|
|
1783
|
+
};
|
|
1784
|
+
this.executionMonitorMode = 'historical';
|
|
1785
|
+
this.lastProcessedRunId = messageRunId || null;
|
|
1786
|
+
console.log('✅ Force updated execution data:', {
|
|
1787
|
+
executionTreeLength: this.currentExecutionData.executionTree?.length,
|
|
1788
|
+
mode: this.executionMonitorMode,
|
|
1789
|
+
runId: this.lastProcessedRunId,
|
|
1790
|
+
forceRefresh: this.currentExecutionData._forceRefresh
|
|
1791
|
+
});
|
|
1792
|
+
// Trigger change detection to ensure the execution monitor updates
|
|
1793
|
+
setTimeout(() => {
|
|
1794
|
+
this.cdr.detectChanges();
|
|
1795
|
+
}, 50);
|
|
1796
|
+
}
|
|
1797
|
+
else {
|
|
1798
|
+
console.log('❌ No execution data found in messages');
|
|
1799
|
+
}
|
|
1800
|
+
}
|
|
1801
|
+
else {
|
|
1802
|
+
console.log('❌ No conversation messages found');
|
|
1756
1803
|
}
|
|
1757
1804
|
}
|
|
1805
|
+
else {
|
|
1806
|
+
console.log('📄 Switching away from execution monitor, preserving data:', {
|
|
1807
|
+
currentExecutionDataExists: !!this.currentExecutionData
|
|
1808
|
+
});
|
|
1809
|
+
// Don't clear currentExecutionData when switching away from execution monitor
|
|
1810
|
+
// This preserves the state for when the user switches back
|
|
1811
|
+
}
|
|
1758
1812
|
}
|
|
1759
1813
|
/**
|
|
1760
1814
|
* Shows the execution history for a specific message
|
|
@@ -1825,6 +1879,9 @@ export class AITestHarnessComponent {
|
|
|
1825
1879
|
if (this.mode === 'agent' && this.activeTab !== 'executionMonitor') {
|
|
1826
1880
|
this.selectTab('executionMonitor');
|
|
1827
1881
|
}
|
|
1882
|
+
// Clear previous execution data when starting a new execution
|
|
1883
|
+
this.currentExecutionData = null;
|
|
1884
|
+
this.lastProcessedRunId = null;
|
|
1828
1885
|
// Execute based on mode
|
|
1829
1886
|
if (this.mode === 'agent') {
|
|
1830
1887
|
await this.executeAgent(messageToSend);
|
|
@@ -1928,7 +1985,14 @@ export class AITestHarnessComponent {
|
|
|
1928
1985
|
assistantMessage.isStreaming = false;
|
|
1929
1986
|
if (executionResult?.success) {
|
|
1930
1987
|
// Parse the payload to get the full execution result
|
|
1931
|
-
const
|
|
1988
|
+
const parseOptions = {
|
|
1989
|
+
extractInlineJson: true,
|
|
1990
|
+
maxDepth: 100,
|
|
1991
|
+
debug: false
|
|
1992
|
+
};
|
|
1993
|
+
let fullResult = JSON.parse(executionResult.payload);
|
|
1994
|
+
// Apply recursive JSON parsing to extract any nested JSON strings
|
|
1995
|
+
fullResult = ParseJSONRecursive(fullResult, parseOptions);
|
|
1932
1996
|
// Store execution data with the message
|
|
1933
1997
|
assistantMessage.executionData = fullResult;
|
|
1934
1998
|
// Merge live steps with final result if needed
|
|
@@ -1939,6 +2003,10 @@ export class AITestHarnessComponent {
|
|
|
1939
2003
|
// Update execution monitor with the new data
|
|
1940
2004
|
this.currentExecutionData = fullResult;
|
|
1941
2005
|
this.executionMonitorMode = 'historical';
|
|
2006
|
+
// Auto-expand all monitoring nodes once execution is complete
|
|
2007
|
+
setTimeout(() => {
|
|
2008
|
+
this.expandAllMonitoringNodes();
|
|
2009
|
+
}, 100);
|
|
1942
2010
|
// Preserve conversation state from the result
|
|
1943
2011
|
if (fullResult.returnValue) {
|
|
1944
2012
|
this.lastAgentReturnValue = fullResult.returnValue;
|
|
@@ -1963,7 +2031,8 @@ export class AITestHarnessComponent {
|
|
|
1963
2031
|
displayContent = fullResult.returnValue.message;
|
|
1964
2032
|
// If there's also a payload, store it separately
|
|
1965
2033
|
if (fullResult.returnValue.payload) {
|
|
1966
|
-
|
|
2034
|
+
// Apply recursive JSON parsing to the payload if it's an object
|
|
2035
|
+
payloadData = ParseJSONRecursive(fullResult.returnValue.payload, parseOptions);
|
|
1967
2036
|
}
|
|
1968
2037
|
}
|
|
1969
2038
|
else if (typeof fullResult.returnValue === 'object' &&
|
|
@@ -1984,6 +2053,8 @@ export class AITestHarnessComponent {
|
|
|
1984
2053
|
assistantMessage.payload = payloadData; // Store the payload if present
|
|
1985
2054
|
assistantMessage.executionTime = executionResult.executionTimeMs;
|
|
1986
2055
|
assistantMessage.agentRunId = fullResult.agentRun?.ID || assistantMessage.agentRunId;
|
|
2056
|
+
// Update the tracking ID when we set new execution data
|
|
2057
|
+
this.lastProcessedRunId = assistantMessage.agentRunId || null;
|
|
1987
2058
|
// Store the full result as raw content for debugging/inspection
|
|
1988
2059
|
assistantMessage.rawContent = executionResult.payload;
|
|
1989
2060
|
}
|
|
@@ -2010,6 +2081,12 @@ export class AITestHarnessComponent {
|
|
|
2010
2081
|
this.scrollNeeded = true;
|
|
2011
2082
|
// Auto-save conversation
|
|
2012
2083
|
this.autoSaveConversation();
|
|
2084
|
+
// Auto-expand all monitoring nodes once execution is complete (for prompt mode)
|
|
2085
|
+
if (this.mode === 'prompt') {
|
|
2086
|
+
setTimeout(() => {
|
|
2087
|
+
this.expandAllMonitoringNodes();
|
|
2088
|
+
}, 100);
|
|
2089
|
+
}
|
|
2013
2090
|
}
|
|
2014
2091
|
catch (error) {
|
|
2015
2092
|
console.error('❌ AI Test Harness: Caught error during agent execution', {
|
|
@@ -2122,6 +2199,12 @@ export class AITestHarnessComponent {
|
|
|
2122
2199
|
}
|
|
2123
2200
|
// Update assistant message with result
|
|
2124
2201
|
assistantMessage.isStreaming = false;
|
|
2202
|
+
// Define parse options for both success and error cases
|
|
2203
|
+
const parseOptions = {
|
|
2204
|
+
extractInlineJson: true,
|
|
2205
|
+
maxDepth: 100,
|
|
2206
|
+
debug: false
|
|
2207
|
+
};
|
|
2125
2208
|
if (executionResult?.success) {
|
|
2126
2209
|
// Use parsedResult if available, otherwise fall back to output
|
|
2127
2210
|
assistantMessage.content = executionResult.parsedResult || executionResult.output || 'No response generated';
|
|
@@ -2137,10 +2220,14 @@ export class AITestHarnessComponent {
|
|
|
2137
2220
|
// If parsing fails, keep it as a string
|
|
2138
2221
|
}
|
|
2139
2222
|
}
|
|
2140
|
-
|
|
2223
|
+
// Apply recursive JSON parsing to the entire result
|
|
2224
|
+
const recursivelyParsed = ParseJSONRecursive(resultForDisplay, parseOptions);
|
|
2225
|
+
assistantMessage.rawContent = JSON.stringify(recursivelyParsed, null, 2);
|
|
2141
2226
|
// Store execution metadata
|
|
2142
2227
|
if (executionResult.promptRunId) {
|
|
2143
2228
|
assistantMessage.agentRunId = executionResult.promptRunId;
|
|
2229
|
+
// Update the tracking ID when we set new execution data
|
|
2230
|
+
this.lastProcessedRunId = assistantMessage.agentRunId || null;
|
|
2144
2231
|
}
|
|
2145
2232
|
}
|
|
2146
2233
|
else {
|
|
@@ -2157,7 +2244,9 @@ export class AITestHarnessComponent {
|
|
|
2157
2244
|
// If parsing fails, keep it as a string
|
|
2158
2245
|
}
|
|
2159
2246
|
}
|
|
2160
|
-
|
|
2247
|
+
// Apply recursive JSON parsing to the error result
|
|
2248
|
+
const recursivelyParsed = ParseJSONRecursive(errorResult, parseOptions);
|
|
2249
|
+
assistantMessage.rawContent = JSON.stringify(recursivelyParsed, null, 2);
|
|
2161
2250
|
}
|
|
2162
2251
|
}
|
|
2163
2252
|
delete assistantMessage.streamingContent;
|
|
@@ -2585,18 +2674,18 @@ export class AITestHarnessComponent {
|
|
|
2585
2674
|
if (lastAssistantMessage && lastAssistantMessage.executionData) {
|
|
2586
2675
|
this.currentExecutionData = lastAssistantMessage.executionData;
|
|
2587
2676
|
this.executionMonitorMode = 'historical';
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
}
|
|
2677
|
+
this.lastProcessedRunId = lastAssistantMessage.agentRunId || null;
|
|
2678
|
+
// Force change detection to ensure execution monitor updates properly
|
|
2679
|
+
setTimeout(() => {
|
|
2680
|
+
this.currentExecutionData = { ...lastAssistantMessage.executionData };
|
|
2681
|
+
this.cdr.detectChanges();
|
|
2682
|
+
}, 0);
|
|
2595
2683
|
}
|
|
2596
2684
|
else {
|
|
2597
2685
|
// Clear execution data if no execution found
|
|
2598
2686
|
this.currentExecutionData = null;
|
|
2599
2687
|
this.executionMonitorMode = 'historical';
|
|
2688
|
+
this.lastProcessedRunId = null;
|
|
2600
2689
|
}
|
|
2601
2690
|
this.scrollNeeded = true;
|
|
2602
2691
|
MJNotificationService.Instance.CreateSimpleNotification('Conversation loaded', 'info', 3000);
|
|
@@ -2799,13 +2888,16 @@ export class AITestHarnessComponent {
|
|
|
2799
2888
|
const parsed = JSON.parse(message.rawContent);
|
|
2800
2889
|
// If this is an agent result with execution tree, enhance the display
|
|
2801
2890
|
if (parsed.executionTree) {
|
|
2802
|
-
|
|
2891
|
+
// Apply recursive JSON parsing before adding summary
|
|
2892
|
+
const enhancedParsed = {
|
|
2803
2893
|
...parsed,
|
|
2804
2894
|
_executionTreeSummary: this.summarizeExecutionTree(parsed.executionTree)
|
|
2805
|
-
}
|
|
2895
|
+
};
|
|
2896
|
+
this.currentJsonContent = this.formatJson(enhancedParsed);
|
|
2806
2897
|
}
|
|
2807
2898
|
else {
|
|
2808
|
-
|
|
2899
|
+
// Apply recursive JSON parsing
|
|
2900
|
+
this.currentJsonContent = this.formatJson(parsed);
|
|
2809
2901
|
}
|
|
2810
2902
|
}
|
|
2811
2903
|
catch {
|
|
@@ -2890,6 +2982,20 @@ export class AITestHarnessComponent {
|
|
|
2890
2982
|
.pop();
|
|
2891
2983
|
return lastAssistantMessage?.agentRunId || null;
|
|
2892
2984
|
}
|
|
2985
|
+
/**
|
|
2986
|
+
* Expands all nodes in the execution monitor
|
|
2987
|
+
* Called automatically when execution completes
|
|
2988
|
+
*/
|
|
2989
|
+
expandAllMonitoringNodes() {
|
|
2990
|
+
if (this.currentExecutionData && this.executionMonitorMode === 'historical') {
|
|
2991
|
+
// Trigger expansion by setting a flag on the execution data
|
|
2992
|
+
this.currentExecutionData = {
|
|
2993
|
+
...this.currentExecutionData,
|
|
2994
|
+
_autoExpandAll: true,
|
|
2995
|
+
_lastExpandTime: Date.now()
|
|
2996
|
+
};
|
|
2997
|
+
}
|
|
2998
|
+
}
|
|
2893
2999
|
/**
|
|
2894
3000
|
* Navigate to the run details form
|
|
2895
3001
|
*/
|
|
@@ -2948,17 +3054,27 @@ export class AITestHarnessComponent {
|
|
|
2948
3054
|
}
|
|
2949
3055
|
/**
|
|
2950
3056
|
* Formats JSON content with proper indentation for display.
|
|
3057
|
+
* Also recursively parses any nested JSON strings.
|
|
2951
3058
|
* @param content - JSON string to format
|
|
2952
3059
|
* @returns Formatted JSON string or original content if parsing fails
|
|
2953
3060
|
*/
|
|
2954
3061
|
formatJson(content) {
|
|
3062
|
+
const parseOptions = {
|
|
3063
|
+
extractInlineJson: true,
|
|
3064
|
+
maxDepth: 100,
|
|
3065
|
+
debug: false
|
|
3066
|
+
};
|
|
2955
3067
|
try {
|
|
3068
|
+
let parsed;
|
|
2956
3069
|
if (typeof content === 'string') {
|
|
2957
|
-
|
|
3070
|
+
parsed = JSON.parse(content);
|
|
2958
3071
|
}
|
|
2959
3072
|
else {
|
|
2960
|
-
|
|
3073
|
+
parsed = content;
|
|
2961
3074
|
}
|
|
3075
|
+
// Apply recursive JSON parsing
|
|
3076
|
+
const recursivelyParsed = ParseJSONRecursive(parsed, parseOptions);
|
|
3077
|
+
return JSON.stringify(recursivelyParsed, null, 2);
|
|
2962
3078
|
}
|
|
2963
3079
|
catch {
|
|
2964
3080
|
return typeof content === 'string' ? content : JSON.stringify(content);
|
|
@@ -3456,5 +3572,5 @@ export class AITestHarnessComponent {
|
|
|
3456
3572
|
type: ViewChild,
|
|
3457
3573
|
args: ['saveDialogInput']
|
|
3458
3574
|
}] }); })();
|
|
3459
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AITestHarnessComponent, { className: "AITestHarnessComponent", filePath: "lib/ai-test-harness.component.ts", lineNumber:
|
|
3575
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AITestHarnessComponent, { className: "AITestHarnessComponent", filePath: "lib/ai-test-harness.component.ts", lineNumber: 151 }); })();
|
|
3460
3576
|
//# sourceMappingURL=ai-test-harness.component.js.map
|