lazlo-ai 1.0.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/.env.example +9 -0
- package/README.md +278 -0
- package/dist/cache/semantic.d.ts +39 -0
- package/dist/cache/semantic.d.ts.map +1 -0
- package/dist/cache/semantic.js +134 -0
- package/dist/cache/semantic.js.map +1 -0
- package/dist/chains/llmchain.d.ts +65 -0
- package/dist/chains/llmchain.d.ts.map +1 -0
- package/dist/chains/llmchain.js +137 -0
- package/dist/chains/llmchain.js.map +1 -0
- package/dist/chains/rag.d.ts +23 -0
- package/dist/chains/rag.d.ts.map +1 -0
- package/dist/chains/rag.js +47 -0
- package/dist/chains/rag.js.map +1 -0
- package/dist/core/types.d.ts +130 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +8 -0
- package/dist/core/types.js.map +1 -0
- package/dist/document_loaders/index.d.ts +61 -0
- package/dist/document_loaders/index.d.ts.map +1 -0
- package/dist/document_loaders/index.js +183 -0
- package/dist/document_loaders/index.js.map +1 -0
- package/dist/embeddings/google.d.ts +43 -0
- package/dist/embeddings/google.d.ts.map +1 -0
- package/dist/embeddings/google.js +90 -0
- package/dist/embeddings/google.js.map +1 -0
- package/dist/embeddings/local.d.ts +64 -0
- package/dist/embeddings/local.d.ts.map +1 -0
- package/dist/embeddings/local.js +95 -0
- package/dist/embeddings/local.js.map +1 -0
- package/dist/evals/judge.d.ts +22 -0
- package/dist/evals/judge.d.ts.map +1 -0
- package/dist/evals/judge.js +77 -0
- package/dist/evals/judge.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/buffer.d.ts +64 -0
- package/dist/memory/buffer.d.ts.map +1 -0
- package/dist/memory/buffer.js +168 -0
- package/dist/memory/buffer.js.map +1 -0
- package/dist/parsers/output.d.ts +64 -0
- package/dist/parsers/output.d.ts.map +1 -0
- package/dist/parsers/output.js +148 -0
- package/dist/parsers/output.js.map +1 -0
- package/dist/prompts/registry.d.ts +65 -0
- package/dist/prompts/registry.d.ts.map +1 -0
- package/dist/prompts/registry.js +170 -0
- package/dist/prompts/registry.js.map +1 -0
- package/dist/providers/ollama.d.ts +30 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +104 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +46 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +228 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/retrievers/index.d.ts +71 -0
- package/dist/retrievers/index.d.ts.map +1 -0
- package/dist/retrievers/index.js +130 -0
- package/dist/retrievers/index.js.map +1 -0
- package/dist/router/smartrouter.d.ts +36 -0
- package/dist/router/smartrouter.d.ts.map +1 -0
- package/dist/router/smartrouter.js +132 -0
- package/dist/router/smartrouter.js.map +1 -0
- package/dist/text_splitters/index.d.ts +28 -0
- package/dist/text_splitters/index.d.ts.map +1 -0
- package/dist/text_splitters/index.js +109 -0
- package/dist/text_splitters/index.js.map +1 -0
- package/dist/tools/decorator.d.ts +26 -0
- package/dist/tools/decorator.d.ts.map +1 -0
- package/dist/tools/decorator.js +102 -0
- package/dist/tools/decorator.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/keiro.d.ts +20 -0
- package/dist/tools/keiro.d.ts.map +1 -0
- package/dist/tools/keiro.js +67 -0
- package/dist/tools/keiro.js.map +1 -0
- package/dist/tracing/tracer.d.ts +56 -0
- package/dist/tracing/tracer.d.ts.map +1 -0
- package/dist/tracing/tracer.js +125 -0
- package/dist/tracing/tracer.js.map +1 -0
- package/dist/utils/logger.d.ts +25 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +50 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pricing.d.ts +31 -0
- package/dist/utils/pricing.d.ts.map +1 -0
- package/dist/utils/pricing.js +108 -0
- package/dist/utils/pricing.js.map +1 -0
- package/dist/vectorstores/index.d.ts +62 -0
- package/dist/vectorstores/index.d.ts.map +1 -0
- package/dist/vectorstores/index.js +244 -0
- package/dist/vectorstores/index.js.map +1 -0
- package/package.json +48 -0
- package/src/cache/semantic.ts +175 -0
- package/src/chains/llmchain.ts +194 -0
- package/src/chains/rag.ts +65 -0
- package/src/core/types.ts +178 -0
- package/src/document_loaders/index.ts +223 -0
- package/src/embeddings/google.ts +119 -0
- package/src/embeddings/local.ts +118 -0
- package/src/evals/judge.ts +99 -0
- package/src/index.ts +121 -0
- package/src/memory/buffer.ts +222 -0
- package/src/parsers/output.ts +195 -0
- package/src/prompts/registry.ts +205 -0
- package/src/providers/ollama.ts +151 -0
- package/src/providers/openai.ts +320 -0
- package/src/retrievers/index.ts +182 -0
- package/src/router/smartrouter.ts +172 -0
- package/src/text_splitters/index.ts +145 -0
- package/src/tools/decorator.ts +145 -0
- package/src/tools/index.ts +7 -0
- package/src/tools/keiro.ts +92 -0
- package/src/tracing/tracer.ts +178 -0
- package/src/utils/logger.ts +62 -0
- package/src/utils/pricing.ts +133 -0
- package/src/vectorstores/index.ts +338 -0
- package/test-full.mjs +552 -0
- package/test.mjs +74 -0
- package/tsconfig.json +30 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Parsers
|
|
3
|
+
*
|
|
4
|
+
* Parse LLM outputs into structured formats
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
/**
|
|
8
|
+
* Base Output Parser Interface
|
|
9
|
+
*/
|
|
10
|
+
export interface BaseOutputParser<T> {
|
|
11
|
+
parse(text: string): Promise<T>;
|
|
12
|
+
format?(text: string): string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* JSON Output Parser
|
|
16
|
+
*/
|
|
17
|
+
export declare class JSONOutputParser<T extends z.ZodTypeAny = z.ZodTypeAny> {
|
|
18
|
+
private schema?;
|
|
19
|
+
private schemaName?;
|
|
20
|
+
constructor(schema?: T, schemaName?: string);
|
|
21
|
+
parse(text: string): Promise<any>;
|
|
22
|
+
format(text: string): string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* XML Output Parser
|
|
26
|
+
*/
|
|
27
|
+
export declare class XMLOutputParser {
|
|
28
|
+
private tags;
|
|
29
|
+
constructor(tags?: string[]);
|
|
30
|
+
parse(text: string): Promise<Record<string, string>>;
|
|
31
|
+
format(text: string): string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Comma-Separated List Parser
|
|
35
|
+
*/
|
|
36
|
+
export declare class CommaSeparatedListParser {
|
|
37
|
+
parse(text: string): Promise<string[]>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Markdown Code Block Parser
|
|
41
|
+
*/
|
|
42
|
+
export declare class MarkdownCodeBlockParser {
|
|
43
|
+
private language?;
|
|
44
|
+
constructor(language?: string);
|
|
45
|
+
parse(text: string): Promise<string>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Parser for tool calls
|
|
49
|
+
*/
|
|
50
|
+
export interface ToolCall {
|
|
51
|
+
name: string;
|
|
52
|
+
arguments: Record<string, any>;
|
|
53
|
+
}
|
|
54
|
+
export declare class ToolCallParser {
|
|
55
|
+
parse(text: string): Promise<ToolCall[]>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Factory functions
|
|
59
|
+
*/
|
|
60
|
+
export declare function createJSONParser<T extends z.ZodTypeAny>(schema?: T, name?: string): JSONOutputParser<T>;
|
|
61
|
+
export declare function createXMLParser(tags?: string[]): XMLOutputParser;
|
|
62
|
+
export declare function createListParser(): CommaSeparatedListParser;
|
|
63
|
+
export declare function createMarkdownParser(language?: string): MarkdownCodeBlockParser;
|
|
64
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/parsers/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;IACjE,OAAO,CAAC,MAAM,CAAC,CAAI;IACnB,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM;IAKrC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAwBvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG7B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAW;gBAEX,IAAI,GAAE,MAAM,EAAiB;IAInC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAe1D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAI7B;AAED;;GAEG;AACH,qBAAa,wBAAwB;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAM7C;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,QAAQ,CAAC,EAAE,MAAM;IAIvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAc3C;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,qBAAa,cAAc;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAwC/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAEvG;AAED,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,CAEhE;AAED,wBAAgB,gBAAgB,IAAI,wBAAwB,CAE3D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAE/E"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Parsers
|
|
3
|
+
*
|
|
4
|
+
* Parse LLM outputs into structured formats
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* JSON Output Parser
|
|
8
|
+
*/
|
|
9
|
+
export class JSONOutputParser {
|
|
10
|
+
schema;
|
|
11
|
+
schemaName;
|
|
12
|
+
constructor(schema, schemaName) {
|
|
13
|
+
this.schema = schema;
|
|
14
|
+
this.schemaName = schemaName;
|
|
15
|
+
}
|
|
16
|
+
async parse(text) {
|
|
17
|
+
// Try to extract JSON from text
|
|
18
|
+
const jsonMatch = text.match(/```(?:json)?\s*([\s\S]*?)```/) ||
|
|
19
|
+
text.match(/\{[\s\S]*\}/);
|
|
20
|
+
if (!jsonMatch) {
|
|
21
|
+
throw new Error('No JSON found in output');
|
|
22
|
+
}
|
|
23
|
+
const jsonStr = jsonMatch[1] || jsonMatch[0];
|
|
24
|
+
try {
|
|
25
|
+
const parsed = JSON.parse(jsonStr);
|
|
26
|
+
if (this.schema) {
|
|
27
|
+
return this.schema.parse(parsed);
|
|
28
|
+
}
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
throw new Error(`Failed to parse JSON: ${error.message}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
format(text) {
|
|
36
|
+
return `Output the following as valid JSON:\n${text}`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* XML Output Parser
|
|
41
|
+
*/
|
|
42
|
+
export class XMLOutputParser {
|
|
43
|
+
tags;
|
|
44
|
+
constructor(tags = ['response']) {
|
|
45
|
+
this.tags = tags;
|
|
46
|
+
}
|
|
47
|
+
async parse(text) {
|
|
48
|
+
const result = {};
|
|
49
|
+
for (const tag of this.tags) {
|
|
50
|
+
const regex = new RegExp(`<${tag}[^>]*>([\\s\\S]*?)</${tag}>`, 'i');
|
|
51
|
+
const match = text.match(regex);
|
|
52
|
+
if (match) {
|
|
53
|
+
result[tag] = match[1].trim();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
format(text) {
|
|
59
|
+
const tagsStr = this.tags.map(t => `<${t}>...</${t}>`).join('\n');
|
|
60
|
+
return `Output the following as XML:\n${tagsStr}\n\nContent:\n${text}`;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Comma-Separated List Parser
|
|
65
|
+
*/
|
|
66
|
+
export class CommaSeparatedListParser {
|
|
67
|
+
async parse(text) {
|
|
68
|
+
return text
|
|
69
|
+
.split(',')
|
|
70
|
+
.map(item => item.trim())
|
|
71
|
+
.filter(item => item.length > 0);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Markdown Code Block Parser
|
|
76
|
+
*/
|
|
77
|
+
export class MarkdownCodeBlockParser {
|
|
78
|
+
language;
|
|
79
|
+
constructor(language) {
|
|
80
|
+
this.language = language;
|
|
81
|
+
}
|
|
82
|
+
async parse(text) {
|
|
83
|
+
const regex = this.language
|
|
84
|
+
? new RegExp(`\`\`\`${this.language}\\s*([\\s\\S]*?)\`\`\``)
|
|
85
|
+
: /```(?:\w+)?\s*([\s\S]*?)```/;
|
|
86
|
+
const match = text.match(regex);
|
|
87
|
+
if (match) {
|
|
88
|
+
return match[1].trim();
|
|
89
|
+
}
|
|
90
|
+
// Return original if no code block found
|
|
91
|
+
return text.trim();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export class ToolCallParser {
|
|
95
|
+
async parse(text) {
|
|
96
|
+
const toolCalls = [];
|
|
97
|
+
// Try JSON format
|
|
98
|
+
try {
|
|
99
|
+
const jsonMatch = text.match(/\{[\s\S]*\}/);
|
|
100
|
+
if (jsonMatch) {
|
|
101
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
102
|
+
if (parsed.name && parsed.arguments) {
|
|
103
|
+
return [parsed];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// Not JSON, try other formats
|
|
109
|
+
}
|
|
110
|
+
// Try function call format
|
|
111
|
+
const functionMatch = text.match(/(\w+)\(([\s\S]*?)\)/);
|
|
112
|
+
if (functionMatch) {
|
|
113
|
+
const name = functionMatch[1];
|
|
114
|
+
let args = {};
|
|
115
|
+
try {
|
|
116
|
+
args = JSON.parse(`{${functionMatch[2]}}`);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// Simple key=value parsing
|
|
120
|
+
const argPairs = functionMatch[2].split(',');
|
|
121
|
+
for (const pair of argPairs) {
|
|
122
|
+
const [key, value] = pair.split('=').map(s => s.trim());
|
|
123
|
+
if (key) {
|
|
124
|
+
args[key] = value?.replace(/["']/g, '') || '';
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
toolCalls.push({ name, arguments: args });
|
|
129
|
+
}
|
|
130
|
+
return toolCalls;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Factory functions
|
|
135
|
+
*/
|
|
136
|
+
export function createJSONParser(schema, name) {
|
|
137
|
+
return new JSONOutputParser(schema, name);
|
|
138
|
+
}
|
|
139
|
+
export function createXMLParser(tags) {
|
|
140
|
+
return new XMLOutputParser(tags);
|
|
141
|
+
}
|
|
142
|
+
export function createListParser() {
|
|
143
|
+
return new CommaSeparatedListParser();
|
|
144
|
+
}
|
|
145
|
+
export function createMarkdownParser(language) {
|
|
146
|
+
return new MarkdownCodeBlockParser(language);
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/parsers/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Registry
|
|
3
|
+
*
|
|
4
|
+
* Store, version, and load prompts from YAML files
|
|
5
|
+
*/
|
|
6
|
+
export interface PromptConfig {
|
|
7
|
+
template: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
variables?: string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Prompt Registry
|
|
14
|
+
*
|
|
15
|
+
* Load and manage prompts from YAML files
|
|
16
|
+
*/
|
|
17
|
+
export declare class PromptRegistry {
|
|
18
|
+
private prompts;
|
|
19
|
+
private directory?;
|
|
20
|
+
constructor(directory?: string);
|
|
21
|
+
/**
|
|
22
|
+
* Load prompts from a directory
|
|
23
|
+
*/
|
|
24
|
+
private loadPrompts;
|
|
25
|
+
/**
|
|
26
|
+
* Simple YAML parser
|
|
27
|
+
*/
|
|
28
|
+
private parseYAML;
|
|
29
|
+
/**
|
|
30
|
+
* Register a prompt
|
|
31
|
+
*/
|
|
32
|
+
register(name: string, config: PromptConfig): void;
|
|
33
|
+
/**
|
|
34
|
+
* Load a prompt by name (supports @version syntax)
|
|
35
|
+
*/
|
|
36
|
+
load(name: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Get prompt config
|
|
39
|
+
*/
|
|
40
|
+
get(name: string): PromptConfig | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* List all prompts
|
|
43
|
+
*/
|
|
44
|
+
list(): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Format a prompt with variables
|
|
47
|
+
*/
|
|
48
|
+
format(template: string, variables: Record<string, string>): string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Factory function
|
|
52
|
+
*/
|
|
53
|
+
export declare function createPromptRegistry(directory?: string): PromptRegistry;
|
|
54
|
+
/**
|
|
55
|
+
* Simple Prompt Template (standalone)
|
|
56
|
+
*/
|
|
57
|
+
export declare class SimplePromptTemplate {
|
|
58
|
+
private template;
|
|
59
|
+
private inputVariables;
|
|
60
|
+
constructor(template: string);
|
|
61
|
+
private extractVariables;
|
|
62
|
+
format(variables: Record<string, string>): string;
|
|
63
|
+
get inputVars(): string[];
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,SAAS,CAAC,EAAE,MAAM;IAO9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACH,OAAO,CAAC,SAAS;IAmDjB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAKlD;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAe1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI3C;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CASpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAEvE;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAW;gBAErB,QAAQ,EAAE,MAAM;IAK5B,OAAO,CAAC,gBAAgB;IAKxB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAUjD,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;CACF"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Registry
|
|
3
|
+
*
|
|
4
|
+
* Store, version, and load prompts from YAML files
|
|
5
|
+
*/
|
|
6
|
+
import { readFileSync, readdirSync, existsSync } from 'fs';
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
import { logger } from '../utils/logger.js';
|
|
9
|
+
/**
|
|
10
|
+
* Prompt Registry
|
|
11
|
+
*
|
|
12
|
+
* Load and manage prompts from YAML files
|
|
13
|
+
*/
|
|
14
|
+
export class PromptRegistry {
|
|
15
|
+
prompts = new Map();
|
|
16
|
+
directory;
|
|
17
|
+
constructor(directory) {
|
|
18
|
+
if (directory) {
|
|
19
|
+
this.directory = directory;
|
|
20
|
+
this.loadPrompts(directory);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Load prompts from a directory
|
|
25
|
+
*/
|
|
26
|
+
loadPrompts(directory) {
|
|
27
|
+
if (!existsSync(directory)) {
|
|
28
|
+
logger.warn(`[PromptRegistry] Directory not found: ${directory}`);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const files = readdirSync(directory).filter(f => f.endsWith('.yaml') || f.endsWith('.yml'));
|
|
33
|
+
for (const file of files) {
|
|
34
|
+
const content = readFileSync(join(directory, file), 'utf-8');
|
|
35
|
+
const config = this.parseYAML(content);
|
|
36
|
+
const name = file.replace(/\.(yaml|yml)$/, '');
|
|
37
|
+
this.prompts.set(name, config);
|
|
38
|
+
}
|
|
39
|
+
logger.info(`[PromptRegistry] Loaded ${this.prompts.size} prompts from ${directory}`);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
logger.error(`[PromptRegistry] Error loading prompts: ${error.message}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Simple YAML parser
|
|
47
|
+
*/
|
|
48
|
+
parseYAML(content) {
|
|
49
|
+
const result = {};
|
|
50
|
+
const lines = content.split('\n');
|
|
51
|
+
let currentKey = '';
|
|
52
|
+
let currentValue = [];
|
|
53
|
+
let inArray = false;
|
|
54
|
+
for (const line of lines) {
|
|
55
|
+
const trimmed = line.trim();
|
|
56
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
57
|
+
continue;
|
|
58
|
+
// Check for key: value
|
|
59
|
+
const keyMatch = trimmed.match(/^(\w+):\s*(.*)$/);
|
|
60
|
+
if (keyMatch) {
|
|
61
|
+
if (currentKey) {
|
|
62
|
+
result[currentKey] = currentValue.join('\n').trim();
|
|
63
|
+
}
|
|
64
|
+
currentKey = keyMatch[1];
|
|
65
|
+
const value = keyMatch[2];
|
|
66
|
+
if (value.startsWith('[') && value.endsWith(']')) {
|
|
67
|
+
// Array
|
|
68
|
+
result[currentKey] = value.slice(1, -1).split(',').map((s) => s.trim());
|
|
69
|
+
currentKey = '';
|
|
70
|
+
}
|
|
71
|
+
else if (value) {
|
|
72
|
+
currentValue = [value];
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
currentValue = [];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else if (trimmed.startsWith('- ')) {
|
|
79
|
+
// Array item
|
|
80
|
+
if (!Array.isArray(result[currentKey])) {
|
|
81
|
+
result[currentKey] = [];
|
|
82
|
+
}
|
|
83
|
+
result[currentKey].push(trimmed.slice(2).trim());
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Continuation
|
|
87
|
+
currentValue.push(trimmed);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (currentKey) {
|
|
91
|
+
result[currentKey] = currentValue.join('\n').trim();
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Register a prompt
|
|
97
|
+
*/
|
|
98
|
+
register(name, config) {
|
|
99
|
+
this.prompts.set(name, config);
|
|
100
|
+
logger.debug(`[PromptRegistry] Registered prompt: ${name}`);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Load a prompt by name (supports @version syntax)
|
|
104
|
+
*/
|
|
105
|
+
load(name) {
|
|
106
|
+
const [baseName, version] = name.split('@');
|
|
107
|
+
const prompt = this.prompts.get(baseName);
|
|
108
|
+
if (!prompt) {
|
|
109
|
+
throw new Error(`Prompt not found: ${baseName}`);
|
|
110
|
+
}
|
|
111
|
+
if (version && prompt.version && prompt.version !== version) {
|
|
112
|
+
throw new Error(`Version ${version} not found for prompt: ${baseName}`);
|
|
113
|
+
}
|
|
114
|
+
return prompt.template;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get prompt config
|
|
118
|
+
*/
|
|
119
|
+
get(name) {
|
|
120
|
+
return this.prompts.get(name);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* List all prompts
|
|
124
|
+
*/
|
|
125
|
+
list() {
|
|
126
|
+
return Array.from(this.prompts.keys());
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Format a prompt with variables
|
|
130
|
+
*/
|
|
131
|
+
format(template, variables) {
|
|
132
|
+
let result = template;
|
|
133
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
134
|
+
result = result.replace(new RegExp(`\\{${key}\\}`, 'g'), value);
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Factory function
|
|
141
|
+
*/
|
|
142
|
+
export function createPromptRegistry(directory) {
|
|
143
|
+
return new PromptRegistry(directory);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Simple Prompt Template (standalone)
|
|
147
|
+
*/
|
|
148
|
+
export class SimplePromptTemplate {
|
|
149
|
+
template;
|
|
150
|
+
inputVariables;
|
|
151
|
+
constructor(template) {
|
|
152
|
+
this.template = template;
|
|
153
|
+
this.inputVariables = this.extractVariables(template);
|
|
154
|
+
}
|
|
155
|
+
extractVariables(template) {
|
|
156
|
+
const matches = template.match(/\{(\w+)\}/g) || [];
|
|
157
|
+
return [...new Set(matches.map(m => m.slice(1, -1)))];
|
|
158
|
+
}
|
|
159
|
+
format(variables) {
|
|
160
|
+
let result = this.template;
|
|
161
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
162
|
+
result = result.replace(new RegExp(`\\{${key}\\}`, 'g'), value);
|
|
163
|
+
}
|
|
164
|
+
return result;
|
|
165
|
+
}
|
|
166
|
+
get inputVars() {
|
|
167
|
+
return this.inputVariables;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider - Local LLM inference
|
|
3
|
+
*/
|
|
4
|
+
import { BaseChatModel, Message, ChatResponse, ToolDefinition, StreamChunk } from '../core/types.js';
|
|
5
|
+
export interface OllamaOptions {
|
|
6
|
+
model?: string;
|
|
7
|
+
baseURL?: string;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class Ollama implements BaseChatModel {
|
|
11
|
+
readonly supportsTools = true;
|
|
12
|
+
readonly supportsStructuredOutput = true;
|
|
13
|
+
private model;
|
|
14
|
+
private baseURL;
|
|
15
|
+
private client;
|
|
16
|
+
constructor(options?: OllamaOptions);
|
|
17
|
+
private formatMessages;
|
|
18
|
+
invoke(messages: Message[], options?: {
|
|
19
|
+
model?: string;
|
|
20
|
+
tools?: ToolDefinition[];
|
|
21
|
+
temperature?: number;
|
|
22
|
+
}): Promise<ChatResponse>;
|
|
23
|
+
stream(messages: Message[], options?: {
|
|
24
|
+
model?: string;
|
|
25
|
+
}): AsyncGenerator<StreamChunk>;
|
|
26
|
+
listModels(): Promise<string[]>;
|
|
27
|
+
close(): void;
|
|
28
|
+
}
|
|
29
|
+
export declare function createOllama(options?: OllamaOptions): Ollama;
|
|
30
|
+
//# sourceMappingURL=ollama.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,aAAa,EACb,OAAO,EACP,YAAY,EACZ,cAAc,EACd,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAO1B,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,MAAO,YAAW,aAAa;IAC1C,QAAQ,CAAC,aAAa,QAAQ;IAC9B,QAAQ,CAAC,wBAAwB,QAAQ;IAEzC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAgB;gBAElB,OAAO,GAAE,aAAkB;IAavC,OAAO,CAAC,cAAc;IAOhB,MAAM,CACV,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB,GACL,OAAO,CAAC,YAAY,CAAC;IAiCjB,MAAM,CACX,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GACL,cAAc,CAAC,WAAW,CAAC;IAmCxB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUrC,KAAK,IAAI,IAAI;CAGd;AAGD,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAE5D"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider - Local LLM inference
|
|
3
|
+
*/
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
import { logger } from '../utils/logger.js';
|
|
6
|
+
export class Ollama {
|
|
7
|
+
supportsTools = true;
|
|
8
|
+
supportsStructuredOutput = true;
|
|
9
|
+
model;
|
|
10
|
+
baseURL;
|
|
11
|
+
client;
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
this.model = options.model ?? 'llama3.2';
|
|
14
|
+
this.baseURL = (options.baseURL ?? 'http://localhost:11434').replace(/\/$/, '');
|
|
15
|
+
this.client = axios.create({
|
|
16
|
+
baseURL: this.baseURL,
|
|
17
|
+
headers: { 'Content-Type': 'application/json' },
|
|
18
|
+
timeout: options.timeout ?? 300000,
|
|
19
|
+
});
|
|
20
|
+
logger.info(`Ollama Provider ready. Model: ${this.model}. Endpoint: ${this.baseURL}`);
|
|
21
|
+
}
|
|
22
|
+
formatMessages(messages) {
|
|
23
|
+
return messages.map(m => ({
|
|
24
|
+
role: m.role,
|
|
25
|
+
content: m.content,
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
async invoke(messages, options = {}) {
|
|
29
|
+
const model = options.model ?? this.model;
|
|
30
|
+
const payload = {
|
|
31
|
+
model,
|
|
32
|
+
messages: this.formatMessages(messages),
|
|
33
|
+
stream: false,
|
|
34
|
+
};
|
|
35
|
+
if (options.tools) {
|
|
36
|
+
payload.tools = options.tools;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const response = await this.client.post('/api/chat', payload);
|
|
40
|
+
const data = response.data;
|
|
41
|
+
const message = data.message;
|
|
42
|
+
return {
|
|
43
|
+
content: message?.content ?? '',
|
|
44
|
+
tool_calls: message?.tool_calls,
|
|
45
|
+
model: model,
|
|
46
|
+
finish_reason: data.done ? 'stop' : null,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
if (error.code === 'ECONNREFUSED') {
|
|
51
|
+
throw new Error(`Cannot connect to Ollama at ${this.baseURL}. Is Ollama running?`);
|
|
52
|
+
}
|
|
53
|
+
logger.error(`Ollama invoke error: ${error.message}`);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async *stream(messages, options = {}) {
|
|
58
|
+
const model = options.model ?? this.model;
|
|
59
|
+
const payload = {
|
|
60
|
+
model,
|
|
61
|
+
messages: this.formatMessages(messages),
|
|
62
|
+
stream: true,
|
|
63
|
+
};
|
|
64
|
+
const response = await this.client.post('/api/chat', payload, {
|
|
65
|
+
responseType: 'stream',
|
|
66
|
+
});
|
|
67
|
+
for await (const chunk of response.data) {
|
|
68
|
+
const lines = chunk.toString().split('\n').filter((l) => l.trim());
|
|
69
|
+
for (const line of lines) {
|
|
70
|
+
try {
|
|
71
|
+
const data = JSON.parse(line);
|
|
72
|
+
const content = data.message?.content ?? '';
|
|
73
|
+
if (content) {
|
|
74
|
+
yield { delta: content };
|
|
75
|
+
}
|
|
76
|
+
if (data.done) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Skip invalid JSON
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async listModels() {
|
|
87
|
+
try {
|
|
88
|
+
const response = await this.client.get('/api/tags');
|
|
89
|
+
return response.data.models?.map((m) => m.name) ?? [];
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
logger.error(`Could not list Ollama models: ${error}`);
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
close() {
|
|
97
|
+
logger.info('Ollama client closed.');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Factory
|
|
101
|
+
export function createOllama(options) {
|
|
102
|
+
return new Ollama(options);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=ollama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Provider
|
|
3
|
+
*
|
|
4
|
+
* Direct API access to OpenAI models. No massive SDKs, just axios calls.
|
|
5
|
+
*/
|
|
6
|
+
import { BaseChatModel, Message, ChatResponse, ToolDefinition, ResponseFormat, StreamChunk } from '../core/types.js';
|
|
7
|
+
export declare class OpenAI implements BaseChatModel {
|
|
8
|
+
readonly supportsTools = true;
|
|
9
|
+
readonly supportsStructuredOutput = true;
|
|
10
|
+
private client;
|
|
11
|
+
private defaultModel;
|
|
12
|
+
constructor(apiKey?: string, defaultModel?: string, options?: {
|
|
13
|
+
baseURL?: string;
|
|
14
|
+
timeout?: number;
|
|
15
|
+
});
|
|
16
|
+
private preparePayload;
|
|
17
|
+
invoke(messages: Message[], options?: {
|
|
18
|
+
model?: string;
|
|
19
|
+
tools?: ToolDefinition[];
|
|
20
|
+
responseFormat?: ResponseFormat;
|
|
21
|
+
temperature?: number;
|
|
22
|
+
maxTokens?: number;
|
|
23
|
+
topP?: number;
|
|
24
|
+
frequencyPenalty?: number;
|
|
25
|
+
presencePenalty?: number;
|
|
26
|
+
stop?: string | string[];
|
|
27
|
+
}): Promise<ChatResponse>;
|
|
28
|
+
stream(messages: Message[], options?: {
|
|
29
|
+
model?: string;
|
|
30
|
+
temperature?: number;
|
|
31
|
+
maxTokens?: number;
|
|
32
|
+
topP?: number;
|
|
33
|
+
stop?: string[];
|
|
34
|
+
}): AsyncGenerator<StreamChunk>;
|
|
35
|
+
close(): void;
|
|
36
|
+
ainvoke(messages: Message[], options?: {
|
|
37
|
+
model?: string;
|
|
38
|
+
tools?: ToolDefinition[];
|
|
39
|
+
responseFormat?: ResponseFormat;
|
|
40
|
+
temperature?: number;
|
|
41
|
+
maxTokens?: number;
|
|
42
|
+
topP?: number;
|
|
43
|
+
}): Promise<ChatResponse>;
|
|
44
|
+
}
|
|
45
|
+
export declare function createOpenAI(apiKey?: string, defaultModel?: string): OpenAI;
|
|
46
|
+
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,aAAa,EACb,OAAO,EACP,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,kBAAkB,CAAC;AA6F1B,qBAAa,MAAO,YAAW,aAAa;IAC1C,QAAQ,CAAC,aAAa,QAAQ;IAC9B,QAAQ,CAAC,wBAAwB,QAAQ;IAEzC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAS;gBAG3B,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,SAAW,EACvB,OAAO,GAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb;IAoBR,OAAO,CAAC,cAAc;IAmChB,MAAM,CACV,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;QACzB,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KACrB,GACL,OAAO,CAAC,YAAY,CAAC;IAwDjB,MAAM,CACX,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACZ,GACL,cAAc,CAAC,WAAW,CAAC;IA2C9B,KAAK,IAAI,IAAI;IAKP,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE;QAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;QACzB,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,YAAY,CAAC;CAG1B;AAMD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3E"}
|