@parhelia/core 0.2.12783 → 0.2.12786
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/dist/editor/ai/AgentImageCopyButton.d.ts +6 -0
- package/dist/editor/ai/AgentImageCopyButton.js +93 -0
- package/dist/editor/ai/AgentImageCopyButton.js.map +1 -0
- package/dist/editor/ai/terminal/components/EditFieldToolCallContent.d.ts +24 -0
- package/dist/editor/ai/terminal/components/EditFieldToolCallContent.js +97 -0
- package/dist/editor/ai/terminal/components/EditFieldToolCallContent.js.map +1 -0
- package/dist/editor/ai/terminal/components/ValueDiff.d.ts +15 -0
- package/dist/editor/ai/terminal/components/ValueDiff.js +21 -0
- package/dist/editor/ai/terminal/components/ValueDiff.js.map +1 -0
- package/dist/editor/ai/terminal/components/agentThinkingStyles.d.ts +1 -0
- package/dist/editor/ai/terminal/components/agentThinkingStyles.js +2 -0
- package/dist/editor/ai/terminal/components/agentThinkingStyles.js.map +1 -0
- package/dist/editor/ai/terminal/components/toolCallContentRenderers.d.ts +15 -0
- package/dist/editor/ai/terminal/components/toolCallContentRenderers.js +12 -0
- package/dist/editor/ai/terminal/components/toolCallContentRenderers.js.map +1 -0
- package/dist/editor/client/hooks/activeSessionSnapshots.d.ts +2 -0
- package/dist/editor/client/hooks/activeSessionSnapshots.js +43 -0
- package/dist/editor/client/hooks/activeSessionSnapshots.js.map +1 -0
- package/dist/editor/client/hooks/operationRefreshDeduplication.d.ts +22 -0
- package/dist/editor/client/hooks/operationRefreshDeduplication.js +45 -0
- package/dist/editor/client/hooks/operationRefreshDeduplication.js.map +1 -0
- package/dist/editor/client/hooks/socketMessageRetention.d.ts +7 -0
- package/dist/editor/client/hooks/socketMessageRetention.js +11 -0
- package/dist/editor/client/hooks/socketMessageRetention.js.map +1 -0
- package/dist/editor/client/hooks/useClientInfoRegistration.d.ts +13 -0
- package/dist/editor/client/hooks/useClientInfoRegistration.js +38 -0
- package/dist/editor/client/hooks/useClientInfoRegistration.js.map +1 -0
- package/dist/editor/client/undoTargetResolution.d.ts +28 -0
- package/dist/editor/client/undoTargetResolution.js +69 -0
- package/dist/editor/client/undoTargetResolution.js.map +1 -0
- package/dist/editor/field-types/singleLineTextValue.d.ts +3 -0
- package/dist/editor/field-types/singleLineTextValue.js +9 -0
- package/dist/editor/field-types/singleLineTextValue.js.map +1 -0
- package/dist/editor/insertOptionCompatibility.d.ts +7 -0
- package/dist/editor/insertOptionCompatibility.js +15 -0
- package/dist/editor/insertOptionCompatibility.js.map +1 -0
- package/dist/editor/media-selector/mediaItemDrag.d.ts +28 -0
- package/dist/editor/media-selector/mediaItemDrag.js +42 -0
- package/dist/editor/media-selector/mediaItemDrag.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/PreviewModeControl.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/PreviewModeControl.js +14 -0
- package/dist/editor/menubar/toolbar-sections/PreviewModeControl.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/RefreshPageControl.d.ts +7 -0
- package/dist/editor/menubar/toolbar-sections/RefreshPageControl.js +44 -0
- package/dist/editor/menubar/toolbar-sections/RefreshPageControl.js.map +1 -0
- package/dist/editor/page-editor-chrome/InlineFieldHistoryButton.d.ts +58 -0
- package/dist/editor/page-editor-chrome/InlineFieldHistoryButton.js +731 -0
- package/dist/editor/page-editor-chrome/InlineFieldHistoryButton.js.map +1 -0
- package/dist/editor/page-viewer/bridgeInlineAiSelection.d.ts +17 -0
- package/dist/editor/page-viewer/bridgeInlineAiSelection.js +80 -0
- package/dist/editor/page-viewer/bridgeInlineAiSelection.js.map +1 -0
- package/dist/editor/page-viewer/bridgeInlineEditCommit.d.ts +18 -0
- package/dist/editor/page-viewer/bridgeInlineEditCommit.js +24 -0
- package/dist/editor/page-viewer/bridgeInlineEditCommit.js.map +1 -0
- package/dist/editor/page-viewer/bridgeItemChangeTarget.d.ts +9 -0
- package/dist/editor/page-viewer/bridgeItemChangeTarget.js +38 -0
- package/dist/editor/page-viewer/bridgeItemChangeTarget.js.map +1 -0
- package/dist/editor/page-viewer/bridgePointerDragRelease.d.ts +31 -0
- package/dist/editor/page-viewer/bridgePointerDragRelease.js +32 -0
- package/dist/editor/page-viewer/bridgePointerDragRelease.js.map +1 -0
- package/dist/editor/page-viewer/fullscreenPagePath.d.ts +1 -0
- package/dist/editor/page-viewer/fullscreenPagePath.js +11 -0
- package/dist/editor/page-viewer/fullscreenPagePath.js.map +1 -0
- package/dist/editor/page-viewer/internalLinkNavigation.d.ts +9 -0
- package/dist/editor/page-viewer/internalLinkNavigation.js +104 -0
- package/dist/editor/page-viewer/internalLinkNavigation.js.map +1 -0
- package/dist/editor/reviews/FeedbackFilters.d.ts +16 -0
- package/dist/editor/reviews/FeedbackFilters.js +45 -0
- package/dist/editor/reviews/FeedbackFilters.js.map +1 -0
- package/dist/editor/reviews/commentState.d.ts +4 -0
- package/dist/editor/reviews/commentState.js +15 -0
- package/dist/editor/reviews/commentState.js.map +1 -0
- package/dist/editor/settings/index/IndexGenerationsSection.d.ts +8 -0
- package/dist/editor/settings/index/IndexGenerationsSection.js +93 -0
- package/dist/editor/settings/index/IndexGenerationsSection.js.map +1 -0
- package/dist/editor/settings/panels/MemoriesPanel.d.ts +16 -0
- package/dist/editor/settings/panels/MemoriesPanel.js +292 -0
- package/dist/editor/settings/panels/MemoriesPanel.js.map +1 -0
- package/dist/editor/settings/panels/MemoryEntryDialog.d.ts +45 -0
- package/dist/editor/settings/panels/MemoryEntryDialog.js +167 -0
- package/dist/editor/settings/panels/MemoryEntryDialog.js.map +1 -0
- package/dist/editor/settings/panels/RenderingHostsPanel.d.ts +2 -0
- package/dist/editor/settings/panels/RenderingHostsPanel.js +63 -0
- package/dist/editor/settings/panels/RenderingHostsPanel.js.map +1 -0
- package/dist/editor/settings/panels/projectTemplateDuplication.d.ts +5 -0
- package/dist/editor/settings/panels/projectTemplateDuplication.js +57 -0
- package/dist/editor/settings/panels/projectTemplateDuplication.js.map +1 -0
- package/dist/editor/sidebar/WorkboxFilters.d.ts +11 -0
- package/dist/editor/sidebar/WorkboxFilters.js +61 -0
- package/dist/editor/sidebar/WorkboxFilters.js.map +1 -0
- package/dist/editor/version-diff/versionDiffGeometryKeys.d.ts +10 -0
- package/dist/editor/version-diff/versionDiffGeometryKeys.js +16 -0
- package/dist/editor/version-diff/versionDiffGeometryKeys.js.map +1 -0
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/package.json +1 -1
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +0 -5
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +0 -12
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +0 -1
- package/dist/editor/ai/terminal/components/AgentThinkingDots.d.ts +0 -5
- package/dist/editor/ai/terminal/components/AgentThinkingDots.js +0 -9
- package/dist/editor/ai/terminal/components/AgentThinkingDots.js.map +0 -1
- package/dist/editor/reviews/CommentsAndFeedback.d.ts +0 -8
- package/dist/editor/reviews/CommentsAndFeedback.js +0 -17
- package/dist/editor/reviews/CommentsAndFeedback.js.map +0 -1
- package/dist/editor/reviews/CreateReviewDetailsStep.d.ts +0 -53
- package/dist/editor/reviews/CreateReviewDetailsStep.js +0 -77
- package/dist/editor/reviews/CreateReviewDetailsStep.js.map +0 -1
- package/dist/splash-screen/ParheliaAssistantChat.d.ts +0 -8
- package/dist/splash-screen/ParheliaAssistantChat.js +0 -507
- package/dist/splash-screen/ParheliaAssistantChat.js.map +0 -1
- package/dist/splash-screen/SplashScreenAgentContext.d.ts +0 -28
- package/dist/splash-screen/SplashScreenAgentContext.js +0 -51
- package/dist/splash-screen/SplashScreenAgentContext.js.map +0 -1
|
@@ -1,507 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useEffect, useCallback, startTransition, useRef, } from "react";
|
|
4
|
-
import { flushSync } from "react-dom";
|
|
5
|
-
import { Loader2, RotateCcw, History, ArrowRight, X, Paperclip, FileText, Image as ImageIcon, } from "lucide-react";
|
|
6
|
-
import { CloseButton } from "../components/ui/close-button";
|
|
7
|
-
import { useEditContext } from "../editor/client/editContext";
|
|
8
|
-
import { loadAiProfiles } from "../editor/services/aiService";
|
|
9
|
-
import { AGENT_DOCUMENT_UPLOADED_EVENT, AGENT_DOCUMENTS_CHANGED_EVENT, closeAgent, deleteDocument, getAgentDocuments, getAgentsGrouped, uploadDocument, } from "../editor/services/agentService";
|
|
10
|
-
import { AgentTerminal } from "../editor/ai/AgentTerminal";
|
|
11
|
-
import { useSplashScreenAgent } from "./SplashScreenAgentContext";
|
|
12
|
-
import { ParheliaIconWhite } from "../editor/ui/ParheliaIconWhite";
|
|
13
|
-
import { cn } from "../lib/utils";
|
|
14
|
-
import { Button } from "../components/ui/button";
|
|
15
|
-
import { getSamplePrompts } from "../editor/services/systemService";
|
|
16
|
-
const SUGGESTED_PROMPTS = [
|
|
17
|
-
{
|
|
18
|
-
title: "Draft a blog post",
|
|
19
|
-
description: "Write a 500-word post about digital marketing trends.",
|
|
20
|
-
prompt: "Can you help me draft a 500-word blog post about the latest trends in digital marketing for 2025?",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
title: "Analyze my page",
|
|
24
|
-
description: "Give me feedback on the SEO of my current page.",
|
|
25
|
-
prompt: "Please analyze my current page and give me feedback on how I can improve its SEO and readability.",
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
title: "Generate ideas",
|
|
29
|
-
description: "Suggest 5 creative topics for my next newsletter.",
|
|
30
|
-
prompt: "Suggest 5 creative and engaging topics for my next monthly customer newsletter.",
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
title: "Fix tone of voice",
|
|
34
|
-
description: "Make this text sound more professional and welcoming.",
|
|
35
|
-
prompt: "I have some text that I want to sound more professional and welcoming. Can you help me rewrite it?",
|
|
36
|
-
},
|
|
37
|
-
];
|
|
38
|
-
export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
|
|
39
|
-
const editContext = useEditContext();
|
|
40
|
-
// Agent/terminal/input state is held in SplashScreenAgentProvider so it
|
|
41
|
-
// survives ModernSplashScreen unmount when the user switches workspaces.
|
|
42
|
-
const { agent, setAgent, agentKey, setAgentKey, isTerminalVisible, setIsTerminalVisible, initialPrompt, setInitialPrompt, initialPromptDelivered, setInitialPromptDelivered, attachedDocs, setAttachedDocs, inputValue, setInputValue, } = useSplashScreenAgent();
|
|
43
|
-
const [profile, setProfile] = useState(null);
|
|
44
|
-
const [profiles, setProfiles] = useState([]);
|
|
45
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
46
|
-
const [recentAgents, setRecentAgents] = useState([]);
|
|
47
|
-
const [hasLoadedRecentAgents, setHasLoadedRecentAgents] = useState(false);
|
|
48
|
-
const [isLoadingRecentAgents, setIsLoadingRecentAgents] = useState(false);
|
|
49
|
-
const [samplePrompts, setSamplePrompts] = useState(SUGGESTED_PROMPTS);
|
|
50
|
-
const inputRef = useRef(null);
|
|
51
|
-
const fileInputRef = useRef(null);
|
|
52
|
-
const [isUploading, setIsUploading] = useState(false);
|
|
53
|
-
const [uploadError, setUploadError] = useState(null);
|
|
54
|
-
const [isDragOver, setIsDragOver] = useState(false);
|
|
55
|
-
// Create a new agent
|
|
56
|
-
const createNewAgent = useCallback((selectedProfile) => {
|
|
57
|
-
const agentDisplayName = selectedProfile.agentName || "Parhelia";
|
|
58
|
-
const agentId = crypto.randomUUID();
|
|
59
|
-
const newAgent = {
|
|
60
|
-
status: "new",
|
|
61
|
-
id: agentId,
|
|
62
|
-
name: agentDisplayName,
|
|
63
|
-
updatedDate: new Date().toISOString(),
|
|
64
|
-
userId: "",
|
|
65
|
-
profileId: selectedProfile.id,
|
|
66
|
-
profileName: selectedProfile.name,
|
|
67
|
-
};
|
|
68
|
-
setAttachedDocs([]);
|
|
69
|
-
setAgent(newAgent);
|
|
70
|
-
return newAgent;
|
|
71
|
-
}, [setAgent, setAttachedDocs]);
|
|
72
|
-
// Track current agent in a ref so loadData can decide whether to skip
|
|
73
|
-
// creating a fresh draft on remount without depending on `agent` directly
|
|
74
|
-
// (which would re-run loadData on every agent update).
|
|
75
|
-
const agentRef = useRef(agent);
|
|
76
|
-
useEffect(() => {
|
|
77
|
-
agentRef.current = agent;
|
|
78
|
-
}, [agent]);
|
|
79
|
-
const loadRecentAgents = useCallback(async (selectedProfile, options) => {
|
|
80
|
-
if (!options?.force && (hasLoadedRecentAgents || isLoadingRecentAgents)) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
setIsLoadingRecentAgents(true);
|
|
84
|
-
try {
|
|
85
|
-
const response = await getAgentsGrouped();
|
|
86
|
-
const allAgents = [...response.activeAgents];
|
|
87
|
-
response.closedAgentsByProfile.forEach((group) => {
|
|
88
|
-
allAgents.push(...group.agents);
|
|
89
|
-
});
|
|
90
|
-
const parheliaAgents = allAgents.filter((item) => item.profileId === selectedProfile.id);
|
|
91
|
-
setRecentAgents(parheliaAgents.slice(0, 5));
|
|
92
|
-
setHasLoadedRecentAgents(true);
|
|
93
|
-
}
|
|
94
|
-
catch (err) {
|
|
95
|
-
console.error("Failed to load recent agents:", err);
|
|
96
|
-
}
|
|
97
|
-
finally {
|
|
98
|
-
setIsLoadingRecentAgents(false);
|
|
99
|
-
}
|
|
100
|
-
}, [hasLoadedRecentAgents, isLoadingRecentAgents]);
|
|
101
|
-
// Function to load profiles and initialize a draft agent
|
|
102
|
-
const loadData = useCallback(async () => {
|
|
103
|
-
try {
|
|
104
|
-
setIsLoading(true);
|
|
105
|
-
// Fetch sample prompts
|
|
106
|
-
getSamplePrompts().then((res) => {
|
|
107
|
-
if (res.data && res.data.length > 0) {
|
|
108
|
-
setSamplePrompts(res.data);
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
const profileList = await loadAiProfiles();
|
|
112
|
-
if (!profileList || profileList.length === 0) {
|
|
113
|
-
setIsLoading(false);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
// Try to find Parhelia profile with multiple strategies
|
|
117
|
-
let assistantProfile;
|
|
118
|
-
// Strategy 1: Look for exact ID match
|
|
119
|
-
assistantProfile = profileList.find((p) => p.id === "7d45ab97-f253-4915-8b32-f9e8c762c5e9");
|
|
120
|
-
// Strategy 2: Look for exact name match (case-insensitive)
|
|
121
|
-
if (!assistantProfile) {
|
|
122
|
-
assistantProfile = profileList.find((p) => p.name.toLowerCase() === "parhelia");
|
|
123
|
-
}
|
|
124
|
-
// Strategy 3: Look for profile containing "parhelia" in name or displayTitle
|
|
125
|
-
if (!assistantProfile) {
|
|
126
|
-
assistantProfile = profileList.find((p) => p.name.toLowerCase().includes("parhelia") ||
|
|
127
|
-
p.displayTitle?.toLowerCase().includes("parhelia"));
|
|
128
|
-
}
|
|
129
|
-
// Strategy 4: Fallback to first available profile
|
|
130
|
-
const selectedProfile = assistantProfile || profileList[0];
|
|
131
|
-
if (selectedProfile) {
|
|
132
|
-
setProfile(selectedProfile);
|
|
133
|
-
setProfiles(profileList);
|
|
134
|
-
setRecentAgents([]);
|
|
135
|
-
setHasLoadedRecentAgents(false);
|
|
136
|
-
// Only create a fresh draft agent if the persistent splash state
|
|
137
|
-
// doesn't already hold one for this profile (e.g. user switched
|
|
138
|
-
// workspaces away and back while an agent is running).
|
|
139
|
-
const existing = agentRef.current;
|
|
140
|
-
if (!existing || existing.profileId !== selectedProfile.id) {
|
|
141
|
-
createNewAgent(selectedProfile);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
console.error("ParheliaAssistantChat: Could not select a profile from the available profiles.");
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
catch (err) {
|
|
149
|
-
console.error("Failed to load AI profile:", err);
|
|
150
|
-
}
|
|
151
|
-
finally {
|
|
152
|
-
setIsLoading(false);
|
|
153
|
-
}
|
|
154
|
-
}, [createNewAgent]);
|
|
155
|
-
// Load AI profiles and data on mount
|
|
156
|
-
useEffect(() => {
|
|
157
|
-
loadData();
|
|
158
|
-
}, [loadData]);
|
|
159
|
-
// Listen for agent profile changes via websocket
|
|
160
|
-
useEffect(() => {
|
|
161
|
-
if (!editContext?.addSocketMessageListener)
|
|
162
|
-
return;
|
|
163
|
-
const removeListener = editContext.addSocketMessageListener((message) => {
|
|
164
|
-
if (message.type === "agent-profiles-changed") {
|
|
165
|
-
loadData();
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
return () => {
|
|
169
|
-
removeListener();
|
|
170
|
-
};
|
|
171
|
-
}, [editContext?.addSocketMessageListener, loadData]);
|
|
172
|
-
// Handle external agent selection
|
|
173
|
-
useEffect(() => {
|
|
174
|
-
if (externalAgent) {
|
|
175
|
-
setAgent(externalAgent);
|
|
176
|
-
setAgentKey((prev) => prev + 1);
|
|
177
|
-
setInitialPrompt(undefined);
|
|
178
|
-
setInitialPromptDelivered(true);
|
|
179
|
-
setIsTerminalVisible(true);
|
|
180
|
-
}
|
|
181
|
-
}, [externalAgent]);
|
|
182
|
-
// Mark the initial prompt as delivered after the first render that
|
|
183
|
-
// exposes it to AgentTerminal. AgentTerminal captures the prompt in a
|
|
184
|
-
// closure when its auto-send effect runs (children-first effect order),
|
|
185
|
-
// so flipping this flag immediately after that is safe and prevents a
|
|
186
|
-
// workspace-switch remount from re-passing the same prompt.
|
|
187
|
-
useEffect(() => {
|
|
188
|
-
if (isTerminalVisible &&
|
|
189
|
-
initialPrompt !== undefined &&
|
|
190
|
-
initialPrompt !== "" &&
|
|
191
|
-
!initialPromptDelivered) {
|
|
192
|
-
setInitialPromptDelivered(true);
|
|
193
|
-
}
|
|
194
|
-
}, [
|
|
195
|
-
isTerminalVisible,
|
|
196
|
-
initialPrompt,
|
|
197
|
-
initialPromptDelivered,
|
|
198
|
-
setInitialPromptDelivered,
|
|
199
|
-
]);
|
|
200
|
-
// Handle revealing the terminal
|
|
201
|
-
const handleRevealTerminal = useCallback(() => {
|
|
202
|
-
if (typeof document !== "undefined" &&
|
|
203
|
-
document.startViewTransition) {
|
|
204
|
-
document.startViewTransition(() => {
|
|
205
|
-
flushSync(() => {
|
|
206
|
-
setIsTerminalVisible(true);
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
startTransition(() => {
|
|
212
|
-
setIsTerminalVisible(true);
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
}, []);
|
|
216
|
-
// Handle starting a conversation with a prompt
|
|
217
|
-
const handleStartWithPrompt = useCallback((prompt) => {
|
|
218
|
-
if (!profile || isUploading)
|
|
219
|
-
return;
|
|
220
|
-
const performUpdate = () => {
|
|
221
|
-
// Clear any previous state first
|
|
222
|
-
setInitialPrompt(undefined);
|
|
223
|
-
setInitialPromptDelivered(false);
|
|
224
|
-
// Keep the current draft when splash attachments were uploaded to it.
|
|
225
|
-
if (attachedDocs.length === 0) {
|
|
226
|
-
createNewAgent(profile);
|
|
227
|
-
}
|
|
228
|
-
setInitialPrompt(prompt);
|
|
229
|
-
setAgentKey((prev) => prev + 1);
|
|
230
|
-
setIsTerminalVisible(true);
|
|
231
|
-
};
|
|
232
|
-
if (typeof document !== "undefined" &&
|
|
233
|
-
document.startViewTransition) {
|
|
234
|
-
document.startViewTransition(() => {
|
|
235
|
-
flushSync(() => {
|
|
236
|
-
performUpdate();
|
|
237
|
-
});
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
performUpdate();
|
|
242
|
-
}
|
|
243
|
-
}, [profile, isUploading, attachedDocs.length, createNewAgent]);
|
|
244
|
-
const uploadFiles = useCallback(async (files) => {
|
|
245
|
-
if (!agent || !profile?.enableDocumentUpload || !files)
|
|
246
|
-
return;
|
|
247
|
-
const list = Array.from(files);
|
|
248
|
-
if (list.length === 0)
|
|
249
|
-
return;
|
|
250
|
-
const maxBytes = (profile.maxDocumentSizeMB ?? 10) * 1024 * 1024;
|
|
251
|
-
setUploadError(null);
|
|
252
|
-
setIsUploading(true);
|
|
253
|
-
try {
|
|
254
|
-
for (const file of list) {
|
|
255
|
-
if (file.size > maxBytes) {
|
|
256
|
-
setUploadError(`"${file.name}" exceeds ${profile.maxDocumentSizeMB ?? 10} MB`);
|
|
257
|
-
continue;
|
|
258
|
-
}
|
|
259
|
-
const result = await uploadDocument(agent.id, file, profile.id);
|
|
260
|
-
if (!result.success) {
|
|
261
|
-
setUploadError(result.error || `Failed to upload "${file.name}"`);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
finally {
|
|
266
|
-
setIsUploading(false);
|
|
267
|
-
}
|
|
268
|
-
}, [agent, profile]);
|
|
269
|
-
// Sync attached docs from server when the active agent changes.
|
|
270
|
-
useEffect(() => {
|
|
271
|
-
if (!agent?.id || !profile?.enableDocumentUpload) {
|
|
272
|
-
setAttachedDocs([]);
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
let cancelled = false;
|
|
276
|
-
void getAgentDocuments(agent.id).then((res) => {
|
|
277
|
-
if (cancelled)
|
|
278
|
-
return;
|
|
279
|
-
if (res.success && res.documents)
|
|
280
|
-
setAttachedDocs(res.documents);
|
|
281
|
-
});
|
|
282
|
-
return () => {
|
|
283
|
-
cancelled = true;
|
|
284
|
-
};
|
|
285
|
-
}, [agent?.id, profile?.enableDocumentUpload]);
|
|
286
|
-
// Listen for upload/change events to keep chips in sync.
|
|
287
|
-
useEffect(() => {
|
|
288
|
-
if (!agent?.id)
|
|
289
|
-
return;
|
|
290
|
-
const handleUploaded = (event) => {
|
|
291
|
-
const detail = event.detail;
|
|
292
|
-
if (!detail || detail.agentId !== agent.id)
|
|
293
|
-
return;
|
|
294
|
-
setAttachedDocs((prev) => {
|
|
295
|
-
const existing = prev.findIndex((d) => d.id === detail.document.id);
|
|
296
|
-
if (existing === -1)
|
|
297
|
-
return [detail.document, ...prev];
|
|
298
|
-
const next = [...prev];
|
|
299
|
-
next[existing] = detail.document;
|
|
300
|
-
return next;
|
|
301
|
-
});
|
|
302
|
-
};
|
|
303
|
-
const handleChanged = (event) => {
|
|
304
|
-
const detail = event.detail;
|
|
305
|
-
if (!detail || detail.agentId !== agent.id)
|
|
306
|
-
return;
|
|
307
|
-
void getAgentDocuments(agent.id).then((res) => {
|
|
308
|
-
if (res.success && res.documents)
|
|
309
|
-
setAttachedDocs(res.documents);
|
|
310
|
-
});
|
|
311
|
-
};
|
|
312
|
-
window.addEventListener(AGENT_DOCUMENT_UPLOADED_EVENT, handleUploaded);
|
|
313
|
-
window.addEventListener(AGENT_DOCUMENTS_CHANGED_EVENT, handleChanged);
|
|
314
|
-
return () => {
|
|
315
|
-
window.removeEventListener(AGENT_DOCUMENT_UPLOADED_EVENT, handleUploaded);
|
|
316
|
-
window.removeEventListener(AGENT_DOCUMENTS_CHANGED_EVENT, handleChanged);
|
|
317
|
-
};
|
|
318
|
-
}, [agent?.id]);
|
|
319
|
-
const handleRemoveAttachment = useCallback(async (documentId) => {
|
|
320
|
-
setUploadError(null);
|
|
321
|
-
const result = await deleteDocument(documentId);
|
|
322
|
-
if (result.success) {
|
|
323
|
-
setAttachedDocs((prev) => prev.filter((d) => d.id !== documentId));
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
setUploadError(result.error || "Failed to remove attachment");
|
|
327
|
-
}
|
|
328
|
-
}, []);
|
|
329
|
-
const handleInputPaste = useCallback((e) => {
|
|
330
|
-
if (!profile?.enableDocumentUpload)
|
|
331
|
-
return;
|
|
332
|
-
const items = e.clipboardData?.items;
|
|
333
|
-
if (!items)
|
|
334
|
-
return;
|
|
335
|
-
const files = [];
|
|
336
|
-
for (let i = 0; i < items.length; i++) {
|
|
337
|
-
const item = items[i];
|
|
338
|
-
if (!item)
|
|
339
|
-
continue;
|
|
340
|
-
if (item.type.indexOf("image") !== -1 || item.kind === "file") {
|
|
341
|
-
const file = item.getAsFile();
|
|
342
|
-
if (!file)
|
|
343
|
-
continue;
|
|
344
|
-
if (file.name === "image.png" && item.type.indexOf("image") !== -1) {
|
|
345
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
346
|
-
const extension = item.type.split("/")[1] || "png";
|
|
347
|
-
files.push(new File([file], `pasted-image-${timestamp}.${extension}`, {
|
|
348
|
-
type: file.type,
|
|
349
|
-
}));
|
|
350
|
-
}
|
|
351
|
-
else {
|
|
352
|
-
files.push(file);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
if (files.length > 0) {
|
|
357
|
-
e.preventDefault();
|
|
358
|
-
void uploadFiles(files);
|
|
359
|
-
}
|
|
360
|
-
}, [profile, uploadFiles]);
|
|
361
|
-
const handleDragOver = useCallback((e) => {
|
|
362
|
-
if (!profile?.enableDocumentUpload)
|
|
363
|
-
return;
|
|
364
|
-
e.preventDefault();
|
|
365
|
-
e.stopPropagation();
|
|
366
|
-
if (!isDragOver)
|
|
367
|
-
setIsDragOver(true);
|
|
368
|
-
}, [profile, isDragOver]);
|
|
369
|
-
const handleDragLeave = useCallback((e) => {
|
|
370
|
-
e.preventDefault();
|
|
371
|
-
e.stopPropagation();
|
|
372
|
-
setIsDragOver(false);
|
|
373
|
-
}, []);
|
|
374
|
-
const handleDrop = useCallback((e) => {
|
|
375
|
-
if (!profile?.enableDocumentUpload)
|
|
376
|
-
return;
|
|
377
|
-
e.preventDefault();
|
|
378
|
-
e.stopPropagation();
|
|
379
|
-
setIsDragOver(false);
|
|
380
|
-
if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
|
|
381
|
-
void uploadFiles(e.dataTransfer.files);
|
|
382
|
-
}
|
|
383
|
-
}, [profile, uploadFiles]);
|
|
384
|
-
// Handle submit from smart input
|
|
385
|
-
const handleSubmitInput = (e) => {
|
|
386
|
-
e?.preventDefault();
|
|
387
|
-
if (!inputValue.trim() || isUploading)
|
|
388
|
-
return;
|
|
389
|
-
handleStartWithPrompt(inputValue);
|
|
390
|
-
setInputValue("");
|
|
391
|
-
};
|
|
392
|
-
// Handle start over
|
|
393
|
-
const handleStartOver = useCallback(async () => {
|
|
394
|
-
if (!profile || !agent)
|
|
395
|
-
return;
|
|
396
|
-
try {
|
|
397
|
-
// Close the current agent first
|
|
398
|
-
await closeAgent(agent.id);
|
|
399
|
-
}
|
|
400
|
-
catch (error) {
|
|
401
|
-
console.error("Failed to close agent:", error);
|
|
402
|
-
}
|
|
403
|
-
const performUpdate = () => {
|
|
404
|
-
// Create new agent and force re-render
|
|
405
|
-
createNewAgent(profile);
|
|
406
|
-
setAgentKey((prev) => prev + 1);
|
|
407
|
-
setInitialPrompt(undefined);
|
|
408
|
-
setInitialPromptDelivered(false);
|
|
409
|
-
};
|
|
410
|
-
if (typeof document !== "undefined" &&
|
|
411
|
-
document.startViewTransition) {
|
|
412
|
-
document.startViewTransition(() => {
|
|
413
|
-
flushSync(() => {
|
|
414
|
-
performUpdate();
|
|
415
|
-
});
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
|
-
else {
|
|
419
|
-
performUpdate();
|
|
420
|
-
}
|
|
421
|
-
}, [profile, agent, createNewAgent]);
|
|
422
|
-
// Handle agent updates from AgentTerminal (e.g., name changes)
|
|
423
|
-
const handleAgentUpdate = useCallback((updates) => {
|
|
424
|
-
setAgent((prev) => (prev ? { ...prev, ...updates } : prev));
|
|
425
|
-
}, []);
|
|
426
|
-
// Handle close
|
|
427
|
-
const handleClose = useCallback(async () => {
|
|
428
|
-
if (!profile)
|
|
429
|
-
return;
|
|
430
|
-
const performUpdate = () => {
|
|
431
|
-
setIsTerminalVisible(false);
|
|
432
|
-
setInitialPrompt(undefined);
|
|
433
|
-
setInitialPromptDelivered(false);
|
|
434
|
-
createNewAgent(profile);
|
|
435
|
-
setAgentKey((prev) => prev + 1);
|
|
436
|
-
};
|
|
437
|
-
void loadRecentAgents(profile, { force: true });
|
|
438
|
-
if (typeof document !== "undefined" &&
|
|
439
|
-
document.startViewTransition) {
|
|
440
|
-
document.startViewTransition(() => {
|
|
441
|
-
flushSync(() => {
|
|
442
|
-
performUpdate();
|
|
443
|
-
});
|
|
444
|
-
});
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
447
|
-
performUpdate();
|
|
448
|
-
}
|
|
449
|
-
}, [createNewAgent, loadRecentAgents, profile]);
|
|
450
|
-
if (isLoading) {
|
|
451
|
-
return (_jsx("div", { className: cn("flex items-center justify-center rounded-2xl border border-white/10 bg-white/3 p-12 shadow-xl", className), children: _jsx(Loader2, { strokeWidth: 1, className: "text-highlight-100 h-6 w-6 animate-spin" }) }));
|
|
452
|
-
}
|
|
453
|
-
const renderAttachments = (variant) => {
|
|
454
|
-
if (!profile?.enableDocumentUpload)
|
|
455
|
-
return null;
|
|
456
|
-
if (attachedDocs.length === 0 && !uploadError && !isUploading)
|
|
457
|
-
return null;
|
|
458
|
-
return (_jsxs("div", { className: cn("flex flex-col gap-2", variant === "overview"
|
|
459
|
-
? "-mt-4"
|
|
460
|
-
: "border-b border-white/10 bg-white/5 px-5 py-3"), children: [(attachedDocs.length > 0 || isUploading) && (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [attachedDocs.map((doc) => {
|
|
461
|
-
const isImage = doc.contentType?.startsWith("image/") ||
|
|
462
|
-
/\.(png|jpe?g|gif|webp)$/i.test(doc.fileName);
|
|
463
|
-
return (_jsxs("div", { className: "group text-neutral-grey-50 flex max-w-[260px] items-center gap-2 rounded-full border border-white/10 bg-white/5 py-1.5 pr-1.5 pl-3 text-xs", children: [isImage ? (_jsx(ImageIcon, { className: "text-highlight-100 h-3.5 w-3.5 shrink-0", strokeWidth: 1 })) : (_jsx(FileText, { className: "text-highlight-100 h-3.5 w-3.5 shrink-0", strokeWidth: 1 })), _jsx("span", { className: "truncate", title: doc.fileName, children: doc.fileName }), _jsx("button", { type: "button", onClick: () => handleRemoveAttachment(doc.id), "aria-label": `Remove ${doc.fileName}`, className: "text-neutral-grey-50 flex h-5 w-5 items-center justify-center rounded-full transition-colors hover:bg-white/10 hover:text-white", children: _jsx(X, { className: "h-3 w-3", strokeWidth: 1 }) })] }, doc.id));
|
|
464
|
-
}), isUploading && (_jsxs("span", { className: "text-neutral-grey-50 flex items-center gap-1.5 text-xs", children: [_jsx(Loader2, { strokeWidth: 1, className: "h-3 w-3 animate-spin" }), "Uploading..."] })), variant === "terminal" && (_jsxs("button", { type: "button", onClick: () => fileInputRef.current?.click(), disabled: isUploading, className: "text-neutral-grey-50 hover:border-highlight-100/40 flex items-center gap-1.5 rounded-full border border-dashed border-white/15 px-3 py-1.5 text-xs transition-colors hover:text-white disabled:opacity-50", children: [_jsx(Paperclip, { className: "h-3 w-3", strokeWidth: 1 }), "Attach"] }))] })), uploadError && (_jsx("p", { className: "text-feedback-red text-xs", children: uploadError }))] }));
|
|
465
|
-
};
|
|
466
|
-
if (!agent || !profile) {
|
|
467
|
-
return (_jsx("div", { className: cn("flex items-center justify-center rounded-2xl border border-white/10 bg-white/3 p-12 shadow-xl", className), children: _jsx("p", { className: "text-neutral-grey-50 text-sm", children: "Assistant unavailable. Please try again later." }) }));
|
|
468
|
-
}
|
|
469
|
-
return (_jsxs("div", { className: cn("flex flex-col overflow-hidden transition-all duration-300", !isTerminalVisible ? "rounded-2xl" : "rounded-xl shadow-2xl", className), style: { viewTransitionName: "assistant-chat-container" }, children: [profile.enableDocumentUpload && (_jsx("input", { ref: fileInputRef, type: "file", multiple: true, className: "hidden", onChange: (e) => {
|
|
470
|
-
void uploadFiles(e.target.files);
|
|
471
|
-
e.target.value = "";
|
|
472
|
-
}, accept: ".txt,.md,.pdf,.docx,.xlsx,.pptx,.csv,.json,.xml,.cs,.js,.ts,.tsx,.jsx,.py,.java,.cpp,.c,.h,.hpp,.cshtml,.razor,.vb,.php,.rb,.go,.rs,.swift,.kt,.scala,.sql,.sh,.ps1,.bat,.yaml,.yml,.png,.jpg,.jpeg,.gif,.webp" })), !isTerminalVisible && (_jsxs("div", { className: "flex flex-col gap-8", children: [_jsx("div", { className: "group relative", style: { viewTransitionName: "assistant-chat-box" }, onDragOver: handleDragOver, onDragEnter: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: _jsxs("form", { onSubmit: handleSubmitInput, className: "relative flex items-center", children: [_jsx("div", { className: "absolute left-5", children: _jsx(ParheliaIconWhite, { size: 24 }) }), _jsx("input", { ref: inputRef, type: "text", placeholder: "Ask Parhelia anything...", value: inputValue, onChange: (e) => setInputValue(e.target.value), onPaste: handleInputPaste, onFocus: () => {
|
|
473
|
-
void loadRecentAgents(profile);
|
|
474
|
-
}, style: { viewTransitionName: "assistant-chat-input" }, className: cn("placeholder:text-neutral-grey-50 h-16 w-full rounded-2xl border bg-white/5 text-lg text-white shadow-2xl transition-all duration-300 focus:bg-white/8 focus:shadow-[0_0_30px_-5px_color-mix(in_srgb,var(--color-highlight-100)_30%,transparent)] focus:outline-none", profile.enableDocumentUpload ? "pr-28 pl-14" : "pr-16 pl-14", isDragOver
|
|
475
|
-
? "border-highlight-100/60 bg-highlight-100/10"
|
|
476
|
-
: "focus:border-highlight-100/40 border-white/10") }), profile.enableDocumentUpload && (_jsx("button", { type: "button", onClick: () => fileInputRef.current?.click(), disabled: isUploading, "aria-label": "Attach documents", title: "Attach documents", className: "text-neutral-grey-50 absolute right-14 flex h-10 w-10 items-center justify-center rounded-xl transition-colors hover:bg-white/10 hover:text-white disabled:opacity-50", children: isUploading ? (_jsx(Loader2, { strokeWidth: 1, className: "h-5 w-5 animate-spin" })) : (_jsx(Paperclip, { className: "h-5 w-5", strokeWidth: 1 })) })), _jsx("button", { type: "submit", disabled: !inputValue.trim() || isUploading, className: "bg-highlight-100 hover:bg-highlight-100 disabled:text-neutral-grey-50 absolute right-3 flex h-10 w-10 items-center justify-center rounded-xl text-white shadow-lg transition-colors disabled:bg-white/5", children: _jsx(ArrowRight, { className: "h-5 w-5", strokeWidth: 1 }) })] }) }), renderAttachments("overview"), _jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: samplePrompts.map((item, idx) => (_jsxs("button", { onClick: () => handleStartWithPrompt(item.prompt), className: "group flex flex-col items-start rounded-xl border border-white/10 bg-white/3 p-5 text-left transition-all hover:bg-white/[0.07]", children: [_jsx("span", { className: "text-neutral-grey-15 group-hover:text-highlight-100 text-sm font-medium transition-colors", children: item.title }), _jsx("span", { className: "text-neutral-grey-50 mt-1 line-clamp-1 text-xs", children: item.description })] }, idx))) }), (isLoadingRecentAgents ||
|
|
477
|
-
!hasLoadedRecentAgents ||
|
|
478
|
-
recentAgents.length > 0) && (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "text-neutral-grey-50 flex items-center gap-2 px-1 text-[10px] font-bold tracking-[0.2em]", children: [_jsx(History, { strokeWidth: 1, className: "h-3 w-3" }), "Recent Parhelia Conversations"] }), !hasLoadedRecentAgents && !isLoadingRecentAgents && (_jsx("button", { onClick: () => {
|
|
479
|
-
void loadRecentAgents(profile);
|
|
480
|
-
}, className: "text-neutral-grey-50 hover:border-highlight-100/30 hover:text-neutral-grey-15 w-fit rounded-full border border-white/10 bg-white/5 px-3 py-1.5 text-xs transition-all hover:bg-white/10", children: "Load recent conversations" })), isLoadingRecentAgents && (_jsxs("div", { className: "text-neutral-grey-50 flex items-center gap-2 px-1 text-xs", children: [_jsx(Loader2, { strokeWidth: 1, className: "h-3.5 w-3.5 animate-spin" }), "Loading recent conversations..."] })), recentAgents.length > 0 && (_jsxs("div", { className: "flex flex-wrap gap-2", children: [recentAgents.slice(0, 3).map((ra) => (_jsx("button", { onClick: () => {
|
|
481
|
-
setAgent(ra);
|
|
482
|
-
setIsTerminalVisible(true);
|
|
483
|
-
setAgentKey((prev) => prev + 1);
|
|
484
|
-
setInitialPrompt(undefined);
|
|
485
|
-
setInitialPromptDelivered(true);
|
|
486
|
-
}, className: "text-neutral-grey-50 hover:border-highlight-100/30 max-w-[200px] truncate overflow-hidden rounded-full border border-white/10 bg-white/5 px-3 py-1.5 text-xs whitespace-nowrap transition-all hover:bg-white/10", children: ra.name }, ra.id))), recentAgents.length > 3 && (_jsx("button", { onClick: () => {
|
|
487
|
-
editContext?.switchWorkspace("agents");
|
|
488
|
-
}, className: "text-highlight-100 hover:text-highlight-100 rounded-full px-3 py-1.5 text-xs font-medium transition-colors", children: "View All Agents" }))] }))] }))] })), isTerminalVisible && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between border-b border-white/10 bg-white/5 px-5 py-3.5", style: { viewTransitionName: "assistant-chat-box" }, children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [_jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-white/5 bg-white/5 shadow-inner", children: _jsx(ParheliaIconWhite, { size: 22 }) }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "text-highlight-100/80 truncate text-[10px] font-bold tracking-[0.2em]", children: agent.description || "Parhelia AI" }), _jsx("span", { className: "text-neutral-grey-5 text-sm font-medium tracking-tight", children: agent.name || profile.agentName || "Assistant" })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleStartOver, className: "text-neutral-grey-50 h-9 gap-2 rounded-xl px-4 text-xs font-medium transition-all hover:bg-white/10 hover:text-white", children: [_jsx(RotateCcw, { className: "h-4 w-4", strokeWidth: 1 }), "New Chat"] }), _jsx("div", { className: "mx-1 h-5 w-px bg-white/10" }), _jsx(CloseButton, { onClick: handleClose, className: "text-neutral-grey-50 hover:text-neutral-grey-15 hover:bg-white/10", label: "Close" })] })] }), renderAttachments("terminal"), (() => {
|
|
489
|
-
// Only pass the initial prompt the first time the terminal is
|
|
490
|
-
// mounted for this prompt. After delivery, a workspace-switch
|
|
491
|
-
// remount re-mounts AgentTerminal with a fresh initialPromptSentRef
|
|
492
|
-
// — without this guard it would auto-submit the same prompt again
|
|
493
|
-
// before getAgent finishes loading history, producing a duplicate.
|
|
494
|
-
const promptForTerminal = initialPromptDelivered
|
|
495
|
-
? undefined
|
|
496
|
-
: initialPrompt;
|
|
497
|
-
return (_jsx("div", { className: "bg-neutral-grey-5/95 flex-1 overflow-hidden", "data-testid": "splash-agent-terminal", "data-agent-id": agent.id, children: _jsx("div", { className: "animate-view-slide-in h-[650px]", children: _jsx(AgentTerminal, { agentStub: agent, initialMetadata: {
|
|
498
|
-
profile: profile.name,
|
|
499
|
-
additionalData: {
|
|
500
|
-
profileId: profile.id,
|
|
501
|
-
profileName: profile.name,
|
|
502
|
-
initialPrompt: promptForTerminal,
|
|
503
|
-
},
|
|
504
|
-
}, profiles: profiles, isActive: true, compact: true, hideContext: true, hideBottomControls: true, showStatusBar: true, showAgentConfigControls: true, hideGreeting: true, className: "h-full", initialPrompt: promptForTerminal, onAgentUpdate: handleAgentUpdate }) }, agentKey) }));
|
|
505
|
-
})()] }))] }));
|
|
506
|
-
};
|
|
507
|
-
//# sourceMappingURL=ParheliaAssistantChat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ParheliaAssistantChat.js","sourceRoot":"","sources":["../../src/splash-screen/ParheliaAssistantChat.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EACZ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,UAAU,EACV,CAAC,EACD,SAAS,EACT,QAAQ,EACR,KAAK,IAAI,SAAS,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAa,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAGL,6BAA6B,EAC7B,6BAA6B,EAG7B,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAQpE,MAAM,iBAAiB,GAAmB;IACxC;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,uDAAuD;QACpE,MAAM,EACJ,mGAAmG;KACtG;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,iDAAiD;QAC9D,MAAM,EACJ,mGAAmG;KACtG;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,mDAAmD;QAChE,MAAM,EACJ,iFAAiF;KACpF;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,uDAAuD;QACpE,MAAM,EACJ,oGAAoG;KACvG;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAyC,CAAC,EAC1E,SAAS,EACT,aAAa,GACd,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,aAAa,GACd,GAAG,oBAAoB,EAAE,CAAC;IAC3B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GACrC,QAAQ,CAAiB,iBAAiB,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,qBAAqB;IACrB,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,eAA0B,EAAE,EAAE;QAC7B,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,IAAI,UAAU,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAU;YACtB,MAAM,EAAE,KAAK;YACb,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,eAAe,CAAC,EAAE;YAC7B,WAAW,EAAE,eAAe,CAAC,IAAI;SAClC,CAAC;QAEF,eAAe,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,CAAC,QAAQ,EAAE,eAAe,CAAC,CAC5B,CAAC;IAEF,sEAAsE;IACtE,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAe,KAAK,CAAC,CAAC;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,gBAAgB,GAAG,WAAW,CAClC,KAAK,EAAE,eAA0B,EAAE,OAA6B,EAAE,EAAE;QAClE,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACxE,OAAO;QACT,CAAC;QAED,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YACtD,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/C,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CACrC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,eAAe,CAAC,EAAE,CAChD,CAAC;YAEF,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;gBAAS,CAAC;YACT,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,EACD,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAC/C,CAAC;IAEF,yDAAyD;IACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,uBAAuB;YACvB,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7C,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,wDAAwD;YACxD,IAAI,gBAAuC,CAAC;YAE5C,sCAAsC;YACtC,gBAAgB,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,sCAAsC,CACvD,CAAC;YAEF,2DAA2D;YAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,gBAAgB,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CAC3C,CAAC;YACJ,CAAC;YAED,6EAA6E;YAC7E,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,gBAAgB,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACzC,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CACrD,CAAC;YACJ,CAAC;YAED,kDAAkD;YAClD,MAAM,eAAe,GAAG,gBAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAE3D,IAAI,eAAe,EAAE,CAAC;gBACpB,UAAU,CAAC,eAAe,CAAC,CAAC;gBAC5B,WAAW,CAAC,WAAW,CAAC,CAAC;gBACzB,eAAe,CAAC,EAAE,CAAC,CAAC;gBACpB,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAChC,iEAAiE;gBACjE,gEAAgE;gBAChE,uDAAuD;gBACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;oBAC3D,cAAc,CAAC,eAAe,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,gFAAgF,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,qCAAqC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,EAAE,CAAC;IACb,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,iDAAiD;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,EAAE,wBAAwB;YAAE,OAAO;QAEnD,MAAM,cAAc,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,EAAE;YACtE,IAAI,OAAO,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBAC9C,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtD,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,CAAC,aAAa,CAAC,CAAC;YACxB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAChC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5B,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAChC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,mEAAmE;IACnE,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,4DAA4D;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,IACE,iBAAiB;YACjB,aAAa,KAAK,SAAS;YAC3B,aAAa,KAAK,EAAE;YACpB,CAAC,sBAAsB,EACvB,CAAC;YACD,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,EAAE;QACD,iBAAiB;QACjB,aAAa;QACb,sBAAsB;QACtB,yBAAyB;KAC1B,CAAC,CAAC;IAEH,gCAAgC;IAChC,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,IACE,OAAO,QAAQ,KAAK,WAAW;YAC9B,QAAgB,CAAC,mBAAmB,EACrC,CAAC;YACA,QAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE;gBACzC,SAAS,CAAC,GAAG,EAAE;oBACb,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,GAAG,EAAE;gBACnB,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,+CAA+C;IAC/C,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,MAAc,EAAE,EAAE;QACjB,IAAI,CAAC,OAAO,IAAI,WAAW;YAAE,OAAO;QAEpC,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,iCAAiC;YACjC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5B,yBAAyB,CAAC,KAAK,CAAC,CAAC;YAEjC,sEAAsE;YACtE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YAED,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAChC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,IACE,OAAO,QAAQ,KAAK,WAAW;YAC9B,QAAgB,CAAC,mBAAmB,EACrC,CAAC;YACA,QAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE;gBACzC,SAAS,CAAC,GAAG,EAAE;oBACb,aAAa,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAC5D,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EAAE,KAA+B,EAAE,EAAE;QACxC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,oBAAoB,IAAI,CAAC,KAAK;YAAE,OAAO;QAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9B,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjE,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;oBACzB,cAAc,CACZ,IAAI,IAAI,CAAC,IAAI,aAAa,OAAO,CAAC,iBAAiB,IAAI,EAAE,KAAK,CAC/D,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,qBAAqB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EACD,CAAC,KAAK,EAAE,OAAO,CAAC,CACjB,CAAC;IAEF,gEAAgE;IAChE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;YACjD,eAAe,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5C,IAAI,SAAS;gBAAE,OAAO;YACtB,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS;gBAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE/C,yDAAyD;IACzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,EAAE,EAAE;YAAE,OAAO;QAEvB,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;YACtC,MAAM,MAAM,GAAI,KAAkD,CAAC,MAAM,CAAC;YAC1E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE;gBAAE,OAAO;YACnD,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACpE,IAAI,QAAQ,KAAK,CAAC,CAAC;oBAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;YACrC,MAAM,MAAM,GAAI,KAAkD,CAAC,MAAM,CAAC;YAC1E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE;gBAAE,OAAO;YACnD,KAAK,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5C,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS;oBAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CACrB,6BAA6B,EAC7B,cAA+B,CAChC,CAAC;QACF,MAAM,CAAC,gBAAgB,CACrB,6BAA6B,EAC7B,aAA8B,CAC/B,CAAC;QACF,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CACxB,6BAA6B,EAC7B,cAA+B,CAChC,CAAC;YACF,MAAM,CAAC,mBAAmB,CACxB,6BAA6B,EAC7B,aAA8B,CAC/B,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAEhB,MAAM,sBAAsB,GAAG,WAAW,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;QACtE,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,6BAA6B,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,CAAyC,EAAE,EAAE;QAC5C,IAAI,CAAC,OAAO,EAAE,oBAAoB;YAAE,OAAO;QAE3C,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAEpB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACnE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACjE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;oBACnD,KAAK,CAAC,IAAI,CACR,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,gBAAgB,SAAS,IAAI,SAAS,EAAE,EAAE;wBACzD,IAAI,EAAE,IAAI,CAAC,IAAI;qBAChB,CAAC,CACH,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,WAAW,CAAC,CACvB,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,CAAkB,EAAE,EAAE;QACrB,IAAI,CAAC,OAAO,EAAE,oBAAoB;YAAE,OAAO;QAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU;YAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,EACD,CAAC,OAAO,EAAE,UAAU,CAAC,CACtB,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAkB,EAAE,EAAE;QACzD,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,CAAkB,EAAE,EAAE;QACrB,IAAI,CAAC,OAAO,EAAE,oBAAoB;YAAE,OAAO;QAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,WAAW,CAAC,CACvB,CAAC;IAEF,iCAAiC;IACjC,MAAM,iBAAiB,GAAG,CAAC,CAAmB,EAAE,EAAE;QAChD,CAAC,EAAE,cAAc,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,WAAW;YAAE,OAAO;QAE9C,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAClC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,oBAAoB;IACpB,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC7C,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;YAAE,OAAO;QAE/B,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,uCAAuC;YACvC,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAChC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5B,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,IACE,OAAO,QAAQ,KAAK,WAAW;YAC9B,QAAgB,CAAC,mBAAmB,EACrC,CAAC;YACA,QAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE;gBACzC,SAAS,CAAC,GAAG,EAAE;oBACb,aAAa,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAErC,+DAA+D;IAC/D,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,OAAuB,EAAE,EAAE;QAChE,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAe;IACf,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC5B,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5B,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACjC,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,KAAK,gBAAgB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,IACE,OAAO,QAAQ,KAAK,WAAW;YAC9B,QAAgB,CAAC,mBAAmB,EACrC,CAAC;YACA,QAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE;gBACzC,SAAS,CAAC,GAAG,EAAE;oBACb,aAAa,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IAEhD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,+FAA+F,EAC/F,SAAS,CACV,YAED,KAAC,OAAO,IACN,WAAW,EAAE,CAAC,EACd,SAAS,EAAC,yCAAyC,GACnD,GACE,CACP,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,OAAgC,EAAE,EAAE;QAC7D,IAAI,CAAC,OAAO,EAAE,oBAAoB;YAAE,OAAO,IAAI,CAAC;QAChD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE3E,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,qBAAqB,EACrB,OAAO,KAAK,UAAU;gBACpB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,+CAA+C,CACpD,aAEA,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAC3C,eAAK,SAAS,EAAC,mCAAmC,aAC/C,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;4BACxB,MAAM,OAAO,GACX,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC;gCACrC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAChD,OAAO,CACL,eAEE,SAAS,EAAC,4IAA4I,aAErJ,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,SAAS,IACR,SAAS,EAAC,yCAAyC,EACnD,WAAW,EAAE,CAAC,GACd,CACH,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IACP,SAAS,EAAC,yCAAyC,EACnD,WAAW,EAAE,CAAC,GACd,CACH,EACD,eAAM,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,YAC3C,GAAG,CAAC,QAAQ,GACR,EACP,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,gBACjC,UAAU,GAAG,CAAC,QAAQ,EAAE,EACpC,SAAS,EAAC,iIAAiI,YAE3I,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,GAClC,KAxBJ,GAAG,CAAC,EAAE,CAyBP,CACP,CAAC;wBACJ,CAAC,CAAC,EACD,WAAW,IAAI,CACd,gBAAM,SAAS,EAAC,wDAAwD,aACtE,KAAC,OAAO,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,sBAAsB,GAAG,oBAEvD,CACR,EACA,OAAO,KAAK,UAAU,IAAI,CACzB,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,EAC5C,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAC,2MAA2M,aAErN,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,cAE1C,CACV,IACG,CACP,EACA,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,2BAA2B,YAAE,WAAW,GAAK,CAC3D,IACG,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,+FAA+F,EAC/F,SAAS,CACV,YAED,YAAG,SAAS,EAAC,8BAA8B,+DAEvC,GACA,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,2DAA2D,EAC3D,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,uBAAuB,EAC5D,SAAS,CACV,EACD,KAAK,EAAE,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,aAExD,OAAO,CAAC,oBAAoB,IAAI,CAC/B,gBACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,QAAQ,QACR,SAAS,EAAC,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtB,CAAC,EACD,MAAM,EAAC,gNAAgN,GACvN,CACH,EAGA,CAAC,iBAAiB,IAAI,CACrB,eAAK,SAAS,EAAC,qBAAqB,aAElC,cACE,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,EACnD,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,cAAc,EAC3B,WAAW,EAAE,eAAe,EAC5B,MAAM,EAAE,UAAU,YAElB,gBACE,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAC,4BAA4B,aAEtC,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,GAC3B,EACN,gBACE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,0BAA0B,EACtC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,GAAG,EAAE;wCACZ,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC;oCACjC,CAAC,EACD,KAAK,EAAE,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,EACrD,SAAS,EAAE,EAAE,CACX,qQAAqQ,EACrQ,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAC5D,UAAU;wCACR,CAAC,CAAC,6CAA6C;wCAC/C,CAAC,CAAC,+CAA+C,CACpD,GACD,EACD,OAAO,CAAC,oBAAoB,IAAI,CAC/B,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,EAC5C,QAAQ,EAAE,WAAW,gBACV,kBAAkB,EAC7B,KAAK,EAAC,kBAAkB,EACxB,SAAS,EAAC,uKAAuK,YAEhL,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,OAAO,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,sBAAsB,GAAG,CAC7D,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,CAClD,GACM,CACV,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,WAAW,EAC3C,SAAS,EAAC,yMAAyM,YAEnN,KAAC,UAAU,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,GAC3C,IACJ,GACH,EAEL,iBAAiB,CAAC,UAAU,CAAC,EAG9B,cAAK,SAAS,EAAC,uCAAuC,YACnD,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,kBAEE,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EACjD,SAAS,EAAC,iIAAiI,aAE3I,eAAM,SAAS,EAAC,2FAA2F,YACxG,IAAI,CAAC,KAAK,GACN,EACP,eAAM,SAAS,EAAC,gDAAgD,YAC7D,IAAI,CAAC,WAAW,GACZ,KATF,GAAG,CAUD,CACV,CAAC,GACE,EAGL,CAAC,qBAAqB;wBACrB,CAAC,qBAAqB;wBACtB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAC5B,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAK,SAAS,EAAC,0FAA0F,aACvG,KAAC,OAAO,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,qCAE3C,EAEL,CAAC,qBAAqB,IAAI,CAAC,qBAAqB,IAAI,CACnD,iBACE,OAAO,EAAE,GAAG,EAAE;oCACZ,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC;gCACjC,CAAC,EACD,SAAS,EAAC,yLAAyL,0CAG5L,CACV,EAEA,qBAAqB,IAAI,CACxB,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,OAAO,IACN,WAAW,EAAE,CAAC,EACd,SAAS,EAAC,0BAA0B,GACpC,uCAEE,CACP,EAEA,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,eAAK,SAAS,EAAC,sBAAsB,aAClC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACpC,iBAEE,OAAO,EAAE,GAAG,EAAE;4CACZ,QAAQ,CAAC,EAAE,CAAC,CAAC;4CACb,oBAAoB,CAAC,IAAI,CAAC,CAAC;4CAC3B,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;4CAChC,gBAAgB,CAAC,SAAS,CAAC,CAAC;4CAC5B,yBAAyB,CAAC,IAAI,CAAC,CAAC;wCAClC,CAAC,EACD,SAAS,EAAC,iNAAiN,YAE1N,EAAE,CAAC,IAAI,IAVH,EAAE,CAAC,EAAE,CAWH,CACV,CAAC,EACD,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,iBACE,OAAO,EAAE,GAAG,EAAE;4CACZ,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;wCACzC,CAAC,EACD,SAAS,EAAC,4GAA4G,gCAG/G,CACV,IACG,CACP,IACG,CACP,IACG,CACP,EAGA,iBAAiB,IAAI,CACpB,8BACE,eACE,SAAS,EAAC,mFAAmF,EAC7F,KAAK,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,aAEnD,eAAK,SAAS,EAAC,wCAAwC,aACrD,cAAK,SAAS,EAAC,4GAA4G,YACzH,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,GAC3B,EACN,eAAK,SAAS,EAAC,8BAA8B,aAC3C,eAAM,SAAS,EAAC,uEAAuE,YACpF,KAAK,CAAC,WAAW,IAAI,aAAa,GAC9B,EACP,eAAM,SAAS,EAAC,wDAAwD,YACrE,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,WAAW,GAC1C,IACH,IACF,EACN,eAAK,SAAS,EAAC,yBAAyB,aACtC,MAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,eAAe,EACxB,SAAS,EAAC,sHAAsH,aAEhI,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,gBAE1C,EACT,cAAK,SAAS,EAAC,2BAA2B,GAAG,EAC7C,KAAC,WAAW,IACV,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,mEAAmE,EAC7E,KAAK,EAAC,OAAO,GACb,IACE,IACF,EAEL,iBAAiB,CAAC,UAAU,CAAC,EAE7B,CAAC,GAAG,EAAE;wBACL,8DAA8D;wBAC9D,8DAA8D;wBAC9D,oEAAoE;wBACpE,kEAAkE;wBAClE,mEAAmE;wBACnE,MAAM,iBAAiB,GAAG,sBAAsB;4BAC9C,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,aAAa,CAAC;wBAClB,OAAO,CACL,cACE,SAAS,EAAC,6CAA6C,iBAC3C,uBAAuB,mBACpB,KAAK,CAAC,EAAE,YAEvB,cAAoB,SAAS,EAAC,iCAAiC,YAC7D,KAAC,aAAa,IACZ,SAAS,EAAE,KAAK,EAChB,eAAe,EAAE;wCACf,OAAO,EAAE,OAAO,CAAC,IAAI;wCACrB,cAAc,EAAE;4CACd,SAAS,EAAE,OAAO,CAAC,EAAE;4CACrB,WAAW,EAAE,OAAO,CAAC,IAAI;4CACzB,aAAa,EAAE,iBAAiB;yCACjC;qCACF,EACD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,EACd,OAAO,EAAE,IAAI,EACb,WAAW,EAAE,IAAI,EACjB,kBAAkB,EAAE,IAAI,EACxB,aAAa,EAAE,IAAI,EACnB,uBAAuB,EAAE,IAAI,EAC7B,YAAY,EAAE,IAAI,EAClB,SAAS,EAAC,QAAQ,EAClB,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,iBAAiB,GAChC,IAtBM,QAAQ,CAuBZ,GACF,CACP,CAAC;oBACJ,CAAC,CAAC,EAAE,IACH,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Agent, AgentDocument } from "../editor/services/agentService";
|
|
3
|
-
interface SplashScreenAgentContextValue {
|
|
4
|
-
agent: Agent | null;
|
|
5
|
-
setAgent: React.Dispatch<React.SetStateAction<Agent | null>>;
|
|
6
|
-
agentKey: number;
|
|
7
|
-
setAgentKey: React.Dispatch<React.SetStateAction<number>>;
|
|
8
|
-
isTerminalVisible: boolean;
|
|
9
|
-
setIsTerminalVisible: React.Dispatch<React.SetStateAction<boolean>>;
|
|
10
|
-
initialPrompt: string | undefined;
|
|
11
|
-
setInitialPrompt: React.Dispatch<React.SetStateAction<string | undefined>>;
|
|
12
|
-
initialPromptDelivered: boolean;
|
|
13
|
-
setInitialPromptDelivered: React.Dispatch<React.SetStateAction<boolean>>;
|
|
14
|
-
attachedDocs: AgentDocument[];
|
|
15
|
-
setAttachedDocs: React.Dispatch<React.SetStateAction<AgentDocument[]>>;
|
|
16
|
-
inputValue: string;
|
|
17
|
-
setInputValue: React.Dispatch<React.SetStateAction<string>>;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Holds the splash screen's chat/agent UI state above the workspace switching
|
|
21
|
-
* boundary. ModernSplashScreen is unmounted when the user switches workspaces;
|
|
22
|
-
* without this provider, a running agent's UI state would reset on return.
|
|
23
|
-
*/
|
|
24
|
-
export declare function SplashScreenAgentProvider({ children, }: {
|
|
25
|
-
children: React.ReactNode;
|
|
26
|
-
}): React.JSX.Element;
|
|
27
|
-
export declare function useSplashScreenAgent(): SplashScreenAgentContextValue;
|
|
28
|
-
export {};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { createContext, useContext, useMemo, useState } from "react";
|
|
4
|
-
const SplashScreenAgentContext = createContext(null);
|
|
5
|
-
/**
|
|
6
|
-
* Holds the splash screen's chat/agent UI state above the workspace switching
|
|
7
|
-
* boundary. ModernSplashScreen is unmounted when the user switches workspaces;
|
|
8
|
-
* without this provider, a running agent's UI state would reset on return.
|
|
9
|
-
*/
|
|
10
|
-
export function SplashScreenAgentProvider({ children, }) {
|
|
11
|
-
const [agent, setAgent] = useState(null);
|
|
12
|
-
const [agentKey, setAgentKey] = useState(0);
|
|
13
|
-
const [isTerminalVisible, setIsTerminalVisible] = useState(false);
|
|
14
|
-
const [initialPrompt, setInitialPrompt] = useState(undefined);
|
|
15
|
-
const [initialPromptDelivered, setInitialPromptDelivered] = useState(false);
|
|
16
|
-
const [attachedDocs, setAttachedDocs] = useState([]);
|
|
17
|
-
const [inputValue, setInputValue] = useState("");
|
|
18
|
-
const value = useMemo(() => ({
|
|
19
|
-
agent,
|
|
20
|
-
setAgent,
|
|
21
|
-
agentKey,
|
|
22
|
-
setAgentKey,
|
|
23
|
-
isTerminalVisible,
|
|
24
|
-
setIsTerminalVisible,
|
|
25
|
-
initialPrompt,
|
|
26
|
-
setInitialPrompt,
|
|
27
|
-
initialPromptDelivered,
|
|
28
|
-
setInitialPromptDelivered,
|
|
29
|
-
attachedDocs,
|
|
30
|
-
setAttachedDocs,
|
|
31
|
-
inputValue,
|
|
32
|
-
setInputValue,
|
|
33
|
-
}), [
|
|
34
|
-
agent,
|
|
35
|
-
agentKey,
|
|
36
|
-
isTerminalVisible,
|
|
37
|
-
initialPrompt,
|
|
38
|
-
initialPromptDelivered,
|
|
39
|
-
attachedDocs,
|
|
40
|
-
inputValue,
|
|
41
|
-
]);
|
|
42
|
-
return (_jsx(SplashScreenAgentContext.Provider, { value: value, children: children }));
|
|
43
|
-
}
|
|
44
|
-
export function useSplashScreenAgent() {
|
|
45
|
-
const ctx = useContext(SplashScreenAgentContext);
|
|
46
|
-
if (!ctx) {
|
|
47
|
-
throw new Error("useSplashScreenAgent must be used within SplashScreenAgentProvider");
|
|
48
|
-
}
|
|
49
|
-
return ctx;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=SplashScreenAgentContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SplashScreenAgentContext.js","sourceRoot":"","sources":["../../src/splash-screen/SplashScreenAgentContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAwB5E,MAAM,wBAAwB,GAC5B,aAAa,CAAuC,IAAI,CAAC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,QAAQ,GAGT;IACC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,SAAS,CACV,CAAC;IACF,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEjD,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,iBAAiB;QACjB,oBAAoB;QACpB,aAAa;QACb,gBAAgB;QAChB,sBAAsB;QACtB,yBAAyB;QACzB,YAAY;QACZ,eAAe;QACf,UAAU;QACV,aAAa;KACd,CAAC,EACF;QACE,KAAK;QACL,QAAQ;QACR,iBAAiB;QACjB,aAAa;QACb,sBAAsB;QACtB,YAAY;QACZ,UAAU;KACX,CACF,CAAC;IAEF,OAAO,CACL,KAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC5C,QAAQ,GACyB,CACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|