@memberjunction/ng-core-entity-forms 2.53.0 → 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.
- package/README.md +1 -206
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +28 -5
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +364 -234
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +36 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +325 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +41 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +87 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +5 -7
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +5 -2
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +501 -485
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +2 -0
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +216 -293
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +6 -8
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +25 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +261 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +73 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +510 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +41 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +568 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -0
- package/dist/lib/custom/custom-forms.module.d.ts +31 -31
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +37 -34
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +16 -17
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +11 -14
- package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js +3 -5
- package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js +5 -7
- package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js +7 -8
- package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +12 -13
- package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js +3 -5
- package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js +5 -7
- package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js +5 -7
- package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +19 -20
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js +15 -16
- package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Action/action.form.component.js +5 -5
- package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js +1 -1
- package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js +1 -1
- package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Conversation/conversation.form.component.js +5 -5
- package/dist/lib/generated/Entities/Conversation/conversation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js +4 -4
- package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/User/user.form.component.js +5 -5
- package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
- package/dist/public-api.d.ts +2 -3
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -16
- package/dist/public-api.js.map +1 -1
- package/package.json +13 -12
- package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.d.ts +0 -244
- package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.d.ts.map +0 -1
- package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.js +0 -1327
- package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.js.map +0 -1
- package/dist/lib/custom/ai-test-harness/agent-execution-node.component.d.ts +0 -19
- package/dist/lib/custom/ai-test-harness/agent-execution-node.component.d.ts.map +0 -1
- package/dist/lib/custom/ai-test-harness/agent-execution-node.component.js +0 -458
- package/dist/lib/custom/ai-test-harness/agent-execution-node.component.js.map +0 -1
- package/dist/lib/custom/ai-test-harness/ai-test-harness-dialog.component.d.ts +0 -78
- package/dist/lib/custom/ai-test-harness/ai-test-harness-dialog.component.d.ts.map +0 -1
- package/dist/lib/custom/ai-test-harness/ai-test-harness-dialog.component.js +0 -157
- package/dist/lib/custom/ai-test-harness/ai-test-harness-dialog.component.js.map +0 -1
- package/dist/lib/custom/ai-test-harness/ai-test-harness.component.d.ts +0 -598
- package/dist/lib/custom/ai-test-harness/ai-test-harness.component.d.ts.map +0 -1
- package/dist/lib/custom/ai-test-harness/ai-test-harness.component.js +0 -3204
- package/dist/lib/custom/ai-test-harness/ai-test-harness.component.js.map +0 -1
- package/dist/lib/custom/ai-test-harness/json-viewer-window.component.d.ts +0 -8
- package/dist/lib/custom/ai-test-harness/json-viewer-window.component.d.ts.map +0 -1
- package/dist/lib/custom/ai-test-harness/json-viewer-window.component.js +0 -57
- package/dist/lib/custom/ai-test-harness/json-viewer-window.component.js.map +0 -1
- package/dist/lib/custom/test-harness-dialog.service.d.ts +0 -111
- package/dist/lib/custom/test-harness-dialog.service.d.ts.map +0 -1
- package/dist/lib/custom/test-harness-dialog.service.js +0 -211
- package/dist/lib/custom/test-harness-dialog.service.js.map +0 -1
|
@@ -1,598 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, AfterViewChecked, ViewContainerRef, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
3
|
-
import { WindowService } from '@progress/kendo-angular-dialog';
|
|
4
|
-
import { AIAgentEntity, AIPromptEntity } from '@memberjunction/core-entities';
|
|
5
|
-
import { ChatMessage } from '@memberjunction/ai';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Supported modes for the test harness
|
|
9
|
-
*/
|
|
10
|
-
export type TestHarnessMode = 'agent' | 'prompt';
|
|
11
|
-
/**
|
|
12
|
-
* Result interface for AI agent execution operations.
|
|
13
|
-
* Contains comprehensive information about the execution outcome, timing, and data.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Represents a variable in the data context or template data for agent execution.
|
|
17
|
-
* Used to pass dynamic data to agents during testing and execution.
|
|
18
|
-
*/
|
|
19
|
-
export interface DataContextVariable {
|
|
20
|
-
/** Variable name used in agent prompts and templates */
|
|
21
|
-
name: string;
|
|
22
|
-
/** String representation of the variable value */
|
|
23
|
-
value: string;
|
|
24
|
-
/** Data type for proper conversion during execution */
|
|
25
|
-
type: 'string' | 'number' | 'boolean' | 'object';
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Enhanced chat message interface extending the base ChatMessage from @memberjunction/ai.
|
|
29
|
-
* Includes additional properties for streaming, timing, error handling, and content management.
|
|
30
|
-
*/
|
|
31
|
-
export interface ConversationMessage extends ChatMessage {
|
|
32
|
-
/** Unique identifier for this message */
|
|
33
|
-
id: string;
|
|
34
|
-
/** Timestamp when the message was created */
|
|
35
|
-
timestamp: Date;
|
|
36
|
-
/** Whether this message is currently being streamed */
|
|
37
|
-
isStreaming?: boolean;
|
|
38
|
-
/** Accumulated content during streaming (temporary) */
|
|
39
|
-
streamingContent?: string;
|
|
40
|
-
/** Total execution time for AI-generated messages */
|
|
41
|
-
executionTime?: number;
|
|
42
|
-
/** Associated agent run ID for tracking */
|
|
43
|
-
agentRunId?: string;
|
|
44
|
-
/** Error message if processing failed */
|
|
45
|
-
error?: string;
|
|
46
|
-
/** Original unprocessed content from the AI model */
|
|
47
|
-
rawContent?: string;
|
|
48
|
-
/** Whether to display raw content instead of processed content */
|
|
49
|
-
showRaw?: boolean;
|
|
50
|
-
/** Timestamp when streaming started (for elapsed time calculation) */
|
|
51
|
-
streamingStartTime?: number;
|
|
52
|
-
/** Current elapsed time during streaming */
|
|
53
|
-
elapsedTime?: number;
|
|
54
|
-
/** Whether JSON raw section is expanded in collapsible view */
|
|
55
|
-
showJsonRaw?: boolean;
|
|
56
|
-
/** Execution history data for this message (agent mode) */
|
|
57
|
-
executionData?: any;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Represents a saved conversation session with complete state information.
|
|
61
|
-
* Includes all messages, context data, and metadata for restoration.
|
|
62
|
-
*/
|
|
63
|
-
export interface SavedConversation {
|
|
64
|
-
/** Unique identifier for the saved conversation */
|
|
65
|
-
id: string;
|
|
66
|
-
/** User-provided name for the conversation */
|
|
67
|
-
name: string;
|
|
68
|
-
/** ID of the agent used in this conversation */
|
|
69
|
-
agentId: string;
|
|
70
|
-
/** Name of the agent for display purposes */
|
|
71
|
-
agentName: string;
|
|
72
|
-
/** Complete message history */
|
|
73
|
-
messages: ConversationMessage[];
|
|
74
|
-
/** Data context variables used during the conversation */
|
|
75
|
-
dataContext: Record<string, any>;
|
|
76
|
-
/** Template data variables used during the conversation (agent mode) */
|
|
77
|
-
templateData: Record<string, any>;
|
|
78
|
-
/** Template variables used during the conversation (prompt mode) */
|
|
79
|
-
templateVariables?: Record<string, any>;
|
|
80
|
-
/** Advanced parameters used during the conversation (prompt mode) */
|
|
81
|
-
advancedParams?: any;
|
|
82
|
-
/** Selected model ID (prompt mode) */
|
|
83
|
-
selectedModelId?: string;
|
|
84
|
-
/** Selected vendor ID (prompt mode) */
|
|
85
|
-
selectedVendorId?: string;
|
|
86
|
-
/** Skip validation setting (prompt mode) */
|
|
87
|
-
skipValidation?: boolean;
|
|
88
|
-
/** When the conversation was first created */
|
|
89
|
-
createdAt: Date;
|
|
90
|
-
/** When the conversation was last modified */
|
|
91
|
-
updatedAt: Date;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Comprehensive test harness component for AI Agent development and testing.
|
|
95
|
-
* Provides a full-featured chat interface with conversation management, data context configuration,
|
|
96
|
-
* template data management, streaming responses, conversation persistence, and import/export capabilities.
|
|
97
|
-
*
|
|
98
|
-
* ## Key Features:
|
|
99
|
-
* - **Interactive Chat**: Real-time conversation with AI agents
|
|
100
|
-
* - **Streaming Support**: Live streaming of agent responses with elapsed time tracking
|
|
101
|
-
* - **Data Context Management**: Configure variables passed to agent during execution
|
|
102
|
-
* - **Template Data Management**: Manage template variables for agent prompts
|
|
103
|
-
* - **Conversation Persistence**: Save/load conversations with full state restoration
|
|
104
|
-
* - **Import/Export**: JSON-based conversation backup and sharing
|
|
105
|
-
* - **Content Formatting**: Automatic detection and rendering of Markdown, JSON, and plain text
|
|
106
|
-
* - **Raw Content Toggle**: View both processed and raw AI responses
|
|
107
|
-
* - **Error Handling**: Comprehensive error display and user feedback
|
|
108
|
-
*
|
|
109
|
-
* ## Usage:
|
|
110
|
-
* ```html
|
|
111
|
-
* <mj-ai-agent-test-harness
|
|
112
|
-
* [aiAgent]="myAgent"
|
|
113
|
-
* [isVisible]="true"
|
|
114
|
-
* (visibilityChange)="onVisibilityChanged($event)">
|
|
115
|
-
* </mj-ai-agent-test-harness>
|
|
116
|
-
* ```
|
|
117
|
-
*
|
|
118
|
-
* @example
|
|
119
|
-
* ```typescript
|
|
120
|
-
* // Using with agent entity
|
|
121
|
-
* const agent = await metadata.GetEntityObject<AIAgentEntity>('AI Agents');
|
|
122
|
-
* await agent.Load('agent-id');
|
|
123
|
-
* this.testHarness.aiAgent = agent;
|
|
124
|
-
* this.testHarness.isVisible = true;
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
export declare class AITestHarnessComponent implements OnInit, OnDestroy, OnChanges, AfterViewChecked {
|
|
128
|
-
private sanitizer;
|
|
129
|
-
private windowService;
|
|
130
|
-
private viewContainerRef;
|
|
131
|
-
private cdr;
|
|
132
|
-
/**
|
|
133
|
-
* Creates a new AI Test Harness component instance.
|
|
134
|
-
* @param sanitizer - Angular DomSanitizer for safe HTML rendering of formatted content
|
|
135
|
-
* @param windowService - Kendo WindowService for creating modal windows
|
|
136
|
-
* @param viewContainerRef - Angular ViewContainerRef for window positioning
|
|
137
|
-
* @param cdr - Angular ChangeDetectorRef for managing change detection
|
|
138
|
-
*/
|
|
139
|
-
constructor(sanitizer: DomSanitizer, windowService: WindowService, viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef);
|
|
140
|
-
/** The mode of operation - either 'agent' or 'prompt' */
|
|
141
|
-
mode: TestHarnessMode;
|
|
142
|
-
/** The entity to test - either an AI Agent or AI Prompt */
|
|
143
|
-
entity: AIAgentEntity | AIPromptEntity | null;
|
|
144
|
-
/** @deprecated Use 'entity' instead. Kept for backward compatibility. */
|
|
145
|
-
get aiAgent(): AIAgentEntity | null;
|
|
146
|
-
set aiAgent(value: AIAgentEntity | null);
|
|
147
|
-
private _isVisible;
|
|
148
|
-
/**
|
|
149
|
-
* Controls the visibility of the test harness. When set to true, automatically resets the harness state.
|
|
150
|
-
* This property is typically controlled by parent components or dialog wrappers.
|
|
151
|
-
*/
|
|
152
|
-
get isVisible(): boolean;
|
|
153
|
-
set isVisible(value: boolean);
|
|
154
|
-
/** Event emitted when the visibility state changes, allowing parent components to react */
|
|
155
|
-
visibilityChange: EventEmitter<boolean>;
|
|
156
|
-
/** Reference to the scrollable messages container for auto-scrolling functionality */
|
|
157
|
-
private messagesContainer;
|
|
158
|
-
/** Reference to the hidden file input element for conversation import functionality */
|
|
159
|
-
private fileInput;
|
|
160
|
-
/** Reference to the message input textarea */
|
|
161
|
-
private messageInput;
|
|
162
|
-
/** Reference to the save dialog input */
|
|
163
|
-
private saveDialogInput?;
|
|
164
|
-
/** Complete array of all messages in the current conversation session */
|
|
165
|
-
conversationMessages: ConversationMessage[];
|
|
166
|
-
/** Current text input by the user (bound to textarea) */
|
|
167
|
-
currentUserMessage: string;
|
|
168
|
-
/** Whether an agent execution is currently in progress */
|
|
169
|
-
isExecuting: boolean;
|
|
170
|
-
/** Unified variables for agent execution (combines data context and template data) */
|
|
171
|
-
agentVariables: DataContextVariable[];
|
|
172
|
-
/** Variables for prompt template rendering */
|
|
173
|
-
templateVariables: DataContextVariable[];
|
|
174
|
-
/** Selected AI model for prompt execution */
|
|
175
|
-
selectedModelId: string;
|
|
176
|
-
/** Selected AI vendor for prompt execution */
|
|
177
|
-
selectedVendorId: string;
|
|
178
|
-
/** Available AI vendors for the selected model */
|
|
179
|
-
availableVendors: any[];
|
|
180
|
-
/** Default model for the prompt (cached for display) */
|
|
181
|
-
private defaultModelName;
|
|
182
|
-
/** Maximum tokens for prompt execution */
|
|
183
|
-
maxTokens: number | null;
|
|
184
|
-
/** Whether to skip validation when running prompts */
|
|
185
|
-
skipValidation: boolean;
|
|
186
|
-
/** Advanced LLM Parameters */
|
|
187
|
-
advancedParams: {
|
|
188
|
-
temperature: number | null;
|
|
189
|
-
topP: number | null;
|
|
190
|
-
topK: number | null;
|
|
191
|
-
minP: number | null;
|
|
192
|
-
frequencyPenalty: number | null;
|
|
193
|
-
presencePenalty: number | null;
|
|
194
|
-
seed: number | null;
|
|
195
|
-
stopSequences: string[];
|
|
196
|
-
includeLogProbs: boolean;
|
|
197
|
-
topLogProbs: number;
|
|
198
|
-
};
|
|
199
|
-
/** Raw stop sequences input for textarea */
|
|
200
|
-
stopSequencesText: string;
|
|
201
|
-
/** Whether advanced parameters panel is expanded */
|
|
202
|
-
advancedParamsExpanded: boolean;
|
|
203
|
-
/** Available AI models for prompt execution */
|
|
204
|
-
availableModels: any[];
|
|
205
|
-
/** Available response format options */
|
|
206
|
-
protected responseFormatOptions: {
|
|
207
|
-
text: string;
|
|
208
|
-
value: string;
|
|
209
|
-
}[];
|
|
210
|
-
/** Selected response format for prompt execution */
|
|
211
|
-
selectedResponseFormat: {
|
|
212
|
-
text: string;
|
|
213
|
-
value: string;
|
|
214
|
-
};
|
|
215
|
-
/** Whether the configuration sidebar is currently visible */
|
|
216
|
-
showSidebar: boolean;
|
|
217
|
-
/** Currently active tab in the sidebar */
|
|
218
|
-
activeTab: 'agentVariables' | 'executionMonitor' | 'templateVariables' | 'modelSettings' | 'savedConversations';
|
|
219
|
-
/** Array of saved conversation sessions loaded from localStorage */
|
|
220
|
-
savedConversations: SavedConversation[];
|
|
221
|
-
/** ID of the currently active/loaded conversation, if any */
|
|
222
|
-
currentConversationId: string | null;
|
|
223
|
-
/** Flag to control JSON dialog visibility */
|
|
224
|
-
showJsonDialog: boolean;
|
|
225
|
-
/** Current JSON content to display in the dialog */
|
|
226
|
-
currentJsonContent: string;
|
|
227
|
-
/** Reference to the JSON window when open */
|
|
228
|
-
private jsonWindowRef;
|
|
229
|
-
/** Mode for the execution monitor component */
|
|
230
|
-
executionMonitorMode: 'live' | 'historical';
|
|
231
|
-
/** Current execution data for the monitor */
|
|
232
|
-
currentExecutionData: any;
|
|
233
|
-
/** Agent conversation state tracking */
|
|
234
|
-
private agentConversationState;
|
|
235
|
-
private lastAgentReturnValue;
|
|
236
|
-
private subAgentHistory;
|
|
237
|
-
/** Whether to show the save conversation dialog */
|
|
238
|
-
showSaveDialog: boolean;
|
|
239
|
-
/** Name for the new conversation being saved */
|
|
240
|
-
newConversationName: string;
|
|
241
|
-
/** Temporary name for the dialog input to avoid binding conflicts */
|
|
242
|
-
tempConversationName: string;
|
|
243
|
-
/** Whether to show the load confirmation dialog */
|
|
244
|
-
showLoadConfirmDialog: boolean;
|
|
245
|
-
/** Conversation pending to be loaded */
|
|
246
|
-
private pendingLoadConversation;
|
|
247
|
-
/** Reference to the current message for JSON display */
|
|
248
|
-
private currentJsonMessage;
|
|
249
|
-
/** Subject for component destruction cleanup */
|
|
250
|
-
private destroy$;
|
|
251
|
-
/** Flag indicating that auto-scroll is needed on next view check */
|
|
252
|
-
private scrollNeeded;
|
|
253
|
-
/** Interval handle for elapsed time counter during streaming */
|
|
254
|
-
private elapsedTimeInterval;
|
|
255
|
-
/** MemberJunction metadata instance for entity operations */
|
|
256
|
-
private _metadata;
|
|
257
|
-
/** Track if input has been focused to prevent repeated focusing */
|
|
258
|
-
private _hasFocused;
|
|
259
|
-
/** Subscription to MJGlobal events for streaming updates */
|
|
260
|
-
private _mjGlobalEventSub;
|
|
261
|
-
/** Direct GraphQL subscription for agent execution streaming */
|
|
262
|
-
private _agentStreamSub;
|
|
263
|
-
/**
|
|
264
|
-
* Component initialization. Loads saved conversations, sets up event subscriptions,
|
|
265
|
-
* and initializes the harness to a clean state.
|
|
266
|
-
*/
|
|
267
|
-
ngOnInit(): void;
|
|
268
|
-
/**
|
|
269
|
-
* Responds to input property changes, particularly when entity is set/changed
|
|
270
|
-
*/
|
|
271
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
272
|
-
/**
|
|
273
|
-
* Component cleanup. Destroys subscriptions and clears any active intervals
|
|
274
|
-
* to prevent memory leaks.
|
|
275
|
-
*/
|
|
276
|
-
ngOnDestroy(): void;
|
|
277
|
-
/**
|
|
278
|
-
* Post-view check hook that handles auto-scrolling to the bottom of the message container
|
|
279
|
-
* when new content is added.
|
|
280
|
-
*/
|
|
281
|
-
ngAfterViewChecked(): void;
|
|
282
|
-
private subscribeToEvents;
|
|
283
|
-
/**
|
|
284
|
-
* Loads available AI models for prompt execution.
|
|
285
|
-
* Only called when the harness is in prompt mode.
|
|
286
|
-
*/
|
|
287
|
-
private loadAvailableModels;
|
|
288
|
-
/** Default model object for the prompt (cached for vendor lookup) */
|
|
289
|
-
private defaultModel;
|
|
290
|
-
/**
|
|
291
|
-
* Gets the default model name for a prompt based on its configuration
|
|
292
|
-
*/
|
|
293
|
-
private getDefaultModelName;
|
|
294
|
-
/**
|
|
295
|
-
* Loads the vendors for the default model
|
|
296
|
-
*/
|
|
297
|
-
private loadDefaultVendor;
|
|
298
|
-
/**
|
|
299
|
-
* Handles model selection change and loads available vendors for the selected model
|
|
300
|
-
*/
|
|
301
|
-
onModelSelectionChange(): void;
|
|
302
|
-
/**
|
|
303
|
-
* Loads available vendors for the selected model
|
|
304
|
-
*/
|
|
305
|
-
private loadVendorsForModel;
|
|
306
|
-
/**
|
|
307
|
-
* Loads default parameter values from the AI prompt entity
|
|
308
|
-
*/
|
|
309
|
-
private loadPromptDefaults;
|
|
310
|
-
/**
|
|
311
|
-
* Loads template parameters from the prompt's template and pre-populates
|
|
312
|
-
* the template variables with their default values
|
|
313
|
-
*/
|
|
314
|
-
private loadTemplateParameters;
|
|
315
|
-
/**
|
|
316
|
-
* Maps template parameter types to variable types
|
|
317
|
-
*/
|
|
318
|
-
private getVariableTypeFromParamType;
|
|
319
|
-
/**
|
|
320
|
-
* Resets all model settings to the prompt defaults
|
|
321
|
-
*/
|
|
322
|
-
resetToPromptDefaults(): void;
|
|
323
|
-
/**
|
|
324
|
-
* Resets the test harness to its initial state, clearing all conversations,
|
|
325
|
-
* variables, and UI state. Called automatically when the harness becomes visible.
|
|
326
|
-
*/
|
|
327
|
-
resetHarness(): void;
|
|
328
|
-
/**
|
|
329
|
-
* Starts a new conversation
|
|
330
|
-
*/
|
|
331
|
-
newConversation(): void;
|
|
332
|
-
/**
|
|
333
|
-
* Closes the test harness by setting visibility to false and emitting the change event.
|
|
334
|
-
* Used by dialog implementations and close buttons.
|
|
335
|
-
*/
|
|
336
|
-
close(): void;
|
|
337
|
-
/**
|
|
338
|
-
* Toggles the visibility of the configuration sidebar.
|
|
339
|
-
* Allows users to show/hide the data context and conversation management panels.
|
|
340
|
-
*/
|
|
341
|
-
toggleSidebar(): void;
|
|
342
|
-
/**
|
|
343
|
-
* Switches to the specified tab in the configuration sidebar.
|
|
344
|
-
* @param tab - The tab to activate
|
|
345
|
-
*/
|
|
346
|
-
selectTab(tab: 'agentVariables' | 'executionMonitor' | 'templateVariables' | 'modelSettings' | 'savedConversations'): void;
|
|
347
|
-
/**
|
|
348
|
-
* Shows the execution history for a specific message
|
|
349
|
-
* @param message - The message to show execution history for
|
|
350
|
-
*/
|
|
351
|
-
showMessageExecutionHistory(message: ConversationMessage): void;
|
|
352
|
-
/**
|
|
353
|
-
* Extract sub-agent nodes from execution tree
|
|
354
|
-
*/
|
|
355
|
-
private extractSubAgentNodes;
|
|
356
|
-
/**
|
|
357
|
-
* Sends the current user message to the AI agent and initiates execution.
|
|
358
|
-
* Handles message validation, conversation updates, UI state management, and agent execution.
|
|
359
|
-
* Automatically clears the input field and triggers auto-scroll after sending.
|
|
360
|
-
*
|
|
361
|
-
* @example
|
|
362
|
-
* ```typescript
|
|
363
|
-
* // Called when user presses Enter or clicks Send button
|
|
364
|
-
* await this.sendMessage();
|
|
365
|
-
* ```
|
|
366
|
-
*/
|
|
367
|
-
sendMessage(): Promise<void>;
|
|
368
|
-
private executeAgent;
|
|
369
|
-
private executePrompt;
|
|
370
|
-
private startTypingAnimation;
|
|
371
|
-
private buildDataContext;
|
|
372
|
-
private buildTemplateData;
|
|
373
|
-
private buildTemplateVariables;
|
|
374
|
-
private convertVariableValue;
|
|
375
|
-
/**
|
|
376
|
-
* Adds a new empty agent variable to the collection.
|
|
377
|
-
* Agent variables are passed to the agent during execution for dynamic content and template rendering.
|
|
378
|
-
*/
|
|
379
|
-
addAgentVariable(): void;
|
|
380
|
-
/**
|
|
381
|
-
* Removes an agent variable at the specified index.
|
|
382
|
-
* @param index - Zero-based index of the variable to remove
|
|
383
|
-
*/
|
|
384
|
-
removeAgentVariable(index: number): void;
|
|
385
|
-
/**
|
|
386
|
-
* Adds a new empty template variable to the collection (prompt mode only).
|
|
387
|
-
* Template variables are used for prompt template rendering.
|
|
388
|
-
*/
|
|
389
|
-
addTemplateVariable(): void;
|
|
390
|
-
/**
|
|
391
|
-
* Removes a template variable at the specified index (prompt mode only).
|
|
392
|
-
* @param index - Zero-based index of the variable to remove
|
|
393
|
-
*/
|
|
394
|
-
removeTemplateVariable(index: number): void;
|
|
395
|
-
/**
|
|
396
|
-
* Clears the current conversation after user confirmation.
|
|
397
|
-
* Resets both the message history and the current conversation ID.
|
|
398
|
-
*/
|
|
399
|
-
clearConversation(): void;
|
|
400
|
-
private scrollToBottom;
|
|
401
|
-
private generateMessageId;
|
|
402
|
-
private loadSavedConversations;
|
|
403
|
-
/**
|
|
404
|
-
* Gets the storage key for saved conversations based on entity type and ID
|
|
405
|
-
*/
|
|
406
|
-
private getStorageKey;
|
|
407
|
-
/**
|
|
408
|
-
* Saves the current conversation to localStorage with user-provided name.
|
|
409
|
-
* Handles both creating new conversations and updating existing ones.
|
|
410
|
-
* Automatically limits storage to 50 conversations to prevent excessive memory usage.
|
|
411
|
-
*
|
|
412
|
-
* @example
|
|
413
|
-
* ```typescript
|
|
414
|
-
* // User clicks save button
|
|
415
|
-
* this.saveConversation(); // Prompts for name and saves
|
|
416
|
-
* ```
|
|
417
|
-
*/
|
|
418
|
-
saveConversation(): void;
|
|
419
|
-
updateTempConversation(): void;
|
|
420
|
-
/**
|
|
421
|
-
* Handles the save dialog confirmation
|
|
422
|
-
*/
|
|
423
|
-
confirmSaveConversation(): void;
|
|
424
|
-
/**
|
|
425
|
-
* Cancels the save dialog
|
|
426
|
-
*/
|
|
427
|
-
cancelSaveDialog(): void;
|
|
428
|
-
/**
|
|
429
|
-
* Saves conversations to localStorage
|
|
430
|
-
*/
|
|
431
|
-
private saveConversationsToStorage;
|
|
432
|
-
private autoSaveConversation;
|
|
433
|
-
loadConversation(conversation: SavedConversation): void;
|
|
434
|
-
/**
|
|
435
|
-
* Confirms loading a conversation after dialog confirmation
|
|
436
|
-
*/
|
|
437
|
-
confirmLoadConversation(): void;
|
|
438
|
-
/**
|
|
439
|
-
* Cancels loading a conversation
|
|
440
|
-
*/
|
|
441
|
-
cancelLoadConversation(): void;
|
|
442
|
-
/**
|
|
443
|
-
* Actually loads the conversation
|
|
444
|
-
*/
|
|
445
|
-
private doLoadConversation;
|
|
446
|
-
deleteConversation(conversation: SavedConversation, event: Event): Promise<void>;
|
|
447
|
-
exportConversation(): void;
|
|
448
|
-
importConversation(): void;
|
|
449
|
-
onFileSelected(event: Event): void;
|
|
450
|
-
/**
|
|
451
|
-
* Handles keyboard input in the message textarea.
|
|
452
|
-
* Sends message on Enter (without Shift) and allows multi-line input with Shift+Enter.
|
|
453
|
-
* @param event - Keyboard event from the textarea
|
|
454
|
-
*/
|
|
455
|
-
handleKeyPress(event: KeyboardEvent): void;
|
|
456
|
-
/**
|
|
457
|
-
* Generates CSS class names for message display based on message properties.
|
|
458
|
-
* @param message - The conversation message to generate classes for
|
|
459
|
-
* @returns Space-separated CSS class string for styling
|
|
460
|
-
*/
|
|
461
|
-
getMessageClass(message: ConversationMessage): string;
|
|
462
|
-
/**
|
|
463
|
-
* Formats a Date object into a user-friendly time string.
|
|
464
|
-
* @param date - Date object to format
|
|
465
|
-
* @returns Formatted time string in HH:MM format
|
|
466
|
-
*/
|
|
467
|
-
formatTimestamp(date: Date): string;
|
|
468
|
-
/**
|
|
469
|
-
* Formats execution time from milliseconds into a human-readable string.
|
|
470
|
-
* Automatically selects appropriate units (minutes, seconds, or milliseconds).
|
|
471
|
-
* @param milliseconds - Execution time in milliseconds
|
|
472
|
-
* @returns Formatted time string (e.g., "2m 30.5s", "1.23s", "500ms")
|
|
473
|
-
*/
|
|
474
|
-
formatExecutionTime(milliseconds: number): string;
|
|
475
|
-
formatElapsedTime(milliseconds: number): string;
|
|
476
|
-
private startElapsedTimeCounter;
|
|
477
|
-
/**
|
|
478
|
-
* Shows the raw JSON dialog for a specific message
|
|
479
|
-
* @param message - The message to show raw JSON for
|
|
480
|
-
*/
|
|
481
|
-
showRawJsonDialog(message: ConversationMessage): void;
|
|
482
|
-
/**
|
|
483
|
-
* Creates a summary of the execution tree for easier viewing
|
|
484
|
-
* @param executionTree - The execution tree to summarize
|
|
485
|
-
* @returns A human-readable summary of the execution
|
|
486
|
-
*/
|
|
487
|
-
private summarizeExecutionTree;
|
|
488
|
-
/**
|
|
489
|
-
* Copies the message content to clipboard.
|
|
490
|
-
* @param message - The message to copy
|
|
491
|
-
*/
|
|
492
|
-
copyMessage(message: ConversationMessage): Promise<void>;
|
|
493
|
-
/**
|
|
494
|
-
* Focuses the message input textarea.
|
|
495
|
-
*/
|
|
496
|
-
private focusMessageInput;
|
|
497
|
-
/**
|
|
498
|
-
* Determines if the provided content is valid JSON.
|
|
499
|
-
* @param content - String content to test
|
|
500
|
-
* @returns True if content can be parsed as JSON, false otherwise
|
|
501
|
-
*/
|
|
502
|
-
isJsonContent(content: string): boolean;
|
|
503
|
-
/**
|
|
504
|
-
* Formats JSON content with proper indentation for display.
|
|
505
|
-
* @param content - JSON string to format
|
|
506
|
-
* @returns Formatted JSON string or original content if parsing fails
|
|
507
|
-
*/
|
|
508
|
-
formatJson(content: string): string;
|
|
509
|
-
/**
|
|
510
|
-
* Automatically detects the content type of a message for appropriate rendering.
|
|
511
|
-
* Uses pattern matching to identify JSON, Markdown, or plain text content.
|
|
512
|
-
* @param content - Content string to analyze
|
|
513
|
-
* @returns Detected content type ('markdown', 'json', or 'text')
|
|
514
|
-
*/
|
|
515
|
-
detectContentType(content: string): 'markdown' | 'json' | 'text';
|
|
516
|
-
renderMarkdown(content: string): SafeHtml;
|
|
517
|
-
getFormattedContent(message: ConversationMessage): SafeHtml;
|
|
518
|
-
/**
|
|
519
|
-
* Renders JSON content using an inline code editor component
|
|
520
|
-
*/
|
|
521
|
-
private renderJsonWithCodeEditor;
|
|
522
|
-
/**
|
|
523
|
-
* Escapes HTML content for use in attributes
|
|
524
|
-
*/
|
|
525
|
-
private escapeHtmlAttribute;
|
|
526
|
-
/**
|
|
527
|
-
* Renders JSON content with human-readable content prominently displayed
|
|
528
|
-
* and raw JSON in a collapsible section below with proper text wrapping.
|
|
529
|
-
*/
|
|
530
|
-
/**
|
|
531
|
-
* Gets a summary of the execution for tooltip display
|
|
532
|
-
* @param message - The message to get execution summary for
|
|
533
|
-
* @returns A brief summary of the execution steps
|
|
534
|
-
*/
|
|
535
|
-
getExecutionSummary(message: ConversationMessage): string;
|
|
536
|
-
/**
|
|
537
|
-
* Closes the JSON dialog
|
|
538
|
-
*/
|
|
539
|
-
closeJsonDialog(): void;
|
|
540
|
-
/**
|
|
541
|
-
* Copies the JSON content to clipboard
|
|
542
|
-
*/
|
|
543
|
-
copyJsonContent(): void;
|
|
544
|
-
/**
|
|
545
|
-
* Extracts human-readable content from JSON responses.
|
|
546
|
-
* Prioritizes userMessage field first, then checks other common fields.
|
|
547
|
-
* @param jsonStr - JSON string to extract content from
|
|
548
|
-
* @returns Extracted human-readable content or null if none found
|
|
549
|
-
*/
|
|
550
|
-
private extractHumanReadableContent;
|
|
551
|
-
/**
|
|
552
|
-
* Checks if a message contains JSON content that has extractable human-readable content.
|
|
553
|
-
* Used to determine if the raw toggle should be shown.
|
|
554
|
-
* @param message - The conversation message to check
|
|
555
|
-
* @returns True if the message has extractable content different from raw JSON
|
|
556
|
-
*/
|
|
557
|
-
hasExtractableContent(message: ConversationMessage): boolean;
|
|
558
|
-
/**
|
|
559
|
-
* Determines whether to show the raw toggle button for a message.
|
|
560
|
-
* Combines the logic for raw content availability and extractable content.
|
|
561
|
-
* @param message - The conversation message to check
|
|
562
|
-
* @returns True if the raw toggle should be displayed
|
|
563
|
-
*/
|
|
564
|
-
showRawToggle(message: ConversationMessage): boolean;
|
|
565
|
-
private escapeHtml;
|
|
566
|
-
/**
|
|
567
|
-
* Formats JSON for proper display with text wrapping instead of wide code blocks.
|
|
568
|
-
* Creates a structured, readable format that respects container width.
|
|
569
|
-
*/
|
|
570
|
-
private formatJsonForDisplay;
|
|
571
|
-
/**
|
|
572
|
-
* Creates formatted HTML for JSON display with proper indentation and wrapping.
|
|
573
|
-
*/
|
|
574
|
-
private createJsonDisplayHtml;
|
|
575
|
-
/**
|
|
576
|
-
* Type guard to check if entity is an AI Agent
|
|
577
|
-
*/
|
|
578
|
-
private isAgentEntity;
|
|
579
|
-
/**
|
|
580
|
-
* Type guard to check if entity is an AI Prompt
|
|
581
|
-
*/
|
|
582
|
-
private isPromptEntity;
|
|
583
|
-
/**
|
|
584
|
-
* Gets the display name of the current entity
|
|
585
|
-
*/
|
|
586
|
-
getEntityName(): string;
|
|
587
|
-
/**
|
|
588
|
-
* Updates stop sequences from the textarea input
|
|
589
|
-
*/
|
|
590
|
-
updateStopSequences(): void;
|
|
591
|
-
/**
|
|
592
|
-
* Toggles the advanced parameters expansion panel
|
|
593
|
-
*/
|
|
594
|
-
toggleAdvancedParams(): void;
|
|
595
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AITestHarnessComponent, never>;
|
|
596
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AITestHarnessComponent, "mj-ai-test-harness", never, { "mode": { "alias": "mode"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; "aiAgent": { "alias": "aiAgent"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; }, { "visibilityChange": "visibilityChange"; }, never, never, false, never>;
|
|
597
|
-
}
|
|
598
|
-
//# sourceMappingURL=ai-test-harness.component.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-test-harness.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-test-harness/ai-test-harness.component.ts"],"names":[],"mappings":"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"}
|