kratos-memory 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 (120) hide show
  1. package/AGENTS.md +25 -0
  2. package/LICENSE +21 -0
  3. package/bin/kratos-cli +7 -0
  4. package/dist/cli/capture-handler.d.ts +13 -0
  5. package/dist/cli/capture-handler.d.ts.map +1 -0
  6. package/dist/cli/capture-handler.js +112 -0
  7. package/dist/cli/capture-handler.js.map +1 -0
  8. package/dist/cli/commands/ask.d.ts +5 -0
  9. package/dist/cli/commands/ask.d.ts.map +1 -0
  10. package/dist/cli/commands/ask.js +64 -0
  11. package/dist/cli/commands/ask.js.map +1 -0
  12. package/dist/cli/commands/capture.d.ts +5 -0
  13. package/dist/cli/commands/capture.d.ts.map +1 -0
  14. package/dist/cli/commands/capture.js +31 -0
  15. package/dist/cli/commands/capture.js.map +1 -0
  16. package/dist/cli/commands/forget.d.ts +3 -0
  17. package/dist/cli/commands/forget.d.ts.map +1 -0
  18. package/dist/cli/commands/forget.js +12 -0
  19. package/dist/cli/commands/forget.js.map +1 -0
  20. package/dist/cli/commands/get.d.ts +3 -0
  21. package/dist/cli/commands/get.d.ts.map +1 -0
  22. package/dist/cli/commands/get.js +28 -0
  23. package/dist/cli/commands/get.js.map +1 -0
  24. package/dist/cli/commands/hooks.d.ts +2 -0
  25. package/dist/cli/commands/hooks.d.ts.map +1 -0
  26. package/dist/cli/commands/hooks.js +136 -0
  27. package/dist/cli/commands/hooks.js.map +1 -0
  28. package/dist/cli/commands/migrate.d.ts +5 -0
  29. package/dist/cli/commands/migrate.d.ts.map +1 -0
  30. package/dist/cli/commands/migrate.js +56 -0
  31. package/dist/cli/commands/migrate.js.map +1 -0
  32. package/dist/cli/commands/recent.d.ts +6 -0
  33. package/dist/cli/commands/recent.d.ts.map +1 -0
  34. package/dist/cli/commands/recent.js +21 -0
  35. package/dist/cli/commands/recent.js.map +1 -0
  36. package/dist/cli/commands/save.d.ts +8 -0
  37. package/dist/cli/commands/save.d.ts.map +1 -0
  38. package/dist/cli/commands/save.js +31 -0
  39. package/dist/cli/commands/save.js.map +1 -0
  40. package/dist/cli/commands/scan.d.ts +5 -0
  41. package/dist/cli/commands/scan.d.ts.map +1 -0
  42. package/dist/cli/commands/scan.js +28 -0
  43. package/dist/cli/commands/scan.js.map +1 -0
  44. package/dist/cli/commands/search.d.ts +8 -0
  45. package/dist/cli/commands/search.d.ts.map +1 -0
  46. package/dist/cli/commands/search.js +45 -0
  47. package/dist/cli/commands/search.js.map +1 -0
  48. package/dist/cli/commands/status.d.ts +3 -0
  49. package/dist/cli/commands/status.d.ts.map +1 -0
  50. package/dist/cli/commands/status.js +89 -0
  51. package/dist/cli/commands/status.js.map +1 -0
  52. package/dist/cli/commands/switch.d.ts +3 -0
  53. package/dist/cli/commands/switch.d.ts.map +1 -0
  54. package/dist/cli/commands/switch.js +18 -0
  55. package/dist/cli/commands/switch.js.map +1 -0
  56. package/dist/cli/core.d.ts +15 -0
  57. package/dist/cli/core.d.ts.map +1 -0
  58. package/dist/cli/core.js +18 -0
  59. package/dist/cli/core.js.map +1 -0
  60. package/dist/cli/index.d.ts +3 -0
  61. package/dist/cli/index.d.ts.map +1 -0
  62. package/dist/cli/index.js +157 -0
  63. package/dist/cli/index.js.map +1 -0
  64. package/dist/cli/output.d.ts +22 -0
  65. package/dist/cli/output.d.ts.map +1 -0
  66. package/dist/cli/output.js +74 -0
  67. package/dist/cli/output.js.map +1 -0
  68. package/dist/compression/factory.d.ts +6 -0
  69. package/dist/compression/factory.d.ts.map +1 -0
  70. package/dist/compression/factory.js +8 -0
  71. package/dist/compression/factory.js.map +1 -0
  72. package/dist/compression/index.d.ts +10 -0
  73. package/dist/compression/index.d.ts.map +1 -0
  74. package/dist/compression/index.js +2 -0
  75. package/dist/compression/index.js.map +1 -0
  76. package/dist/compression/rule-compressor.d.ts +9 -0
  77. package/dist/compression/rule-compressor.d.ts.map +1 -0
  78. package/dist/compression/rule-compressor.js +43 -0
  79. package/dist/compression/rule-compressor.js.map +1 -0
  80. package/dist/memory-server/concept-store-enhanced.d.ts +88 -0
  81. package/dist/memory-server/concept-store-enhanced.d.ts.map +1 -0
  82. package/dist/memory-server/concept-store-enhanced.js +392 -0
  83. package/dist/memory-server/concept-store-enhanced.js.map +1 -0
  84. package/dist/memory-server/concept-store.d.ts +58 -0
  85. package/dist/memory-server/concept-store.d.ts.map +1 -0
  86. package/dist/memory-server/concept-store.js +329 -0
  87. package/dist/memory-server/concept-store.js.map +1 -0
  88. package/dist/memory-server/context-broker.d.ts +63 -0
  89. package/dist/memory-server/context-broker.d.ts.map +1 -0
  90. package/dist/memory-server/context-broker.js +340 -0
  91. package/dist/memory-server/context-broker.js.map +1 -0
  92. package/dist/memory-server/database.d.ts +108 -0
  93. package/dist/memory-server/database.d.ts.map +1 -0
  94. package/dist/memory-server/database.js +690 -0
  95. package/dist/memory-server/database.js.map +1 -0
  96. package/dist/project-manager.d.ts +77 -0
  97. package/dist/project-manager.d.ts.map +1 -0
  98. package/dist/project-manager.js +226 -0
  99. package/dist/project-manager.js.map +1 -0
  100. package/dist/security/data-retention.d.ts +104 -0
  101. package/dist/security/data-retention.d.ts.map +1 -0
  102. package/dist/security/data-retention.js +444 -0
  103. package/dist/security/data-retention.js.map +1 -0
  104. package/dist/security/encryption.d.ts +48 -0
  105. package/dist/security/encryption.d.ts.map +1 -0
  106. package/dist/security/encryption.js +131 -0
  107. package/dist/security/encryption.js.map +1 -0
  108. package/dist/security/pii-detector.d.ts +61 -0
  109. package/dist/security/pii-detector.d.ts.map +1 -0
  110. package/dist/security/pii-detector.js +220 -0
  111. package/dist/security/pii-detector.js.map +1 -0
  112. package/dist/types/index.d.ts +151 -0
  113. package/dist/types/index.d.ts.map +1 -0
  114. package/dist/types/index.js +2 -0
  115. package/dist/types/index.js.map +1 -0
  116. package/dist/utils/logger.d.ts +9 -0
  117. package/dist/utils/logger.d.ts.map +1 -0
  118. package/dist/utils/logger.js +10 -0
  119. package/dist/utils/logger.js.map +1 -0
  120. package/package.json +54 -0
@@ -0,0 +1,74 @@
1
+ import chalk from 'chalk';
2
+ export class Output {
3
+ static success(msg) {
4
+ console.log(chalk.green('✓') + ' ' + msg);
5
+ }
6
+ static error(msg) {
7
+ console.error(chalk.red('✗') + ' ' + msg);
8
+ }
9
+ static warn(msg) {
10
+ console.log(chalk.yellow('⚠') + ' ' + msg);
11
+ }
12
+ static info(msg) {
13
+ console.log(chalk.blue('ℹ') + ' ' + msg);
14
+ }
15
+ static dim(msg) {
16
+ console.log(chalk.dim(msg));
17
+ }
18
+ static header(msg) {
19
+ console.log('\n' + chalk.bold.cyan(msg));
20
+ console.log(chalk.dim('─'.repeat(Math.min(msg.length + 4, 60))));
21
+ }
22
+ static json(data) {
23
+ console.log(JSON.stringify(data, null, 2));
24
+ }
25
+ static table(rows) {
26
+ if (rows.length === 0) {
27
+ Output.dim(' (no results)');
28
+ return;
29
+ }
30
+ const keys = Object.keys(rows[0]);
31
+ const widths = new Map();
32
+ // Calculate column widths
33
+ for (const key of keys) {
34
+ let maxWidth = key.length;
35
+ for (const row of rows) {
36
+ const val = String(row[key] ?? '');
37
+ maxWidth = Math.max(maxWidth, val.length);
38
+ }
39
+ widths.set(key, Math.min(maxWidth, 50));
40
+ }
41
+ // Print header
42
+ const headerLine = keys.map(k => chalk.bold(k.padEnd(widths.get(k)))).join(' ');
43
+ console.log(' ' + headerLine);
44
+ const divider = keys.map(k => '─'.repeat(widths.get(k))).join('──');
45
+ console.log(' ' + chalk.dim(divider));
46
+ // Print rows
47
+ for (const row of rows) {
48
+ const line = keys.map(k => {
49
+ const val = String(row[k] ?? '');
50
+ return val.substring(0, widths.get(k)).padEnd(widths.get(k));
51
+ }).join(' ');
52
+ console.log(' ' + line);
53
+ }
54
+ }
55
+ static memoryCard(memory) {
56
+ const date = memory.created_at
57
+ ? new Date(memory.created_at).toLocaleString()
58
+ : 'unknown';
59
+ console.log('');
60
+ console.log(chalk.bold.white(` ${memory.summary}`) +
61
+ (memory.score !== undefined ? chalk.dim(` (score: ${memory.score.toFixed(2)})`) : ''));
62
+ console.log(chalk.dim(` ID: ${memory.id} | ${date} | importance: ${memory.importance ?? '?'}`));
63
+ if (memory.tags && memory.tags.length > 0) {
64
+ console.log(' ' + memory.tags.map(t => chalk.cyan(`#${t}`)).join(' '));
65
+ }
66
+ if (memory.paths && memory.paths.length > 0) {
67
+ console.log(' ' + chalk.dim('paths: ' + memory.paths.join(', ')));
68
+ }
69
+ if (memory.snippet) {
70
+ console.log(' ' + chalk.dim(memory.snippet.substring(0, 120)));
71
+ }
72
+ }
73
+ }
74
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Compressor } from './index.js';
2
+ /**
3
+ * Returns the compressor. Pure logic, no AI, no network calls.
4
+ */
5
+ export declare function createCompressor(): Compressor;
6
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/compression/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C"}
@@ -0,0 +1,8 @@
1
+ import { RuleCompressor } from './rule-compressor.js';
2
+ /**
3
+ * Returns the compressor. Pure logic, no AI, no network calls.
4
+ */
5
+ export function createCompressor() {
6
+ return new RuleCompressor();
7
+ }
8
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/compression/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface Compressor {
2
+ compress(text: string, context?: string): Promise<CompressedResult>;
3
+ }
4
+ export interface CompressedResult {
5
+ summary: string;
6
+ original_length: number;
7
+ compressed_length: number;
8
+ compression_ratio: number;
9
+ }
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compression/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compression/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type { Compressor, CompressedResult } from './index.js';
2
+ /**
3
+ * Rule-based compressor — always available, no external dependencies.
4
+ * Extracts key information and truncates intelligently.
5
+ */
6
+ export declare class RuleCompressor implements Compressor {
7
+ compress(text: string): Promise<CompressedResult>;
8
+ }
9
+ //# sourceMappingURL=rule-compressor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-compressor.d.ts","sourceRoot":"","sources":["../../src/compression/rule-compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/D;;;GAGG;AACH,qBAAa,cAAe,YAAW,UAAU;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA8CxD"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Rule-based compressor — always available, no external dependencies.
3
+ * Extracts key information and truncates intelligently.
4
+ */
5
+ export class RuleCompressor {
6
+ async compress(text) {
7
+ const original_length = text.length;
8
+ // Strategy:
9
+ // 1. Extract first meaningful sentence
10
+ // 2. Extract key technical terms (file paths, function names, etc.)
11
+ // 3. Truncate to ~200 chars
12
+ const lines = text.split('\n').filter(l => l.trim().length > 0);
13
+ // Get first meaningful line
14
+ let firstLine = lines[0] || text.substring(0, 100);
15
+ firstLine = firstLine.trim();
16
+ // Extract file paths
17
+ const pathMatches = text.match(/(?:\/[\w.-]+)+/g) || [];
18
+ const uniquePaths = [...new Set(pathMatches)].slice(0, 3);
19
+ // Extract technical terms (CamelCase, snake_case, function calls)
20
+ const techTerms = text.match(/\b[A-Z][a-z]+[A-Z]\w+\b|\b\w+_\w+\b|\b\w+\(\)/g) || [];
21
+ const uniqueTerms = [...new Set(techTerms)].slice(0, 5);
22
+ // Build summary
23
+ let summary = firstLine;
24
+ // Add technical context if the first line is short
25
+ if (summary.length < 100 && uniqueTerms.length > 0) {
26
+ summary += ' [' + uniqueTerms.join(', ') + ']';
27
+ }
28
+ if (summary.length < 150 && uniquePaths.length > 0) {
29
+ summary += ' (' + uniquePaths.join(', ') + ')';
30
+ }
31
+ // Truncate to 200 chars
32
+ if (summary.length > 200) {
33
+ summary = summary.substring(0, 197) + '...';
34
+ }
35
+ return {
36
+ summary,
37
+ original_length,
38
+ compressed_length: summary.length,
39
+ compression_ratio: 1 - summary.length / original_length,
40
+ };
41
+ }
42
+ }
43
+ //# sourceMappingURL=rule-compressor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-compressor.js","sourceRoot":"","sources":["../../src/compression/rule-compressor.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,cAAc;IACzB,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;QAEpC,YAAY;QACZ,uCAAuC;QACvC,oEAAoE;QACpE,4BAA4B;QAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEhE,4BAA4B;QAC5B,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnD,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAE7B,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1D,kEAAkE;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,IAAI,EAAE,CAAC;QACrF,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAExD,gBAAgB;QAChB,IAAI,OAAO,GAAG,SAAS,CAAC;QAExB,mDAAmD;QACnD,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjD,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACzB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,OAAO;YACP,eAAe;YACf,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,eAAe;SACxD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,88 @@
1
+ export interface Concept {
2
+ id: string;
3
+ title: string;
4
+ body: string;
5
+ tags: string[];
6
+ importance: number;
7
+ created_at: number;
8
+ updated_at: number;
9
+ usage_count?: number;
10
+ last_used?: number;
11
+ }
12
+ export interface ConceptSearchResult {
13
+ concept: Concept;
14
+ score: number;
15
+ snippet?: string;
16
+ }
17
+ /**
18
+ * ENHANCED Concept Store - 10/10 Features
19
+ *
20
+ * NEW FEATURES:
21
+ * - Auto-discovery: Automatically finds and suggests relevant concepts
22
+ * - Usage tracking: Tracks which concepts are most useful
23
+ * - Smart ranking: Combines relevance, importance, and usage
24
+ * - Cross-project learning: Optionally share valuable concepts
25
+ * - Concept relationships: Link related concepts
26
+ */
27
+ export declare class ConceptStoreEnhanced {
28
+ private db;
29
+ private static instances;
30
+ private projectId;
31
+ private discoveryCache;
32
+ private constructor();
33
+ static getInstance(projectId?: string): ConceptStoreEnhanced;
34
+ private initializeEnhancedSchema;
35
+ /**
36
+ * Enhanced save with auto-discovery and relationship detection
37
+ */
38
+ save(params: {
39
+ title: string;
40
+ body: string;
41
+ tags?: string[];
42
+ importance?: number;
43
+ source?: 'manual' | 'discovered' | 'imported';
44
+ relatedTo?: string[];
45
+ }): Concept;
46
+ /**
47
+ * ENHANCED search with smart ranking
48
+ */
49
+ search(params: {
50
+ q: string;
51
+ k?: number;
52
+ allowlist?: string[];
53
+ projectId?: string;
54
+ includeRelated?: boolean;
55
+ boostRecent?: boolean;
56
+ }): ConceptSearchResult[];
57
+ /**
58
+ * Auto-discover concepts from text
59
+ */
60
+ autoDiscover(text: string, context?: string): Promise<Concept[]>;
61
+ /**
62
+ * Track concept usage for smart ranking
63
+ */
64
+ private trackUsage;
65
+ /**
66
+ * Add relationships between concepts
67
+ */
68
+ private addRelationships;
69
+ /**
70
+ * Auto-discover related concepts
71
+ */
72
+ private autoDiscoverRelated;
73
+ /**
74
+ * Enrich results with related concepts
75
+ */
76
+ private enrichWithRelated;
77
+ /**
78
+ * Auto-suggest concepts for a project based on context
79
+ */
80
+ suggestForProject(projectId: string, context: string): Promise<Concept[]>;
81
+ private generateConceptId;
82
+ private generateTitle;
83
+ private extractTags;
84
+ private rowToConcept;
85
+ get(id: string): Concept | null;
86
+ close(): void;
87
+ }
88
+ //# sourceMappingURL=concept-store-enhanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concept-store-enhanced.d.ts","sourceRoot":"","sources":["../../src/memory-server/concept-store-enhanced.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAgD;IACxE,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,cAAc,CAAqC;IAE3D,OAAO;IAeP,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,oBAAoB;IAS5D,OAAO,CAAC,wBAAwB;IAqFhC;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;QAC9C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,GAAG,OAAO;IA6CX;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GAAG,mBAAmB,EAAE;IAyEzB;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA+BtE;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyB/E,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAcpB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAM/B,KAAK,IAAI,IAAI;CAGd"}