rax-flow-core 0.2.0 → 2.0.1

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 (46) hide show
  1. package/dist/governance/audit-trail.d.ts +94 -0
  2. package/dist/governance/audit-trail.d.ts.map +1 -0
  3. package/dist/governance/audit-trail.js +246 -0
  4. package/dist/governance/audit-trail.js.map +1 -0
  5. package/dist/governance/policy-engine.d.ts +101 -0
  6. package/dist/governance/policy-engine.d.ts.map +1 -0
  7. package/dist/governance/policy-engine.js +446 -0
  8. package/dist/governance/policy-engine.js.map +1 -0
  9. package/dist/governance/rbac-engine.d.ts +59 -0
  10. package/dist/governance/rbac-engine.d.ts.map +1 -0
  11. package/dist/governance/rbac-engine.js +183 -0
  12. package/dist/governance/rbac-engine.js.map +1 -0
  13. package/dist/index.d.ts +5 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +5 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/memory/embeddings-service.d.ts +116 -0
  18. package/dist/memory/embeddings-service.d.ts.map +1 -0
  19. package/dist/memory/embeddings-service.js +287 -0
  20. package/dist/memory/embeddings-service.js.map +1 -0
  21. package/dist/memory/local-vector-store.d.ts +37 -3
  22. package/dist/memory/local-vector-store.d.ts.map +1 -1
  23. package/dist/memory/local-vector-store.js +91 -8
  24. package/dist/memory/local-vector-store.js.map +1 -1
  25. package/dist/orchestrator/core-orchestrator.d.ts +12 -0
  26. package/dist/orchestrator/core-orchestrator.d.ts.map +1 -1
  27. package/dist/orchestrator/core-orchestrator.js +75 -0
  28. package/dist/orchestrator/core-orchestrator.js.map +1 -1
  29. package/dist/orchestrator/task-decomposer.d.ts +56 -0
  30. package/dist/orchestrator/task-decomposer.d.ts.map +1 -0
  31. package/dist/orchestrator/task-decomposer.js +286 -0
  32. package/dist/orchestrator/task-decomposer.js.map +1 -0
  33. package/dist/plugins/plugin-system.d.ts +84 -1
  34. package/dist/plugins/plugin-system.d.ts.map +1 -1
  35. package/dist/plugins/plugin-system.js +91 -0
  36. package/dist/plugins/plugin-system.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/governance/audit-trail.ts +375 -0
  39. package/src/governance/policy-engine.ts +582 -0
  40. package/src/governance/rbac-engine.ts +244 -0
  41. package/src/index.ts +5 -2
  42. package/src/memory/embeddings-service.ts +322 -0
  43. package/src/memory/local-vector-store.ts +105 -8
  44. package/src/orchestrator/core-orchestrator.ts +78 -0
  45. package/src/orchestrator/task-decomposer.ts +428 -0
  46. package/src/plugins/plugin-system.ts +162 -1
@@ -0,0 +1,183 @@
1
+ const DEFAULT_ROLES = [
2
+ {
3
+ name: "admin",
4
+ description: "Full system access",
5
+ permissions: [
6
+ "workflow:read", "workflow:write", "workflow:execute", "workflow:delete",
7
+ "config:read", "config:write",
8
+ "metrics:read", "audit:read",
9
+ "memory:read", "memory:write",
10
+ "plugins:manage", "providers:configure"
11
+ ]
12
+ },
13
+ {
14
+ name: "user",
15
+ description: "Standard user with execution capabilities",
16
+ permissions: [
17
+ "workflow:read", "workflow:write", "workflow:execute",
18
+ "config:read",
19
+ "metrics:read",
20
+ "memory:read", "memory:write"
21
+ ]
22
+ },
23
+ {
24
+ name: "viewer",
25
+ description: "Read-only access",
26
+ permissions: [
27
+ "workflow:read",
28
+ "metrics:read"
29
+ ]
30
+ }
31
+ ];
32
+ export class RBACEngine {
33
+ roles = new Map();
34
+ users = new Map();
35
+ customPermissions = new Map();
36
+ constructor(roles = DEFAULT_ROLES) {
37
+ for (const role of roles) {
38
+ this.roles.set(role.name, role);
39
+ }
40
+ }
41
+ createAdminUser(id, name, email) {
42
+ return this.createUser(id, name, "admin", email);
43
+ }
44
+ createUser(id, name, role, email) {
45
+ const user = {
46
+ id,
47
+ name,
48
+ email,
49
+ role,
50
+ createdAt: Date.now()
51
+ };
52
+ this.users.set(id, user);
53
+ return user;
54
+ }
55
+ getUser(id) {
56
+ return this.users.get(id);
57
+ }
58
+ updateUserRole(userId, role) {
59
+ const user = this.users.get(userId);
60
+ if (!user)
61
+ return false;
62
+ user.role = role;
63
+ this.customPermissions.delete(userId);
64
+ return true;
65
+ }
66
+ grantPermission(userId, permission) {
67
+ const user = this.users.get(userId);
68
+ if (!user)
69
+ return false;
70
+ const existing = this.customPermissions.get(userId) || [];
71
+ if (!existing.includes(permission)) {
72
+ this.customPermissions.set(userId, [...existing, permission]);
73
+ }
74
+ return true;
75
+ }
76
+ revokePermission(userId, permission) {
77
+ const user = this.users.get(userId);
78
+ if (!user)
79
+ return false;
80
+ const existing = this.customPermissions.get(userId) || [];
81
+ const filtered = existing.filter(p => p !== permission);
82
+ this.customPermissions.set(userId, filtered);
83
+ return true;
84
+ }
85
+ hasPermission(userId, permission) {
86
+ const user = this.users.get(userId);
87
+ if (!user)
88
+ return false;
89
+ const customPerms = this.customPermissions.get(userId);
90
+ if (customPerms?.includes(permission))
91
+ return true;
92
+ const roleDef = this.roles.get(user.role);
93
+ if (!roleDef)
94
+ return false;
95
+ if (roleDef.permissions.includes(permission))
96
+ return true;
97
+ if (roleDef.inherits) {
98
+ const parentRole = this.roles.get(roleDef.inherits);
99
+ return parentRole?.permissions.includes(permission) ?? false;
100
+ }
101
+ return false;
102
+ }
103
+ checkPermission(userId, permission) {
104
+ if (this.hasPermission(userId, permission)) {
105
+ return { allowed: true };
106
+ }
107
+ const user = this.users.get(userId);
108
+ if (!user) {
109
+ return { allowed: false, reason: "User not found" };
110
+ }
111
+ return { allowed: false, reason: `Role '${user.role}' does not have permission '${permission}'` };
112
+ }
113
+ getUserPermissions(userId) {
114
+ const user = this.users.get(userId);
115
+ if (!user)
116
+ return [];
117
+ const roleDef = this.roles.get(user.role);
118
+ const rolePerms = roleDef?.permissions || [];
119
+ const customPerms = this.customPermissions.get(userId) || [];
120
+ return [...new Set([...rolePerms, ...customPerms])];
121
+ }
122
+ getRolePermissions(role) {
123
+ const roleDef = this.roles.get(role);
124
+ return roleDef?.permissions || [];
125
+ }
126
+ addRole(definition) {
127
+ this.roles.set(definition.name, definition);
128
+ }
129
+ removeRole(role) {
130
+ if (["admin", "user", "viewer"].includes(role)) {
131
+ return false;
132
+ }
133
+ return this.roles.delete(role);
134
+ }
135
+ listRoles() {
136
+ return Array.from(this.roles.values());
137
+ }
138
+ listUsers() {
139
+ return Array.from(this.users.values());
140
+ }
141
+ deleteUser(userId) {
142
+ this.customPermissions.delete(userId);
143
+ return this.users.delete(userId);
144
+ }
145
+ validateAccess(userId, resource, action) {
146
+ const permission = `${resource}:${action}`;
147
+ return this.checkPermission(userId, permission);
148
+ }
149
+ canExecuteWorkflow(userId) {
150
+ return this.hasPermission(userId, "workflow:execute");
151
+ }
152
+ canModifyConfig(userId) {
153
+ return this.hasPermission(userId, "config:write");
154
+ }
155
+ canViewMetrics(userId) {
156
+ return this.hasPermission(userId, "metrics:read");
157
+ }
158
+ canManagePlugins(userId) {
159
+ return this.hasPermission(userId, "plugins:manage");
160
+ }
161
+ canConfigureProviders(userId) {
162
+ return this.hasPermission(userId, "providers:configure");
163
+ }
164
+ exportState() {
165
+ return {
166
+ users: Array.from(this.users.values()),
167
+ customPermissions: Object.fromEntries(this.customPermissions)
168
+ };
169
+ }
170
+ importState(state) {
171
+ this.users.clear();
172
+ this.customPermissions.clear();
173
+ for (const user of state.users) {
174
+ this.users.set(user.id, user);
175
+ }
176
+ if (state.customPermissions) {
177
+ for (const [userId, perms] of Object.entries(state.customPermissions)) {
178
+ this.customPermissions.set(userId, perms);
179
+ }
180
+ }
181
+ }
182
+ }
183
+ //# sourceMappingURL=rbac-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rbac-engine.js","sourceRoot":"","sources":["../../src/governance/rbac-engine.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export * from "./types/contracts.js";
2
2
  export * from "./orchestrator/core-orchestrator.js";
3
3
  export * from "./orchestrator/routing.js";
4
- export * from "./orchestrator/decomposition.js";
4
+ export { Decomposition, Subtask, TaskChunk, decomposeTask } from "./orchestrator/decomposition-engine.js";
5
+ export * from "./orchestrator/task-decomposer.js";
5
6
  export * from "./orchestrator/default-workflow.js";
6
7
  export * from "./orchestrator/verify-fix.js";
7
8
  export * from "./orchestrator/kernel-bridge.js";
@@ -22,4 +23,7 @@ export * from "./memory/memory-manager.js";
22
23
  export * from "./plugins/long-term-memory-plugin.js";
23
24
  export * from "./plugins/governance-plugin.js";
24
25
  export * from "./governance/policies/pii-policy.js";
26
+ export * from "./governance/rbac-engine.js";
27
+ export * from "./governance/audit-trail.js";
28
+ export * from "./governance/policy-engine.js";
25
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AAErD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC1G,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  export * from "./types/contracts.js";
2
2
  export * from "./orchestrator/core-orchestrator.js";
3
3
  export * from "./orchestrator/routing.js";
4
- export * from "./orchestrator/decomposition.js";
4
+ export { Decomposition, decomposeTask } from "./orchestrator/decomposition-engine.js";
5
+ export * from "./orchestrator/task-decomposer.js";
5
6
  export * from "./orchestrator/default-workflow.js";
6
7
  export * from "./orchestrator/verify-fix.js";
7
8
  export * from "./orchestrator/kernel-bridge.js";
@@ -22,4 +23,7 @@ export * from "./memory/memory-manager.js";
22
23
  export * from "./plugins/long-term-memory-plugin.js";
23
24
  export * from "./plugins/governance-plugin.js";
24
25
  export * from "./governance/policies/pii-policy.js";
26
+ export * from "./governance/rbac-engine.js";
27
+ export * from "./governance/audit-trail.js";
28
+ export * from "./governance/policy-engine.js";
25
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AAErD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAsB,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC1G,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * EmbeddingsService: Convert text/outputs to vector embeddings.
3
+ * Supports OpenAI, Cohere, or local models.
4
+ * Used to feed the LocalVectorStore with semantic vectors.
5
+ */
6
+ export interface EmbeddingProvider {
7
+ name: string;
8
+ embed(text: string): Promise<number[]>;
9
+ batchEmbed(texts: string[]): Promise<number[][]>;
10
+ getDimensions(): number;
11
+ }
12
+ /**
13
+ * OpenAI embeddings provider
14
+ */
15
+ export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
16
+ private apiKey;
17
+ private model;
18
+ name: string;
19
+ private dimension;
20
+ constructor(apiKey: string, model?: string);
21
+ embed(text: string): Promise<number[]>;
22
+ batchEmbed(texts: string[]): Promise<number[][]>;
23
+ getDimensions(): number;
24
+ }
25
+ /**
26
+ * Cohere embeddings provider
27
+ */
28
+ export declare class CohereEmbeddingProvider implements EmbeddingProvider {
29
+ private apiKey;
30
+ private model;
31
+ name: string;
32
+ private dimension;
33
+ constructor(apiKey: string, model?: string);
34
+ embed(text: string): Promise<number[]>;
35
+ batchEmbed(texts: string[]): Promise<number[][]>;
36
+ getDimensions(): number;
37
+ }
38
+ /**
39
+ * Mock local embeddings provider (for testing/offline)
40
+ * Generates pseudo-random vectors based on text hash
41
+ */
42
+ export declare class LocalEmbeddingProvider implements EmbeddingProvider {
43
+ name: string;
44
+ private dimension;
45
+ constructor();
46
+ embed(text: string): Promise<number[]>;
47
+ batchEmbed(texts: string[]): Promise<number[][]>;
48
+ getDimensions(): number;
49
+ private textToVector;
50
+ private simpleHash;
51
+ }
52
+ /**
53
+ * Embeddings Service: Orchestrates embedding generation and caching
54
+ */
55
+ export declare class EmbeddingsService {
56
+ private provider;
57
+ private cache;
58
+ private cacheHits;
59
+ private cacheMisses;
60
+ constructor(provider?: EmbeddingProvider | string);
61
+ /**
62
+ * Get a default provider by name
63
+ */
64
+ private getDefaultProvider;
65
+ /**
66
+ * Embed a single text, with caching
67
+ */
68
+ embed(text: string, useCache?: boolean): Promise<number[]>;
69
+ /**
70
+ * Embed multiple texts
71
+ */
72
+ batchEmbed(texts: string[], useCache?: boolean): Promise<number[][]>;
73
+ /**
74
+ * Clear cache and reset stats
75
+ */
76
+ clearCache(): void;
77
+ /**
78
+ * Get cache statistics
79
+ */
80
+ getCacheStats(): {
81
+ cacheHits: number;
82
+ cacheMisses: number;
83
+ hitRate: string;
84
+ cacheSize: number;
85
+ provider: string;
86
+ dimensions: number;
87
+ };
88
+ /**
89
+ * Set embeddings provider
90
+ */
91
+ setProvider(provider: EmbeddingProvider): void;
92
+ /**
93
+ * Get current provider
94
+ */
95
+ getProvider(): EmbeddingProvider;
96
+ /**
97
+ * Get dimensions of embedding vectors
98
+ */
99
+ getDimensions(): number;
100
+ /**
101
+ * Cache key generation (simple MD5 alternative)
102
+ */
103
+ private getCacheKey;
104
+ /**
105
+ * Pre-warm cache with common prompts/outputs
106
+ */
107
+ warmCache(documents: string[]): Promise<void>;
108
+ }
109
+ /**
110
+ * Create embeddings service from environment or config
111
+ */
112
+ export declare function createEmbeddingsService(config?: {
113
+ provider?: "openai" | "cohere" | "local";
114
+ apiKey?: string;
115
+ }): EmbeddingsService;
116
+ //# sourceMappingURL=embeddings-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings-service.d.ts","sourceRoot":"","sources":["../../src/memory/embeddings-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,287 @@
1
+ /**
2
+ * EmbeddingsService: Convert text/outputs to vector embeddings.
3
+ * Supports OpenAI, Cohere, or local models.
4
+ * Used to feed the LocalVectorStore with semantic vectors.
5
+ */
6
+ /**
7
+ * OpenAI embeddings provider
8
+ */
9
+ export class OpenAIEmbeddingProvider {
10
+ apiKey;
11
+ model;
12
+ name = "openai";
13
+ dimension = 1536;
14
+ constructor(apiKey, model = "text-embedding-3-small") {
15
+ this.apiKey = apiKey;
16
+ this.model = model;
17
+ }
18
+ async embed(text) {
19
+ const results = await this.batchEmbed([text]);
20
+ return results[0];
21
+ }
22
+ async batchEmbed(texts) {
23
+ try {
24
+ const response = await fetch("https://api.openai.com/v1/embeddings", {
25
+ method: "POST",
26
+ headers: {
27
+ "Content-Type": "application/json",
28
+ "Authorization": `Bearer ${this.apiKey}`
29
+ },
30
+ body: JSON.stringify({
31
+ model: this.model,
32
+ input: texts
33
+ })
34
+ });
35
+ if (!response.ok) {
36
+ throw new Error(`OpenAI API error: ${response.statusText}`);
37
+ }
38
+ const data = await response.json();
39
+ return data.data.sort((a, b) => a.index - b.index).map((item) => item.embedding);
40
+ }
41
+ catch (err) {
42
+ console.error("OpenAI embedding error:", err);
43
+ throw err;
44
+ }
45
+ }
46
+ getDimensions() {
47
+ return this.dimension;
48
+ }
49
+ }
50
+ /**
51
+ * Cohere embeddings provider
52
+ */
53
+ export class CohereEmbeddingProvider {
54
+ apiKey;
55
+ model;
56
+ name = "cohere";
57
+ dimension = 4096;
58
+ constructor(apiKey, model = "embed-english-v3.0") {
59
+ this.apiKey = apiKey;
60
+ this.model = model;
61
+ }
62
+ async embed(text) {
63
+ const results = await this.batchEmbed([text]);
64
+ return results[0];
65
+ }
66
+ async batchEmbed(texts) {
67
+ try {
68
+ const response = await fetch("https://api.cohere.ai/v1/embed", {
69
+ method: "POST",
70
+ headers: {
71
+ "Content-Type": "application/json",
72
+ "Authorization": `Bearer ${this.apiKey}`
73
+ },
74
+ body: JSON.stringify({
75
+ texts,
76
+ model: this.model,
77
+ input_type: "search_document"
78
+ })
79
+ });
80
+ if (!response.ok) {
81
+ throw new Error(`Cohere API error: ${response.statusText}`);
82
+ }
83
+ const data = await response.json();
84
+ return data.embeddings;
85
+ }
86
+ catch (err) {
87
+ console.error("Cohere embedding error:", err);
88
+ throw err;
89
+ }
90
+ }
91
+ getDimensions() {
92
+ return this.dimension;
93
+ }
94
+ }
95
+ /**
96
+ * Mock local embeddings provider (for testing/offline)
97
+ * Generates pseudo-random vectors based on text hash
98
+ */
99
+ export class LocalEmbeddingProvider {
100
+ name = "local";
101
+ dimension = 384;
102
+ constructor() { }
103
+ async embed(text) {
104
+ return this.textToVector(text);
105
+ }
106
+ async batchEmbed(texts) {
107
+ return texts.map(text => this.textToVector(text));
108
+ }
109
+ getDimensions() {
110
+ return this.dimension;
111
+ }
112
+ textToVector(text) {
113
+ // Simple hash-based deterministic vector generation
114
+ const hash = this.simpleHash(text);
115
+ const vector = [];
116
+ let seed = hash;
117
+ for (let i = 0; i < this.dimension; i++) {
118
+ seed = (seed * 9301 + 49297) % 233280;
119
+ vector.push((seed / 233280) * 2 - 1); // Normalize to [-1, 1]
120
+ }
121
+ // Normalize to unit vector
122
+ const magnitude = Math.sqrt(vector.reduce((sum, v) => sum + v * v, 0));
123
+ return vector.map(v => magnitude > 0 ? v / magnitude : 0);
124
+ }
125
+ simpleHash(str) {
126
+ let hash = 0;
127
+ for (let i = 0; i < str.length; i++) {
128
+ const char = str.charCodeAt(i);
129
+ hash = ((hash << 5) - hash) + char;
130
+ hash = hash & hash; // Convert to 32bit integer
131
+ }
132
+ return Math.abs(hash);
133
+ }
134
+ }
135
+ /**
136
+ * Embeddings Service: Orchestrates embedding generation and caching
137
+ */
138
+ export class EmbeddingsService {
139
+ provider;
140
+ cache = new Map();
141
+ cacheHits = 0;
142
+ cacheMisses = 0;
143
+ constructor(provider = "local") {
144
+ if (typeof provider === "string") {
145
+ this.provider = this.getDefaultProvider(provider);
146
+ }
147
+ else {
148
+ this.provider = provider;
149
+ }
150
+ }
151
+ /**
152
+ * Get a default provider by name
153
+ */
154
+ getDefaultProvider(name) {
155
+ const apiKey = process.env[`${name.toUpperCase()}_API_KEY`] || "";
156
+ switch (name.toLowerCase()) {
157
+ case "openai":
158
+ return new OpenAIEmbeddingProvider(apiKey);
159
+ case "cohere":
160
+ return new CohereEmbeddingProvider(apiKey);
161
+ case "local":
162
+ default:
163
+ return new LocalEmbeddingProvider();
164
+ }
165
+ }
166
+ /**
167
+ * Embed a single text, with caching
168
+ */
169
+ async embed(text, useCache = true) {
170
+ const cacheKey = this.getCacheKey(text);
171
+ if (useCache && this.cache.has(cacheKey)) {
172
+ this.cacheHits++;
173
+ return this.cache.get(cacheKey);
174
+ }
175
+ this.cacheMisses++;
176
+ const vector = await this.provider.embed(text);
177
+ this.cache.set(cacheKey, vector);
178
+ return vector;
179
+ }
180
+ /**
181
+ * Embed multiple texts
182
+ */
183
+ async batchEmbed(texts, useCache = true) {
184
+ const results = [];
185
+ const missingIndices = [];
186
+ const missingTexts = [];
187
+ // Check cache first
188
+ for (let i = 0; i < texts.length; i++) {
189
+ const cacheKey = this.getCacheKey(texts[i]);
190
+ if (useCache && this.cache.has(cacheKey)) {
191
+ results[i] = this.cache.get(cacheKey);
192
+ this.cacheHits++;
193
+ }
194
+ else {
195
+ missingIndices.push(i);
196
+ missingTexts.push(texts[i]);
197
+ }
198
+ }
199
+ // Embed missing texts
200
+ if (missingTexts.length > 0) {
201
+ this.cacheMisses += missingTexts.length;
202
+ const vectors = await this.provider.batchEmbed(missingTexts);
203
+ for (let i = 0; i < missingTexts.length; i++) {
204
+ const cacheKey = this.getCacheKey(missingTexts[i]);
205
+ results[missingIndices[i]] = vectors[i];
206
+ this.cache.set(cacheKey, vectors[i]);
207
+ }
208
+ }
209
+ return results;
210
+ }
211
+ /**
212
+ * Clear cache and reset stats
213
+ */
214
+ clearCache() {
215
+ this.cache.clear();
216
+ this.cacheHits = 0;
217
+ this.cacheMisses = 0;
218
+ }
219
+ /**
220
+ * Get cache statistics
221
+ */
222
+ getCacheStats() {
223
+ const total = this.cacheHits + this.cacheMisses;
224
+ return {
225
+ cacheHits: this.cacheHits,
226
+ cacheMisses: this.cacheMisses,
227
+ hitRate: total > 0 ? (this.cacheHits / total * 100).toFixed(2) + "%" : "N/A",
228
+ cacheSize: this.cache.size,
229
+ provider: this.provider.name,
230
+ dimensions: this.provider.getDimensions()
231
+ };
232
+ }
233
+ /**
234
+ * Set embeddings provider
235
+ */
236
+ setProvider(provider) {
237
+ this.provider = provider;
238
+ this.clearCache();
239
+ }
240
+ /**
241
+ * Get current provider
242
+ */
243
+ getProvider() {
244
+ return this.provider;
245
+ }
246
+ /**
247
+ * Get dimensions of embedding vectors
248
+ */
249
+ getDimensions() {
250
+ return this.provider.getDimensions();
251
+ }
252
+ /**
253
+ * Cache key generation (simple MD5 alternative)
254
+ */
255
+ getCacheKey(text) {
256
+ // Simple deterministic hash for caching
257
+ return Buffer.from(text).toString("base64");
258
+ }
259
+ /**
260
+ * Pre-warm cache with common prompts/outputs
261
+ */
262
+ async warmCache(documents) {
263
+ await this.batchEmbed(documents, false);
264
+ }
265
+ }
266
+ /**
267
+ * Create embeddings service from environment or config
268
+ */
269
+ export function createEmbeddingsService(config) {
270
+ const providerName = config?.provider || process.env.EMBEDDINGS_PROVIDER || "local";
271
+ if (providerName === "openai") {
272
+ const apiKey = config?.apiKey || process.env.OPENAI_API_KEY;
273
+ if (!apiKey)
274
+ throw new Error("OPENAI_API_KEY not set");
275
+ return new EmbeddingsService(new OpenAIEmbeddingProvider(apiKey));
276
+ }
277
+ else if (providerName === "cohere") {
278
+ const apiKey = config?.apiKey || process.env.COHERE_API_KEY;
279
+ if (!apiKey)
280
+ throw new Error("COHERE_API_KEY not set");
281
+ return new EmbeddingsService(new CohereEmbeddingProvider(apiKey));
282
+ }
283
+ else {
284
+ return new EmbeddingsService(new LocalEmbeddingProvider());
285
+ }
286
+ }
287
+ //# sourceMappingURL=embeddings-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings-service.js","sourceRoot":"","sources":["../../src/memory/embeddings-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAIZ;IAAwB;IAH5C,IAAI,GAAG,QAAQ,CAAC;IACR,SAAS,GAAG,IAAI,CAAC;IAEzB,YAAoB,MAAc,EAAU,QAAgB,wBAAwB;QAAhE,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAmC;IAAG,CAAC;IAExF,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAe;QAC5B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,sCAAsC,EAAE;gBACjE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBAC3C;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,KAAK;iBACf,CAAC;aACL,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;YAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAIZ;IAAwB;IAH5C,IAAI,GAAG,QAAQ,CAAC;IACR,SAAS,GAAG,IAAI,CAAC;IAEzB,YAAoB,MAAc,EAAU,QAAgB,oBAAoB;QAA5D,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAA+B;IAAG,CAAC;IAEpF,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAe;QAC5B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gCAAgC,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBAC3C;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,KAAK;oBACL,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,UAAU,EAAE,iBAAiB;iBAChC,CAAC;aACL,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAC/B,IAAI,GAAG,OAAO,CAAC;IACP,SAAS,GAAG,GAAG,CAAC;IAExB,gBAAe,CAAC;IAEhB,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAe;QAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAC,IAAY;QAC7B,oDAAoD;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB;QACjE,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,UAAU,CAAC,GAAW;QAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACnC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAClB,QAAQ,CAAoB;IAC5B,KAAK,GAA0B,IAAI,GAAG,EAAE,CAAC;IACzC,SAAS,GAAG,CAAC,CAAC;IACd,WAAW,GAAG,CAAC,CAAC;IAExB,YAAY,WAAuC,OAAO;QACtD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;IACL,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAY;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QAElE,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,KAAK,QAAQ;gBACT,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,QAAQ;gBACT,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,OAAO,CAAC;YACb;gBACI,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC5C,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,QAAQ,GAAG,IAAI;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAe,EAAE,QAAQ,GAAG,IAAI;QAC7C,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,oBAAoB;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,UAAU;QACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,aAAa;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QAChD,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK;YAC5E,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC5B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;SAC5C,CAAC;IACN,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAA2B;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAY;QAC5B,wCAAwC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,SAAmB;QAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAGvC;IACG,MAAM,YAAY,GAAG,MAAM,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC;IAEpF,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvD,OAAO,IAAI,iBAAiB,CAAC,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvD,OAAO,IAAI,iBAAiB,CAAC,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,iBAAiB,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IAC/D,CAAC;AACL,CAAC"}