agent-world 0.11.1 → 0.12.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.
- package/README.md +17 -7
- package/dist/cli/commands.d.ts +109 -0
- package/dist/cli/commands.js +2024 -0
- package/dist/cli/display.d.ts +124 -0
- package/dist/cli/display.js +381 -0
- package/dist/cli/hitl.d.ts +33 -0
- package/dist/cli/hitl.js +81 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/stream.d.ts +41 -0
- package/dist/cli/stream.js +222 -0
- package/dist/core/activity-tracker.d.ts +16 -0
- package/dist/core/activity-tracker.d.ts.map +1 -0
- package/dist/core/activity-tracker.js +91 -0
- package/dist/core/activity-tracker.js.map +1 -0
- package/dist/core/ai-commands.d.ts +16 -0
- package/dist/core/ai-commands.d.ts.map +1 -0
- package/dist/core/ai-commands.js +24 -0
- package/dist/core/ai-commands.js.map +1 -0
- package/dist/core/ai-sdk-patch.d.ts +24 -0
- package/dist/core/ai-sdk-patch.d.ts.map +1 -0
- package/dist/core/ai-sdk-patch.js +169 -0
- package/dist/core/ai-sdk-patch.js.map +1 -0
- package/dist/core/anthropic-direct.d.ts +52 -0
- package/dist/core/anthropic-direct.d.ts.map +1 -0
- package/dist/core/anthropic-direct.js +301 -0
- package/dist/core/anthropic-direct.js.map +1 -0
- package/dist/core/approval-cache.d.ts +104 -0
- package/dist/core/approval-cache.d.ts.map +1 -0
- package/dist/core/approval-cache.js +150 -0
- package/dist/core/approval-cache.js.map +1 -0
- package/dist/core/chat-constants.d.ts +20 -0
- package/dist/core/chat-constants.d.ts.map +1 -0
- package/dist/core/chat-constants.js +22 -0
- package/dist/core/chat-constants.js.map +1 -0
- package/dist/core/create-agent-tool.d.ts +66 -0
- package/dist/core/create-agent-tool.d.ts.map +1 -0
- package/dist/core/create-agent-tool.js +212 -0
- package/dist/core/create-agent-tool.js.map +1 -0
- package/dist/core/events/approval-checker.d.ts +61 -0
- package/dist/core/events/approval-checker.d.ts.map +1 -0
- package/dist/core/events/approval-checker.js +226 -0
- package/dist/core/events/approval-checker.js.map +1 -0
- package/dist/core/events/index.d.ts +25 -0
- package/dist/core/events/index.d.ts.map +1 -0
- package/dist/core/events/index.js +30 -0
- package/dist/core/events/index.js.map +1 -0
- package/dist/core/events/memory-manager.d.ts +73 -0
- package/dist/core/events/memory-manager.d.ts.map +1 -0
- package/dist/core/events/memory-manager.js +1218 -0
- package/dist/core/events/memory-manager.js.map +1 -0
- package/dist/core/events/mention-logic.d.ts +39 -0
- package/dist/core/events/mention-logic.d.ts.map +1 -0
- package/dist/core/events/mention-logic.js +163 -0
- package/dist/core/events/mention-logic.js.map +1 -0
- package/dist/core/events/orchestrator.d.ts +69 -0
- package/dist/core/events/orchestrator.d.ts.map +1 -0
- package/dist/core/events/orchestrator.js +883 -0
- package/dist/core/events/orchestrator.js.map +1 -0
- package/dist/core/events/persistence.d.ts +41 -0
- package/dist/core/events/persistence.d.ts.map +1 -0
- package/dist/core/events/persistence.js +296 -0
- package/dist/core/events/persistence.js.map +1 -0
- package/dist/core/events/publishers.d.ts +81 -0
- package/dist/core/events/publishers.d.ts.map +1 -0
- package/dist/core/events/publishers.js +272 -0
- package/dist/core/events/publishers.js.map +1 -0
- package/dist/core/events/subscribers.d.ts +45 -0
- package/dist/core/events/subscribers.d.ts.map +1 -0
- package/dist/core/events/subscribers.js +288 -0
- package/dist/core/events/subscribers.js.map +1 -0
- package/dist/core/events/tool-bridge-logging.d.ts +28 -0
- package/dist/core/events/tool-bridge-logging.d.ts.map +1 -0
- package/dist/core/events/tool-bridge-logging.js +94 -0
- package/dist/core/events/tool-bridge-logging.js.map +1 -0
- package/dist/core/events-metadata.d.ts +72 -0
- package/dist/core/events-metadata.d.ts.map +1 -0
- package/dist/core/events-metadata.js +167 -0
- package/dist/core/events-metadata.js.map +1 -0
- package/dist/core/events.d.ts +186 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +1248 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/export.d.ts +106 -0
- package/dist/core/export.d.ts.map +1 -0
- package/dist/core/export.js +705 -0
- package/dist/core/export.js.map +1 -0
- package/dist/core/file-tools.d.ts +114 -0
- package/dist/core/file-tools.d.ts.map +1 -0
- package/dist/core/file-tools.js +370 -0
- package/dist/core/file-tools.js.map +1 -0
- package/dist/core/google-direct.d.ts +58 -0
- package/dist/core/google-direct.d.ts.map +1 -0
- package/dist/core/google-direct.js +298 -0
- package/dist/core/google-direct.js.map +1 -0
- package/dist/core/hitl.d.ts +54 -0
- package/dist/core/hitl.d.ts.map +1 -0
- package/dist/core/hitl.js +153 -0
- package/dist/core/hitl.js.map +1 -0
- package/dist/core/index.d.ts +59 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +70 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/llm-config.d.ts +128 -0
- package/dist/core/llm-config.d.ts.map +1 -0
- package/dist/core/llm-config.js +164 -0
- package/dist/core/llm-config.js.map +1 -0
- package/dist/core/llm-manager.d.ts +163 -0
- package/dist/core/llm-manager.d.ts.map +1 -0
- package/dist/core/llm-manager.js +669 -0
- package/dist/core/llm-manager.js.map +1 -0
- package/dist/core/load-skill-tool.d.ts +55 -0
- package/dist/core/load-skill-tool.d.ts.map +1 -0
- package/dist/core/load-skill-tool.js +468 -0
- package/dist/core/load-skill-tool.js.map +1 -0
- package/dist/core/logger.d.ts +88 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +358 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/managers.d.ts +131 -0
- package/dist/core/managers.d.ts.map +1 -0
- package/dist/core/managers.js +1223 -0
- package/dist/core/managers.js.map +1 -0
- package/dist/core/mcp-server-registry.d.ts +304 -0
- package/dist/core/mcp-server-registry.d.ts.map +1 -0
- package/dist/core/mcp-server-registry.js +1769 -0
- package/dist/core/mcp-server-registry.js.map +1 -0
- package/dist/core/mcp-tools.d.ts +56 -0
- package/dist/core/mcp-tools.d.ts.map +1 -0
- package/dist/core/mcp-tools.js +186 -0
- package/dist/core/mcp-tools.js.map +1 -0
- package/dist/core/message-prep.d.ts +81 -0
- package/dist/core/message-prep.d.ts.map +1 -0
- package/dist/core/message-prep.js +223 -0
- package/dist/core/message-prep.js.map +1 -0
- package/dist/core/message-processing-control.d.ts +54 -0
- package/dist/core/message-processing-control.d.ts.map +1 -0
- package/dist/core/message-processing-control.js +139 -0
- package/dist/core/message-processing-control.js.map +1 -0
- package/dist/core/openai-direct.d.ts +80 -0
- package/dist/core/openai-direct.d.ts.map +1 -0
- package/dist/core/openai-direct.js +374 -0
- package/dist/core/openai-direct.js.map +1 -0
- package/dist/core/shell-cmd-tool.d.ts +235 -0
- package/dist/core/shell-cmd-tool.d.ts.map +1 -0
- package/dist/core/shell-cmd-tool.js +1157 -0
- package/dist/core/shell-cmd-tool.js.map +1 -0
- package/dist/core/shell-process-registry.d.ts +88 -0
- package/dist/core/shell-process-registry.d.ts.map +1 -0
- package/dist/core/shell-process-registry.js +309 -0
- package/dist/core/shell-process-registry.js.map +1 -0
- package/dist/core/skill-registry.d.ts +75 -0
- package/dist/core/skill-registry.d.ts.map +1 -0
- package/dist/core/skill-registry.js +369 -0
- package/dist/core/skill-registry.js.map +1 -0
- package/dist/core/skill-script-runner.d.ts +89 -0
- package/dist/core/skill-script-runner.d.ts.map +1 -0
- package/dist/core/skill-script-runner.js +274 -0
- package/dist/core/skill-script-runner.js.map +1 -0
- package/dist/core/skill-selector.d.ts +65 -0
- package/dist/core/skill-selector.d.ts.map +1 -0
- package/dist/core/skill-selector.js +190 -0
- package/dist/core/skill-selector.js.map +1 -0
- package/dist/core/skill-settings.d.ts +20 -0
- package/dist/core/skill-settings.d.ts.map +1 -0
- package/dist/core/skill-settings.js +40 -0
- package/dist/core/skill-settings.js.map +1 -0
- package/dist/core/storage/agent-storage.d.ts +134 -0
- package/dist/core/storage/agent-storage.d.ts.map +1 -0
- package/dist/core/storage/agent-storage.js +498 -0
- package/dist/core/storage/agent-storage.js.map +1 -0
- package/dist/core/storage/eventStorage/fileEventStorage.d.ts +100 -0
- package/dist/core/storage/eventStorage/fileEventStorage.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/fileEventStorage.js +494 -0
- package/dist/core/storage/eventStorage/fileEventStorage.js.map +1 -0
- package/dist/core/storage/eventStorage/index.d.ts +31 -0
- package/dist/core/storage/eventStorage/index.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/index.js +31 -0
- package/dist/core/storage/eventStorage/index.js.map +1 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.d.ts +87 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.js +244 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.js.map +1 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts +45 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.js +301 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.js.map +1 -0
- package/dist/core/storage/eventStorage/types.d.ts +142 -0
- package/dist/core/storage/eventStorage/types.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/types.js +43 -0
- package/dist/core/storage/eventStorage/types.js.map +1 -0
- package/dist/core/storage/eventStorage/validation.d.ts +30 -0
- package/dist/core/storage/eventStorage/validation.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/validation.js +68 -0
- package/dist/core/storage/eventStorage/validation.js.map +1 -0
- package/dist/core/storage/legacy-migrations.d.ts +45 -0
- package/dist/core/storage/legacy-migrations.d.ts.map +1 -0
- package/dist/core/storage/legacy-migrations.js +295 -0
- package/dist/core/storage/legacy-migrations.js.map +1 -0
- package/dist/core/storage/memory-storage.d.ts +105 -0
- package/dist/core/storage/memory-storage.d.ts.map +1 -0
- package/dist/core/storage/memory-storage.js +415 -0
- package/dist/core/storage/memory-storage.js.map +1 -0
- package/dist/core/storage/migration-runner.d.ts +96 -0
- package/dist/core/storage/migration-runner.d.ts.map +1 -0
- package/dist/core/storage/migration-runner.js +306 -0
- package/dist/core/storage/migration-runner.js.map +1 -0
- package/dist/core/storage/queue-storage.d.ts +147 -0
- package/dist/core/storage/queue-storage.d.ts.map +1 -0
- package/dist/core/storage/queue-storage.js +290 -0
- package/dist/core/storage/queue-storage.js.map +1 -0
- package/dist/core/storage/skill-storage.d.ts +136 -0
- package/dist/core/storage/skill-storage.d.ts.map +1 -0
- package/dist/core/storage/skill-storage.js +474 -0
- package/dist/core/storage/skill-storage.js.map +1 -0
- package/dist/core/storage/sqlite-schema.d.ts +95 -0
- package/dist/core/storage/sqlite-schema.d.ts.map +1 -0
- package/dist/core/storage/sqlite-schema.js +156 -0
- package/dist/core/storage/sqlite-schema.js.map +1 -0
- package/dist/core/storage/sqlite-storage.d.ts +146 -0
- package/dist/core/storage/sqlite-storage.d.ts.map +1 -0
- package/dist/core/storage/sqlite-storage.js +709 -0
- package/dist/core/storage/sqlite-storage.js.map +1 -0
- package/dist/core/storage/storage-factory.d.ts +61 -0
- package/dist/core/storage/storage-factory.d.ts.map +1 -0
- package/dist/core/storage/storage-factory.js +794 -0
- package/dist/core/storage/storage-factory.js.map +1 -0
- package/dist/core/storage/validation.d.ts +36 -0
- package/dist/core/storage/validation.d.ts.map +1 -0
- package/dist/core/storage/validation.js +79 -0
- package/dist/core/storage/validation.js.map +1 -0
- package/dist/core/storage/world-storage.d.ts +114 -0
- package/dist/core/storage/world-storage.d.ts.map +1 -0
- package/dist/core/storage/world-storage.js +378 -0
- package/dist/core/storage/world-storage.js.map +1 -0
- package/dist/core/subscription.d.ts +43 -0
- package/dist/core/subscription.d.ts.map +1 -0
- package/dist/core/subscription.js +227 -0
- package/dist/core/subscription.js.map +1 -0
- package/dist/core/tool-utils.d.ts +80 -0
- package/dist/core/tool-utils.d.ts.map +1 -0
- package/dist/core/tool-utils.js +273 -0
- package/dist/core/tool-utils.js.map +1 -0
- package/dist/core/types.d.ts +595 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +158 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils.d.ts +138 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +478 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/core/world-class.d.ts +43 -0
- package/dist/core/world-class.d.ts.map +1 -0
- package/dist/core/world-class.js +90 -0
- package/dist/core/world-class.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/public/assets/agent-sprites-DJFgj-zP.png +0 -0
- package/dist/public/assets/border-KHK37r8y.svg +83 -0
- package/dist/public/assets/index-C9kPXL6G.css +1 -0
- package/dist/public/assets/index-DOQEHGWt.js +96 -0
- package/dist/public/index.html +21 -0
- package/dist/server/api.d.ts +2 -0
- package/dist/server/api.js +1124 -0
- package/dist/server/index.d.ts +29 -0
- package/dist/server/sse-handler.d.ts +62 -0
- package/dist/server/sse-handler.js +234 -0
- package/package.json +15 -3
- package/scripts/launch-electron.js +0 -58
|
@@ -0,0 +1,595 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core type definitions for the Agent World system.
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Agent configuration with comprehensive LLM provider support and memory management
|
|
6
|
+
* - Event system with strict payload typing and union types for type safety
|
|
7
|
+
* - AI SDK compatible chat messages with utility functions for seamless integration
|
|
8
|
+
* - Storage interfaces and world-specific file operations with EventEmitter integration
|
|
9
|
+
* - Comprehensive LLM provider enumeration (OpenAI, Anthropic, Azure, Google, XAI, Ollama)
|
|
10
|
+
*
|
|
11
|
+
* Recent Changes:
|
|
12
|
+
* - 2026-02-13: Added world-level `mainAgent` routing field and agent-level `autoReply` flag.
|
|
13
|
+
* - 2026-02-13: Added optional storage compare-and-set helper for chat title updates (`updateChatNameIfCurrent`).
|
|
14
|
+
* - 2026-02-13: Added optional `chatId` to world tool events for session-scoped realtime routing.
|
|
15
|
+
* - 2026-02-08: Removed legacy manual tool-intervention result types from core API surface
|
|
16
|
+
*/
|
|
17
|
+
import { type EventEmitter } from 'events';
|
|
18
|
+
export interface ChatMessage {
|
|
19
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
20
|
+
content: string;
|
|
21
|
+
createdAt?: Date;
|
|
22
|
+
tool_calls?: Array<{
|
|
23
|
+
id: string;
|
|
24
|
+
type: 'function';
|
|
25
|
+
function: {
|
|
26
|
+
name: string;
|
|
27
|
+
arguments: string;
|
|
28
|
+
};
|
|
29
|
+
}>;
|
|
30
|
+
tool_call_id?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AgentMessage extends ChatMessage {
|
|
33
|
+
/**
|
|
34
|
+
* Unique message identifier. REQUIRED for all new messages.
|
|
35
|
+
* Used for message editing, threading, and deduplication.
|
|
36
|
+
*
|
|
37
|
+
* @required for new messages (as of version 6)
|
|
38
|
+
* @optional only for legacy data (pre-version 6)
|
|
39
|
+
* @example "msg-1234567890-abc"
|
|
40
|
+
*/
|
|
41
|
+
messageId?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Parent message identifier for threading support.
|
|
44
|
+
* Links this message to the message it's replying to.
|
|
45
|
+
*
|
|
46
|
+
* Threading Semantics:
|
|
47
|
+
* - Assistant messages: Set to triggering user/agent message ID
|
|
48
|
+
* - Incoming user messages: Usually null/undefined (start of conversation)
|
|
49
|
+
* - Tool results: Set to assistant message that made tool call
|
|
50
|
+
* - System messages: Usually null/undefined
|
|
51
|
+
*
|
|
52
|
+
* Rules:
|
|
53
|
+
* - MUST NOT equal messageId (no self-references)
|
|
54
|
+
* - MUST reference existing message in conversation
|
|
55
|
+
* - MUST NOT create circular chains (A→B→C→A)
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* // Human asks question (root message)
|
|
59
|
+
* { messageId: "msg-1", replyToMessageId: undefined, role: "user", content: "Hello?" }
|
|
60
|
+
*
|
|
61
|
+
* // Agent responds (reply message)
|
|
62
|
+
* { messageId: "msg-2", replyToMessageId: "msg-1", role: "assistant", content: "Hi!" }
|
|
63
|
+
*
|
|
64
|
+
* // Multi-level thread
|
|
65
|
+
* { messageId: "msg-3", replyToMessageId: "msg-2", role: "user", content: "Thanks!" }
|
|
66
|
+
*
|
|
67
|
+
* @since version 7
|
|
68
|
+
*/
|
|
69
|
+
replyToMessageId?: string;
|
|
70
|
+
sender?: string;
|
|
71
|
+
chatId?: string | null;
|
|
72
|
+
agentId?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Tool call completion tracking.
|
|
75
|
+
* Maps tool_call_id to completion status and result payload.
|
|
76
|
+
*/
|
|
77
|
+
toolCallStatus?: Record<string, {
|
|
78
|
+
complete: boolean;
|
|
79
|
+
result: any;
|
|
80
|
+
}>;
|
|
81
|
+
}
|
|
82
|
+
export interface Agent {
|
|
83
|
+
id: string;
|
|
84
|
+
name: string;
|
|
85
|
+
type: string;
|
|
86
|
+
autoReply?: boolean;
|
|
87
|
+
status?: 'active' | 'inactive' | 'error';
|
|
88
|
+
provider: LLMProvider;
|
|
89
|
+
model: string;
|
|
90
|
+
systemPrompt?: string;
|
|
91
|
+
temperature?: number;
|
|
92
|
+
maxTokens?: number;
|
|
93
|
+
createdAt?: Date;
|
|
94
|
+
lastActive?: Date;
|
|
95
|
+
llmCallCount: number;
|
|
96
|
+
lastLLMCall?: Date;
|
|
97
|
+
memory: AgentMessage[];
|
|
98
|
+
}
|
|
99
|
+
export interface MessageData {
|
|
100
|
+
name: string;
|
|
101
|
+
payload: any;
|
|
102
|
+
id: string;
|
|
103
|
+
sender?: string;
|
|
104
|
+
content?: string;
|
|
105
|
+
agentName?: string;
|
|
106
|
+
}
|
|
107
|
+
export interface MessageEventPayload {
|
|
108
|
+
content: string;
|
|
109
|
+
sender: string;
|
|
110
|
+
}
|
|
111
|
+
export interface SystemEventPayload {
|
|
112
|
+
action: string;
|
|
113
|
+
agentName?: string;
|
|
114
|
+
worldName?: string;
|
|
115
|
+
content?: string;
|
|
116
|
+
timestamp?: string;
|
|
117
|
+
}
|
|
118
|
+
export interface SSEEventPayload {
|
|
119
|
+
agentName: string;
|
|
120
|
+
type: 'start' | 'chunk' | 'end' | 'error';
|
|
121
|
+
content?: string;
|
|
122
|
+
error?: string;
|
|
123
|
+
messageId?: string;
|
|
124
|
+
usage?: {
|
|
125
|
+
inputTokens: number;
|
|
126
|
+
outputTokens: number;
|
|
127
|
+
totalTokens: number;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
export interface WorldEventPayload {
|
|
131
|
+
action: string;
|
|
132
|
+
worldId?: string;
|
|
133
|
+
agentId?: string;
|
|
134
|
+
data?: any;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Event payload mapping for type-safe event handling.
|
|
138
|
+
* Maps each EventType to its corresponding payload type using proper core event interfaces.
|
|
139
|
+
*
|
|
140
|
+
* This provides compile-time validation when using typed event utilities while
|
|
141
|
+
* maintaining zero runtime overhead for direct EventEmitter usage.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* // Type-safe handler with payload validation
|
|
145
|
+
* function handleEvent<T extends EventType>(
|
|
146
|
+
* eventType: T,
|
|
147
|
+
* payload: EventPayloadMap[T]
|
|
148
|
+
* ) {
|
|
149
|
+
* // TypeScript knows the exact payload structure
|
|
150
|
+
* }
|
|
151
|
+
*
|
|
152
|
+
* @since 2025-10-30 - Updated to use core World event types
|
|
153
|
+
*/
|
|
154
|
+
export type EventPayloadMap = {
|
|
155
|
+
/** Message events use WorldMessageEvent for complete structure */
|
|
156
|
+
[EventType.MESSAGE]: WorldMessageEvent;
|
|
157
|
+
/** System events use WorldSystemEvent for internal notifications */
|
|
158
|
+
[EventType.SYSTEM]: WorldSystemEvent;
|
|
159
|
+
/** SSE events use WorldSSEEvent for streaming data */
|
|
160
|
+
[EventType.SSE]: WorldSSEEvent;
|
|
161
|
+
/** World/tool events use WorldToolEvent for agent behavioral tracking */
|
|
162
|
+
[EventType.WORLD]: WorldToolEvent;
|
|
163
|
+
/** CRUD events use WorldCRUDEvent for configuration changes */
|
|
164
|
+
[EventType.CRUD]: WorldCRUDEvent;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Core event types for Agent World system EventEmitter.
|
|
168
|
+
*
|
|
169
|
+
* These enums provide type-safe alternatives to string literals for event emission
|
|
170
|
+
* and subscription. Each enum value maps exactly to the string used by EventEmitter
|
|
171
|
+
* to maintain full backward compatibility.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* // Type-safe event emission (recommended)
|
|
175
|
+
* world.eventEmitter.emit(EventType.MESSAGE, messageEvent);
|
|
176
|
+
*
|
|
177
|
+
* // Traditional string usage (still supported)
|
|
178
|
+
* world.eventEmitter.emit('message', messageEvent);
|
|
179
|
+
*
|
|
180
|
+
* // Optional typed bridge for enhanced type safety
|
|
181
|
+
* const bridge = createTypedEventBridge(world);
|
|
182
|
+
* bridge.emit(EventType.MESSAGE, messageEvent); // Full payload validation
|
|
183
|
+
*
|
|
184
|
+
* @since 2025-10-30
|
|
185
|
+
*/
|
|
186
|
+
export declare enum EventType {
|
|
187
|
+
/** World channel - general world events, tool usage, and system messages */
|
|
188
|
+
WORLD = "world",
|
|
189
|
+
/** Message channel - user and agent messages */
|
|
190
|
+
MESSAGE = "message",
|
|
191
|
+
/** SSE channel - streaming LLM responses */
|
|
192
|
+
SSE = "sse",
|
|
193
|
+
/** System events for internal notifications */
|
|
194
|
+
SYSTEM = "system",
|
|
195
|
+
/** CRUD events - agent, chat, and world configuration changes */
|
|
196
|
+
CRUD = "crud"
|
|
197
|
+
}
|
|
198
|
+
export declare enum SenderType {
|
|
199
|
+
SYSTEM = "system",
|
|
200
|
+
WORLD = "world",
|
|
201
|
+
AGENT = "agent",
|
|
202
|
+
HUMAN = "human"
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Agent creation parameters - includes all properties needed for new agents
|
|
206
|
+
*/
|
|
207
|
+
export interface CreateAgentParams {
|
|
208
|
+
id?: string;
|
|
209
|
+
name: string;
|
|
210
|
+
type: string;
|
|
211
|
+
autoReply?: boolean;
|
|
212
|
+
provider: LLMProvider;
|
|
213
|
+
model: string;
|
|
214
|
+
systemPrompt?: string;
|
|
215
|
+
temperature?: number;
|
|
216
|
+
maxTokens?: number;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Agent update parameters - partial for flexible updates with additional status field
|
|
220
|
+
*/
|
|
221
|
+
export interface UpdateAgentParams extends Partial<Omit<CreateAgentParams, 'id'>> {
|
|
222
|
+
status?: 'active' | 'inactive' | 'error';
|
|
223
|
+
}
|
|
224
|
+
export interface Chat {
|
|
225
|
+
id: string;
|
|
226
|
+
worldId: string;
|
|
227
|
+
name: string;
|
|
228
|
+
description?: string;
|
|
229
|
+
createdAt: Date;
|
|
230
|
+
updatedAt: Date;
|
|
231
|
+
messageCount: number;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* World chat for full state capture
|
|
235
|
+
*/
|
|
236
|
+
export interface WorldChat {
|
|
237
|
+
world: World;
|
|
238
|
+
agents: Agent[];
|
|
239
|
+
messages: AgentMessage[];
|
|
240
|
+
metadata: {
|
|
241
|
+
capturedAt: Date;
|
|
242
|
+
version: string;
|
|
243
|
+
totalMessages: number;
|
|
244
|
+
activeAgents: number;
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Chat creation parameters
|
|
249
|
+
*/
|
|
250
|
+
export interface CreateChatParams {
|
|
251
|
+
name?: string;
|
|
252
|
+
description?: string;
|
|
253
|
+
captureChat?: boolean;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Chat update parameters
|
|
257
|
+
*/
|
|
258
|
+
export interface UpdateChatParams extends Partial<Omit<CreateChatParams, 'captureChat'>> {
|
|
259
|
+
tags?: string[];
|
|
260
|
+
messageCount?: number;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Message edit result tracking
|
|
264
|
+
*/
|
|
265
|
+
export interface RemovalResult {
|
|
266
|
+
success: boolean;
|
|
267
|
+
messageId: string;
|
|
268
|
+
totalAgents: number;
|
|
269
|
+
processedAgents: string[];
|
|
270
|
+
failedAgents: Array<{
|
|
271
|
+
agentId: string;
|
|
272
|
+
error: string;
|
|
273
|
+
}>;
|
|
274
|
+
messagesRemovedTotal: number;
|
|
275
|
+
requiresRetry: boolean;
|
|
276
|
+
resubmissionStatus: 'success' | 'failed' | 'skipped';
|
|
277
|
+
resubmissionError?: string;
|
|
278
|
+
newMessageId?: string;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Edit error log for troubleshooting
|
|
282
|
+
*/
|
|
283
|
+
export interface EditErrorLog {
|
|
284
|
+
worldId: string;
|
|
285
|
+
messageId: string;
|
|
286
|
+
chatId: string;
|
|
287
|
+
timestamp: Date;
|
|
288
|
+
operation: 'removal' | 'resubmission';
|
|
289
|
+
failedAgents: Array<{
|
|
290
|
+
agentId: string;
|
|
291
|
+
error: string;
|
|
292
|
+
}>;
|
|
293
|
+
retryCount: number;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Chat list info for efficient display
|
|
297
|
+
*/
|
|
298
|
+
/**
|
|
299
|
+
* World creation parameters
|
|
300
|
+
*/
|
|
301
|
+
export interface CreateWorldParams {
|
|
302
|
+
name: string;
|
|
303
|
+
description?: string | null;
|
|
304
|
+
turnLimit?: number;
|
|
305
|
+
mainAgent?: string | null;
|
|
306
|
+
chatLLMProvider?: LLMProvider;
|
|
307
|
+
chatLLMModel?: string;
|
|
308
|
+
mcpConfig?: string | null;
|
|
309
|
+
variables?: string;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* World update parameters - partial for flexible updates
|
|
313
|
+
*/
|
|
314
|
+
export interface UpdateWorldParams extends Partial<CreateWorldParams> {
|
|
315
|
+
currentChatId?: string | null;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Serializable world data for storage (flat structure, no EventEmitter, no agents Map)
|
|
319
|
+
*/
|
|
320
|
+
export interface World {
|
|
321
|
+
id: string;
|
|
322
|
+
name: string;
|
|
323
|
+
description?: string | null;
|
|
324
|
+
turnLimit: number;
|
|
325
|
+
mainAgent?: string | null;
|
|
326
|
+
chatLLMProvider?: string;
|
|
327
|
+
chatLLMModel?: string;
|
|
328
|
+
currentChatId?: string | null;
|
|
329
|
+
mcpConfig?: string | null;
|
|
330
|
+
variables?: string;
|
|
331
|
+
isProcessing?: boolean;
|
|
332
|
+
createdAt: Date;
|
|
333
|
+
lastUpdated: Date;
|
|
334
|
+
totalAgents: number;
|
|
335
|
+
totalMessages: number;
|
|
336
|
+
eventEmitter: EventEmitter;
|
|
337
|
+
agents: Map<string, Agent>;
|
|
338
|
+
chats: Map<string, Chat>;
|
|
339
|
+
eventStorage?: any;
|
|
340
|
+
_eventPersistenceCleanup?: () => void;
|
|
341
|
+
_activityListenerCleanup?: () => void;
|
|
342
|
+
}
|
|
343
|
+
export interface StorageAPI {
|
|
344
|
+
saveWorld(worldData: World): Promise<void>;
|
|
345
|
+
loadWorld(worldId: string): Promise<World | null>;
|
|
346
|
+
deleteWorld(worldId: string): Promise<boolean>;
|
|
347
|
+
listWorlds(): Promise<World[]>;
|
|
348
|
+
worldExists(worldId: string): Promise<boolean>;
|
|
349
|
+
getMemory(worldId: string, chatId?: string | null): Promise<AgentMessage[]>;
|
|
350
|
+
saveAgent(worldId: string, agent: Agent): Promise<void>;
|
|
351
|
+
loadAgent(worldId: string, agentId: string): Promise<Agent | null>;
|
|
352
|
+
loadAgentWithRetry(worldId: string, agentId: string, options?: any): Promise<Agent | null>;
|
|
353
|
+
deleteAgent(worldId: string, agentId: string): Promise<boolean>;
|
|
354
|
+
listAgents(worldId: string): Promise<Agent[]>;
|
|
355
|
+
agentExists(worldId: string, agentId: string): Promise<boolean>;
|
|
356
|
+
saveAgentMemory(worldId: string, agentId: string, memory: AgentMessage[]): Promise<void>;
|
|
357
|
+
archiveMemory(worldId: string, agentId: string, memory: AgentMessage[]): Promise<void>;
|
|
358
|
+
deleteMemoryByChatId(worldId: string, chatId: string): Promise<number>;
|
|
359
|
+
saveAgentsBatch(worldId: string, agents: Agent[]): Promise<void>;
|
|
360
|
+
loadAgentsBatch(worldId: string, agentIds: string[]): Promise<Agent[]>;
|
|
361
|
+
saveChatData(worldId: string, chat: Chat): Promise<void>;
|
|
362
|
+
loadChatData(worldId: string, chatId: string): Promise<Chat | null>;
|
|
363
|
+
deleteChatData(worldId: string, chatId: string): Promise<boolean>;
|
|
364
|
+
listChats(worldId: string): Promise<Chat[]>;
|
|
365
|
+
updateChatData(worldId: string, chatId: string, updates: UpdateChatParams): Promise<Chat | null>;
|
|
366
|
+
updateChatNameIfCurrent?(worldId: string, chatId: string, expectedName: string, nextName: string): Promise<boolean>;
|
|
367
|
+
saveWorldChat(worldId: string, chatId: string, chat: WorldChat): Promise<void>;
|
|
368
|
+
loadWorldChat(worldId: string, chatId: string): Promise<WorldChat | null>;
|
|
369
|
+
loadWorldChatFull(worldId: string, chatId: string): Promise<WorldChat | null>;
|
|
370
|
+
restoreFromWorldChat(worldId: string, chat: WorldChat): Promise<boolean>;
|
|
371
|
+
validateIntegrity(worldId: string, agentId?: string): Promise<boolean>;
|
|
372
|
+
repairData(worldId: string, agentId?: string): Promise<boolean>;
|
|
373
|
+
}
|
|
374
|
+
export interface StorageManager extends StorageAPI {
|
|
375
|
+
}
|
|
376
|
+
export declare enum LLMProvider {
|
|
377
|
+
OPENAI = "openai",
|
|
378
|
+
ANTHROPIC = "anthropic",
|
|
379
|
+
AZURE = "azure",
|
|
380
|
+
GOOGLE = "google",
|
|
381
|
+
XAI = "xai",
|
|
382
|
+
OPENAI_COMPATIBLE = "openai-compatible",
|
|
383
|
+
OLLAMA = "ollama"
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Unified LLM response structure
|
|
387
|
+
* All providers return this type (never raw strings or mixed objects)
|
|
388
|
+
*
|
|
389
|
+
* @since Phase 1 of provider refactoring (2025-11-09)
|
|
390
|
+
*/
|
|
391
|
+
export interface LLMResponse {
|
|
392
|
+
/**
|
|
393
|
+
* Response type discriminator
|
|
394
|
+
*/
|
|
395
|
+
type: 'text' | 'tool_calls';
|
|
396
|
+
/**
|
|
397
|
+
* Text content (for type='text' responses)
|
|
398
|
+
*/
|
|
399
|
+
content?: string;
|
|
400
|
+
/**
|
|
401
|
+
* Tool calls requested by LLM (for type='tool_calls' responses)
|
|
402
|
+
*/
|
|
403
|
+
tool_calls?: Array<{
|
|
404
|
+
id: string;
|
|
405
|
+
type: 'function';
|
|
406
|
+
function: {
|
|
407
|
+
name: string;
|
|
408
|
+
arguments: string;
|
|
409
|
+
};
|
|
410
|
+
}>;
|
|
411
|
+
/**
|
|
412
|
+
* Original assistant message for memory storage
|
|
413
|
+
* Must include full tool_calls array to preserve tool call context.
|
|
414
|
+
*/
|
|
415
|
+
assistantMessage: {
|
|
416
|
+
role: 'assistant';
|
|
417
|
+
content: string;
|
|
418
|
+
tool_calls?: Array<{
|
|
419
|
+
id: string;
|
|
420
|
+
type: 'function';
|
|
421
|
+
function: {
|
|
422
|
+
name: string;
|
|
423
|
+
arguments: string;
|
|
424
|
+
};
|
|
425
|
+
}>;
|
|
426
|
+
};
|
|
427
|
+
/**
|
|
428
|
+
* Token usage metadata (optional)
|
|
429
|
+
*/
|
|
430
|
+
usage?: {
|
|
431
|
+
inputTokens: number;
|
|
432
|
+
outputTokens: number;
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* World message event data structure for World.eventEmitter
|
|
437
|
+
*/
|
|
438
|
+
export interface WorldMessageEvent {
|
|
439
|
+
content: string;
|
|
440
|
+
sender: string;
|
|
441
|
+
timestamp: Date;
|
|
442
|
+
messageId: string;
|
|
443
|
+
chatId?: string | null;
|
|
444
|
+
replyToMessageId?: string;
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* World SSE event data structure for World.eventEmitter
|
|
448
|
+
* Note: Tool events have been migrated to world channel (see WorldToolEvent)
|
|
449
|
+
*/
|
|
450
|
+
export interface WorldSSEEvent {
|
|
451
|
+
agentName: string;
|
|
452
|
+
type: 'start' | 'chunk' | 'end' | 'error' | 'log' | 'tool-stream';
|
|
453
|
+
content?: string;
|
|
454
|
+
error?: string;
|
|
455
|
+
messageId: string;
|
|
456
|
+
/** Chat ID for concurrency-safe event routing. Events without chatId are broadcast to all sessions. */
|
|
457
|
+
chatId?: string | null;
|
|
458
|
+
usage?: {
|
|
459
|
+
inputTokens: number;
|
|
460
|
+
outputTokens: number;
|
|
461
|
+
totalTokens: number;
|
|
462
|
+
};
|
|
463
|
+
logEvent?: {
|
|
464
|
+
level: string;
|
|
465
|
+
category: string;
|
|
466
|
+
message: string;
|
|
467
|
+
timestamp: string;
|
|
468
|
+
data?: any;
|
|
469
|
+
};
|
|
470
|
+
toolName?: string;
|
|
471
|
+
stream?: 'stdout' | 'stderr';
|
|
472
|
+
tool_calls?: Array<{
|
|
473
|
+
id: string;
|
|
474
|
+
type: 'function';
|
|
475
|
+
function: {
|
|
476
|
+
name: string;
|
|
477
|
+
arguments: string | Record<string, unknown>;
|
|
478
|
+
};
|
|
479
|
+
}>;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* World CRUD event data structure for World.eventEmitter
|
|
483
|
+
* Used to broadcast agent, chat, and world configuration changes to subscribed clients
|
|
484
|
+
*/
|
|
485
|
+
export interface WorldCRUDEvent {
|
|
486
|
+
operation: 'create' | 'update' | 'delete';
|
|
487
|
+
entityType: 'agent' | 'chat' | 'world';
|
|
488
|
+
entityId: string;
|
|
489
|
+
entityData?: any;
|
|
490
|
+
timestamp: Date;
|
|
491
|
+
chatId?: string | null;
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* World tool event data structure for agent behavioral events
|
|
495
|
+
* Emitted on world channel to track agent actions (tool execution)
|
|
496
|
+
*/
|
|
497
|
+
export interface WorldToolEvent {
|
|
498
|
+
agentName: string;
|
|
499
|
+
type: 'tool-start' | 'tool-result' | 'tool-error' | 'tool-progress';
|
|
500
|
+
messageId: string;
|
|
501
|
+
chatId?: string | null;
|
|
502
|
+
toolExecution: {
|
|
503
|
+
toolName: string;
|
|
504
|
+
toolCallId: string;
|
|
505
|
+
sequenceId?: string;
|
|
506
|
+
duration?: number;
|
|
507
|
+
input?: any;
|
|
508
|
+
result?: any;
|
|
509
|
+
resultType?: 'string' | 'object' | 'array' | 'null';
|
|
510
|
+
resultSize?: number;
|
|
511
|
+
error?: string;
|
|
512
|
+
metadata?: {
|
|
513
|
+
serverName?: string;
|
|
514
|
+
transport?: string;
|
|
515
|
+
isStreaming?: boolean;
|
|
516
|
+
};
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
export interface WorldSystemEvent {
|
|
520
|
+
content: any;
|
|
521
|
+
timestamp: Date;
|
|
522
|
+
messageId: string;
|
|
523
|
+
chatId?: string | null;
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Typed event bridge for enhanced type safety with EventEmitter.
|
|
527
|
+
*
|
|
528
|
+
* Provides optional type-safe wrappers around World.eventEmitter while maintaining
|
|
529
|
+
* zero runtime overhead. All functions delegate directly to EventEmitter methods.
|
|
530
|
+
*
|
|
531
|
+
* @example
|
|
532
|
+
* const bridge = createTypedEventBridge(world);
|
|
533
|
+
*
|
|
534
|
+
* // Type-safe emission with payload validation
|
|
535
|
+
* bridge.emit(EventType.MESSAGE, {
|
|
536
|
+
* content: 'Hello',
|
|
537
|
+
* sender: 'user',
|
|
538
|
+
* timestamp: new Date(),
|
|
539
|
+
* messageId: 'msg-123'
|
|
540
|
+
* });
|
|
541
|
+
*
|
|
542
|
+
* // Type-safe subscription
|
|
543
|
+
* const unsubscribe = bridge.on(EventType.MESSAGE, (payload) => {
|
|
544
|
+
* // TypeScript knows payload is WorldMessageEvent
|
|
545
|
+
* console.log('Message:', payload.content);
|
|
546
|
+
* });
|
|
547
|
+
*
|
|
548
|
+
* @since 2025-10-30
|
|
549
|
+
*/
|
|
550
|
+
export interface TypedEventBridge {
|
|
551
|
+
/**
|
|
552
|
+
* Emit a typed event with payload validation.
|
|
553
|
+
* Zero overhead - delegates directly to EventEmitter.emit()
|
|
554
|
+
*/
|
|
555
|
+
emit<T extends EventType>(eventType: T, payload: EventPayloadMap[T]): boolean;
|
|
556
|
+
/**
|
|
557
|
+
* Subscribe to typed events with payload validation.
|
|
558
|
+
* Zero overhead - delegates directly to EventEmitter.on()
|
|
559
|
+
*/
|
|
560
|
+
on<T extends EventType>(eventType: T, handler: (payload: EventPayloadMap[T]) => void): () => void;
|
|
561
|
+
/**
|
|
562
|
+
* Remove typed event subscription.
|
|
563
|
+
* Zero overhead - delegates directly to EventEmitter.off()
|
|
564
|
+
*/
|
|
565
|
+
off<T extends EventType>(eventType: T, handler: (payload: EventPayloadMap[T]) => void): void;
|
|
566
|
+
}
|
|
567
|
+
/**
|
|
568
|
+
* Create a typed event bridge for enhanced type safety.
|
|
569
|
+
*
|
|
570
|
+
* This utility provides optional type-safe wrappers around World.eventEmitter
|
|
571
|
+
* while maintaining zero runtime overhead. Use this when you want compile-time
|
|
572
|
+
* validation of event names and payload structures.
|
|
573
|
+
*
|
|
574
|
+
* @param world - World instance with eventEmitter
|
|
575
|
+
* @returns TypedEventBridge with type-safe emit/on/off methods
|
|
576
|
+
*
|
|
577
|
+
* @example
|
|
578
|
+
* const world = await getWorld('my-world');
|
|
579
|
+
* const bridge = createTypedEventBridge(world);
|
|
580
|
+
*
|
|
581
|
+
* // Compile-time validation of event type and payload
|
|
582
|
+
* bridge.emit(EventType.MESSAGE, messageEvent);
|
|
583
|
+
*
|
|
584
|
+
* // Original EventEmitter usage still works
|
|
585
|
+
* world.eventEmitter.emit('message', messageEvent);
|
|
586
|
+
*
|
|
587
|
+
* @since 2025-10-30
|
|
588
|
+
*/
|
|
589
|
+
export declare function createTypedEventBridge(world: World): TypedEventBridge;
|
|
590
|
+
/**
|
|
591
|
+
* Validates message threading relationships
|
|
592
|
+
* @throws Error if threading is invalid
|
|
593
|
+
*/
|
|
594
|
+
export declare function validateMessageThreading(message: AgentMessage, allMessages?: AgentMessage[]): void;
|
|
595
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CACrE;AAGD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACzC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,kEAAkE;IAClE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAEvC,oEAAoE;IACpE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAErC,sDAAsD;IACtD,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;IAE/B,yEAAyE;IACzE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAElC,+DAA+D;IAC/D,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,oBAAY,SAAS;IACnB,4EAA4E;IAC5E,KAAK,UAAU;IACf,gDAAgD;IAChD,OAAO,YAAY;IACnB,4CAA4C;IAC5C,GAAG,QAAQ;IACX,+CAA+C;IAC/C,MAAM,WAAW;IACjB,iEAAiE;IACjE,IAAI,SAAS;CACd;AAED,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAID;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC/E,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,QAAQ,EAAE;QACR,UAAU,EAAE,IAAI,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACtF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IAEvB,kBAAkB,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,SAAS,GAAG,cAAc,CAAC;IACtC,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AAKH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IACnE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IAEtB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAGD,MAAM,WAAW,UAAU;IAEzB,SAAS,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAClD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAG5E,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC3F,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAGvE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAGvE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACpE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACjG,uBAAuB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGpH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC1E,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC9E,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGzE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjE;AAGD,MAAM,WAAW,cAAe,SAAQ,UAAU;CAAI;AAGtD,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,iBAAiB,sBAAsB;IACvC,MAAM,WAAW;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAE5B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC,CAAC;IAEH;;;OAGG;IACH,gBAAgB,EAAE;QAChB,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,KAAK,CAAC;YACjB,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,UAAU,CAAC;YACjB,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC;gBACb,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC,CAAC;KACJ,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAID;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,uGAAuG;IACvG,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;IAEF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAE7B,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC7C,CAAC;KACH,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,eAAe,CAAC;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;QACpD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE;YACT,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,WAAW,CAAC,EAAE,OAAO,CAAC;SACvB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAID;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,EACtB,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC;IAEX;;;OAGG;IACH,EAAE,CAAC,CAAC,SAAS,SAAS,EACpB,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,GAC7C,MAAM,IAAI,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,SAAS,EACrB,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,GAC7C,IAAI,CAAC;CACT;AAiDD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAErE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,YAAY,EACrB,WAAW,CAAC,EAAE,YAAY,EAAE,GAC3B,IAAI,CAmCN"}
|