mcp-subagents-opencode 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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +602 -0
  3. package/build/config/timeouts.d.ts +9 -0
  4. package/build/config/timeouts.d.ts.map +1 -0
  5. package/build/config/timeouts.js +18 -0
  6. package/build/config/timeouts.js.map +1 -0
  7. package/build/helpers.d.ts +6 -0
  8. package/build/helpers.d.ts.map +1 -0
  9. package/build/helpers.js +47 -0
  10. package/build/helpers.js.map +1 -0
  11. package/build/index.d.ts +3 -0
  12. package/build/index.d.ts.map +1 -0
  13. package/build/index.js +245 -0
  14. package/build/index.js.map +1 -0
  15. package/build/models.d.ts +32 -0
  16. package/build/models.d.ts.map +1 -0
  17. package/build/models.js +58 -0
  18. package/build/models.js.map +1 -0
  19. package/build/server/register-notifications.d.ts +3 -0
  20. package/build/server/register-notifications.d.ts.map +1 -0
  21. package/build/server/register-notifications.js +77 -0
  22. package/build/server/register-notifications.js.map +1 -0
  23. package/build/server/register-resources.d.ts +3 -0
  24. package/build/server/register-resources.d.ts.map +1 -0
  25. package/build/server/register-resources.js +210 -0
  26. package/build/server/register-resources.js.map +1 -0
  27. package/build/server/register-retry-execution.d.ts +2 -0
  28. package/build/server/register-retry-execution.d.ts.map +1 -0
  29. package/build/server/register-retry-execution.js +28 -0
  30. package/build/server/register-retry-execution.js.map +1 -0
  31. package/build/server/register-tasks.d.ts +3 -0
  32. package/build/server/register-tasks.d.ts.map +1 -0
  33. package/build/server/register-tasks.js +52 -0
  34. package/build/server/register-tasks.js.map +1 -0
  35. package/build/server/register-tools.d.ts +3 -0
  36. package/build/server/register-tools.d.ts.map +1 -0
  37. package/build/server/register-tools.js +32 -0
  38. package/build/server/register-tools.js.map +1 -0
  39. package/build/server/resource-helpers.d.ts +21 -0
  40. package/build/server/resource-helpers.d.ts.map +1 -0
  41. package/build/server/resource-helpers.js +84 -0
  42. package/build/server/resource-helpers.js.map +1 -0
  43. package/build/services/account-manager.d.ts +88 -0
  44. package/build/services/account-manager.d.ts.map +1 -0
  45. package/build/services/account-manager.js +239 -0
  46. package/build/services/account-manager.js.map +1 -0
  47. package/build/services/claude-code-runner.d.ts +15 -0
  48. package/build/services/claude-code-runner.d.ts.map +1 -0
  49. package/build/services/claude-code-runner.js +475 -0
  50. package/build/services/claude-code-runner.js.map +1 -0
  51. package/build/services/client-context.d.ts +31 -0
  52. package/build/services/client-context.d.ts.map +1 -0
  53. package/build/services/client-context.js +44 -0
  54. package/build/services/client-context.js.map +1 -0
  55. package/build/services/exhaustion-fallback.d.ts +27 -0
  56. package/build/services/exhaustion-fallback.d.ts.map +1 -0
  57. package/build/services/exhaustion-fallback.js +30 -0
  58. package/build/services/exhaustion-fallback.js.map +1 -0
  59. package/build/services/fallback-orchestrator.d.ts +16 -0
  60. package/build/services/fallback-orchestrator.d.ts.map +1 -0
  61. package/build/services/fallback-orchestrator.js +48 -0
  62. package/build/services/fallback-orchestrator.js.map +1 -0
  63. package/build/services/opencode-client.d.ts +40 -0
  64. package/build/services/opencode-client.d.ts.map +1 -0
  65. package/build/services/opencode-client.js +147 -0
  66. package/build/services/opencode-client.js.map +1 -0
  67. package/build/services/opencode-spawner.d.ts +56 -0
  68. package/build/services/opencode-spawner.d.ts.map +1 -0
  69. package/build/services/opencode-spawner.js +426 -0
  70. package/build/services/opencode-spawner.js.map +1 -0
  71. package/build/services/output-file.d.ts +24 -0
  72. package/build/services/output-file.d.ts.map +1 -0
  73. package/build/services/output-file.js +90 -0
  74. package/build/services/output-file.js.map +1 -0
  75. package/build/services/progress-registry.d.ts +12 -0
  76. package/build/services/progress-registry.d.ts.map +1 -0
  77. package/build/services/progress-registry.js +97 -0
  78. package/build/services/progress-registry.js.map +1 -0
  79. package/build/services/question-registry.d.ts +79 -0
  80. package/build/services/question-registry.d.ts.map +1 -0
  81. package/build/services/question-registry.js +249 -0
  82. package/build/services/question-registry.js.map +1 -0
  83. package/build/services/retry-queue.d.ts +41 -0
  84. package/build/services/retry-queue.d.ts.map +1 -0
  85. package/build/services/retry-queue.js +195 -0
  86. package/build/services/retry-queue.js.map +1 -0
  87. package/build/services/sdk-client-manager.d.ts +149 -0
  88. package/build/services/sdk-client-manager.d.ts.map +1 -0
  89. package/build/services/sdk-client-manager.js +632 -0
  90. package/build/services/sdk-client-manager.js.map +1 -0
  91. package/build/services/sdk-session-adapter.d.ts +203 -0
  92. package/build/services/sdk-session-adapter.d.ts.map +1 -0
  93. package/build/services/sdk-session-adapter.js +1088 -0
  94. package/build/services/sdk-session-adapter.js.map +1 -0
  95. package/build/services/sdk-spawner.d.ts +42 -0
  96. package/build/services/sdk-spawner.d.ts.map +1 -0
  97. package/build/services/sdk-spawner.js +488 -0
  98. package/build/services/sdk-spawner.js.map +1 -0
  99. package/build/services/session-hooks.d.ts +24 -0
  100. package/build/services/session-hooks.d.ts.map +1 -0
  101. package/build/services/session-hooks.js +130 -0
  102. package/build/services/session-hooks.js.map +1 -0
  103. package/build/services/session-snapshot.d.ts +19 -0
  104. package/build/services/session-snapshot.d.ts.map +1 -0
  105. package/build/services/session-snapshot.js +203 -0
  106. package/build/services/session-snapshot.js.map +1 -0
  107. package/build/services/subscription-registry.d.ts +12 -0
  108. package/build/services/subscription-registry.d.ts.map +1 -0
  109. package/build/services/subscription-registry.js +27 -0
  110. package/build/services/subscription-registry.js.map +1 -0
  111. package/build/services/task-manager.d.ts +150 -0
  112. package/build/services/task-manager.d.ts.map +1 -0
  113. package/build/services/task-manager.js +765 -0
  114. package/build/services/task-manager.js.map +1 -0
  115. package/build/services/task-persistence.d.ts +29 -0
  116. package/build/services/task-persistence.d.ts.map +1 -0
  117. package/build/services/task-persistence.js +159 -0
  118. package/build/services/task-persistence.js.map +1 -0
  119. package/build/services/task-status-mapper.d.ts +21 -0
  120. package/build/services/task-status-mapper.d.ts.map +1 -0
  121. package/build/services/task-status-mapper.js +171 -0
  122. package/build/services/task-status-mapper.js.map +1 -0
  123. package/build/templates/index.d.ts +22 -0
  124. package/build/templates/index.d.ts.map +1 -0
  125. package/build/templates/index.js +147 -0
  126. package/build/templates/index.js.map +1 -0
  127. package/build/templates/overlays/coder-csharp.mdx +58 -0
  128. package/build/templates/overlays/coder-go.mdx +53 -0
  129. package/build/templates/overlays/coder-java.mdx +54 -0
  130. package/build/templates/overlays/coder-kotlin.mdx +56 -0
  131. package/build/templates/overlays/coder-nextjs.mdx +65 -0
  132. package/build/templates/overlays/coder-python.mdx +53 -0
  133. package/build/templates/overlays/coder-react.mdx +55 -0
  134. package/build/templates/overlays/coder-ruby.mdx +59 -0
  135. package/build/templates/overlays/coder-rust.mdx +48 -0
  136. package/build/templates/overlays/coder-supabase.mdx +268 -0
  137. package/build/templates/overlays/coder-supastarter.mdx +313 -0
  138. package/build/templates/overlays/coder-swift.mdx +56 -0
  139. package/build/templates/overlays/coder-tauri.mdx +566 -0
  140. package/build/templates/overlays/coder-triggerdev.mdx +296 -0
  141. package/build/templates/overlays/coder-typescript.mdx +45 -0
  142. package/build/templates/overlays/coder-vue.mdx +62 -0
  143. package/build/templates/overlays/planner-architecture.mdx +78 -0
  144. package/build/templates/overlays/planner-bugfix.mdx +36 -0
  145. package/build/templates/overlays/planner-feature.mdx +38 -0
  146. package/build/templates/overlays/planner-migration.mdx +50 -0
  147. package/build/templates/overlays/planner-refactor.mdx +57 -0
  148. package/build/templates/overlays/researcher-library.mdx +59 -0
  149. package/build/templates/overlays/researcher-performance.mdx +68 -0
  150. package/build/templates/overlays/researcher-security.mdx +86 -0
  151. package/build/templates/overlays/tester-graphql.mdx +191 -0
  152. package/build/templates/overlays/tester-playwright.mdx +621 -0
  153. package/build/templates/overlays/tester-rest.mdx +101 -0
  154. package/build/templates/overlays/tester-suite.mdx +177 -0
  155. package/build/templates/super-coder.mdx +529 -0
  156. package/build/templates/super-planner.mdx +568 -0
  157. package/build/templates/super-researcher.mdx +406 -0
  158. package/build/templates/super-tester.mdx +243 -0
  159. package/build/tools/answer-question.d.ts +30 -0
  160. package/build/tools/answer-question.d.ts.map +1 -0
  161. package/build/tools/answer-question.js +108 -0
  162. package/build/tools/answer-question.js.map +1 -0
  163. package/build/tools/cancel-task.d.ts +44 -0
  164. package/build/tools/cancel-task.d.ts.map +1 -0
  165. package/build/tools/cancel-task.js +144 -0
  166. package/build/tools/cancel-task.js.map +1 -0
  167. package/build/tools/send-message.d.ts +39 -0
  168. package/build/tools/send-message.d.ts.map +1 -0
  169. package/build/tools/send-message.js +124 -0
  170. package/build/tools/send-message.js.map +1 -0
  171. package/build/tools/shared-spawn.d.ts +56 -0
  172. package/build/tools/shared-spawn.d.ts.map +1 -0
  173. package/build/tools/shared-spawn.js +114 -0
  174. package/build/tools/shared-spawn.js.map +1 -0
  175. package/build/tools/spawn-agent.d.ts +85 -0
  176. package/build/tools/spawn-agent.d.ts.map +1 -0
  177. package/build/tools/spawn-agent.js +133 -0
  178. package/build/tools/spawn-agent.js.map +1 -0
  179. package/build/tools/spawn-coder.d.ts +70 -0
  180. package/build/tools/spawn-coder.d.ts.map +1 -0
  181. package/build/tools/spawn-coder.js +71 -0
  182. package/build/tools/spawn-coder.js.map +1 -0
  183. package/build/tools/spawn-planner.d.ts +70 -0
  184. package/build/tools/spawn-planner.d.ts.map +1 -0
  185. package/build/tools/spawn-planner.js +71 -0
  186. package/build/tools/spawn-planner.js.map +1 -0
  187. package/build/tools/spawn-researcher.d.ts +70 -0
  188. package/build/tools/spawn-researcher.d.ts.map +1 -0
  189. package/build/tools/spawn-researcher.js +70 -0
  190. package/build/tools/spawn-researcher.js.map +1 -0
  191. package/build/tools/spawn-task.d.ts +74 -0
  192. package/build/tools/spawn-task.d.ts.map +1 -0
  193. package/build/tools/spawn-task.js +107 -0
  194. package/build/tools/spawn-task.js.map +1 -0
  195. package/build/tools/spawn-tester.d.ts +70 -0
  196. package/build/tools/spawn-tester.d.ts.map +1 -0
  197. package/build/tools/spawn-tester.js +69 -0
  198. package/build/tools/spawn-tester.js.map +1 -0
  199. package/build/types.d.ts +101 -0
  200. package/build/types.d.ts.map +1 -0
  201. package/build/types.js +28 -0
  202. package/build/types.js.map +1 -0
  203. package/build/utils/brief-validator.d.ts +30 -0
  204. package/build/utils/brief-validator.d.ts.map +1 -0
  205. package/build/utils/brief-validator.js +254 -0
  206. package/build/utils/brief-validator.js.map +1 -0
  207. package/build/utils/format.d.ts +34 -0
  208. package/build/utils/format.d.ts.map +1 -0
  209. package/build/utils/format.js +55 -0
  210. package/build/utils/format.js.map +1 -0
  211. package/build/utils/sanitize.d.ts +240 -0
  212. package/build/utils/sanitize.d.ts.map +1 -0
  213. package/build/utils/sanitize.js +89 -0
  214. package/build/utils/sanitize.js.map +1 -0
  215. package/build/utils/task-id-generator.d.ts +10 -0
  216. package/build/utils/task-id-generator.d.ts.map +1 -0
  217. package/build/utils/task-id-generator.js +22 -0
  218. package/build/utils/task-id-generator.js.map +1 -0
  219. package/package.json +62 -0
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Multi-Account Manager - In-memory round-robin rotation for GitHub PAT tokens.
3
+ *
4
+ * Supports up to 100 GitHub PAT tokens for failover on rate limits and errors.
5
+ * Key features:
6
+ * - Round-robin rotation through configured tokens
7
+ * - Automatic failover on rate limit (429) or server errors (5xx)
8
+ * - Reset to first token on MCP reconnect
9
+ * - Track failed tokens to skip them temporarily
10
+ */
11
+ const MAX_ACCOUNTS = 100;
12
+ const FAILED_TOKEN_COOLDOWN_MS = 60 * 1000; // 1 minute cooldown for failed tokens
13
+ class AccountManager {
14
+ tokens = [];
15
+ currentIndex = 0;
16
+ rotationCount = 0;
17
+ lastRotationTime;
18
+ initialized = false;
19
+ /**
20
+ * Initialize the account manager with GitHub PAT tokens.
21
+ * Tokens can be provided via:
22
+ * - GITHUB_PAT_TOKENS env var (comma-separated)
23
+ * - GITHUB_PAT_TOKEN_1, GITHUB_PAT_TOKEN_2, ... env vars
24
+ * - Direct configuration via setTokens()
25
+ */
26
+ initialize() {
27
+ if (this.initialized)
28
+ return;
29
+ const tokens = [];
30
+ // Method 1: Comma-separated tokens in GITHUB_PAT_TOKENS
31
+ const commaTokens = process.env.GITHUB_PAT_TOKENS;
32
+ if (commaTokens) {
33
+ const parsed = commaTokens.split(',').map(t => t.trim()).filter(t => t.length > 0);
34
+ tokens.push(...parsed);
35
+ }
36
+ // Method 2: Numbered env vars GITHUB_PAT_TOKEN_1, GITHUB_PAT_TOKEN_2, etc.
37
+ for (let i = 1; i <= MAX_ACCOUNTS; i++) {
38
+ const token = process.env[`GITHUB_PAT_TOKEN_${i}`];
39
+ if (token && token.trim()) {
40
+ // Avoid duplicates
41
+ if (!tokens.includes(token.trim())) {
42
+ tokens.push(token.trim());
43
+ }
44
+ }
45
+ }
46
+ // Method 3: GH_PAT_TOKEN (supports comma-separated for multi-account)
47
+ if (tokens.length === 0 && process.env.GH_PAT_TOKEN) {
48
+ const ghPatTokens = process.env.GH_PAT_TOKEN.split(',').map(t => t.trim()).filter(t => t.length > 0);
49
+ tokens.push(...ghPatTokens);
50
+ }
51
+ // Method 4: Single token fallback (GITHUB_TOKEN or GH_TOKEN)
52
+ if (tokens.length === 0) {
53
+ const singleToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
54
+ if (singleToken && singleToken.trim()) {
55
+ tokens.push(singleToken.trim());
56
+ }
57
+ }
58
+ this.setTokens(tokens);
59
+ this.initialized = true;
60
+ console.error(`[account-manager] Initialized with ${this.tokens.length} account(s)`);
61
+ }
62
+ /**
63
+ * Set tokens directly (useful for testing or programmatic configuration).
64
+ */
65
+ setTokens(tokens) {
66
+ // Limit to MAX_ACCOUNTS
67
+ const limitedTokens = tokens.slice(0, MAX_ACCOUNTS);
68
+ this.tokens = limitedTokens.map((token, index) => ({
69
+ token,
70
+ index,
71
+ failureCount: 0,
72
+ }));
73
+ this.currentIndex = 0;
74
+ this.rotationCount = 0;
75
+ this.lastRotationTime = undefined;
76
+ }
77
+ /**
78
+ * Get the current active token.
79
+ * Returns undefined if no tokens configured.
80
+ */
81
+ getCurrentToken() {
82
+ if (this.tokens.length === 0) {
83
+ return undefined;
84
+ }
85
+ return this.tokens[this.currentIndex]?.token;
86
+ }
87
+ /**
88
+ * Get the current token index.
89
+ */
90
+ getCurrentIndex() {
91
+ return this.currentIndex;
92
+ }
93
+ /**
94
+ * Get total number of configured tokens.
95
+ */
96
+ getTokenCount() {
97
+ return this.tokens.length;
98
+ }
99
+ /**
100
+ * Check if multi-account mode is enabled (more than 1 token).
101
+ */
102
+ isMultiAccountEnabled() {
103
+ return this.tokens.length > 1;
104
+ }
105
+ /**
106
+ * Reset to the first token (called on MCP reconnect).
107
+ */
108
+ reset() {
109
+ this.currentIndex = 0;
110
+ this.rotationCount = 0;
111
+ this.lastRotationTime = undefined;
112
+ // Clear failure states
113
+ for (const state of this.tokens) {
114
+ state.failedAt = undefined;
115
+ state.failureReason = undefined;
116
+ state.failureCount = 0;
117
+ }
118
+ console.error(`[account-manager] Reset to first account (${this.tokens.length} total)`);
119
+ }
120
+ /**
121
+ * Rotate to the next available token.
122
+ * Called when current token encounters rate limit or error.
123
+ *
124
+ * @param reason - Reason for rotation (e.g., 'rate_limit', 'server_error')
125
+ * @returns Result with new token or exhausted status
126
+ */
127
+ rotateToNext(reason = 'unknown') {
128
+ if (this.tokens.length === 0) {
129
+ return { success: false, error: 'No tokens configured' };
130
+ }
131
+ if (this.tokens.length === 1) {
132
+ // Single token mode - can't rotate
133
+ return { success: false, error: 'Single token mode - cannot rotate' };
134
+ }
135
+ // Mark current token as failed
136
+ const currentState = this.tokens[this.currentIndex];
137
+ if (currentState) {
138
+ currentState.failedAt = Date.now();
139
+ currentState.failureReason = reason;
140
+ currentState.failureCount++;
141
+ console.error(`[account-manager] Token #${this.currentIndex + 1} failed: ${reason} (count: ${currentState.failureCount})`);
142
+ }
143
+ // Find next available token
144
+ const startIndex = this.currentIndex;
145
+ let attempts = 0;
146
+ const now = Date.now();
147
+ while (attempts < this.tokens.length) {
148
+ // Move to next index (round-robin)
149
+ this.currentIndex = (this.currentIndex + 1) % this.tokens.length;
150
+ attempts++;
151
+ const nextState = this.tokens[this.currentIndex];
152
+ // Check if this token is in cooldown
153
+ if (nextState.failedAt) {
154
+ const cooldownRemaining = FAILED_TOKEN_COOLDOWN_MS - (now - nextState.failedAt);
155
+ if (cooldownRemaining > 0) {
156
+ // Still in cooldown, try next
157
+ continue;
158
+ }
159
+ // Cooldown expired, clear failure state
160
+ nextState.failedAt = undefined;
161
+ nextState.failureReason = undefined;
162
+ }
163
+ // Found an available token
164
+ this.rotationCount++;
165
+ this.lastRotationTime = new Date();
166
+ console.error(`[account-manager] Rotated to token #${this.currentIndex + 1}/${this.tokens.length} (rotation #${this.rotationCount})`);
167
+ return {
168
+ success: true,
169
+ token: nextState.token,
170
+ tokenIndex: this.currentIndex,
171
+ };
172
+ }
173
+ // All tokens are in cooldown - all exhausted
174
+ console.error(`[account-manager] All ${this.tokens.length} tokens exhausted or in cooldown`);
175
+ // Reset to first token anyway (best effort)
176
+ this.currentIndex = 0;
177
+ return {
178
+ success: false,
179
+ allExhausted: true,
180
+ error: `All ${this.tokens.length} tokens are rate limited or failed`,
181
+ };
182
+ }
183
+ /**
184
+ * Check if rotation should happen based on error type.
185
+ * Returns true for rate limits (429) and server errors (5xx).
186
+ */
187
+ shouldRotate(statusCode, errorMessage) {
188
+ // No rotation if single token
189
+ if (this.tokens.length <= 1) {
190
+ return false;
191
+ }
192
+ // Rate limit
193
+ if (statusCode === 429) {
194
+ return true;
195
+ }
196
+ // Server errors (5xx)
197
+ if (statusCode && statusCode >= 500 && statusCode < 600) {
198
+ return true;
199
+ }
200
+ // Check error message for rate limit patterns
201
+ if (errorMessage) {
202
+ const lowerMsg = errorMessage.toLowerCase();
203
+ if (lowerMsg.includes('rate limit') ||
204
+ lowerMsg.includes('too many requests') ||
205
+ lowerMsg.includes('quota exceeded')) {
206
+ return true;
207
+ }
208
+ }
209
+ return false;
210
+ }
211
+ /**
212
+ * Get statistics about token usage.
213
+ */
214
+ getStats() {
215
+ const now = Date.now();
216
+ const failedCount = this.tokens.filter(t => t.failedAt && (now - t.failedAt) < FAILED_TOKEN_COOLDOWN_MS).length;
217
+ return {
218
+ totalTokens: this.tokens.length,
219
+ currentIndex: this.currentIndex,
220
+ rotationCount: this.rotationCount,
221
+ lastRotation: this.lastRotationTime?.toISOString(),
222
+ failedTokens: failedCount,
223
+ availableTokens: this.tokens.length - failedCount,
224
+ };
225
+ }
226
+ /**
227
+ * Get a masked version of the current token for logging.
228
+ */
229
+ getMaskedCurrentToken() {
230
+ const token = this.getCurrentToken();
231
+ if (!token)
232
+ return '(none)';
233
+ if (token.length <= 8)
234
+ return '****';
235
+ return `${token.slice(0, 4)}...${token.slice(-4)}`;
236
+ }
237
+ }
238
+ export const accountManager = new AccountManager();
239
+ //# sourceMappingURL=account-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-manager.js","sourceRoot":"","sources":["../../src/services/account-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Claude Code Fallback Runner (ai-sdk-provider-claude-code)
3
+ *
4
+ * Executes fallback tasks through the ben-vargas provider, which wraps
5
+ * @anthropic-ai/claude-agent-sdk with richer streaming, metadata, and errors.
6
+ */
7
+ import { type FallbackReason } from '../types.js';
8
+ export interface ClaudeCodeRunOptions {
9
+ resumeSessionId?: string;
10
+ fallbackReason?: FallbackReason;
11
+ preferredModel?: string;
12
+ }
13
+ export declare function abortClaudeCodeSession(taskId: string, reason?: string): boolean;
14
+ export declare function runClaudeCodeSession(taskId: string, prompt: string, cwd: string, timeout: number, optionsOrResume?: string | ClaudeCodeRunOptions): Promise<void>;
15
+ //# sourceMappingURL=claude-code-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-runner.d.ts","sourceRoot":"","sources":["../../src/services/claude-code-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAA6C,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAS7F,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA6HD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAiC,GAAG,OAAO,CAOzG;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAC9C,OAAO,CAAC,IAAI,CAAC,CAgYf"}