@falai/agent 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/README.md +516 -0
- package/dist/constants/index.d.ts +5 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +5 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/core/Agent.d.ts +98 -0
- package/dist/core/Agent.d.ts.map +1 -0
- package/dist/core/Agent.js +248 -0
- package/dist/core/Agent.js.map +1 -0
- package/dist/core/DomainRegistry.d.ts +26 -0
- package/dist/core/DomainRegistry.d.ts.map +1 -0
- package/dist/core/DomainRegistry.js +41 -0
- package/dist/core/DomainRegistry.js.map +1 -0
- package/dist/core/Events.d.ts +19 -0
- package/dist/core/Events.d.ts.map +1 -0
- package/dist/core/Events.js +79 -0
- package/dist/core/Events.js.map +1 -0
- package/dist/core/Observation.d.ts +24 -0
- package/dist/core/Observation.d.ts.map +1 -0
- package/dist/core/Observation.js +35 -0
- package/dist/core/Observation.js.map +1 -0
- package/dist/core/PromptBuilder.d.ts +121 -0
- package/dist/core/PromptBuilder.d.ts.map +1 -0
- package/dist/core/PromptBuilder.js +339 -0
- package/dist/core/PromptBuilder.js.map +1 -0
- package/dist/core/Route.d.ts +46 -0
- package/dist/core/Route.d.ts.map +1 -0
- package/dist/core/Route.js +113 -0
- package/dist/core/Route.js.map +1 -0
- package/dist/core/State.d.ts +50 -0
- package/dist/core/State.d.ts.map +1 -0
- package/dist/core/State.js +110 -0
- package/dist/core/State.js.map +1 -0
- package/dist/core/Tool.d.ts +31 -0
- package/dist/core/Tool.d.ts.map +1 -0
- package/dist/core/Tool.js +33 -0
- package/dist/core/Tool.js.map +1 -0
- package/dist/core/Transition.d.ts +32 -0
- package/dist/core/Transition.d.ts.map +1 -0
- package/dist/core/Transition.js +59 -0
- package/dist/core/Transition.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/GeminiProvider.d.ts +40 -0
- package/dist/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/providers/GeminiProvider.js +126 -0
- package/dist/providers/GeminiProvider.js.map +1 -0
- package/dist/providers/OpenAIProvider.d.ts +42 -0
- package/dist/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/providers/OpenAIProvider.js +164 -0
- package/dist/providers/OpenAIProvider.js.map +1 -0
- package/dist/providers/OpenRouterProvider.d.ts +46 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/providers/OpenRouterProvider.js +171 -0
- package/dist/providers/OpenRouterProvider.js.map +1 -0
- package/dist/types/agent.d.ts +105 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +18 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/ai.d.ts +78 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/ai.js +5 -0
- package/dist/types/ai.js.map +1 -0
- package/dist/types/history.d.ts +112 -0
- package/dist/types/history.d.ts.map +1 -0
- package/dist/types/history.js +34 -0
- package/dist/types/history.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/observation.d.ts +25 -0
- package/dist/types/observation.d.ts.map +1 -0
- package/dist/types/observation.js +5 -0
- package/dist/types/observation.js.map +1 -0
- package/dist/types/prompt.d.ts +46 -0
- package/dist/types/prompt.d.ts.map +1 -0
- package/dist/types/prompt.js +16 -0
- package/dist/types/prompt.js.map +1 -0
- package/dist/types/route.d.ts +59 -0
- package/dist/types/route.d.ts.map +1 -0
- package/dist/types/route.js +5 -0
- package/dist/types/route.js.map +1 -0
- package/dist/types/tool.d.ts +46 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +5 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/retry.d.ts +13 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +70 -0
- package/dist/utils/retry.js.map +1 -0
- package/docs/API_REFERENCE.md +517 -0
- package/docs/CONSTRUCTOR_OPTIONS.md +256 -0
- package/docs/CONTRIBUTING.md +481 -0
- package/docs/GETTING_STARTED.md +328 -0
- package/docs/PROVIDERS.md +472 -0
- package/docs/PUBLISHING.md +174 -0
- package/docs/README.md +68 -0
- package/docs/STRUCTURE.md +32 -0
- package/examples/declarative-agent.ts +217 -0
- package/examples/healthcare-agent.ts +283 -0
- package/examples/openai-agent.ts +167 -0
- package/examples/travel-agent.ts +342 -0
- package/package.json +73 -0
- package/src/constants/index.ts +5 -0
- package/src/core/Agent.ts +307 -0
- package/src/core/DomainRegistry.ts +50 -0
- package/src/core/Events.ts +101 -0
- package/src/core/Observation.ts +46 -0
- package/src/core/PromptBuilder.ts +511 -0
- package/src/core/Route.ts +136 -0
- package/src/core/State.ts +153 -0
- package/src/core/Tool.ts +54 -0
- package/src/core/Transition.ts +66 -0
- package/src/index.ts +83 -0
- package/src/providers/GeminiProvider.ts +220 -0
- package/src/providers/OpenAIProvider.ts +272 -0
- package/src/providers/OpenRouterProvider.ts +282 -0
- package/src/types/agent.ts +112 -0
- package/src/types/ai.ts +85 -0
- package/src/types/history.ts +125 -0
- package/src/types/index.ts +56 -0
- package/src/types/observation.ts +27 -0
- package/src/types/prompt.ts +49 -0
- package/src/types/route.ts +68 -0
- package/src/types/tool.ts +53 -0
- package/src/utils/retry.ts +96 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Agent implementation
|
|
3
|
+
*/
|
|
4
|
+
import { Route } from "@/core/Route";
|
|
5
|
+
import { DomainRegistry } from "@/core/DomainRegistry";
|
|
6
|
+
import { PromptBuilder } from "@/core/PromptBuilder";
|
|
7
|
+
import { Observation } from "@/core/Observation";
|
|
8
|
+
/**
|
|
9
|
+
* Main Agent class with generic context support
|
|
10
|
+
*/
|
|
11
|
+
export class Agent {
|
|
12
|
+
options;
|
|
13
|
+
terms = [];
|
|
14
|
+
guidelines = [];
|
|
15
|
+
capabilities = [];
|
|
16
|
+
routes = [];
|
|
17
|
+
observations = [];
|
|
18
|
+
domainRegistry = new DomainRegistry();
|
|
19
|
+
/**
|
|
20
|
+
* Dynamic domain property - populated via addDomain
|
|
21
|
+
*/
|
|
22
|
+
domain = {};
|
|
23
|
+
constructor(options) {
|
|
24
|
+
this.options = options;
|
|
25
|
+
// Initialize with default values
|
|
26
|
+
if (!this.options.maxEngineIterations) {
|
|
27
|
+
this.options.maxEngineIterations = 1;
|
|
28
|
+
}
|
|
29
|
+
// Initialize from options
|
|
30
|
+
if (options.terms) {
|
|
31
|
+
this.terms = [...options.terms];
|
|
32
|
+
}
|
|
33
|
+
if (options.guidelines) {
|
|
34
|
+
options.guidelines.forEach((guideline) => {
|
|
35
|
+
this.createGuideline(guideline);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (options.capabilities) {
|
|
39
|
+
options.capabilities.forEach((capability) => {
|
|
40
|
+
this.createCapability(capability);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (options.routes) {
|
|
44
|
+
options.routes.forEach((routeOptions) => {
|
|
45
|
+
this.createRoute(routeOptions);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (options.observations) {
|
|
49
|
+
options.observations.forEach((obsOptions) => {
|
|
50
|
+
const obs = this.createObservation(obsOptions.description);
|
|
51
|
+
// If route refs were provided, resolve and disambiguate
|
|
52
|
+
if (obsOptions.routeRefs && obsOptions.routeRefs.length > 0) {
|
|
53
|
+
const resolvedRoutes = obsOptions.routeRefs
|
|
54
|
+
.map((ref) => {
|
|
55
|
+
// Try to find route by ID or title
|
|
56
|
+
return this.routes.find((r) => r.id === ref || r.title === ref);
|
|
57
|
+
})
|
|
58
|
+
.filter((r) => r !== undefined);
|
|
59
|
+
if (resolvedRoutes.length > 0) {
|
|
60
|
+
obs.disambiguate(resolvedRoutes);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get agent name
|
|
68
|
+
*/
|
|
69
|
+
get name() {
|
|
70
|
+
return this.options.name;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get agent description
|
|
74
|
+
*/
|
|
75
|
+
get description() {
|
|
76
|
+
return this.options.description;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get agent goal
|
|
80
|
+
*/
|
|
81
|
+
get goal() {
|
|
82
|
+
return this.options.goal;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Create a new route (journey)
|
|
86
|
+
*/
|
|
87
|
+
createRoute(options) {
|
|
88
|
+
const route = new Route(options);
|
|
89
|
+
this.routes.push(route);
|
|
90
|
+
return route;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Create a domain term for the glossary
|
|
94
|
+
*/
|
|
95
|
+
createTerm(term) {
|
|
96
|
+
this.terms.push(term);
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create a behavioral guideline
|
|
101
|
+
*/
|
|
102
|
+
createGuideline(guideline) {
|
|
103
|
+
const guidelineWithId = {
|
|
104
|
+
...guideline,
|
|
105
|
+
id: guideline.id || `guideline_${this.guidelines.length}`,
|
|
106
|
+
enabled: guideline.enabled !== false, // Default to true
|
|
107
|
+
};
|
|
108
|
+
this.guidelines.push(guidelineWithId);
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Add a capability
|
|
113
|
+
*/
|
|
114
|
+
createCapability(capability) {
|
|
115
|
+
const capabilityWithId = {
|
|
116
|
+
...capability,
|
|
117
|
+
id: capability.id || `capability_${this.capabilities.length}`,
|
|
118
|
+
};
|
|
119
|
+
this.capabilities.push(capabilityWithId);
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Create an observation for disambiguation
|
|
124
|
+
*/
|
|
125
|
+
createObservation(description) {
|
|
126
|
+
const observation = new Observation({ description });
|
|
127
|
+
this.observations.push(observation);
|
|
128
|
+
return observation;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Add a domain with its tools/methods
|
|
132
|
+
*/
|
|
133
|
+
addDomain(name, domainObject) {
|
|
134
|
+
this.domainRegistry.register(name, domainObject);
|
|
135
|
+
// Attach to the domain property for easy access
|
|
136
|
+
this.domain[name] = domainObject;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Generate a response based on history and context
|
|
140
|
+
*/
|
|
141
|
+
async respond(params) {
|
|
142
|
+
const { history, contextOverride, signal } = params;
|
|
143
|
+
// Merge context
|
|
144
|
+
const effectiveContext = {
|
|
145
|
+
...this.options.context,
|
|
146
|
+
...contextOverride,
|
|
147
|
+
};
|
|
148
|
+
// Build prompt
|
|
149
|
+
const promptBuilder = new PromptBuilder();
|
|
150
|
+
// Add agent identity
|
|
151
|
+
if (this.options.description) {
|
|
152
|
+
promptBuilder.addAgentIdentity({
|
|
153
|
+
name: this.options.name,
|
|
154
|
+
description: this.options.description,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
// Add interaction history
|
|
158
|
+
promptBuilder.addInteractionHistoryForMessageGeneration(history);
|
|
159
|
+
// Add glossary
|
|
160
|
+
if (this.terms.length > 0) {
|
|
161
|
+
promptBuilder.addGlossary(this.terms);
|
|
162
|
+
}
|
|
163
|
+
// Add guidelines (convert to GuidelineMatch format, filter enabled only)
|
|
164
|
+
const enabledGuidelines = this.guidelines.filter((g) => g.enabled !== false);
|
|
165
|
+
if (enabledGuidelines.length > 0) {
|
|
166
|
+
const guidelineMatches = enabledGuidelines.map((g) => ({
|
|
167
|
+
guideline: g,
|
|
168
|
+
}));
|
|
169
|
+
promptBuilder.addGuidelinesForMessageGeneration(guidelineMatches);
|
|
170
|
+
}
|
|
171
|
+
// Add capabilities
|
|
172
|
+
if (this.capabilities.length > 0) {
|
|
173
|
+
promptBuilder.addCapabilitiesForMessageGeneration(this.capabilities);
|
|
174
|
+
}
|
|
175
|
+
// Add observations
|
|
176
|
+
if (this.observations.length > 0) {
|
|
177
|
+
const observationsWithRoutes = this.observations
|
|
178
|
+
.map((obs) => ({
|
|
179
|
+
description: obs.description,
|
|
180
|
+
routes: obs.getRoutes().map((routeRef) => {
|
|
181
|
+
const route = this.routes.find((r) => r.id === routeRef.id);
|
|
182
|
+
return { title: route?.title || routeRef.id };
|
|
183
|
+
}),
|
|
184
|
+
}))
|
|
185
|
+
.filter((obs) => obs.routes.length > 0);
|
|
186
|
+
if (observationsWithRoutes.length > 0) {
|
|
187
|
+
promptBuilder.addObservations(observationsWithRoutes);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// Add active routes
|
|
191
|
+
if (this.routes.length > 0) {
|
|
192
|
+
promptBuilder.addActiveRoutes(this.routes.map((r) => ({
|
|
193
|
+
title: r.title,
|
|
194
|
+
description: r.description,
|
|
195
|
+
conditions: r.conditions,
|
|
196
|
+
})));
|
|
197
|
+
}
|
|
198
|
+
// Build final prompt
|
|
199
|
+
const prompt = promptBuilder.build();
|
|
200
|
+
// Generate message using AI provider
|
|
201
|
+
const result = await this.options.ai.generateMessage({
|
|
202
|
+
prompt,
|
|
203
|
+
history,
|
|
204
|
+
context: effectiveContext,
|
|
205
|
+
signal,
|
|
206
|
+
});
|
|
207
|
+
return {
|
|
208
|
+
message: result.message,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Get all routes
|
|
213
|
+
*/
|
|
214
|
+
getRoutes() {
|
|
215
|
+
return [...this.routes];
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get all terms
|
|
219
|
+
*/
|
|
220
|
+
getTerms() {
|
|
221
|
+
return [...this.terms];
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get all guidelines
|
|
225
|
+
*/
|
|
226
|
+
getGuidelines() {
|
|
227
|
+
return [...this.guidelines];
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get all capabilities
|
|
231
|
+
*/
|
|
232
|
+
getCapabilities() {
|
|
233
|
+
return [...this.capabilities];
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Get all observations
|
|
237
|
+
*/
|
|
238
|
+
getObservations() {
|
|
239
|
+
return [...this.observations];
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Get the domain registry
|
|
243
|
+
*/
|
|
244
|
+
getDomainRegistry() {
|
|
245
|
+
return this.domainRegistry;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=Agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/core/Agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain registry for organizing agent capabilities by domain
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Registry that holds domain-specific tools and methods
|
|
6
|
+
*/
|
|
7
|
+
export declare class DomainRegistry {
|
|
8
|
+
private domains;
|
|
9
|
+
/**
|
|
10
|
+
* Register a new domain with its methods/tools
|
|
11
|
+
*/
|
|
12
|
+
register<TDomain extends Record<string, unknown>>(name: string, domain: TDomain): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get a registered domain
|
|
15
|
+
*/
|
|
16
|
+
get<TDomain extends Record<string, unknown>>(name: string): TDomain | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Check if a domain is registered
|
|
19
|
+
*/
|
|
20
|
+
has(name: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Get all registered domains as a single object
|
|
23
|
+
*/
|
|
24
|
+
all(): Record<string, Record<string, unknown>>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=DomainRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DomainRegistry.d.ts","sourceRoot":"","sources":["../../src/core/DomainRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAmD;IAElE;;OAEG;IACH,QAAQ,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,GACd,IAAI;IAOP;;OAEG;IACH,GAAG,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,IAAI,EAAE,MAAM,GACX,OAAO,GAAG,SAAS;IAItB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAO/C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain registry for organizing agent capabilities by domain
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Registry that holds domain-specific tools and methods
|
|
6
|
+
*/
|
|
7
|
+
export class DomainRegistry {
|
|
8
|
+
domains = new Map();
|
|
9
|
+
/**
|
|
10
|
+
* Register a new domain with its methods/tools
|
|
11
|
+
*/
|
|
12
|
+
register(name, domain) {
|
|
13
|
+
if (this.domains.has(name)) {
|
|
14
|
+
throw new Error(`Domain "${name}" is already registered`);
|
|
15
|
+
}
|
|
16
|
+
this.domains.set(name, domain);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get a registered domain
|
|
20
|
+
*/
|
|
21
|
+
get(name) {
|
|
22
|
+
return this.domains.get(name);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Check if a domain is registered
|
|
26
|
+
*/
|
|
27
|
+
has(name) {
|
|
28
|
+
return this.domains.has(name);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get all registered domains as a single object
|
|
32
|
+
*/
|
|
33
|
+
all() {
|
|
34
|
+
const result = {};
|
|
35
|
+
for (const [name, domain] of this.domains) {
|
|
36
|
+
result[name] = domain;
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=DomainRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DomainRegistry.js","sourceRoot":"","sources":["../../src/core/DomainRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,OAAO,GAAyC,IAAI,GAAG,EAAE,CAAC;IAElE;;OAEG;IACH,QAAQ,CACN,IAAY,EACZ,MAAe;QAEf,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,yBAAyB,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG,CACD,IAAY;QAEZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAwB,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,GAAG;QACD,MAAM,MAAM,GAA4C,EAAE,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACxB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event utilities and helpers
|
|
3
|
+
*/
|
|
4
|
+
import type { Event, EmittedEvent, MessageEventData, ToolEventData, ToolCall } from "@/types/history";
|
|
5
|
+
import { EventSource } from "@/types/history";
|
|
6
|
+
/**
|
|
7
|
+
* Adapt an event for inclusion in prompts
|
|
8
|
+
* Transforms event data into a serializable format
|
|
9
|
+
*/
|
|
10
|
+
export declare function adaptEvent(e: Event | EmittedEvent): string;
|
|
11
|
+
/**
|
|
12
|
+
* Create a message event
|
|
13
|
+
*/
|
|
14
|
+
export declare function createMessageEvent(source: EventSource, participantName: string, message: string): Event<MessageEventData>;
|
|
15
|
+
/**
|
|
16
|
+
* Create a tool event
|
|
17
|
+
*/
|
|
18
|
+
export declare function createToolEvent(source: EventSource, toolCalls: ToolCall[]): Event<ToolEventData>;
|
|
19
|
+
//# sourceMappingURL=Events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/core/Events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,MAAM,CA+C1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,KAAK,CAAC,gBAAgB,CAAC,CAUzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,QAAQ,EAAE,GACpB,KAAK,CAAC,aAAa,CAAC,CAStB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event utilities and helpers
|
|
3
|
+
*/
|
|
4
|
+
import { EventKind, EventSource } from "@/types/history";
|
|
5
|
+
/**
|
|
6
|
+
* Adapt an event for inclusion in prompts
|
|
7
|
+
* Transforms event data into a serializable format
|
|
8
|
+
*/
|
|
9
|
+
export function adaptEvent(e) {
|
|
10
|
+
let data = e.data;
|
|
11
|
+
if (e.kind === EventKind.MESSAGE) {
|
|
12
|
+
const messageData = e.data;
|
|
13
|
+
if (messageData.flagged) {
|
|
14
|
+
data = {
|
|
15
|
+
participant: messageData.participant.display_name,
|
|
16
|
+
message: "<N/A>",
|
|
17
|
+
censored: true,
|
|
18
|
+
reasons: messageData.tags,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
data = {
|
|
23
|
+
participant: messageData.participant.display_name,
|
|
24
|
+
message: messageData.message,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (e.kind === EventKind.TOOL) {
|
|
29
|
+
const toolData = e.data;
|
|
30
|
+
data = {
|
|
31
|
+
tool_calls: toolData.tool_calls.map((tc) => ({
|
|
32
|
+
tool_id: tc.tool_id,
|
|
33
|
+
arguments: tc.arguments,
|
|
34
|
+
result: tc.result.data,
|
|
35
|
+
})),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const sourceMap = {
|
|
39
|
+
[EventSource.CUSTOMER]: "user",
|
|
40
|
+
[EventSource.CUSTOMER_UI]: "frontend_application",
|
|
41
|
+
[EventSource.HUMAN_AGENT]: "human_service_agent",
|
|
42
|
+
[EventSource.HUMAN_AGENT_ON_BEHALF_OF_AI_AGENT]: "ai_agent",
|
|
43
|
+
[EventSource.AI_AGENT]: "ai_agent",
|
|
44
|
+
[EventSource.SYSTEM]: "system-provided",
|
|
45
|
+
};
|
|
46
|
+
return JSON.stringify({
|
|
47
|
+
event_kind: e.kind,
|
|
48
|
+
event_source: sourceMap[e.source],
|
|
49
|
+
data,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create a message event
|
|
54
|
+
*/
|
|
55
|
+
export function createMessageEvent(source, participantName, message) {
|
|
56
|
+
return {
|
|
57
|
+
kind: EventKind.MESSAGE,
|
|
58
|
+
source,
|
|
59
|
+
data: {
|
|
60
|
+
participant: { display_name: participantName },
|
|
61
|
+
message,
|
|
62
|
+
},
|
|
63
|
+
timestamp: new Date().toISOString(),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Create a tool event
|
|
68
|
+
*/
|
|
69
|
+
export function createToolEvent(source, toolCalls) {
|
|
70
|
+
return {
|
|
71
|
+
kind: EventKind.TOOL,
|
|
72
|
+
source,
|
|
73
|
+
data: {
|
|
74
|
+
tool_calls: toolCalls,
|
|
75
|
+
},
|
|
76
|
+
timestamp: new Date().toISOString(),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=Events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../src/core/Events.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,CAAuB;IAChD,IAAI,IAAI,GAAY,CAAC,CAAC,IAAI,CAAC;IAE3B,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAwB,CAAC;QAE/C,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG;gBACL,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY;gBACjD,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,WAAW,CAAC,IAAI;aAC1B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,GAAG;gBACL,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY;gBACjD,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAqB,CAAC;QAEzC,IAAI,GAAG;YACL,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI;aACvB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAgC;QAC7C,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM;QAC9B,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,sBAAsB;QACjD,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,qBAAqB;QAChD,CAAC,WAAW,CAAC,iCAAiC,CAAC,EAAE,UAAU;QAC3D,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,UAAU;QAClC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB;KACxC,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QACjC,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAmB,EACnB,eAAuB,EACvB,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,MAAM;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE;YAC9C,OAAO;SACR;QACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAmB,EACnB,SAAqB;IAErB,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,MAAM;QACN,IAAI,EAAE;YACJ,UAAU,EAAE,SAAS;SACtB;QACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observation for route disambiguation
|
|
3
|
+
*/
|
|
4
|
+
import type { Observation as IObservation, ObservationOptions } from "@/types/observation";
|
|
5
|
+
import type { RouteRef } from "@/types/route";
|
|
6
|
+
import type { Route } from "@/core/Route";
|
|
7
|
+
/**
|
|
8
|
+
* An observation that can trigger disambiguation between routes
|
|
9
|
+
*/
|
|
10
|
+
export declare class Observation implements IObservation {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly description: string;
|
|
13
|
+
routes: RouteRef[];
|
|
14
|
+
constructor(options: ObservationOptions);
|
|
15
|
+
/**
|
|
16
|
+
* Set routes that this observation can disambiguate between
|
|
17
|
+
*/
|
|
18
|
+
disambiguate(routes: (Route | RouteRef)[]): this;
|
|
19
|
+
/**
|
|
20
|
+
* Get the routes this observation disambiguates
|
|
21
|
+
*/
|
|
22
|
+
getRoutes(): RouteRef[];
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=Observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Observation.d.ts","sourceRoot":"","sources":["../../src/core/Observation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,IAAI,YAAY,EAC3B,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAI1C;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,WAAW,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,CAAM;gBAEnB,OAAO,EAAE,kBAAkB;IAKvC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,GAAG,IAAI;IAUhD;;OAEG;IACH,SAAS,IAAI,QAAQ,EAAE;CAGxB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observation for route disambiguation
|
|
3
|
+
*/
|
|
4
|
+
let observationIdCounter = 0;
|
|
5
|
+
/**
|
|
6
|
+
* An observation that can trigger disambiguation between routes
|
|
7
|
+
*/
|
|
8
|
+
export class Observation {
|
|
9
|
+
id;
|
|
10
|
+
description;
|
|
11
|
+
routes = [];
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.id = `observation_${++observationIdCounter}`;
|
|
14
|
+
this.description = options.description;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Set routes that this observation can disambiguate between
|
|
18
|
+
*/
|
|
19
|
+
disambiguate(routes) {
|
|
20
|
+
this.routes = routes.map((r) => {
|
|
21
|
+
if ("getRef" in r) {
|
|
22
|
+
return r.getRef();
|
|
23
|
+
}
|
|
24
|
+
return r;
|
|
25
|
+
});
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get the routes this observation disambiguates
|
|
30
|
+
*/
|
|
31
|
+
getRoutes() {
|
|
32
|
+
return [...this.routes];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=Observation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Observation.js","sourceRoot":"","sources":["../../src/core/Observation.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAE7B;;GAEG;AACH,MAAM,OAAO,WAAW;IACN,EAAE,CAAS;IACX,WAAW,CAAS;IAC7B,MAAM,GAAe,EAAE,CAAC;IAE/B,YAAY,OAA2B;QACrC,IAAI,CAAC,EAAE,GAAG,eAAe,EAAE,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAA4B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt construction and management
|
|
3
|
+
*/
|
|
4
|
+
import type { Event, EmittedEvent } from "@/types/history";
|
|
5
|
+
import type { Term, Capability, GuidelineMatch } from "@/types/agent";
|
|
6
|
+
import type { PromptSection, ContextVariableValue } from "@/types/prompt";
|
|
7
|
+
import { SectionStatus } from "@/types/prompt";
|
|
8
|
+
/**
|
|
9
|
+
* Built-in section identifiers
|
|
10
|
+
*/
|
|
11
|
+
export declare enum BuiltInSection {
|
|
12
|
+
AGENT_IDENTITY = "agent_identity",
|
|
13
|
+
CUSTOMER_IDENTITY = "customer_identity",
|
|
14
|
+
INTERACTION_HISTORY = "interaction_history",
|
|
15
|
+
CONTEXT_VARIABLES = "context_variables",
|
|
16
|
+
GLOSSARY = "glossary",
|
|
17
|
+
GUIDELINE_DESCRIPTIONS = "guideline_descriptions",
|
|
18
|
+
GUIDELINES = "guidelines",
|
|
19
|
+
STAGED_EVENTS = "staged_events",
|
|
20
|
+
ROUTES = "routes",
|
|
21
|
+
OBSERVATIONS = "observations",
|
|
22
|
+
CAPABILITIES = "capabilities",
|
|
23
|
+
ACTIVE_ROUTES = "active_routes"
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Customer/user information
|
|
27
|
+
*/
|
|
28
|
+
export interface Customer {
|
|
29
|
+
name: string;
|
|
30
|
+
id?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Agent information for prompt building
|
|
34
|
+
*/
|
|
35
|
+
export interface AgentInfo {
|
|
36
|
+
name: string;
|
|
37
|
+
description?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Builds prompts from composable sections
|
|
41
|
+
*/
|
|
42
|
+
export declare class PromptBuilder {
|
|
43
|
+
private sections;
|
|
44
|
+
private onBuild?;
|
|
45
|
+
private cachedResults;
|
|
46
|
+
constructor(onBuild?: (prompt: string) => void);
|
|
47
|
+
/**
|
|
48
|
+
* Build the final prompt from all sections
|
|
49
|
+
*/
|
|
50
|
+
build(): string;
|
|
51
|
+
/**
|
|
52
|
+
* Add a section to the prompt
|
|
53
|
+
*/
|
|
54
|
+
addSection(name: string | BuiltInSection, template: string, props?: Record<string, unknown>, status?: SectionStatus): this;
|
|
55
|
+
/**
|
|
56
|
+
* Edit an existing section
|
|
57
|
+
*/
|
|
58
|
+
editSection(name: string | BuiltInSection, editor: (section: PromptSection) => PromptSection): this;
|
|
59
|
+
/**
|
|
60
|
+
* Get section status
|
|
61
|
+
*/
|
|
62
|
+
sectionStatus(name: string | BuiltInSection): SectionStatus;
|
|
63
|
+
/**
|
|
64
|
+
* Add agent identity section
|
|
65
|
+
*/
|
|
66
|
+
addAgentIdentity(agent: AgentInfo): this;
|
|
67
|
+
/**
|
|
68
|
+
* Add customer identity section
|
|
69
|
+
*/
|
|
70
|
+
addCustomerIdentity(customer: Customer): this;
|
|
71
|
+
/**
|
|
72
|
+
* Add interaction history section
|
|
73
|
+
*/
|
|
74
|
+
addInteractionHistory(events: Event[], stagedEvents?: EmittedEvent[]): this;
|
|
75
|
+
/**
|
|
76
|
+
* Add interaction history with special handling for message generation
|
|
77
|
+
*/
|
|
78
|
+
addInteractionHistoryForMessageGeneration(events: Event[], stagedEvents?: EmittedEvent[]): this;
|
|
79
|
+
/**
|
|
80
|
+
* Add context variables section
|
|
81
|
+
*/
|
|
82
|
+
addContextVariables(variables: ContextVariableValue[]): this;
|
|
83
|
+
/**
|
|
84
|
+
* Add glossary section
|
|
85
|
+
*/
|
|
86
|
+
addGlossary(terms: Term[]): this;
|
|
87
|
+
/**
|
|
88
|
+
* Add staged tool events section
|
|
89
|
+
*/
|
|
90
|
+
addStagedToolEvents(events: EmittedEvent[]): this;
|
|
91
|
+
/**
|
|
92
|
+
* Add guidelines for message generation
|
|
93
|
+
*/
|
|
94
|
+
addGuidelinesForMessageGeneration(guidelines: GuidelineMatch[]): this;
|
|
95
|
+
/**
|
|
96
|
+
* Add capabilities section for message generation
|
|
97
|
+
*/
|
|
98
|
+
addCapabilitiesForMessageGeneration(capabilities: Capability[]): this;
|
|
99
|
+
/**
|
|
100
|
+
* Add observations for disambiguation
|
|
101
|
+
*/
|
|
102
|
+
addObservations(observations: Array<{
|
|
103
|
+
description: string;
|
|
104
|
+
routes: Array<{
|
|
105
|
+
title: string;
|
|
106
|
+
}>;
|
|
107
|
+
}>): this;
|
|
108
|
+
/**
|
|
109
|
+
* Add active routes information
|
|
110
|
+
*/
|
|
111
|
+
addActiveRoutes(routes: Array<{
|
|
112
|
+
title: string;
|
|
113
|
+
description?: string;
|
|
114
|
+
conditions: string[];
|
|
115
|
+
}>): this;
|
|
116
|
+
private formatTemplate;
|
|
117
|
+
private gatherInteractionEvents;
|
|
118
|
+
private lastAgentMessageNote;
|
|
119
|
+
private contextVariablesToJson;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=PromptBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PromptBuilder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAE7E,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C;;GAEG;AACH,oBAAY,cAAc;IACxB,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IACvC,QAAQ,aAAa;IACrB,sBAAsB,2BAA2B;IACjD,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAA0D;IAC1E,OAAO,CAAC,OAAO,CAAC,CAA2B;IAC3C,OAAO,CAAC,aAAa,CAAqB;gBAE9B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI9C;;OAEG;IACH,KAAK,IAAI,MAAM;IA0Bf;;OAEG;IACH,UAAU,CACR,IAAI,EAAE,MAAM,GAAG,cAAc,EAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,MAAM,CAAC,EAAE,aAAa,GACrB,IAAI;IAcP;;OAEG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,GAAG,cAAc,EAC7B,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,GAChD,IAAI;IAQP;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,aAAa;IAK3D;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAmBxC;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAU7C;;OAEG;IACH,qBAAqB,CACnB,MAAM,EAAE,KAAK,EAAE,EACf,YAAY,GAAE,YAAY,EAAO,GAChC,IAAI;IA2BP;;OAEG;IACH,yCAAyC,CACvC,MAAM,EAAE,KAAK,EAAE,EACf,YAAY,GAAE,YAAY,EAAO,GAChC,IAAI;IAmCP;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAe5D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IA2BhC;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI;IAoBjD;;OAEG;IACH,iCAAiC,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI;IAkDrE;;OAEG;IACH,mCAAmC,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI;IA4BrE;;OAEG;IACH,eAAe,CACb,YAAY,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClC,CAAC,GACD,IAAI;IA0BP;;OAEG;IACH,eAAe,CACb,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,GAC3E,IAAI;IA8BP,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,sBAAsB;CAO/B"}
|