@deepseek-insight/dsi 0.6.5 → 0.6.9
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/.agents/skills/dsi-skill-shelf/shelf.mjs +151 -23
- package/build/client/_app/immutable/assets/0.CRU0GiZX.css +2 -0
- package/build/client/_app/immutable/chunks/C1F3aCiz.js +2 -0
- package/build/client/_app/immutable/chunks/CmnxnK6v.js +1 -0
- package/build/client/_app/immutable/chunks/{BsHqd_cH.js → UkmEG9Ws.js} +1 -1
- package/build/client/_app/immutable/chunks/jugX_o5s.js +1 -0
- package/build/client/_app/immutable/entry/{app.BXy5ddPi.js → app.e7xoYywe.js} +2 -2
- package/build/client/_app/immutable/entry/start.CnkkMjJa.js +1 -0
- package/build/client/_app/immutable/nodes/{1.i0ZfDYTy.js → 1.E4wiL8sP.js} +1 -1
- package/build/client/_app/immutable/nodes/{2.BSH_1C9p.js → 2.BBV-AGuB.js} +101 -96
- package/build/client/_app/version.json +1 -1
- package/build/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/{engine2.js-BRoFbCnL.js → engine2.js-BXbaI0o-.js} +6 -3
- package/build/server/chunks/chunks/{internal.js-4KmCgr7P.js → internal.js-BnJXHc1S.js} +2 -2
- package/build/server/chunks/chunks/{state.js-Clfg_Bi6.js → state.js-CAjHzrRZ.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/install/{_server.ts.js-DyzPF_Z5.js → _server.ts.js-JWyeMT3E.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/reload/{_server.ts.js-lJhCBpB2.js → _server.ts.js-CI_3uFaD.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/reload/cancel/{_server.ts.js-DT52g6_a.js → _server.ts.js-L_hU8UA2.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/snapshot/{_server.ts.js-Ct_PmlXs.js → _server.ts.js-C2Xvy2rv.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/uninstall/{_server.ts.js-D_NXkZEr.js → _server.ts.js-DQjGVZ0O.js} +2 -2
- package/build/server/chunks/entries/pages/{_error.svelte.js-VUpHsiKM.js → _error.svelte.js-BXeIuPj-.js} +3 -3
- package/build/server/chunks/entries/pages/{_page.svelte.js-Dwroj-cb.js → _page.svelte.js-CW-EdJ00.js} +41 -10
- package/build/server/chunks/{handler-BNCD1i7S.js → handler-DimUSmTW.js} +3 -3
- package/build/server/chunks/{index.js-Cla9NLvA.js → index.js-BQUp4Xgn.js} +2 -2
- package/build/server/chunks/{manifest.js-CmjuOLMb.js → manifest.js-BWy6zgHL.js} +10 -10
- package/build/server/chunks/nodes/{0.js-PpYt5eF3.js → 0.js-B0560RI0.js} +3 -3
- package/build/server/chunks/nodes/1.js-DJ3dsgdq.js +9 -0
- package/build/server/chunks/nodes/{2.js-BljKgZ5E.js → 2.js-CzgP_zp4.js} +3 -3
- package/package.json +2 -1
- package/{.agents/skills → skills}/dsh-jump-prepare-fix/SKILL.md +5 -0
- package/skills/dsi-rca/SKILL.md +103 -0
- package/skills/dsi-rca/references/mermaid-rules.md +46 -0
- package/skills/dsi-rca/references/rca-template.md +88 -0
- package/template/.dsi/prompts.sqlite +0 -0
- package/template/.dsi/resources/plugins-reff.md +3 -1
- package/template/.dsi/resources/skills-reff.md +1 -2
- package/template/dsh-app-dev-preset/README.md +69 -0
- package/template/dsh-app-dev-preset/cordis.patch.yml +219 -0
- package/template/dsh-app-dev-preset/package.json +7 -0
- package/template/dsh-research-preset/README.md +57 -0
- package/template/dsh-research-preset/cordis.patch.yml +118 -0
- package/template/dsh-research-preset/package.json +7 -0
- package/build/client/_app/immutable/assets/0.Cz4GQ8ND.css +0 -2
- package/build/client/_app/immutable/chunks/C_dVU9t5.js +0 -1
- package/build/client/_app/immutable/chunks/Cgyrc8XY.js +0 -2
- package/build/client/_app/immutable/chunks/DvyUTC20.js +0 -1
- package/build/client/_app/immutable/entry/start.DwMkMSKE.js +0 -1
- package/build/server/chunks/nodes/1.js-CsqcOUEA.js +0 -9
- /package/build/client/_app/immutable/nodes/{0.CKr_pvH3.js → 0.k1Ikzbp6.js} +0 -0
- /package/{.agents/skills → skills}/dsi-adr/SKILL.md +0 -0
- /package/{.agents/skills → skills}/dsi-bump-up/SKILL.md +0 -0
- /package/{.agents/skills → skills}/dsi-i18n-migrate/SKILL.md +0 -0
- /package/{.agents/skills → skills}/dsi-release/SKILL.md +0 -0
- /package/{.agents/skills → skills}/dsi-spcheck/SKILL.md +0 -0
- /package/{.agents/skills → skills}/dsi-spec/SKILL.md +0 -0
- /package/{.agents/skills → skills}/dsi-spec/references/mermaid-pattern.md +0 -0
- /package/{.agents/skills → skills}/dsi-spec/references/tasks-json-template.md +0 -0
- /package/{.agents/skills → skills}/dsi-sync/SKILL.md +0 -0
- /package/{.agents/skills → skills}/dsi-task/SKILL.md +0 -0
|
@@ -98,6 +98,7 @@ function walkLocal(root) {
|
|
|
98
98
|
const out = []
|
|
99
99
|
const walk = (dir) => {
|
|
100
100
|
for (const entry of readdirSync(dir)) {
|
|
101
|
+
if (entry.startsWith('.')) continue // host mirrors (.agents/) are not skills
|
|
101
102
|
const p = join(dir, entry)
|
|
102
103
|
if (statSync(p).isDirectory()) walk(p)
|
|
103
104
|
else if (entry === 'SKILL.md') out.push(dirname(p))
|
|
@@ -200,6 +201,11 @@ async function enumGitHub(src) {
|
|
|
200
201
|
if (node.type !== 'blob') continue
|
|
201
202
|
const parts = node.path.split('/')
|
|
202
203
|
if (!ENTRY_FILES.includes(parts[parts.length - 1])) continue
|
|
204
|
+
// Host-mirror exclusion (BUG 2026-10-05): a prefix-less repo is scanned
|
|
205
|
+
// whole, which swept up .agents/skills/ host mirrors (DSI ships its
|
|
206
|
+
// slash-menu mirrors there) as duplicate rows — 12 rows for 9 skills.
|
|
207
|
+
// Dot-prefixed top dirs are host tooling, never published skills.
|
|
208
|
+
if (!spec.prefix && parts[0].startsWith('.')) continue
|
|
203
209
|
if (spec.prefix && !node.path.startsWith(spec.prefix + '/')) continue
|
|
204
210
|
const dirParts = parts.slice(0, -1)
|
|
205
211
|
const id = dirParts[dirParts.length - 1]
|
|
@@ -297,17 +303,56 @@ async function harvestVersion(spec, src, fixtureRoot) {
|
|
|
297
303
|
} catch { return null }
|
|
298
304
|
}
|
|
299
305
|
|
|
300
|
-
async function buildSnapshot(sourcesRaw, enums, skillsDir, fixtureRoot) {
|
|
306
|
+
async function buildSnapshot(sourcesRaw, enums, skillsDir, fixtureRoot, hooks = {}) {
|
|
301
307
|
const signed = readSignatures(skillsDir)
|
|
302
308
|
const generatedAt = new Date().toISOString()
|
|
303
309
|
const warnings = []
|
|
304
310
|
const sources = []
|
|
311
|
+
// Overview fetches run five at a time (Reload Rememberer amendment).
|
|
312
|
+
const pool = async (items, fn) => {
|
|
313
|
+
let next = 0
|
|
314
|
+
const workers = Array.from({ length: Math.min(5, items.length) }, async () => {
|
|
315
|
+
while (next < items.length) { const it = items[next++]; await fn(it) }
|
|
316
|
+
})
|
|
317
|
+
await Promise.all(workers)
|
|
318
|
+
}
|
|
305
319
|
for (let si = 0; si < sourcesRaw.length; si++) { const src = sourcesRaw[si]
|
|
306
320
|
// Registry-gap warning (2026-09-21, revised): enumeration derives
|
|
307
321
|
// from the SKR URL itself, so an empty list is a REAL anomaly and
|
|
308
322
|
// the snapshot says why.
|
|
309
323
|
const spec = specFor(src)
|
|
310
324
|
const enumed = enums[si] || { skills: [], error: null }
|
|
325
|
+
// One id, one row, one folder: the shelf's model (id === folder name ===
|
|
326
|
+
// install/uninstall key) breaks when a source ships the same id at two
|
|
327
|
+
// paths — open-design lists blog-post/dashboard under design-templates/
|
|
328
|
+
// AND plugins/_official/examples/, so installing one row marked BOTH.
|
|
329
|
+
// Collapse duplicates to the first row and say so in the warnings.
|
|
330
|
+
// Prefix preference FIRST: the path under the source's declared prefix
|
|
331
|
+
// is the canonical twin, so it must win before seenIds keeps whichever
|
|
332
|
+
// stray enumeration order put first (extra/ sorts before skills/).
|
|
333
|
+
// Live GitHub paths carry the full prefix ('pstack/skills/x'), fixture
|
|
334
|
+
// walks are relative ('skills/x') - accept both shapes.
|
|
335
|
+
let ordered = enumed.skills
|
|
336
|
+
if (spec && spec.prefix) {
|
|
337
|
+
const roots = [spec.prefix, spec.prefix.split('/').slice(1).join('/')].filter((p) => p).map((p) => p + '/')
|
|
338
|
+
const canonical = enumed.skills.filter((sk) => roots.some((r) => sk.path.startsWith(r)))
|
|
339
|
+
if (canonical.length) ordered = [...canonical, ...enumed.skills.filter((sk) => !canonical.includes(sk))]
|
|
340
|
+
}
|
|
341
|
+
const seenIds = new Set()
|
|
342
|
+
const dupIds = new Set()
|
|
343
|
+
const deduped = []
|
|
344
|
+
for (const sk of ordered) {
|
|
345
|
+
if (seenIds.has(sk.id)) { dupIds.add(sk.id); continue }
|
|
346
|
+
seenIds.add(sk.id)
|
|
347
|
+
deduped.push(sk)
|
|
348
|
+
}
|
|
349
|
+
for (const sk of deduped) if (dupIds.has(sk.id)) sk.dup = true
|
|
350
|
+
enumed.skills = deduped
|
|
351
|
+
if (dupIds.size) {
|
|
352
|
+
// One short line per source — the panel prints details verbatim and
|
|
353
|
+
// upstream mirrors can drop hundreds of paths.
|
|
354
|
+
warnings.push({ code: 'source-duplicate-id', source: src.name, detail: 'source "' + src.name + '" has duplicate skill ids (kept first occurrence)' })
|
|
355
|
+
}
|
|
311
356
|
if (!spec) {
|
|
312
357
|
warnings.push({ code: 'source-no-repo', source: src.name, detail: 'source "' + src.name + '" has no github repo URL in the SKR - cannot enumerate' })
|
|
313
358
|
} else if (enumed.error) {
|
|
@@ -318,16 +363,22 @@ async function buildSnapshot(sourcesRaw, enums, skillsDir, fixtureRoot) {
|
|
|
318
363
|
warnings.push({ code: 'source-empty', source: src.name, detail: 'source "' + src.name + '" enumerated zero skills' + (spec.prefix ? ' under prefix "' + spec.prefix + '"' : '') + ' - upstream layout may have moved' })
|
|
319
364
|
}
|
|
320
365
|
const skills = []
|
|
366
|
+
// Overview: disk first, then the source repo's raw SKILL.md for
|
|
367
|
+
// uninstalled rows — prefetched five at a time (Reload Rememberer
|
|
368
|
+
// amendment; sequential fetching was the 341s harvest tail). Fixture
|
|
369
|
+
// mode never fetches (mock explosion guard stays).
|
|
370
|
+
const overviewCache = new Map()
|
|
371
|
+
if (spec && !fixtureRoot) {
|
|
372
|
+
const misses = enumed.skills.filter((sk) => !readOverview(skillsDir, sk.id, sk.entry))
|
|
373
|
+
await pool(misses, async (sk) => {
|
|
374
|
+
overviewCache.set(sk.id, await fetchOverview(spec.repo, sk.path, sk.entry))
|
|
375
|
+
})
|
|
376
|
+
}
|
|
321
377
|
for (let ki = 0; ki < enumed.skills.length; ki++) {
|
|
322
378
|
const sk = enumed.skills[ki]
|
|
323
379
|
const installed = existsSync(join(skillsDir, sk.id))
|
|
324
|
-
// Overview: disk first, then the source repo's raw SKILL.md for
|
|
325
|
-
// uninstalled rows (sequential — gentle on raw.githubusercontent).
|
|
326
380
|
let overview = readOverview(skillsDir, sk.id, sk.entry)
|
|
327
|
-
|
|
328
|
-
// per-skill raw.githubusercontent fetch here fired ~100 requests per
|
|
329
|
-
// refresh (mock explosion). Overview stays null; live mode unaffected.
|
|
330
|
-
if (!overview && spec && !fixtureRoot) overview = await fetchOverview(spec.repo, sk.path, sk.entry)
|
|
381
|
+
if (!overview && spec && !fixtureRoot) overview = overviewCache.get(sk.id) ?? null
|
|
331
382
|
skills.push({
|
|
332
383
|
n: (si + 1) + '.' + (ki + 1),
|
|
333
384
|
id: sk.id,
|
|
@@ -336,11 +387,14 @@ async function buildSnapshot(sourcesRaw, enums, skillsDir, fixtureRoot) {
|
|
|
336
387
|
installed,
|
|
337
388
|
signed: signed.has(sk.id),
|
|
338
389
|
installedFrom: signed.has(sk.id) ? signed.get(sk.id).source : null,
|
|
339
|
-
overview
|
|
390
|
+
overview,
|
|
391
|
+
...(sk.dup ? { dup: true } : {})
|
|
340
392
|
})
|
|
393
|
+
if (hooks.onSkillDone) hooks.onSkillDone()
|
|
341
394
|
}
|
|
342
395
|
const version = await harvestVersion(spec, src, fixtureRoot)
|
|
343
396
|
sources.push({ id: src.name, name: src.name, author: src.author, authorUrl: src.authorUrl || null, version, repo: skrRepo(src), skills })
|
|
397
|
+
if (hooks.onSourceDone) hooks.onSourceDone(src.name)
|
|
344
398
|
}
|
|
345
399
|
return { v: CACHE_VERSION, generatedAt, sources, warnings }
|
|
346
400
|
}
|
|
@@ -362,14 +416,73 @@ async function cmdRefresh(args) {
|
|
|
362
416
|
const sourcesRaw = parseSkr(readFileSync(skrPath, 'utf8'))
|
|
363
417
|
if (sourcesRaw.length === 0) fail(['SKR parsed to zero sources: ' + skrPath])
|
|
364
418
|
const fixtureRoot = args['fixture-root'] ? resolve(args['fixture-root']) : null
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
419
|
+
// --- progress sidecar (KB: the-progress-sidecar) ---
|
|
420
|
+
// The reload button polls GET /api/skills/progress which mirrors this
|
|
421
|
+
// file; absence = idle. Best-effort: a progress failure never fails
|
|
422
|
+
// the run. Env seam (SHELF_PROGRESS_PATH) matches the route's; the
|
|
423
|
+
// explicit flag wins. Only a --reload harvest writes it — plain
|
|
424
|
+
// refreshes (and the unit-test fixtures) stay sidecar-silent.
|
|
425
|
+
const progressPath = args['progress-path']
|
|
426
|
+
? resolve(args['progress-path'])
|
|
427
|
+
: process.env.SHELF_PROGRESS_PATH
|
|
428
|
+
? resolve(process.env.SHELF_PROGRESS_PATH)
|
|
429
|
+
: join(homedir(), '.dsi/resources/skr-progress.json')
|
|
430
|
+
const writeProgress = () => {
|
|
431
|
+
if (!args.reload && !args['progress-path'] && !process.env.SHELF_PROGRESS_PATH) return
|
|
432
|
+
try {
|
|
433
|
+
prog.updatedAt = new Date().toISOString()
|
|
434
|
+
mkdirSync(dirname(progressPath), { recursive: true })
|
|
435
|
+
writeFileSync(progressPath, JSON.stringify(prog))
|
|
436
|
+
} catch { /* best-effort */ }
|
|
437
|
+
}
|
|
438
|
+
const clearProgress = () => { try { rmSync(progressPath, { force: true }) } catch {} }
|
|
439
|
+
const prog = {
|
|
440
|
+
v: 1,
|
|
441
|
+
running: true,
|
|
442
|
+
done: 0,
|
|
443
|
+
total: sourcesRaw.length,
|
|
444
|
+
skillDone: 0,
|
|
445
|
+
skillTotal: 0,
|
|
446
|
+
sources: sourcesRaw.map((s) => ({ name: s.name, state: 'pending' })),
|
|
447
|
+
updatedAt: new Date().toISOString()
|
|
448
|
+
}
|
|
449
|
+
const hooks = {
|
|
450
|
+
onEnumStart(i) { prog.sources[i].state = 'working'; writeProgress() },
|
|
451
|
+
onEnumDone(i, count) { prog.skillTotal += count; writeProgress() },
|
|
452
|
+
onSkillDone() { prog.skillDone++; writeProgress() },
|
|
453
|
+
onSourceDone(name) {
|
|
454
|
+
const row = prog.sources.find((x) => x.name === name)
|
|
455
|
+
if (row) row.state = 'done'
|
|
456
|
+
prog.done++
|
|
457
|
+
writeProgress()
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
// Enumeration runs three sources at a time (Reload Rememberer: the
|
|
461
|
+
// full harvest was 341-378s sequential, 72-87s pooled).
|
|
462
|
+
const enums = new Array(sourcesRaw.length)
|
|
463
|
+
let enumNext = 0
|
|
464
|
+
const enumWorker = async () => {
|
|
465
|
+
while (enumNext < sourcesRaw.length) {
|
|
466
|
+
const i = enumNext++
|
|
467
|
+
hooks.onEnumStart(i)
|
|
468
|
+
const src = sourcesRaw[i]
|
|
469
|
+
const e = fixtureRoot ? { skills: enumLocal(src, fixtureRoot), error: null } : await enumGitHub(src)
|
|
470
|
+
enums[i] = e
|
|
471
|
+
hooks.onEnumDone(i, e.skills.length)
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
writeProgress()
|
|
475
|
+
try {
|
|
476
|
+
await Promise.all([enumWorker(), enumWorker(), enumWorker()])
|
|
477
|
+
const snapshot = await buildSnapshot(sourcesRaw, enums, skillsDir, fixtureRoot, hooks)
|
|
478
|
+
mkdirSync(dirname(cachePath), { recursive: true })
|
|
479
|
+
writeFileSync(cachePath, JSON.stringify(snapshot, null, 2))
|
|
480
|
+
return { snapshot, reused: false }
|
|
481
|
+
} finally {
|
|
482
|
+
// End of run — success, failure, or kill — absence means idle.
|
|
483
|
+
if (args['progress-keep']) writeProgress()
|
|
484
|
+
else clearProgress()
|
|
368
485
|
}
|
|
369
|
-
const snapshot = await buildSnapshot(sourcesRaw, enums, skillsDir, fixtureRoot)
|
|
370
|
-
mkdirSync(dirname(cachePath), { recursive: true })
|
|
371
|
-
writeFileSync(cachePath, JSON.stringify(snapshot, null, 2))
|
|
372
|
-
return { snapshot, reused: false }
|
|
373
486
|
}
|
|
374
487
|
|
|
375
488
|
// --- signed apply (ADR D4 + D5) ---
|
|
@@ -492,11 +605,21 @@ async function cmdApply(args) {
|
|
|
492
605
|
for (const id of targets) {
|
|
493
606
|
const dir = join(skillsDir, id)
|
|
494
607
|
const sigPath = join(dir, SIGNATURE_NAME)
|
|
495
|
-
|
|
496
|
-
|
|
608
|
+
// A vanished folder (receipt and all) is ALREADY the requested end
|
|
609
|
+
// state - report success so the cached snapshot's flags flip and the
|
|
610
|
+
// row reconciles instead of deadlocking as an uninstallable ghost
|
|
611
|
+
// (2026-10-05: open-design rows uninstallable per cache, absent on
|
|
612
|
+
// disk, silently refused forever). D5 protects folders the shelf
|
|
613
|
+
// does not own; a missing folder owns nothing to protect.
|
|
614
|
+
if (!existsSync(dir)) { results.push({ id, ok: true, uninstalled: true, alreadyGone: true }); continue }
|
|
615
|
+
// Operator override (2026-10-05): foreign (unsigned) skills are
|
|
616
|
+
// uninstallable via the shelf too — the badge informs, it no longer
|
|
617
|
+
// gates. A signed folder still proves its id before deletion.
|
|
497
618
|
try {
|
|
498
|
-
|
|
499
|
-
|
|
619
|
+
if (existsSync(sigPath)) {
|
|
620
|
+
const sig = JSON.parse(readFileSync(sigPath, 'utf8'))
|
|
621
|
+
if (sig.skillId !== id) { results.push({ id, ok: false, error: 'signature id mismatch' }); continue }
|
|
622
|
+
}
|
|
500
623
|
rmSync(dir, { recursive: true, force: true })
|
|
501
624
|
results.push({ id, ok: true, uninstalled: true })
|
|
502
625
|
} catch (e) {
|
|
@@ -513,10 +636,15 @@ async function cmdApply(args) {
|
|
|
513
636
|
for (const r of results) {
|
|
514
637
|
if (!r.ok) continue
|
|
515
638
|
for (const src of snapshot.sources) {
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
639
|
+
// A source can enumerate the SAME id twice (open-design ships
|
|
640
|
+
// dashboard at design-templates/ AND plugins/_official/examples/) -
|
|
641
|
+
// flipping only the first find() match leaves the twin as an
|
|
642
|
+
// uninstallable ghost (live-verified 2026-10-05). Flip every row.
|
|
643
|
+
for (const sk of src.skills) {
|
|
644
|
+
if (sk.id !== (r.id ?? '')) continue
|
|
645
|
+
if (action === 'install') { sk.installed = true; sk.signed = true; sk.installedFrom = src.id }
|
|
646
|
+
else { sk.installed = false; sk.signed = false; sk.installedFrom = null }
|
|
647
|
+
}
|
|
520
648
|
}
|
|
521
649
|
}
|
|
522
650
|
writeFileSync(cachePath, JSON.stringify(snapshot, null, 2))
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | 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-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-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--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-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-50:oklch(98.2% .018 155.826);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-neutral-400:oklch(70.8% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--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-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--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;--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);--color-surface:#f8f9fa;--color-surface-alt:#f1f3f5;--color-surface-hover:#e9ecef;--color-surface-border:#dee2e6;--color-surface-elevated:#fff;--color-text-primary:#212529;--color-text-secondary:#6c757d;--color-text-muted:#adb5bd;--color-accent-blue:#3b82f6;--color-accent-purple:#8b5cf6;--color-accent-purple-soft:#9f88fb;--color-accent-purple-ink:#2e1065;--color-accent-rose:#f43f5e;--color-accent-cyan:#06b6d4;--color-status-pass:#10b981;--color-status-fail:#ef4444}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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}:root{--si-run:#b91c1c}svg{color:var(--color-accent-purple)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.\!collapse{visibility:collapse!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.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:0}.-top-3{top:calc(var(--spacing) * -3)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-5{top:calc(var(--spacing) * 5)}.top-8{top:calc(var(--spacing) * 8)}.top-full{top:100%}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-5{right:calc(var(--spacing) * 5)}.right-full{right:100%}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.bottom-1\/2{bottom:50%}.bottom-\[50vh\]{bottom:50vh}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.z-1000,.z-\[1000\]{z-index:1000}.z-auto{z-index:auto}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.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-px{margin-top:1px}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.ml-1{margin-left:var(--spacing)}.ml-\[-2px\]{margin-left:-2px}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[50px\]{height:50px}.h-\[62px\]{height:62px}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[28rem\]{max-height:28rem}.max-h-\[30rem\]{max-height:30rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[500px\]{max-height:500px}.max-h-\[calc\(100vh-80px\)\]{max-height:calc(100vh - 80px)}.min-h-0{min-height:0}.min-h-72{min-height:calc(var(--spacing) * 72)}.min-h-80{min-height:calc(var(--spacing) * 80)}.min-h-\[2\.75rem\]{min-height:2.75rem}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-15{width:calc(var(--spacing) * 15)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-96{width:calc(var(--spacing) * 96)}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[62px\]{width:62px}.w-\[200px\]{width:200px}.w-full{width:100%}.w-max{width:max-content}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-\[16rem\]{max-width:16rem}.max-w-\[80\%\]{max-width:80%}.max-w-\[80vw\]{max-width:80vw}.max-w-\[85\%\]{max-width:85%}.max-w-\[min\(100\%\,1600px\)\]{max-width:min(100%,1600px)}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-72{min-width:calc(var(--spacing) * 72)}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);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)}.rotate-90{rotate:90deg}.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-move{cursor:move}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.resize{resize:both}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.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-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)))}.gap-x-0\.5{column-gap:calc(var(--spacing) * .5)}.gap-x-1{column-gap:var(--spacing)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.self-start{align-self:flex-start}.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-clip{overflow-x:clip}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[16px\]{border-radius:16px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.rounded-bl-sm{border-bottom-left-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-\[\#7c3aed\]{border-color:#7c3aed}.border-\[\#7c3aed\]\/30{border-color:oklab(54.1337% .0963843 -.226968/.3)}.border-\[var\(--color-surface-border\)\]{border-color:var(--color-surface-border)}.border-accent-blue\/20{border-color:#3b82f633}@supports (color:color-mix(in lab, red, red)){.border-accent-blue\/20{border-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.border-accent-blue\/30{border-color:#3b82f64d}@supports (color:color-mix(in lab, red, red)){.border-accent-blue\/30{border-color:color-mix(in oklab, var(--color-accent-blue) 30%, transparent)}}.border-accent-purple\/30{border-color:#8b5cf64d}@supports (color:color-mix(in lab, red, red)){.border-accent-purple\/30{border-color:color-mix(in oklab, var(--color-accent-purple) 30%, transparent)}}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-300{border-color:var(--color-emerald-300)}.border-emerald-600{border-color:var(--color-emerald-600)}.border-green-300{border-color:var(--color-green-300)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.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-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-500\/15{border-color:#62748e26}@supports (color:color-mix(in lab, red, red)){.border-slate-500\/15{border-color:color-mix(in oklab, var(--color-slate-500) 15%, transparent)}}.border-slate-500\/20{border-color:#62748e33}@supports (color:color-mix(in lab, red, red)){.border-slate-500\/20{border-color:color-mix(in oklab, var(--color-slate-500) 20%, transparent)}}.border-slate-800{border-color:var(--color-slate-800)}.border-surface-border{border-color:var(--color-surface-border)}.border-surface-border\/30{border-color:#dee2e64d}@supports (color:color-mix(in lab, red, red)){.border-surface-border\/30{border-color:color-mix(in oklab, var(--color-surface-border) 30%, transparent)}}.border-surface-border\/50{border-color:#dee2e680}@supports (color:color-mix(in lab, red, red)){.border-surface-border\/50{border-color:color-mix(in oklab, var(--color-surface-border) 50%, transparent)}}.bg-\[\#7c3aed\]{background-color:#7c3aed}.bg-\[\#7c3aed\]\/10{background-color:oklab(54.1337% .0963843 -.226968/.1)}.bg-\[\#DDD3B0\]{background-color:#ddd3b0}.bg-\[\#E9E3C9\]{background-color:#e9e3c9}.bg-\[\#F5F5DC\]{background-color:beige}.bg-\[\#FDF5E6\]{background-color:#fdf5e6}.bg-\[var\(--color-surface-elevated\)\]{background-color:var(--color-surface-elevated)}.bg-accent-blue\/10{background-color:#3b82f61a}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/10{background-color:color-mix(in oklab, var(--color-accent-blue) 10%, transparent)}}.bg-accent-blue\/15{background-color:#3b82f626}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/15{background-color:color-mix(in oklab, var(--color-accent-blue) 15%, transparent)}}.bg-accent-blue\/20{background-color:#3b82f633}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/20{background-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.bg-accent-blue\/30{background-color:#3b82f64d}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/30{background-color:color-mix(in oklab, var(--color-accent-blue) 30%, transparent)}}.bg-accent-cyan\/10{background-color:#06b6d41a}@supports (color:color-mix(in lab, red, red)){.bg-accent-cyan\/10{background-color:color-mix(in oklab, var(--color-accent-cyan) 10%, transparent)}}.bg-accent-purple-ink{background-color:var(--color-accent-purple-ink)}.bg-accent-purple-soft{background-color:var(--color-accent-purple-soft)}.bg-accent-purple\/15{background-color:#8b5cf626}@supports (color:color-mix(in lab, red, red)){.bg-accent-purple\/15{background-color:color-mix(in oklab, var(--color-accent-purple) 15%, transparent)}}.bg-accent-purple\/20{background-color:#8b5cf633}@supports (color:color-mix(in lab, red, red)){.bg-accent-purple\/20{background-color:color-mix(in oklab, var(--color-accent-purple) 20%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 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\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.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-red-600{background-color:var(--color-red-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-500\/5{background-color:#62748e0d}@supports (color:color-mix(in lab, red, red)){.bg-slate-500\/5{background-color:color-mix(in oklab, var(--color-slate-500) 5%, transparent)}}.bg-slate-500\/10{background-color:#62748e1a}@supports (color:color-mix(in lab, red, red)){.bg-slate-500\/10{background-color:color-mix(in oklab, var(--color-slate-500) 10%, transparent)}}.bg-slate-700{background-color:var(--color-slate-700)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-800\/90{background-color:#1d293de6}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/90{background-color:color-mix(in oklab, var(--color-slate-800) 90%, transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\/40{background-color:#0f172b66}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/40{background-color:color-mix(in oklab, var(--color-slate-900) 40%, transparent)}}.bg-slate-950{background-color:var(--color-slate-950)}.bg-surface{background-color:var(--color-surface)}.bg-surface-alt{background-color:var(--color-surface-alt)}.bg-surface-border{background-color:var(--color-surface-border)}.bg-surface-elevated{background-color:var(--color-surface-elevated)}.bg-surface\/60{background-color:#f8f9fa99}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in oklab, var(--color-surface) 60%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-\[linear-gradient\(90deg\,\#E6F4D7\,\#FDF5E6_65\%\,\#FEF9EF\)\]{background-image:linear-gradient(90deg,#e6f4d7,#fdf5e6 65%,#fef9ef)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.\[padding\:0_10px\]{padding:0 10px}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-10{padding:calc(var(--spacing) * 10)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.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-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-1{padding-left:var(--spacing)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--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\.6875rem\]{font-size:.6875rem}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#7c3aed\]{color:#7c3aed}.text-\[color\:var\(--color-text-secondary\,\#6c757d\)\]{color:var(--color-text-secondary,#6c757d)}.text-\[var\(--color-accent-purple\)\]{color:var(--color-accent-purple)}.text-\[var\(--color-text-primary\)\]{color:var(--color-text-primary)}.text-\[var\(--color-text-secondary\)\]{color:var(--color-text-secondary)}.text-accent-blue{color:var(--color-accent-blue)}.text-accent-purple{color:var(--color-accent-purple)}.text-accent-purple-ink{color:var(--color-accent-purple-ink)}.text-accent-purple\/80{color:#8b5cf6cc}@supports (color:color-mix(in lab, red, red)){.text-accent-purple\/80{color:color-mix(in oklab, var(--color-accent-purple) 80%, transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-700\/80{color:#b75000cc}@supports (color:color-mix(in lab, red, red)){.text-amber-700\/80{color:color-mix(in oklab, var(--color-amber-700) 80%, transparent)}}.text-amber-800{color:var(--color-amber-800)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-neutral-400{color:var(--color-neutral-400)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-slate-100{color:var(--color-slate-100)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-status-pass{color:var(--color-status-pass)}.text-text-muted{color:var(--color-text-muted)}.text-text-muted\/60{color:#adb5bd99}@supports (color:color-mix(in lab, red, red)){.text-text-muted\/60{color:color-mix(in oklab, var(--color-text-muted) 60%, transparent)}}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.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,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-slate-300{-webkit-text-decoration-color:var(--color-slate-300);-webkit-text-decoration-color:var(--color-slate-300);-webkit-text-decoration-color:var(--color-slate-300);text-decoration-color:var(--color-slate-300)}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--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-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);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-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.ring-accent-purple-ink\/30{--tw-ring-color:#2e10654d}@supports (color:color-mix(in lab, red, red)){.ring-accent-purple-ink\/30{--tw-ring-color:color-mix(in oklab, var(--color-accent-purple-ink) 30%, transparent)}}.ring-amber-200{--tw-ring-color:var(--color-amber-200)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-red-300{--tw-ring-color:var(--color-red-300)}.ring-slate-100{--tw-ring-color:var(--color-slate-100)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.ring-slate-300{--tw-ring-color:var(--color-slate-300)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}.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-\[background-color\,transform\]{transition-property:background-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;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-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/bubble\:text-\[\#7c3aed\]:is(:where(.group\/bubble):hover *){color:#7c3aed}.group-hover\/bubble\:opacity-100:is(:where(.group\/bubble):hover *),.group-hover\/diagram\:opacity-100:is(:where(.group\/diagram):hover *),.group-hover\/featurespec\:opacity-100:is(:where(.group\/featurespec):hover *),.group-hover\/markdown\:opacity-100:is(:where(.group\/markdown):hover *),.group-hover\/reasoning\:opacity-100:is(:where(.group\/reasoning):hover *),.group-hover\/table\:opacity-100:is(:where(.group\/table):hover *),.group-hover\/terminal\:opacity-100:is(:where(.group\/terminal):hover *){opacity:1}}.placeholder\:text-slate-400::placeholder{color:var(--color-slate-400)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:bg-\[\#7c3aed\]\/20:hover{background-color:oklab(54.1337% .0963843 -.226968/.2)}.hover\:bg-accent-purple\/5:hover{background-color:#8b5cf60d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-purple\/5:hover{background-color:color-mix(in oklab, var(--color-accent-purple) 5%, transparent)}}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:bg-slate-500\/20:hover{background-color:#62748e33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-500\/20:hover{background-color:color-mix(in oklab, var(--color-slate-500) 20%, transparent)}}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-slate-700:hover{background-color:var(--color-slate-700)}.hover\:bg-slate-800:hover{background-color:var(--color-slate-800)}.hover\:bg-surface-hover:hover{background-color:var(--color-surface-hover)}.hover\:text-\[color\:var\(--color-text-primary\,\#212529\)\]:hover{color:var(--color-text-primary,#212529)}.hover\:text-accent-purple:hover{color:var(--color-accent-purple)}.hover\:text-amber-900:hover{color:var(--color-amber-900)}.hover\:text-slate-200:hover{color:var(--color-slate-200)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-text-muted:hover{color:var(--color-text-muted)}.hover\:text-text-primary:hover{color:var(--color-text-primary)}.hover\:ring-accent-purple\/40:hover{--tw-ring-color:#8b5cf666}@supports (color:color-mix(in lab, red, red)){.hover\:ring-accent-purple\/40:hover{--tw-ring-color:color-mix(in oklab, var(--color-accent-purple) 40%, transparent)}}@media (hover:hover){.hover\:group-hover\/bubble\:text-\[\#7c3aed\]:hover:is(:where(.group\/bubble):hover *){color:#7c3aed}}}.focus\:border-slate-500:focus{border-color:var(--color-slate-500)}.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-slate-400:focus{--tw-ring-color:var(--color-slate-400)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-slate-50:disabled{background-color:var(--color-slate-50)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}@media (pointer:coarse){.pointer-coarse\:opacity-100{opacity:1}}}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-surface-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-none::-webkit-scrollbar{display:none}body{background-color:var(--color-surface);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.md-content{overflow-wrap:break-word;word-break:break-word;min-width:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.md-content table{border-collapse:collapse;white-space:normal;background:#8b5cf60a;border:1px solid #8b5cf633;border-radius:.5em;width:100%;margin:.5em 0;display:block;overflow:auto hidden}.md-content table th,.md-content table td{white-space:normal;word-break:normal;overflow-wrap:break-word}.md-content table th:first-child,.md-content table td:first-child{white-space:nowrap;width:1%}.md-content p{margin-top:.5em;margin-bottom:.25em}.md-content ul{margin:.2em 0;padding-left:1.5em;list-style-type:disc}.md-content ol{margin:.2em 0;padding-left:1.5em;list-style-type:decimal}.md-content li{display:list-item}.md-content h1,.md-content h2,.md-content h3{color:var(--color-text-primary);margin:.75em 0 .3em;font-weight:800}.md-content h1{font-size:1.25em}.md-content h2{font-size:1.1em}.md-content h3{font-size:1em}.md-content blockquote{color:var(--color-text-secondary);border-left:3px solid #8b5cf666;margin:.5em 0;padding:.3em .75em}.md-content strong{color:var(--color-text-primary);font-weight:600}.md-content em{color:#7c3aed}.md-content hr{border:none;border-top:1px solid var(--color-surface-border);margin:.5em 0}.md-content a{color:var(--color-accent-blue);text-underline-offset:2px;text-decoration:underline}.md-content th{color:var(--color-text-primary);background:#8b5cf61f}.md-content th,.md-content td{text-align:left;border:1px solid #8b5cf626;padding:.35em .6em}.md-content tbody tr:nth-child(2n){background:#8b5cf608}.md-content tbody tr:hover{background:#8b5cf614}.md-content code:not(pre code),.md-content :not(pre)>code{color:#7c3aed;background:#8b5cf614;border-radius:.3em;padding:.15em .35em;font-family:SF Mono,Fira Code,JetBrains Mono,monospace;font-size:.8em}.md-content pre{border:1px solid var(--color-surface-border);background:#f1f3f5;border-radius:.5em;max-width:100%;margin:.5em 0;padding:.5em;font-size:.8em;overflow-x:auto}.md-content pre code{color:#212529;font-family:SF Mono,Fira Code,JetBrains Mono,monospace}[data-testid=assistant-turn] .md-content>:last-child{margin-bottom:.25em}[data-testid=assistant-turn] .md-content>:first-child{margin-top:.5em}.md-content .mermaid-diagram{justify-content:center;margin:.5em 0;padding:.5em;display:flex;overflow-x:auto}.md-content .mermaid-diagram svg{max-width:100%;height:auto}@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-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{G as e,J as t,K as n,ct as r,mt as i,q as a,r as o,t as s,ut as c}from"./C-58cZAk.js";var l=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},u=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},d=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function f(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function p(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function m(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function h({href:e}){return e.split(`#`)[0]}function g(e,t,n,r=!1){let i=new URL(e);Object.defineProperty(i,"searchParams",{value:new Proxy(i.searchParams,{get(e,r){if(r===`get`||r===`getAll`||r===`has`)return(t,...i)=>(n(t),e[r](t,...i));t();let i=Reflect.get(e,r);return typeof i==`function`?i.bind(e):i}}),enumerable:!0,configurable:!0});let a=[`href`,`pathname`,`search`,`toString`,`toJSON`];r&&a.push(`hash`);for(let n of a)Object.defineProperty(i,n,{get(){return t(),e[n]},enumerable:!0,configurable:!0});return i}function _(){}function v(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function ee(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var y=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&b.delete(ne(e)),y(e,t));var b=new Map;function x(e,t){let n=ne(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=ee(e));let i=r.getAttribute(`data-ttl`);return i&&b.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function te(e,t,n){if(b.size>0){let t=ne(e,n),r=b.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);b.delete(t)}}return window.fetch(t,n)}function ne(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${v(...e)}"]`}return n}var re=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ie=/^\/\((?:[^)]+)\)$/;function ae(e){let t=[];return{pattern:e===`/`||ie.test(e)?/^\/$/:RegExp(`^${se(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return le(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return le(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=re.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return le(e)}).join(``)}).join(``)}/?$`),params:t}}function oe(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function se(e){return e.slice(1).split(`/`).filter(oe)}function ce(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0){if(s.rest)c=``;else continue}if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function le(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ue({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ae(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return ce(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function de(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function fe(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_13mzflk?.base??``,pe=globalThis.__sveltekit_13mzflk?.assets??S??``,me=`1791287547811`,he=`sveltekit:snapshot`,ge=`sveltekit:scroll`,_e=`sveltekit:states`,ve=`sveltekit:pageurl`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ye=location.origin;function be(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var xe={...T,"":T.hover};function Se(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ce(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=Se(e)}}function we(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||ke(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===ye&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function Te(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=Se(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:xe[r??`off`],preload_data:xe[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Ee(e){let t=i(e),n=!0;function r(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:a,subscribe:o}}var De={v:_};function Oe(){let{set:e,subscribe:t}=i(!1),n;async function r(){clearTimeout(n);try{let t=await fetch(`${pe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==me;return r&&(e(!0),De.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:r}}function ke(e,t,n){return e.origin!==ye||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Ae(e){}var je=2**32-1,Me=je-1,Ne=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Pe(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===Ne}function Fe(e){return Object.prototype.toString.call(e).slice(8,-1)}function Ie(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)}function Le(e){return!(!Number.isInteger(e)||e<0||e>Me)}function Re(e){return!(!Number.isInteger(e)||e<0||e>je)}function ze(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return Le(+e)}function Be(e){for(var t=e.length-1;t>=0&&!ze(e[t]);t--);return t+1}function Ve(e){let t=Object.keys(e);return t.length=Be(t),t}function He(e){return Uint8Array.fromBase64(e).buffer}function Ue(e){return Uint8Array.from(Buffer.from(e,`base64`)).buffer}function We(e){let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return r.buffer}var Ge=typeof Uint8Array.fromBase64==`function`,Ke=typeof process==`object`&&process.versions?.node!==void 0,qe=Ge?He:Ke?Ue:We;function Je(e,t){if(!t)return e;let n={};for(let r of Object.keys(e))n[r]=t[r]??e[r];return n}var Ye=Object.freeze({kind:`not-plain`}),Xe=Object.freeze({kind:`symbol-keys`});Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>Fe(e),isThenable:e=>typeof e.then==`function`,toPromise:e=>Promise.resolve(e),unbox:e=>e.valueOf(),toISOString:e=>isNaN(e.getDate())?``:e.toISOString(),toStringValue:e=>e.toString(),regExpInfo:e=>({source:e.source,flags:e.flags}),valuesOf:e=>e,entriesOf:e=>e,viewInfo:e=>({buffer:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength,length:e.length,bufferByteLength:e.buffer.byteLength}),toArrayBuffer:e=>e,lengthOf:e=>e.length,hasOwn:(e,t)=>Object.hasOwn(e,t),indicesOf:e=>Ve(e),shapeOf:e=>Pe(e)?Ie(e).length>0?Xe:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:Ye,get:(e,t)=>e[t]});var Ze=Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[Me]=void 0,delete t[Me],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});function Qe(e,t,n){let r=Je(Ze,n?.operations);if(typeof e==`number`)return s(e,!0);if(!Array.isArray(e)||e.length===0)throw Error(`Invalid input`);let i=e,a=Array(i.length),o=null;function s(e,n=!1){if(e===-1)return r.fromPrimitive(void 0);if(e===-3)return r.fromPrimitive(NaN);if(e===-4)return r.fromPrimitive(1/0);if(e===-5)return r.fromPrimitive(-1/0);if(e===-6)return r.fromPrimitive(-0);if(n||typeof e!=`number`)throw Error(`Invalid input`);if(e in a)return a[e];let c=i[e];if(!c||typeof c!=`object`)a[e]=r.fromPrimitive(c);else if(Array.isArray(c)){if(typeof c[0]==`string`){let n=c[0],l=t&&Object.hasOwn(t,n)?t[n]:void 0;if(l){let t=c[1];if(typeof t!=`number`&&(t=i.push(c[1])-1),Object.hasOwn(a,t))return a[e]=l(a[t]);if(o??=new Set,o.has(t))throw Error(`Invalid circular reference`);return o.add(t),a[e]=l(s(t)),o.delete(t),a[e]}switch(n){case`Date`:a[e]=r.fromISOString(c[1]);break;case`Set`:let t=r.createSet();a[e]=t;for(let e=1;e<c.length;e+=1)r.addValue(t,s(c[e]));break;case`Map`:let o=r.createMap();a[e]=o;for(let e=1;e<c.length;e+=2)r.addEntry(o,s(c[e]),s(c[e+1]));break;case`RegExp`:a[e]=r.fromRegExpInfo(c[1],c[2]);break;case`Object`:{let t=c[1];if(typeof i[t]==`object`&&i[t][0]!==`BigInt`)throw Error(`Invalid input`);a[e]=r.box(s(t));break}case`BigInt`:a[e]=r.fromPrimitive(BigInt(c[1]));break;case`null`:let l=r.createNullPrototypeObject();a[e]=l;for(let e=1;e<c.length;e+=2){if(c[e]===`__proto__`)throw Error("Cannot parse an object with a `__proto__` property");r.set(l,c[e],s(c[e+1]))}break;case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:case`Int16Array`:case`Uint16Array`:case`Float16Array`:case`Int32Array`:case`Uint32Array`:case`Float32Array`:case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:case`DataView`:{if(i[c[1]][0]!==`ArrayBuffer`)throw Error(`Invalid data`);let t=s(c[1]);a[e]=r.fromViewInfo(n,t,c[2],c[3]);break}case`ArrayBuffer`:{let t=c[1];if(typeof t!=`string`)throw Error(`Invalid ArrayBuffer encoding`);a[e]=r.fromArrayBuffer(qe(t));break}case`URL`:case`URLSearchParams`:case`Temporal.Duration`:case`Temporal.Instant`:case`Temporal.PlainDate`:case`Temporal.PlainTime`:case`Temporal.PlainDateTime`:case`Temporal.PlainMonthDay`:case`Temporal.PlainYearMonth`:case`Temporal.ZonedDateTime`:a[e]=r.fromStringValue(n,c[1]);break;default:throw Error(`Unknown type ${n}`)}}else if(c[0]===-7){let t=c[1];if(!Re(t))throw Error(`Invalid input`);let n=r.createSparseArray(t);a[e]=n;for(let e=2;e<c.length;e+=2){let i=c[e];if(!Le(i)||i>=t)throw Error(`Invalid input`);r.set(n,i,s(c[e+1]))}}else{let t=r.createArray(c.length);a[e]=t;for(let e=0;e<c.length;e+=1){let n=c[e];n!==-2&&r.set(t,e,s(n))}}}else{let t=r.createObject();a[e]=t;for(let e of Object.keys(c)){if(e===`__proto__`)throw Error("Cannot parse an object with a `__proto__` property");r.set(t,e,s(c[e]))}}return a[e]}return s(0)}var $e=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...$e],[...new Set([...$e])];function et(e){return e.filter(e=>e!=null)}var tt=`x-sveltekit-invalidated`,nt=`x-sveltekit-trailing-slash`;function O(e,t){return e+`/`+t}function k(e){return e instanceof l||e instanceof d?e.status:500}function rt(e){return e instanceof d?e.text:`Internal Error`}var A,j,it,at=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.toString()),ot=`a:`;at?(A={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(ot)},j={current:null},it={current:!1}):(A=new class{#e=c({});get data(){return e(this.#e)}set data(e){r(this.#e,e)}#t=c(null);get form(){return e(this.#t)}set form(e){r(this.#t,e)}#n=c(null);get error(){return e(this.#n)}set error(e){r(this.#n,e)}#r=c({});get params(){return e(this.#r)}set params(e){r(this.#r,e)}#i=c({id:null});get route(){return e(this.#i)}set route(e){r(this.#i,e)}#a=c({});get state(){return e(this.#a)}set state(e){r(this.#a,e)}#o=c(-1);get status(){return e(this.#o)}set status(e){r(this.#o,e)}#s=c(new URL(ot));get url(){return e(this.#s)}set url(e){r(this.#s,e)}},j=new class{#e=c(null);get current(){return e(this.#e)}set current(e){r(this.#e,e)}},it=new class{#e=c(!1);get current(){return e(this.#e)}set current(e){r(this.#e,e)}},De.v=()=>it.current=!0);function st(e){Object.assign(A,e)}var ct=`/__data.json`,lt=`.html__data.json`;function ut(e){return e.endsWith(`.html`)?e.replace(/\.html$/,lt):e.replace(/\/$/,``)+ct}var dt={spanContext(){return ft},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},ft={traceId:``,spanId:``,traceFlags:0};async function*pt(e,t){let n=!1,r=``,i=new TextDecoder;for(;;){let a=r.indexOf(t);for(;a!==-1;)yield r.slice(0,a),r=r.slice(a+t.length),a=r.indexOf(t);if(n){r&&(yield r);return}let o=await e.read();n=o.done,o.value&&(r+=i.decode(o.value,{stream:!0})),n&&(r+=i.decode())}}async function*mt(e){for await(let t of pt(e,`
|
|
2
|
+
`)){let e=t.trim();e&&(yield JSON.parse(e))}}var{onMount:ht,tick:gt}=s,_t=t??(e=>e()),vt=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),M=null,N=de(`sveltekit:scroll`)??{},P=de(`sveltekit:snapshot`)??{},F={url:Ee({}),page:Ee({}),navigating:i(null),updated:Oe()};function yt(e){N[e]=E()}function bt(e,t){let n=e+1;for(;N[n];)delete N[n],n+=1;for(n=t+1;P[n];)delete P[n],n+=1}function I(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(_)}async function xt(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var St,Ct,L,R,wt,z,Tt={},Et={},B=[],V=[],H=null;function Dt(){H?.fork?.then(e=>e?.discard()),H=null,Q={element:void 0,href:void 0}}var Ot=new Map,kt=new Set,At=new Set,U=new Set,W={branch:[],error:null,url:null,nav:null},jt=!1,Mt=!1,Nt=!0,G=!1,K=!1,Pt=!1,Ft=!1,It,q,J,Y,X=new Set,Lt=new Map,Rt=new Map;async function zt(e,t,n){if(globalThis.__sveltekit_13mzflk.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_13mzflk.data;for(let t in e)Tt[t]=e[t];for(let e in n)Tt[e]=n[e];for(let e in r)Tt[e]=r[e];for(let e in t)Et[e]=t[e]}document.URL!==location.href&&(location.href=location.href),z=e,await e.hooks.init?.(),St=ue(e),R=document.documentElement,wt=t,Ct=e.nodes[0],L=e.nodes[1],Ct(),L(),q=history.state?.[C],J=history.state?.[w],q||(q=J=Date.now(),history.replaceState({...history.state,[C]:q,[w]:J},``));let r=N[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await _n(wt,n)):(await Z({type:`enter`,url:be(z.hash?Tn(new URL(location.href)):location.href),replace_state:!0}),i()),gn()}function Bt(){B.length=0,Ft=!1}function Vt(e){V.some(e=>e?.snapshot)&&(P[e]=V.map(e=>e?.snapshot?.capture()))}function Ht(e){P[e]?.forEach((e,t)=>{V[t]?.snapshot?.restore(e)})}function Ut(){yt(q),fe(ge,N),Vt(J),fe(he,P)}async function Wt(e,t,n,r){let i,o;t.invalidateAll&&Dt(),await Z({type:`goto`,url:be(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{if(t.invalidateAll){Ft=!0,i=new Set;for(let[e,t]of Lt)for(let[n,r]of t)r.resource?.reset(),i.add(O(e,n));o=new Set;for(let[e,t]of Rt)for(let n of t.keys())o.add(O(e,n))}t.invalidate&&t.invalidate.forEach(mn)}}),t.invalidateAll&&a().then(a).then(()=>{for(let[e,t]of Lt)for(let[n,{resource:r}]of t)i?.has(O(e,n))&&r.start();for(let[e,t]of Rt)for(let[n,{resource:r}]of t)o?.has(O(e,n))&&r.reconnect()})}async function Gt(e){if(e.id!==H?.id){Dt();let t={};X.add(t),H={id:e.id,token:t,promise:tn({...e,preload:t}).then(e=>(X.delete(t),e.type===`loaded`&&e.state.error&&Dt(),e)),fork:null}}return H.promise}async function Kt(e){let t=(await on(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function qt(e,t,n){let r={params:W.params,route:{id:W.route?.id??null},url:new URL(location.href)};if(W={...e.state,nav:r},st(e.props.page),It=new z.root({target:t,props:{...e.props,stores:F,components:V},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:N[q]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};U.forEach(t=>t(e))}Ht(J),Mt=!0}async function Jt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=f(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:et(n).map(e=>e.node.component),page:wn(A)}};s!==void 0&&(l.props.form=s);let u={},d=!A,p=0;for(let e=0;e<Math.max(n.length,W.branch.length);e+=1){let t=n[e],r=W.branch[e];t?.data!==r?.data&&(d=!0),t&&(u={...u,...t.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!W.url||e.href!==W.url.href||W.error!==a||s!==void 0&&s!==A.form||d)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:d?u:A.data}),l}async function Yt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o=null,s=!0,c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();if(l.universal?.load){function e(...e){for(let t of e){let{href:e}=new URL(t,n);c.dependencies.add(e)}}let u={tracing:{enabled:!1,root:dt,current:dt},route:new Proxy(i,{get:(e,t)=>(s&&(c.route=!0),e[t])}),params:new Proxy(r,{get:(e,t)=>(s&&c.params.add(t),e[t])}),data:a?.data??null,url:g(n,()=>{s&&(c.url=!0)},e=>{s&&c.search_params.add(e)},z.hash),async fetch(t,r){t instanceof Request&&(r={body:t.method===`GET`||t.method===`HEAD`?void 0:await t.blob(),cache:t.cache,credentials:t.credentials,headers:[...t.headers].length>0?t?.headers:void 0,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,...r});let{resolved:i,promise:a}=Xt(t,r,n);return s&&e(i.href),a},setHeaders:_,depends:e,parent(){return s&&(c.parent=!0),t()},untrack(e){s=!1;try{return e()}finally{s=!0}}};o=await l.universal.load.call(null,u)??null}return{node:l,loader:e,server:a,universal:l.universal?.load?{type:`data`,data:o,uses:c}:null,data:o??a?.data??null,slash:l.universal?.trailingSlash??a?.slash}}function Xt(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:Mt?te(r,i.href,t):x(r,t)}}function Zt(e,t,n,r,i,a){if(Ft)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==W.params[e])return!0;for(let e of i.dependencies)if(B.some(t=>t(new URL(e))))return!0;return!1}function Qt(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function $t(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function en({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:wn(A),constructors:[]}}}async function tn({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(H?.id===e)return X.delete(H.token),H.promise;let{errors:o,layouts:s,leaf:c}=i,d=[...s,c];o.forEach(e=>e?.().catch(_)),d.forEach(e=>e?.[1]().catch(_));let f=null,p=W.url?e!==cn(W.url):!1,m=W.route?i.id!==W.route.id:!1,h=$t(W.url,n),g=!1;{let t=d.map((e,t)=>{let n=W.branch[t],i=!!e?.[0]&&(n?.loader!==e[1]||Zt(g,m,p,h,n.server?.uses,r));return i&&(g=!0),i});if(t.some(Boolean)){try{f=await vn(n,t)}catch(t){let o=await $(t,{url:n,params:r,route:{id:e}});return a&&X.has(a)?en({error:o,url:n,params:r,route:i}):rn({status:k(t),error:o,url:n,route:i})}if(f.type===`redirect`)return f}}let v=f?.nodes,ee=!1,y=d.map(async(e,t)=>{if(!e)return;let a=W.branch[t],o=v?.[t];if((!o||o.type===`skip`)&&e[1]===a?.loader&&!Zt(ee,m,p,h,a.universal?.uses,r))return a;if(ee=!0,o?.type===`error`)throw o;return Yt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await y[n])?.data);return e},server_data_node:Qt(o===void 0&&e[0]?{type:`skip`}:o??null,e[0]?a?.server:void 0)})});for(let e of y)e.catch(_);let b=[];for(let e=0;e<d.length;e+=1)if(d[e])try{b.push(await y[e])}catch(t){if(t instanceof u)return{type:`redirect`,location:t.location};if(a&&X.has(a))return en({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=k(t),c;if(v?.includes(t))s=t.status??s,c=t.error;else if(t instanceof l)c=t.body;else{if(await F.updated.check())return await xt(),await I(n);c=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await nn(e,b,o);return d?Jt({url:n,params:r,branch:b.slice(0,d.idx).concat(d.node),errors:o,status:s,error:c,route:i}):await un(n,{id:i.id},c,s)}else b.push(void 0);return Jt({url:n,params:r,branch:b,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function nn(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function rn({status:e,error:t,url:n,route:r}){let i={},a=null;if(z.server_loads[0]===0)try{let e=await vn(n,[!0]);if(e.type!==`data`||e.nodes[0]&&e.nodes[0].type!==`data`)throw 0;a=e.nodes[0]??null}catch(e){if(!(e instanceof l&&e.status===404)&&(n.origin!==ye||n.pathname!==location.pathname||jt))return await I(n)}try{return Jt({url:n,params:i,branch:[await Yt({loader:Ct,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:Qt(a)}),{node:await L(),loader:L,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof u){await Wt(new URL(t.location,location.href),{},0);return}let a=await z.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function an(e){let t=e.href;if(Ot.has(t))return Ot.get(t);let n;try{let r=(async()=>{let t=await z.hooks.reroute({url:new URL(e),fetch:async(t,n)=>Xt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);z.hash?n.hash=t:n.pathname=t,t=n}return t})();Ot.set(t,r),n=await r}catch{Ot.delete(t);return}return n}async function on(e,t){if(e&&!ke(e,S,z.hash)){let n=await an(e);if(!n)return;let r=sn(n);for(let n of St){let i=n.exec(r);if(i)return{id:cn(e),invalidating:t,route:n,params:m(i),url:e}}}}function sn(e){return p(z.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function cn(e){return(z.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function ln({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Cn(W,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return G||kt.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:t,popped:r,keepfocus:i,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:u={},accept:f=_,block:p=_,event:m}){let h=Y;Y=u;let g=await on(t,!1),v=e===`enter`?Cn(W,g,t,e):ln({url:t,type:e,delta:r?.delta,intent:g,scroll:r?.scroll,event:m});if(!v){p(),Y===u&&(Y=h);return}let ee=q,y=J;f(),G=!0,Mt&&v.navigation.type!==`enter`&&F.navigating.set(j.current=v.navigation);let b=g&&await tn(g);if(!b){if(ke(t,S,z.hash))return await I(t,s);b=await un(t,{id:null},await $(new d(404,`Not Found`,`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=g?.url||t,Y!==u){v.reject(Error(`navigation aborted`));return}if(!b)return;if(b.type===`redirect`){if(l<20){await Z({type:e,url:new URL(b.location,t),popped:r,keepfocus:i,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:u}),v.fulfil(void 0);return}if(b=await rn({status:500,error:await $(Error(`Redirect loop`),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}}),!b)return}else if(b.props.page.status>=400&&await F.updated.check())return await xt(),await I(t,s);if(Bt(),yt(ee),Vt(y),b.props.page.url.pathname!==t.pathname&&(t.pathname=b.props.page.url.pathname),c=r?r.state:c,!r){let e=+!s,n={[C]:q+=e,[w]:J+=e,[_e]:c};(s?history.replaceState:history.pushState).call(history,n,``,t),s||bt(q,J)}let x=g&&H?.id===g.id?H.fork:null;H?.fork&&!x?Dt():(H=null,Q={element:void 0,href:void 0}),b.props.page.state=c;let te;if(Mt){let e=(await Promise.all(Array.from(At,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{U.delete(e)})}e.push(t),e.forEach(e=>{U.add(e)})}let r=v.navigation.to;W={...b.state,nav:{params:r.params,route:r.route,url:r.url}},b.props.page&&(b.props.page.url=t),!i&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let a=x&&await x;a?te=a.commit():(M=null,It.$set(b.props),M&&Object.assign(b.props.page,M),st(b.props.page),te=n?.()),Pt=!0}else await qt(b,wt,!1);let{activeElement:ne}=document;if(await te,await a(),await a(),Y!==u){v.reject(Error(`navigation aborted`));return}b.props.page&&M&&Object.assign(b.props.page,M);let re=null;if(Nt){let e=r?r.scroll:o?E():null;e?scrollTo(e.x,e.y):(re=t.hash&&document.getElementById(En(t)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!i&&!ie&&Sn(t,!re),Nt=!0,G=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),U.forEach(e=>e(v.navigation)),e===`popstate`&&Ht(J),F.navigating.set(j.current=null)}async function un(e,t,n,r,i){return e.origin===ye&&e.pathname===location.pathname&&!jt?await rn({status:r,error:n,url:e,route:t}):await I(e,i)}var Q={element:void 0,href:void 0};function dn(){let e,t;R.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}R.addEventListener(`mousedown`,n),R.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(Kt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Ce(e,R),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=we(r,S,z.hash);if(o||s)return;let c=Te(r),l=a&&cn(W.url)===cn(a);if(!(c.reload||l)){if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await on(a,!1);if(!e)return;Gt(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,Kt(a))}}function a(){r.disconnect();for(let e of R.querySelectorAll(`a`)){let{url:t,external:n,download:i}=we(e,S,z.hash);if(n||i)continue;let a=Te(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&Kt(t))}}U.add(a),a()}function $(e,t){if(e instanceof l)return e.body;let n=k(e),r=rt(e);return z.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function fn(e,t){ht(()=>(e.add(t),()=>{e.delete(t)}))}function pn(e){fn(U,e)}function mn(e){if(typeof e==`function`)B.push(e);else{let{href:t}=new URL(e,location.href);B.push(e=>e.href===t)}}function hn(e,t){let n={[C]:q,[w]:J,[ve]:A.url.href,[_e]:t};history.replaceState(n,``,be(e)),A.state=t,It.$set({page:_t(()=>wn(A))})}function gn(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(Ut(),!G){let e=Cn(W,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};kt.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&Ut()}),navigator.connection?.saveData||dn(),R.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Ce(t.composedPath()[0],R);if(!n)return;let{url:r,external:i,target:a,download:o}=we(n,S,z.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=Te(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(z.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===h(location);if(i||s.reload&&(!u||!l)){ln({url:r,type:`link`,event:t})?G=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=W.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(K=!0,yt(q),e(r),!s.replace_state)return;K=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),R.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(ke(r,S,!1))return;let i=e.target,a=Te(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!xn){if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(Y={},n===q)return;let r=N[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=W.url?h(location)===h(W.url):!1;if(o===J&&(Pt||s)){i!==A.state&&(A.state=i),e(a),N[q]=E(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else K||(e(new URL(location.href)),z.hash&&location.reload())}}),addEventListener(`hashchange`,()=>{K&&(K=!1,history.replaceState({...history.state,[C]:++q,[w]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))vt.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&F.navigating.set(j.current=null)});function e(e){W.url=A.url=e,F.page.set(wn(A)),F.page.notify()}}async function _n(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){jt=!0;let l=new URL(location.href),d;({params:i={},route:a={id:null}}=await on(l,!1)||{}),d=St.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=bn(r.uses)),Yt({loader:z.nodes[t],url:l,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:Qt(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await Jt({url:l,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof u)return await I(new URL(t.location,location.href));f=await rn({status:k(t),error:await $(t,{url:l,params:i,route:a}),url:l,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await qt(f,e,p))}async function vn(e,t){let n=new URL(e);n.pathname=ut(e.pathname),e.pathname.endsWith(`/`)&&n.searchParams.append(nt,`1`),n.searchParams.append(tt,t.map(e=>e?`1`:`0`).join(``));let r=await(0,window.fetch)(n.href,{});if(!r.ok){let e;throw r.headers.get(`content-type`)?.includes(`application/json`)?e=await r.json():r.status===404?e=`Not Found`:r.status===500&&(e=`Internal Error`),new l(r.status,e)}return new Promise((e,t)=>{yn(e,r).catch(t)})}async function yn(e,t){let n=t.body.getReader(),r=new Map;function i(e){return Qe(e,{...z.decoders,Promise:e=>new Promise((t,n)=>{r.set(e,{fulfil:t,reject:n})})})}for await(let t of mt(n)){if(t.type===`redirect`)return e(t);if(t.type===`data`)t.nodes?.forEach(e=>{e?.type===`data`&&(e.uses=bn(e.uses),e.data=i(e.data))}),e(t);else if(t.type===`chunk`){let{id:e,data:n,error:a}=t,o=r.get(e);r.delete(e),a?o.reject(i(a)):o.fulfil(i(n))}}}function bn(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var xn=!1;function Sn(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=En(e);if(n&&document.getElementById(n)){let{x:r,y:i}=E();setTimeout(()=>{let a=history.state;xn=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),xn=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Cn(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(_),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function wn(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Tn(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function En(e){let t;if(z.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{A as a,j as i,hn as n,Ae as o,zt as r,pn as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{H as e}from"../nodes/2.BBV-AGuB.js";export{e as startPanelResize};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ot as e,xt as t}from"./C-58cZAk.js";import{a as n}from"./
|
|
1
|
+
import{ot as e,xt as t}from"./C-58cZAk.js";import{a as n}from"./C1F3aCiz.js";import{d as r}from"./DlfWhx6l.js";var i={},a=[`en`,`zh`,`id`,`es`],o=`dsi.locale`,s=3456e4,c=[`cookie`,`preferredLanguage`,`baseLocale`],l=[],u=typeof window>`u`;globalThis.__paraglide=globalThis.__paraglide??{},globalThis.__paraglide.ssr=globalThis.__paraglide.ssr??{};var d=!1,f=()=>{let e=c;!u&&typeof window<`u`&&window.location?.href&&(e=P(window.location.href));let t=p(e,typeof window<`u`?window.location?.href:void 0);if(t)return d||(d=!0,h(t,{reload:!1})),t;throw Error(`No locale found. Read the docs https://paraglidejs.com/errors#no-locale-found`)};function p(e,t){let n;for(let t of e){if(t===`cookie`)n=D();else if(t===`baseLocale`)n=`en`;else if(t===`preferredLanguage`&&!u)n=O();else if(I(t)&&F.has(t)){let e=F.get(t);if(e){let t=e.getLocale();if(t instanceof Promise)continue;if(t!==void 0)return v(t)}}let e=_(n);if(e)return e}}var m=e=>{e?window.location.href=e:window.location.reload()},h=(e,t)=>{let n={reload:!0,...t},r;try{r=f()}catch{}let i=[],a=c;!u&&typeof window<`u`&&window.location?.href&&(a=P(window.location.href));for(let t of a)if(t===`cookie`){if(u||typeof document>`u`||typeof window>`u`)continue;let t=`${o}=${e}; path=/; max-age=${s}`;document.cookie=t,T()}else if(t===`baseLocale`)continue;else if(I(t)&&F.has(t)){let n=F.get(t);if(n){let r=n.setLocale(e);r instanceof Promise&&(r=r.catch(e=>{throw Error(`Custom strategy "${t}" setLocale failed.`,{cause:e})}),i.push(r))}}let l=()=>{!u&&n.reload&&window.location&&e!==r&&m(void 0)};if(i.length)return Promise.all(i).then(()=>{l()});l()},g=()=>typeof window<`u`?window.location.origin:`http://fallback.com`;function _(e){if(typeof e!=`string`)return;let t=e.toLowerCase();for(let e of a)if(e.toLowerCase()===t)return e}function v(e){let t=_(e);if(t)return t;throw Error(`Invalid locale: ${e}. Expected one of: ${a.join(`, `)}`)}function y(e){return e}function b(e,t){return e.exec(t.href)}var x=o.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),S=RegExp(`(?:^|;\\s*)${x}=([^;]*)`),C=Symbol(),w=C;function T(){w=C}function E(){typeof queueMicrotask==`function`?queueMicrotask(T):Promise.resolve().then(T)}function D(){if(typeof document>`u`)return;if(w!==C)return w;let e=document.cookie.match(S)?.[1];return w=_(e),E(),w}function O(){if(!navigator?.languages?.length)return;let e=navigator.languages.map(e=>({fullTag:e,baseTag:e.split(`-`)[0]}));for(let t of e){let e=_(t.fullTag);if(e)return e;let n=_(t.baseTag);if(n)return n}}function k(e){return A(e)}function A(e){let t=y(typeof e==`string`?new URL(e,g()):new URL(e)),n=t.pathname.split(`/`).filter(Boolean);return n.length>0&&_(n[0])&&(t.pathname=`/`+n.slice(1).join(`/`)),y(t)}var j,M;function N(e){if(l.length===0)return;let t=typeof e==`string`?e:e.href;if(j===t)return M;let n=y(new URL(t,`http://example.com`)),r=k(n),a=r.href===n.href?[n]:[n,r],o;for(let e of a){for(let t of l)if(b(new i(t.match,e.href),e)){o=t;break}if(o)break}return j=t,M=o,o}function P(e){let t=N(e);return t&&t.exclude!==!0&&Array.isArray(t.strategy)?t.strategy:c}var F=new Map;function I(e){return typeof e==`string`&&/^custom-[A-Za-z0-9_-]+$/.test(e)}var L=e({locale:`en`});function R(){let e=t(L).locale;try{let e=f();if(r.includes(e))return e}catch{}return r.includes(e)?e:`en`}async function z(e){if(r.includes(e)){await h(e,{reload:!1});try{localStorage.setItem(`dsi.locale`,e)}catch{}L.locale=e}}function B(e){t(L).locale;try{let t=f();if(r.includes(t))return e()}catch{}return e()}var V=()=>`← Back to the workspace`,H=()=>`← 返回工作区`,U=()=>`← Kembali ke workspace`,W=()=>`← Volver al workspace`,ee=((e={},t={})=>{let n=t.locale??f();return n===`zh`?H(e):n===`id`?U(e):n===`es`?W(e):V(e)}),G=()=>`DSH host unreachable`,K=()=>`DSH 主机不可达`,q=()=>`Host DSH tidak dapat dijangkau`,J=()=>`Host DSH inalcanzable`,Y=((e={},t={})=>{let n=t.locale??f();return n===`zh`?K(e):n===`id`?q(e):n===`es`?J(e):G(e)}),X=()=>`It may have been reaped, or the link predates this host's ledger.`,Z=()=>`它可能已被回收,或链接早于此主机的账本。`,Q=()=>`Mungkin sudah dihapus, atau tautannya lebih tua dari ledger host ini.`,$=()=>`Puede haber sido recolectada, o el enlace es anterior al libro mayor de este host.`,te=((e={},t={})=>{let n=t.locale??f();return n===`zh`?Z(e):n===`id`?Q(e):n===`es`?$(e):X(e)}),ne=()=>`Session not found`,re=()=>`会话未找到`,ie=()=>`Sesi tidak ditemukan`,ae=()=>`Sesión no encontrada`,oe=((e={},t={})=>{let n=t.locale??f();return n===`zh`?re(e):n===`id`?ie(e):n===`es`?ae(e):ne(e)}),se=()=>`Unexpected error`,ce=()=>`意外错误`,le=()=>`Kesalahan tak terduga`,ue=()=>`Error inesperado`,de=((e={},t={})=>{let n=t.locale??f();return n===`zh`?ce(e):n===`id`?le(e):n===`es`?ue(e):se(e)}),fe={get data(){return n.data},get error(){return n.error},get form(){return n.form},get params(){return n.params},get route(){return n.route},get state(){return n.state},get status(){return n.status},get url(){return n.url}};export{Y as a,z as c,te as i,B as l,de as n,ee as o,oe as r,R as s,fe as t,f as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"../nodes/2.BBV-AGuB.js";export{e as stringify};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.
|
|
2
|
-
import{$ as e,E as t,G as n,I as r,L as i,M as a,P as o,Q as s,R as c,V as l,_t as u,a as d,at as f,ct as p,et as m,ft as h,gt as g,i as _,it as v,l as y,q as b,r as x,rt as S,ut as C,wt as w}from"../chunks/C-58cZAk.js";import{t as T}from"../chunks/HclGiUj8.js";import"../chunks/xihTtKlq.js";var E={},D=c(`<div data-svelte="root" id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),O=c(`<!> <!>`,1);function k(c,_){u(_,!0);let T=d(_,`components`,23,()=>[]),E=d(_,`data_0`,3,null),k=d(_,`data_1`,3,null);m(()=>_.stores.page.set(_.page)),e(()=>{_.stores,_.page,_.constructors,T(),_.form,E(),k(),_.stores.page.notify()});let A=C(!1),j=C(!1),M=C(null);x(()=>{let e=_.stores.page.subscribe(()=>{n(A)&&(p(j,!0),b().then(()=>{p(M,document.title||`untitled page`,!0)}))});return p(A,!0),e});let N=h(()=>_.constructors[1]);var P=O(),F=v(P),I=e=>{let a=h(()=>_.constructors[0]);var o=i(),s=v(o);t(s,()=>n(a),(e,a)=>{y(a(e,{get data(){return E()},get form(){return _.form},get params(){return _.page.params},children:(e,a)=>{var o=i(),s=v(o);t(s,()=>n(N),(e,t)=>{y(t(e,{get data(){return k()},get form(){return _.form},get params(){return _.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),r(e,o)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),r(e,o)},L=e=>{let a=h(()=>_.constructors[0]);var o=i(),s=v(o);t(s,()=>n(a),(e,t)=>{y(t(e,{get data(){return E()},get form(){return _.form},get params(){return _.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),r(e,o)};a(F,e=>{_.constructors[1]?e(I):e(L,-1)});var R=f(F,2),z=e=>{var t=D(),i=S(t),c=e=>{var t=l();s(()=>o(t,n(M))),r(e,t)};a(i,e=>{n(j)&&e(c)}),w(t),r(e,t)};a(R,e=>{n(A)&&e(z)}),r(c,P),g()}var A=_(k),j=[()=>T(()=>import(`../nodes/0.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.k1Ikzbp6.js","../chunks/C-58cZAk.js","../chunks/xihTtKlq.js","../chunks/BLxS3bAX.js","../chunks/DlfWhx6l.js","../assets/0.CRU0GiZX.css","../nodes/1.E4wiL8sP.js","../chunks/UkmEG9Ws.js","../chunks/C1F3aCiz.js","../nodes/2.BBV-AGuB.js","../chunks/HclGiUj8.js","../assets/2.BGqV97Jd.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{$ as e,E as t,G as n,I as r,L as i,M as a,P as o,Q as s,R as c,V as l,_t as u,a as d,at as f,ct as p,et as m,ft as h,gt as g,i as _,it as v,l as y,q as b,r as x,rt as S,ut as C,wt as w}from"../chunks/C-58cZAk.js";import{t as T}from"../chunks/HclGiUj8.js";import"../chunks/xihTtKlq.js";var E={},D=c(`<div data-svelte="root" id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),O=c(`<!> <!>`,1);function k(c,_){u(_,!0);let T=d(_,`components`,23,()=>[]),E=d(_,`data_0`,3,null),k=d(_,`data_1`,3,null);m(()=>_.stores.page.set(_.page)),e(()=>{_.stores,_.page,_.constructors,T(),_.form,E(),k(),_.stores.page.notify()});let A=C(!1),j=C(!1),M=C(null);x(()=>{let e=_.stores.page.subscribe(()=>{n(A)&&(p(j,!0),b().then(()=>{p(M,document.title||`untitled page`,!0)}))});return p(A,!0),e});let N=h(()=>_.constructors[1]);var P=O(),F=v(P),I=e=>{let a=h(()=>_.constructors[0]);var o=i(),s=v(o);t(s,()=>n(a),(e,a)=>{y(a(e,{get data(){return E()},get form(){return _.form},get params(){return _.page.params},children:(e,a)=>{var o=i(),s=v(o);t(s,()=>n(N),(e,t)=>{y(t(e,{get data(){return k()},get form(){return _.form},get params(){return _.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),r(e,o)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),r(e,o)},L=e=>{let a=h(()=>_.constructors[0]);var o=i(),s=v(o);t(s,()=>n(a),(e,t)=>{y(t(e,{get data(){return E()},get form(){return _.form},get params(){return _.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),r(e,o)};a(F,e=>{_.constructors[1]?e(I):e(L,-1)});var R=f(F,2),z=e=>{var t=D(),i=S(t),c=e=>{var t=l();s(()=>o(t,n(M))),r(e,t)};a(i,e=>{n(j)&&e(c)}),w(t),r(e,t)};a(R,e=>{n(A)&&e(z)}),r(c,P),g()}var A=_(k),j=[()=>T(()=>import(`../nodes/0.k1Ikzbp6.js`),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url),()=>T(()=>import(`../nodes/1.E4wiL8sP.js`),__vite__mapDeps([6,1,2,7,8,4]),import.meta.url),()=>T(()=>import(`../nodes/2.BBV-AGuB.js`),__vite__mapDeps([9,1,8,10,2,4,3,7,11]),import.meta.url)],M=[],N={"/":[-3]},P={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},F=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.decode])),I=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.encode])),L=!1,R=(e,t)=>F[e](t),z=()=>T(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{R as decode,F as decoders,N as dictionary,I as encoders,z as get_error_template,L as hash,P as hooks,E as matchers,j as nodes,A as root,M as server_loads};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,r as t}from"../chunks/C1F3aCiz.js";export{e as load_css,t as start};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as e,I as t,M as n,P as r,Q as i,R as a,X as o,_t as s,at as c,ft as l,gt as u,it as d,rt as f,tt as p,w as m,wt as h}from"../chunks/C-58cZAk.js";import"../chunks/xihTtKlq.js";import{a as g,i as _,l as v,n as y,o as b,r as x,t as S}from"../chunks/
|
|
1
|
+
import{G as e,I as t,M as n,P as r,Q as i,R as a,X as o,_t as s,at as c,ft as l,gt as u,it as d,rt as f,tt as p,w as m,wt as h}from"../chunks/C-58cZAk.js";import"../chunks/xihTtKlq.js";import{a as g,i as _,l as v,n as y,o as b,r as x,t as S}from"../chunks/UkmEG9Ws.js";var C=a(`<h1 class="text-xl font-semibold"> </h1> <p class="text-sm text-slate-500" data-testid="error-message"> </p> <p class="text-xs text-slate-400"> </p>`,1),w=a(`<h1 class="text-xl font-semibold"> </h1> <p class="text-sm text-slate-500" data-testid="error-message"> </p>`,1),T=a(`<main data-svelte="ErrorPage" class="mx-auto flex max-w-3xl flex-col items-center gap-4 px-4 py-16 text-center"><p class="text-5xl font-semibold text-slate-300" data-testid="error-status"> </p> <!> <a href="/" class="mt-2 rounded-md border border-slate-300 px-3 py-1.5 text-sm text-slate-600 hover:bg-slate-100" data-testid="error-back-home"> </a></main>`);function E(a,E){s(E,!0);let D=l(()=>S.status),O=l(()=>S.error?.message??`Something went wrong.`);var k=T();m(`1j96wlh`,t=>{o(()=>{p.title=`${e(D)??``} — deepseek-insight`})});var A=f(k),j=f(A,!0);h(A);var M=c(A,2),N=n=>{var a=C(),o=d(a),s=f(o,!0);h(o);var l=c(o,2),u=f(l,!0);h(l);var p=c(l,2),m=f(p,!0);h(p),i((t,n)=>{r(s,t),r(u,e(O)),r(m,n)},[()=>v(x),()=>v(_)]),t(n,a)},P=n=>{var a=w(),o=d(a),s=f(o,!0);h(o);var l=c(o,2),u=f(l,!0);h(l),i(t=>{r(s,t),r(u,e(O))},[()=>v(g)]),t(n,a)},F=n=>{var a=w(),o=d(a),s=f(o,!0);h(o);var l=c(o,2),u=f(l,!0);h(l),i(t=>{r(s,t),r(u,e(O))},[()=>v(y)]),t(n,a)};n(M,t=>{e(D)===404?t(N):e(D)===503?t(P,1):t(F,-1)});var I=c(M,2),L=f(I,!0);h(I),h(k),i(t=>{r(j,e(D)),r(L,t)},[()=>v(b)]),t(a,k),u()}export{E as component};
|