@memberjunction/ng-ai-test-harness 2.55.0 → 2.56.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 (49) hide show
  1. package/dist/lib/agent-execution-monitor.component.d.ts +9 -0
  2. package/dist/lib/agent-execution-monitor.component.d.ts.map +1 -1
  3. package/dist/lib/agent-execution-monitor.component.js +68 -10
  4. package/dist/lib/agent-execution-monitor.component.js.map +1 -1
  5. package/dist/lib/agent-execution-node.component.d.ts +1 -0
  6. package/dist/lib/agent-execution-node.component.d.ts.map +1 -1
  7. package/dist/lib/agent-execution-node.component.js +88 -39
  8. package/dist/lib/agent-execution-node.component.js.map +1 -1
  9. package/dist/lib/ai-test-harness-dialog.service.d.ts +7 -14
  10. package/dist/lib/ai-test-harness-dialog.service.d.ts.map +1 -1
  11. package/dist/lib/ai-test-harness-dialog.service.js +21 -95
  12. package/dist/lib/ai-test-harness-dialog.service.js.map +1 -1
  13. package/dist/lib/ai-test-harness-window.component.d.ts +37 -0
  14. package/dist/lib/ai-test-harness-window.component.d.ts.map +1 -0
  15. package/dist/lib/ai-test-harness-window.component.js +171 -0
  16. package/dist/lib/ai-test-harness-window.component.js.map +1 -0
  17. package/dist/lib/ai-test-harness.component.d.ts +26 -1
  18. package/dist/lib/ai-test-harness.component.d.ts.map +1 -1
  19. package/dist/lib/ai-test-harness.component.js +299 -219
  20. package/dist/lib/ai-test-harness.component.js.map +1 -1
  21. package/dist/lib/test-harness-custom-window.component.d.ts +78 -0
  22. package/dist/lib/test-harness-custom-window.component.d.ts.map +1 -0
  23. package/dist/lib/test-harness-custom-window.component.js +528 -0
  24. package/dist/lib/test-harness-custom-window.component.js.map +1 -0
  25. package/dist/lib/test-harness-window-manager.service.d.ts +59 -0
  26. package/dist/lib/test-harness-window-manager.service.d.ts.map +1 -0
  27. package/dist/lib/test-harness-window-manager.service.js +163 -0
  28. package/dist/lib/test-harness-window-manager.service.js.map +1 -0
  29. package/dist/lib/test-harness-window.service.d.ts +73 -0
  30. package/dist/lib/test-harness-window.service.d.ts.map +1 -0
  31. package/dist/lib/test-harness-window.service.js +164 -0
  32. package/dist/lib/test-harness-window.service.js.map +1 -0
  33. package/dist/lib/window-dock.service.d.ts +32 -0
  34. package/dist/lib/window-dock.service.d.ts.map +1 -0
  35. package/dist/lib/window-dock.service.js +125 -0
  36. package/dist/lib/window-dock.service.js.map +1 -0
  37. package/dist/module.d.ts +19 -17
  38. package/dist/module.d.ts.map +1 -1
  39. package/dist/module.js +23 -4
  40. package/dist/module.js.map +1 -1
  41. package/dist/public-api.d.ts +6 -1
  42. package/dist/public-api.d.ts.map +1 -1
  43. package/dist/public-api.js +6 -1
  44. package/dist/public-api.js.map +1 -1
  45. package/package.json +8 -8
  46. package/dist/lib/test-harness-dialog.service.d.ts +0 -151
  47. package/dist/lib/test-harness-dialog.service.d.ts.map +0 -1
  48. package/dist/lib/test-harness-dialog.service.js +0 -234
  49. package/dist/lib/test-harness-dialog.service.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA+BA,qBAuCa,mBAAmB;yCAAnB,mBAAmB;0CAAnB,mBAAmB;0CAAnB,mBAAmB;CAAI"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmCA,qBA8Ca,mBAAmB;yCAAnB,mBAAmB;0CAAnB,mBAAmB;0CAAnB,mBAAmB;CAAI"}
package/dist/module.js CHANGED
@@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  // Kendo UI Modules
5
5
  import { ButtonsModule } from '@progress/kendo-angular-buttons';
6
- import { DialogsModule } from '@progress/kendo-angular-dialog';
6
+ import { DialogsModule, WindowModule } from '@progress/kendo-angular-dialog';
7
7
  import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
8
8
  import { InputsModule } from '@progress/kendo-angular-inputs';
9
9
  import { LayoutModule } from '@progress/kendo-angular-layout';
@@ -17,25 +17,32 @@ import { CodeEditorModule } from '@memberjunction/ng-code-editor';
17
17
  // Components
18
18
  import { AITestHarnessComponent } from './lib/ai-test-harness.component';
19
19
  import { AITestHarnessDialogComponent } from './lib/ai-test-harness-dialog.component';
20
+ import { AITestHarnessWindowComponent } from './lib/ai-test-harness-window.component';
21
+ import { TestHarnessCustomWindowComponent } from './lib/test-harness-custom-window.component';
20
22
  import { AgentExecutionMonitorComponent } from './lib/agent-execution-monitor.component';
21
23
  import { ExecutionNodeComponent } from './lib/agent-execution-node.component';
22
24
  import { JsonViewerWindowComponent } from './lib/json-viewer-window.component';
25
+ import { WindowDockService } from './lib/window-dock.service';
23
26
  // Services
24
27
  import { AITestHarnessDialogService } from './lib/ai-test-harness-dialog.service';
25
- import { TestHarnessDialogService } from './lib/test-harness-dialog.service';
28
+ import { TestHarnessWindowService } from './lib/test-harness-window.service';
29
+ import { TestHarnessWindowManagerService } from './lib/test-harness-window-manager.service';
26
30
  import * as i0 from "@angular/core";
27
31
  export class AITestHarnessModule {
28
32
  static { this.ɵfac = function AITestHarnessModule_Factory(t) { return new (t || AITestHarnessModule)(); }; }
29
33
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AITestHarnessModule }); }
30
34
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
31
35
  AITestHarnessDialogService,
32
- TestHarnessDialogService
36
+ TestHarnessWindowService,
37
+ TestHarnessWindowManagerService,
38
+ WindowDockService
33
39
  ], imports: [CommonModule,
34
40
  FormsModule,
35
41
  ReactiveFormsModule,
36
42
  // Kendo UI
37
43
  ButtonsModule,
38
44
  DialogsModule,
45
+ WindowModule,
39
46
  DropDownsModule,
40
47
  InputsModule,
41
48
  LayoutModule,
@@ -56,6 +63,8 @@ export class AITestHarnessModule {
56
63
  declarations: [
57
64
  AITestHarnessComponent,
58
65
  AITestHarnessDialogComponent,
66
+ AITestHarnessWindowComponent,
67
+ TestHarnessCustomWindowComponent,
59
68
  JsonViewerWindowComponent
60
69
  ],
61
70
  imports: [
@@ -65,6 +74,7 @@ export class AITestHarnessModule {
65
74
  // Kendo UI
66
75
  ButtonsModule,
67
76
  DialogsModule,
77
+ WindowModule,
68
78
  DropDownsModule,
69
79
  InputsModule,
70
80
  LayoutModule,
@@ -82,24 +92,31 @@ export class AITestHarnessModule {
82
92
  exports: [
83
93
  AITestHarnessComponent,
84
94
  AITestHarnessDialogComponent,
95
+ AITestHarnessWindowComponent,
96
+ TestHarnessCustomWindowComponent,
85
97
  AgentExecutionMonitorComponent,
86
98
  ExecutionNodeComponent,
87
99
  JsonViewerWindowComponent
88
100
  ],
89
101
  providers: [
90
102
  AITestHarnessDialogService,
91
- TestHarnessDialogService
103
+ TestHarnessWindowService,
104
+ TestHarnessWindowManagerService,
105
+ WindowDockService
92
106
  ]
93
107
  }]
94
108
  }], null, null); })();
95
109
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AITestHarnessModule, { declarations: [AITestHarnessComponent,
96
110
  AITestHarnessDialogComponent,
111
+ AITestHarnessWindowComponent,
112
+ TestHarnessCustomWindowComponent,
97
113
  JsonViewerWindowComponent], imports: [CommonModule,
98
114
  FormsModule,
99
115
  ReactiveFormsModule,
100
116
  // Kendo UI
101
117
  ButtonsModule,
102
118
  DialogsModule,
119
+ WindowModule,
103
120
  DropDownsModule,
104
121
  InputsModule,
105
122
  LayoutModule,
@@ -114,6 +131,8 @@ export class AITestHarnessModule {
114
131
  AgentExecutionMonitorComponent,
115
132
  ExecutionNodeComponent], exports: [AITestHarnessComponent,
116
133
  AITestHarnessDialogComponent,
134
+ AITestHarnessWindowComponent,
135
+ TestHarnessCustomWindowComponent,
117
136
  AgentExecutionMonitorComponent,
118
137
  ExecutionNodeComponent,
119
138
  JsonViewerWindowComponent] }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
1
  import './lib/ai-test-harness.component';
2
2
  import './lib/ai-test-harness-dialog.component';
3
+ import './lib/ai-test-harness-window.component';
4
+ import './lib/test-harness-custom-window.component';
3
5
  export * from './lib/ai-test-harness.component';
4
6
  export * from './lib/ai-test-harness-dialog.component';
5
- export * from './lib/test-harness-dialog.service';
7
+ export * from './lib/ai-test-harness-window.component';
8
+ export * from './lib/test-harness-custom-window.component';
9
+ export * from './lib/test-harness-window.service';
10
+ export * from './lib/test-harness-window-manager.service';
6
11
  export * from './lib/ai-test-harness-dialog.service';
7
12
  export * from './lib/agent-execution-monitor.component';
8
13
  export { ExecutionNodeComponent } from './lib/agent-execution-node.component';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AACA,OAAO,iCAAiC,CAAC;AACzC,OAAO,wCAAwC,CAAC;AAGhD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,cAAc,oCAAoC,CAAC;AACnD,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AACA,OAAO,iCAAiC,CAAC;AACzC,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAGpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,cAAc,oCAAoC,CAAC;AACnD,cAAc,UAAU,CAAC"}
@@ -1,10 +1,15 @@
1
1
  // Prevent tree shaking of components
2
2
  import './lib/ai-test-harness.component';
3
3
  import './lib/ai-test-harness-dialog.component';
4
+ import './lib/ai-test-harness-window.component';
5
+ import './lib/test-harness-custom-window.component';
4
6
  // Public API Surface
5
7
  export * from './lib/ai-test-harness.component';
6
8
  export * from './lib/ai-test-harness-dialog.component';
7
- export * from './lib/test-harness-dialog.service';
9
+ export * from './lib/ai-test-harness-window.component';
10
+ export * from './lib/test-harness-custom-window.component';
11
+ export * from './lib/test-harness-window.service';
12
+ export * from './lib/test-harness-window-manager.service';
8
13
  export * from './lib/ai-test-harness-dialog.service';
9
14
  export * from './lib/agent-execution-monitor.component';
10
15
  export { ExecutionNodeComponent } from './lib/agent-execution-node.component';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,iCAAiC,CAAC;AACzC,OAAO,wCAAwC,CAAC;AAEhD,qBAAqB;AACrB,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,cAAc,oCAAoC,CAAC;AACnD,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,iCAAiC,CAAC;AACzC,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,qBAAqB;AACrB,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,cAAc,oCAAoC,CAAC;AACnD,cAAc,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-ai-test-harness",
3
- "version": "2.55.0",
3
+ "version": "2.56.0",
4
4
  "description": "MemberJunction AI Test Harness - A reusable component for testing AI agents and prompts with beautiful UX",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -31,13 +31,13 @@
31
31
  "@angular/animations": "18.0.2"
32
32
  },
33
33
  "dependencies": {
34
- "@memberjunction/core": "2.55.0",
35
- "@memberjunction/core-entities": "2.55.0",
36
- "@memberjunction/graphql-dataprovider": "2.55.0",
37
- "@memberjunction/ng-container-directives": "2.55.0",
38
- "@memberjunction/ng-code-editor": "2.55.0",
39
- "@memberjunction/ng-notifications": "2.55.0",
40
- "@memberjunction/ng-shared": "2.55.0",
34
+ "@memberjunction/core": "2.56.0",
35
+ "@memberjunction/core-entities": "2.56.0",
36
+ "@memberjunction/graphql-dataprovider": "2.56.0",
37
+ "@memberjunction/ng-container-directives": "2.56.0",
38
+ "@memberjunction/ng-code-editor": "2.56.0",
39
+ "@memberjunction/ng-notifications": "2.56.0",
40
+ "@memberjunction/ng-shared": "2.56.0",
41
41
  "@progress/kendo-angular-buttons": "16.2.0",
42
42
  "@progress/kendo-angular-dialog": "16.2.0",
43
43
  "@progress/kendo-angular-dropdowns": "16.2.0",
@@ -1,151 +0,0 @@
1
- import { ViewContainerRef } from '@angular/core';
2
- import { DialogService, DialogRef } from '@progress/kendo-angular-dialog';
3
- import { AIAgentEntity, AIPromptEntity } from '@memberjunction/core-entities';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Service for managing test harness dialogs for AI Agents and AI Prompts.
7
- * Provides a centralized way to open test harness dialogs with customizable options
8
- * including dialog dimensions, initial data, and runtime configuration.
9
- *
10
- * @example
11
- * ```typescript
12
- * // Open AI Agent test harness
13
- * const dialogRef = this.testHarnessService.openAgentTestHarness({
14
- * agentId: 'agent-123',
15
- * title: 'Test My Agent',
16
- * initialDataContext: { user: 'john', role: 'admin' }
17
- * });
18
- *
19
- * // Open AI Prompt test harness
20
- * const dialogRef = this.testHarnessService.openPromptTestHarness({
21
- * promptId: 'prompt-456',
22
- * selectedModelId: 'gpt-4',
23
- * initialTemplateVariables: { name: 'Alice', context: 'demo' }
24
- * });
25
- * ```
26
- */
27
- export declare class TestHarnessDialogService {
28
- private dialogService;
29
- /**
30
- * Creates a new TestHarnessDialogService instance.
31
- * @param dialogService - Kendo Angular dialog service for managing dialogs
32
- */
33
- constructor(dialogService: DialogService);
34
- /**
35
- * Opens the AI Agent Test Harness in a dialog with comprehensive configuration options.
36
- * Supports both loading by agent ID or passing an existing agent entity.
37
- *
38
- * @param options - Configuration options for the dialog
39
- * @param options.agentId - ID of the AI agent to load (alternative to agent parameter)
40
- * @param options.agent - Pre-loaded AI agent entity (alternative to agentId parameter)
41
- * @param options.title - Custom title for the dialog (defaults to agent name)
42
- * @param options.width - Dialog width (CSS units or viewport percentage, defaults to '90vw')
43
- * @param options.height - Dialog height (CSS units or viewport percentage, defaults to '90vh')
44
- * @param options.initialDataContext - Initial data context variables for agent execution
45
- * @param options.initialTemplateData - Initial template data variables for agent execution
46
- * @param options.preventClose - Whether to prevent dialog closure (currently unused)
47
- * @returns Reference to the opened dialog for further control
48
- *
49
- * @example
50
- * ```typescript
51
- * // Load agent by ID with initial context
52
- * const dialogRef = this.openAgentTestHarness({
53
- * agentId: 'agent-123',
54
- * initialDataContext: {
55
- * userId: 'user-456',
56
- * department: 'Engineering'
57
- * },
58
- * width: '80vw',
59
- * height: '75vh'
60
- * });
61
- *
62
- * // Use existing agent entity
63
- * const dialogRef = this.openAgentTestHarness({
64
- * agent: myAgentEntity,
65
- * title: 'Custom Test Session'
66
- * });
67
- * ```
68
- */
69
- openAgentTestHarness(options: {
70
- agentId?: string;
71
- agent?: AIAgentEntity;
72
- title?: string;
73
- width?: string | number;
74
- height?: string | number;
75
- initialDataContext?: Record<string, any>;
76
- initialTemplateData?: Record<string, any>;
77
- preventClose?: boolean;
78
- viewContainerRef?: ViewContainerRef;
79
- }): DialogRef;
80
- /**
81
- * Opens the AI Prompt Test Harness in a dialog with comprehensive configuration options.
82
- * Uses the same test harness component but configures it for prompt mode.
83
- *
84
- * @param options - Configuration options for the dialog
85
- * @param options.promptId - ID of the AI prompt to load (alternative to prompt parameter)
86
- * @param options.prompt - Pre-loaded AI prompt entity (alternative to promptId parameter)
87
- * @param options.title - Custom title for the dialog (defaults to prompt name)
88
- * @param options.width - Dialog width (CSS units or viewport percentage, defaults to '90vw')
89
- * @param options.height - Dialog height (CSS units or viewport percentage, defaults to '90vh')
90
- * @param options.initialTemplateVariables - Initial template variables for prompt execution
91
- * @param options.selectedModelId - Pre-selected AI model ID
92
- * @param options.preventClose - Whether to prevent dialog closure (currently unused)
93
- * @returns Reference to the opened dialog for further control
94
- */
95
- openPromptTestHarness(options: {
96
- promptId?: string;
97
- prompt?: AIPromptEntity;
98
- title?: string;
99
- width?: string | number;
100
- height?: string | number;
101
- initialTemplateVariables?: Record<string, any>;
102
- selectedModelId?: string;
103
- preventClose?: boolean;
104
- }): DialogRef;
105
- /**
106
- * Convenience method to open an AI Agent Test Harness dialog using only the agent ID.
107
- * Uses default dialog dimensions and no initial data.
108
- *
109
- * @param agentId - ID of the AI agent to test
110
- * @returns Promise resolving to the dialog reference
111
- *
112
- * @example
113
- * ```typescript
114
- * const dialogRef = await this.testHarnessService.openAgentById('agent-123');
115
- * ```
116
- */
117
- openAgentById(agentId: string): Promise<DialogRef>;
118
- /**
119
- * Convenience method to open an AI Prompt Test Harness dialog using only the prompt ID.
120
- * Uses default dialog dimensions and no initial data.
121
- *
122
- * @param promptId - ID of the AI prompt to test
123
- * @returns Promise resolving to the dialog reference
124
- *
125
- * @example
126
- * ```typescript
127
- * const dialogRef = await this.testHarnessService.openPromptById('prompt-456');
128
- * ```
129
- */
130
- openPromptById(promptId: string): Promise<DialogRef>;
131
- /**
132
- * Helper method to convert string dimensions (including viewport units) to pixel numbers.
133
- * Supports viewport width (vw), viewport height (vh), pixels (px), and plain numbers.
134
- *
135
- * @param value - Dimension value as string, number, or undefined
136
- * @returns Converted pixel value or undefined if conversion fails
137
- *
138
- * @private
139
- * @example
140
- * ```typescript
141
- * convertToNumber('90vw') // Returns ~1728 on 1920px screen
142
- * convertToNumber('500px') // Returns 500
143
- * convertToNumber(800) // Returns 800
144
- * convertToNumber('auto') // Returns undefined
145
- * ```
146
- */
147
- private convertToNumber;
148
- static ɵfac: i0.ɵɵFactoryDeclaration<TestHarnessDialogService, never>;
149
- static ɵprov: i0.ɵɵInjectableDeclaration<TestHarnessDialogService>;
150
- }
151
- //# sourceMappingURL=test-harness-dialog.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-harness-dialog.service.d.ts","sourceRoot":"","sources":["../../src/lib/test-harness-dialog.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAkB,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;;AAK9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAGa,wBAAwB;IAKrB,OAAO,CAAC,aAAa;IAJjC;;;OAGG;gBACiB,aAAa,EAAE,aAAa;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,oBAAoB,CAAC,OAAO,EAAE;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACvC,GAAG,SAAS;IAwCb;;;;;;;;;;;;;;OAcG;IACH,qBAAqB,CAAC,OAAO,EAAE;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,OAAO,CAAC;KAC1B,GAAG,SAAS;IAyCb;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxD;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI1D;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,eAAe;yCA7Md,wBAAwB;6CAAxB,wBAAwB;CAoOpC"}
@@ -1,234 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { AITestHarnessDialogComponent } from './ai-test-harness-dialog.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@progress/kendo-angular-dialog";
5
- // TODO: Prompt test harness will be added later
6
- // import { AIPromptTestHarnessDialogComponent, AIPromptTestHarnessDialogData } from './AIPrompts/ai-prompt-test-harness-dialog.component';
7
- /**
8
- * Service for managing test harness dialogs for AI Agents and AI Prompts.
9
- * Provides a centralized way to open test harness dialogs with customizable options
10
- * including dialog dimensions, initial data, and runtime configuration.
11
- *
12
- * @example
13
- * ```typescript
14
- * // Open AI Agent test harness
15
- * const dialogRef = this.testHarnessService.openAgentTestHarness({
16
- * agentId: 'agent-123',
17
- * title: 'Test My Agent',
18
- * initialDataContext: { user: 'john', role: 'admin' }
19
- * });
20
- *
21
- * // Open AI Prompt test harness
22
- * const dialogRef = this.testHarnessService.openPromptTestHarness({
23
- * promptId: 'prompt-456',
24
- * selectedModelId: 'gpt-4',
25
- * initialTemplateVariables: { name: 'Alice', context: 'demo' }
26
- * });
27
- * ```
28
- */
29
- export class TestHarnessDialogService {
30
- /**
31
- * Creates a new TestHarnessDialogService instance.
32
- * @param dialogService - Kendo Angular dialog service for managing dialogs
33
- */
34
- constructor(dialogService) {
35
- this.dialogService = dialogService;
36
- }
37
- /**
38
- * Opens the AI Agent Test Harness in a dialog with comprehensive configuration options.
39
- * Supports both loading by agent ID or passing an existing agent entity.
40
- *
41
- * @param options - Configuration options for the dialog
42
- * @param options.agentId - ID of the AI agent to load (alternative to agent parameter)
43
- * @param options.agent - Pre-loaded AI agent entity (alternative to agentId parameter)
44
- * @param options.title - Custom title for the dialog (defaults to agent name)
45
- * @param options.width - Dialog width (CSS units or viewport percentage, defaults to '90vw')
46
- * @param options.height - Dialog height (CSS units or viewport percentage, defaults to '90vh')
47
- * @param options.initialDataContext - Initial data context variables for agent execution
48
- * @param options.initialTemplateData - Initial template data variables for agent execution
49
- * @param options.preventClose - Whether to prevent dialog closure (currently unused)
50
- * @returns Reference to the opened dialog for further control
51
- *
52
- * @example
53
- * ```typescript
54
- * // Load agent by ID with initial context
55
- * const dialogRef = this.openAgentTestHarness({
56
- * agentId: 'agent-123',
57
- * initialDataContext: {
58
- * userId: 'user-456',
59
- * department: 'Engineering'
60
- * },
61
- * width: '80vw',
62
- * height: '75vh'
63
- * });
64
- *
65
- * // Use existing agent entity
66
- * const dialogRef = this.openAgentTestHarness({
67
- * agent: myAgentEntity,
68
- * title: 'Custom Test Session'
69
- * });
70
- * ```
71
- */
72
- openAgentTestHarness(options) {
73
- const data = {
74
- agentId: options.agentId,
75
- agent: options.agent,
76
- title: options.title,
77
- width: options.width || '90vw',
78
- height: options.height || '90vh',
79
- initialDataContext: options.initialDataContext,
80
- initialTemplateData: options.initialTemplateData
81
- };
82
- const dialogSettings = {
83
- title: '',
84
- content: AITestHarnessDialogComponent,
85
- width: this.convertToNumber(data.width) || 1200,
86
- height: this.convertToNumber(data.height) || 800,
87
- minWidth: 800,
88
- minHeight: 600,
89
- autoFocusedElement: 'none',
90
- cssClass: 'test-harness-dialog-wrapper'
91
- };
92
- const dialogRef = this.dialogService.open(dialogSettings);
93
- // Pass data to the component instance
94
- if (dialogRef.content && dialogRef.content.instance) {
95
- const componentInstance = dialogRef.content.instance;
96
- componentInstance.data = data;
97
- componentInstance.closeDialog.subscribe(() => {
98
- dialogRef.close();
99
- });
100
- }
101
- else {
102
- console.error('Dialog content or instance is null!');
103
- }
104
- return dialogRef;
105
- }
106
- /**
107
- * Opens the AI Prompt Test Harness in a dialog with comprehensive configuration options.
108
- * Uses the same test harness component but configures it for prompt mode.
109
- *
110
- * @param options - Configuration options for the dialog
111
- * @param options.promptId - ID of the AI prompt to load (alternative to prompt parameter)
112
- * @param options.prompt - Pre-loaded AI prompt entity (alternative to promptId parameter)
113
- * @param options.title - Custom title for the dialog (defaults to prompt name)
114
- * @param options.width - Dialog width (CSS units or viewport percentage, defaults to '90vw')
115
- * @param options.height - Dialog height (CSS units or viewport percentage, defaults to '90vh')
116
- * @param options.initialTemplateVariables - Initial template variables for prompt execution
117
- * @param options.selectedModelId - Pre-selected AI model ID
118
- * @param options.preventClose - Whether to prevent dialog closure (currently unused)
119
- * @returns Reference to the opened dialog for further control
120
- */
121
- openPromptTestHarness(options) {
122
- const data = {
123
- promptId: options.promptId,
124
- prompt: options.prompt,
125
- title: options.title || 'Test AI Prompt',
126
- width: options.width || '90vw',
127
- height: options.height || '90vh',
128
- initialTemplateVariables: options.initialTemplateVariables,
129
- selectedModelId: options.selectedModelId,
130
- mode: 'prompt' // Explicitly set mode to prompt
131
- };
132
- const dialogSettings = {
133
- title: '',
134
- content: AITestHarnessDialogComponent,
135
- width: this.convertToNumber(data.width) || 1200,
136
- height: this.convertToNumber(data.height) || 800,
137
- minWidth: 800,
138
- minHeight: 600,
139
- autoFocusedElement: 'none',
140
- cssClass: 'test-harness-dialog-wrapper'
141
- };
142
- const dialogRef = this.dialogService.open(dialogSettings);
143
- // Pass data to the component instance
144
- if (dialogRef.content && dialogRef.content.instance) {
145
- const componentInstance = dialogRef.content.instance;
146
- componentInstance.data = data;
147
- componentInstance.closeDialog.subscribe(() => {
148
- dialogRef.close();
149
- });
150
- }
151
- else {
152
- console.error('Dialog content or instance is null!');
153
- }
154
- return dialogRef;
155
- }
156
- /**
157
- * Convenience method to open an AI Agent Test Harness dialog using only the agent ID.
158
- * Uses default dialog dimensions and no initial data.
159
- *
160
- * @param agentId - ID of the AI agent to test
161
- * @returns Promise resolving to the dialog reference
162
- *
163
- * @example
164
- * ```typescript
165
- * const dialogRef = await this.testHarnessService.openAgentById('agent-123');
166
- * ```
167
- */
168
- async openAgentById(agentId) {
169
- return this.openAgentTestHarness({ agentId });
170
- }
171
- /**
172
- * Convenience method to open an AI Prompt Test Harness dialog using only the prompt ID.
173
- * Uses default dialog dimensions and no initial data.
174
- *
175
- * @param promptId - ID of the AI prompt to test
176
- * @returns Promise resolving to the dialog reference
177
- *
178
- * @example
179
- * ```typescript
180
- * const dialogRef = await this.testHarnessService.openPromptById('prompt-456');
181
- * ```
182
- */
183
- async openPromptById(promptId) {
184
- return this.openPromptTestHarness({ promptId });
185
- }
186
- /**
187
- * Helper method to convert string dimensions (including viewport units) to pixel numbers.
188
- * Supports viewport width (vw), viewport height (vh), pixels (px), and plain numbers.
189
- *
190
- * @param value - Dimension value as string, number, or undefined
191
- * @returns Converted pixel value or undefined if conversion fails
192
- *
193
- * @private
194
- * @example
195
- * ```typescript
196
- * convertToNumber('90vw') // Returns ~1728 on 1920px screen
197
- * convertToNumber('500px') // Returns 500
198
- * convertToNumber(800) // Returns 800
199
- * convertToNumber('auto') // Returns undefined
200
- * ```
201
- */
202
- convertToNumber(value) {
203
- if (!value)
204
- return undefined;
205
- if (typeof value === 'number')
206
- return value;
207
- // Handle percentage values
208
- if (value.endsWith('vw') || value.endsWith('vh')) {
209
- const percentage = parseFloat(value) / 100;
210
- if (value.endsWith('vw')) {
211
- return window.innerWidth * percentage;
212
- }
213
- else {
214
- return window.innerHeight * percentage;
215
- }
216
- }
217
- // Handle pixel values
218
- if (value.endsWith('px')) {
219
- return parseFloat(value);
220
- }
221
- // Try to parse as number
222
- const parsed = parseFloat(value);
223
- return isNaN(parsed) ? undefined : parsed;
224
- }
225
- static { this.ɵfac = function TestHarnessDialogService_Factory(t) { return new (t || TestHarnessDialogService)(i0.ɵɵinject(i1.DialogService)); }; }
226
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TestHarnessDialogService, factory: TestHarnessDialogService.ɵfac, providedIn: 'root' }); }
227
- }
228
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestHarnessDialogService, [{
229
- type: Injectable,
230
- args: [{
231
- providedIn: 'root'
232
- }]
233
- }], () => [{ type: i1.DialogService }], null); })();
234
- //# sourceMappingURL=test-harness-dialog.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-harness-dialog.service.js","sourceRoot":"","sources":["../../src/lib/test-harness-dialog.service.ts"],"names":[],"mappings":"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"}