jsfe 0.1.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/LICENSE +5 -0
- package/README.md +783 -0
- package/dist/index.d.ts +605 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6013 -0
- package/package.json +50 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,605 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 InstantAIguru.com
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
5
|
+
and associated documentation files (the “Software”), to deal in the Software without restriction,
|
|
6
|
+
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
|
7
|
+
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all copies or
|
|
11
|
+
substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
14
|
+
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
15
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
16
|
+
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
17
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
18
|
+
**/
|
|
19
|
+
/**
|
|
20
|
+
* Pure JS parser for .tools file content (string or object)
|
|
21
|
+
* @param input JSON string or parsed object
|
|
22
|
+
* @returns tools array
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseTools(input: string | object): any[];
|
|
25
|
+
/**
|
|
26
|
+
* Pure JS parser for .flows file content (string or object)
|
|
27
|
+
* @param input JSON string or parsed object
|
|
28
|
+
* @returns flows array
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseFlows(input: string | object): any[];
|
|
31
|
+
/**
|
|
32
|
+
* Logger interface for use with WorkflowEngine.
|
|
33
|
+
*
|
|
34
|
+
* Any logger passed to initSession must implement these four methods.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* class MyLogger implements Logger {
|
|
38
|
+
* info(msg: string) { ... }
|
|
39
|
+
* warn(msg: string) { ... }
|
|
40
|
+
* error(msg: string) { ... }
|
|
41
|
+
* debug(msg: string) { ... }
|
|
42
|
+
* }
|
|
43
|
+
*/
|
|
44
|
+
export interface Logger {
|
|
45
|
+
info(message: string, ...args: unknown[]): void;
|
|
46
|
+
warn(message: string, ...args: unknown[]): void;
|
|
47
|
+
error(message: string, ...args: unknown[]): void;
|
|
48
|
+
debug(message: string, ...args: unknown[]): void;
|
|
49
|
+
}
|
|
50
|
+
export type MessageTemplates = Record<string, string>;
|
|
51
|
+
export type MessageRegistry = Record<string, MessageTemplates>;
|
|
52
|
+
export interface GuidanceConfig {
|
|
53
|
+
enabled: boolean;
|
|
54
|
+
mode: 'append' | 'prepend' | 'template' | 'none';
|
|
55
|
+
template?: string;
|
|
56
|
+
separator?: string;
|
|
57
|
+
contextSelector?: 'general' | 'payment' | 'auto';
|
|
58
|
+
guidanceMessages?: {
|
|
59
|
+
general?: string;
|
|
60
|
+
payment?: string;
|
|
61
|
+
} | MessageRegistry;
|
|
62
|
+
}
|
|
63
|
+
export declare const GUIDANCE_CONFIG_EXAMPLES: {
|
|
64
|
+
append: {
|
|
65
|
+
enabled: boolean;
|
|
66
|
+
mode: "append";
|
|
67
|
+
separator: string;
|
|
68
|
+
contextSelector: "auto";
|
|
69
|
+
};
|
|
70
|
+
elegant: {
|
|
71
|
+
enabled: boolean;
|
|
72
|
+
mode: "template";
|
|
73
|
+
template: string;
|
|
74
|
+
contextSelector: "auto";
|
|
75
|
+
};
|
|
76
|
+
integrated: {
|
|
77
|
+
enabled: boolean;
|
|
78
|
+
mode: "template";
|
|
79
|
+
template: string;
|
|
80
|
+
separator: string;
|
|
81
|
+
contextSelector: "auto";
|
|
82
|
+
guidanceMessages: {
|
|
83
|
+
general: string;
|
|
84
|
+
payment: string;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
compact: {
|
|
88
|
+
enabled: boolean;
|
|
89
|
+
mode: "template";
|
|
90
|
+
template: string;
|
|
91
|
+
contextSelector: "auto";
|
|
92
|
+
};
|
|
93
|
+
disabled: {
|
|
94
|
+
enabled: boolean;
|
|
95
|
+
mode: "none";
|
|
96
|
+
};
|
|
97
|
+
multilingual: {
|
|
98
|
+
enabled: boolean;
|
|
99
|
+
mode: "template";
|
|
100
|
+
template: string;
|
|
101
|
+
contextSelector: "auto";
|
|
102
|
+
guidanceMessages: {
|
|
103
|
+
en: {
|
|
104
|
+
general: string;
|
|
105
|
+
payment: string;
|
|
106
|
+
};
|
|
107
|
+
es: {
|
|
108
|
+
general: string;
|
|
109
|
+
payment: string;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
export declare function getSystemMessage(engine: Engine, messageId: string, context?: Record<string, unknown>): string;
|
|
115
|
+
export declare function getFlowPrompt(engine: Engine, flowName: string): string;
|
|
116
|
+
export type StepType = 'SAY' | 'SAY-GET' | 'SET' | 'CALL-TOOL' | 'FLOW' | 'SWITCH' | 'CASE';
|
|
117
|
+
export interface ContextEntry {
|
|
118
|
+
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
119
|
+
content: string | Record<string, unknown> | unknown;
|
|
120
|
+
timestamp: number;
|
|
121
|
+
stepId?: string;
|
|
122
|
+
toolName?: string;
|
|
123
|
+
metadata?: Record<string, unknown>;
|
|
124
|
+
}
|
|
125
|
+
export type AiCallbackFunction = ((systemInstruction: string, userMessage: string) => Promise<string>) | null;
|
|
126
|
+
export interface EngineSessionContext {
|
|
127
|
+
hostLogger: Logger;
|
|
128
|
+
sessionId: string;
|
|
129
|
+
userId: string;
|
|
130
|
+
createdAt: Date;
|
|
131
|
+
lastActivity: Date;
|
|
132
|
+
flowStacks: FlowFrame[][];
|
|
133
|
+
globalAccumulatedMessages: string[];
|
|
134
|
+
lastChatTurn: {
|
|
135
|
+
user?: ContextEntry;
|
|
136
|
+
assistant?: ContextEntry;
|
|
137
|
+
};
|
|
138
|
+
globalVariables: Record<string, unknown>;
|
|
139
|
+
}
|
|
140
|
+
export interface FlowStep {
|
|
141
|
+
id?: string;
|
|
142
|
+
type: StepType;
|
|
143
|
+
tool?: string;
|
|
144
|
+
args?: Record<string, unknown>;
|
|
145
|
+
variable?: string;
|
|
146
|
+
value?: string;
|
|
147
|
+
[key: string]: unknown;
|
|
148
|
+
name?: string;
|
|
149
|
+
nextFlow?: string;
|
|
150
|
+
callType?: 'call' | 'replace' | 'reboot';
|
|
151
|
+
branches?: Record<string, FlowStep>;
|
|
152
|
+
onFail?: FlowStep;
|
|
153
|
+
retryCount?: number;
|
|
154
|
+
maxRetries?: number;
|
|
155
|
+
retryDelay?: number;
|
|
156
|
+
retryStrategy?: 'immediate' | 'exponential' | 'linear' | 'manual';
|
|
157
|
+
retryOnConditions?: Array<{
|
|
158
|
+
errorPattern: string;
|
|
159
|
+
action: 'retry' | 'skip' | 'ask_user' | 'fallback';
|
|
160
|
+
fallbackStep?: FlowStep;
|
|
161
|
+
}>;
|
|
162
|
+
inputValidation?: {
|
|
163
|
+
patterns?: Array<{
|
|
164
|
+
field: string;
|
|
165
|
+
pattern: string;
|
|
166
|
+
message: string;
|
|
167
|
+
}>;
|
|
168
|
+
customValidator?: string;
|
|
169
|
+
};
|
|
170
|
+
retryBehavior?: {
|
|
171
|
+
preserveData?: boolean;
|
|
172
|
+
askUserBeforeRetry?: boolean;
|
|
173
|
+
escalateAfterMaxRetries?: FlowStep;
|
|
174
|
+
showProgressiveHelp?: boolean;
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
export interface TransactionStep {
|
|
178
|
+
stepId: string;
|
|
179
|
+
stepType: StepType;
|
|
180
|
+
tool?: string;
|
|
181
|
+
result?: unknown;
|
|
182
|
+
error?: string;
|
|
183
|
+
duration: number;
|
|
184
|
+
status: 'success' | 'error';
|
|
185
|
+
timestamp: Date;
|
|
186
|
+
retryCount?: number;
|
|
187
|
+
}
|
|
188
|
+
export interface TransactionObj {
|
|
189
|
+
id: string;
|
|
190
|
+
flowName: string;
|
|
191
|
+
initiator: string;
|
|
192
|
+
userId: string;
|
|
193
|
+
steps: TransactionStep[];
|
|
194
|
+
state: 'active' | 'completed' | 'failed' | 'rolled_back';
|
|
195
|
+
createdAt: Date;
|
|
196
|
+
completedAt?: Date;
|
|
197
|
+
failedAt?: Date;
|
|
198
|
+
rolledBackAt?: Date;
|
|
199
|
+
failureReason?: string;
|
|
200
|
+
metadata: Record<string, unknown>;
|
|
201
|
+
addStep: (step: FlowStep, result: unknown, duration: number, status?: 'success' | 'error') => void;
|
|
202
|
+
addError: (step: FlowStep, error: Error, duration: number) => void;
|
|
203
|
+
sanitizeForLog: (data: unknown) => unknown;
|
|
204
|
+
rollback: () => void;
|
|
205
|
+
complete: () => void;
|
|
206
|
+
fail: (reason: string) => void;
|
|
207
|
+
}
|
|
208
|
+
export interface FlowFrame {
|
|
209
|
+
flowName: string;
|
|
210
|
+
flowId: string;
|
|
211
|
+
flowVersion: string;
|
|
212
|
+
flowStepsStack: FlowStep[];
|
|
213
|
+
contextStack: ContextEntry[];
|
|
214
|
+
inputStack: unknown[];
|
|
215
|
+
variables: Record<string, unknown>;
|
|
216
|
+
transaction: TransactionObj;
|
|
217
|
+
userId: string;
|
|
218
|
+
startTime: number;
|
|
219
|
+
pendingVariable?: string;
|
|
220
|
+
lastSayMessage?: string;
|
|
221
|
+
pendingInterruption?: Record<string, unknown>;
|
|
222
|
+
accumulatedMessages?: string[];
|
|
223
|
+
parentTransaction?: string;
|
|
224
|
+
justResumed?: boolean;
|
|
225
|
+
}
|
|
226
|
+
export interface Engine {
|
|
227
|
+
flowStacks: FlowFrame[][];
|
|
228
|
+
flowsMenu?: FlowDefinition[];
|
|
229
|
+
toolsRegistry?: ToolDefinition[];
|
|
230
|
+
language?: string;
|
|
231
|
+
messageRegistry?: MessageRegistry;
|
|
232
|
+
guidanceConfig?: GuidanceConfig;
|
|
233
|
+
globalVariables?: Record<string, unknown>;
|
|
234
|
+
hasAccumulatedMessages: () => boolean;
|
|
235
|
+
getAndClearAccumulatedMessages?: (engineSessionContext?: EngineSessionContext) => string[];
|
|
236
|
+
addAccumulatedMessage?: (message: string, engineSessionContext?: EngineSessionContext) => void;
|
|
237
|
+
sessionId?: string;
|
|
238
|
+
APPROVED_FUNCTIONS?: ApprovedFunctions;
|
|
239
|
+
aiCallback: AiCallbackFunction;
|
|
240
|
+
lastChatTurn: {
|
|
241
|
+
user?: ContextEntry;
|
|
242
|
+
assistant?: ContextEntry;
|
|
243
|
+
};
|
|
244
|
+
initSession?: (hostLogger: Logger | null, userId: string, sessionId: string) => EngineSessionContext;
|
|
245
|
+
updateActivity?: (contextEntry: ContextEntry, engineSessionContext?: EngineSessionContext) => Promise<string | null>;
|
|
246
|
+
}
|
|
247
|
+
export interface FlowDefinition {
|
|
248
|
+
id: string;
|
|
249
|
+
name: string;
|
|
250
|
+
prompt?: string;
|
|
251
|
+
prompt_en?: string;
|
|
252
|
+
prompt_es?: string;
|
|
253
|
+
prompt_pt?: string;
|
|
254
|
+
prompt_fr?: string;
|
|
255
|
+
prompt_de?: string;
|
|
256
|
+
[key: `prompt_${string}`]: string | undefined;
|
|
257
|
+
description: string;
|
|
258
|
+
version: string;
|
|
259
|
+
steps: FlowStep[];
|
|
260
|
+
variables?: Record<string, {
|
|
261
|
+
type: string;
|
|
262
|
+
scope: string;
|
|
263
|
+
value?: unknown;
|
|
264
|
+
}>;
|
|
265
|
+
metadata?: {
|
|
266
|
+
riskLevel?: string;
|
|
267
|
+
category?: string;
|
|
268
|
+
[key: string]: unknown;
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
export type ArgsType = Record<string, unknown>;
|
|
272
|
+
export interface ToolDefinition {
|
|
273
|
+
id: string;
|
|
274
|
+
name: string;
|
|
275
|
+
description: string;
|
|
276
|
+
schema?: {
|
|
277
|
+
required?: string[];
|
|
278
|
+
properties?: Record<string, PropertySchema>;
|
|
279
|
+
};
|
|
280
|
+
parameters?: {
|
|
281
|
+
type: string;
|
|
282
|
+
properties?: Record<string, PropertySchema>;
|
|
283
|
+
required?: string[];
|
|
284
|
+
additionalProperties?: boolean;
|
|
285
|
+
};
|
|
286
|
+
implementation?: {
|
|
287
|
+
type: 'local' | 'http';
|
|
288
|
+
function?: string;
|
|
289
|
+
url?: string;
|
|
290
|
+
method?: HttpMethod;
|
|
291
|
+
contentType?: string;
|
|
292
|
+
pathParams?: string[];
|
|
293
|
+
queryParams?: string[];
|
|
294
|
+
headers?: Record<string, string>;
|
|
295
|
+
responseMapping?: MappingConfig;
|
|
296
|
+
timeout?: number;
|
|
297
|
+
retries?: number;
|
|
298
|
+
authentication?: AuthConfig;
|
|
299
|
+
};
|
|
300
|
+
security?: {
|
|
301
|
+
rateLimit?: {
|
|
302
|
+
requests: number;
|
|
303
|
+
window: number;
|
|
304
|
+
};
|
|
305
|
+
};
|
|
306
|
+
apiKey?: string;
|
|
307
|
+
riskLevel?: 'low' | 'medium' | 'high';
|
|
308
|
+
category?: string;
|
|
309
|
+
}
|
|
310
|
+
export interface PropertySchema {
|
|
311
|
+
type: 'string' | 'number' | 'boolean' | 'object' | 'array';
|
|
312
|
+
description?: string;
|
|
313
|
+
enum?: (string | number)[];
|
|
314
|
+
minimum?: number;
|
|
315
|
+
maximum?: number;
|
|
316
|
+
minLength?: number;
|
|
317
|
+
maxLength?: number;
|
|
318
|
+
pattern?: string;
|
|
319
|
+
items?: PropertySchema;
|
|
320
|
+
properties?: Record<string, PropertySchema>;
|
|
321
|
+
required?: string[];
|
|
322
|
+
default?: unknown;
|
|
323
|
+
}
|
|
324
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
|
325
|
+
export interface AuthConfig {
|
|
326
|
+
type: 'bearer' | 'basic' | 'apikey' | 'hmac';
|
|
327
|
+
token?: string;
|
|
328
|
+
username?: string;
|
|
329
|
+
password?: string;
|
|
330
|
+
key?: string;
|
|
331
|
+
secret?: string;
|
|
332
|
+
header?: string;
|
|
333
|
+
}
|
|
334
|
+
export interface ApprovedFunctions {
|
|
335
|
+
get(functionName: string): ((...args: unknown[]) => unknown) | undefined;
|
|
336
|
+
[functionName: string]: unknown;
|
|
337
|
+
}
|
|
338
|
+
export interface SystemContext {
|
|
339
|
+
[key: string]: string | number | boolean | null | undefined;
|
|
340
|
+
}
|
|
341
|
+
export interface ValidationResult {
|
|
342
|
+
isValid: boolean;
|
|
343
|
+
errors: string[];
|
|
344
|
+
warnings: string[];
|
|
345
|
+
}
|
|
346
|
+
export type JsonPathMappingConfig = {
|
|
347
|
+
type: 'jsonPath';
|
|
348
|
+
mappings: Record<string, {
|
|
349
|
+
path: string;
|
|
350
|
+
transform?: ValueTransformConfig;
|
|
351
|
+
fallback?: unknown;
|
|
352
|
+
}>;
|
|
353
|
+
strict?: boolean;
|
|
354
|
+
};
|
|
355
|
+
export type ObjectMappingConfig = {
|
|
356
|
+
type: 'object';
|
|
357
|
+
mappings: Record<string, string | PathConfig | MappingConfig | object>;
|
|
358
|
+
strict?: boolean;
|
|
359
|
+
};
|
|
360
|
+
export type ArrayMappingConfig = {
|
|
361
|
+
type: 'array';
|
|
362
|
+
source?: string;
|
|
363
|
+
filter?: ConditionConfig;
|
|
364
|
+
itemMapping?: MappingConfig;
|
|
365
|
+
sort?: {
|
|
366
|
+
field: string;
|
|
367
|
+
order?: 'asc' | 'desc';
|
|
368
|
+
};
|
|
369
|
+
offset?: number;
|
|
370
|
+
limit?: number;
|
|
371
|
+
fallback?: unknown[];
|
|
372
|
+
};
|
|
373
|
+
export type TemplateMappingConfig = {
|
|
374
|
+
type: 'template';
|
|
375
|
+
template: string;
|
|
376
|
+
dataPath?: string;
|
|
377
|
+
};
|
|
378
|
+
export type ConditionalMappingConfig = {
|
|
379
|
+
type: 'conditional';
|
|
380
|
+
conditions: Array<{
|
|
381
|
+
if: ConditionConfig;
|
|
382
|
+
then: MappingConfig;
|
|
383
|
+
}>;
|
|
384
|
+
else?: MappingConfig;
|
|
385
|
+
};
|
|
386
|
+
export type PathConfig = {
|
|
387
|
+
path: string;
|
|
388
|
+
transform?: ValueTransformConfig;
|
|
389
|
+
fallback?: unknown;
|
|
390
|
+
};
|
|
391
|
+
export interface ValueTransformConfig {
|
|
392
|
+
type: 'parseInt' | 'parseFloat' | 'toLowerCase' | 'toUpperCase' | 'trim' | 'replace' | 'concat' | 'regex' | 'date' | 'default' | 'conditional' | 'substring' | 'split' | 'join' | 'abs' | 'round' | 'floor' | 'ceil' | 'template' | 'sum' | 'average' | 'count' | 'min' | 'max' | 'multiply' | 'divide' | 'percentage' | 'add' | 'subtract' | 'currentYear' | 'yearDifference' | 'handlebars' | 'custom';
|
|
393
|
+
fallback?: unknown;
|
|
394
|
+
prefix?: string;
|
|
395
|
+
suffix?: string;
|
|
396
|
+
pattern?: string;
|
|
397
|
+
replacement?: string;
|
|
398
|
+
group?: number;
|
|
399
|
+
start?: number;
|
|
400
|
+
end?: number;
|
|
401
|
+
delimiter?: string;
|
|
402
|
+
index?: number;
|
|
403
|
+
template?: string;
|
|
404
|
+
calculation?: string;
|
|
405
|
+
condition?: ConditionConfig;
|
|
406
|
+
conditions?: Array<{
|
|
407
|
+
if: ConditionConfig;
|
|
408
|
+
then: unknown;
|
|
409
|
+
}>;
|
|
410
|
+
trueValue?: unknown;
|
|
411
|
+
falseValue?: unknown;
|
|
412
|
+
value?: unknown;
|
|
413
|
+
flags?: string;
|
|
414
|
+
else?: unknown;
|
|
415
|
+
field?: string;
|
|
416
|
+
precision?: number;
|
|
417
|
+
divisor?: number;
|
|
418
|
+
multiplier?: number;
|
|
419
|
+
addend?: number;
|
|
420
|
+
subtrahend?: number;
|
|
421
|
+
fromYear?: number;
|
|
422
|
+
dataPath?: string;
|
|
423
|
+
}
|
|
424
|
+
export interface ConditionConfig {
|
|
425
|
+
field: string;
|
|
426
|
+
operator: 'equals' | 'eq' | 'notEquals' | 'ne' | 'contains' | 'exists' | 'notExists' | 'greaterThan' | 'gt' | 'lessThan' | 'lt' | 'greaterThanOrEqual' | 'gte' | 'lessThanOrEqual' | 'lte' | 'startsWith' | 'endsWith' | 'matches' | 'in' | 'hasLength' | 'isArray' | 'isObject' | 'isString' | 'isNumber';
|
|
427
|
+
value?: unknown;
|
|
428
|
+
}
|
|
429
|
+
export type MappingConfig = JsonPathMappingConfig | ObjectMappingConfig | ArrayMappingConfig | TemplateMappingConfig | ConditionalMappingConfig | PathConfig | string | Record<string, unknown>;
|
|
430
|
+
/**
|
|
431
|
+
* Represents any object that can be traversed by path
|
|
432
|
+
* Object with string keys for safe path traversal
|
|
433
|
+
*/
|
|
434
|
+
export interface PathTraversableObject {
|
|
435
|
+
[key: string]: unknown;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Portable hash/HMAC utility for Node.js and browser/Cloudflare Worker environments.
|
|
439
|
+
* Supports SHA-256 and HMAC-SHA256.
|
|
440
|
+
* Usage: await portableHash('data', 'secret')
|
|
441
|
+
*/
|
|
442
|
+
export declare function portableHash(data: string | Uint8Array, secret?: string, algorithm?: string, encoding?: 'hex' | 'base64'): Promise<string>;
|
|
443
|
+
export declare class WorkflowEngine implements Engine {
|
|
444
|
+
flowsMenu: FlowDefinition[];
|
|
445
|
+
toolsRegistry: ToolDefinition[];
|
|
446
|
+
APPROVED_FUNCTIONS: ApprovedFunctions;
|
|
447
|
+
flowStacks: FlowFrame[][];
|
|
448
|
+
globalAccumulatedMessages: string[];
|
|
449
|
+
sessionId: string;
|
|
450
|
+
createdAt: Date;
|
|
451
|
+
lastActivity: Date;
|
|
452
|
+
language?: string;
|
|
453
|
+
messageRegistry?: MessageRegistry;
|
|
454
|
+
guidanceConfig?: GuidanceConfig;
|
|
455
|
+
globalVariables?: Record<string, unknown>;
|
|
456
|
+
aiCallback: AiCallbackFunction;
|
|
457
|
+
lastChatTurn: {
|
|
458
|
+
user?: ContextEntry;
|
|
459
|
+
assistant?: ContextEntry;
|
|
460
|
+
};
|
|
461
|
+
/**
|
|
462
|
+
* Initialize a new EngineSessionContext for a user session.
|
|
463
|
+
* If hostLogger is null, uses the global default logger.
|
|
464
|
+
* @param hostLogger - Logger instance for this session. Must implement info, warn, error, and debug methods.
|
|
465
|
+
* @param aiCallback - Callback function for AI operations
|
|
466
|
+
* @param flowsMenu - List of available flow definitions
|
|
467
|
+
* @param toolsRegistry - List of available tool definitions
|
|
468
|
+
* @param APPROVED_FUNCTIONS - Approved functions for the engine
|
|
469
|
+
* @param globalVariables - Optional global variables shared across all new flows
|
|
470
|
+
* @param validateOnInit - Whether to perform validation on initialization (default: true)
|
|
471
|
+
* @param language - Optional language code for localization
|
|
472
|
+
* @param messageRegistry - Optional message registry for custom messages
|
|
473
|
+
* @param guidanceConfig - Optional guidance configuration for AI interactions
|
|
474
|
+
*/
|
|
475
|
+
constructor(hostLogger: Logger, aiCallback: AiCallbackFunction, flowsMenu: FlowDefinition[], toolsRegistry: ToolDefinition[], APPROVED_FUNCTIONS: ApprovedFunctions, globalVariables?: Record<string, unknown>, // Optional global variables shared across all new flows
|
|
476
|
+
validateOnInit?: boolean, language?: string, messageRegistry?: MessageRegistry, guidanceConfig?: GuidanceConfig);
|
|
477
|
+
/**
|
|
478
|
+
* Initialize a new session context for a user session.
|
|
479
|
+
*
|
|
480
|
+
* @param hostLogger - Logger instance for this session. Must implement info, warn, error, and debug methods.
|
|
481
|
+
* @param userId - User identifier for this session
|
|
482
|
+
* @param sessionId - Unique identifier for the session
|
|
483
|
+
* @returns EngineSessionContext object that should be persisted by the host
|
|
484
|
+
* @throws Error if logger does not implement all required methods
|
|
485
|
+
*
|
|
486
|
+
* @example
|
|
487
|
+
* const engine = new WorkflowEngine(...);
|
|
488
|
+
* const session = engine.initSession(yourLogger, 'user-123', 'session-456');
|
|
489
|
+
*/
|
|
490
|
+
initSession(hostLogger: Logger | null, userId: string, sessionId: string): EngineSessionContext;
|
|
491
|
+
updateActivity(contextEntry: ContextEntry, engineSessionContext?: EngineSessionContext): Promise<string | null>;
|
|
492
|
+
addAccumulatedMessage(message: string, engineSessionContext?: EngineSessionContext): void;
|
|
493
|
+
getAndClearAccumulatedMessages(engineSessionContext?: EngineSessionContext): string[];
|
|
494
|
+
hasAccumulatedMessages(): boolean;
|
|
495
|
+
initializeFlowStacks(): void;
|
|
496
|
+
getCurrentStack(): FlowFrame[];
|
|
497
|
+
getCurrentStackLength(): number;
|
|
498
|
+
getCurrentFlowFrame(): FlowFrame;
|
|
499
|
+
createNewStack(): void;
|
|
500
|
+
pushToCurrentStack(flowFrame: FlowFrame): void;
|
|
501
|
+
popFromCurrentStack(): FlowFrame | undefined;
|
|
502
|
+
getFlowForInput(input: string): Promise<FlowDefinition | null>;
|
|
503
|
+
/**
|
|
504
|
+
* Performs comprehensive validation of all flows during engine initialization
|
|
505
|
+
* This catches configuration errors early and provides immediate feedback
|
|
506
|
+
*/
|
|
507
|
+
performInitializationValidation(): void;
|
|
508
|
+
/**
|
|
509
|
+
* Validates a single flow and all its dependencies recursively
|
|
510
|
+
* @param flowName - Name of the flow to validate
|
|
511
|
+
* @param options - Validation options
|
|
512
|
+
* @returns Validation result with errors, warnings, and flow graph
|
|
513
|
+
*/
|
|
514
|
+
validateFlow(flowName: string, options?: any): any;
|
|
515
|
+
/**
|
|
516
|
+
* Recursively validates a flow and its sub-flows
|
|
517
|
+
*/
|
|
518
|
+
private _validateFlowRecursive;
|
|
519
|
+
/**
|
|
520
|
+
* Validates flow metadata and basic structure
|
|
521
|
+
*/
|
|
522
|
+
private _validateFlowMetadata;
|
|
523
|
+
/**
|
|
524
|
+
* Validates flow variable definitions
|
|
525
|
+
*/
|
|
526
|
+
private _validateFlowVariables;
|
|
527
|
+
/**
|
|
528
|
+
* Validates a single step within a flow
|
|
529
|
+
*/
|
|
530
|
+
private _validateFlowStep;
|
|
531
|
+
/**
|
|
532
|
+
* Validates SAY and SAY-GET steps
|
|
533
|
+
*/
|
|
534
|
+
private _validateSayStep;
|
|
535
|
+
/**
|
|
536
|
+
* Validates SET steps
|
|
537
|
+
*/
|
|
538
|
+
private _validateSetStep;
|
|
539
|
+
/**
|
|
540
|
+
* Validates SWITCH steps
|
|
541
|
+
*/
|
|
542
|
+
private _validateSwitchStep;
|
|
543
|
+
/**
|
|
544
|
+
* Validates CASE steps
|
|
545
|
+
*/
|
|
546
|
+
private _validateCaseStep;
|
|
547
|
+
/**
|
|
548
|
+
* Validates CALL-TOOL steps
|
|
549
|
+
*/
|
|
550
|
+
private _validateCallToolStep;
|
|
551
|
+
/**
|
|
552
|
+
* Validates FLOW steps (sub-flow calls)
|
|
553
|
+
*/
|
|
554
|
+
private _validateSubFlowStep;
|
|
555
|
+
/**
|
|
556
|
+
* Validates onFail handlers
|
|
557
|
+
*/
|
|
558
|
+
private _validateOnFailHandler;
|
|
559
|
+
/**
|
|
560
|
+
* Checks for circular references in the flow call graph
|
|
561
|
+
*/
|
|
562
|
+
private _checkCircularReferences;
|
|
563
|
+
/**
|
|
564
|
+
* Validates all flows in the flowsMenu
|
|
565
|
+
* @param options - Validation options
|
|
566
|
+
* @returns Summary of validation results
|
|
567
|
+
*/
|
|
568
|
+
validateAllFlows(options?: any): any;
|
|
569
|
+
/**
|
|
570
|
+
* Gets the current variable scope available at a specific step
|
|
571
|
+
* This includes variables defined in flow definition + variables created by previous steps
|
|
572
|
+
*/
|
|
573
|
+
private _getCurrentStepScope;
|
|
574
|
+
/**
|
|
575
|
+
* Updates the variable scope after a step executes
|
|
576
|
+
* This tracks what variables a step creates for subsequent validation
|
|
577
|
+
*/
|
|
578
|
+
private _updateScopeAfterStep;
|
|
579
|
+
/**
|
|
580
|
+
* Determines what variables a step creates/defines
|
|
581
|
+
*/
|
|
582
|
+
private _addStepVariablesToScope;
|
|
583
|
+
/**
|
|
584
|
+
* Validates tool arguments against tool schema
|
|
585
|
+
*/
|
|
586
|
+
private _validateToolArguments;
|
|
587
|
+
/**
|
|
588
|
+
* Validates variable references in arguments, values, etc.
|
|
589
|
+
*/
|
|
590
|
+
private _validateVariableReferences;
|
|
591
|
+
/**
|
|
592
|
+
* Validates response mapping configurations
|
|
593
|
+
*/
|
|
594
|
+
private _validateResponseMapping;
|
|
595
|
+
/**
|
|
596
|
+
* Validates argument type against schema
|
|
597
|
+
*/
|
|
598
|
+
private _validateArgumentType;
|
|
599
|
+
private _validateJsonPathMapping;
|
|
600
|
+
private _validateObjectMapping;
|
|
601
|
+
private _validateArrayMapping;
|
|
602
|
+
private _validateTemplateMapping;
|
|
603
|
+
private _validateConditionalMapping;
|
|
604
|
+
}
|
|
605
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|