@lanonasis/mem-intel-sdk 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +50 -21
  3. package/dist/core/client.d.ts +29 -8
  4. package/dist/core/client.d.ts.map +1 -1
  5. package/dist/core/index.cjs +251 -13
  6. package/dist/core/index.cjs.map +1 -1
  7. package/dist/core/index.d.ts +4 -3
  8. package/dist/core/index.d.ts.map +1 -1
  9. package/dist/core/index.js +251 -13
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/core/types.d.ts +36 -0
  12. package/dist/core/types.d.ts.map +1 -1
  13. package/dist/index-sdk.d.ts +5 -3
  14. package/dist/index-sdk.d.ts.map +1 -1
  15. package/dist/index.cjs +251 -13
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.js +251 -13
  18. package/dist/index.js.map +1 -1
  19. package/dist/node/client.d.ts +2 -2
  20. package/dist/node/client.d.ts.map +1 -1
  21. package/dist/node/index.cjs +251 -13
  22. package/dist/node/index.cjs.map +1 -1
  23. package/dist/node/index.d.ts +3 -3
  24. package/dist/node/index.d.ts.map +1 -1
  25. package/dist/node/index.js +251 -13
  26. package/dist/node/index.js.map +1 -1
  27. package/dist/react/context/MemoryIntelligenceProvider.d.ts +2 -2
  28. package/dist/react/context/MemoryIntelligenceProvider.d.ts.map +1 -1
  29. package/dist/react/hooks/useMemoryIntelligence.d.ts +13 -12
  30. package/dist/react/hooks/useMemoryIntelligence.d.ts.map +1 -1
  31. package/dist/react/index.cjs +254 -19
  32. package/dist/react/index.cjs.map +1 -1
  33. package/dist/react/index.d.ts +4 -4
  34. package/dist/react/index.d.ts.map +1 -1
  35. package/dist/react/index.js +254 -19
  36. package/dist/react/index.js.map +1 -1
  37. package/dist/server/index.cjs +272 -27
  38. package/dist/server/index.cjs.map +1 -1
  39. package/dist/server/index.d.ts +3 -3
  40. package/dist/server/index.d.ts.map +1 -1
  41. package/dist/server/index.js +272 -27
  42. package/dist/server/index.js.map +1 -1
  43. package/dist/server/mcp-server.d.ts +1 -1
  44. package/dist/server/mcp-server.d.ts.map +1 -1
  45. package/dist/utils/embeddings.d.ts +1 -1
  46. package/dist/utils/embeddings.d.ts.map +1 -1
  47. package/dist/utils/formatting.d.ts +1 -1
  48. package/dist/utils/formatting.d.ts.map +1 -1
  49. package/dist/utils/http-client.d.ts +35 -0
  50. package/dist/utils/http-client.d.ts.map +1 -1
  51. package/dist/utils/index.d.ts +7 -5
  52. package/dist/utils/index.d.ts.map +1 -1
  53. package/dist/utils/response-adapter.d.ts +66 -0
  54. package/dist/utils/response-adapter.d.ts.map +1 -0
  55. package/dist/vue/composables/useMemoryIntelligence.d.ts +1 -1
  56. package/dist/vue/composables/useMemoryIntelligence.d.ts.map +1 -1
  57. package/dist/vue/index.cjs.map +1 -1
  58. package/dist/vue/index.d.ts +3 -3
  59. package/dist/vue/index.d.ts.map +1 -1
  60. package/dist/vue/index.js.map +1 -1
  61. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -5,9 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.1] - 2025-12-18
9
+
10
+ ### Fixed
11
+
12
+ - Fixed TypeScript compilation errors with OpenAI SDK named imports
13
+ - Added proper JSX configuration to tsconfig.json for React components
14
+ - Added type annotations for callback parameters to satisfy strict TypeScript checks
15
+ - Removed unused type imports that were causing compilation warnings
16
+
17
+ ### Improved
18
+
19
+ - Enhanced type safety across core client and utility functions
20
+ - Improved error messages in core error classes
21
+ - Better handling of OpenAI client initialization
22
+
8
23
  ## [1.0.0] - 2024-12-17
9
24
 
10
25
  ### Added
26
+
11
27
  - Initial release of `@lanonasis/mem-intel-sdk`
12
28
  - Core `MemoryIntelligenceClient` with API-based architecture
13
29
  - Framework integrations:
package/README.md CHANGED
@@ -37,16 +37,19 @@ pnpm add @lanonasis/mem-intel-sdk
37
37
  ### Framework-specific peer dependencies
38
38
 
39
39
  For React applications:
40
+
40
41
  ```bash
41
42
  npm install react @tanstack/react-query
42
43
  ```
43
44
 
44
45
  For Vue applications:
46
+
45
47
  ```bash
46
48
  npm install vue
47
49
  ```
48
50
 
49
51
  For MCP Server:
52
+
50
53
  ```bash
51
54
  npm install @modelcontextprotocol/sdk
52
55
  ```
@@ -56,15 +59,15 @@ npm install @modelcontextprotocol/sdk
56
59
  ### Basic Usage
57
60
 
58
61
  ```typescript
59
- import { MemoryIntelligenceClient } from '@lanonasis/mem-intel-sdk';
62
+ import { MemoryIntelligenceClient } from "@lanonasis/mem-intel-sdk";
60
63
 
61
64
  const client = new MemoryIntelligenceClient({
62
- apiKey: 'lano_xxxxxxxxxx', // Your Lanonasis API key
65
+ apiKey: "lano_xxxxxxxxxx", // Your Lanonasis API key
63
66
  });
64
67
 
65
68
  // Analyze memory patterns
66
69
  const analysis = await client.analyzePatterns({
67
- userId: 'user-123',
70
+ userId: "user-123",
68
71
  timeRangeDays: 30,
69
72
  });
70
73
 
@@ -74,7 +77,7 @@ console.log(`Total memories: ${analysis.total_memories}`);
74
77
  ### Node.js with Environment Variables
75
78
 
76
79
  ```typescript
77
- import { NodeMemoryIntelligenceClient } from '@lanonasis/mem-intel-sdk/node';
80
+ import { NodeMemoryIntelligenceClient } from "@lanonasis/mem-intel-sdk/node";
78
81
 
79
82
  // Automatically reads LANONASIS_API_KEY from environment
80
83
  const client = NodeMemoryIntelligenceClient.fromEnv();
@@ -83,12 +86,15 @@ const client = NodeMemoryIntelligenceClient.fromEnv();
83
86
  ### React Integration
84
87
 
85
88
  ```tsx
86
- import { MemoryIntelligenceProvider, usePatternAnalysis } from '@lanonasis/mem-intel-sdk/react';
89
+ import {
90
+ MemoryIntelligenceProvider,
91
+ usePatternAnalysis,
92
+ } from "@lanonasis/mem-intel-sdk/react";
87
93
 
88
94
  // Wrap your app
89
95
  function App() {
90
96
  return (
91
- <MemoryIntelligenceProvider config={{ apiKey: 'lano_xxx' }}>
97
+ <MemoryIntelligenceProvider config={{ apiKey: "lano_xxx" }}>
92
98
  <Dashboard />
93
99
  </MemoryIntelligenceProvider>
94
100
  );
@@ -97,7 +103,7 @@ function App() {
97
103
  // Use hooks in components
98
104
  function Dashboard() {
99
105
  const { data, isLoading } = usePatternAnalysis({
100
- userId: 'user-123',
106
+ userId: "user-123",
101
107
  timeRangeDays: 30,
102
108
  });
103
109
 
@@ -110,12 +116,12 @@ function Dashboard() {
110
116
 
111
117
  ```vue
112
118
  <script setup>
113
- import { usePatternAnalysis } from '@lanonasis/mem-intel-sdk/vue';
119
+ import { usePatternAnalysis } from "@lanonasis/mem-intel-sdk/vue";
114
120
 
115
121
  const { data, loading, execute } = usePatternAnalysis();
116
122
 
117
123
  onMounted(() => {
118
- execute({ userId: 'user-123', timeRangeDays: 30 });
124
+ execute({ userId: "user-123", timeRangeDays: 30 });
119
125
  });
120
126
  </script>
121
127
  ```
@@ -133,19 +139,24 @@ This SDK is designed to **complement** your existing `@lanonasis/mcp-core` infra
133
139
  ## Why This SDK?
134
140
 
135
141
  ### Modern MCP Patterns
142
+
136
143
  Uses the latest `server.registerTool()` API with:
144
+
137
145
  - Zod schema validation
138
146
  - Structured content output
139
147
  - Proper tool annotations
140
148
  - Both JSON and Markdown response formats
141
149
 
142
150
  ### Single Responsibility
151
+
143
152
  Unlike monolithic servers, this focuses solely on intelligence features, making it:
153
+
144
154
  - Easier to maintain
145
155
  - More composable
146
156
  - Better suited for specific use cases
147
157
 
148
158
  ### Production-Ready
159
+
149
160
  - Streamable HTTP transport support
150
161
  - Proper error handling with actionable messages
151
162
  - Character limit enforcement
@@ -158,7 +169,7 @@ For standalone MCP server usage:
158
169
  ```bash
159
170
  # Clone the repository
160
171
  git clone https://github.com/lanonasis/memory-intelligence-engine.git
161
- cd memory-intelligence-engine/mem-intel-mcp-server
172
+ cd memory-intelligence-engine/mem-intelligence-sdk
162
173
 
163
174
  # Install dependencies
164
175
  npm install
@@ -185,6 +196,7 @@ PORT=3010 # HTTP port (default: 3010)
185
196
  ## Usage
186
197
 
187
198
  ### Stdio Mode (Default)
199
+
188
200
  ```bash
189
201
  # Development
190
202
  npm run dev
@@ -194,6 +206,7 @@ npm start
194
206
  ```
195
207
 
196
208
  ### HTTP Mode
209
+
197
210
  ```bash
198
211
  # Development
199
212
  npm run dev:http
@@ -205,6 +218,7 @@ npm run start:http
205
218
  ## Available Tools
206
219
 
207
220
  ### 1. `memory_analyze_patterns`
221
+
208
222
  Analyze usage patterns and trends in your memory collection.
209
223
 
210
224
  ```json
@@ -216,6 +230,7 @@ Analyze usage patterns and trends in your memory collection.
216
230
  ```
217
231
 
218
232
  **Returns:**
233
+
219
234
  - Memory distribution by type and time
220
235
  - Peak activity periods
221
236
  - Tag frequency analysis
@@ -224,6 +239,7 @@ Analyze usage patterns and trends in your memory collection.
224
239
  ---
225
240
 
226
241
  ### 2. `memory_suggest_tags`
242
+
227
243
  Get AI-powered tag suggestions for a memory.
228
244
 
229
245
  ```json
@@ -236,6 +252,7 @@ Get AI-powered tag suggestions for a memory.
236
252
  ```
237
253
 
238
254
  **Returns:**
255
+
239
256
  - Tag suggestions with confidence scores
240
257
  - Reasoning for each suggestion
241
258
  - Consistency with existing tag vocabulary
@@ -243,6 +260,7 @@ Get AI-powered tag suggestions for a memory.
243
260
  ---
244
261
 
245
262
  ### 3. `memory_find_related`
263
+
246
264
  Find semantically related memories using vector similarity.
247
265
 
248
266
  ```json
@@ -255,6 +273,7 @@ Find semantically related memories using vector similarity.
255
273
  ```
256
274
 
257
275
  **Returns:**
276
+
258
277
  - Related memories ranked by similarity
259
278
  - Shared tags between memories
260
279
  - Content previews
@@ -262,6 +281,7 @@ Find semantically related memories using vector similarity.
262
281
  ---
263
282
 
264
283
  ### 4. `memory_detect_duplicates`
284
+
265
285
  Identify potential duplicate or near-duplicate memories.
266
286
 
267
287
  ```json
@@ -273,6 +293,7 @@ Identify potential duplicate or near-duplicate memories.
273
293
  ```
274
294
 
275
295
  **Returns:**
296
+
276
297
  - Duplicate pairs with similarity scores
277
298
  - Recommendations (keep_newer, merge, etc.)
278
299
  - Estimated storage savings
@@ -280,6 +301,7 @@ Identify potential duplicate or near-duplicate memories.
280
301
  ---
281
302
 
282
303
  ### 5. `memory_extract_insights`
304
+
283
305
  Extract key insights and patterns from your knowledge base.
284
306
 
285
307
  ```json
@@ -292,6 +314,7 @@ Extract key insights and patterns from your knowledge base.
292
314
  ```
293
315
 
294
316
  **Returns:**
317
+
295
318
  - Categorized insights (patterns, learnings, opportunities, risks, action items)
296
319
  - Supporting evidence from memories
297
320
  - Confidence scores
@@ -300,6 +323,7 @@ Extract key insights and patterns from your knowledge base.
300
323
  ---
301
324
 
302
325
  ### 6. `memory_health_check`
326
+
303
327
  Analyze the organization quality of your memory collection.
304
328
 
305
329
  ```json
@@ -310,6 +334,7 @@ Analyze the organization quality of your memory collection.
310
334
  ```
311
335
 
312
336
  **Returns:**
337
+
313
338
  - Overall health score (0-100)
314
339
  - Embedding coverage
315
340
  - Tagging consistency
@@ -409,10 +434,12 @@ Tools return actionable error messages:
409
434
  ```json
410
435
  {
411
436
  "isError": true,
412
- "content": [{
413
- "type": "text",
414
- "text": "Error analyzing patterns: Database connection failed. Try checking your ONASIS_SUPABASE_URL environment variable."
415
- }]
437
+ "content": [
438
+ {
439
+ "type": "text",
440
+ "text": "Error analyzing patterns: Database connection failed. Try checking your ONASIS_SUPABASE_URL environment variable."
441
+ }
442
+ ]
416
443
  }
417
444
  ```
418
445
 
@@ -426,6 +453,7 @@ Tools return actionable error messages:
426
453
  ## Prerequisites
427
454
 
428
455
  Your Supabase database must have:
456
+
429
457
  1. `memory_entries` table with `embedding` column (vector)
430
458
  2. `match_memories` RPC function for vector similarity search
431
459
  3. Standard LanOnasis schema (id, title, content, type, tags, etc.)
@@ -434,13 +462,13 @@ Your Supabase database must have:
434
462
 
435
463
  ### vs. Embedding in Core Server
436
464
 
437
- | Aspect | Monolithic | Intelligence Server |
438
- |--------|-----------|---------------------|
439
- | **Deployment** | Single point of failure | Independent scaling |
440
- | **Updates** | Risk to core functionality | Safe to iterate |
441
- | **Resource Usage** | Shared memory/CPU | Dedicated resources |
442
- | **Testing** | Complex integration tests | Focused unit tests |
443
- | **Reusability** | Tied to LanOnasis | Portable to other projects |
465
+ | Aspect | Monolithic | Intelligence Server |
466
+ | ------------------ | -------------------------- | -------------------------- |
467
+ | **Deployment** | Single point of failure | Independent scaling |
468
+ | **Updates** | Risk to core functionality | Safe to iterate |
469
+ | **Resource Usage** | Shared memory/CPU | Dedicated resources |
470
+ | **Testing** | Complex integration tests | Focused unit tests |
471
+ | **Reusability** | Tied to LanOnasis | Portable to other projects |
444
472
 
445
473
  ## Future Enhancements
446
474
 
@@ -473,6 +501,7 @@ To publish to GitHub Packages, update `.npmrc`:
473
501
  ```
474
502
 
475
503
  Then publish:
504
+
476
505
  ```bash
477
506
  npm publish --access public
478
507
  ```
@@ -1,12 +1,33 @@
1
1
  /**
2
2
  * Core Memory Intelligence Client
3
+ * Supports API-first with offline-fallback capability
3
4
  */
4
- import { MemoryIntelligenceConfig, AnalyzePatternsParams, PatternAnalysis, SuggestTagsParams, TagSuggestionsResult, FindRelatedParams, RelatedMemoriesResult, DetectDuplicatesParams, DuplicatesResult, ExtractInsightsParams, InsightsResult, HealthCheckParams, MemoryHealth, QueryMemoriesOptions, MemoryEntry } from "./types";
5
- import { HttpClient } from "../utils/http-client";
5
+ import { MemoryIntelligenceConfig, AnalyzePatternsParams, PatternAnalysis, SuggestTagsParams, TagSuggestionsResult, FindRelatedParams, RelatedMemoriesResult, DetectDuplicatesParams, DuplicatesResult, ExtractInsightsParams, InsightsResult, HealthCheckParams, MemoryHealth, QueryMemoriesOptions, MemoryEntry, ProcessingMode } from "./types.js";
6
+ import { HttpClient } from "../utils/http-client.js";
7
+ import { UsageInfo, TierInfo } from "../utils/response-adapter.js";
8
+ export interface IntelligenceResponse<T> {
9
+ data: T;
10
+ usage?: UsageInfo;
11
+ tier_info?: TierInfo;
12
+ fromCache?: boolean;
13
+ }
6
14
  export declare class MemoryIntelligenceClient {
7
15
  private httpClient;
8
16
  private defaultResponseFormat;
17
+ private processingMode;
9
18
  constructor(config: MemoryIntelligenceConfig);
19
+ /**
20
+ * Get the current processing mode
21
+ */
22
+ getProcessingMode(): ProcessingMode;
23
+ /**
24
+ * Check if cache is enabled (for offline-fallback mode)
25
+ */
26
+ isCacheEnabled(): boolean;
27
+ /**
28
+ * Clear the response cache
29
+ */
30
+ clearCache(): void;
10
31
  /**
11
32
  * Get HTTP client for direct API access
12
33
  */
@@ -18,26 +39,26 @@ export declare class MemoryIntelligenceClient {
18
39
  /**
19
40
  * Analyze usage patterns and trends in memory collection
20
41
  */
21
- analyzePatterns(params: AnalyzePatternsParams): Promise<PatternAnalysis>;
42
+ analyzePatterns(params: AnalyzePatternsParams): Promise<IntelligenceResponse<PatternAnalysis>>;
22
43
  /**
23
44
  * Get AI-powered tag suggestions for a memory
24
45
  */
25
- suggestTags(params: SuggestTagsParams): Promise<TagSuggestionsResult>;
46
+ suggestTags(params: SuggestTagsParams): Promise<IntelligenceResponse<TagSuggestionsResult>>;
26
47
  /**
27
48
  * Find semantically related memories using vector similarity
28
49
  */
29
- findRelated(params: FindRelatedParams): Promise<RelatedMemoriesResult>;
50
+ findRelated(params: FindRelatedParams): Promise<IntelligenceResponse<RelatedMemoriesResult>>;
30
51
  /**
31
52
  * Detect potential duplicate memories
32
53
  */
33
- detectDuplicates(params: DetectDuplicatesParams): Promise<DuplicatesResult>;
54
+ detectDuplicates(params: DetectDuplicatesParams): Promise<IntelligenceResponse<DuplicatesResult>>;
34
55
  /**
35
56
  * Extract insights and patterns from memories
36
57
  */
37
- extractInsights(params: ExtractInsightsParams): Promise<InsightsResult>;
58
+ extractInsights(params: ExtractInsightsParams): Promise<IntelligenceResponse<InsightsResult>>;
38
59
  /**
39
60
  * Check the health and organization quality of memories
40
61
  */
41
- healthCheck(params: HealthCheckParams): Promise<MemoryHealth>;
62
+ healthCheck(params: HealthCheckParams): Promise<IntelligenceResponse<MemoryHealth>>;
42
63
  }
43
64
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,qBAAqB,CAAsB;gBAEvC,MAAM,EAAE,wBAAwB;IAkB5C;;OAEG;IACI,aAAa,IAAI,UAAU;IAIlC;;OAEG;IACU,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,WAAW,EAAE,CAAC;IAwBzB;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgB9E;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB3E;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgB5E;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgBjF;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAgB7E;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;CAepE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAInE,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,cAAc,CAAiB;gBAE3B,MAAM,EAAE,wBAAwB;IAuB5C;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACI,aAAa,IAAI,UAAU;IAIlC;;OAEG;IACU,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,WAAW,EAAE,CAAC;IAwBzB;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAqBpG;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAqBjG;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAqBlG;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAqBvG;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAqBnG;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;CAoB1F"}