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.
Files changed (126) hide show
  1. package/.env.example +9 -0
  2. package/README.md +278 -0
  3. package/dist/cache/semantic.d.ts +39 -0
  4. package/dist/cache/semantic.d.ts.map +1 -0
  5. package/dist/cache/semantic.js +134 -0
  6. package/dist/cache/semantic.js.map +1 -0
  7. package/dist/chains/llmchain.d.ts +65 -0
  8. package/dist/chains/llmchain.d.ts.map +1 -0
  9. package/dist/chains/llmchain.js +137 -0
  10. package/dist/chains/llmchain.js.map +1 -0
  11. package/dist/chains/rag.d.ts +23 -0
  12. package/dist/chains/rag.d.ts.map +1 -0
  13. package/dist/chains/rag.js +47 -0
  14. package/dist/chains/rag.js.map +1 -0
  15. package/dist/core/types.d.ts +130 -0
  16. package/dist/core/types.d.ts.map +1 -0
  17. package/dist/core/types.js +8 -0
  18. package/dist/core/types.js.map +1 -0
  19. package/dist/document_loaders/index.d.ts +61 -0
  20. package/dist/document_loaders/index.d.ts.map +1 -0
  21. package/dist/document_loaders/index.js +183 -0
  22. package/dist/document_loaders/index.js.map +1 -0
  23. package/dist/embeddings/google.d.ts +43 -0
  24. package/dist/embeddings/google.d.ts.map +1 -0
  25. package/dist/embeddings/google.js +90 -0
  26. package/dist/embeddings/google.js.map +1 -0
  27. package/dist/embeddings/local.d.ts +64 -0
  28. package/dist/embeddings/local.d.ts.map +1 -0
  29. package/dist/embeddings/local.js +95 -0
  30. package/dist/embeddings/local.js.map +1 -0
  31. package/dist/evals/judge.d.ts +22 -0
  32. package/dist/evals/judge.d.ts.map +1 -0
  33. package/dist/evals/judge.js +77 -0
  34. package/dist/evals/judge.js.map +1 -0
  35. package/dist/index.d.ts +28 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +84 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/memory/buffer.d.ts +64 -0
  40. package/dist/memory/buffer.d.ts.map +1 -0
  41. package/dist/memory/buffer.js +168 -0
  42. package/dist/memory/buffer.js.map +1 -0
  43. package/dist/parsers/output.d.ts +64 -0
  44. package/dist/parsers/output.d.ts.map +1 -0
  45. package/dist/parsers/output.js +148 -0
  46. package/dist/parsers/output.js.map +1 -0
  47. package/dist/prompts/registry.d.ts +65 -0
  48. package/dist/prompts/registry.d.ts.map +1 -0
  49. package/dist/prompts/registry.js +170 -0
  50. package/dist/prompts/registry.js.map +1 -0
  51. package/dist/providers/ollama.d.ts +30 -0
  52. package/dist/providers/ollama.d.ts.map +1 -0
  53. package/dist/providers/ollama.js +104 -0
  54. package/dist/providers/ollama.js.map +1 -0
  55. package/dist/providers/openai.d.ts +46 -0
  56. package/dist/providers/openai.d.ts.map +1 -0
  57. package/dist/providers/openai.js +228 -0
  58. package/dist/providers/openai.js.map +1 -0
  59. package/dist/retrievers/index.d.ts +71 -0
  60. package/dist/retrievers/index.d.ts.map +1 -0
  61. package/dist/retrievers/index.js +130 -0
  62. package/dist/retrievers/index.js.map +1 -0
  63. package/dist/router/smartrouter.d.ts +36 -0
  64. package/dist/router/smartrouter.d.ts.map +1 -0
  65. package/dist/router/smartrouter.js +132 -0
  66. package/dist/router/smartrouter.js.map +1 -0
  67. package/dist/text_splitters/index.d.ts +28 -0
  68. package/dist/text_splitters/index.d.ts.map +1 -0
  69. package/dist/text_splitters/index.js +109 -0
  70. package/dist/text_splitters/index.js.map +1 -0
  71. package/dist/tools/decorator.d.ts +26 -0
  72. package/dist/tools/decorator.d.ts.map +1 -0
  73. package/dist/tools/decorator.js +102 -0
  74. package/dist/tools/decorator.js.map +1 -0
  75. package/dist/tools/index.d.ts +7 -0
  76. package/dist/tools/index.d.ts.map +1 -0
  77. package/dist/tools/index.js +6 -0
  78. package/dist/tools/index.js.map +1 -0
  79. package/dist/tools/keiro.d.ts +20 -0
  80. package/dist/tools/keiro.d.ts.map +1 -0
  81. package/dist/tools/keiro.js +67 -0
  82. package/dist/tools/keiro.js.map +1 -0
  83. package/dist/tracing/tracer.d.ts +56 -0
  84. package/dist/tracing/tracer.d.ts.map +1 -0
  85. package/dist/tracing/tracer.js +125 -0
  86. package/dist/tracing/tracer.js.map +1 -0
  87. package/dist/utils/logger.d.ts +25 -0
  88. package/dist/utils/logger.d.ts.map +1 -0
  89. package/dist/utils/logger.js +50 -0
  90. package/dist/utils/logger.js.map +1 -0
  91. package/dist/utils/pricing.d.ts +31 -0
  92. package/dist/utils/pricing.d.ts.map +1 -0
  93. package/dist/utils/pricing.js +108 -0
  94. package/dist/utils/pricing.js.map +1 -0
  95. package/dist/vectorstores/index.d.ts +62 -0
  96. package/dist/vectorstores/index.d.ts.map +1 -0
  97. package/dist/vectorstores/index.js +244 -0
  98. package/dist/vectorstores/index.js.map +1 -0
  99. package/package.json +48 -0
  100. package/src/cache/semantic.ts +175 -0
  101. package/src/chains/llmchain.ts +194 -0
  102. package/src/chains/rag.ts +65 -0
  103. package/src/core/types.ts +178 -0
  104. package/src/document_loaders/index.ts +223 -0
  105. package/src/embeddings/google.ts +119 -0
  106. package/src/embeddings/local.ts +118 -0
  107. package/src/evals/judge.ts +99 -0
  108. package/src/index.ts +121 -0
  109. package/src/memory/buffer.ts +222 -0
  110. package/src/parsers/output.ts +195 -0
  111. package/src/prompts/registry.ts +205 -0
  112. package/src/providers/ollama.ts +151 -0
  113. package/src/providers/openai.ts +320 -0
  114. package/src/retrievers/index.ts +182 -0
  115. package/src/router/smartrouter.ts +172 -0
  116. package/src/text_splitters/index.ts +145 -0
  117. package/src/tools/decorator.ts +145 -0
  118. package/src/tools/index.ts +7 -0
  119. package/src/tools/keiro.ts +92 -0
  120. package/src/tracing/tracer.ts +178 -0
  121. package/src/utils/logger.ts +62 -0
  122. package/src/utils/pricing.ts +133 -0
  123. package/src/vectorstores/index.ts +338 -0
  124. package/test-full.mjs +552 -0
  125. package/test.mjs +74 -0
  126. package/tsconfig.json +30 -0
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Lazlo Logger - Simple, structured logging
3
+ */
4
+ export var LogLevel;
5
+ (function (LogLevel) {
6
+ LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
7
+ LogLevel[LogLevel["INFO"] = 1] = "INFO";
8
+ LogLevel[LogLevel["WARN"] = 2] = "WARN";
9
+ LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
10
+ })(LogLevel || (LogLevel = {}));
11
+ const LEVEL_NAMES = ['DEBUG', 'INFO', 'WARN', 'ERROR'];
12
+ class Logger {
13
+ level = LogLevel.INFO;
14
+ prefix = '';
15
+ constructor(prefix = '') {
16
+ this.prefix = prefix;
17
+ }
18
+ setLevel(level) {
19
+ this.level = level;
20
+ }
21
+ setPrefix(prefix) {
22
+ this.prefix = prefix;
23
+ }
24
+ log(level, ...args) {
25
+ if (level < this.level)
26
+ return;
27
+ const timestamp = new Date().toISOString();
28
+ const levelName = LEVEL_NAMES[level];
29
+ const prefix = this.prefix ? `[${this.prefix}] ` : '';
30
+ console.log(`\x1b[90m${timestamp}\x1b[0m ${levelName} ${prefix}`, ...args);
31
+ }
32
+ debug(...args) {
33
+ this.log(LogLevel.DEBUG, ...args);
34
+ }
35
+ info(...args) {
36
+ this.log(LogLevel.INFO, ...args);
37
+ }
38
+ warn(...args) {
39
+ this.log(LogLevel.WARN, ...args);
40
+ }
41
+ error(...args) {
42
+ this.log(LogLevel.ERROR, ...args);
43
+ }
44
+ }
45
+ export const logger = new Logger('Lazlo');
46
+ // Factory for child loggers
47
+ export function createLogger(prefix) {
48
+ return new Logger(prefix);
49
+ }
50
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;AACX,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,MAAM,MAAM;IACF,KAAK,GAAa,QAAQ,CAAC,IAAI,CAAC;IAChC,MAAM,GAAW,EAAE,CAAC;IAE5B,YAAY,SAAiB,EAAE;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,KAAe;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,GAAG,IAAe;QAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;YAAE,OAAO;QAE/B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,WAAW,SAAS,WAAW,SAAS,IAAI,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAE1C,4BAA4B;AAC5B,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Lazlo Pricing - Model pricing lookup and cost calculation
3
+ */
4
+ import { ModelPricing } from '../core/types.js';
5
+ /**
6
+ * Get pricing for a model
7
+ */
8
+ export declare function getPricing(model: string): ModelPricing;
9
+ /**
10
+ * Set custom pricing for a model
11
+ */
12
+ export declare function setPricing(model: string, input: number, output: number): void;
13
+ /**
14
+ * Calculate cost in USD
15
+ */
16
+ export declare function calculateCost(model: string, tokensIn: number, tokensOut: number): number;
17
+ /**
18
+ * Estimate tokens from text (rough approximation)
19
+ */
20
+ export declare function estimateTokens(text: string): number;
21
+ /**
22
+ * Estimate cost from text
23
+ */
24
+ export declare function estimateCost(model: string, textIn: string, textOut: string): number;
25
+ /**
26
+ * Load pricing from environment variables
27
+ * Call this after setting process.env if needed
28
+ * Format: LAZLO_PRICING_model_name=input,output
29
+ */
30
+ export declare function loadEnvPricing(env?: Record<string, string | undefined>): void;
31
+ //# sourceMappingURL=pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/utils/pricing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAuChD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAqBtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,CAkB7E"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Lazlo Pricing - Model pricing lookup and cost calculation
3
+ */
4
+ // Default pricing for common models (per 1M tokens)
5
+ const DEFAULT_PRICING = {
6
+ // OpenAI
7
+ 'gpt-4o': { input: 2.50, output: 10.00 },
8
+ 'gpt-4o-mini': { input: 0.15, output: 0.60 },
9
+ 'gpt-4-turbo': { input: 10.00, output: 30.00 },
10
+ 'gpt-3.5-turbo': { input: 0.50, output: 1.50 },
11
+ 'gpt-4': { input: 30.00, output: 60.00 },
12
+ // Anthropic
13
+ 'claude-3-5-sonnet': { input: 3.00, output: 15.00 },
14
+ 'claude-3-5-sonnet-20241022': { input: 3.00, output: 15.00 },
15
+ 'claude-3-opus': { input: 15.00, output: 75.00 },
16
+ 'claude-3-sonnet': { input: 3.00, output: 15.00 },
17
+ 'claude-3-haiku': { input: 0.25, output: 1.25 },
18
+ // Google
19
+ 'gemini-1.5-flash': { input: 0.075, output: 0.30 },
20
+ 'gemini-1.5-pro': { input: 1.25, output: 5.00 },
21
+ 'gemini-2.0-flash': { input: 0.00, output: 0.00 },
22
+ 'gemini-2.0-flash-001': { input: 0.00, output: 0.00 },
23
+ 'gemini-2.0-pro': { input: 1.25, output: 5.00 },
24
+ // DeepSeek
25
+ 'deepseek-chat': { input: 0.14, output: 0.28 },
26
+ 'deepseek-coder': { input: 0.14, output: 0.28 },
27
+ // Meta Llama
28
+ 'llama-3.1-70b': { input: 0.00, output: 0.00 },
29
+ 'llama-3.1-8b': { input: 0.00, output: 0.00 },
30
+ 'llama-3-70b': { input: 0.00, output: 0.00 },
31
+ 'llama-3-8b': { input: 0.00, output: 0.00 },
32
+ };
33
+ // Custom pricing set by user
34
+ const customPricing = new Map();
35
+ /**
36
+ * Get pricing for a model
37
+ */
38
+ export function getPricing(model) {
39
+ // Check custom pricing first
40
+ if (customPricing.has(model)) {
41
+ return customPricing.get(model);
42
+ }
43
+ // Try exact match
44
+ if (DEFAULT_PRICING[model]) {
45
+ return DEFAULT_PRICING[model];
46
+ }
47
+ // Try partial match
48
+ const modelLower = model.toLowerCase();
49
+ for (const [key, pricing] of Object.entries(DEFAULT_PRICING)) {
50
+ if (modelLower.includes(key.toLowerCase()) || key.toLowerCase().includes(modelLower)) {
51
+ return pricing;
52
+ }
53
+ }
54
+ // Return placeholder - user needs to set pricing
55
+ return { input: 0, output: 0 };
56
+ }
57
+ /**
58
+ * Set custom pricing for a model
59
+ */
60
+ export function setPricing(model, input, output) {
61
+ customPricing.set(model, { input, output });
62
+ }
63
+ /**
64
+ * Calculate cost in USD
65
+ */
66
+ export function calculateCost(model, tokensIn, tokensOut) {
67
+ const pricing = getPricing(model);
68
+ return (tokensIn / 1_000_000 * pricing.input) + (tokensOut / 1_000_000 * pricing.output);
69
+ }
70
+ /**
71
+ * Estimate tokens from text (rough approximation)
72
+ */
73
+ export function estimateTokens(text) {
74
+ // Rough estimate: ~4 characters per token on average
75
+ return Math.max(1, Math.ceil(text.length / 4));
76
+ }
77
+ /**
78
+ * Estimate cost from text
79
+ */
80
+ export function estimateCost(model, textIn, textOut) {
81
+ const tokensIn = estimateTokens(textIn);
82
+ const tokensOut = estimateTokens(textOut);
83
+ return calculateCost(model, tokensIn, tokensOut);
84
+ }
85
+ /**
86
+ * Load pricing from environment variables
87
+ * Call this after setting process.env if needed
88
+ * Format: LAZLO_PRICING_model_name=input,output
89
+ */
90
+ export function loadEnvPricing(env) {
91
+ const environment = env ?? (typeof globalThis !== 'undefined' ? globalThis.process?.env : {});
92
+ for (const [key, value] of Object.entries(environment)) {
93
+ if (key.startsWith('LAZLO_PRICING_')) {
94
+ const modelName = key.replace('LAZLO_PRICING_', '').toLowerCase();
95
+ if (typeof value === 'string') {
96
+ const parts = value.split(',');
97
+ if (parts.length === 2) {
98
+ const input = parseFloat(parts[0]);
99
+ const output = parseFloat(parts[1]);
100
+ if (!isNaN(input) && !isNaN(output)) {
101
+ setPricing(modelName, input, output);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
108
+ //# sourceMappingURL=pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/utils/pricing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Vector Stores
3
+ *
4
+ * In-Memory, Chroma, and SQLite-Vector stores for document retrieval
5
+ */
6
+ export interface Document {
7
+ pageContent: string;
8
+ metadata: Record<string, unknown>;
9
+ }
10
+ export interface BaseEmbeddings {
11
+ embedQuery(text: string): Promise<number[]>;
12
+ embedDocuments(texts: string[]): Promise<number[][]>;
13
+ }
14
+ export declare class InMemoryVectorStore {
15
+ private embeddingModel?;
16
+ private store;
17
+ constructor(embeddingModel?: BaseEmbeddings);
18
+ addDocuments(documents: Document[]): Promise<void>;
19
+ similaritySearch(query: string, k?: number): Promise<Document[]>;
20
+ similaritySearchWithScore(query: string, k?: number): Promise<[Document, number][]>;
21
+ delete(): void;
22
+ }
23
+ export declare class ChromaVectorStore {
24
+ private embeddingModel?;
25
+ private collectionName;
26
+ private documents;
27
+ constructor(options?: {
28
+ embeddingModel?: BaseEmbeddings;
29
+ collectionName?: string;
30
+ });
31
+ addDocuments(documents: Document[]): Promise<string[]>;
32
+ similaritySearch(query: string, k?: number): Promise<Document[]>;
33
+ similaritySearchWithScore(query: string, k?: number): Promise<[Document, number][]>;
34
+ delete(ids: string[]): Promise<void>;
35
+ get(ids: string[]): Promise<Document[]>;
36
+ }
37
+ export declare class SQLiteVectorStore {
38
+ private embeddingModel?;
39
+ private dbPath;
40
+ private documents;
41
+ private db;
42
+ constructor(options?: {
43
+ embeddingModel?: BaseEmbeddings;
44
+ dbPath?: string;
45
+ });
46
+ private initialize;
47
+ addDocuments(documents: Document[]): Promise<string[]>;
48
+ similaritySearch(query: string, k?: number): Promise<Document[]>;
49
+ similaritySearchWithScore(query: string, k?: number): Promise<[Document, number][]>;
50
+ delete(ids: string[]): Promise<void>;
51
+ get(ids: string[]): Promise<Document[]>;
52
+ }
53
+ export declare function createVectorStore(embeddingModel?: BaseEmbeddings): InMemoryVectorStore;
54
+ export declare function createChromaVectorStore(options?: {
55
+ embeddingModel?: BaseEmbeddings;
56
+ collectionName?: string;
57
+ }): ChromaVectorStore;
58
+ export declare function createSQLiteVectorStore(options?: {
59
+ embeddingModel?: BaseEmbeddings;
60
+ dbPath?: string;
61
+ }): SQLiteVectorStore;
62
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectorstores/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACtD;AAyBD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,KAAK,CAAmB;gBAEpB,cAAc,CAAC,EAAE,cAAc;IAKrC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBlD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuBnE,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;IAoB5F,MAAM,IAAI,IAAI;CAGf;AAMD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAqC;gBAE1C,OAAO,GAAE;QACnB,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,MAAM,CAAC;KACpB;IAMA,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAsBtD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqBnE,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;IAqBtF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAM9C;AAMD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,EAAE,CAAa;gBAEX,OAAO,GAAE;QACnB,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IASN,OAAO,CAAC,UAAU;IAKZ,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAsBtD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqBnE,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;IAqBtF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAM9C;AAMD,wBAAgB,iBAAiB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAEtF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,iBAAiB,CAEpB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,iBAAiB,CAEpB"}
@@ -0,0 +1,244 @@
1
+ /**
2
+ * Vector Stores
3
+ *
4
+ * In-Memory, Chroma, and SQLite-Vector stores for document retrieval
5
+ */
6
+ import { logger } from '../utils/logger.js';
7
+ // ============================================================================
8
+ // Cosine Similarity
9
+ // ============================================================================
10
+ function cosineSimilarity(a, b) {
11
+ const dot = a.reduce((sum, v, i) => sum + v * b[i], 0);
12
+ const normA = Math.sqrt(a.reduce((sum, v) => sum + v * v, 0));
13
+ const normB = Math.sqrt(b.reduce((sum, v) => sum + v * v, 0));
14
+ if (normA === 0 || normB === 0)
15
+ return 0;
16
+ return dot / (normA * normB);
17
+ }
18
+ export class InMemoryVectorStore {
19
+ embeddingModel;
20
+ store = [];
21
+ constructor(embeddingModel) {
22
+ this.embeddingModel = embeddingModel;
23
+ logger.info('[Lazlo] InMemoryVectorStore ready.');
24
+ }
25
+ async addDocuments(documents) {
26
+ if (!this.embeddingModel) {
27
+ throw new Error('No embedding model provided');
28
+ }
29
+ const texts = documents.map(d => d.pageContent);
30
+ const metadatas = documents.map(d => d.metadata);
31
+ const embeddings = await this.embeddingModel.embedDocuments(texts);
32
+ documents.forEach((doc, i) => {
33
+ this.store.push({
34
+ pageContent: doc.pageContent,
35
+ metadata: doc.metadata,
36
+ embedding: embeddings[i],
37
+ });
38
+ });
39
+ }
40
+ async similaritySearch(query, k = 4) {
41
+ if (!this.embeddingModel) {
42
+ throw new Error('No embedding model provided');
43
+ }
44
+ const queryEmbedding = await this.embeddingModel.embedQuery(query);
45
+ // Score all documents
46
+ const scored = this.store.map(doc => ({
47
+ doc,
48
+ score: cosineSimilarity(queryEmbedding, doc.embedding),
49
+ }));
50
+ // Sort by score descending
51
+ scored.sort((a, b) => b.score - a.score);
52
+ // Return top k
53
+ return scored.slice(0, k).map(s => ({
54
+ pageContent: s.doc.pageContent,
55
+ metadata: s.doc.metadata,
56
+ }));
57
+ }
58
+ async similaritySearchWithScore(query, k = 4) {
59
+ if (!this.embeddingModel) {
60
+ throw new Error('No embedding model provided');
61
+ }
62
+ const queryEmbedding = await this.embeddingModel.embedQuery(query);
63
+ const scored = this.store.map(doc => ({
64
+ doc,
65
+ score: cosineSimilarity(queryEmbedding, doc.embedding),
66
+ }));
67
+ scored.sort((a, b) => b.score - a.score);
68
+ return scored.slice(0, k).map(s => [
69
+ { pageContent: s.doc.pageContent, metadata: s.doc.metadata },
70
+ s.score,
71
+ ]);
72
+ }
73
+ delete() {
74
+ this.store = [];
75
+ }
76
+ }
77
+ // ============================================================================
78
+ // Chroma Vector Store (Client-side implementation)
79
+ // ============================================================================
80
+ export class ChromaVectorStore {
81
+ embeddingModel;
82
+ collectionName;
83
+ documents = new Map();
84
+ constructor(options = {}) {
85
+ this.embeddingModel = options.embeddingModel;
86
+ this.collectionName = options.collectionName || 'lazlo-collection';
87
+ logger.info(`[Lazlo] ChromaVectorStore ready. Collection: ${this.collectionName}`);
88
+ }
89
+ async addDocuments(documents) {
90
+ if (!this.embeddingModel) {
91
+ throw new Error('No embedding model provided');
92
+ }
93
+ const texts = documents.map(d => d.pageContent);
94
+ const embeddings = await this.embeddingModel.embedDocuments(texts);
95
+ const ids = [];
96
+ documents.forEach((doc, i) => {
97
+ const id = crypto.randomUUID();
98
+ this.documents.set(id, {
99
+ pageContent: doc.pageContent,
100
+ metadata: doc.metadata,
101
+ embedding: embeddings[i],
102
+ });
103
+ ids.push(id);
104
+ });
105
+ return ids;
106
+ }
107
+ async similaritySearch(query, k = 4) {
108
+ if (!this.embeddingModel) {
109
+ throw new Error('No embedding model provided');
110
+ }
111
+ const queryEmbedding = await this.embeddingModel.embedQuery(query);
112
+ const scored = Array.from(this.documents.entries()).map(([id, doc]) => ({
113
+ id,
114
+ doc,
115
+ score: cosineSimilarity(queryEmbedding, doc.embedding),
116
+ }));
117
+ scored.sort((a, b) => b.score - a.score);
118
+ return scored.slice(0, k).map(s => ({
119
+ pageContent: s.doc.pageContent,
120
+ metadata: s.doc.metadata,
121
+ }));
122
+ }
123
+ async similaritySearchWithScore(query, k = 4) {
124
+ if (!this.embeddingModel) {
125
+ throw new Error('No embedding model provided');
126
+ }
127
+ const queryEmbedding = await this.embeddingModel.embedQuery(query);
128
+ const scored = Array.from(this.documents.entries()).map(([id, doc]) => ({
129
+ id,
130
+ doc,
131
+ score: cosineSimilarity(queryEmbedding, doc.embedding),
132
+ }));
133
+ scored.sort((a, b) => b.score - a.score);
134
+ return scored.slice(0, k).map(s => [
135
+ { pageContent: s.doc.pageContent, metadata: s.doc.metadata },
136
+ s.score,
137
+ ]);
138
+ }
139
+ async delete(ids) {
140
+ for (const id of ids) {
141
+ this.documents.delete(id);
142
+ }
143
+ }
144
+ async get(ids) {
145
+ return ids
146
+ .map(id => this.documents.get(id))
147
+ .filter((d) => d !== undefined)
148
+ .map(d => ({ pageContent: d.pageContent, metadata: d.metadata }));
149
+ }
150
+ }
151
+ // ============================================================================
152
+ // SQLite-Vector Store (using better-sqlite3 if available)
153
+ // ============================================================================
154
+ export class SQLiteVectorStore {
155
+ embeddingModel;
156
+ dbPath;
157
+ documents = new Map();
158
+ db = null;
159
+ constructor(options = {}) {
160
+ this.embeddingModel = options.embeddingModel;
161
+ this.dbPath = options.dbPath || ':memory:';
162
+ logger.info(`[Lazlo] SQLiteVectorStore ready. Path: ${this.dbPath}`);
163
+ // Initialize in-memory storage (full SQLite-Vector requires native module)
164
+ this.initialize();
165
+ }
166
+ initialize() {
167
+ // In-memory storage as fallback (actual sqlite-vec requires native module)
168
+ logger.debug('[SQLiteVectorStore] Using in-memory storage (install better-sqlite3 for full SQLite-Vector support)');
169
+ }
170
+ async addDocuments(documents) {
171
+ if (!this.embeddingModel) {
172
+ throw new Error('No embedding model provided');
173
+ }
174
+ const texts = documents.map(d => d.pageContent);
175
+ const embeddings = await this.embeddingModel.embedDocuments(texts);
176
+ const ids = [];
177
+ documents.forEach((doc, i) => {
178
+ const id = crypto.randomUUID();
179
+ this.documents.set(id, {
180
+ pageContent: doc.pageContent,
181
+ metadata: doc.metadata,
182
+ embedding: embeddings[i],
183
+ });
184
+ ids.push(id);
185
+ });
186
+ return ids;
187
+ }
188
+ async similaritySearch(query, k = 4) {
189
+ if (!this.embeddingModel) {
190
+ throw new Error('No embedding model provided');
191
+ }
192
+ const queryEmbedding = await this.embeddingModel.embedQuery(query);
193
+ const scored = Array.from(this.documents.entries()).map(([id, doc]) => ({
194
+ id,
195
+ doc,
196
+ score: cosineSimilarity(queryEmbedding, doc.embedding),
197
+ }));
198
+ scored.sort((a, b) => b.score - a.score);
199
+ return scored.slice(0, k).map(s => ({
200
+ pageContent: s.doc.pageContent,
201
+ metadata: s.doc.metadata,
202
+ }));
203
+ }
204
+ async similaritySearchWithScore(query, k = 4) {
205
+ if (!this.embeddingModel) {
206
+ throw new Error('No embedding model provided');
207
+ }
208
+ const queryEmbedding = await this.embeddingModel.embedQuery(query);
209
+ const scored = Array.from(this.documents.entries()).map(([id, doc]) => ({
210
+ id,
211
+ doc,
212
+ score: cosineSimilarity(queryEmbedding, doc.embedding),
213
+ }));
214
+ scored.sort((a, b) => b.score - a.score);
215
+ return scored.slice(0, k).map(s => [
216
+ { pageContent: s.doc.pageContent, metadata: s.doc.metadata },
217
+ s.score,
218
+ ]);
219
+ }
220
+ async delete(ids) {
221
+ for (const id of ids) {
222
+ this.documents.delete(id);
223
+ }
224
+ }
225
+ async get(ids) {
226
+ return ids
227
+ .map(id => this.documents.get(id))
228
+ .filter((d) => d !== undefined)
229
+ .map(d => ({ pageContent: d.pageContent, metadata: d.metadata }));
230
+ }
231
+ }
232
+ // ============================================================================
233
+ // Factory
234
+ // ============================================================================
235
+ export function createVectorStore(embeddingModel) {
236
+ return new InMemoryVectorStore(embeddingModel);
237
+ }
238
+ export function createChromaVectorStore(options) {
239
+ return new ChromaVectorStore(options);
240
+ }
241
+ export function createSQLiteVectorStore(options) {
242
+ return new SQLiteVectorStore(options);
243
+ }
244
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vectorstores/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "lazlo-ai",
3
+ "version": "1.0.0",
4
+ "description": "The Anti-Framework for AI - A production-grade AI framework for JavaScript/TypeScript",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
11
+ "start": "node dist/index.js",
12
+ "dashboard": "node dist/observability/dashboard.js"
13
+ },
14
+ "keywords": [
15
+ "ai",
16
+ "llm",
17
+ "openai",
18
+ "langchain",
19
+ "gemini",
20
+ "anthropic",
21
+ "ollama",
22
+ "chatgpt",
23
+ "gpt",
24
+ "claude"
25
+ ],
26
+ "author": "Lazlo Team",
27
+ "license": "MIT",
28
+ "dependencies": {
29
+ "axios": "^1.6.0",
30
+ "dotenv": "^16.3.1",
31
+ "zod": "^3.22.4",
32
+ "express": "^4.18.2",
33
+ "cors": "^2.8.5",
34
+ "ws": "^8.14.2"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^20.10.0",
38
+ "@types/express": "^4.17.21",
39
+ "@types/cors": "^2.8.17",
40
+ "@types/ws": "^8.5.10",
41
+ "typescript": "^5.3.2",
42
+ "jest": "^29.7.0",
43
+ "ts-jest": "^29.1.1"
44
+ },
45
+ "engines": {
46
+ "node": ">=18.0.0"
47
+ }
48
+ }