@claude-flow/hooks 3.0.0-alpha.1

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 (72) hide show
  1. package/README.md +440 -0
  2. package/bin/hooks-daemon.js +199 -0
  3. package/bin/statusline.js +77 -0
  4. package/dist/bridge/official-hooks-bridge.d.ts +99 -0
  5. package/dist/bridge/official-hooks-bridge.d.ts.map +1 -0
  6. package/dist/bridge/official-hooks-bridge.js +280 -0
  7. package/dist/bridge/official-hooks-bridge.js.map +1 -0
  8. package/dist/cli/guidance-cli.d.ts +17 -0
  9. package/dist/cli/guidance-cli.d.ts.map +1 -0
  10. package/dist/cli/guidance-cli.js +486 -0
  11. package/dist/cli/guidance-cli.js.map +1 -0
  12. package/dist/daemons/index.d.ts +204 -0
  13. package/dist/daemons/index.d.ts.map +1 -0
  14. package/dist/daemons/index.js +443 -0
  15. package/dist/daemons/index.js.map +1 -0
  16. package/dist/executor/index.d.ts +80 -0
  17. package/dist/executor/index.d.ts.map +1 -0
  18. package/dist/executor/index.js +273 -0
  19. package/dist/executor/index.js.map +1 -0
  20. package/dist/index.d.ts +51 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +85 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/llm/index.d.ts +11 -0
  25. package/dist/llm/index.d.ts.map +1 -0
  26. package/dist/llm/index.js +11 -0
  27. package/dist/llm/index.js.map +1 -0
  28. package/dist/llm/llm-hooks.d.ts +93 -0
  29. package/dist/llm/llm-hooks.d.ts.map +1 -0
  30. package/dist/llm/llm-hooks.js +382 -0
  31. package/dist/llm/llm-hooks.js.map +1 -0
  32. package/dist/mcp/index.d.ts +61 -0
  33. package/dist/mcp/index.d.ts.map +1 -0
  34. package/dist/mcp/index.js +501 -0
  35. package/dist/mcp/index.js.map +1 -0
  36. package/dist/reasoningbank/guidance-provider.d.ts +78 -0
  37. package/dist/reasoningbank/guidance-provider.d.ts.map +1 -0
  38. package/dist/reasoningbank/guidance-provider.js +350 -0
  39. package/dist/reasoningbank/guidance-provider.js.map +1 -0
  40. package/dist/reasoningbank/index.d.ts +212 -0
  41. package/dist/reasoningbank/index.d.ts.map +1 -0
  42. package/dist/reasoningbank/index.js +785 -0
  43. package/dist/reasoningbank/index.js.map +1 -0
  44. package/dist/registry/index.d.ts +85 -0
  45. package/dist/registry/index.d.ts.map +1 -0
  46. package/dist/registry/index.js +212 -0
  47. package/dist/registry/index.js.map +1 -0
  48. package/dist/statusline/index.d.ts +128 -0
  49. package/dist/statusline/index.d.ts.map +1 -0
  50. package/dist/statusline/index.js +493 -0
  51. package/dist/statusline/index.js.map +1 -0
  52. package/dist/swarm/index.d.ts +271 -0
  53. package/dist/swarm/index.d.ts.map +1 -0
  54. package/dist/swarm/index.js +638 -0
  55. package/dist/swarm/index.js.map +1 -0
  56. package/dist/types.d.ts +525 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +56 -0
  59. package/dist/types.js.map +1 -0
  60. package/dist/workers/index.d.ts +232 -0
  61. package/dist/workers/index.d.ts.map +1 -0
  62. package/dist/workers/index.js +1521 -0
  63. package/dist/workers/index.js.map +1 -0
  64. package/dist/workers/mcp-tools.d.ts +37 -0
  65. package/dist/workers/mcp-tools.d.ts.map +1 -0
  66. package/dist/workers/mcp-tools.js +414 -0
  67. package/dist/workers/mcp-tools.js.map +1 -0
  68. package/dist/workers/session-hook.d.ts +42 -0
  69. package/dist/workers/session-hook.d.ts.map +1 -0
  70. package/dist/workers/session-hook.js +172 -0
  71. package/dist/workers/session-hook.js.map +1 -0
  72. package/package.json +101 -0
@@ -0,0 +1,271 @@
1
+ /**
2
+ * V3 Swarm Communication Hooks
3
+ *
4
+ * Enables agent-to-agent communication, pattern broadcasting,
5
+ * consensus building, and task handoff coordination.
6
+ *
7
+ * @module @claude-flow/hooks/swarm
8
+ */
9
+ import { EventEmitter } from 'node:events';
10
+ import { type GuidancePattern } from '../reasoningbank/index.js';
11
+ /**
12
+ * Message between agents
13
+ */
14
+ export interface SwarmMessage {
15
+ id: string;
16
+ from: string;
17
+ to: string | '*';
18
+ type: 'context' | 'pattern' | 'handoff' | 'consensus' | 'result' | 'query';
19
+ content: string;
20
+ metadata: Record<string, unknown>;
21
+ timestamp: number;
22
+ ttl?: number;
23
+ priority: 'low' | 'normal' | 'high' | 'critical';
24
+ }
25
+ /**
26
+ * Pattern broadcast entry
27
+ */
28
+ export interface PatternBroadcast {
29
+ id: string;
30
+ sourceAgent: string;
31
+ pattern: GuidancePattern;
32
+ broadcastTime: number;
33
+ recipients: string[];
34
+ acknowledgments: string[];
35
+ }
36
+ /**
37
+ * Consensus request
38
+ */
39
+ export interface ConsensusRequest {
40
+ id: string;
41
+ initiator: string;
42
+ question: string;
43
+ options: string[];
44
+ votes: Map<string, string>;
45
+ deadline: number;
46
+ status: 'pending' | 'resolved' | 'expired';
47
+ result?: {
48
+ winner: string;
49
+ confidence: number;
50
+ participation: number;
51
+ };
52
+ }
53
+ /**
54
+ * Task handoff
55
+ */
56
+ export interface TaskHandoff {
57
+ id: string;
58
+ taskId: string;
59
+ description: string;
60
+ fromAgent: string;
61
+ toAgent: string;
62
+ context: {
63
+ filesModified: string[];
64
+ patternsUsed: string[];
65
+ decisions: string[];
66
+ blockers: string[];
67
+ nextSteps: string[];
68
+ };
69
+ status: 'pending' | 'accepted' | 'rejected' | 'completed';
70
+ timestamp: number;
71
+ completedAt?: number;
72
+ }
73
+ /**
74
+ * Agent state in swarm
75
+ */
76
+ export interface SwarmAgentState {
77
+ id: string;
78
+ name: string;
79
+ status: 'idle' | 'busy' | 'waiting' | 'offline';
80
+ currentTask?: string;
81
+ lastSeen: number;
82
+ capabilities: string[];
83
+ patternsShared: number;
84
+ handoffsReceived: number;
85
+ handoffsCompleted: number;
86
+ }
87
+ /**
88
+ * Swarm communication configuration
89
+ */
90
+ export interface SwarmConfig {
91
+ /** Agent ID for this instance */
92
+ agentId: string;
93
+ /** Agent name/role */
94
+ agentName: string;
95
+ /** Message retention time (ms) */
96
+ messageRetention: number;
97
+ /** Consensus timeout (ms) */
98
+ consensusTimeout: number;
99
+ /** Auto-acknowledge messages */
100
+ autoAcknowledge: boolean;
101
+ /** Broadcast patterns automatically */
102
+ autoBroadcastPatterns: boolean;
103
+ /** Pattern broadcast threshold (quality) */
104
+ patternBroadcastThreshold: number;
105
+ }
106
+ /**
107
+ * Swarm Communication Hub
108
+ *
109
+ * Manages agent-to-agent communication within the swarm.
110
+ */
111
+ export declare class SwarmCommunication extends EventEmitter {
112
+ private config;
113
+ private messages;
114
+ private broadcasts;
115
+ private consensusRequests;
116
+ private handoffs;
117
+ private agents;
118
+ private initialized;
119
+ private cleanupTimer?;
120
+ private metrics;
121
+ constructor(config?: Partial<SwarmConfig>);
122
+ /**
123
+ * Initialize swarm communication
124
+ */
125
+ initialize(): Promise<void>;
126
+ /**
127
+ * Shutdown swarm communication and cleanup resources
128
+ */
129
+ shutdown(): Promise<void>;
130
+ /**
131
+ * Send a message to another agent
132
+ */
133
+ sendMessage(to: string, content: string, options?: {
134
+ type?: SwarmMessage['type'];
135
+ priority?: SwarmMessage['priority'];
136
+ metadata?: Record<string, unknown>;
137
+ ttl?: number;
138
+ }): Promise<SwarmMessage>;
139
+ /**
140
+ * Get messages for this agent
141
+ */
142
+ getMessages(options?: {
143
+ from?: string;
144
+ type?: SwarmMessage['type'];
145
+ since?: number;
146
+ limit?: number;
147
+ }): SwarmMessage[];
148
+ /**
149
+ * Broadcast context to all agents
150
+ */
151
+ broadcastContext(content: string, metadata?: Record<string, unknown>): Promise<SwarmMessage>;
152
+ /**
153
+ * Query other agents
154
+ */
155
+ queryAgents(query: string): Promise<SwarmMessage>;
156
+ /**
157
+ * Broadcast a learned pattern to the swarm
158
+ */
159
+ broadcastPattern(pattern: GuidancePattern, targetAgents?: string[]): Promise<PatternBroadcast>;
160
+ /**
161
+ * Acknowledge receipt of a pattern broadcast
162
+ */
163
+ acknowledgeBroadcast(broadcastId: string): boolean;
164
+ /**
165
+ * Get recent pattern broadcasts
166
+ */
167
+ getPatternBroadcasts(options?: {
168
+ since?: number;
169
+ domain?: string;
170
+ minQuality?: number;
171
+ }): PatternBroadcast[];
172
+ /**
173
+ * Import a broadcast pattern into local ReasoningBank
174
+ */
175
+ importBroadcastPattern(broadcastId: string): Promise<boolean>;
176
+ /**
177
+ * Initiate a consensus request
178
+ */
179
+ initiateConsensus(question: string, options: string[], timeout?: number): Promise<ConsensusRequest>;
180
+ /**
181
+ * Vote on a consensus request
182
+ */
183
+ voteConsensus(consensusId: string, vote: string): boolean;
184
+ /**
185
+ * Resolve a consensus request
186
+ */
187
+ private resolveConsensus;
188
+ /**
189
+ * Get consensus request by ID
190
+ */
191
+ getConsensus(consensusId: string): ConsensusRequest | undefined;
192
+ /**
193
+ * Get pending consensus requests
194
+ */
195
+ getPendingConsensus(): ConsensusRequest[];
196
+ /**
197
+ * Generate consensus guidance text
198
+ */
199
+ generateConsensusGuidance(consensusId: string): string;
200
+ /**
201
+ * Initiate a task handoff to another agent
202
+ */
203
+ initiateHandoff(toAgent: string, taskDescription: string, context: TaskHandoff['context']): Promise<TaskHandoff>;
204
+ /**
205
+ * Accept a task handoff
206
+ */
207
+ acceptHandoff(handoffId: string): boolean;
208
+ /**
209
+ * Reject a task handoff
210
+ */
211
+ rejectHandoff(handoffId: string, reason?: string): boolean;
212
+ /**
213
+ * Complete a task handoff
214
+ */
215
+ completeHandoff(handoffId: string, result?: Record<string, unknown>): boolean;
216
+ /**
217
+ * Get handoff by ID
218
+ */
219
+ getHandoff(handoffId: string): TaskHandoff | undefined;
220
+ /**
221
+ * Get pending handoffs for this agent
222
+ */
223
+ getPendingHandoffs(): TaskHandoff[];
224
+ /**
225
+ * Generate handoff context text for Claude
226
+ */
227
+ generateHandoffContext(handoffId: string): string;
228
+ /**
229
+ * Register an agent in the swarm
230
+ */
231
+ registerAgent(agent: SwarmAgentState): void;
232
+ /**
233
+ * Update agent status
234
+ */
235
+ updateAgentStatus(agentId: string, status: SwarmAgentState['status']): void;
236
+ /**
237
+ * Get all registered agents
238
+ */
239
+ getAgents(): SwarmAgentState[];
240
+ /**
241
+ * Get agent by ID
242
+ */
243
+ getAgent(agentId: string): SwarmAgentState | undefined;
244
+ /**
245
+ * Get communication statistics
246
+ */
247
+ getStats(): {
248
+ agentId: string;
249
+ agentCount: number;
250
+ metrics: {
251
+ messagesSent: number;
252
+ messagesReceived: number;
253
+ patternsBroadcast: number;
254
+ consensusInitiated: number;
255
+ consensusResolved: number;
256
+ handoffsInitiated: number;
257
+ handoffsCompleted: number;
258
+ };
259
+ pendingMessages: number;
260
+ pendingHandoffs: number;
261
+ pendingConsensus: number;
262
+ };
263
+ /**
264
+ * Cleanup old messages and data
265
+ */
266
+ private cleanup;
267
+ private ensureInitialized;
268
+ }
269
+ export declare const swarmComm: SwarmCommunication;
270
+ export { SwarmCommunication as default, };
271
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swarm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAMhF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,4CAA4C;IAC5C,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAgBD;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAiB;IAGtC,OAAO,CAAC,OAAO,CAQb;gBAEU,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAK7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B;;OAEG;IACG,WAAW,CACf,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,GAAG,CAAC,EAAE,MAAM,CAAC;KACT,GACL,OAAO,CAAC,YAAY,CAAC;IA4BxB;;OAEG;IACH,WAAW,CAAC,OAAO,GAAE;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,YAAY,EAAE;IAiCvB;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQtG;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAWvD;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,gBAAgB,CAAC;IAwC5B;;OAEG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAYlD;;OAEG;IACH,oBAAoB,CAAC,OAAO,GAAE;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,gBAAgB,EAAE;IAkB3B;;OAEG;IACG,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBnE;;OAEG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC;IAoC5B;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAmBzD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,EAAE;IAKzC;;OAEG;IACH,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAkCtD;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAC9B,OAAO,CAAC,WAAW,CAAC;IAiCvB;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAoBzC;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAe1D;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IA0B7E;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAItD;;OAEG;IACH,kBAAkB,IAAI,WAAW,EAAE;IAKnC;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IA0DjD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAK3C;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI;IAS3E;;OAEG;IACH,SAAS,IAAI,eAAe,EAAE;IAI9B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAQtD;;OAEG;IACH,QAAQ,IAAI;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE;YACP,YAAY,EAAE,MAAM,CAAC;YACrB,gBAAgB,EAAE,MAAM,CAAC;YACzB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,kBAAkB,EAAE,MAAM,CAAC;YAC3B,iBAAiB,EAAE,MAAM,CAAC;YAC1B,iBAAiB,EAAE,MAAM,CAAC;YAC1B,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC;QACF,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAWD;;OAEG;IACH,OAAO,CAAC,OAAO;YAiCD,iBAAiB;CAKhC;AAMD,eAAO,MAAM,SAAS,oBAA2B,CAAC;AAElD,OAAO,EACL,kBAAkB,IAAI,OAAO,GAC9B,CAAC"}