@hiveforge/hivemind-mcp 2.1.1 → 2.3.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 (63) hide show
  1. package/README.md +18 -9
  2. package/dist/cli.js +193 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/mcp/index.d.ts +8 -0
  5. package/dist/mcp/index.d.ts.map +1 -0
  6. package/dist/mcp/index.js +8 -0
  7. package/dist/mcp/index.js.map +1 -0
  8. package/dist/mcp/tool-generator.d.ts +108 -0
  9. package/dist/mcp/tool-generator.d.ts.map +1 -0
  10. package/dist/mcp/tool-generator.js +245 -0
  11. package/dist/mcp/tool-generator.js.map +1 -0
  12. package/dist/parser/markdown.d.ts +9 -0
  13. package/dist/parser/markdown.d.ts.map +1 -1
  14. package/dist/parser/markdown.js +13 -2
  15. package/dist/parser/markdown.js.map +1 -1
  16. package/dist/server.d.ts +8 -4
  17. package/dist/server.d.ts.map +1 -1
  18. package/dist/server.js +66 -199
  19. package/dist/server.js.map +1 -1
  20. package/dist/templates/builtin/worldbuilding.d.ts +20 -0
  21. package/dist/templates/builtin/worldbuilding.d.ts.map +1 -0
  22. package/dist/templates/builtin/worldbuilding.js +464 -0
  23. package/dist/templates/builtin/worldbuilding.js.map +1 -0
  24. package/dist/templates/detector.d.ts +51 -0
  25. package/dist/templates/detector.d.ts.map +1 -0
  26. package/dist/templates/detector.js +71 -0
  27. package/dist/templates/detector.js.map +1 -0
  28. package/dist/templates/folder-mapper.d.ts +66 -0
  29. package/dist/templates/folder-mapper.d.ts.map +1 -0
  30. package/dist/templates/folder-mapper.js +148 -0
  31. package/dist/templates/folder-mapper.js.map +1 -0
  32. package/dist/templates/index.d.ts +15 -0
  33. package/dist/templates/index.d.ts.map +1 -0
  34. package/dist/templates/index.js +15 -0
  35. package/dist/templates/index.js.map +1 -0
  36. package/dist/templates/loader.d.ts +115 -0
  37. package/dist/templates/loader.d.ts.map +1 -0
  38. package/dist/templates/loader.js +202 -0
  39. package/dist/templates/loader.js.map +1 -0
  40. package/dist/templates/registry.d.ts +97 -0
  41. package/dist/templates/registry.d.ts.map +1 -0
  42. package/dist/templates/registry.js +141 -0
  43. package/dist/templates/registry.js.map +1 -0
  44. package/dist/templates/schema-factory.d.ts +76 -0
  45. package/dist/templates/schema-factory.d.ts.map +1 -0
  46. package/dist/templates/schema-factory.js +171 -0
  47. package/dist/templates/schema-factory.js.map +1 -0
  48. package/dist/templates/types.d.ts +114 -0
  49. package/dist/templates/types.d.ts.map +1 -0
  50. package/dist/templates/types.js +9 -0
  51. package/dist/templates/types.js.map +1 -0
  52. package/dist/templates/validator.d.ts +200 -0
  53. package/dist/templates/validator.d.ts.map +1 -0
  54. package/dist/templates/validator.js +136 -0
  55. package/dist/templates/validator.js.map +1 -0
  56. package/dist/types/index.d.ts +57 -21
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/dist/types/index.js +39 -15
  59. package/dist/types/index.js.map +1 -1
  60. package/dist/vault/reader.d.ts.map +1 -1
  61. package/dist/vault/reader.js +15 -1
  62. package/dist/vault/reader.js.map +1 -1
  63. package/package.json +7 -4
package/README.md CHANGED
@@ -5,12 +5,12 @@
5
5
  # Hivemind MCP Server
6
6
 
7
7
  [![NPM Version](https://img.shields.io/npm/v/@hiveforge/hivemind-mcp.svg)](https://www.npmjs.com/package/@hiveforge/hivemind-mcp)
8
- [![Build Status](https://img.shields.io/github/actions/workflow/status/hiveforge-io/hivemind/test.yml?branch=master&label=tests)](https://github.com/hiveforge-io/hivemind/actions/workflows/test.yml)
9
- [![Release](https://img.shields.io/github/actions/workflow/status/hiveforge-io/hivemind/release.yml?branch=master&label=release)](https://github.com/hiveforge-io/hivemind/actions/workflows/release.yml)
10
- [![codecov](https://codecov.io/gh/hiveforge-io/hivemind/branch/master/graph/badge.svg)](https://codecov.io/gh/hiveforge-io/hivemind)
8
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/hiveforge-sh/hivemind/test.yml?branch=master&label=tests)](https://github.com/hiveforge-sh/hivemind/actions/workflows/test.yml)
9
+ [![Release](https://img.shields.io/github/actions/workflow/status/hiveforge-sh/hivemind/release.yml?branch=master&label=release)](https://github.com/hiveforge-sh/hivemind/actions/workflows/release.yml)
10
+ [![codecov](https://codecov.io/gh/hiveforge-sh/hivemind/branch/master/graph/badge.svg)](https://codecov.io/gh/hiveforge-sh/hivemind)
11
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
12
- [![GitHub issues](https://img.shields.io/github/issues/hiveforge-io/hivemind)](https://github.com/hiveforge-io/hivemind/issues)
13
- [![GitHub stars](https://img.shields.io/github/stars/hiveforge-io/hivemind)](https://github.com/hiveforge-io/hivemind/stargazers)
12
+ [![GitHub issues](https://img.shields.io/github/issues/hiveforge-sh/hivemind)](https://github.com/hiveforge-sh/hivemind/issues)
13
+ [![GitHub stars](https://img.shields.io/github/stars/hiveforge-sh/hivemind)](https://github.com/hiveforge-sh/hivemind/stargazers)
14
14
 
15
15
  An MCP (Model Context Protocol) server for Obsidian worldbuilding vaults that provides AI tools with consistent, canonical context from your fictional worlds.
16
16
 
@@ -140,9 +140,9 @@ Obsidian Vault → File Watcher → Markdown Parser → Knowledge Graph
140
140
 
141
141
  ## Development Status
142
142
 
143
- **Current Phase**: Milestone 1.0 Complete ✅
143
+ **Current**: Milestone 1.0 Complete ✅ | **Next**: Milestone 2.0 Template System 🚧
144
144
 
145
- ### What's Included
145
+ ### v1.0 — MVP + Core Features (Shipped)
146
146
 
147
147
  - [x] MCP server with hybrid search (vector, graph, keyword)
148
148
  - [x] Vault templates for all entity types (Character, Location, Event, Faction, Lore, Asset)
@@ -152,9 +152,18 @@ Obsidian Vault → File Watcher → Markdown Parser → Knowledge Graph
152
152
  - [x] Obsidian plugin with image generation
153
153
  - [x] CI/CD with semantic-release and CodeQL scanning
154
154
 
155
- **Up Next:**
155
+ ### v2.0 — Template System (In Progress)
156
+
157
+ Make Hivemind domain-agnostic with pluggable templates:
158
+
159
+ - [ ] Template registry with config-driven entity definitions
160
+ - [ ] Built-in templates: worldbuilding, research, people-management
161
+ - [ ] Custom entity types via config (no coding required)
162
+ - [ ] Auto-generated MCP tools per entity type
163
+ - [ ] Custom relationship types per template
164
+
165
+ **Also pending:**
156
166
  - [ ] Obsidian community plugin submission
157
- - [ ] Template System (make Hivemind domain-agnostic)
158
167
 
159
168
  ## MCP Tools
160
169
 
package/dist/cli.js CHANGED
@@ -1,8 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { readFileSync, writeFileSync, existsSync } from 'fs';
3
- import { resolve, join } from 'path';
3
+ import { resolve, join, basename } from 'path';
4
4
  import * as readline from 'readline/promises';
5
5
  import { stdin as input, stdout as output } from 'process';
6
+ import { FolderMapper } from './templates/folder-mapper.js';
7
+ import { templateRegistry } from './templates/registry.js';
8
+ import { worldbuildingTemplate } from './templates/builtin/worldbuilding.js';
6
9
  const DEFAULT_CONFIG = {
7
10
  vault: {
8
11
  path: '',
@@ -95,13 +98,197 @@ async function start() {
95
98
  const { startServer } = await import('./index.js');
96
99
  await startServer();
97
100
  }
101
+ /**
102
+ * Fix command: helps add frontmatter to skipped files
103
+ */
104
+ async function fix() {
105
+ const vaultPath = getVaultPath();
106
+ if (!vaultPath) {
107
+ console.error('❌ Could not determine vault path. Use --vault flag or create config.json');
108
+ process.exit(1);
109
+ }
110
+ const skippedLogPath = join(vaultPath, '.hivemind', 'skipped-files.log');
111
+ if (!existsSync(skippedLogPath)) {
112
+ console.log('✅ No skipped files log found. Run "npx @hiveforge/hivemind-mcp start" first to scan vault.');
113
+ return;
114
+ }
115
+ console.log('🔧 Hivemind Fix - Add frontmatter to skipped files\n');
116
+ // Read and parse skipped files log
117
+ const logContent = readFileSync(skippedLogPath, 'utf-8');
118
+ const skippedFiles = parseSkippedFilesLog(logContent);
119
+ if (skippedFiles.length === 0) {
120
+ console.log('✅ No skipped files found!');
121
+ return;
122
+ }
123
+ console.log(`Found ${skippedFiles.length} file(s) needing frontmatter.\n`);
124
+ // Initialize folder mapper
125
+ const folderMapper = new FolderMapper();
126
+ // Initialize template registry for entity types
127
+ if (!templateRegistry.has('worldbuilding')) {
128
+ templateRegistry.register(worldbuildingTemplate, 'builtin');
129
+ templateRegistry.activate('worldbuilding');
130
+ }
131
+ const activeTemplate = templateRegistry.getActive();
132
+ const entityTypes = activeTemplate?.entityTypes.map(e => e.name) || ['character', 'location', 'event', 'faction', 'lore', 'asset', 'reference'];
133
+ const rl = readline.createInterface({ input, output });
134
+ try {
135
+ let fixed = 0;
136
+ let skipped = 0;
137
+ for (const filePath of skippedFiles) {
138
+ const fullPath = join(vaultPath, filePath);
139
+ if (!existsSync(fullPath)) {
140
+ console.log(`⚠️ File not found: ${filePath}`);
141
+ skipped++;
142
+ continue;
143
+ }
144
+ // Infer type from folder
145
+ const inferredType = folderMapper.inferType(filePath);
146
+ const fileName = basename(filePath, '.md');
147
+ console.log(`\n📄 ${filePath}`);
148
+ if (inferredType) {
149
+ console.log(` Inferred type: ${inferredType}`);
150
+ const confirm = await rl.question(` Use '${inferredType}'? (Y/n/skip): `);
151
+ if (confirm.toLowerCase() === 'skip' || confirm.toLowerCase() === 's') {
152
+ console.log(' Skipped.');
153
+ skipped++;
154
+ continue;
155
+ }
156
+ if (confirm.toLowerCase() === 'n' || confirm.toLowerCase() === 'no') {
157
+ // Let user choose type
158
+ const selectedType = await selectType(rl, entityTypes);
159
+ if (selectedType) {
160
+ await addFrontmatter(fullPath, selectedType, fileName);
161
+ fixed++;
162
+ }
163
+ else {
164
+ skipped++;
165
+ }
166
+ }
167
+ else {
168
+ // Use inferred type
169
+ await addFrontmatter(fullPath, inferredType, fileName);
170
+ fixed++;
171
+ }
172
+ }
173
+ else {
174
+ console.log(' Could not infer type from folder.');
175
+ const selectedType = await selectType(rl, entityTypes);
176
+ if (selectedType) {
177
+ await addFrontmatter(fullPath, selectedType, fileName);
178
+ fixed++;
179
+ }
180
+ else {
181
+ skipped++;
182
+ }
183
+ }
184
+ }
185
+ console.log(`\n✅ Done! Fixed: ${fixed}, Skipped: ${skipped}`);
186
+ console.log(' Run "npx @hiveforge/hivemind-mcp start" to re-index vault.');
187
+ }
188
+ finally {
189
+ rl.close();
190
+ }
191
+ }
192
+ /**
193
+ * Get vault path from config or args
194
+ */
195
+ function getVaultPath() {
196
+ // Check for --vault flag in args
197
+ const vaultIndex = process.argv.indexOf('--vault');
198
+ if (vaultIndex !== -1 && process.argv[vaultIndex + 1]) {
199
+ return resolve(process.argv[vaultIndex + 1]);
200
+ }
201
+ // Check for config.json
202
+ const configPath = resolve(process.cwd(), 'config.json');
203
+ if (existsSync(configPath)) {
204
+ try {
205
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
206
+ if (config.vault?.path) {
207
+ return resolve(config.vault.path);
208
+ }
209
+ }
210
+ catch {
211
+ // Ignore config parse errors
212
+ }
213
+ }
214
+ // Fall back to current directory
215
+ return process.cwd();
216
+ }
217
+ /**
218
+ * Parse skipped files from log content
219
+ */
220
+ function parseSkippedFilesLog(content) {
221
+ const files = [];
222
+ const lines = content.split('\n');
223
+ for (const line of lines) {
224
+ // Match lines like " • path/to/file.md"
225
+ const match = line.match(/^\s+[•]\s+(.+\.md)$/);
226
+ if (match) {
227
+ files.push(match[1].trim());
228
+ }
229
+ }
230
+ return files;
231
+ }
232
+ /**
233
+ * Let user select an entity type
234
+ */
235
+ async function selectType(rl, types) {
236
+ console.log(' Available types:');
237
+ types.forEach((t, i) => console.log(` ${i + 1}. ${t}`));
238
+ console.log(` 0. Skip this file`);
239
+ const choice = await rl.question(' Enter number: ');
240
+ const num = parseInt(choice, 10);
241
+ if (num === 0 || isNaN(num) || num < 1 || num > types.length) {
242
+ return null;
243
+ }
244
+ return types[num - 1];
245
+ }
246
+ /**
247
+ * Add frontmatter to a file
248
+ */
249
+ async function addFrontmatter(filePath, entityType, name) {
250
+ const content = readFileSync(filePath, 'utf-8');
251
+ // Generate unique ID
252
+ const id = generateId(name, entityType);
253
+ // Create frontmatter
254
+ const frontmatter = [
255
+ '---',
256
+ `id: ${id}`,
257
+ `type: ${entityType}`,
258
+ `status: draft`,
259
+ `name: "${name}"`,
260
+ `tags: []`,
261
+ `aliases: []`,
262
+ '---',
263
+ '',
264
+ ].join('\n');
265
+ // Check if file already has frontmatter
266
+ if (content.trimStart().startsWith('---')) {
267
+ console.log(' ⚠️ File already has frontmatter block, skipping...');
268
+ return;
269
+ }
270
+ // Prepend frontmatter
271
+ const newContent = frontmatter + content;
272
+ writeFileSync(filePath, newContent, 'utf-8');
273
+ console.log(` ✅ Added frontmatter (id: ${id})`);
274
+ }
275
+ /**
276
+ * Generate a unique ID from name and type
277
+ */
278
+ function generateId(name, entityType) {
279
+ const slug = name
280
+ .toLowerCase()
281
+ .replace(/[^a-z0-9]+/g, '-')
282
+ .replace(/^-|-$/g, '');
283
+ return `${entityType}-${slug}`;
284
+ }
98
285
  async function validate() {
99
286
  const configPath = resolve(process.cwd(), 'config.json');
100
287
  console.log('🔍 Validating Hivemind configuration...\n');
101
288
  // Check config exists
102
289
  if (!existsSync(configPath)) {
103
290
  console.error('❌ config.json not found');
104
- console.log(' Run "npx hivemind init" to create one');
291
+ console.log(' Run "npx @hiveforge/hivemind-mcp init" to create one');
105
292
  process.exit(1);
106
293
  }
107
294
  // Load and validate config
@@ -174,12 +361,16 @@ else {
174
361
  case 'validate':
175
362
  validate();
176
363
  break;
364
+ case 'fix':
365
+ fix();
366
+ break;
177
367
  default:
178
368
  console.log('Hivemind MCP Server\n');
179
369
  console.log('Usage:');
180
370
  console.log(' npx @hiveforge/hivemind-mcp init - Interactive configuration setup');
181
371
  console.log(' npx @hiveforge/hivemind-mcp validate - Validate configuration');
182
372
  console.log(' npx @hiveforge/hivemind-mcp start - Start the MCP server');
373
+ console.log(' npx @hiveforge/hivemind-mcp fix - Add frontmatter to skipped files');
183
374
  console.log(' npx @hiveforge/hivemind-mcp --vault <path> - Start with specified vault path');
184
375
  console.log(' npx @hiveforge/hivemind-mcp --vault . - Start with current directory as vault');
185
376
  process.exit(command ? 1 : 0);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP (Model Context Protocol) utilities.
3
+ *
4
+ * This module provides dynamic tool generation and related utilities
5
+ * for the Hivemind MCP server.
6
+ */
7
+ export * from './tool-generator.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP (Model Context Protocol) utilities.
3
+ *
4
+ * This module provides dynamic tool generation and related utilities
5
+ * for the Hivemind MCP server.
6
+ */
7
+ export * from './tool-generator.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Dynamic MCP tool generation from template entity types.
3
+ *
4
+ * Generates query_<entityType> and list_<entityType> tools for each
5
+ * entity type defined in the active template.
6
+ */
7
+ import type { EntityTypeConfig } from '../templates/types.js';
8
+ import { z } from 'zod';
9
+ /**
10
+ * MCP Tool definition structure.
11
+ */
12
+ export interface ToolDefinition {
13
+ name: string;
14
+ description: string;
15
+ inputSchema: {
16
+ type: 'object';
17
+ properties: Record<string, any>;
18
+ required: string[];
19
+ };
20
+ }
21
+ /**
22
+ * Standard query arguments schema.
23
+ * All query tools share this interface.
24
+ */
25
+ export declare const QueryEntityArgsSchema: z.ZodObject<{
26
+ id: z.ZodString;
27
+ includeContent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
28
+ contentLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
29
+ }, z.core.$strip>;
30
+ export type QueryEntityArgs = z.infer<typeof QueryEntityArgsSchema>;
31
+ /**
32
+ * Standard list arguments schema.
33
+ * All list tools share this interface.
34
+ */
35
+ export declare const ListEntityArgsSchema: z.ZodObject<{
36
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
37
+ status: z.ZodOptional<z.ZodEnum<{
38
+ draft: "draft";
39
+ pending: "pending";
40
+ canon: "canon";
41
+ "non-canon": "non-canon";
42
+ archived: "archived";
43
+ }>>;
44
+ includeContent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
45
+ contentLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
46
+ }, z.core.$strip>;
47
+ export type ListEntityArgs = z.infer<typeof ListEntityArgsSchema>;
48
+ /**
49
+ * Generate a query_<entityType> tool definition.
50
+ *
51
+ * @param entityType - Entity type configuration from template
52
+ * @returns Tool definition for MCP registration
53
+ */
54
+ export declare function generateQueryTool(entityType: EntityTypeConfig): ToolDefinition;
55
+ /**
56
+ * Generate a list_<entityType> tool definition.
57
+ *
58
+ * @param entityType - Entity type configuration from template
59
+ * @returns Tool definition for MCP registration
60
+ */
61
+ export declare function generateListTool(entityType: EntityTypeConfig): ToolDefinition;
62
+ /**
63
+ * Generate all tools for a set of entity types.
64
+ *
65
+ * @param entityTypes - Array of entity type configurations
66
+ * @returns Array of tool definitions (query + list for each type)
67
+ */
68
+ export declare function generateToolsForEntityTypes(entityTypes: EntityTypeConfig[]): ToolDefinition[];
69
+ /**
70
+ * Check if a tool name matches the query_<entityType> pattern.
71
+ *
72
+ * @param toolName - Tool name to check
73
+ * @returns Entity type name if match, null otherwise
74
+ */
75
+ export declare function parseQueryToolName(toolName: string): string | null;
76
+ /**
77
+ * Check if a tool name matches the list_<entityType> pattern.
78
+ *
79
+ * @param toolName - Tool name to check
80
+ * @returns Entity type name if match, null otherwise
81
+ */
82
+ export declare function parseListToolName(toolName: string): string | null;
83
+ /**
84
+ * Format an entity with its relationships for response.
85
+ *
86
+ * Generic formatter that works with any entity type.
87
+ *
88
+ * @param entityType - Entity type configuration
89
+ * @param result - Query result with node and relatedNodes
90
+ * @param includeContent - Whether to include content body
91
+ * @param contentLimit - Maximum content length
92
+ * @returns Formatted markdown response
93
+ */
94
+ export declare function formatEntityWithRelationships(entityType: EntityTypeConfig, result: {
95
+ node: any;
96
+ relatedNodes: any[];
97
+ }, includeContent?: boolean, contentLimit?: number): string;
98
+ /**
99
+ * Format a list of entities for response.
100
+ *
101
+ * @param entityType - Entity type configuration
102
+ * @param nodes - Array of nodes to format
103
+ * @param includeContent - Whether to include content snippets
104
+ * @param contentLimit - Maximum content length per snippet
105
+ * @returns Formatted markdown response
106
+ */
107
+ export declare function formatEntityList(entityType: EntityTypeConfig, nodes: any[], includeContent?: boolean, contentLimit?: number): string;
108
+ //# sourceMappingURL=tool-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-generator.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CA8B9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CAsC7E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,CAS7F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,GAAG,EAAE,CAAA;CAAE,EAC1C,cAAc,UAAO,EACrB,YAAY,SAAM,GACjB,MAAM,CAkER;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,GAAG,EAAE,EACZ,cAAc,UAAQ,EACtB,YAAY,SAAM,GACjB,MAAM,CAyBR"}