@memberjunction/ng-ai-test-harness 2.55.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 (38) hide show
  1. package/README.md +187 -0
  2. package/dist/lib/agent-execution-monitor.component.d.ts +273 -0
  3. package/dist/lib/agent-execution-monitor.component.d.ts.map +1 -0
  4. package/dist/lib/agent-execution-monitor.component.js +1429 -0
  5. package/dist/lib/agent-execution-monitor.component.js.map +1 -0
  6. package/dist/lib/agent-execution-node.component.d.ts +19 -0
  7. package/dist/lib/agent-execution-node.component.d.ts.map +1 -0
  8. package/dist/lib/agent-execution-node.component.js +458 -0
  9. package/dist/lib/agent-execution-node.component.js.map +1 -0
  10. package/dist/lib/ai-test-harness-dialog.component.d.ts +98 -0
  11. package/dist/lib/ai-test-harness-dialog.component.d.ts.map +1 -0
  12. package/dist/lib/ai-test-harness-dialog.component.js +206 -0
  13. package/dist/lib/ai-test-harness-dialog.component.js.map +1 -0
  14. package/dist/lib/ai-test-harness-dialog.service.d.ts +32 -0
  15. package/dist/lib/ai-test-harness-dialog.service.d.ts.map +1 -0
  16. package/dist/lib/ai-test-harness-dialog.service.js +120 -0
  17. package/dist/lib/ai-test-harness-dialog.service.js.map +1 -0
  18. package/dist/lib/ai-test-harness.component.d.ts +631 -0
  19. package/dist/lib/ai-test-harness.component.d.ts.map +1 -0
  20. package/dist/lib/ai-test-harness.component.js +3380 -0
  21. package/dist/lib/ai-test-harness.component.js.map +1 -0
  22. package/dist/lib/json-viewer-window.component.d.ts +8 -0
  23. package/dist/lib/json-viewer-window.component.d.ts.map +1 -0
  24. package/dist/lib/json-viewer-window.component.js +57 -0
  25. package/dist/lib/json-viewer-window.component.js.map +1 -0
  26. package/dist/lib/test-harness-dialog.service.d.ts +151 -0
  27. package/dist/lib/test-harness-dialog.service.d.ts.map +1 -0
  28. package/dist/lib/test-harness-dialog.service.js +234 -0
  29. package/dist/lib/test-harness-dialog.service.js.map +1 -0
  30. package/dist/module.d.ts +25 -0
  31. package/dist/module.d.ts.map +1 -0
  32. package/dist/module.js +120 -0
  33. package/dist/module.js.map +1 -0
  34. package/dist/public-api.d.ts +11 -0
  35. package/dist/public-api.d.ts.map +1 -0
  36. package/dist/public-api.js +13 -0
  37. package/dist/public-api.js.map +1 -0
  38. package/package.json +55 -0
@@ -0,0 +1,234 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-harness-dialog.service.js","sourceRoot":"","sources":["../../src/lib/test-harness-dialog.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./lib/ai-test-harness.component";
3
+ import * as i2 from "./lib/ai-test-harness-dialog.component";
4
+ import * as i3 from "./lib/json-viewer-window.component";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "@angular/forms";
7
+ import * as i6 from "@progress/kendo-angular-buttons";
8
+ import * as i7 from "@progress/kendo-angular-dialog";
9
+ import * as i8 from "@progress/kendo-angular-dropdowns";
10
+ import * as i9 from "@progress/kendo-angular-inputs";
11
+ import * as i10 from "@progress/kendo-angular-layout";
12
+ import * as i11 from "@progress/kendo-angular-notification";
13
+ import * as i12 from "@progress/kendo-angular-indicators";
14
+ import * as i13 from "@progress/kendo-angular-tooltip";
15
+ import * as i14 from "@progress/kendo-angular-icons";
16
+ import * as i15 from "@memberjunction/ng-container-directives";
17
+ import * as i16 from "@memberjunction/ng-code-editor";
18
+ import * as i17 from "./lib/agent-execution-monitor.component";
19
+ import * as i18 from "./lib/agent-execution-node.component";
20
+ export declare class AITestHarnessModule {
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<AITestHarnessModule, never>;
22
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AITestHarnessModule, [typeof i1.AITestHarnessComponent, typeof i2.AITestHarnessDialogComponent, typeof i3.JsonViewerWindowComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i5.ReactiveFormsModule, typeof i6.ButtonsModule, typeof i7.DialogsModule, typeof i8.DropDownsModule, typeof i9.InputsModule, typeof i10.LayoutModule, typeof i11.NotificationModule, typeof i12.IndicatorsModule, typeof i13.TooltipsModule, typeof i14.IconsModule, typeof i15.ContainerDirectivesModule, typeof i16.CodeEditorModule, typeof i17.AgentExecutionMonitorComponent, typeof i18.ExecutionNodeComponent], [typeof i1.AITestHarnessComponent, typeof i2.AITestHarnessDialogComponent, typeof i17.AgentExecutionMonitorComponent, typeof i18.ExecutionNodeComponent, typeof i3.JsonViewerWindowComponent]>;
23
+ static ɵinj: i0.ɵɵInjectorDeclaration<AITestHarnessModule>;
24
+ }
25
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +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"}
package/dist/module.js ADDED
@@ -0,0 +1,120 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ // Kendo UI Modules
5
+ import { ButtonsModule } from '@progress/kendo-angular-buttons';
6
+ import { DialogsModule } from '@progress/kendo-angular-dialog';
7
+ import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
8
+ import { InputsModule } from '@progress/kendo-angular-inputs';
9
+ import { LayoutModule } from '@progress/kendo-angular-layout';
10
+ import { NotificationModule } from '@progress/kendo-angular-notification';
11
+ import { IndicatorsModule } from '@progress/kendo-angular-indicators';
12
+ import { TooltipsModule } from '@progress/kendo-angular-tooltip';
13
+ import { IconsModule } from '@progress/kendo-angular-icons';
14
+ // MemberJunction imports
15
+ import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
16
+ import { CodeEditorModule } from '@memberjunction/ng-code-editor';
17
+ // Components
18
+ import { AITestHarnessComponent } from './lib/ai-test-harness.component';
19
+ import { AITestHarnessDialogComponent } from './lib/ai-test-harness-dialog.component';
20
+ import { AgentExecutionMonitorComponent } from './lib/agent-execution-monitor.component';
21
+ import { ExecutionNodeComponent } from './lib/agent-execution-node.component';
22
+ import { JsonViewerWindowComponent } from './lib/json-viewer-window.component';
23
+ // Services
24
+ import { AITestHarnessDialogService } from './lib/ai-test-harness-dialog.service';
25
+ import { TestHarnessDialogService } from './lib/test-harness-dialog.service';
26
+ import * as i0 from "@angular/core";
27
+ export class AITestHarnessModule {
28
+ static { this.ɵfac = function AITestHarnessModule_Factory(t) { return new (t || AITestHarnessModule)(); }; }
29
+ static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AITestHarnessModule }); }
30
+ static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
31
+ AITestHarnessDialogService,
32
+ TestHarnessDialogService
33
+ ], imports: [CommonModule,
34
+ FormsModule,
35
+ ReactiveFormsModule,
36
+ // Kendo UI
37
+ ButtonsModule,
38
+ DialogsModule,
39
+ DropDownsModule,
40
+ InputsModule,
41
+ LayoutModule,
42
+ NotificationModule,
43
+ IndicatorsModule,
44
+ TooltipsModule,
45
+ IconsModule,
46
+ // MemberJunction
47
+ ContainerDirectivesModule,
48
+ CodeEditorModule,
49
+ // Standalone components
50
+ AgentExecutionMonitorComponent,
51
+ ExecutionNodeComponent] }); }
52
+ }
53
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AITestHarnessModule, [{
54
+ type: NgModule,
55
+ args: [{
56
+ declarations: [
57
+ AITestHarnessComponent,
58
+ AITestHarnessDialogComponent,
59
+ JsonViewerWindowComponent
60
+ ],
61
+ imports: [
62
+ CommonModule,
63
+ FormsModule,
64
+ ReactiveFormsModule,
65
+ // Kendo UI
66
+ ButtonsModule,
67
+ DialogsModule,
68
+ DropDownsModule,
69
+ InputsModule,
70
+ LayoutModule,
71
+ NotificationModule,
72
+ IndicatorsModule,
73
+ TooltipsModule,
74
+ IconsModule,
75
+ // MemberJunction
76
+ ContainerDirectivesModule,
77
+ CodeEditorModule,
78
+ // Standalone components
79
+ AgentExecutionMonitorComponent,
80
+ ExecutionNodeComponent
81
+ ],
82
+ exports: [
83
+ AITestHarnessComponent,
84
+ AITestHarnessDialogComponent,
85
+ AgentExecutionMonitorComponent,
86
+ ExecutionNodeComponent,
87
+ JsonViewerWindowComponent
88
+ ],
89
+ providers: [
90
+ AITestHarnessDialogService,
91
+ TestHarnessDialogService
92
+ ]
93
+ }]
94
+ }], null, null); })();
95
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AITestHarnessModule, { declarations: [AITestHarnessComponent,
96
+ AITestHarnessDialogComponent,
97
+ JsonViewerWindowComponent], imports: [CommonModule,
98
+ FormsModule,
99
+ ReactiveFormsModule,
100
+ // Kendo UI
101
+ ButtonsModule,
102
+ DialogsModule,
103
+ DropDownsModule,
104
+ InputsModule,
105
+ LayoutModule,
106
+ NotificationModule,
107
+ IndicatorsModule,
108
+ TooltipsModule,
109
+ IconsModule,
110
+ // MemberJunction
111
+ ContainerDirectivesModule,
112
+ CodeEditorModule,
113
+ // Standalone components
114
+ AgentExecutionMonitorComponent,
115
+ ExecutionNodeComponent], exports: [AITestHarnessComponent,
116
+ AITestHarnessDialogComponent,
117
+ AgentExecutionMonitorComponent,
118
+ ExecutionNodeComponent,
119
+ JsonViewerWindowComponent] }); })();
120
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import './lib/ai-test-harness.component';
2
+ import './lib/ai-test-harness-dialog.component';
3
+ export * from './lib/ai-test-harness.component';
4
+ export * from './lib/ai-test-harness-dialog.component';
5
+ export * from './lib/test-harness-dialog.service';
6
+ export * from './lib/ai-test-harness-dialog.service';
7
+ export * from './lib/agent-execution-monitor.component';
8
+ export { ExecutionNodeComponent } from './lib/agent-execution-node.component';
9
+ export * from './lib/json-viewer-window.component';
10
+ export * from './module';
11
+ //# sourceMappingURL=public-api.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ // Prevent tree shaking of components
2
+ import './lib/ai-test-harness.component';
3
+ import './lib/ai-test-harness-dialog.component';
4
+ // Public API Surface
5
+ export * from './lib/ai-test-harness.component';
6
+ export * from './lib/ai-test-harness-dialog.component';
7
+ export * from './lib/test-harness-dialog.service';
8
+ export * from './lib/ai-test-harness-dialog.service';
9
+ export * from './lib/agent-execution-monitor.component';
10
+ export { ExecutionNodeComponent } from './lib/agent-execution-node.component';
11
+ export * from './lib/json-viewer-window.component';
12
+ export * from './module';
13
+ //# sourceMappingURL=public-api.js.map
@@ -0,0 +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"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@memberjunction/ng-ai-test-harness",
3
+ "version": "2.55.0",
4
+ "description": "MemberJunction AI Test Harness - A reusable component for testing AI agents and prompts with beautiful UX",
5
+ "main": "./dist/public-api.js",
6
+ "typings": "./dist/public-api.d.ts",
7
+ "files": [
8
+ "/dist"
9
+ ],
10
+ "scripts": {
11
+ "test": "echo \"Error: no test specified\" && exit 1",
12
+ "build": "ngc"
13
+ },
14
+ "keywords": [
15
+ "AI",
16
+ "test harness",
17
+ "agents",
18
+ "prompts",
19
+ "MemberJunction"
20
+ ],
21
+ "author": "MemberJunction Team",
22
+ "license": "ISC",
23
+ "devDependencies": {
24
+ "@angular/compiler": "18.0.2",
25
+ "@angular/compiler-cli": "18.0.2"
26
+ },
27
+ "peerDependencies": {
28
+ "@angular/common": "18.0.2",
29
+ "@angular/core": "18.0.2",
30
+ "@angular/forms": "18.0.2",
31
+ "@angular/animations": "18.0.2"
32
+ },
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",
41
+ "@progress/kendo-angular-buttons": "16.2.0",
42
+ "@progress/kendo-angular-dialog": "16.2.0",
43
+ "@progress/kendo-angular-dropdowns": "16.2.0",
44
+ "@progress/kendo-angular-icons": "16.2.0",
45
+ "@progress/kendo-angular-indicators": "16.2.0",
46
+ "@progress/kendo-angular-inputs": "16.2.0",
47
+ "@progress/kendo-angular-layout": "16.2.0",
48
+ "@progress/kendo-angular-notification": "16.2.0",
49
+ "@progress/kendo-angular-tooltip": "16.2.0",
50
+ "@progress/kendo-theme-default": "^7.0.2",
51
+ "rxjs": "^7.6.0",
52
+ "tslib": "^2.4.0"
53
+ },
54
+ "sideEffects": false
55
+ }