codemini-cli 0.5.5 → 0.5.6
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 +274 -472
- package/codemini-web/codemini_logo.png +0 -0
- package/codemini-web/dist/assets/{highlighted-body-OFNGDK62-DC-rSI65.js → highlighted-body-OFNGDK62-Cc6TA1Qw.js} +1 -1
- package/codemini-web/dist/assets/{index-cYRgZ3WI.js → index-BqNKEgHB.js} +93 -91
- package/codemini-web/dist/assets/index-dYs_njBc.css +2 -0
- package/codemini-web/dist/assets/mermaid-GHXKKRXX-JDxagHq_.js +1 -0
- package/codemini-web/dist/index.html +2 -2
- package/codemini-web/lib/runtime-bridge.js +15 -0
- package/codemini-web/server.js +117 -55
- package/package.json +6 -2
- package/src/cli.js +1 -3
- package/src/commands/chat.js +2 -2
- package/src/core/chat-runtime.js +69 -18
- package/src/core/context-compact.js +158 -6
- package/src/core/fff-adapter.js +2 -5
- package/src/core/version.js +11 -0
- package/codemini-web/dist/assets/index-DErltUwI.css +0 -2
- package/codemini-web/dist/assets/mermaid-GHXKKRXX-DdvTRIYD.js +0 -1
package/src/commands/chat.js
CHANGED
|
@@ -4,7 +4,7 @@ import { loadConfig } from '../core/config-store.js';
|
|
|
4
4
|
import { createChatRuntime } from '../core/chat-runtime.js';
|
|
5
5
|
import { buildDefaultSystemPrompt } from '../core/default-system-prompt.js';
|
|
6
6
|
import { resolveSession } from '../core/session-store.js';
|
|
7
|
-
import
|
|
7
|
+
import { VERSION } from '../core/version.js';
|
|
8
8
|
|
|
9
9
|
function parseChatArgs(args) {
|
|
10
10
|
const parsed = {
|
|
@@ -175,7 +175,7 @@ export async function handleChat(args) {
|
|
|
175
175
|
language: config.ui?.language || 'zh',
|
|
176
176
|
shellName: config.shell?.default || 'powershell',
|
|
177
177
|
safeMode: config.policy?.safe_mode !== false,
|
|
178
|
-
version:
|
|
178
|
+
version: VERSION
|
|
179
179
|
})
|
|
180
180
|
);
|
|
181
181
|
|
package/src/core/chat-runtime.js
CHANGED
|
@@ -21,7 +21,9 @@ import {
|
|
|
21
21
|
compactMessagesLocally,
|
|
22
22
|
estimateMessagesTokens,
|
|
23
23
|
microCompactMessages,
|
|
24
|
-
parseCompactArgs
|
|
24
|
+
parseCompactArgs,
|
|
25
|
+
buildTranscriptForLLM,
|
|
26
|
+
COMPACT_SUMMARY_PROMPT
|
|
25
27
|
} from './context-compact.js';
|
|
26
28
|
import { getReplyLanguage, getReplyLanguageName } from './reply-language.js';
|
|
27
29
|
import { composeSystemPrompt } from './system-prompt-composer.js';
|
|
@@ -2401,6 +2403,33 @@ async function generateSessionTitle({ userText, assistantText = '', config, sign
|
|
|
2401
2403
|
}
|
|
2402
2404
|
}
|
|
2403
2405
|
|
|
2406
|
+
function createCompactSummaryGenerator(config, signal) {
|
|
2407
|
+
return async (olderMessages) => {
|
|
2408
|
+
const latestConfig = await loadConfig().catch(() => config);
|
|
2409
|
+
const effectiveConfig = latestConfig || config;
|
|
2410
|
+
const fastModel = resolveFastModel(effectiveConfig);
|
|
2411
|
+
if (!fastModel) throw new Error('No fast model');
|
|
2412
|
+
const transcript = buildTranscriptForLLM(olderMessages);
|
|
2413
|
+
const result = await createChatCompletion({
|
|
2414
|
+
sdkProvider: effectiveConfig.sdk?.provider,
|
|
2415
|
+
baseUrl: effectiveConfig.gateway.base_url,
|
|
2416
|
+
apiKey: effectiveConfig.gateway.api_key,
|
|
2417
|
+
model: fastModel,
|
|
2418
|
+
messages: [
|
|
2419
|
+
{ role: 'system', content: COMPACT_SUMMARY_PROMPT },
|
|
2420
|
+
{ role: 'user', content: transcript.slice(0, 12000) }
|
|
2421
|
+
],
|
|
2422
|
+
tools: [],
|
|
2423
|
+
timeoutMs: Math.min(Number(effectiveConfig.gateway?.timeout_ms || 30000), 60000),
|
|
2424
|
+
maxRetries: 0,
|
|
2425
|
+
signal
|
|
2426
|
+
});
|
|
2427
|
+
const text = result?.text?.trim();
|
|
2428
|
+
if (!text) throw new Error('Empty summary');
|
|
2429
|
+
return text;
|
|
2430
|
+
};
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2404
2433
|
function estimatePromptTokensForRequest(sessionMessages, userText = '') {
|
|
2405
2434
|
const tokenMsgs = [
|
|
2406
2435
|
...(Array.isArray(sessionMessages) ? sessionMessages : []),
|
|
@@ -2641,9 +2670,10 @@ async function askModel({
|
|
|
2641
2670
|
if (needsMacro) {
|
|
2642
2671
|
const sourceIsCompacted = Boolean(compacted);
|
|
2643
2672
|
const macroSource = compacted ?? session.messages;
|
|
2644
|
-
const auto = compactMessagesLocally(macroSource, {
|
|
2673
|
+
const auto = await compactMessagesLocally(macroSource, {
|
|
2645
2674
|
mode: preflightPct >= hardPct ? 'aggressive' : 'conservative',
|
|
2646
|
-
force: true
|
|
2675
|
+
force: true,
|
|
2676
|
+
generateSummary: createCompactSummaryGenerator(config, signal)
|
|
2647
2677
|
});
|
|
2648
2678
|
if (auto.changed) {
|
|
2649
2679
|
compacted = auto.compacted.map((m) => ({ ...m, at: new Date().toISOString() }));
|
|
@@ -2720,7 +2750,7 @@ async function askModel({
|
|
|
2720
2750
|
compacted.push({ ...userMessage });
|
|
2721
2751
|
if (onCompactedUpdate) onCompactedUpdate(compacted);
|
|
2722
2752
|
}
|
|
2723
|
-
if (
|
|
2753
|
+
if (shouldReplaceSessionTitle(session.title)) {
|
|
2724
2754
|
session.title = deriveSessionTitle(session.messages);
|
|
2725
2755
|
}
|
|
2726
2756
|
session.model = model || config.model.name;
|
|
@@ -2969,18 +2999,26 @@ async function askModel({
|
|
|
2969
2999
|
}
|
|
2970
3000
|
}
|
|
2971
3001
|
}
|
|
3002
|
+
session.model = model || config.model.name;
|
|
3003
|
+
session.mode = executionMode || config.execution?.mode || 'normal';
|
|
3004
|
+
await flushScheduledSave();
|
|
3005
|
+
await saveSession(session);
|
|
3006
|
+
// Generate a better title asynchronously after saving
|
|
2972
3007
|
if (shouldReplaceSessionTitle(session.title)) {
|
|
2973
|
-
|
|
3008
|
+
const titleSessionId = session.id;
|
|
3009
|
+
generateSessionTitle({
|
|
2974
3010
|
userText: text,
|
|
2975
3011
|
assistantText: loopResult.text || '',
|
|
2976
3012
|
config,
|
|
2977
3013
|
signal
|
|
2978
|
-
})
|
|
3014
|
+
}).then(async (generatedTitle) => {
|
|
3015
|
+
if (generatedTitle && generatedTitle !== session.title) {
|
|
3016
|
+
session.title = generatedTitle;
|
|
3017
|
+
await saveSession(session);
|
|
3018
|
+
onTitleUpdateCallback?.(titleSessionId, generatedTitle);
|
|
3019
|
+
}
|
|
3020
|
+
}).catch(() => {});
|
|
2979
3021
|
}
|
|
2980
|
-
session.model = model || config.model.name;
|
|
2981
|
-
session.mode = executionMode || config.execution?.mode || 'normal';
|
|
2982
|
-
await flushScheduledSave();
|
|
2983
|
-
await saveSession(session);
|
|
2984
3022
|
try {
|
|
2985
3023
|
await pruneSessions(config.sessions || {});
|
|
2986
3024
|
} catch {
|
|
@@ -4160,6 +4198,7 @@ export async function createChatRuntime({
|
|
|
4160
4198
|
session.projectDir = process.cwd();
|
|
4161
4199
|
}
|
|
4162
4200
|
let activeRequestToolApproval = typeof requestToolApproval === 'function' ? requestToolApproval : null;
|
|
4201
|
+
let onTitleUpdateCallback = null;
|
|
4163
4202
|
const startupEvents = [];
|
|
4164
4203
|
const initialIndex = await initializeProjectIndex(process.cwd()).catch(() => null);
|
|
4165
4204
|
if (initialIndex?.summary) {
|
|
@@ -4729,16 +4768,24 @@ export async function createChatRuntime({
|
|
|
4729
4768
|
if (assistantText) {
|
|
4730
4769
|
appendSessionMessage(stampedMessage('assistant', assistantText, extra));
|
|
4731
4770
|
}
|
|
4771
|
+
currentSession.model = model || config.model.name;
|
|
4772
|
+
currentSession.mode = executionMode || config.execution?.mode || 'normal';
|
|
4773
|
+
await saveSession(currentSession);
|
|
4774
|
+
// Generate a better title asynchronously after saving
|
|
4732
4775
|
if (shouldReplaceSessionTitle(currentSession.title)) {
|
|
4733
|
-
|
|
4776
|
+
const titleSessionId = currentSession.id;
|
|
4777
|
+
generateSessionTitle({
|
|
4734
4778
|
userText,
|
|
4735
4779
|
assistantText,
|
|
4736
4780
|
config
|
|
4737
|
-
})
|
|
4781
|
+
}).then(async (generatedTitle) => {
|
|
4782
|
+
if (generatedTitle && generatedTitle !== currentSession.title) {
|
|
4783
|
+
currentSession.title = generatedTitle;
|
|
4784
|
+
await saveSession(currentSession);
|
|
4785
|
+
onTitleUpdateCallback?.(titleSessionId, generatedTitle);
|
|
4786
|
+
}
|
|
4787
|
+
}).catch(() => {});
|
|
4738
4788
|
}
|
|
4739
|
-
currentSession.model = model || config.model.name;
|
|
4740
|
-
currentSession.mode = executionMode || config.execution?.mode || 'normal';
|
|
4741
|
-
await saveSession(currentSession);
|
|
4742
4789
|
};
|
|
4743
4790
|
|
|
4744
4791
|
const persistUserExchange = async (userText) => {
|
|
@@ -5720,7 +5767,7 @@ export async function createChatRuntime({
|
|
|
5720
5767
|
|
|
5721
5768
|
const sourceIsCompacted = Boolean(compactedForModel);
|
|
5722
5769
|
const macroSource = compactedForModel ?? currentSession.messages;
|
|
5723
|
-
const result = compactMessagesLocally(macroSource, { mode: compactState.mode, force: true });
|
|
5770
|
+
const result = await compactMessagesLocally(macroSource, { mode: compactState.mode, force: true, generateSummary: createCompactSummaryGenerator(config, null) });
|
|
5724
5771
|
if (!result.changed) {
|
|
5725
5772
|
return { type: 'system', text: 'Nothing to compact yet' };
|
|
5726
5773
|
}
|
|
@@ -5957,9 +6004,10 @@ export async function createChatRuntime({
|
|
|
5957
6004
|
if (needsMacro) {
|
|
5958
6005
|
const sourceIsCompacted = Boolean(compactedForModel);
|
|
5959
6006
|
const macroSource = compactedForModel ?? currentSession.messages;
|
|
5960
|
-
const autoResult = compactMessagesLocally(macroSource, {
|
|
6007
|
+
const autoResult = await compactMessagesLocally(macroSource, {
|
|
5961
6008
|
mode: compactState.mode,
|
|
5962
|
-
force: true
|
|
6009
|
+
force: true,
|
|
6010
|
+
generateSummary: createCompactSummaryGenerator(config, null)
|
|
5963
6011
|
});
|
|
5964
6012
|
if (autoResult.changed) {
|
|
5965
6013
|
setCompactedView(
|
|
@@ -6102,6 +6150,9 @@ export async function createChatRuntime({
|
|
|
6102
6150
|
activeRequestToolApproval = typeof handler === 'function' ? handler : null;
|
|
6103
6151
|
return true;
|
|
6104
6152
|
},
|
|
6153
|
+
setOnTitleUpdate: (cb) => {
|
|
6154
|
+
onTitleUpdateCallback = typeof cb === 'function' ? cb : null;
|
|
6155
|
+
},
|
|
6105
6156
|
dispose: async () => {
|
|
6106
6157
|
if (typeof disposeTools === 'function') {
|
|
6107
6158
|
await disposeTools();
|
|
@@ -39,6 +39,103 @@ function modeToKeepRecent(mode) {
|
|
|
39
39
|
return 6;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
function getToolCallId(call) {
|
|
43
|
+
return String(call?.id || '').trim();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function getMessageToolCallIds(message) {
|
|
47
|
+
if (!Array.isArray(message?.tool_calls)) return [];
|
|
48
|
+
return message.tool_calls.map(getToolCallId).filter(Boolean);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function toolResultNote(message) {
|
|
52
|
+
const text = textFromContent(message?.content);
|
|
53
|
+
let parsed;
|
|
54
|
+
try { parsed = JSON.parse(text); } catch { parsed = null; }
|
|
55
|
+
const summary = parsed && typeof parsed === 'object'
|
|
56
|
+
? summarizeToolResult(parsed)
|
|
57
|
+
: text.replace(/\s+/g, ' ').trim();
|
|
58
|
+
const clipped = summary.length > 600 ? `${summary.slice(0, 597)}...` : summary;
|
|
59
|
+
return `[Compacted orphan tool result]\n${clipped || 'No content'}`;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function expandRecentStartToToolBoundary(messages, start) {
|
|
63
|
+
let adjusted = Math.max(0, Math.min(start, messages.length));
|
|
64
|
+
while (adjusted > 0 && messages[adjusted]?.role === 'tool') {
|
|
65
|
+
adjusted -= 1;
|
|
66
|
+
}
|
|
67
|
+
if (
|
|
68
|
+
adjusted > 0 &&
|
|
69
|
+
messages[adjusted]?.role !== 'assistant' &&
|
|
70
|
+
messages[adjusted + 1]?.role === 'tool'
|
|
71
|
+
) {
|
|
72
|
+
adjusted += 1;
|
|
73
|
+
}
|
|
74
|
+
return adjusted;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function sanitizeRecentMessagesForModel(messages) {
|
|
78
|
+
const out = [];
|
|
79
|
+
let activeAssistantIndex = -1;
|
|
80
|
+
let expectedToolIds = new Set();
|
|
81
|
+
let matchedToolIds = new Set();
|
|
82
|
+
|
|
83
|
+
const finalizeActiveAssistant = () => {
|
|
84
|
+
if (activeAssistantIndex < 0) return;
|
|
85
|
+
const assistant = out[activeAssistantIndex];
|
|
86
|
+
if (!Array.isArray(assistant?.tool_calls)) {
|
|
87
|
+
activeAssistantIndex = -1;
|
|
88
|
+
expectedToolIds = new Set();
|
|
89
|
+
matchedToolIds = new Set();
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const toolCalls = assistant.tool_calls.filter((call) => matchedToolIds.has(getToolCallId(call)));
|
|
93
|
+
if (toolCalls.length > 0) {
|
|
94
|
+
out[activeAssistantIndex] = { ...assistant, tool_calls: toolCalls };
|
|
95
|
+
} else {
|
|
96
|
+
const { tool_calls, ...rest } = assistant;
|
|
97
|
+
out[activeAssistantIndex] = rest;
|
|
98
|
+
}
|
|
99
|
+
activeAssistantIndex = -1;
|
|
100
|
+
expectedToolIds = new Set();
|
|
101
|
+
matchedToolIds = new Set();
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
for (const message of messages) {
|
|
105
|
+
if (!message || typeof message !== 'object') continue;
|
|
106
|
+
if (message.role === 'assistant') {
|
|
107
|
+
finalizeActiveAssistant();
|
|
108
|
+
const clone = { ...message };
|
|
109
|
+
out.push(clone);
|
|
110
|
+
const ids = getMessageToolCallIds(clone);
|
|
111
|
+
if (ids.length > 0) {
|
|
112
|
+
activeAssistantIndex = out.length - 1;
|
|
113
|
+
expectedToolIds = new Set(ids);
|
|
114
|
+
matchedToolIds = new Set();
|
|
115
|
+
}
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (message.role === 'tool') {
|
|
120
|
+
const id = String(message.tool_call_id || '').trim();
|
|
121
|
+
if (id && expectedToolIds.has(id)) {
|
|
122
|
+
out.push({ ...message });
|
|
123
|
+
matchedToolIds.add(id);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
finalizeActiveAssistant();
|
|
127
|
+
out.push({ role: 'assistant', content: toolResultNote(message), at: message.at });
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
finalizeActiveAssistant();
|
|
132
|
+
out.push({ ...message });
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
finalizeActiveAssistant();
|
|
136
|
+
return out;
|
|
137
|
+
}
|
|
138
|
+
|
|
42
139
|
function buildLocalSummary(messages) {
|
|
43
140
|
const goal = [];
|
|
44
141
|
const constraints = [];
|
|
@@ -103,6 +200,50 @@ function buildLocalSummary(messages) {
|
|
|
103
200
|
return lines.join('\n').trim();
|
|
104
201
|
}
|
|
105
202
|
|
|
203
|
+
/**
|
|
204
|
+
* Build a conversation transcript from messages for LLM summarization input.
|
|
205
|
+
* Includes structured metadata (tool calls, file changes) alongside the text.
|
|
206
|
+
*/
|
|
207
|
+
export function buildTranscriptForLLM(messages) {
|
|
208
|
+
const parts = [];
|
|
209
|
+
for (const msg of messages) {
|
|
210
|
+
const text = textFromContent(msg.content).replace(/\s+/g, ' ').trim();
|
|
211
|
+
if (!text && !Array.isArray(msg.tool_calls) && msg.role !== 'user') continue;
|
|
212
|
+
if (msg.role === 'user') {
|
|
213
|
+
parts.push(`[User]\n${text.slice(0, 600)}`);
|
|
214
|
+
} else if (msg.role === 'assistant') {
|
|
215
|
+
let block = `[Assistant]\n${text.slice(0, 600)}`;
|
|
216
|
+
if (Array.isArray(msg.tool_calls) && msg.tool_calls.length > 0) {
|
|
217
|
+
const toolNames = msg.tool_calls.map(tc => tc.function?.name || tc.name || 'tool').join(', ');
|
|
218
|
+
block += `\n[Called tools: ${toolNames}]`;
|
|
219
|
+
}
|
|
220
|
+
parts.push(block);
|
|
221
|
+
} else if (msg.role === 'tool') {
|
|
222
|
+
let parsed;
|
|
223
|
+
try { parsed = JSON.parse(text); } catch { parsed = null; }
|
|
224
|
+
if (parsed && typeof parsed === 'object') {
|
|
225
|
+
const summary = summarizeToolResult(parsed);
|
|
226
|
+
parts.push(`[Tool Result]\n${summary.slice(0, 400)}`);
|
|
227
|
+
} else {
|
|
228
|
+
parts.push(`[Tool Result]\n${text.slice(0, 300)}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return parts.join('\n\n');
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export const COMPACT_SUMMARY_PROMPT = `Summarize the following conversation into a structured context summary that preserves all critical information for continuing the task. Be thorough and specific.
|
|
236
|
+
|
|
237
|
+
Include:
|
|
238
|
+
- The user's goal and requirements
|
|
239
|
+
- Key decisions made and reasoning
|
|
240
|
+
- Files that were read, modified, or created (with paths)
|
|
241
|
+
- Current progress and what remains
|
|
242
|
+
- Any errors encountered and how they were resolved
|
|
243
|
+
- Important constraints or conventions discovered
|
|
244
|
+
|
|
245
|
+
Write in the same language as the conversation. Be concise but do not omit important details.`;
|
|
246
|
+
|
|
106
247
|
/**
|
|
107
248
|
* Micro-compact: in-place clearing of old tool result content.
|
|
108
249
|
* Does NOT change message count or order — only replaces tool result text
|
|
@@ -151,7 +292,7 @@ export function microCompactMessages(messages, { keepRecent = 5, enabled = true
|
|
|
151
292
|
return { messages: result, changed: true, tokensSaved };
|
|
152
293
|
}
|
|
153
294
|
|
|
154
|
-
export function compactMessagesLocally(messages, { mode = 'default', force = false } = {}) {
|
|
295
|
+
export async function compactMessagesLocally(messages, { mode = 'default', force = false, generateSummary = null } = {}) {
|
|
155
296
|
const keepRecent = modeToKeepRecent(mode);
|
|
156
297
|
if (!Array.isArray(messages) || messages.length <= 1) {
|
|
157
298
|
return {
|
|
@@ -167,12 +308,23 @@ export function compactMessagesLocally(messages, { mode = 'default', force = fal
|
|
|
167
308
|
};
|
|
168
309
|
}
|
|
169
310
|
|
|
170
|
-
const
|
|
171
|
-
const
|
|
172
|
-
const
|
|
173
|
-
|
|
311
|
+
const recentStart = expandRecentStartToToolBoundary(messages, Math.max(0, messages.length - keepRecent));
|
|
312
|
+
const older = messages.slice(0, recentStart);
|
|
313
|
+
const recent = sanitizeRecentMessagesForModel(messages.slice(recentStart));
|
|
314
|
+
|
|
315
|
+
let summary;
|
|
316
|
+
if (typeof generateSummary === 'function') {
|
|
317
|
+
try {
|
|
318
|
+
summary = await generateSummary(older);
|
|
319
|
+
} catch {
|
|
320
|
+
summary = buildLocalSummary(older);
|
|
321
|
+
}
|
|
322
|
+
} else {
|
|
323
|
+
summary = buildLocalSummary(older);
|
|
324
|
+
}
|
|
174
325
|
|
|
175
|
-
const
|
|
326
|
+
const compacted = [{ role: 'assistant', content: summary }, ...recent];
|
|
327
|
+
const boundaryIndex = recentStart;
|
|
176
328
|
|
|
177
329
|
return {
|
|
178
330
|
compacted,
|
package/src/core/fff-adapter.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { LANGUAGE_FILE_TYPES } from './constants.js';
|
|
3
|
+
import { getPackageInfo } from './version.js';
|
|
3
4
|
|
|
4
5
|
const DEFAULT_COMMAND = 'fff-mcp';
|
|
5
6
|
const DEFAULT_TIMEOUT_MS = 15_000;
|
|
@@ -109,10 +110,7 @@ class FffMcpClient {
|
|
|
109
110
|
await this.sendRequest('initialize', {
|
|
110
111
|
protocolVersion: '2024-11-05',
|
|
111
112
|
capabilities: {},
|
|
112
|
-
clientInfo:
|
|
113
|
-
name: 'codemini-cli',
|
|
114
|
-
version: '0.5.5'
|
|
115
|
-
}
|
|
113
|
+
clientInfo: getPackageInfo()
|
|
116
114
|
});
|
|
117
115
|
this.sendNotification('notifications/initialized', {});
|
|
118
116
|
}
|
|
@@ -383,4 +381,3 @@ export function createFffAdapter({ workspaceRoot, config }) {
|
|
|
383
381
|
}
|
|
384
382
|
};
|
|
385
383
|
}
|
|
386
|
-
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import pkg from '../../package.json' with { type: 'json' };
|
|
2
|
+
|
|
3
|
+
export const PACKAGE_NAME = pkg.name || 'codemini-cli';
|
|
4
|
+
export const VERSION = pkg.version;
|
|
5
|
+
|
|
6
|
+
export function getPackageInfo() {
|
|
7
|
+
return {
|
|
8
|
+
name: PACKAGE_NAME,
|
|
9
|
+
version: VERSION
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-600:oklch(66.6% .179 58.318);--color-green-400:oklch(79.2% .209 151.711);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-500:oklch(69.6% .17 162.48);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:var(--radius-sm);--radius-md:.375rem;--radius-lg:var(--radius-lg);--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--radius:var(--radius)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-2\.5{top:calc(var(--spacing) * -2.5)}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[38\%\]{top:38%}.top-\[50\%\]{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-7{right:calc(var(--spacing) * 7)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\[220px\]{bottom:220px}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.left-0\.5{left:calc(var(--spacing) * .5)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-4{left:calc(var(--spacing) * 4)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.m-0{margin:calc(var(--spacing) * 0)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-2\.5{margin-inline:calc(var(--spacing) * 2.5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-5{margin-inline:calc(var(--spacing) * 5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.my-\[22px\]{margin-block:22px}.-mt-10{margin-top:calc(var(--spacing) * -10)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-\[-12px\]{margin-top:-12px}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.size-1{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-full{width:100%;height:100%}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[18px\]{height:18px}.h-\[28px\]{height:28px}.h-\[30px\]{height:30px}.h-\[32px\]{height:32px}.h-\[34px\]{height:34px}.h-\[46px\]{height:46px}.h-\[52px\]{height:52px}.h-\[80vh\]{height:80vh}.h-\[240px\]{height:240px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(100vh-160px\)\]{height:calc(100vh - 160px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[82vh\]{max-height:82vh}.max-h-\[86vh\]{max-height:86vh}.max-h-\[160px\]{max-height:160px}.max-h-\[360px\]{max-height:360px}.max-h-\[420px\]{max-height:420px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-\[28px\]{min-height:28px}.min-h-\[30px\]{min-height:30px}.min-h-\[32px\]{min-height:32px}.min-h-\[64px\]{min-height:64px}.min-h-\[200px\]{min-height:200px}.min-h-\[220px\]{min-height:220px}.min-h-\[240px\]{min-height:240px}.min-h-\[420px\]{min-height:420px}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-72{width:calc(var(--spacing) * 72)}.w-\[14px\]{width:14px}.w-\[18px\]{width:18px}.w-\[34px\]{width:34px}.w-\[220px\]{width:220px}.w-\[260px\]{width:260px}.w-\[min\(760px\,calc\(100\%-48px\)\)\]{width:min(760px,100% - 48px)}.w-\[min\(960px\,calc\(100\%-96px\)\)\]{width:min(960px,100% - 96px)}.w-\[min\(980px\,calc\(100\%-64px\)\)\]{width:min(980px,100% - 64px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-75{max-width:calc(var(--spacing) * 75)}.max-w-\[60px\]{max-width:60px}.max-w-\[80px\]{max-width:80px}.max-w-\[860px\]{max-width:860px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[30px\]{min-width:30px}.min-w-\[32px\]{min-width:32px}.min-w-\[34px\]{min-width:34px}.min-w-\[120px\]{min-width:120px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.origin-center{transform-origin:50%}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.resize-y{resize:vertical}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[22px_minmax\(96px\,180px\)_minmax\(0\,1fr\)_auto\]{grid-template-columns:22px minmax(96px,180px) minmax(0,1fr) auto}.grid-cols-\[260px_minmax\(0\,1fr\)_420px\]{grid-template-columns:260px minmax(0,1fr) 420px}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.-space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * -1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * -1) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:var(--radius)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[18px\]{border-radius:18px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--accent-blue\)\/30{border-color:var(--accent-blue)}@supports (color:color-mix(in lab, red, red)){.border-\(--accent-blue\)\/30{border-color:color-mix(in oklab, var(--accent-blue) 30%, transparent)}}.border-\(--accent-cyan\)\/25{border-color:var(--accent-cyan)}@supports (color:color-mix(in lab, red, red)){.border-\(--accent-cyan\)\/25{border-color:color-mix(in oklab, var(--accent-cyan) 25%, transparent)}}.border-\(--accent-purple\)\/25{border-color:var(--accent-purple)}@supports (color:color-mix(in lab, red, red)){.border-\(--accent-purple\)\/25{border-color:color-mix(in oklab, var(--accent-purple) 25%, transparent)}}.border-\(--accent-red\)\/30{border-color:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.border-\(--accent-red\)\/30{border-color:color-mix(in oklab, var(--accent-red) 30%, transparent)}}.border-\(--border-default\){border-color:var(--border-default)}.border-\(--border-strong\){border-color:var(--border-strong)}.border-\(--text-primary\){border-color:var(--text-primary)}.border-\[var\(--accent-orange\)\]\/40{border-color:var(--accent-orange)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--accent-orange\)\]\/40{border-color:color-mix(in oklab, var(--accent-orange) 40%, transparent)}}.border-\[var\(--accent-red\)\]\/40{border-color:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--accent-red\)\]\/40{border-color:color-mix(in oklab, var(--accent-red) 40%, transparent)}}.border-\[var\(--border-default\)\]{border-color:var(--border-default)}.border-border{border-color:var(--border)}.border-current{border-color:currentColor}.border-input{border-color:var(--input)}.border-muted-foreground\/30{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\/30{border-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-sidebar{border-color:var(--sidebar)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\(--accent-blue\){background-color:var(--accent-blue)}.bg-\(--accent-blue-bg\){background-color:var(--accent-blue-bg)}.bg-\(--accent-cyan\){background-color:var(--accent-cyan)}.bg-\(--accent-cyan-bg\){background-color:var(--accent-cyan-bg)}.bg-\(--accent-green\){background-color:var(--accent-green)}.bg-\(--accent-green-bg\){background-color:var(--accent-green-bg)}.bg-\(--accent-orange\){background-color:var(--accent-orange)}.bg-\(--accent-orange-bg\){background-color:var(--accent-orange-bg)}.bg-\(--accent-purple-bg\){background-color:var(--accent-purple-bg)}.bg-\(--accent-red\){background-color:var(--accent-red)}.bg-\(--accent-red-bg\){background-color:var(--accent-red-bg)}.bg-\(--bg-active\){background-color:var(--bg-active)}.bg-\(--bg-hover\){background-color:var(--bg-hover)}.bg-\(--bg-input\){background-color:var(--bg-input)}.bg-\(--bg-primary\){background-color:var(--bg-primary)}.bg-\(--bg-secondary\){background-color:var(--bg-secondary)}.bg-\(--bg-tertiary\){background-color:var(--bg-tertiary)}.bg-\(--border-default\){background-color:var(--border-default)}.bg-\(--muted\){background-color:var(--muted)}.bg-\(--text-muted\),.bg-\(--text-muted\)\/30{background-color:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){.bg-\(--text-muted\)\/30{background-color:color-mix(in oklab, var(--text-muted) 30%, transparent)}}.bg-\(--text-primary\){background-color:var(--text-primary)}.bg-\[var\(--accent-blue\)\]{background-color:var(--accent-blue)}.bg-\[var\(--accent-green\)\]{background-color:var(--accent-green)}.bg-\[var\(--accent-orange\)\]{background-color:var(--accent-orange)}.bg-\[var\(--accent-red\)\]{background-color:var(--accent-red)}.bg-\[var\(--bg-primary\)\]{background-color:var(--bg-primary)}.bg-\[var\(--bg-tertiary\)\]{background-color:var(--bg-tertiary)}.bg-\[var\(--muted\)\]{background-color:var(--muted)}.bg-\[var\(--sdm-tbg\)\]{background-color:var(--sdm-tbg)}.bg-background,.bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/50{background-color:color-mix(in oklab, var(--background) 50%, transparent)}}.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--background) 80%, transparent)}}.bg-background\/90{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/90{background-color:color-mix(in oklab, var(--background) 90%, transparent)}}.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/95{background-color:color-mix(in oklab, var(--background) 95%, transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--border)}.bg-current{background-color:currentColor}.bg-destructive{background-color:var(--destructive)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-muted,.bg-muted\/80{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/80{background-color:color-mix(in oklab, var(--muted) 80%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar,.bg-sidebar\/80{background-color:var(--sidebar)}@supports (color:color-mix(in lab, red, red)){.bg-sidebar\/80{background-color:color-mix(in oklab, var(--sidebar) 80%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.fill-\(--bg-secondary\){fill:var(--bg-secondary)}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.p-\[12px_14px_10px\]{padding:12px 14px 10px}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[5px\]{padding-inline:5px}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-\[44px_0_28px\]{padding-block:44px 0 28px}.py-px{padding-block:1px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.92em\]{font-size:.92em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[18px\]{font-size:18px}.text-\[clamp\(24px\,2\.4vw\,36px\)\]{font-size:clamp(24px,2.4vw,36px)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2px\]{--tw-tracking:.2px;letter-spacing:.2px}.tracking-\[0\.3px\]{--tw-tracking:.3px;letter-spacing:.3px}.tracking-\[0\.4px\]{--tw-tracking:.4px;letter-spacing:.4px}.tracking-\[0\.45px\]{--tw-tracking:.45px;letter-spacing:.45px}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.wrap-anywhere{overflow-wrap:anywhere}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\(--accent-blue\){color:var(--accent-blue)}.text-\(--accent-cyan\){color:var(--accent-cyan)}.text-\(--accent-green\){color:var(--accent-green)}.text-\(--accent-orange\){color:var(--accent-orange)}.text-\(--accent-purple\){color:var(--accent-purple)}.text-\(--accent-red\){color:var(--accent-red)}.text-\(--bg-primary\){color:var(--bg-primary)}.text-\(--muted-foreground\){color:var(--muted-foreground)}.text-\(--text-muted\){color:var(--text-muted)}.text-\(--text-primary\){color:var(--text-primary)}.text-\(--text-secondary\){color:var(--text-secondary)}.text-\[var\(--sdm-c\,inherit\)\]{color:var(--sdm-c,inherit)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-accent-purple{color:var(--accent-purple)}.text-amber-600{color:var(--color-amber-600)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.text-green-600{color:var(--color-green-600)}.text-inherit{color:inherit}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-400{color:var(--color-red-400)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[counter-increment\:line_0\]{counter-increment:line 0}.\[counter-reset\:line\]{counter-reset:line}@media (hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[orientation\=horizontal\]\/tabs\:h-9:is(:where(.group\/tabs)[data-orientation=horizontal] *){height:calc(var(--spacing) * 9)}.group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation=vertical] *){height:fit-content}.group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation=vertical] *){justify-content:flex-start}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.placeholder\:text-\(--text-muted\)::placeholder{color:var(--text-muted)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.before\:mr-4:before{content:var(--tw-content);margin-right:calc(var(--spacing) * 4)}.before\:inline-block:before{content:var(--tw-content);display:inline-block}.before\:w-6:before{content:var(--tw-content);width:calc(var(--spacing) * 6)}.before\:text-right:before{content:var(--tw-content);text-align:right}.before\:font-mono:before{content:var(--tw-content);font-family:var(--font-mono)}.before\:text-\[13px\]:before{content:var(--tw-content);font-size:13px}.before\:text-muted-foreground\/50:before{content:var(--tw-content);color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.before\:text-muted-foreground\/50:before{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.before\:content-\[counter\(line\)\]:before{--tw-content:counter(line);content:var(--tw-content)}.before\:select-none:before{content:var(--tw-content);-webkit-user-select:none;user-select:none}.before\:\[counter-increment\:line\]:before{content:var(--tw-content);counter-increment:line}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}@media (hover:hover){.hover\:bg-\(--accent-red-bg\):hover{background-color:var(--accent-red-bg)}.hover\:bg-\(--bg-active\):hover{background-color:var(--bg-active)}.hover\:bg-\(--bg-hover\):hover,.hover\:bg-\[var\(--bg-hover\)\]:hover{background-color:var(--bg-hover)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-background:hover{background-color:var(--background)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/40:hover{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:text-\(--accent-red\):hover{color:var(--accent-red)}.hover\:text-\(--text-primary\):hover{color:var(--text-primary)}.hover\:text-\(--text-secondary\):hover{color:var(--text-secondary)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:opacity-100:focus{opacity:1}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-\(--text-secondary\):focus-visible{border-color:var(--text-secondary)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2:has(>svg){padding-inline:calc(var(--spacing) * 2)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-\(--text-muted\)[data-placeholder]{color:var(--text-muted)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\[backdrop-filter\]\:bg-background\/70{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.supports-\[backdrop-filter\]\:bg-background\/70{background-color:color-mix(in oklab, var(--background) 70%, transparent)}}.supports-\[backdrop-filter\]\:bg-sidebar\/70{background-color:var(--sidebar)}@supports (color:color-mix(in lab, red, red)){.supports-\[backdrop-filter\]\:bg-sidebar\/70{background-color:color-mix(in oklab, var(--sidebar) 70%, transparent)}}.supports-\[backdrop-filter\]\:backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.supports-\[backdrop-filter\]\:backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@media not all and (width>=80rem){.max-xl\:hidden{display:none}.max-xl\:grid-cols-\[220px_minmax\(0\,1fr\)\]{grid-template-columns:220px minmax(0,1fr)}}@media not all and (width>=64rem){.max-lg\:hidden{display:none}.max-lg\:inline-flex{display:inline-flex}.max-lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (width>=40rem){.sm\:max-w-5xl{max-width:var(--container-5xl)}.sm\:max-w-\[380px\]{max-width:380px}.sm\:max-w-\[640px\]{max-width:640px}.sm\:max-w-\[680px\]{max-width:680px}.sm\:max-w-\[720px\]{max-width:720px}.sm\:max-w-\[760px\]{max-width:760px}.sm\:max-w-\[800px\]{max-width:800px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:bg-\[var\(--bg-secondary\)\][data-theme=dark]{background-color:var(--bg-secondary)}.dark\:bg-\[var\(--shiki-dark-bg\,var\(--sdm-tbg\)\)\][data-theme=dark]{background-color:var(--shiki-dark-bg,var(--sdm-tbg))}.dark\:bg-destructive\/60[data-theme=dark]{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60[data-theme=dark]{background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30[data-theme=dark]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30[data-theme=dark]{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:text-\[var\(--shiki-dark\,var\(--sdm-c\,inherit\)\)\][data-theme=dark]{color:var(--shiki-dark,var(--sdm-c,inherit))}.dark\:text-amber-400[data-theme=dark]{color:var(--color-amber-400)}.dark\:text-green-400[data-theme=dark]{color:var(--color-green-400)}.dark\:text-muted-foreground[data-theme=dark]{color:var(--muted-foreground)}.dark\:text-red-400[data-theme=dark]{color:var(--color-red-400)}@media (hover:hover){.dark\:hover\:text-foreground[data-theme=dark]:hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40[data-theme=dark]:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40[data-theme=dark]:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[data-theme=dark][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40[data-theme=dark][aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=active\]\:border-input[data-theme=dark][data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30[data-theme=dark][data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30[data-theme=dark][data-state=active]{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:data-\[state\=active\]\:text-foreground[data-theme=dark][data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent[data-theme=dark]:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-theme=dark]:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:h-auto svg{height:auto}.\[\&_svg\]\:w-auto svg{width:auto}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-\(--text-muted\) svg:not([class*=text-]){color:var(--text-muted)}.\[\&_thead\]\:sticky thead{position:sticky}.\[\&_thead\]\:top-0 thead{top:calc(var(--spacing) * 0)}.\[\&_thead\]\:z-10 thead{z-index:10}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:calc(var(--spacing) * 0)}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:calc(var(--spacing) * 0)}.\[\&\>\*\:last-child\]\:after\:inline>:last-child:after{content:var(--tw-content);display:inline}.\[\&\>\*\:last-child\]\:after\:align-baseline>:last-child:after{content:var(--tw-content);vertical-align:baseline}.\[\&\>\*\:last-child\]\:after\:content-\[var\(--streamdown-caret\)\]>:last-child:after{--tw-content:var(--streamdown-caret);content:var(--tw-content)}.\[\&\>p\]\:inline>p{display:inline}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}li .\[li_\&\]\:pl-6{padding-left:calc(var(--spacing) * 6)}}@keyframes sd-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes sd-blurIn{0%{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur()}}@keyframes sd-slideUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}[data-sd-animate]{animation:var(--sd-animation,sd-fadeIn) var(--sd-duration,.15s) var(--sd-easing,ease) var(--sd-delay,0s) both}@font-face{font-family:Geist;src:url(/assets/Geist-Variable-CrgPqtmy.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Geist;src:url(/assets/Geist-Italic_wght_-vKc54d3Z.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Geist Mono;src:url(/assets/GeistMono-Variable-BNLlm6Cd.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#171717;--primary-foreground:#fafafa;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:#171717;--destructive:#ef4444;--destructive-foreground:#fafafa;--border:#e5e5e5;--input:#e5e5e5;--ring:#a3a3a3;--sidebar:#fafafa;--sidebar-foreground:#0a0a0a;--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#f5f5f5;--bg-hover:#e5e5e5;--bg-active:#e5e5e5;--bg-input:#fff;--text-primary:#0a0a0a;--text-secondary:#737373;--text-muted:#a3a3a3;--border-default:#e5e5e5;--border-strong:#d4d4d4;--accent-blue:#2563eb;--accent-blue-bg:#eff6ff;--accent-green:#059669;--accent-green-bg:#ecfdf5;--accent-red:#dc2626;--accent-red-bg:#fef2f2;--accent-orange:#d97706;--accent-orange-bg:#fffbeb;--accent-purple:#7c3aed;--accent-purple-bg:#f5f3ff;--accent-cyan:#0891b2;--accent-cyan-bg:#ecfeff;--accent-hover:#1d4ed8;--md-code-bg:#f5f5f5;--md-code-border:#e5e5e5;--md-inline-code-bg:#f5f5f5;--md-inline-code-text:#171717;--md-table-header-bg:#f5f5f5;--md-table-row-alt-bg:#fafafa;--md-link:#2563eb;--shadow-sm:#0000000d 0 1px 2px;--shadow-default:#0000000d 0 0 0 1px, #00000014 0 8px 24px;--shadow-lg:#00000014 0 0 0 1px, #00000029 0 16px 46px;--radius-sm:.25rem;--radius:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--font-sans:"Geist", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--transition:.14s ease}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0a0a0a;--foreground:#fafafa;--card:#0a0a0a;--card-foreground:#fafafa;--popover:#0a0a0a;--popover-foreground:#fafafa;--primary:#fafafa;--primary-foreground:#0a0a0a;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a3a3a3;--accent:#262626;--accent-foreground:#fafafa;--destructive:#ef4444;--destructive-foreground:#fafafa;--border:#262626;--input:#262626;--ring:#737373;--sidebar:#0a0a0a;--sidebar-foreground:#fafafa;--bg-primary:#0a0a0a;--bg-secondary:#141414;--bg-tertiary:#262626;--bg-hover:#2e2e2e;--bg-active:#333;--bg-input:#141414;--text-primary:#fafafa;--text-secondary:#a3a3a3;--text-muted:#737373;--border-default:#262626;--border-strong:#404040;--accent-blue:#60a5fa;--accent-blue-bg:#172554;--accent-green:#34d399;--accent-green-bg:#022c22;--accent-red:#f87171;--accent-red-bg:#450a0a;--accent-orange:#fbbf24;--accent-orange-bg:#451a03;--accent-purple:#a78bfa;--accent-purple-bg:#2e1065;--accent-cyan:#22d3ee;--accent-cyan-bg:#083344;--accent-hover:#93c5fd;--md-code-bg:#141414;--md-code-border:#262626;--md-inline-code-bg:#262626;--md-inline-code-text:#fafafa;--md-table-header-bg:#141414;--md-table-row-alt-bg:#111;--md-link:#60a5fa;--shadow-sm:#0000004d 0 1px 2px;--shadow-default:#0006 0 0 0 1px, #0006 0 10px 28px;--shadow-lg:#00000080 0 0 0 1px, #0009 0 18px 60px}:root[data-palette=catppuccin]{--background:#eff1f5;--foreground:#4c4f69;--card:#eff1f5;--card-foreground:#4c4f69;--popover:#eff1f5;--popover-foreground:#4c4f69;--primary:#8839ef;--primary-foreground:#eff1f5;--secondary:#e6e9ef;--secondary-foreground:#4c4f69;--muted:#e6e9ef;--muted-foreground:#6c6f85;--accent:#ccd0da;--accent-foreground:#4c4f69;--border:#ccd0da;--input:#ccd0da;--ring:#8839ef;--sidebar:#e6e9ef;--sidebar-foreground:#4c4f69;--bg-primary:#eff1f5;--bg-secondary:#e6e9ef;--bg-tertiary:#dce0e8;--bg-hover:#ccd0da;--bg-active:#bcc0cc;--bg-input:#eff1f5;--text-primary:#4c4f69;--text-secondary:#6c6f85;--text-muted:#8c8fa1;--border-default:#ccd0da;--border-strong:#bcc0cc;--accent-blue:#1e66f5;--accent-blue-bg:#dbe8ff;--accent-green:#40a02b;--accent-green-bg:#e4f4df;--accent-red:#d20f39;--accent-red-bg:#fde2e7;--accent-orange:#fe640b;--accent-orange-bg:#ffe8d6;--accent-purple:#8839ef;--accent-purple-bg:#eadcff;--accent-cyan:#04a5e5;--accent-cyan-bg:#ddf3fb;--accent-hover:#7287fd;--md-code-bg:#e6e9ef;--md-code-border:#ccd0da;--md-inline-code-bg:#e6e9ef;--md-inline-code-text:#8839ef;--md-table-header-bg:#e6e9ef;--md-table-row-alt-bg:#f6f7fb;--md-link:#1e66f5}:root[data-theme=dark][data-palette=catppuccin]{--background:#1e1e2e;--foreground:#cdd6f4;--card:#1e1e2e;--card-foreground:#cdd6f4;--popover:#1e1e2e;--popover-foreground:#cdd6f4;--primary:#cba6f7;--primary-foreground:#11111b;--secondary:#313244;--secondary-foreground:#cdd6f4;--muted:#313244;--muted-foreground:#a6adc8;--accent:#45475a;--accent-foreground:#cdd6f4;--border:#313244;--input:#313244;--ring:#cba6f7;--sidebar:#181825;--sidebar-foreground:#cdd6f4;--bg-primary:#1e1e2e;--bg-secondary:#181825;--bg-tertiary:#313244;--bg-hover:#45475a;--bg-active:#585b70;--bg-input:#11111b;--text-primary:#cdd6f4;--text-secondary:#bac2de;--text-muted:#7f849c;--border-default:#313244;--border-strong:#585b70;--accent-blue:#89b4fa;--accent-blue-bg:#1e2a48;--accent-green:#a6e3a1;--accent-green-bg:#1f3827;--accent-red:#f38ba8;--accent-red-bg:#4a1f2b;--accent-orange:#fab387;--accent-orange-bg:#4a2f20;--accent-purple:#cba6f7;--accent-purple-bg:#3b2d4f;--accent-cyan:#89dceb;--accent-cyan-bg:#1d3c45;--accent-hover:#b4befe;--md-code-bg:#11111b;--md-code-border:#313244;--md-inline-code-bg:#313244;--md-inline-code-text:#f5c2e7;--md-table-header-bg:#181825;--md-table-row-alt-bg:#181825;--md-link:#89b4fa}:root[data-palette=tokyonight]{--background:#e6e7ed;--foreground:#343b58;--card:#e6e7ed;--card-foreground:#343b58;--popover:#e6e7ed;--popover-foreground:#343b58;--primary:#2959aa;--primary-foreground:#fff;--secondary:#d9dce7;--secondary-foreground:#343b58;--muted:#d9dce7;--muted-foreground:#6c6e75;--accent:#c5c8da;--accent-foreground:#343b58;--border:#c5c8da;--input:#c5c8da;--ring:#2959aa;--sidebar:#d9dce7;--sidebar-foreground:#343b58;--bg-primary:#e6e7ed;--bg-secondary:#d9dce7;--bg-tertiary:#c5c8da;--bg-hover:#bfc6d9;--bg-active:#bfc6d9;--bg-input:#fff;--text-primary:#343b58;--text-secondary:#40434f;--text-muted:#6c6e75;--border-default:#c5c8da;--border-strong:#a9b1d6;--accent-blue:#2959aa;--accent-blue-bg:#dce8ff;--accent-green:#587539;--accent-green-bg:#e5efd9;--accent-red:#8c4351;--accent-red-bg:#f2dce0;--accent-orange:#965027;--accent-orange-bg:#f2e3d8;--accent-purple:#5a3e8e;--accent-purple-bg:#e6ddf8;--accent-cyan:#0f4b6e;--accent-cyan-bg:#d9edf4;--accent-hover:#2959aa;--md-code-bg:#d9dce7;--md-code-border:#c5c8da;--md-inline-code-bg:#d9dce7;--md-inline-code-text:#0f4b6e;--md-table-header-bg:#d9dce7;--md-table-row-alt-bg:#eef0f6;--md-link:#2959aa}:root[data-theme=dark][data-palette=tokyonight]{--background:#1a1b26;--foreground:#c0caf5;--card:#1a1b26;--card-foreground:#c0caf5;--popover:#1a1b26;--popover-foreground:#c0caf5;--primary:#7aa2f7;--primary-foreground:#15161e;--secondary:#24283b;--secondary-foreground:#c0caf5;--muted:#24283b;--muted-foreground:#9aa5ce;--accent:#292e42;--accent-foreground:#c0caf5;--border:#292e42;--input:#292e42;--ring:#7aa2f7;--sidebar:#16161e;--sidebar-foreground:#c0caf5;--bg-primary:#1a1b26;--bg-secondary:#16161e;--bg-tertiary:#24283b;--bg-hover:#292e42;--bg-active:#3b4261;--bg-input:#15161e;--text-primary:#c0caf5;--text-secondary:#a9b1d6;--text-muted:#565f89;--border-default:#292e42;--border-strong:#3b4261;--accent-blue:#7aa2f7;--accent-blue-bg:#1f2a44;--accent-green:#9ece6a;--accent-green-bg:#26351f;--accent-red:#f7768e;--accent-red-bg:#44202a;--accent-orange:#ff9e64;--accent-orange-bg:#462b1f;--accent-purple:#bb9af7;--accent-purple-bg:#352a4a;--accent-cyan:#7dcfff;--accent-cyan-bg:#193647;--accent-hover:#2ac3de;--md-code-bg:#15161e;--md-code-border:#292e42;--md-inline-code-bg:#24283b;--md-inline-code-text:#7dcfff;--md-table-header-bg:#16161e;--md-table-row-alt-bg:#16161e;--md-link:#73daca}:root[data-palette=one]{--background:#fafafa;--foreground:#383a42;--card:#fafafa;--card-foreground:#383a42;--popover:#fafafa;--popover-foreground:#383a42;--primary:#4078f2;--primary-foreground:#fff;--secondary:#f0f0f0;--secondary-foreground:#383a42;--muted:#f0f0f0;--muted-foreground:#696c77;--accent:#e5e5e6;--accent-foreground:#383a42;--border:#d7d7d8;--input:#d7d7d8;--ring:#4078f2;--sidebar:#f0f0f0;--sidebar-foreground:#383a42;--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-tertiary:#e5e5e6;--bg-hover:#d7d7d8;--bg-active:#c9c9ca;--bg-input:#fff;--text-primary:#383a42;--text-secondary:#696c77;--text-muted:#9ca0a4;--border-default:#d7d7d8;--border-strong:#c9c9ca;--accent-blue:#4078f2;--accent-blue-bg:#e2ebff;--accent-green:#50a14f;--accent-green-bg:#e2f0df;--accent-red:#e45649;--accent-red-bg:#f9e1de;--accent-orange:#986801;--accent-orange-bg:#f3ead7;--accent-purple:#a626a4;--accent-purple-bg:#f2def4;--accent-cyan:#0184bc;--accent-cyan-bg:#dff1f8;--accent-hover:#4078f2;--md-code-bg:#f0f0f0;--md-code-border:#d7d7d8;--md-inline-code-bg:#f0f0f0;--md-inline-code-text:#a626a4;--md-table-header-bg:#f0f0f0;--md-table-row-alt-bg:#f7f7f7;--md-link:#4078f2}:root[data-theme=dark][data-palette=one]{--background:#282c34;--foreground:#abb2bf;--card:#282c34;--card-foreground:#abb2bf;--popover:#282c34;--popover-foreground:#abb2bf;--primary:#61afef;--primary-foreground:#1e222a;--secondary:#21252b;--secondary-foreground:#abb2bf;--muted:#21252b;--muted-foreground:#828997;--accent:#2c313c;--accent-foreground:#abb2bf;--border:#3e4451;--input:#3e4451;--ring:#61afef;--sidebar:#21252b;--sidebar-foreground:#abb2bf;--bg-primary:#282c34;--bg-secondary:#21252b;--bg-tertiary:#2c313c;--bg-hover:#3e4451;--bg-active:#1d1e21;--bg-input:#1e222a;--text-primary:#abb2bf;--text-secondary:#9da5b4;--text-muted:#5c6370;--border-default:#3e4451;--border-strong:#4b5263;--accent-blue:#61afef;--accent-blue-bg:#1d3449;--accent-green:#98c379;--accent-green-bg:#273a27;--accent-red:#e06c75;--accent-red-bg:#44252c;--accent-orange:#d19a66;--accent-orange-bg:#3f3022;--accent-purple:#c678dd;--accent-purple-bg:#382840;--accent-cyan:#56b6c2;--accent-cyan-bg:#21383d;--accent-hover:#61afef;--md-code-bg:#1e222a;--md-code-border:#3e4451;--md-inline-code-bg:#2c313c;--md-inline-code-text:#c678dd;--md-table-header-bg:#21252b;--md-table-row-alt-bg:#21252b;--md-link:#61afef}:root[data-palette=github]{--background:#fff;--foreground:#24292f;--card:#fff;--card-foreground:#24292f;--popover:#fff;--popover-foreground:#24292f;--primary:#0969da;--primary-foreground:#fff;--secondary:#f6f8fa;--secondary-foreground:#24292f;--muted:#f6f8fa;--muted-foreground:#57606a;--accent:#f6f8fa;--accent-foreground:#24292f;--border:#d0d7de;--input:#d0d7de;--ring:#0969da;--sidebar:#f6f8fa;--sidebar-foreground:#24292f;--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#eaeef2;--bg-hover:#eaeef2;--bg-active:#d8dee4;--bg-input:#fff;--text-primary:#24292f;--text-secondary:#57606a;--text-muted:#6e7781;--border-default:#d0d7de;--border-strong:#afb8c1;--accent-blue:#0969da;--accent-blue-bg:#ddf4ff;--accent-green:#1a7f37;--accent-green-bg:#dafbe1;--accent-red:#cf222e;--accent-red-bg:#ffebe9;--accent-orange:#9a6700;--accent-orange-bg:#fff8c5;--accent-purple:#8250df;--accent-purple-bg:#fbefff;--accent-cyan:#1b7c83;--accent-cyan-bg:#ddf4ff;--accent-hover:#0969da;--md-code-bg:#f6f8fa;--md-code-border:#d0d7de;--md-inline-code-bg:#eff1f3;--md-inline-code-text:#cf222e;--md-table-header-bg:#f6f8fa;--md-table-row-alt-bg:#f6f8fa;--md-link:#0969da}:root[data-theme=dark][data-palette=github]{--background:#0d1117;--foreground:#e6edf3;--card:#0d1117;--card-foreground:#e6edf3;--popover:#0d1117;--popover-foreground:#e6edf3;--primary:#2f81f7;--primary-foreground:#0d1117;--secondary:#161b22;--secondary-foreground:#e6edf3;--muted:#161b22;--muted-foreground:#8b949e;--accent:#21262d;--accent-foreground:#e6edf3;--border:#30363d;--input:#30363d;--ring:#2f81f7;--sidebar:#010409;--sidebar-foreground:#e6edf3;--bg-primary:#0d1117;--bg-secondary:#010409;--bg-tertiary:#161b22;--bg-hover:#21262d;--bg-active:#30363d;--bg-input:#010409;--text-primary:#e6edf3;--text-secondary:#c9d1d9;--text-muted:#7d8590;--border-default:#30363d;--border-strong:#484f58;--accent-blue:#2f81f7;--accent-blue-bg:#0d274d;--accent-green:#3fb950;--accent-green-bg:#0f2a1a;--accent-red:#f85149;--accent-red-bg:#3d1518;--accent-orange:#d29922;--accent-orange-bg:#33260b;--accent-purple:#a371f7;--accent-purple-bg:#271a3b;--accent-cyan:#76e3ea;--accent-cyan-bg:#14333a;--accent-hover:#58a6ff;--md-code-bg:#161b22;--md-code-border:#30363d;--md-inline-code-bg:#21262d;--md-inline-code-text:#ff7b72;--md-table-header-bg:#161b22;--md-table-row-alt-bg:#161b22;--md-link:#58a6ff}:root[data-palette=vscode]{--background:#fff;--foreground:#1f1f1f;--card:#fff;--card-foreground:#1f1f1f;--popover:#fff;--popover-foreground:#1f1f1f;--primary:#007acc;--primary-foreground:#fff;--secondary:#f3f3f3;--secondary-foreground:#1f1f1f;--muted:#f3f3f3;--muted-foreground:#616161;--accent:#e8e8e8;--accent-foreground:#1f1f1f;--border:#d4d4d4;--input:#d4d4d4;--ring:#007acc;--sidebar:#f3f3f3;--sidebar-foreground:#1f1f1f;--bg-primary:#fff;--bg-secondary:#f3f3f3;--bg-tertiary:#e8e8e8;--bg-hover:#e8e8e8;--bg-active:#d4d4d4;--bg-input:#fff;--text-primary:#1f1f1f;--text-secondary:#616161;--text-muted:#8c8c8c;--border-default:#d4d4d4;--border-strong:#c8c8c8;--accent-blue:#007acc;--accent-blue-bg:#e5f3ff;--accent-green:green;--accent-green-bg:#e7f5e7;--accent-red:#a31515;--accent-red-bg:#fde7e7;--accent-orange:#af5f00;--accent-orange-bg:#f5eadf;--accent-purple:#795e26;--accent-purple-bg:#f1e8d7;--accent-cyan:#267f99;--accent-cyan-bg:#e0f0f5;--accent-hover:#006ab1;--md-code-bg:#f3f3f3;--md-code-border:#d4d4d4;--md-inline-code-bg:#f3f3f3;--md-inline-code-text:#a31515;--md-table-header-bg:#f3f3f3;--md-table-row-alt-bg:#fafafa;--md-link:#006ab1}:root[data-theme=dark][data-palette=vscode]{--background:#1e1e1e;--foreground:#d4d4d4;--card:#1e1e1e;--card-foreground:#d4d4d4;--popover:#1e1e1e;--popover-foreground:#d4d4d4;--primary:#007acc;--primary-foreground:#fff;--secondary:#252526;--secondary-foreground:#d4d4d4;--muted:#252526;--muted-foreground:#858585;--accent:#2a2d2e;--accent-foreground:#d4d4d4;--border:#3c3c3c;--input:#3c3c3c;--ring:#007acc;--sidebar:#252526;--sidebar-foreground:#d4d4d4;--bg-primary:#1e1e1e;--bg-secondary:#252526;--bg-tertiary:#2d2d30;--bg-hover:#2a2d2e;--bg-active:#37373d;--bg-input:#1e1e1e;--text-primary:#d4d4d4;--text-secondary:#ccc;--text-muted:#858585;--border-default:#3c3c3c;--border-strong:#464647;--accent-blue:#569cd6;--accent-blue-bg:#17304a;--accent-green:#6a9955;--accent-green-bg:#21351f;--accent-red:#f44747;--accent-red-bg:#3f1d1d;--accent-orange:#ce9178;--accent-orange-bg:#3a2a22;--accent-purple:#c586c0;--accent-purple-bg:#352633;--accent-cyan:#4ec9b0;--accent-cyan-bg:#1d3d38;--accent-hover:#007acc;--md-code-bg:#1e1e1e;--md-code-border:#3c3c3c;--md-inline-code-bg:#2d2d30;--md-inline-code-text:#ce9178;--md-table-header-bg:#252526;--md-table-row-alt-bg:#252526;--md-link:#3794ff}*{scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}@supports (color:color-mix(in lab, red, red)){*{scrollbar-color:color-mix(in srgb, var(--text-muted) 50%, transparent) transparent}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 50%, transparent)}}::-webkit-scrollbar-thumb{border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 70%, transparent)}}::-webkit-scrollbar-corner{background:0 0}.loading-dots{align-items:center;gap:4px;display:inline-flex}.loading-dots span{background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.2s ease-in-out infinite dot-bounce}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}@keyframes dot-bounce{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}#root,#root *{caret-color:#0000;cursor:default;-webkit-user-select:none;user-select:none}#root .msg-body,#root .msg-body *{-webkit-user-select:text;user-select:text}#root button,#root button *,#root [role=button],#root [role=button] *,#root .cursor-pointer,#root .cursor-pointer *,#root a,#root a *,#root select,#root summary,#root summary *{cursor:pointer}#root label:has(input){cursor:pointer}#root label:has(input) *{cursor:pointer}#root input,#root textarea,#root [contenteditable=true],#root [contenteditable=true] *{caret-color:auto;cursor:text;-webkit-user-select:text;user-select:text}#root .cursor-not-allowed,#root .cursor-not-allowed *{cursor:not-allowed}.streaming-cursor:after{content:"";background:var(--accent-blue);vertical-align:text-bottom;width:2px;height:16px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.msg-body [data-streamdown=table-wrapper],.msg-body [data-streamdown=code-block],.msg-body [data-streamdown=mermaid-block]{background:0 0!important;border:0!important;border-radius:0!important;overflow:visible!important}.msg-body [data-streamdown=table-wrapper]{flex-direction:column;margin:14px 0;padding:0;display:flex;position:relative}.msg-body [data-streamdown=table-wrapper]>div:first-child{display:none!important}.msg-body [data-streamdown=table-wrapper]>div:nth-child(2){border:1px solid var(--md-code-border)!important;border-radius:var(--radius-lg)!important;background:var(--bg-primary)!important;overflow:auto!important}.msg-body [data-streamdown=code-block-actions],.msg-body [data-streamdown=mermaid-block-actions]{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;justify-content:center;align-items:center;gap:2px;padding:1px;display:inline-flex;border-radius:var(--radius-sm)!important;background:0 0!important;border:0!important}.msg-body [data-streamdown=table-wrapper] button,.msg-body [data-streamdown=mermaid-block] button{cursor:pointer;border-radius:var(--radius-sm)!important;width:28px!important;min-width:28px!important;height:28px!important;color:var(--text-secondary)!important;white-space:nowrap!important;background:0 0!important;border:0!important;justify-content:center!important;align-items:center!important;gap:0!important;padding:0!important;font-size:0!important;line-height:1!important;display:inline-flex!important}.msg-body [data-streamdown=code-block] button{cursor:pointer;border-radius:var(--radius-sm)!important;width:24px!important;min-width:24px!important;height:24px!important;color:var(--text-secondary)!important;white-space:nowrap!important;background:0 0!important;border:0!important;justify-content:center!important;align-items:center!important;gap:0!important;padding:0!important;font-size:0!important;line-height:1!important;display:inline-flex!important}.msg-body [data-streamdown=table-wrapper] button svg,.msg-body [data-streamdown=mermaid-block] button svg{flex:none!important;width:16px!important;height:16px!important}.msg-body [data-streamdown=code-block] button svg{flex:none!important;width:14px!important;height:14px!important}.msg-body [data-streamdown=table-wrapper] button:hover,.msg-body [data-streamdown=mermaid-block] button:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}.msg-body [data-streamdown=code-block] button:hover{background:var(--text-muted)!important}@supports (color:color-mix(in lab, red, red)){.msg-body [data-streamdown=code-block] button:hover{background:color-mix(in srgb, var(--text-muted) 12%, transparent)!important}}.msg-body [data-streamdown=code-block] button:hover{color:var(--text-primary)!important}.msg-body table{border-collapse:separate;border-spacing:0;background:var(--bg-primary);width:100%;color:var(--text-primary)}.msg-body thead{background:var(--md-table-header-bg)}.msg-body th,.msg-body td{border-bottom:1px solid var(--md-code-border);border-right:1px solid var(--md-code-border);vertical-align:top;padding:8px 10px}.msg-body th:last-child,.msg-body td:last-child{border-right:0}.msg-body tbody tr:last-child th,.msg-body tbody tr:last-child td{border-bottom:0}.msg-body th{color:var(--text-primary);font-weight:600}.msg-body tbody tr:nth-child(2n){background:var(--md-table-row-alt-bg)}.msg-body a{color:var(--md-link);-webkit-text-decoration-color:var(--md-link);-webkit-text-decoration-color:var(--md-link);-webkit-text-decoration-color:var(--md-link);text-decoration-color:var(--md-link)}@supports (color:color-mix(in lab, red, red)){.msg-body a{-webkit-text-decoration-color:color-mix(in srgb, var(--md-link) 45%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--md-link) 45%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--md-link) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--md-link) 45%, transparent)}}.msg-body blockquote{border-left:3px solid var(--accent-purple);background:var(--md-table-row-alt-bg);color:var(--text-secondary);margin:12px 0;padding:8px 12px}.msg-body hr{border-color:var(--border-default)}.msg-body :not(pre)>code{border:1px solid var(--md-code-border);border-radius:var(--radius-sm);background:var(--md-inline-code-bg);color:var(--md-inline-code-text);font-family:var(--font-mono);padding:.12em .35em;font-size:.92em}.msg-body [data-streamdown=table-wrapper] [class*=absolute][class*=top-full],.msg-body [data-streamdown=mermaid-block] [class*=absolute][class*=top-full]{z-index:40!important;border:1px solid var(--border-default)!important;border-radius:var(--radius-lg)!important;background:var(--bg-primary)!important;min-width:148px!important;box-shadow:var(--shadow-default)!important;display:grid!important;top:calc(100% + 4px)!important;right:0!important;overflow:hidden!important}.msg-body [data-streamdown=table-wrapper] [class*=absolute][class*=top-full] button,.msg-body [data-streamdown=mermaid-block] [class*=absolute][class*=top-full] button{width:100%!important;min-width:100%!important;height:34px!important;color:var(--text-primary)!important;text-align:left!important;border-radius:0!important;justify-content:flex-start!important;padding:0 12px!important;font-size:13px!important}.msg-body [data-streamdown*=fullscreen],.msg-body [title*=fullscreen i],.msg-body [aria-label*=fullscreen i],.msg-body [data-streamdown=image-wrapper] button,.msg-body [data-streamdown=code-block-actions] [title*=download i],.msg-body [data-streamdown=code-block-actions] [aria-label*=download i],.msg-body [data-streamdown=mermaid-block-actions] [title*=download i],.msg-body [data-streamdown=mermaid-block-actions] [aria-label*=download i]{display:none!important}.msg-body [data-streamdown=code-block]{flex-direction:column;gap:0;display:flex;position:relative;border:1px solid var(--md-code-border)!important;border-radius:var(--radius-lg)!important;background:var(--md-code-bg)!important;margin:14px 0!important;padding:0!important;overflow:hidden!important}.msg-body [data-streamdown=code-block-header]{justify-content:space-between;align-items:center;background:var(--md-code-header-bg,var(--md-code-bg))!important;min-height:34px!important;padding:0 12px!important;display:flex!important}@supports (color:color-mix(in lab, red, red)){.msg-body [data-streamdown=code-block-header]{background:var(--md-code-header-bg,color-mix(in srgb, var(--md-code-bg) 85%, var(--text-muted) 8%))!important}}.msg-body [data-streamdown=code-block-header]{border-bottom:1px solid var(--md-code-border)!important;color:var(--text-muted)!important}.msg-body [data-streamdown=code-block-header] span{text-transform:lowercase;color:var(--text-muted);font-family:var(--font-mono)!important;font-size:12px!important}.msg-body [data-streamdown=code-block]>div:nth-child(2):has([data-streamdown=code-block-actions]){z-index:6!important;pointer-events:auto!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:0 0!important;border:0!important;height:auto!important;margin:0!important;position:absolute!important;top:3px!important;right:4px!important}.msg-body [data-streamdown=mermaid-block]>div:has([data-streamdown=mermaid-block-actions]){pointer-events:auto!important;position:absolute!important;top:3px!important;right:0!important}.msg-body [data-streamdown=code-block-body]{background:0 0!important;border:0!important;border-radius:0!important;margin-top:0!important;overflow-x:auto!important}.msg-body [data-streamdown=code-block-body] pre{color:var(--text-primary)!important;font-family:var(--font-mono)!important;background:0 0!important;margin:0!important;padding:12px 14px!important;font-size:14px!important;line-height:1.6!important}.msg-body [data-streamdown=code-block-body] code{white-space:pre!important;min-width:max-content!important;font-family:var(--font-mono)!important;display:block!important}.msg-body [data-streamdown=code-block-body] code>span{white-space:pre!important;display:block!important}.msg-body [data-streamdown=code-block-body] code>span:before{content:none!important;display:none!important}[data-theme=light] .msg-body [data-streamdown=code-block-body] span[style*=--shiki-light]{color:var(--shiki-light)!important}[data-theme=dark] .msg-body [data-streamdown=code-block-body] span[style*=--shiki-dark]{color:var(--shiki-dark)!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./index-cYRgZ3WI.js";export{e as Mermaid};
|