openpets 1.0.5 → 1.0.7

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 (100) hide show
  1. package/dist/data/api.json +6658 -0
  2. package/dist/src/core/ai-client-base/index.d.ts +47 -0
  3. package/dist/src/core/ai-client-base/index.d.ts.map +1 -0
  4. package/dist/src/core/ai-client-base/index.js +168 -0
  5. package/dist/src/core/ai-client-base/index.js.map +1 -0
  6. package/dist/src/core/browser.d.ts +10 -0
  7. package/dist/src/core/browser.d.ts.map +1 -0
  8. package/{browser.ts → dist/src/core/browser.js} +4 -4
  9. package/dist/src/core/browser.js.map +1 -0
  10. package/dist/src/core/build-pet.d.ts +2 -0
  11. package/dist/src/core/build-pet.d.ts.map +1 -0
  12. package/dist/src/core/build-pet.js +392 -0
  13. package/dist/src/core/build-pet.js.map +1 -0
  14. package/dist/src/core/cli.d.ts +3 -0
  15. package/dist/src/core/cli.d.ts.map +1 -0
  16. package/dist/src/core/cli.js +244 -0
  17. package/dist/src/core/cli.js.map +1 -0
  18. package/dist/src/core/config-manager.d.ts +13 -0
  19. package/dist/src/core/config-manager.d.ts.map +1 -0
  20. package/dist/src/core/config-manager.js +59 -0
  21. package/dist/src/core/config-manager.js.map +1 -0
  22. package/dist/src/core/deploy-pet.d.ts +2 -0
  23. package/dist/src/core/deploy-pet.d.ts.map +1 -0
  24. package/dist/src/core/deploy-pet.js +66 -0
  25. package/dist/src/core/deploy-pet.js.map +1 -0
  26. package/dist/src/core/index.d.ts +12 -0
  27. package/dist/src/core/index.d.ts.map +1 -0
  28. package/dist/src/core/index.js +12 -0
  29. package/dist/src/core/index.js.map +1 -0
  30. package/dist/src/core/local-cache.d.ts +69 -0
  31. package/dist/src/core/local-cache.d.ts.map +1 -0
  32. package/dist/src/core/local-cache.js +212 -0
  33. package/dist/src/core/local-cache.js.map +1 -0
  34. package/dist/src/core/logger.d.ts.map +1 -0
  35. package/{logger.js → dist/src/core/logger.js} +8 -9
  36. package/dist/src/core/logger.js.map +1 -0
  37. package/dist/src/core/mautrix-bridge.d.ts +93 -0
  38. package/dist/src/core/mautrix-bridge.d.ts.map +1 -0
  39. package/dist/src/core/mautrix-bridge.js +1046 -0
  40. package/dist/src/core/mautrix-bridge.js.map +1 -0
  41. package/dist/src/core/mcp-factory.d.ts +12 -0
  42. package/dist/src/core/mcp-factory.d.ts.map +1 -0
  43. package/dist/src/core/mcp-factory.js +143 -0
  44. package/dist/src/core/mcp-factory.js.map +1 -0
  45. package/dist/src/core/mcp-server.d.ts +3 -0
  46. package/dist/src/core/mcp-server.d.ts.map +1 -0
  47. package/dist/src/core/mcp-server.js +55 -0
  48. package/dist/src/core/mcp-server.js.map +1 -0
  49. package/dist/src/core/migrate-plugin.d.ts +15 -0
  50. package/dist/src/core/migrate-plugin.d.ts.map +1 -0
  51. package/dist/src/core/migrate-plugin.js +181 -0
  52. package/dist/src/core/migrate-plugin.js.map +1 -0
  53. package/dist/src/core/pets-registry.d.ts +47 -0
  54. package/dist/src/core/pets-registry.d.ts.map +1 -0
  55. package/dist/src/core/pets-registry.js +109 -0
  56. package/dist/src/core/pets-registry.js.map +1 -0
  57. package/dist/src/core/plugin-factory.d.ts +58 -0
  58. package/dist/src/core/plugin-factory.d.ts.map +1 -0
  59. package/dist/src/core/plugin-factory.js +212 -0
  60. package/dist/src/core/plugin-factory.js.map +1 -0
  61. package/dist/src/core/prompt-utils.d.ts +14 -0
  62. package/dist/src/core/prompt-utils.d.ts.map +1 -0
  63. package/dist/src/core/prompt-utils.js +106 -0
  64. package/dist/src/core/prompt-utils.js.map +1 -0
  65. package/dist/src/core/schema-helpers.d.ts +30 -0
  66. package/dist/src/core/schema-helpers.d.ts.map +1 -0
  67. package/dist/src/core/schema-helpers.js +46 -0
  68. package/dist/src/core/schema-helpers.js.map +1 -0
  69. package/dist/src/core/search-pets.d.ts +29 -0
  70. package/dist/src/core/search-pets.d.ts.map +1 -0
  71. package/dist/src/core/search-pets.js +196 -0
  72. package/dist/src/core/search-pets.js.map +1 -0
  73. package/dist/src/core/types.d.ts +63 -0
  74. package/dist/src/core/types.d.ts.map +1 -0
  75. package/dist/src/core/types.js +2 -0
  76. package/dist/src/core/types.js.map +1 -0
  77. package/dist/src/core/validate-pet.d.ts +40 -0
  78. package/dist/src/core/validate-pet.d.ts.map +1 -0
  79. package/dist/src/core/validate-pet.js +650 -0
  80. package/dist/src/core/validate-pet.js.map +1 -0
  81. package/package.json +15 -28
  82. package/ai-client-base/index.ts +0 -229
  83. package/build-pet.ts +0 -429
  84. package/cli.ts +0 -268
  85. package/config-manager.ts +0 -82
  86. package/deploy-pet.ts +0 -91
  87. package/index.ts +0 -10
  88. package/local-cache.ts +0 -280
  89. package/logger.ts +0 -143
  90. package/mcp-factory.ts +0 -180
  91. package/mcp-server.ts +0 -69
  92. package/migrate-plugin.ts +0 -220
  93. package/pets-registry.ts +0 -160
  94. package/plugin-factory.ts +0 -300
  95. package/prompt-utils.ts +0 -130
  96. package/schema-helpers.ts +0 -59
  97. package/search-pets.ts +0 -267
  98. package/types.ts +0 -68
  99. package/validate-pet.ts +0 -749
  100. /package/{logger.d.ts → dist/src/core/logger.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-pets.d.ts","sourceRoot":"","sources":["../../../search-pets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAcnC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAwID,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkEvE;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,CAgB5E;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAKjD"}
@@ -0,0 +1,196 @@
1
+ const REMOTE_API_URL = "https://pets.studio/api.json";
2
+ function isDevMode() {
3
+ if (typeof process !== 'undefined' && process.env) {
4
+ return process.env.PETS_DEV_MODE === "true" || process.env.PETS_DEV_MODE === "1";
5
+ }
6
+ if (typeof window !== 'undefined' && window.PETS_DEV_MODE) {
7
+ return true;
8
+ }
9
+ return false;
10
+ }
11
+ let searchIndex = null;
12
+ let apiDataCache = null;
13
+ async function fetchApiData() {
14
+ if (apiDataCache)
15
+ return apiDataCache;
16
+ if (isDevMode()) {
17
+ try {
18
+ const localApiData = await import("../../data/api.json");
19
+ apiDataCache = localApiData.default;
20
+ return apiDataCache;
21
+ }
22
+ catch (error) {
23
+ console.warn("Failed to load local api.json, falling back to remote:", error);
24
+ }
25
+ }
26
+ try {
27
+ const response = await fetch(REMOTE_API_URL);
28
+ if (!response.ok) {
29
+ throw new Error(`Failed to fetch API data: ${response.status} ${response.statusText}`);
30
+ }
31
+ apiDataCache = await response.json();
32
+ return apiDataCache;
33
+ }
34
+ catch (error) {
35
+ console.error("Failed to fetch remote API data:", error);
36
+ if (!isDevMode()) {
37
+ try {
38
+ const localApiData = await import("../../data/api.json");
39
+ console.warn("Using local api.json as fallback");
40
+ apiDataCache = localApiData.default;
41
+ return apiDataCache;
42
+ }
43
+ catch (fallbackError) {
44
+ console.error("Failed to load local api.json as fallback:", fallbackError);
45
+ }
46
+ }
47
+ throw new Error("Unable to load API data from remote or local sources");
48
+ }
49
+ }
50
+ async function buildSearchIndex() {
51
+ if (searchIndex)
52
+ return searchIndex;
53
+ const apiData = await fetchApiData();
54
+ searchIndex = Object.entries(apiData).map(([petId, petData]) => {
55
+ const toolsText = petData.tools
56
+ ? petData.tools
57
+ .map((t) => `${t.name} ${t.description}`)
58
+ .join(" ")
59
+ .toLowerCase()
60
+ : "";
61
+ const queriesText = petData.queries
62
+ ? petData.queries.join(" ").toLowerCase()
63
+ : "";
64
+ const scenariosText = petData.scenarios
65
+ ? Object.values(petData.scenarios).flat().join(" ").toLowerCase()
66
+ : "";
67
+ const shortId = petId.replace("openpets/", "");
68
+ return {
69
+ id: shortId,
70
+ nameLower: petData.name.toLowerCase(),
71
+ descLower: petData.description.toLowerCase(),
72
+ keywordsLower: petData.keywords?.map((k) => k.toLowerCase()) || [],
73
+ toolsText,
74
+ queriesText,
75
+ scenariosText,
76
+ data: petData,
77
+ };
78
+ });
79
+ return searchIndex;
80
+ }
81
+ function calculateScore(searchTerm, index) {
82
+ const fields = [];
83
+ let maxScore = 0;
84
+ if (index.nameLower.includes(searchTerm)) {
85
+ const isExact = index.nameLower === searchTerm;
86
+ const startsWithSearch = index.nameLower.startsWith(searchTerm);
87
+ fields.push("name");
88
+ maxScore = isExact ? 100 : startsWithSearch ? 95 : 85;
89
+ }
90
+ if (index.keywordsLower.some((k) => k.includes(searchTerm))) {
91
+ fields.push("keywords");
92
+ maxScore = Math.max(maxScore, 90);
93
+ }
94
+ if (index.descLower.includes(searchTerm)) {
95
+ fields.push("description");
96
+ maxScore = Math.max(maxScore, 75);
97
+ }
98
+ if (index.toolsText && index.toolsText.includes(searchTerm)) {
99
+ fields.push("tools");
100
+ maxScore = Math.max(maxScore, 70);
101
+ }
102
+ if (index.queriesText && index.queriesText.includes(searchTerm)) {
103
+ fields.push("queries");
104
+ maxScore = Math.max(maxScore, 60);
105
+ }
106
+ if (index.scenariosText && index.scenariosText.includes(searchTerm)) {
107
+ fields.push("scenarios");
108
+ maxScore = Math.max(maxScore, 50);
109
+ }
110
+ return fields.length > 0 ? { score: maxScore, fields } : null;
111
+ }
112
+ export async function searchPets(query) {
113
+ if (!query || query.trim().length === 0) {
114
+ return [];
115
+ }
116
+ const searchTerm = query.toLowerCase().trim();
117
+ const searchTerms = searchTerm.split(/\s+/).filter((t) => t.length > 0);
118
+ const index = await buildSearchIndex();
119
+ const results = [];
120
+ for (const item of index) {
121
+ let bestMatch = null;
122
+ if (searchTerms.length === 1) {
123
+ bestMatch = calculateScore(searchTerm, item);
124
+ }
125
+ else {
126
+ const matches = searchTerms
127
+ .map((term) => calculateScore(term, item))
128
+ .filter(Boolean);
129
+ if (matches.length === searchTerms.length) {
130
+ const allFields = new Set();
131
+ let totalScore = 0;
132
+ matches.forEach((m) => {
133
+ if (m) {
134
+ m.fields.forEach((f) => allFields.add(f));
135
+ totalScore += m.score;
136
+ }
137
+ });
138
+ bestMatch = {
139
+ score: Math.min(100, Math.floor(totalScore / searchTerms.length)),
140
+ fields: Array.from(allFields),
141
+ };
142
+ }
143
+ else if (matches.length > 0) {
144
+ const allFields = new Set();
145
+ let maxScore = 0;
146
+ matches.forEach((m) => {
147
+ if (m) {
148
+ m.fields.forEach((f) => allFields.add(f));
149
+ maxScore = Math.max(maxScore, m.score);
150
+ }
151
+ });
152
+ bestMatch = {
153
+ score: Math.floor(maxScore * 0.7),
154
+ fields: Array.from(allFields),
155
+ };
156
+ }
157
+ }
158
+ if (bestMatch) {
159
+ results.push({
160
+ id: item.id,
161
+ name: item.data.name,
162
+ description: item.data.description,
163
+ keywords: item.data.keywords || [],
164
+ matchReason: `Matched in: ${bestMatch.fields.join(", ")}`,
165
+ matchScore: bestMatch.score,
166
+ });
167
+ }
168
+ }
169
+ return results.sort((a, b) => b.matchScore - a.matchScore);
170
+ }
171
+ export function clearSearchCache() {
172
+ searchIndex = null;
173
+ apiDataCache = null;
174
+ }
175
+ export function createPetFromApiData(petId, petData) {
176
+ const shortId = petId.replace("openpets/", "");
177
+ const { tools, ...restData } = petData;
178
+ return {
179
+ id: shortId,
180
+ ...restData,
181
+ displayName: petData.title,
182
+ version: petData.version || "1.0.0",
183
+ source_code_url: petData.source_code_url || `https://github.com/raggle-ai/pets/tree/main/pets/${shortId}`,
184
+ queriesCount: petData.queries?.length || 0,
185
+ queries: petData.queries || [],
186
+ keywords: petData.keywords || [],
187
+ tools: tools?.map(t => ({ ...t, schema: {} })),
188
+ enabled: false,
189
+ opencodeJsonPath: "",
190
+ };
191
+ }
192
+ export async function getAllPets() {
193
+ const apiData = await fetchApiData();
194
+ return Object.entries(apiData).map(([petId, petData]) => createPetFromApiData(petId, petData));
195
+ }
196
+ //# sourceMappingURL=search-pets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-pets.js","sourceRoot":"","sources":["../../../search-pets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ export interface EnvVariable {
2
+ name: string;
3
+ description: string;
4
+ provider: string;
5
+ priority: number;
6
+ url?: string;
7
+ setupUrl?: string;
8
+ default?: string;
9
+ }
10
+ export interface Provider {
11
+ name: string;
12
+ description: string;
13
+ priority: number;
14
+ homepage?: string;
15
+ envVariables?: EnvVariable[];
16
+ }
17
+ export interface EnvVariables {
18
+ required?: EnvVariable[];
19
+ optional?: EnvVariable[];
20
+ note?: string;
21
+ }
22
+ export interface PetData {
23
+ name: string;
24
+ description: string;
25
+ keywords: string[];
26
+ source_code_url: string;
27
+ homepage?: string;
28
+ icon?: string;
29
+ envVariables?: EnvVariables;
30
+ queries: string[];
31
+ scenarios?: Record<string, string | string[]>;
32
+ providers?: Provider[];
33
+ connected_pets?: string[];
34
+ }
35
+ export interface Tool {
36
+ name: string;
37
+ description: string;
38
+ schema: Record<string, any>;
39
+ }
40
+ export interface Pet {
41
+ id: string;
42
+ name: string;
43
+ displayName: string;
44
+ description: string;
45
+ keywords: string[];
46
+ source_code_url: string;
47
+ version: string;
48
+ icon?: string;
49
+ homepage?: string;
50
+ envVariables?: EnvVariables;
51
+ queries: string[];
52
+ queriesCount: number;
53
+ tools?: Tool[];
54
+ scenarios?: Record<string, string | string[]>;
55
+ providers?: Provider[];
56
+ connected_pets?: string[];
57
+ enabled: boolean;
58
+ opencodeJsonPath: string;
59
+ }
60
+ export interface PetRegistry {
61
+ [key: string]: PetData;
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC5B;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ export interface ValidationResult {
2
+ valid: boolean;
3
+ errors: string[];
4
+ warnings: string[];
5
+ codePatternWarnings?: string[];
6
+ }
7
+ export interface PackageValidation {
8
+ name: string;
9
+ path: string;
10
+ result: ValidationResult;
11
+ usesModernPattern?: boolean;
12
+ usesPluginFactory?: boolean;
13
+ }
14
+ export interface ValidationReport {
15
+ total: number;
16
+ passed: number;
17
+ failed: number;
18
+ details: PackageValidation[];
19
+ }
20
+ export declare class PluginValidator {
21
+ private requiredFields;
22
+ private recommendedFields;
23
+ private requiredScripts;
24
+ validatePlugin(pluginPath: string): PackageValidation;
25
+ private validatePackageJson;
26
+ private validateProviders;
27
+ private validateEnvVariables;
28
+ private validateEnvExampleFile;
29
+ private validateScenarios;
30
+ private validateOptionalMetadata;
31
+ private isValidPluginName;
32
+ private getFolderName;
33
+ validatePluginByName(pluginName: string, petsDirectory: string): PackageValidation;
34
+ validateAllPlugins(petsDirectory: string): ValidationReport;
35
+ private getPluginDirectories;
36
+ private analyzeCodePatterns;
37
+ private detectNestedSchemas;
38
+ printReport(report: ValidationReport): void;
39
+ }
40
+ //# sourceMappingURL=validate-pet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-pet.d.ts","sourceRoot":"","sources":["../../../validate-pet.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,gBAAgB,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAYrB;IAED,OAAO,CAAC,iBAAiB,CAExB;IAED,OAAO,CAAC,eAAe,CAEtB;IAED,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB;IA4CrD,OAAO,CAAC,mBAAmB;IAwJ3B,OAAO,CAAC,iBAAiB;IAiEzB,OAAO,CAAC,oBAAoB;IA+C5B,OAAO,CAAC,sBAAsB;IA2D9B,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,wBAAwB;IAwGhC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IAIrB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,iBAAiB;IAKlF,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB;IAoB3D,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,mBAAmB;IAyD3B,OAAO,CAAC,mBAAmB;IA+B3B,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;CAqD5C"}