@memberjunction/ng-ai-test-harness 5.22.0 → 5.24.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/__tests__/services.test.js +0 -14
- package/dist/__tests__/services.test.js.map +1 -1
- package/dist/lib/ai-test-harness.component.d.ts +6 -9
- package/dist/lib/ai-test-harness.component.d.ts.map +1 -1
- package/dist/lib/ai-test-harness.component.js +186 -214
- package/dist/lib/ai-test-harness.component.js.map +1 -1
- package/dist/lib/json-viewer-window.component.js +2 -2
- package/dist/lib/json-viewer-window.component.js.map +1 -1
- package/dist/lib/test-harness-custom-window.component.d.ts +40 -44
- package/dist/lib/test-harness-custom-window.component.d.ts.map +1 -1
- package/dist/lib/test-harness-custom-window.component.js +210 -325
- package/dist/lib/test-harness-custom-window.component.js.map +1 -1
- package/dist/lib/test-harness-window-manager.service.js +11 -11
- package/dist/lib/test-harness-window-manager.service.js.map +1 -1
- package/dist/lib/test-harness-window.service.d.ts +5 -59
- package/dist/lib/test-harness-window.service.d.ts.map +1 -1
- package/dist/lib/test-harness-window.service.js +6 -159
- package/dist/lib/test-harness-window.service.js.map +1 -1
- package/dist/module.d.ts +6 -13
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +38 -46
- package/dist/module.js.map +1 -1
- package/package.json +15 -23
|
@@ -28,7 +28,7 @@ export class JsonViewerWindowComponent {
|
|
|
28
28
|
i0.ɵɵadvance(5);
|
|
29
29
|
i0.ɵɵtwoWayProperty("ngModel", ctx.jsonContent);
|
|
30
30
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
31
|
-
} }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.CodeEditorComponent], styles: [".json-dialog-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background:
|
|
31
|
+
} }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.CodeEditorComponent], styles: [".json-dialog-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n }\n\n .json-dialog-header[_ngcontent-%COMP%] {\n padding: 12px 16px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n align-items: center;\n flex-shrink: 0;\n }\n\n .json-dialog-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow: auto;\n padding: 0;\n position: relative;\n min-height: 0;\n }\n\n .custom-button[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n padding: 6px 12px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: inherit;\n }\n\n .custom-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n }\n\n .custom-button.icon-only[_ngcontent-%COMP%] {\n padding: 6px 8px;\n }\n\n .custom-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n }"] }); }
|
|
32
32
|
}
|
|
33
33
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JsonViewerWindowComponent, [{
|
|
34
34
|
type: Component,
|
|
@@ -49,7 +49,7 @@ export class JsonViewerWindowComponent {
|
|
|
49
49
|
</mj-code-editor>
|
|
50
50
|
</div>
|
|
51
51
|
</div>
|
|
52
|
-
`, styles: ["\n .json-dialog-content {\n display: flex;\n flex-direction: column;\n height: 100%;\n background:
|
|
52
|
+
`, styles: ["\n .json-dialog-content {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n }\n\n .json-dialog-header {\n padding: 12px 16px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n align-items: center;\n flex-shrink: 0;\n }\n\n .json-dialog-body {\n flex: 1;\n overflow: auto;\n padding: 0;\n position: relative;\n min-height: 0;\n }\n\n .custom-button {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n padding: 6px 12px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: inherit;\n }\n\n .custom-button:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n }\n\n .custom-button.icon-only {\n padding: 6px 8px;\n }\n\n .custom-button i {\n font-size: 14px;\n }\n "] }]
|
|
53
53
|
}], null, { jsonContent: [{
|
|
54
54
|
type: Input
|
|
55
55
|
}] }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-viewer-window.component.js","sourceRoot":"","sources":["../../src/lib/json-viewer-window.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;;AAgFjD,MAAM,OAAO,yBAAyB;IA9EtC;QA+Ea,gBAAW,GAAW,EAAE,CAAC;KAWrC;IATG,eAAe;QACX,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtD,wBAAwB;YAC5B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,gBAAgB;YACpB,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;0HAXQ,yBAAyB;oEAAzB,yBAAyB;YAxEtB,AADJ,AADJ,8BAAiC,aACG,gBAC0D;YAA9C,sGAAS,qBAAiB,IAAC;YAC/D,uBAAgC;YAExC,AADI,iBAAS,EACP;YAEF,AADJ,8BAA8B,wBAMa;YAJnC,kOAAyB;YAOrC,AADI,AADI,iBAAiB,EACf,EACJ;;YAPM,eAAyB;YAAzB,+CAAyB;YAGzB,AADA,AADA,+BAAiB,oBACE,sBACE;;;iFA+D5B,yBAAyB;cA9ErC,SAAS;6BACI,KAAK,YACL,uBAAuB,YACvB;;;;;;;;;;;;;;;;;KAiBT;;kBA2DA,KAAK;;kFADG,yBAAyB","sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'mj-json-viewer-window',\n template: `\n <div class=\"json-dialog-content\">\n <div class=\"json-dialog-header\">\n <button class=\"custom-button icon-only\" (click)=\"copyJsonContent()\" title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n </div>\n <div class=\"json-dialog-body\">\n <mj-code-editor \n [(ngModel)]=\"jsonContent\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 100%; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n `,\n styles: [`\n .json-dialog-content {\n display: flex;\n flex-direction: column;\n height: 100%;\n background:
|
|
1
|
+
{"version":3,"file":"json-viewer-window.component.js","sourceRoot":"","sources":["../../src/lib/json-viewer-window.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;;AAgFjD,MAAM,OAAO,yBAAyB;IA9EtC;QA+Ea,gBAAW,GAAW,EAAE,CAAC;KAWrC;IATG,eAAe;QACX,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtD,wBAAwB;YAC5B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,gBAAgB;YACpB,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;0HAXQ,yBAAyB;oEAAzB,yBAAyB;YAxEtB,AADJ,AADJ,8BAAiC,aACG,gBAC0D;YAA9C,sGAAS,qBAAiB,IAAC;YAC/D,uBAAgC;YAExC,AADI,iBAAS,EACP;YAEF,AADJ,8BAA8B,wBAMa;YAJnC,kOAAyB;YAOrC,AADI,AADI,iBAAiB,EACf,EACJ;;YAPM,eAAyB;YAAzB,+CAAyB;YAGzB,AADA,AADA,+BAAiB,oBACE,sBACE;;;iFA+D5B,yBAAyB;cA9ErC,SAAS;6BACI,KAAK,YACL,uBAAuB,YACvB;;;;;;;;;;;;;;;;;KAiBT;;kBA2DA,KAAK;;kFADG,yBAAyB","sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'mj-json-viewer-window',\n template: `\n <div class=\"json-dialog-content\">\n <div class=\"json-dialog-header\">\n <button class=\"custom-button icon-only\" (click)=\"copyJsonContent()\" title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n </div>\n <div class=\"json-dialog-body\">\n <mj-code-editor \n [(ngModel)]=\"jsonContent\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 100%; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n `,\n styles: [`\n .json-dialog-content {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n }\n\n .json-dialog-header {\n padding: 12px 16px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n align-items: center;\n flex-shrink: 0;\n }\n\n .json-dialog-body {\n flex: 1;\n overflow: auto;\n padding: 0;\n position: relative;\n min-height: 0;\n }\n\n .custom-button {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n padding: 6px 12px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: inherit;\n }\n\n .custom-button:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n }\n\n .custom-button.icon-only {\n padding: 6px 8px;\n }\n\n .custom-button i {\n font-size: 14px;\n }\n `]\n})\nexport class JsonViewerWindowComponent {\n @Input() jsonContent: string = '';\n\n copyJsonContent() {\n if (this.jsonContent) {\n navigator.clipboard.writeText(this.jsonContent).then(() => {\n // Success - JSON copied\n }).catch((err) => {\n // Error copying\n });\n }\n }\n}"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, OnDestroy, AfterViewInit
|
|
2
|
-
import {
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { MJWindowComponent } from '@memberjunction/ng-ui-components';
|
|
3
3
|
import { MJAIAgentEntityExtended, MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';
|
|
4
4
|
import { AITestHarnessComponent } from './ai-test-harness.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -11,68 +11,64 @@ export interface CustomWindowData {
|
|
|
11
11
|
title?: string;
|
|
12
12
|
width?: string | number;
|
|
13
13
|
height?: string | number;
|
|
14
|
-
initialDataContext?: Record<string,
|
|
15
|
-
initialTemplateData?: Record<string,
|
|
16
|
-
initialTemplateVariables?: Record<string,
|
|
14
|
+
initialDataContext?: Record<string, unknown>;
|
|
15
|
+
initialTemplateData?: Record<string, unknown>;
|
|
16
|
+
initialTemplateVariables?: Record<string, unknown>;
|
|
17
17
|
selectedModelId?: string;
|
|
18
18
|
mode?: 'agent' | 'prompt';
|
|
19
19
|
}
|
|
20
20
|
export declare class TestHarnessCustomWindowComponent implements OnInit, OnDestroy, AfterViewInit {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
minimizeWindow: EventEmitter<void>;
|
|
29
|
-
restoreWindow: EventEmitter<void>;
|
|
30
|
-
executionStateChange: EventEmitter<{
|
|
21
|
+
MjWindow: MJWindowComponent;
|
|
22
|
+
TestHarness?: AITestHarnessComponent;
|
|
23
|
+
Data: CustomWindowData;
|
|
24
|
+
CloseWindow: EventEmitter<void>;
|
|
25
|
+
MinimizeWindow: EventEmitter<void>;
|
|
26
|
+
RestoreWindow: EventEmitter<void>;
|
|
27
|
+
ExecutionStateChange: EventEmitter<{
|
|
31
28
|
windowId?: string;
|
|
32
29
|
isExecuting: boolean;
|
|
33
30
|
}>;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
31
|
+
WindowTitle: string;
|
|
32
|
+
WindowVisible: boolean;
|
|
33
|
+
Width: number;
|
|
34
|
+
Height: number;
|
|
35
|
+
WindowTop: number;
|
|
36
|
+
WindowLeft: number;
|
|
37
|
+
Loading: boolean;
|
|
38
|
+
Error: string;
|
|
39
|
+
WindowState: 'default' | 'maximized';
|
|
40
|
+
IsMaximized: boolean;
|
|
41
|
+
IsMinimized: boolean;
|
|
44
42
|
private originalWidth;
|
|
45
43
|
private originalHeight;
|
|
46
44
|
private originalTop;
|
|
47
45
|
private originalLeft;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
agent
|
|
51
|
-
prompt?: MJAIPromptEntityExtended;
|
|
52
|
-
mode: 'agent' | 'prompt';
|
|
46
|
+
Agent?: MJAIAgentEntityExtended;
|
|
47
|
+
Prompt?: MJAIPromptEntityExtended;
|
|
48
|
+
Mode: 'agent' | 'prompt';
|
|
53
49
|
private metadata;
|
|
54
|
-
|
|
50
|
+
private executionCheckInterval;
|
|
51
|
+
private cdr;
|
|
55
52
|
ngOnInit(): void;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
LoadEntity(): Promise<void>;
|
|
54
|
+
private loadAgent;
|
|
55
|
+
private loadPrompt;
|
|
56
|
+
OnClose(): void;
|
|
57
|
+
CloseButtonClick(): void;
|
|
58
|
+
OnStateChange(state: 'default' | 'maximized'): void;
|
|
59
|
+
OnWindowResize(): void;
|
|
60
|
+
OnRunOpened(_event: {
|
|
62
61
|
runId: string;
|
|
63
62
|
runType: 'agent' | 'prompt';
|
|
64
63
|
}): void;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
Minimize(): void;
|
|
65
|
+
RestoreFromMinimized(): void;
|
|
66
|
+
ToggleMaximize(): void;
|
|
68
67
|
private convertToNumber;
|
|
69
68
|
ngAfterViewInit(): void;
|
|
70
|
-
private adjustContentHeight;
|
|
71
|
-
private setupResizeListener;
|
|
72
69
|
private setupExecutionTracking;
|
|
73
70
|
ngOnDestroy(): void;
|
|
74
|
-
private updateWindowPosition;
|
|
75
71
|
static ɵfac: i0.ɵɵFactoryDeclaration<TestHarnessCustomWindowComponent, never>;
|
|
76
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TestHarnessCustomWindowComponent, "mj-test-harness-custom-window", never, { "
|
|
72
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TestHarnessCustomWindowComponent, "mj-test-harness-custom-window", never, { "Data": { "alias": "Data"; "required": false; }; }, { "CloseWindow": "CloseWindow"; "MinimizeWindow": "MinimizeWindow"; "RestoreWindow": "RestoreWindow"; "ExecutionStateChange": "ExecutionStateChange"; }, never, never, false, never>;
|
|
77
73
|
}
|
|
78
74
|
//# sourceMappingURL=test-harness-custom-window.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-harness-custom-window.component.d.ts","sourceRoot":"","sources":["../../src/lib/test-harness-custom-window.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAa,SAAS,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"test-harness-custom-window.component.d.ts","sourceRoot":"","sources":["../../src/lib/test-harness-custom-window.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAa,SAAS,EAAE,aAAa,EAA6B,MAAM,eAAe,CAAC;AAC/I,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAEjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;;AAErE,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC7B;AAED,qBAyKa,gCAAiC,YAAW,MAAM,EAAE,SAAS,EAAE,aAAa;IAC3C,QAAQ,EAAG,iBAAiB,CAAC;IACjB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAClF,IAAI,EAAE,gBAAgB,CAAM;IAC3B,WAAW,qBAA4B;IACvC,cAAc,qBAA4B;IAC1C,aAAa,qBAA4B;IACzC,oBAAoB;mBAAiC,MAAM;qBAAe,OAAO;OAAM;IAEjG,WAAW,SAAqB;IAChC,aAAa,UAAS;IACtB,KAAK,EAAE,MAAM,CAAQ;IACrB,MAAM,EAAE,MAAM,CAAO;IACrB,SAAS,EAAE,MAAM,CAAO;IACxB,UAAU,EAAE,MAAM,CAAO;IACzB,OAAO,UAAQ;IACf,KAAK,SAAM;IACX,WAAW,EAAE,SAAS,GAAG,WAAW,CAAa;IACjD,WAAW,UAAS;IACpB,WAAW,UAAS;IAGpB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,YAAY,CAAe;IAEnC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAW;IAEnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,sBAAsB,CAA+C;IAC7E,OAAO,CAAC,GAAG,CAA6B;IAExC,QAAQ;IAsCF,UAAU;YAgBF,SAAS;YAkBT,UAAU;IAkBxB,OAAO;IAIP,gBAAgB;IAIhB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW;IAK5C,cAAc;IAId,WAAW,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE;IAKlE,QAAQ;IAgBR,oBAAoB;IAgBpB,cAAc;IAed,OAAO,CAAC,eAAe;IAwBvB,eAAe;IAKf,OAAO,CAAC,sBAAsB;IAc9B,WAAW;yCA7OF,gCAAgC;2CAAhC,gCAAgC;CAkP5C"}
|