@devness/useai 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +184 -67
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -684,7 +684,7 @@ var VERSION;
|
|
|
684
684
|
var init_version = __esm({
|
|
685
685
|
"../shared/dist/constants/version.js"() {
|
|
686
686
|
"use strict";
|
|
687
|
-
VERSION = "0.8.
|
|
687
|
+
VERSION = "0.8.3";
|
|
688
688
|
}
|
|
689
689
|
});
|
|
690
690
|
|
|
@@ -34181,8 +34181,8 @@ function enrichAutoSealedSession(sealedSessionId, session2, args) {
|
|
|
34181
34181
|
if (lastRecord.type === "session_seal" && lastRecord.data["seal"]) {
|
|
34182
34182
|
try {
|
|
34183
34183
|
const sealObj = JSON.parse(lastRecord.data["seal"]);
|
|
34184
|
-
duration3 = sealObj.duration_seconds
|
|
34185
|
-
endedAt = sealObj.ended_at
|
|
34184
|
+
duration3 = sealObj.duration_seconds || Math.round((new Date(lastRecord.timestamp).getTime() - new Date(startedAt2).getTime()) / 1e3);
|
|
34185
|
+
endedAt = sealObj.ended_at && sealObj.ended_at !== startedAt2 ? sealObj.ended_at : lastRecord.timestamp;
|
|
34186
34186
|
} catch {
|
|
34187
34187
|
duration3 = Math.round((new Date(lastRecord.timestamp).getTime() - new Date(startedAt2).getTime()) / 1e3);
|
|
34188
34188
|
endedAt = lastRecord.timestamp;
|
|
@@ -34270,7 +34270,10 @@ function enrichAutoSealedSession(sealedSessionId, session2, args) {
|
|
|
34270
34270
|
files_touched: filesTouched,
|
|
34271
34271
|
evaluation: args.evaluation ?? existing.evaluation,
|
|
34272
34272
|
session_score: sessionScore ?? existing.session_score,
|
|
34273
|
-
evaluation_framework: frameworkId ?? existing.evaluation_framework
|
|
34273
|
+
evaluation_framework: frameworkId ?? existing.evaluation_framework,
|
|
34274
|
+
// Fix duration/ended_at for auto-sealed sessions that had 0s duration
|
|
34275
|
+
duration_seconds: duration3 || existing.duration_seconds,
|
|
34276
|
+
ended_at: endedAt !== startedAt2 ? endedAt : existing.ended_at
|
|
34274
34277
|
};
|
|
34275
34278
|
} else {
|
|
34276
34279
|
allSessions.push(richSeal);
|
|
@@ -34805,15 +34808,14 @@ function getDashboardHtml() {
|
|
|
34805
34808
|
<head>
|
|
34806
34809
|
<meta charset="UTF-8" />
|
|
34807
34810
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
34808
|
-
<link rel="icon" type="image/png" sizes="32x32" href="
|
|
34809
|
-
<link rel="icon" type="image/png" sizes="16x16" href="
|
|
34810
|
-
<link rel="icon" type="image/x-icon" href="./favicon.ico" media="(prefers-color-scheme: dark)" />
|
|
34811
|
-
<link rel="icon" type="image/png" sizes="32x32" href="
|
|
34812
|
-
<link rel="icon" type="image/png" sizes="16x16" href="
|
|
34813
|
-
<link rel="icon" type="image/x-icon" href="./favicon-light.ico" media="(prefers-color-scheme: light)" />
|
|
34814
|
-
<link rel="apple-touch-icon" sizes="180x180" href="
|
|
34815
|
-
|
|
34816
|
-
<title>UseAI \u2014 Local Dashboard</title>
|
|
34811
|
+
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAD+klEQVR4AcRWXUybVRh++sNKhZGVn5mMFoGOUYnL0PB3YcaNSpTABTHcQaJ3mhBigtkwlpB4I3jlNOvQRDSGBDJCpCGlGEAQMZLM2EzUpCxCh+2WhalR2KBA2XlPw0fPt3NYWQJrznO+9+d5z/t85zvtVyPin7Ps4mO4x7BzyKAeftbjeQaQAGo+y5xXGawMhz2oRw1rMsPwAgn4kBnHGY56pLGGXSSgmhlPapwnAalPqjvre4wEsOvDo76+HlNTU6ioqOBJl8vF/aamJrS2tnKb8rvw+/0oKCjAyMiIkPN6vXA4HHwN2aQUQEXV1dXIycnhdTabDeQXFhaio6MDJSUl6O/vR19fHwfZjY2NqK2txcLCAo8tLS2hrq4ODQ0NfA3ZpBQgI+/GYrEYzGYzsrKykJmZyREMBmE0xpfb2trisYyMDF5CfG5IpniFJLFfqK2tDRMTEygtLUVlZSU6OzsxPDysldDjKisrw/b2Nnp7ezEwMKDl9MYjBdAZKC8vR1VVlVYbCATQ3d3N0dXVheXlZaSl0bcqTvH5fDxHHI/Hg50d+m2L5/SzUsD09DRCoRBaWlowNjYGt9uNSCSC8fFxDA0N8RjFR0dHkZ2djcHBQUxOTiIcDqO9vV3LE+exzsD8/Dzy8/P5s9x9zrm5uZidnYXT6RTilG9ubsbc3BzsdvtDuZ6eHv2Na75yBzTGIRtqAQbAfsaCvGdTk4AFTx03aVItVqNQQ76W1BlGna+5p5wWXLlehMu/nE4CRfj6pgs1b9h4/SvsmlhX82Y8zpO6SSnAuHdDuhK5a7Ea8PalU8jOTYHRxLYvgab3E1L8dZzoa/ad0CauvHMLn797W4mrH61gK7r3FTOlGGAvtmhrJGModyC6HsOI5y6GP1lR4iv3bfz4zX9CH4N480JO5igFyMiy2P3VmCycdGxfAYXnrPh47jS8a8/Be08OOnBJd5MQlQJMZgPev5oH57lUdqgAes/IcNAt12tQCnj6mRSczEsR+IHv1uDr+VvA8h8bAuegjlKAke1A4mKLv67D/doiLrdGBPz+E/3JTWQezFYK0C+TfsIEa7pINx8zoOBsqp56IF9cMaE0el883TmOFHwRLIYnUKThyxvFOFNmTagCout7vwtCQuEoBdy5uYnffhC3N91mgsNl0XDipFlYNnIjiuA1sUYgSBylAOJ+8HoI3k/vYn5mjYshQSp82/sP3qtZxObGDsILGwL/r6D6oO4rYPXfbXzWdgsXX17EhZf+3BeX3gpjJbxJunHN/7/AJZ8nJBMJWJfEjyoUJQHfH1U3SZ8ZEnCRJVYZjnrQab1AAq6zzi8yjDGoTwtLPs6Q1FCPcRY/z/DzAwAAAP//5L58yAAAAAZJREFUAwD5U7f9S34UdAAAAABJRU5ErkJggg==" media="(prefers-color-scheme: dark)" />
|
|
34812
|
+
<link rel="icon" type="image/png" sizes="16x16" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB9klEQVR4AZSQTUgbQRTH/7a0AbUpJQaWSHtqoQnkUBISmpbuZS89BSL0UAikKfQQKCEiRXpLQCqhiZSWtpQiIojm4J48CIISEMSsIuLJg3pYXfyIRjH4gYlx5uEGxg9QmP+b/3vz3m+GuQOgjWmTqXZLbbH+dxzwhxk7021XCxv4zQE2ZmgpigKr1YpAIACPx4NIJELy+XwIh8PkvV4v9Z4HGweceyCRSECSJESjUaRSKQSDQQK63W7E43G4XC6q1weYEQAsh8PhoCFVVZHP5yHLMkKhED+CYRhIp9PkzSAAstks/H4/NE2DruuwWCwoFApIJpPI5XKU2+3idwmAyakJ/O3N4F9fD6bnxsnzfHZWQybznfKRUdW8nHYB8KFLwoD+/JJ+zjyF61Uj1TsHHtOgGQTAcGYLHfJyXZ3KCkobFTxxWtDSeo9mGhpoqwcBUN6twvmyES+UZpJbbkLttN57pREAbe12fOyWEPxsg+/tA1LTQ6HlEkQ4bX50lxoGuzaReL2E9jdLKK5VqHZdEADbxgn1Rb+xz1x1YshwovXZfRwf1lAuVensYhAAak8R3e91/IoZ6Pu6jv9f1vHj0xo62EsWtQPyw9miwOCAbbNSrdQwqe5hrL8kaGXhCPs7VarNT5TNdr7vcECMORHLCjdY/OLYGQAAAP//6y/ZDQAAAAZJREFUAwBQQbiXTkChbAAAAABJRU5ErkJggg==" media="(prefers-color-scheme: dark)" />
|
|
34813
|
+
<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAGQAAAG4AAADOAAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAADQAAAAcwAAABoAAAACAAAAAAAAAAEAAAA8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMkAAABAAAAAAgAAABgAAADEAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAADKAAAAGgAAAGoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAdQAAAMgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA0wAAAPUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wIKCP8JMyX/C0Av/wxAL/8MQC//DEAv/wxAL/8MQC//DEAv/wxAL/8MQC//DEAv/wxAL/8MQC//DEAv/wcqHv8BBgT/AAAA/wAAAP8AAAD/BR4W/wxAL/8MQC//DEAv/wxAL/8JMiX/AQYE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CC0h/yPBjP8o4KL/KOSl/ynkpv8p5Kb/KeSm/ynkpv8p5Kb/KeSm/ynkpv8p5Kb/KeSm/ynkpv8p5Kb/KeSl/yfbn/8bk2v/Aw8L/wAAAP8AAAD/HJ5z/ynkpv8p5Kb/KeSm/ynkpv8m0pj/BiAX/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HKh7/Jtic/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/G5lv/wEEA/8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEEA/8WfVv/K/Sx/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPWy/wo3KP8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wIMCP8cnnP/LPi0/yz4tP8s+LT/LPi0/yz4tP8s9rP/JMuU/yC2hf8gtoX/ILaF/yC2hf8huYb/KeOl/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/xNqTf8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wINCf8donb/LPi0/yz4tP8s+LT/LPi0/yvzsf8XhGD/AQcF/wAAAP8AAAD/AAAA/wAAAP8AAAD/Aw8L/yPEjv8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wINCf8donb/LPi0/yz4tP8s+LT/LPi0/ynlpv8MQjD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xJiR/8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wINCf8donb/LPi0/yz4tP8s+LT/LPi0/yrtrP8RXEP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xBWPv8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wINCf8doXX/LPi0/yz4tP8s+LT/LPi0/yz4tP8n2Z3/E21P/w5NOf8OTTn/Dk05/w5NOf8OTTn/Dk05/xmIY/8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEHBf8Zjmf/LPe0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8OTzn/Keip/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAwL/Fnta/yjjpP8r9LH/LPez/yz3s/8s97P/LPez/yz3s/8s97P/LPez/yz3s/8s97P/LPez/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAEB/ws9LP8Ub1D/FnpY/xZ6Wf8Weln/FnpZ/xZ6Wf8Weln/FnpZ/xZ6Wf8Weln/FnpZ/x6meP8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xBWPv8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xFeRP8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BBYQ/yCwgP8s+LT/LPi0/yz4tP8s+LT/LPi0/xRwUv8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEFA/8SYkf/ILOB/yC1g/8gtYP/ILWD/yC1g/8gtYP/ILWD/yC1g/8gtYP/ILWD/yC1g/8ht4T/JdKZ/yv1sv8s+LT/LPi0/yz4tP8s+LT/LPi0/xNtT/8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wINCf8donb/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPWy/wxDMf8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wINCf8donb/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s97P/Hql7/wEGBf8AAAD/ILWD/yz4tP8s+LT/LPi0/yz4tP8q6an/ByUb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wILCP8cnnP/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yz4tP8s+LT/LPi0/yvzsP8cnnL/BRsU/wAAAP8AAAD/H65//yz4tP8s+LT/LPi0/yz4tP8p5af/BiMa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA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AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAMcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA0gAAAGgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAABgAAADBAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAADIAAAAGgAAAAEAAAA6AAAAwgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMcAAAA+AAAAAgAAAAAAAAABAAAAGAAAAGoAAADKAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAADMAAAAbwAAABkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" media="(prefers-color-scheme: dark)" />
|
|
34814
|
+
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEEUlEQVR4AbxWXUxbVRz/cdd1Y5nORWFQBWErjjn8oDNmLSvdKpkJMRmtddQQfGAk7mFR8GHGLD6oI3w8bW9OeFATs+mDCaCjLPFFi5lBIIILY7gKjOo+gbUrlH7dnXPI7TjsnnY0rM39nXP+n7/fPT29vRLIZ3FxsYTg51AoFCCQHzMWwuFwL+EwEGpIhHh3RkZGH0ElcWwieNzXRlmWDxKS34iI1+gONBPjSYJ0X/Rm2yRy55Z0My/jM9MdyFzmSPdSQwWokvb2XkBl5Vvo7+9ncY/Hw+yzZ8/hzJmv2JrGFVRV2TA1NYXqaicXczrfxfT0NOuhNggFeL1e9PX14dat26zO5/Mxe2JiAq2tbbh8eRQOh50QvsPgcDjQ2dkFl6sX27cXMl9BwfPo6XGhq6ub9VAbhALUkhUfOTeIRKKYmZmNQ6/fgWg0ylI0Gg3z+/1+ZktSBpvVhpQENDWdxP79FgwPD2NgYAAtLa04fNgZ7z8+Po6hoSFQoTU1NbDb7fHYyoVQAC2myYODg6C4ePEPajKUlOxGQ8OHDI2NDcjLew6BQIAR0oSKigoWozn19XWQJCENhBGjcS/y8/PR3t4Bm+1tNDe3ICcnBxZLOWpr32M+6rfbHeyc2GxVMJvN0Ol0OHXqdDxOc+jZoMLUIBRQXFyMkZG/MDn5bxxjY6MwmUxkewfjPiXe0dEOg6EUo6OXHoodOVKnxs18QgEsmoYhoYAb/n/w/92x5PCNIRheOvFUczga5GpCkQXqVoVQwO17k/js/F584SpLjp4yfNy5C+6r34J+fvd8x9W4PUt+GlsJoQAZsZW5CW161+cGjmNmfhoxeel5oBTIsriXUMDWTB2qDS1wvNokxJu7GqGRtAoPIY7g+t0rcftRFkIBmnUbYCmqh3Xn+0IcevkEDHmHOB4ZMmcnM4QCkhUq8Q2azcoypTmhAO/cJTRfsOLYD9tw7PtsVbivfp0SsVIkFBAjB+lLdy2uzQ6T7zZKjmRMFavdcoVYmYUCZue9uBOYUvLYvDPbjHJ9HYfcLcUsluogFBCL8T8lSvTBgR/h3NPGQf+MMVVuVicUwKLLhmDIR55295Z5gGgsjGtzI5xvtYZQwHrNRq7X7MJ/+PSnUnx+3hTHie5XMHHnTy5v/Tq+jguqGEIBT2Xmoih7H1cyH5rDdf+VOHzBm1w8a3MBCp/ew/mSGUIBtPBo2TewvnAURVkm6LOMCWEsrEHDgU7QHdj2xA4uN5vYtJ8aEgrI1G6Bo/QkGq1d+MjanRC1r5/G1k3PMo4Xc9/gcl/SHWR+tYEKEP9XqlWsrS8iybL869r2XFU3t6TVaj8hJQ/eJoiRpovu/HGJvP3+TXZhH5ldhDhIsKaXSrMQ8f1CUE5uvv8+AAAA//8JmsqeAAAABklEQVQDAMqpP/CcWNvDAAAAAElFTkSuQmCC" media="(prefers-color-scheme: light)" />
|
|
34815
|
+
<link rel="icon" type="image/png" sizes="16x16" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACGUlEQVR4AZSTUUhTURzGv93KTB/ayJjhgoKoC0LTyQJn+FDXB6EFpRAMexEjvEsY0bxvRbj12EPEbg/Rm8seQlcwTKEYpNBwbdKDm0VvsWutpDsS7t3D7Zyju3gEQeF8//ud//l/v4fLOYJhGNdN0/xpmqa1H9VqtV8ke0NwOBwJAMeJ9rUsy2ohWVUgqRYitjKZDKrVKrLZLAqFAiYnk0xLSzlMTb1iPp/Ps9mt4qKALQ8kEio0TUMy+RLx+COk02kC1FEsrkBVVZRKJcRicXueGg5AG+VyGbquIxgMoqcngIWFRaRSb2BZQGurG5FIhI7Z4gCyLCOX+wyv1wuPpw2GYcLn80FRFAwODrB9pVKxw9RwgO6LfoyMDmH4dgj+wHnmR+Qh+Lo6MDYWZvv+KxLN2eIAqeUJKCmR14yI2GwvvlU+sf7zxWE7TA0HkMQwopdnbd299BZHG93Q9BLW//2g8yC/gn3rhQM0NTjx/XcWK9oHptW1j3A46iM7o5uI+inbzRef4nXhPt6vPsOX8hzTRu0vO9utcIANc3O4v/0elL55jEtzcB1p2y3L+hzA2XSCNWeWH2J8+hyi02ewVv2KQwca0XzYxc52Fg4gnR3FrcALhPyPca3jAQY6J3DzwhNEpXc4dayL+T7xDsegj8m+GYJwEJ0nr6L7dIiTx9mO5gYX64nu3u2AdQoIk44NIX6v6w95kfJ/AAAA//8DBm3/AAAABklEQVQDAD1O8nsvesBTAAAAAElFTkSuQmCC" media="(prefers-color-scheme: light)" />
|
|
34816
|
+
<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,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+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr6+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/6/Tx/3bJpv9IuIn/R7iI/0e4iP9HuIj/R7iI/0e4iP9HuIj/R7iI/0e4iP9pxJ3/3/Dp//r6+v+34dD/R7iI/0e4iP9HuIj/tODN//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vr6+vr/+vr6//r6+v/6+vr/+vr6//r6+v9KuYn/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8ur3n/8vf1/5TUuf8Oo2T/DqNk/w6jZP+R07f/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6+vr6+v/6+vr/+vr6//r6+v/6+vr/4fHq/w6jZP8Oo2T/DqNk/w6jZP8eqW7/NLB8/zSwfP80sHz/JKty/w6jZP8Oo2T/DqNk/w6jZP+/5NT/lNS5/w6jZP8Oo2T/DqNk/5HTt//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr6+vr6//r6+v/6+vr/+vr6//r6+v/Z7eX/DqNk/w6jZP8Oo2T/KKx1/+318f/6+vr/+vr6//r6+v/1+Pf/QraE/w6jZP8Oo2T/DqNk/7fhz/+U1Ln/DqNk/w6jZP8Oo2T/kdO3//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vr6+vr/+vr6//r6+v/6+vr/+vr6/9nt5f8Oo2T/DqNk/w6jZP82sn3/+fr5//r6+v/6+vr/+vr6//r6+v9vxqH/DqNk/w6jZP8Oo2T/t+HP/5TUuf8Oo2T/DqNk/w6jZP+R07f/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6+vr6+v/6+vr/+vr6//r6+v/6+vr/3O/n/w6jZP8Oo2T/DqNk/w6jZP9LuYv/cMei/3DHov9wx6L/cMei/zayff8Oo2T/DqNk/w6jZP+34c//lNS5/w6jZP8Oo2T/DqNk/5HTt//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr6+vr6//r6+v/6+vr/+vr6//r6+v/3+fj/LK53/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/7fhz/+U1Ln/DqNk/w6jZP8Oo2T/kdO3//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vr6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/P6t//PLSB/xGkZv8Qo2b/EKNm/xCjZv8Qo2b/EKNm/xCjZv8Po2X/DqNk/w6jZP8Oo2T/t+HP/5TUuf8Oo2T/DqNk/w6jZP+R07f/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6+vr6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/2/Gof8Oo2T/DqNk/w6jZP+34c//lNS5/w6jZP8Oo2T/DqNk/5HTt//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr6+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/Y8Ka/w6jZP8Oo2T/DqNk/7fhz/+U1Ln/DqNk/w6jZP8Oo2T/kdO3//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vr6+vr/+vr6//r6+v/6+vr/+vr6//P39v+W1bv/k9O4/5PTuP+T07j/k9O4/5PTuP+T07j/k9O4/3/Mq/8UpWj/DqNk/w6jZP8Oo2T/uOHQ/5TUuf8Oo2T/DqNk/w6jZP+R07f/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6+vr6+v/6+vr/+vr6//r6+v/6+vr/2e7l/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/xKkZv/e8Oj/lNS5/w6jZP8Oo2T/DqNk/5HTt//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr6+vr6//r6+v/6+vr/+vr6//r6+v/b7ub/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Wpmn/nNe+//r6+v+X1bv/DqNk/w6jZP8Oo2T/k9S4//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vr6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/W7eP/0+vh/9Pr4f/T6+H/0+vh/9Pr4f/T6+H/0+vh/9Pr4f/T6+H/0+zh/+318v/6+vr/+vr6//L39f/T6+H/0+vh/9Pr4f/x9vT/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6+vr6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr6+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vr6+vr/+vr6//r6+v/6+vr/+vr6/9LS0v8pJyf/GxkZ/xsZGf8bGRn/IyEh/8DAwP8sKyv/GxkZ/xsZGf8bGRn/GxkZ/19eXv/JyMj/JSMj/xsZGf8bGRn/GxkZ/xsZGf+Yl5f/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6+vr6+v/6+vr/+vr6//r6+v/6+vr/mpmZ/wsJCf9/fn7/yMjI/5OSkv8LCQn/goGB/87Ozv/IyMj/yMjI/8fHx/8vLi7/Dw0N/4yLi/8LCQn/iomJ/8jIyP/IyMj/yMjI/+bm5v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr6+vr6//r6+v/6+vr/+vr6//r6+v+ZmJj/CwkJ/7GwsP/6+vr/ysrK/wsJCf+CgYH/o6Ki/1lYWP9ZWFj/V1ZW/xMREf8aGBj/i4qK/wsJCf9GRUX/WVhY/1lYWP9mZGT/5OTk//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vr6+vr/+vr6//r6+v/6+vr/+vr6/5mYmP8LCQn/sbCw//r6+v/Kysr/CwkJ/4KBgf8fHR3/GhgY/4eGhv+KiYn/iomJ/8LCwv+Lior/CwkJ/2tqav+KiYn/WFdX/wsJCf+SkpL/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6+vr6+v/6+vr/+vr6//r6+v/6+vr/mZiY/wsJCf+xsLD/+vr6/8rKyv8LCQn/goGB/x4cHP8dHBz/mJiY/5ubm/+bm5v/n56e/46Njf8LCQn/Z2Zm/5ubm/9lZGT/CwkJ/5GQkP/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr6+vr6//r6+v/6+vr/+vr6//r6+v+0s7P/RkRE/8XFxf/6+vr/2NjY/0ZERP+ioaH/lJOT/0ZERP9GRET/RkRE/0ZERP9LSkr/3Nzc/1JRUf9GRET/RkRE/0ZERP9TUlL/3t7e//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vr6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr68fr6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vv5+fmy+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6vvn5+Sv6+vrx+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vX6+vo0AAAAAPn5+Sz5+fm1+vr69fr6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf7+/u5+vr6MgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B9PT0GPr6+mz6+vrM+vr6+vr6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vv5+fnS+/v7dfb29hv///8CAAAAAP///wH7+/s6+vr6w/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+sv7+/tC////Av///xf6+vrB+vr6/vr6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v75+fnN9vb2HPz8/GX6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+/v7evr6+sT6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+fn52Pr6+vD6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/fr6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//D29P/J6Nv/veTT/73j0/+949P/vePT/73j0/+949P/vePT/73j0/+949P/vePT/73j0/+949P/vePT/9Hr4P/0+Pb/+vr6//r6+v/6+vr/3/Do/73j0/+949P/vePT/73j0//K6Nv/9Pj2//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/0evg/0S3h/8lrHP/Iapw/yGqcP8hqnD/Iapw/yGqcP8hqnD/Iapw/yGqcP8hqnD/Iapw/yGqcP8hqnD/Iapw/ymtdf9sxZ//6/Tw//r6+v/6+vr/ZsOc/yGqcP8hqnD/Iapw/yGqcP8xsHr/2+7m//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/V7OL/L695/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/ZcKb//b49//6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//f5+P+Gz7D/EqRm/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/EKRl/8Ll1//6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//D29P9nxJz/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Qo2X/OLJ//0y5i/9MuYv/TLmL/0y5i/9KuYr/I6tx/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/5DTt//6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+/28/9jwpr/DqNk/w6jZP8Oo2T/DqNk/xKkZ/96yqj/8/f1//r6+v/6+vr/+vr6//r6+v/6+vr/7fXy/0O2hf8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+/28/9jwpr/DqNk/w6jZP8Oo2T/DqNk/yCpb/+44tD/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/6LZwv8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+/28/9jwpr/DqNk/w6jZP8Oo2T/DqNk/xinav+f2cD/+fr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/6/eyf8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+/28/9kwpv/DqNk/w6jZP8Oo2T/DqNk/w6jZP8rrXb/kdO3/7Dfy/+w38v/sN/L/7Dfy/+w38v/sN/L/3zMqv8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//X49v92yab/D6Nl/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v+y38z/Hqlu/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/4+fn/h8+x/yOrcf8SpWf/D6Nl/w+jZf8Po2X/D6Nl/w+jZf8Po2X/D6Nl/w+jZf8Po2X/D6Nl/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+fr5/8Ll1v+R07f/hs+x/4bPsP+Gz7D/hs+w/4bPsP+Gz7D/hs+w/4bPsP+Gz7D/hs+w/2DBmP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/6/eyf8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/6fbxf8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/5vLt/1W9kf8Oo2T/DqNk/w6jZP8Oo2T/DqNk/4rQsv/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//b5+P+e2MD/ULuO/0+6jf9Puo3/T7qN/0+6jf9Puo3/T7qN/0+6jf9Puo3/T7qN/0+6jf9NuYz/M7B8/xGkZv8Oo2T/DqNk/w6jZP8Oo2T/DqNk/43StP/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+/28/9jwpr/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/EKRl/7fhz//6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+/28/9jwpr/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Po2X/V72S//P39f/6+vr/UbyP/w6jZP8Oo2T/DqNk/w6jZP8bp2z/1+3j//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//D29P9nxJz/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/w6jZP8Oo2T/DqNk/xOlZ/9iwZn/3/Dp//r6+v/6+vr/V76T/w6jZP8Oo2T/DqNk/w6jZP8eqW7/2O3k//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/f8Oj/u+PS/7ni0P+54tD/ueLQ/7ni0P+54tD/ueLQ/7ni0P+54tD/ueLQ/7ni0P+54tD/ueLQ/7ni0P+54tD/uuPR/9nt5f/5+vn/+vr6//r6+v/6+vr/4/Lr/7ni0P+54tD/ueLQ/7ni0P/L6Nz/9fj3//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vf6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/Q0ND/l5aW/5KRkf+SkZH/kpGR/5KRkf+SkZH/oJ+f/+vr6//Pz8//lZSU/5KRkf+SkZH/kpGR/5KRkf+SkZH/kpGR/7CwsP/z8/P/8PDw/6Ojo/+SkZH/kpGR/5KR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+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vD6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/fr6+sP6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+fn51/r6+mT6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+/v7d/T09Bf7+/u++vr6/fr6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v76+vrL9vb2G////wH6+vo4+vr6wPr6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+sn39/dB////AgAAAAD///8B////F/j4+Gj6+vrI+vr69/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+vn6+vrN+vr6cPX19Rr///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" media="(prefers-color-scheme: light)" />
|
|
34817
|
+
<link rel="apple-touch-icon" sizes="180x180" href="data:image/png;base64,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" />
|
|
34818
|
+
<title>UseAI \u2014 Local Dashboard</title>
|
|
34817
34819
|
<script type="module" crossorigin>function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var t,n,r={exports:{}},a={};var s,i,o=(n||(n=1,r.exports=function(){if(t)return a;t=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function r(t,n,r){var a=null;if(void 0!==r&&(a=""+r),void 0!==n.key&&(a=""+n.key),"key"in n)for(var s in r={},n)"key"!==s&&(r[s]=n[s]);else r=n;return n=r.ref,{$$typeof:e,type:t,key:a,ref:void 0!==n?n:null,props:r}}return a.Fragment=n,a.jsx=r,a.jsxs=r,a}()),r.exports),l={exports:{}},c={};function u(){if(s)return c;s=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),o=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),p=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,y={};function v(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||m}function x(){}function b(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||m}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},x.prototype=v.prototype;var w=b.prototype=new x;w.constructor=b,g(w,v.prototype),w.isPureReactComponent=!0;var k=Array.isArray;function S(){}var j={H:null,A:null,T:null,S:null},C=Object.prototype.hasOwnProperty;function N(t,n,r){var a=r.ref;return{$$typeof:e,type:t,key:n,ref:void 0!==a?a:null,props:r}}function T(t){return"object"==typeof t&&null!==t&&t.$$typeof===e}var E=/\\/+/g;function M(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var n,r}function P(n,r,a,s,i){var o=typeof n;"undefined"!==o&&"boolean"!==o||(n=null);var l,c,u=!1;if(null===n)u=!0;else switch(o){case"bigint":case"string":case"number":u=!0;break;case"object":switch(n.$$typeof){case e:case t:u=!0;break;case h:return P((u=n._init)(n._payload),r,a,s,i)}}if(u)return i=i(n),u=""===s?"."+M(n,0):s,k(i)?(a="",null!=u&&(a=u.replace(E,"$&/")+"/"),P(i,r,a,"",function(e){return e})):null!=i&&(T(i)&&(l=i,c=a+(null==i.key||n&&n.key===i.key?"":(""+i.key).replace(E,"$&/")+"/")+u,i=N(l.type,c,l.props)),r.push(i)),1;u=0;var d,f=""===s?".":s+":";if(k(n))for(var m=0;m<n.length;m++)u+=P(s=n[m],r,a,o=f+M(s,m),i);else if("function"==typeof(m=null===(d=n)||"object"!=typeof d?null:"function"==typeof(d=p&&d[p]||d["@@iterator"])?d:null))for(n=m.call(n),m=0;!(s=n.next()).done;)u+=P(s=s.value,r,a,o=f+M(s,m++),i);else if("object"===o){if("function"==typeof n.then)return P(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(S,S):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(n),r,a,s,i);throw r=String(n),Error("Objects are not valid as a React child (found: "+("[object Object]"===r?"object with keys {"+Object.keys(n).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return u}function L(e,t,n){if(null==e)return e;var r=[],a=0;return P(e,r,"","",function(e){return t.call(n,e,a++)}),r}function D(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)},function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var A="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},_={map:L,forEach:function(e,t,n){L(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return L(e,function(){t++}),t},toArray:function(e){return L(e,function(e){return e})||[]},only:function(e){if(!T(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};return c.Activity=f,c.Children=_,c.Component=v,c.Fragment=n,c.Profiler=a,c.PureComponent=b,c.StrictMode=r,c.Suspense=u,c.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=j,c.__COMPILER_RUNTIME={__proto__:null,c:function(e){return j.H.useMemoCache(e)}},c.cache=function(e){return function(){return e.apply(null,arguments)}},c.cacheSignal=function(){return null},c.cloneElement=function(e,t,n){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var r=g({},e.props),a=e.key;if(null!=t)for(s in void 0!==t.key&&(a=""+t.key),t)!C.call(t,s)||"key"===s||"__self"===s||"__source"===s||"ref"===s&&void 0===t.ref||(r[s]=t[s]);var s=arguments.length-2;if(1===s)r.children=n;else if(1<s){for(var i=Array(s),o=0;o<s;o++)i[o]=arguments[o+2];r.children=i}return N(e.type,a,r)},c.createContext=function(e){return(e={$$typeof:o,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:i,_context:e},e},c.createElement=function(e,t,n){var r,a={},s=null;if(null!=t)for(r in void 0!==t.key&&(s=""+t.key),t)C.call(t,r)&&"key"!==r&&"__self"!==r&&"__source"!==r&&(a[r]=t[r]);var i=arguments.length-2;if(1===i)a.children=n;else if(1<i){for(var o=Array(i),l=0;l<i;l++)o[l]=arguments[l+2];a.children=o}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===a[r]&&(a[r]=i[r]);return N(e,s,a)},c.createRef=function(){return{current:null}},c.forwardRef=function(e){return{$$typeof:l,render:e}},c.isValidElement=T,c.lazy=function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:D}},c.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},c.startTransition=function(e){var t=j.T,n={};j.T=n;try{var r=e(),a=j.S;null!==a&&a(n,r),"object"==typeof r&&null!==r&&"function"==typeof r.then&&r.then(S,A)}catch(s){A(s)}finally{null!==t&&null!==n.types&&(t.types=n.types),j.T=t}},c.unstable_useCacheRefresh=function(){return j.H.useCacheRefresh()},c.use=function(e){return j.H.use(e)},c.useActionState=function(e,t,n){return j.H.useActionState(e,t,n)},c.useCallback=function(e,t){return j.H.useCallback(e,t)},c.useContext=function(e){return j.H.useContext(e)},c.useDebugValue=function(){},c.useDeferredValue=function(e,t){return j.H.useDeferredValue(e,t)},c.useEffect=function(e,t){return j.H.useEffect(e,t)},c.useEffectEvent=function(e){return j.H.useEffectEvent(e)},c.useId=function(){return j.H.useId()},c.useImperativeHandle=function(e,t,n){return j.H.useImperativeHandle(e,t,n)},c.useInsertionEffect=function(e,t){return j.H.useInsertionEffect(e,t)},c.useLayoutEffect=function(e,t){return j.H.useLayoutEffect(e,t)},c.useMemo=function(e,t){return j.H.useMemo(e,t)},c.useOptimistic=function(e,t){return j.H.useOptimistic(e,t)},c.useReducer=function(e,t,n){return j.H.useReducer(e,t,n)},c.useRef=function(e){return j.H.useRef(e)},c.useState=function(e){return j.H.useState(e)},c.useSyncExternalStore=function(e,t,n){return j.H.useSyncExternalStore(e,t,n)},c.useTransition=function(){return j.H.useTransition()},c.version="19.2.4",c}function d(){return i||(i=1,l.exports=u()),l.exports}var h=d();const f=e(h);var p,m,g={exports:{}},y={},v={exports:{}},x={};function b(){return m||(m=1,v.exports=(p||(p=1,function(e){function t(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,s=e[r];if(!(0<a(s,t)))break e;e[r]=t,e[n]=s,n=r}}function n(e){return 0===e.length?null:e[0]}function r(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,s=e.length,i=s>>>1;r<i;){var o=2*(r+1)-1,l=e[o],c=o+1,u=e[c];if(0>a(l,n))c<s&&0>a(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[o]=n,r=o);else{if(!(c<s&&0>a(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(e.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var s=performance;e.unstable_now=function(){return s.now()}}else{var i=Date,o=i.now();e.unstable_now=function(){return i.now()-o}}var l=[],c=[],u=1,d=null,h=3,f=!1,p=!1,m=!1,g=!1,y="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,x="undefined"!=typeof setImmediate?setImmediate:null;function b(e){for(var a=n(c);null!==a;){if(null===a.callback)r(c);else{if(!(a.startTime<=e))break;r(c),a.sortIndex=a.expirationTime,t(l,a)}a=n(c)}}function w(e){if(m=!1,b(e),!p)if(null!==n(l))p=!0,S||(S=!0,k());else{var t=n(c);null!==t&&L(w,t.startTime-e)}}var k,S=!1,j=-1,C=5,N=-1;function T(){return!(!g&&e.unstable_now()-N<C)}function E(){if(g=!1,S){var t=e.unstable_now();N=t;var a=!0;try{e:{p=!1,m&&(m=!1,v(j),j=-1),f=!0;var s=h;try{t:{for(b(t),d=n(l);null!==d&&!(d.expirationTime>t&&T());){var i=d.callback;if("function"==typeof i){d.callback=null,h=d.priorityLevel;var o=i(d.expirationTime<=t);if(t=e.unstable_now(),"function"==typeof o){d.callback=o,b(t),a=!0;break t}d===n(l)&&r(l),b(t)}else r(l);d=n(l)}if(null!==d)a=!0;else{var u=n(c);null!==u&&L(w,u.startTime-t),a=!1}}break e}finally{d=null,h=s,f=!1}a=void 0}}finally{a?k():S=!1}}}if("function"==typeof x)k=function(){x(E)};else if("undefined"!=typeof MessageChannel){var M=new MessageChannel,P=M.port2;M.port1.onmessage=E,k=function(){P.postMessage(null)}}else k=function(){y(E,0)};function L(t,n){j=y(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var n=h;h=t;try{return e()}finally{h=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=h;h=e;try{return t()}finally{h=n}},e.unstable_scheduleCallback=function(r,a,s){var i=e.unstable_now();switch(s="object"==typeof s&&null!==s&&"number"==typeof(s=s.delay)&&0<s?i+s:i,r){case 1:var o=-1;break;case 2:o=250;break;case 5:o=1073741823;break;case 4:o=1e4;break;default:o=5e3}return r={id:u++,callback:a,priorityLevel:r,startTime:s,expirationTime:o=s+o,sortIndex:-1},s>i?(r.sortIndex=s,t(c,r),null===n(l)&&r===n(c)&&(m?(v(j),j=-1):m=!0,L(w,s-i))):(r.sortIndex=o,t(l,r),p||f||(p=!0,S||(S=!0,k()))),r},e.unstable_shouldYield=T,e.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}}(x)),x)),v.exports}var w,k,S,j,C={exports:{}},N={};function T(){if(w)return N;w=1;var e=d();function t(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var r={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},a=Symbol.for("react.portal");var s=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function i(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}return N.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,N.createPortal=function(e,n){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!n||1!==n.nodeType&&9!==n.nodeType&&11!==n.nodeType)throw Error(t(299));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:a,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,n,null,r)},N.flushSync=function(e){var t=s.T,n=r.p;try{if(s.T=null,r.p=2,e)return e()}finally{s.T=t,r.p=n,r.d.f()}},N.preconnect=function(e,t){"string"==typeof e&&(t?t="string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:t=null,r.d.C(e,t))},N.prefetchDNS=function(e){"string"==typeof e&&r.d.D(e)},N.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var n=t.as,a=i(n,t.crossOrigin),s="string"==typeof t.integrity?t.integrity:void 0,o="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===n?r.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:a,integrity:s,fetchPriority:o}):"script"===n&&r.d.X(e,{crossOrigin:a,integrity:s,fetchPriority:o,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},N.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var n=i(t.as,t.crossOrigin);r.d.M(e,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&r.d.M(e)},N.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var n=t.as,a=i(n,t.crossOrigin);r.d.L(e,n,{crossOrigin:a,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},N.preloadModule=function(e,t){if("string"==typeof e)if(t){var n=i(t.as,t.crossOrigin);r.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else r.d.m(e)},N.requestFormReset=function(e){r.d.r(e)},N.unstable_batchedUpdates=function(e,t){return e(t)},N.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},N.useFormStatus=function(){return s.H.useHostTransitionStatus()},N.version="19.2.4",N}function E(){if(k)return C.exports;return k=1,function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),C.exports=T(),C.exports}
|
|
34818
34820
|
/**
|
|
34819
34821
|
* @license React
|
|
@@ -34843,7 +34845,7 @@ var gl={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24
|
|
|
34843
34845
|
* This source code is licensed under the ISC license.
|
|
34844
34846
|
* See the LICENSE file in the root directory of this source tree.
|
|
34845
34847
|
*/function kc(e){if(mc[e])return e;return wc.filter(t=>e.startsWith(t)).sort((e,t)=>t.length-e.length)[0]??e}var Sc=E(),jc=new Map;function Cc(e){let t=jc.get(e);return void 0===t&&(t=new Date(e).getTime(),jc.set(e,t)),t}function Nc(e){if(0===e.length)return 0;const t=new Set;for(const i of e)i.started_at&&t.add(i.started_at.slice(0,10));const n=[...t].sort().reverse();if(0===n.length)return 0;const r=(new Date).toISOString().slice(0,10),a=new Date(Date.now()-864e5).toISOString().slice(0,10);if(n[0]!==r&&n[0]!==a)return 0;let s=1;for(let i=1;i<n.length;i++){const e=new Date(n[i-1]),t=new Date(n[i]);if(1!==(e.getTime()-t.getTime())/864e5)break;s++}return s}function Tc(e){const t=e.filter(e=>e.session.evaluation);if(0===t.length)return null;let n=0,r=0,a=0,s=0,i=0,o=0;const l={};for(const u of t){const e=u.session.evaluation;n+=e.prompt_quality,r+=e.context_provided,a+=e.independence_level,s+=e.scope_quality,i+=e.tools_leveraged,o+=e.iteration_count,l[e.task_outcome]=(l[e.task_outcome]??0)+1}const c=t.length;return{prompt_quality:Math.round(n/c*10)/10,context_provided:Math.round(r/c*10)/10,independence_level:Math.round(a/c*10)/10,scope_quality:Math.round(s/c*10)/10,tools_leveraged:Math.round(i/c),total_iterations:o,outcomes:l,session_count:c}}function Ec({sessions:e,timeScale:t,effectiveTime:n,isLive:r,onDayClick:a,highlightDate:s}){const i="day"===t||"24h"===t||"12h"===t||"6h"===t,l=new Date(n).toISOString().slice(0,10),c=h.useMemo(()=>i?function(e,t){const n=new Date(\`\${t}T00:00:00\`).getTime(),r=n+864e5,a=[];for(let s=0;s<24;s++)a.push({hour:s,minutes:0});for(const s of e){const e=Cc(s.started_at),t=Cc(s.ended_at);if(t<n||e>r)continue;const i=Math.max(e,n),o=Math.min(t,r);for(let r=0;r<24;r++){const e=n+36e5*r,t=e+36e5,s=Math.max(i,e),l=Math.min(o,t);l>s&&(a[r].minutes+=(l-s)/6e4)}}return a}(e,l):[],[e,l,i]),u=h.useMemo(()=>i?[]:function(e,t){const n=new Date,r=[];for(let a=t-1;a>=0;a--){const t=new Date(n);t.setDate(t.getDate()-a);const s=t.toISOString().slice(0,10);let i=0;for(const n of e){const e=n.started_at?.slice(0,10);e&&e===s&&(i+=n.duration_seconds)}r.push({date:s,hours:i/3600})}return r}(e,7),[e,i]),d=i?\`Hourly \u2014 \${new Date(n).toLocaleDateString([],{month:"short",day:"numeric"})}\`:"Last 7 Days";if(i){const e=Math.max(...c.map(e=>e.minutes),1);return o.jsxs("div",{className:"mb-8 p-5 rounded-2xl bg-bg-surface-1/50 border border-border/50",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4 px-1",children:[o.jsx("div",{className:"text-xs text-text-muted uppercase tracking-widest font-bold",children:d}),o.jsxs("div",{className:"text-[10px] text-text-muted font-mono bg-bg-surface-2 px-2 py-0.5 rounded",children:[e.toFixed(0),"m peak"]})]}),o.jsx("div",{className:"flex items-end gap-[3px] h-16",children:c.map((t,n)=>{const r=e>0?t.minutes/e*100:0;return o.jsxs("div",{className:"flex-1 flex flex-col items-center justify-end h-full group relative",children:[o.jsx("div",{className:"absolute -top-10 left-1/2 -translate-x-1/2 opacity-0 group-hover:opacity-100 transition-opacity z-20 pointer-events-none",children:o.jsxs("div",{className:"bg-bg-surface-3 text-text-primary text-[10px] font-mono px-2 py-1.5 rounded-lg shadow-xl whitespace-nowrap border border-border flex flex-col items-center",children:[o.jsxs("span",{className:"font-bold",children:[t.hour,":00"]}),o.jsxs("span",{className:"text-accent",children:[t.minutes.toFixed(0),"m active"]}),o.jsx("div",{className:"absolute -bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 bg-bg-surface-3 border-r border-b border-border rotate-45"})]})}),o.jsx(pl.div,{initial:{height:0},animate:{height:\`\${Math.max(r,t.minutes>0?8:0)}%\`},transition:{delay:.01*n,duration:.5},className:"w-full rounded-t-sm transition-all duration-300 group-hover:bg-accent relative overflow-hidden",style:{minHeight:t.minutes>0?"4px":"0px",backgroundColor:t.minutes>0?\`rgba(var(--accent-rgb), \${.4+t.minutes/e*.6})\`:"var(--color-bg-surface-2)"},children:t.minutes>.5*e&&o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-transparent to-white/10"})})]},t.hour)})}),o.jsx("div",{className:"flex gap-[3px] mt-2 border-t border-border/30 pt-2",children:c.map(e=>o.jsx("div",{className:"flex-1 text-center",children:e.hour%6==0&&o.jsx("span",{className:"text-[9px] text-text-muted font-bold font-mono uppercase",children:0===e.hour?"12a":e.hour<12?\`\${e.hour}a\`:12===e.hour?"12p":e.hour-12+"p"})},e.hour))})]})}const f=Math.max(...u.map(e=>e.hours),.1);return o.jsxs("div",{className:"mb-8 p-5 rounded-2xl bg-bg-surface-1/50 border border-border/50",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4 px-1",children:[o.jsx("div",{className:"text-xs text-text-muted uppercase tracking-widest font-bold",children:d}),o.jsx("div",{className:"text-[10px] text-text-muted font-mono bg-bg-surface-2 px-2 py-0.5 rounded",children:"Last 7 days"})]}),o.jsx("div",{className:"flex items-end gap-2 h-16",children:u.map((e,t)=>{const n=f>0?e.hours/f*100:0,r=e.date===s;return o.jsxs("div",{className:"flex-1 flex flex-col items-center justify-end h-full group relative",children:[o.jsx("div",{className:"absolute -top-10 left-1/2 -translate-x-1/2 opacity-0 group-hover:opacity-100 transition-opacity z-20 pointer-events-none",children:o.jsxs("div",{className:"bg-bg-surface-3 text-text-primary text-[10px] font-mono px-2 py-1.5 rounded-lg shadow-xl whitespace-nowrap border border-border flex flex-col items-center",children:[o.jsx("span",{className:"font-bold",children:e.date}),o.jsxs("span",{className:"text-accent",children:[e.hours.toFixed(1),"h active"]}),o.jsx("div",{className:"absolute -bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 bg-bg-surface-3 border-r border-b border-border rotate-45"})]})}),o.jsx(pl.div,{initial:{height:0},animate:{height:\`\${Math.max(n,e.hours>0?8:0)}%\`},transition:{delay:.05*t,duration:.5},className:"w-full rounded-t-md cursor-pointer transition-all duration-300 group-hover:scale-x-110 origin-bottom "+(r?"ring-2 ring-accent ring-offset-2 ring-offset-bg-base":""),style:{minHeight:e.hours>0?"4px":"0px",backgroundColor:r?"var(--color-accent-bright)":e.hours>0?\`rgba(var(--accent-rgb), \${.4+e.hours/f*.6})\`:"var(--color-bg-surface-2)"},onClick:()=>a?.(e.date)})]},e.date)})}),o.jsx("div",{className:"flex gap-2 mt-2 border-t border-border/30 pt-2",children:u.map(e=>o.jsx("div",{className:"flex-1 text-center",children:o.jsx("span",{className:"text-[10px] text-text-muted font-bold uppercase tracking-tighter",children:new Date(e.date+"T12:00:00").toLocaleDateString([],{weekday:"short"})})},e.date))})]})}var Mc=[{key:"simple",label:"Simple",color:"#34d399"},{key:"medium",label:"Medium",color:"#fbbf24"},{key:"complex",label:"Complex",color:"#f87171"}];function Pc({data:e}){const t=e.simple+e.medium+e.complex;if(0===t)return null;const n=Math.max(e.simple,e.medium,e.complex);return o.jsxs(pl.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.15},className:"rounded-xl bg-bg-surface-1 border border-border/50 p-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx("div",{className:"p-1.5 rounded-lg bg-bg-surface-2",children:o.jsx(Ul,{className:"w-3.5 h-3.5 text-text-muted"})}),o.jsx("h2",{className:"text-sm font-bold text-text-muted uppercase tracking-widest",children:"Complexity"})]}),o.jsx("div",{className:"space-y-3",children:Mc.map((r,a)=>{const s=e[r.key],i=n>0?s/n*100:0,l=t>0?(s/t*100).toFixed(0):"0";return o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("span",{className:"text-xs text-text-secondary font-medium w-16 text-right shrink-0",children:r.label}),o.jsx("div",{className:"flex-1 h-5 rounded bg-bg-surface-2/50 overflow-hidden",children:o.jsx(pl.div,{className:"h-full rounded",style:{backgroundColor:r.color},initial:{width:0},animate:{width:\`\${i}%\`},transition:{duration:.6,delay:.08*a,ease:[.22,1,.36,1]}})}),o.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[o.jsx("span",{className:"text-xs text-text-primary font-mono font-bold w-6 text-right",children:s}),o.jsxs("span",{className:"text-[10px] text-text-muted/70 font-mono w-8 text-right",children:[l,"%"]})]})]},r.key)})}),o.jsx("div",{className:"mt-4 flex h-2 rounded-full overflow-hidden bg-bg-surface-2/30",children:Mc.map(n=>{const r=e[n.key],a=t>0?r/t*100:0;return 0===a?null:o.jsx(pl.div,{className:"h-full",style:{backgroundColor:n.color},initial:{width:0},animate:{width:\`\${a}%\`},transition:{duration:.8,ease:[.22,1,.36,1]}},n.key)})})]})}var Lc=["1h","3h","6h","12h"],Dc=["day","week","month"],Ac=["1h","3h","6h","12h","24h","day","7d","week","30d","month"],_c={day:"24h",week:"7d",month:"30d"},zc={"24h":"day","7d":"week","30d":"month"};function Rc(e){return"day"===e||"week"===e||"month"===e}var Fc={"1h":36e5,"3h":108e5,"6h":216e5,"12h":432e5,"24h":864e5,"7d":6048e5,"30d":2592e6},Vc={"1h":"1 Hour","3h":"3 Hours","6h":"6 Hours","12h":"12 Hours","24h":"24 Hours",day:"Day","7d":"7 Days",week:"Week","30d":"30 Days",month:"Month"};function Ic(e,t){const n=Fc[e];if(void 0!==n)return{start:t-n,end:t};const r=new Date(t);if("day"===e){const e=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime();return{start:e,end:e+864e5}}if("week"===e){const e=r.getDay(),t=0===e?-6:1-e,n=new Date(r.getFullYear(),r.getMonth(),r.getDate()+t).getTime();return{start:n,end:n+6048e5}}return{start:new Date(r.getFullYear(),r.getMonth(),1).getTime(),end:new Date(r.getFullYear(),r.getMonth()+1,1).getTime()}}function Oc(e,t,n){const r=Fc[e];if(void 0!==r)return t+n*r;const a=new Date(t);return"day"===e?new Date(a.getFullYear(),a.getMonth(),a.getDate()+n,12).getTime():"week"===e?new Date(a.getFullYear(),a.getMonth(),a.getDate()+7*n,12).getTime():new Date(a.getFullYear(),a.getMonth()+n,Math.min(a.getDate(),28),12).getTime()}function $c(e,t){return Rc(e)?function(e,t){if(!Rc(e))return!1;const n=Ic(e,t),r=Date.now();return r>=n.start&&r<n.end}(e,t):t>=Date.now()-6e4}function Bc({label:e,value:t,suffix:n,decimals:r=0,icon:a,delay:s=0,variant:i="default",clickable:l=!1,selected:c=!1,onClick:u,subtitle:d}){const f=h.useRef(null),p=h.useRef(0);h.useEffect(()=>{f.current&&t!==p.current&&(!function(e,t,n){let r=null;requestAnimationFrame(function a(s){r||(r=s);const i=Math.min((s-r)/800,1),o=1-Math.pow(1-i,4),l=t*o;e.textContent=n>0?l.toFixed(n):String(Math.round(l)),i<1&&requestAnimationFrame(a)})}(f.current,t,r),p.current=t)},[t,r]);const m="accent"===i;return o.jsxs(pl.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{delay:s},onClick:l&&t>0?u:void 0,className:\`px-3 py-2 rounded-lg border flex items-center gap-2.5 group transition-all duration-300 \${m?"shrink-0 bg-bg-surface-1 border-border/50 hover:border-accent/30":"flex-1 min-w-[120px] bg-bg-surface-1 border-border/50 hover:border-accent/30"} \${l&&t>0?"cursor-pointer":""} \${c?"border-accent/50 bg-accent/5":""}\`,children:[o.jsx("div",{className:"p-1.5 rounded-md transition-colors "+(c?"bg-accent/15":"bg-bg-surface-2 group-hover:bg-accent/10"),children:o.jsx(a,{className:"w-3.5 h-3.5 transition-colors "+(c?"text-accent":"text-text-muted group-hover:text-accent")})}),o.jsxs("div",{className:"flex flex-col min-w-0",children:[o.jsxs("div",{className:"flex items-baseline gap-0.5",children:[o.jsx("span",{ref:f,className:"text-lg font-bold text-text-primary tracking-tight leading-none",children:r>0?t.toFixed(r):Math.round(t)}),n&&o.jsx("span",{className:"text-[10px] text-text-muted font-medium",children:n})]}),o.jsx("span",{className:"text-[9px] font-mono text-text-muted uppercase tracking-wider leading-none mt-0.5",children:e}),d&&o.jsx("span",{className:"text-[8px] text-text-muted/50 leading-none mt-0.5 truncate",children:d})]})]})}function Uc({totalHours:e,coveredHours:t,aiMultiplier:n,featuresShipped:r,bugsFixed:a,complexSolved:s,currentStreak:i,totalMilestones:l,selectedCard:c,onCardClick:u}){const d=e=>{u?.(c===e?null:e)};return o.jsxs("div",{className:"flex gap-2 mb-4",children:[o.jsxs("div",{className:"grid grid-cols-3 lg:grid-cols-7 gap-2 flex-1",children:[o.jsx(Bc,{label:"User Time",value:t<1/60?0:t<1?Math.round(60*t):t,suffix:t<1?"min":"hrs",decimals:t>=1?1:0,icon:Pl,delay:.1,clickable:!0,selected:"activeTime"===c,onClick:()=>d("activeTime")}),o.jsx(Bc,{label:"AI Time",value:e<1?Math.round(60*e):e,suffix:e<1?"min":"hrs",decimals:e<1?0:1,icon:oc,delay:.12,clickable:!0,selected:"aiTime"===c,onClick:()=>d("aiTime")}),o.jsx(Bc,{label:"Multiplier",value:n,suffix:"x",decimals:1,icon:Ul,delay:.15,clickable:!0,selected:"parallel"===c,onClick:()=>d("parallel")}),o.jsx(Bc,{label:"Milestones",value:l,icon:ic,delay:.2,clickable:!0,selected:"milestones"===c,onClick:()=>d("milestones")}),o.jsx(Bc,{label:"Features",value:r,icon:Jl,delay:.25,clickable:!0,selected:"features"===c,onClick:()=>d("features")}),o.jsx(Bc,{label:"Bugs Fixed",value:a,icon:bl,delay:.3,clickable:!0,selected:"bugs"===c,onClick:()=>d("bugs")}),o.jsx(Bc,{label:"Complex",value:s,icon:xl,delay:.35,clickable:!0,selected:"complex"===c,onClick:()=>d("complex")})]}),o.jsx("div",{className:"w-px bg-border/30 self-stretch my-1"}),o.jsx(Bc,{label:"Streak",value:i,suffix:"days",icon:pc,delay:.45,variant:"accent",clickable:!0,selected:"streak"===c,onClick:()=>d("streak")})]})}var Hc={milestones:{title:"All Milestones",icon:ic,filter:()=>!0,emptyText:"No milestones in this time window.",accentColor:"#60a5fa"},features:{title:"Features Shipped",icon:Jl,filter:e=>"feature"===e.category,emptyText:"No features shipped in this time window.",accentColor:"#4ade80"},bugs:{title:"Bugs Fixed",icon:bl,filter:e=>"bugfix"===e.category,emptyText:"No bugs fixed in this time window.",accentColor:"#f87171"},complex:{title:"Complex Tasks",icon:xl,filter:e=>"complex"===e.complexity,emptyText:"No complex tasks in this time window.",accentColor:"#a78bfa"}},Wc={feature:"bg-success/10 text-success border-success/20",bugfix:"bg-error/10 text-error border-error/20",refactor:"bg-purple/10 text-purple border-purple/20",test:"bg-blue/10 text-blue border-blue/20",docs:"bg-accent/10 text-accent border-accent/20",setup:"bg-text-muted/10 text-text-muted border-text-muted/20",deployment:"bg-emerald/10 text-emerald border-emerald/20"};function qc(e){const t=new Date(e),n=(new Date).getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return"just now";if(r<60)return\`\${r}m ago\`;const a=Math.floor(r/60);if(a<24)return\`\${a}h ago\`;const s=Math.floor(a/24);return 1===s?"yesterday":s<7?\`\${s}d ago\`:t.toLocaleDateString([],{month:"short",day:"numeric"})}function Yc({type:e,milestones:t,showPublic:n=!1,onClose:r}){h.useEffect(()=>{if(e)return document.body.style.overflow="hidden",()=>{document.body.style.overflow=""}},[e]);const[a,s]=h.useState(25),i=h.useRef(null);h.useEffect(()=>{const e=i.current;if(!e)return;const t=new IntersectionObserver(([e])=>{e?.isIntersecting&&s(e=>e+25)},{rootMargin:"200px"});return t.observe(e),()=>t.disconnect()},[e,a]),h.useEffect(()=>{s(25)},[e]);if(!e||!("features"===e||"bugs"===e||"complex"===e||"milestones"===e))return null;const l=Hc[e],c=l.icon,u=t.filter(l.filter).sort((e,t)=>new Date(t.created_at).getTime()-new Date(e.created_at).getTime()),d=u.slice(0,a),f=a<u.length,p=new Map;for(const o of d){const e=new Date(o.created_at).toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"}),t=p.get(e);t?t.push(o):p.set(e,[o])}return o.jsx(Qi,{children:e&&o.jsxs(o.Fragment,{children:[o.jsx(pl.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},className:"fixed inset-0 bg-black/40 backdrop-blur-sm z-40",onClick:r}),o.jsxs(pl.div,{initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:{type:"spring",damping:30,stiffness:300},className:"fixed top-0 right-0 h-full w-full max-w-md bg-bg-base border-l border-border/50 z-50 flex flex-col shadow-2xl",children:[o.jsxs("div",{className:"flex items-center gap-3 px-5 py-4 border-b border-border/50",children:[o.jsx("div",{className:"p-2 rounded-lg",style:{backgroundColor:\`\${l.accentColor}15\`},children:o.jsx(c,{className:"w-4 h-4",style:{color:l.accentColor}})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("h2",{className:"text-sm font-bold text-text-primary",children:l.title}),o.jsxs("span",{className:"text-[10px] font-mono text-text-muted",children:[u.length," ",1===u.length?"item":"items"," in window"]})]}),o.jsx("button",{onClick:r,className:"p-1.5 rounded-md hover:bg-bg-surface-2 text-text-muted hover:text-text-primary transition-colors",children:o.jsx(fc,{className:"w-4 h-4"})})]}),o.jsx("div",{className:"flex-1 overflow-y-auto overscroll-contain px-5 py-4",children:0===u.length?o.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[o.jsx(sc,{className:"w-8 h-8 text-text-muted/30 mb-3"}),o.jsx("p",{className:"text-sm text-text-muted",children:l.emptyText})]}):o.jsxs("div",{className:"space-y-5",children:[[...p.entries()].map(([t,r])=>o.jsxs("div",{children:[o.jsx("div",{className:"text-[10px] font-mono text-text-muted uppercase tracking-wider mb-2 px-1",children:t}),o.jsx("div",{className:"space-y-1",children:r.map((t,r)=>{const a=bc[t.category]??"#9c9588",s=Wc[t.category]??"bg-bg-surface-2 text-text-secondary border-border",i=kc(t.client),l=yc[i]??i.slice(0,2).toUpperCase(),c=mc[i]??"#91919a",u="cursor"===i?"var(--text-primary)":c,d=xc[i],h=n?t.title:t.private_title||t.title,f="complex"===t.complexity;return o.jsxs(pl.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,delay:.03*r},className:"flex items-start gap-2.5 py-2 px-2 rounded-lg hover:bg-bg-surface-1 transition-colors group",children:[o.jsx("div",{className:"w-2 h-2 rounded-full flex-shrink-0 mt-1.5",style:{backgroundColor:a}}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-sm text-text-secondary group-hover:text-text-primary transition-colors leading-snug",children:h}),o.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[("complex"===e||"milestones"===e)&&o.jsx("span",{className:\`text-[8px] uppercase tracking-wider font-bold px-1.5 py-0.5 rounded-full border \${s}\`,children:t.category}),f&&"complex"!==e&&o.jsxs("span",{className:"flex items-center gap-0.5 text-[8px] uppercase tracking-wider font-bold px-1.5 py-0.5 rounded-full border bg-purple/10 text-purple border-purple/20",children:[o.jsx(xl,{className:"w-2 h-2"}),"complex"]}),o.jsx("span",{className:"text-[10px] text-text-muted font-mono",children:qc(t.created_at)}),t.languages.length>0&&o.jsx("span",{className:"text-[9px] text-text-muted font-mono",children:t.languages.join(", ")}),o.jsx("div",{className:"w-4 h-4 rounded flex items-center justify-center text-[7px] font-bold font-mono flex-shrink-0 ml-auto",style:{backgroundColor:\`\${c}15\`,color:c,border:\`1px solid \${c}20\`},children:d?o.jsx("div",{className:"w-2.5 h-2.5",style:{backgroundColor:u,maskImage:\`url(\${d})\`,maskSize:"contain",maskRepeat:"no-repeat",maskPosition:"center",WebkitMaskImage:\`url(\${d})\`,WebkitMaskSize:"contain",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center"}}):l})]})]})]},t.id)})})]},t)),f&&o.jsx("div",{ref:i,className:"py-2 text-center",children:o.jsxs("span",{className:"text-[10px] text-text-muted font-mono",children:["Showing ",d.length," of ",u.length,"..."]})})]})})]})]})})}function Kc(e){return"activeTime"===e||"aiTime"===e||"parallel"===e||"streak"===e}var Xc={activeTime:{title:"User Time",icon:Pl,accentColor:"#60a5fa"},aiTime:{title:"AI Time",icon:oc,accentColor:"#4ade80"},parallel:{title:"Multiplier",icon:Ul,accentColor:"#a78bfa"},streak:{title:"Streak",icon:pc,accentColor:"#facc15"}};function Qc(e){if(e<60)return\`\${Math.round(e)}s\`;if(e<3600)return\`\${Math.round(e/60)}m\`;const t=Math.floor(e/3600),n=Math.round(e%3600/60);return n>0?\`\${t}h \${n}m\`:\`\${t}h\`}function Zc(e){return e<1/60?"< 1 min":e<1?\`\${Math.round(60*e)} min\`:\`\${e.toFixed(1)} hrs\`}function Gc(e){if(0===e.length)return[];const t=[];for(const s of e){const e=Cc(s.started_at),n=Cc(s.ended_at);n<=e||(t.push({time:e,delta:1}),t.push({time:n,delta:-1}))}t.sort((e,t)=>e.time-t.time||e.delta-t.delta);const n=[];let r=0,a=0;for(const s of t){const e=r>0;r+=s.delta,!e&&r>0?a=s.time:e&&0===r&&n.push({start:a,end:s.time})}return n}function Jc({children:e}){return o.jsx("div",{className:"px-3 py-2.5 rounded-lg bg-bg-surface-1 border border-border/50 text-xs text-text-secondary leading-relaxed",children:e})}function eu({label:e,value:t}){return o.jsxs("div",{className:"flex items-center justify-between py-1.5 px-1",children:[o.jsx("span",{className:"text-xs text-text-muted",children:e}),o.jsx("span",{className:"text-xs font-mono font-bold text-text-primary",children:t})]})}function tu({type:e,sessions:t,allSessions:n,currentStreak:r=0,stats:a,showPublic:s=!1,onClose:i}){if(h.useEffect(()=>{if(e&&Kc(e))return document.body.style.overflow="hidden",()=>{document.body.style.overflow=""}},[e]),!e||!Kc(e))return null;const l=Xc[e],c=l.icon,u=[...t].sort((e,t)=>Cc(t.started_at)-Cc(e.started_at));return o.jsx(Qi,{children:e&&o.jsxs(o.Fragment,{children:[o.jsx(pl.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},className:"fixed inset-0 bg-black/40 backdrop-blur-sm z-40",onClick:i}),o.jsxs(pl.div,{initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:{type:"spring",damping:30,stiffness:300},className:"fixed top-0 right-0 h-full w-full max-w-md bg-bg-base border-l border-border/50 z-50 flex flex-col shadow-2xl",children:[o.jsxs("div",{className:"flex items-center gap-3 px-5 py-4 border-b border-border/50",children:[o.jsx("div",{className:"p-2 rounded-lg",style:{backgroundColor:\`\${l.accentColor}15\`},children:o.jsx(c,{className:"w-4 h-4",style:{color:l.accentColor}})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("h2",{className:"text-sm font-bold text-text-primary",children:l.title}),o.jsx("span",{className:"text-[10px] font-mono text-text-muted",children:"streak"===e?\`\${r} day\${1===r?"":"s"} consecutive\`:\`\${t.length} sessions in window\`})]}),o.jsx("button",{onClick:i,className:"p-1.5 rounded-md hover:bg-bg-surface-2 text-text-muted hover:text-text-primary transition-colors",children:o.jsx(fc,{className:"w-4 h-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-y-auto overscroll-contain px-5 py-4 space-y-4",children:["activeTime"===e&&o.jsx(nu,{stats:a,sessions:t}),"aiTime"===e&&o.jsx(ru,{stats:a,sessions:u,showPublic:s}),"parallel"===e&&o.jsx(au,{stats:a,sessions:u,showPublic:s}),"streak"===e&&o.jsx(su,{allSessions:n??t,currentStreak:r})]})]})]})})}function nu({stats:e,sessions:t}){const n=Gc(t);return o.jsxs(o.Fragment,{children:[o.jsx(Jc,{children:"Real wall-clock time where at least one AI session was running. Gaps between sessions (breaks, thinking, context switches) are excluded."}),o.jsxs("div",{className:"rounded-lg border border-border/50 bg-bg-surface-1 divide-y divide-border/30",children:[o.jsx(eu,{label:"User time",value:Zc(e.coveredHours)}),o.jsx(eu,{label:"AI time",value:Zc(e.totalHours)}),o.jsx(eu,{label:"Active periods",value:String(n.length)}),o.jsx(eu,{label:"Sessions",value:String(t.length)})]}),n.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"text-[10px] font-mono text-text-muted uppercase tracking-wider px-1 pt-2",children:"Active Periods"}),o.jsx("div",{className:"space-y-1",children:n.map((e,t)=>{const n=(e.end-e.start)/6e4;return o.jsxs(pl.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,delay:.02*t},className:"flex items-center gap-3 py-2 px-2 rounded-lg hover:bg-bg-surface-1 transition-colors",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-accent/60 flex-shrink-0"}),o.jsxs("span",{className:"text-xs font-mono text-text-secondary flex-1",children:[new Date(e.start).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})," \u2192 ",new Date(e.end).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})]}),o.jsx("span",{className:"text-xs font-mono font-bold text-text-primary",children:n<1?"< 1m":n<60?\`\${Math.round(n)}m\`:\`\${(n/60).toFixed(1)}h\`})]},t)})})]})]})}function ru({stats:e,sessions:t,showPublic:n}){return o.jsxs(o.Fragment,{children:[o.jsx(Jc,{children:"Total accumulated AI session duration. When multiple sessions run in parallel, their durations add up \u2014 so AI Time can exceed User Time."}),o.jsxs("div",{className:"rounded-lg border border-border/50 bg-bg-surface-1 divide-y divide-border/30",children:[o.jsx(eu,{label:"AI time",value:Zc(e.totalHours)}),o.jsx(eu,{label:"User time",value:Zc(e.coveredHours)}),o.jsx(eu,{label:"Multiplier",value:\`\${e.aiMultiplier.toFixed(1)}x\`}),o.jsx(eu,{label:"Sessions",value:String(t.length)})]}),o.jsx(ou,{sessions:t,showPublic:n})]})}function au({stats:e,sessions:t,showPublic:n}){return o.jsxs(o.Fragment,{children:[o.jsx(Jc,{children:"Your AI multiplier \u2014 AI Time divided by User Time. Higher means more parallelization. You're running more AI sessions simultaneously."}),o.jsxs("div",{className:"rounded-lg border border-border/50 bg-bg-surface-1 divide-y divide-border/30",children:[o.jsx(eu,{label:"Multiplier",value:\`\${e.aiMultiplier.toFixed(1)}x\`}),o.jsx(eu,{label:"Peak concurrent",value:String(e.peakConcurrency)}),o.jsx(eu,{label:"Calculation",value:\`\${Zc(e.totalHours)} \xF7 \${Zc(e.coveredHours)}\`}),o.jsx(eu,{label:"Sessions",value:String(t.length)})]}),o.jsx(ou,{sessions:t,showPublic:n})]})}function su({allSessions:e,currentStreak:t}){const n=function(e){const t=new Map;for(const n of e){const e=new Date(Cc(n.started_at)),r=\`\${e.getFullYear()}-\${String(e.getMonth()+1).padStart(2,"0")}-\${String(e.getDate()).padStart(2,"0")}\`,a=t.get(r);a?a.push(n):t.set(r,[n])}return[...t.entries()].sort((e,t)=>t[0].localeCompare(e[0])).map(([e,t])=>{const n=new Date(e+"T12:00:00").toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"}),r=t.reduce((e,t)=>e+t.duration_seconds,0),a=Gc(t).reduce((e,t)=>e+(t.end-t.start),0)/1e3,s=a>0?r/a:0;return{date:e,label:n,count:t.length,gainedSeconds:r,spentSeconds:a,boost:s}})}(e),r=new Set,a=new Date;for(let s=0;s<t;s++){const e=new Date(a);e.setDate(e.getDate()-s),r.add(\`\${e.getFullYear()}-\${String(e.getMonth()+1).padStart(2,"0")}-\${String(e.getDate()).padStart(2,"0")}\`)}return o.jsxs(o.Fragment,{children:[o.jsx(Jc,{children:"Consecutive days with at least one AI session. Keep using AI daily to grow your streak!"}),o.jsxs("div",{className:"rounded-lg border border-border/50 bg-bg-surface-1 divide-y divide-border/30",children:[o.jsx(eu,{label:"Current streak",value:\`\${t} day\${1===t?"":"s"}\`}),o.jsx(eu,{label:"Total active days",value:String(n.length)}),o.jsx(eu,{label:"Total sessions",value:String(e.length)})]}),n.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"text-[10px] font-mono text-text-muted uppercase tracking-wider px-1 pt-2",children:"Active Days"}),o.jsx("div",{className:"space-y-1",children:n.map((e,t)=>{const n=r.has(e.date);return o.jsxs(pl.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,delay:Math.min(.02*t,.6)},className:"flex items-center gap-2 py-2 px-2 rounded-lg hover:bg-bg-surface-1 transition-colors",children:[n?o.jsx(pc,{className:"w-3 h-3 flex-shrink-0",style:{color:"#facc15"}}):o.jsx(wl,{className:"w-3 h-3 flex-shrink-0 text-text-muted"}),o.jsx("span",{className:"text-xs font-mono flex-1 min-w-0 "+(n?"text-text-primary":"text-text-secondary"),children:e.label}),o.jsx("span",{className:"text-[10px] text-text-muted font-mono whitespace-nowrap",title:"User time",children:Qc(e.spentSeconds)}),o.jsx("span",{className:"text-[10px] text-text-muted",children:"/"}),o.jsx("span",{className:"text-[10px] font-mono font-bold text-text-primary whitespace-nowrap",title:"AI time",children:Qc(e.gainedSeconds)}),e.boost>0&&o.jsxs("span",{className:"text-[10px] font-mono font-bold whitespace-nowrap",style:{color:"#a78bfa"},title:"Multiplier",children:[e.boost.toFixed(1),"x"]})]},e.date)})})]})]})}var iu=25;function ou({sessions:e,showPublic:t}){const[n,r]=h.useState(iu),a=h.useRef(null);if(h.useEffect(()=>{const e=a.current;if(!e)return;const t=new IntersectionObserver(([e])=>{e?.isIntersecting&&r(e=>e+iu)},{rootMargin:"200px"});return t.observe(e),()=>t.disconnect()},[e,n]),h.useEffect(()=>{r(iu)},[e.length]),0===e.length)return null;const s=e.slice(0,n),i=n<e.length;return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"text-[10px] font-mono text-text-muted uppercase tracking-wider px-1 pt-2",children:"Sessions"}),o.jsxs("div",{className:"space-y-1",children:[s.map((e,n)=>{const r=kc(e.client),a=yc[r]??r.slice(0,2).toUpperCase(),s=mc[r]??"#91919a",i="cursor"===r?"var(--text-primary)":s,l=xc[r],c=t?e.title??"Untitled":e.private_title||e.title||"Untitled";return o.jsxs(pl.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,delay:Math.min(.02*n,.6)},className:"flex items-start gap-2.5 py-2 px-2 rounded-lg hover:bg-bg-surface-1 transition-colors group",children:[o.jsx("div",{className:"w-5 h-5 rounded flex items-center justify-center text-[7px] font-bold font-mono flex-shrink-0 mt-0.5",style:{backgroundColor:\`\${s}15\`,color:s,border:\`1px solid \${s}20\`},children:l?o.jsx("div",{className:"w-3 h-3",style:{backgroundColor:i,maskImage:\`url(\${l})\`,maskSize:"contain",maskRepeat:"no-repeat",maskPosition:"center",WebkitMaskImage:\`url(\${l})\`,WebkitMaskSize:"contain",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center"}}):a}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-sm text-text-secondary group-hover:text-text-primary transition-colors leading-snug truncate",children:c}),o.jsxs("div",{className:"flex items-center gap-2 mt-0.5",children:[o.jsx("span",{className:"text-[10px] font-mono text-text-muted",children:Qc(e.duration_seconds)}),o.jsx("span",{className:"text-[10px] text-text-muted",children:(u=e.started_at,new Date(u).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0}))}),e.project&&o.jsx("span",{className:"text-[10px] text-text-muted font-mono truncate",children:e.project})]})]})]},e.session_id);var u}),i&&o.jsx("div",{ref:a,className:"py-2 text-center",children:o.jsxs("span",{className:"text-[10px] text-text-muted font-mono",children:["Showing ",s.length," of ",e.length,"..."]})})]})]})}var lu=[{id:"sessions",label:"Sessions"},{id:"insights",label:"Insights"}];function cu({activeTab:e,onTabChange:t,externalLinks:n,showSettings:r=!0}){return o.jsxs("div",{className:"flex items-center gap-0.5 p-0.5 rounded-lg bg-bg-surface-1 border border-border/40",children:[lu.map(({id:n,label:r})=>{const a=e===n;return o.jsx("button",{onClick:()=>t(n),className:\`\\n px-3 py-1 rounded-md text-xs font-medium transition-all duration-150\\n \${a?"bg-bg-surface-2 text-text-primary shadow-sm":"text-text-muted hover:text-text-primary"}\\n \`,children:r},n)}),r&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"w-px h-4 bg-border/60 mx-1"}),o.jsxs("button",{onClick:()=>t("settings"),className:\`\\n flex items-center gap-1 px-2.5 py-1 rounded-md text-xs font-medium transition-all duration-150\\n \${"settings"===e?"bg-bg-surface-2 text-text-primary shadow-sm":"text-text-muted hover:text-text-primary"}\\n \`,children:[o.jsx(rc,{className:"w-3 h-3"}),"Settings"]})]}),n&&n.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"w-px h-4 bg-border/60 mx-1"}),n.map(({label:e,href:t})=>o.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 px-2.5 py-1 rounded-md text-xs font-mono tracking-wide text-text-muted hover:text-accent transition-colors duration-150",children:[e,o.jsx(zl,{className:"w-2.5 h-2.5 opacity-50"})]},t))]})]})}function uu({label:e,active:t,onClick:n}){return o.jsx("button",{onClick:n,className:"text-[10px] font-bold uppercase tracking-wider px-3 py-1.5 rounded-full transition-all duration-200 cursor-pointer border "+(t?"bg-accent text-bg-base border-accent scale-105":"bg-bg-surface-1 border-border text-text-muted hover:text-text-primary hover:border-text-muted/50"),style:t?{boxShadow:"0 2px 10px rgba(var(--accent-rgb), 0.4)"}:void 0,children:e})}function du({sessions:e,filters:t,onFilterChange:n}){const r=h.useMemo(()=>[...new Set(e.map(e=>e.client))].sort(),[e]),a=h.useMemo(()=>[...new Set(e.flatMap(e=>e.languages))].sort(),[e]),s=h.useMemo(()=>[...new Set(e.map(e=>e.project).filter(e=>{if(!e)return!1;const t=e.trim().toLowerCase();return!["untitled","mcp","unknown","default","none"].includes(t)}))].sort(),[e]);return r.length>0||a.length>0||s.length>0?o.jsxs("div",{className:"flex flex-wrap items-center gap-2 px-1",children:[o.jsx(uu,{label:"All",active:"all"===t.client&&"all"===t.language&&"all"===t.project,onClick:()=>{n("client","all"),n("language","all"),n("project","all")}}),r.map(e=>o.jsx(uu,{label:gc[e]??e,active:t.client===e,onClick:()=>n("client",t.client===e?"all":e)},e)),a.map(e=>o.jsx(uu,{label:e,active:t.language===e,onClick:()=>n("language",t.language===e?"all":e)},e)),s.map(e=>o.jsx(uu,{label:e,active:t.project===e,onClick:()=>n("project",t.project===e?"all":e)},e))]}):null}function hu({onDelete:e,size:t="md",className:n=""}){const[r,a]=h.useState(!1),s=h.useRef(void 0);h.useEffect(()=>()=>{s.current&&clearTimeout(s.current)},[]);const i=t=>{t.stopPropagation(),s.current&&clearTimeout(s.current),a(!1),e()},l=e=>{e.stopPropagation(),s.current&&clearTimeout(s.current),a(!1)},c="sm"===t?"w-3 h-3":"w-3.5 h-3.5",u="sm"===t?"p-1":"p-1.5";return r?o.jsxs("span",{className:\`inline-flex items-center gap-0.5 \${n}\`,onClick:e=>e.stopPropagation(),children:[o.jsx("button",{onClick:i,className:\`\${u} rounded-lg transition-all bg-error/15 text-error hover:bg-error/25\`,title:"Confirm delete",children:o.jsx(jl,{className:c})}),o.jsx("button",{onClick:l,className:\`\${u} rounded-lg transition-all text-text-muted hover:bg-bg-surface-2\`,title:"Cancel",children:o.jsx(fc,{className:c})})]}):o.jsx("button",{onClick:e=>{e.stopPropagation(),a(!0),s.current=setTimeout(()=>a(!1),5e3)},className:\`\${u} rounded-lg transition-all text-text-muted hover:text-error/70 hover:bg-error/5 \${n}\`,title:"Delete",children:o.jsx(lc,{className:c})})}function fu({text:e,words:t}){if(!t?.length||!e)return o.jsx(o.Fragment,{children:e});const n=t.map(e=>e.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&")),r=new RegExp(\`(\${n.join("|")})\`,"gi"),a=e.split(r);return o.jsx(o.Fragment,{children:a.map((e,t)=>t%2==1?o.jsx("mark",{className:"bg-accent/30 text-inherit rounded-sm px-px",children:e},t):o.jsx("span",{children:e},t))})}function pu(e,t){const n=e=>new Date(e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0});return\`\${n(e)} \u2014 \${n(t)}\`}function mu(e){if(e<60)return\`\${e}s\`;const t=Math.round(e/60);if(t<60)return\`\${t}m\`;const n=Math.floor(t/60),r=t%60;return r>0?\`\${n}h \${r}m\`:\`\${n}h\`}var gu={feature:"bg-success/15 text-success border-success/30",bugfix:"bg-error/15 text-error border-error/30",refactor:"bg-purple/15 text-purple border-purple/30",test:"bg-blue/15 text-blue border-blue/30",docs:"bg-accent/15 text-accent border-accent/30",setup:"bg-text-muted/15 text-text-muted border-text-muted/20",deployment:"bg-emerald/15 text-emerald border-emerald/30"};function yu({category:e}){const t=gu[e]??"bg-bg-surface-2 text-text-secondary border-border";return o.jsx("span",{className:\`text-[10px] px-1.5 py-0.5 rounded-full border font-bold uppercase tracking-wider \${t}\`,children:e})}function vu(e){return e>=5?"text-text-secondary":e>=4?"text-amber-500":e>=3?"text-orange-500":"text-error"}function xu({score:e,decimal:t}){const n=e>=5,r=t?e.toFixed(1):String(Math.round(e)),a=r.endsWith(".0")?r.slice(0,-2):r;return o.jsxs("span",{className:"text-[10px] font-mono "+(n?"":"font-bold"),title:\`\${e.toFixed(1)}/5\`,children:[o.jsx("span",{className:vu(e),children:a}),o.jsx("span",{className:"text-text-muted/50",children:"/5"})]})}function bu({model:e}){return e?o.jsx("div",{className:"flex flex-wrap items-center gap-4",children:o.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] whitespace-nowrap",children:[o.jsx(_l,{className:"w-3 h-3 text-text-muted/50 flex-shrink-0"}),o.jsx("span",{className:"text-text-secondary",children:"Model"}),o.jsx("span",{className:"text-text-secondary font-mono font-bold ml-0.5",children:e})]})}):null}function wu({evaluation:e,showPublic:t=!1,model:n}){const r=!!n,a=[{label:"Prompt",value:e.prompt_quality,reason:e.prompt_quality_reason,Icon:Xl},{label:"Context",value:e.context_provided,reason:e.context_provided_reason,Icon:Vl},{label:"Scope",value:e.scope_quality,reason:e.scope_quality_reason,Icon:ic},{label:"Independence",value:e.independence_level,reason:e.independence_level_reason,Icon:Dl}],s=a.some(e=>e.reason)||e.task_outcome_reason;return o.jsxs("div",{className:"px-2.5 py-2 bg-bg-surface-2/30 rounded-md mb-2",children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2",children:[a.map(({label:e,value:t,Icon:n})=>o.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] whitespace-nowrap",children:[o.jsx(n,{className:"w-3 h-3 text-text-muted/60 flex-shrink-0"}),o.jsx("span",{className:"text-text-secondary whitespace-nowrap",children:e}),o.jsx(xu,{score:t})]},e)),r&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"hidden md:block h-3.5 w-px bg-border/30"}),o.jsx(bu,{model:n})]}),o.jsx("div",{className:"hidden md:block h-3.5 w-px bg-border/30"}),o.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] whitespace-nowrap",children:[o.jsx(Gl,{className:"w-3 h-3 text-text-muted/50"}),o.jsx("span",{className:"text-text-muted",children:"Iterations"}),o.jsx("span",{className:"text-text-secondary font-mono font-bold ml-0.5",children:e.iteration_count})]}),o.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] whitespace-nowrap",children:[o.jsx(hc,{className:"w-3 h-3 text-text-muted/50"}),o.jsx("span",{className:"text-text-muted",children:"Tools"}),o.jsx("span",{className:"text-text-secondary font-mono font-bold ml-0.5",children:e.tools_leveraged})]})]}),!t&&s&&o.jsx("div",{className:"mt-2 pt-2 border-t border-border/15",children:o.jsxs("div",{className:"grid grid-cols-[86px_minmax(0,1fr)] gap-x-2 gap-y-1 text-[10px]",children:[a.filter(e=>e.reason).map(({label:e,value:t,reason:n})=>o.jsxs("div",{className:"contents",children:[o.jsxs("span",{className:\`\${vu(t)} font-bold text-right\`,children:[e,":"]}),o.jsx("span",{className:"text-text-secondary leading-relaxed",children:n})]},e)),e.task_outcome_reason&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"col-span-2 border-t border-border/15 mt-0.5 mb-0.5"}),o.jsx("span",{className:"text-text-secondary font-bold text-right",children:"Outcome:"}),o.jsx("span",{className:"text-text-secondary leading-relaxed",children:e.task_outcome_reason})]})]})})]})}function ku({prompt:e,imageCount:t,images:n}){const[r,a]=h.useState(!1),s=e.length>300,i=s&&!r?e.slice(0,300)+"\u2026":e,l=t??n?.length??0;return o.jsxs("div",{className:"px-2.5 py-2 bg-bg-surface-2/20 rounded-md mb-2 border border-border/10",children:[o.jsxs("div",{className:"flex items-center gap-1.5 mb-1.5",children:[o.jsx(Xl,{className:"w-3 h-3 text-text-muted/50"}),o.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted",children:"Prompt"}),l>0&&o.jsxs("span",{className:"inline-flex items-center gap-0.5 text-[10px] text-text-muted bg-bg-surface-2 px-1.5 py-0.5 rounded-full border border-border/20",children:[o.jsx(Bl,{className:"w-2.5 h-2.5"}),l]})]}),o.jsx("p",{className:"text-[11px] text-text-secondary leading-relaxed whitespace-pre-wrap break-words",children:i}),s&&o.jsx("button",{onClick:()=>a(!r),className:"text-[10px] text-accent hover:text-accent/80 mt-1 font-medium",children:r?"Show less":"Show more"}),n&&n.length>0&&o.jsx("div",{className:"mt-2 pt-1.5 border-t border-border/10 space-y-1",children:n.map((e,t)=>o.jsxs("div",{className:"flex items-start gap-1.5",children:[o.jsx(Bl,{className:"w-3 h-3 text-text-muted/50 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[10px] text-text-secondary leading-relaxed",children:e.description})]},t))})]})}var Su=h.memo(function({session:e,milestones:t,defaultExpanded:n=!1,externalShowPublic:r,contextLabel:a,hideClientAvatar:s=!1,hideProject:i=!1,showFullDate:l=!1,highlightWords:c,onDeleteSession:u,onDeleteMilestone:d}){const[f,p]=h.useState(n),[m,g]=h.useState(!1),y=r??m,v=g,x=kc(e.client),b=mc[x]??"#91919a",w="cursor"===x,k=w?"var(--text-primary)":b,S=w?{backgroundColor:"var(--bg-surface-2)",color:"var(--text-primary)",border:"1px solid var(--border)"}:{backgroundColor:\`\${b}15\`,color:b,border:\`1px solid \${b}30\`},j=yc[x]??x.slice(0,2).toUpperCase(),C=xc[x],N=t.length>0||!!e.evaluation||!!e.model||!!e.prompt,T=e.project?.trim()||"",E=!T||["untitled","mcp","unknown","default","none","null","undefined"].includes(T.toLowerCase()),M=t[0],P=E&&M?M.title:T,L=E&&M?M.private_title||M.title:T;let D=e.private_title||e.title||L||"Untitled Session",A=e.title||P||"Untitled Session";const _=D!==A&&void 0===r,z=!!u||N||_,R=a?.replace(/^\\s*prompt\\s*/i,"").trim();return o.jsxs("div",{className:"group/card mb-2 rounded-xl border transition-all duration-200 "+(f?"bg-bg-surface-1 border-accent/35 shadow-md":"bg-bg-surface-1/35 border-border/50 hover:border-accent/30"),children:[o.jsxs("div",{className:"flex items-center",children:[o.jsxs("button",{className:"flex-1 flex items-center gap-3 px-3.5 py-2.5 text-left min-w-0",onClick:()=>N&&p(!f),style:{cursor:N?"pointer":"default"},children:[!s&&o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center text-[11px] font-black font-mono flex-shrink-0 shadow-sm",style:S,title:gc[x]??x,children:C?o.jsx("div",{className:"w-4 h-4",style:{backgroundColor:k,maskImage:\`url(\${C})\`,maskSize:"contain",maskRepeat:"no-repeat",maskPosition:"center",WebkitMaskImage:\`url(\${C})\`,WebkitMaskSize:"contain",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center"}}):j}),o.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[a&&o.jsx("span",{className:"inline-flex items-center rounded-md border border-accent/20 bg-accent/10 px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-accent/90",children:R||a}),o.jsx("div",{className:"flex items-center gap-1.5 min-w-0",children:o.jsx(Qi,{mode:"wait",children:o.jsxs(pl.div,{initial:{opacity:0,x:-5},animate:{opacity:1,x:0},exit:{opacity:0,x:5},transition:{duration:.1},className:"flex items-center gap-1.5 min-w-0",children:[y?o.jsx(ac,{className:"w-3 h-3 text-success/70 flex-shrink-0"}):o.jsx(ql,{className:"w-3 h-3 text-accent/70 flex-shrink-0"}),o.jsx("span",{className:"text-[15px] font-semibold truncate text-text-primary tracking-tight leading-tight",children:o.jsx(fu,{text:y?A:D,words:c})})]},y?"public":"private")})})]}),o.jsxs("div",{className:"flex items-center gap-3.5 text-[11px] text-text-secondary font-medium",children:[o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(Pl,{className:"w-3 h-3 opacity-75"}),mu(e.duration_seconds)]}),o.jsxs("span",{className:"text-text-secondary/80 font-mono tracking-tight",children:[l&&\`\${new Date(e.started_at).toLocaleDateString([],{month:"short",day:"numeric"})} \xB7 \`,pu(e.started_at,e.ended_at).split(" \u2014 ")[0]]}),!y&&!E&&!i&&o.jsxs("span",{className:"flex items-center gap-1 text-text-secondary/85",title:\`Project: \${T}\`,children:[o.jsx($l,{className:"w-2.5 h-2.5 opacity-70"}),o.jsx("span",{className:"max-w-[130px] truncate",children:T})]}),t.length>0&&o.jsxs("span",{className:"flex items-center gap-1 text-text-secondary/85",title:\`\${t.length} milestone\${1!==t.length?"s":""}\`,children:[o.jsx(Ol,{className:"w-2.5 h-2.5 opacity-70"}),t.length]}),e.evaluation&&o.jsx(xu,{score:(F=e.evaluation,(F.prompt_quality+F.context_provided+F.scope_quality+F.independence_level)/4),decimal:!0})]})]})]}),z&&o.jsxs("div",{className:"flex items-center px-2.5 gap-1.5 border-l border-border/30 h-9 self-center",children:[u&&o.jsx(hu,{onDelete:()=>u(e.session_id),className:"opacity-0 group-hover/card:opacity-100 focus-within:opacity-100"}),_&&o.jsx("button",{onClick:e=>{e.stopPropagation(),v(!y)},className:"p-1.5 rounded-lg transition-all "+(y?"bg-success/10 text-success":"text-text-secondary hover:text-text-primary hover:bg-bg-surface-2"),title:y?"Public title shown":"Private title shown","aria-label":y?"Show private title":"Show public title",children:y?o.jsx(Fl,{className:"w-3.5 h-3.5"}):o.jsx(Rl,{className:"w-3.5 h-3.5"})}),N&&o.jsx("button",{onClick:()=>p(!f),className:"p-1.5 rounded-lg transition-all "+(f?"text-accent bg-accent/8":"text-text-secondary hover:text-text-primary hover:bg-bg-surface-2"),title:f?"Collapse details":"Expand details","aria-label":f?"Collapse details":"Expand details",children:o.jsx(Cl,{className:"w-4 h-4 transition-transform duration-200 "+(f?"rotate-180":"")})})]})]}),o.jsx(Qi,{children:f&&N&&o.jsx(pl.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:o.jsxs("div",{className:"px-3.5 pb-3.5 pt-1.5 space-y-2",children:[o.jsx("div",{className:"h-px bg-border/20 mb-2 mx-1"}),!y&&e.prompt&&o.jsx(ku,{prompt:e.prompt,imageCount:e.prompt_image_count,images:e.prompt_images}),e.evaluation&&o.jsx(wu,{evaluation:e.evaluation,showPublic:y,model:e.model}),!e.evaluation&&o.jsx(bu,{model:e.model}),t.length>0&&o.jsx("div",{className:"space-y-0.5",children:t.map(e=>{const t=y?e.title:e.private_title||e.title,n=function(e){if(!e||e<=0)return"";if(e<60)return\`\${e}m\`;const t=Math.floor(e/60),n=e%60;return n>0?\`\${t}h \${n}m\`:\`\${t}h\`}(e.duration_minutes);return o.jsxs("div",{className:"group flex items-center gap-2 p-1.5 rounded-md hover:bg-bg-surface-2/40 transition-colors",children:[o.jsx("div",{className:"w-1.5 h-1.5 rounded-full flex-shrink-0",style:{backgroundColor:bc[e.category]??"#9c9588"}}),o.jsx("div",{className:"flex-1 min-w-0",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-xs font-medium text-text-secondary group-hover:text-text-primary truncate",children:o.jsx(fu,{text:t,words:c})}),o.jsx(yu,{category:e.category})]})}),n&&o.jsx("span",{className:"text-[10px] text-text-muted font-mono",children:n}),d&&o.jsx(hu,{onDelete:()=>d(e.id),size:"sm",className:"opacity-0 group-hover:opacity-100"})]},e.id)})})]})})})]});var F});function ju(e){if(e<60)return\`\${e}s\`;const t=Math.round(e/60);if(t<60)return\`\${t}m\`;const n=Math.floor(t/60),r=t%60;return r>0?\`\${n}h \${r}m\`:\`\${n}h\`}function Cu({score:e,decimal:t}){const n=e>=5,r=n?"text-text-secondary":e>=4?"text-amber-500":e>=3?"text-orange-500":"text-error",a=t?e.toFixed(1):String(Math.round(e)),s=a.endsWith(".0")?a.slice(0,-2):a;return o.jsxs("span",{className:"text-[10px] font-mono "+(n?"":"font-bold"),title:\`\${e.toFixed(1)}/5\`,children:[o.jsx("span",{className:r,children:s}),o.jsx("span",{className:"text-text-muted/50",children:"/5"})]})}var Nu=h.memo(function({group:e,defaultExpanded:t,globalShowPublic:n,showFullDate:r,highlightWords:a,onDeleteSession:s,onDeleteMilestone:i,onDeleteConversation:l}){const[c,u]=h.useState(t),[d,f]=h.useState(!1),p=n||d;if(1===e.sessions.length){const l=e.sessions[0];return o.jsx(Su,{session:l.session,milestones:l.milestones,defaultExpanded:t&&l.milestones.length>0,externalShowPublic:n||void 0,showFullDate:r,highlightWords:a,onDeleteSession:s,onDeleteMilestone:i})}const m=kc(e.sessions[0].session.client),g=mc[m]??"#91919a",y="cursor"===m,v=y?"var(--text-primary)":g,x=y?{backgroundColor:"var(--bg-surface-2)",color:"var(--text-primary)",border:"1px solid var(--border)"}:{backgroundColor:\`\${g}15\`,color:g,border:\`1px solid \${g}30\`},b=yc[m]??m.slice(0,2).toUpperCase(),w=xc[m],k=e.aggregateEval,S=k?(k.prompt_quality+k.context_provided+k.scope_quality+k.independence_level)/4:0,j=e.sessions[0].session,C=j.private_title||j.title||j.project||"Conversation",N=j.title||j.project||"Conversation",T=C!==N&&!n,E=j.project?.trim()||"",M=!!E&&!["untitled","mcp","unknown","default","none","null","undefined"].includes(E.toLowerCase());return o.jsxs("div",{className:"group/conv mb-2 rounded-xl border transition-all duration-200 "+(c?"bg-bg-surface-1 border-accent/35 shadow-md":"bg-bg-surface-1/35 border-border/50 hover:border-accent/30"),children:[o.jsxs("div",{className:"flex items-center",children:[o.jsxs("button",{className:"flex-1 flex items-center gap-3 px-3.5 py-2.5 text-left min-w-0",onClick:()=>u(!c),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center text-[11px] font-black font-mono flex-shrink-0 shadow-sm",style:x,title:gc[m]??m,children:w?o.jsx("div",{className:"w-4 h-4",style:{backgroundColor:v,maskImage:\`url(\${w})\`,maskSize:"contain",maskRepeat:"no-repeat",maskPosition:"center",WebkitMaskImage:\`url(\${w})\`,WebkitMaskSize:"contain",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center"}}):b}),o.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"flex items-center gap-1.5 min-w-0",children:o.jsx(Qi,{mode:"wait",children:o.jsxs(pl.div,{initial:{opacity:0,x:-5},animate:{opacity:1,x:0},exit:{opacity:0,x:5},transition:{duration:.1},className:"flex items-center gap-1.5 min-w-0",children:[p?o.jsx(ac,{className:"w-3 h-3 text-success/70 flex-shrink-0"}):o.jsx(ql,{className:"w-3 h-3 text-accent/70 flex-shrink-0"}),o.jsx("span",{className:"text-[15px] font-semibold truncate text-text-primary tracking-tight leading-tight",children:o.jsx(fu,{text:p?N:C,words:a})})]},p?"public":"private")})}),o.jsxs("span",{className:"text-[10px] font-bold text-accent/90 bg-accent/10 px-1.5 py-0.5 rounded border border-accent/20 flex-shrink-0",children:[e.sessions.length," prompts"]})]}),o.jsxs("div",{className:"flex items-center gap-3.5 text-[11px] text-text-secondary font-medium",children:[o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(Pl,{className:"w-3 h-3 opacity-75"}),ju(e.totalDuration)]}),o.jsxs("span",{className:"text-text-secondary/80 font-mono tracking-tight",children:[r&&\`\${new Date(e.lastSessionAt).toLocaleDateString([],{month:"short",day:"numeric"})} \xB7 \`,(P=e.lastSessionAt,new Date(P).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0}))]}),!p&&M&&o.jsxs("span",{className:"flex items-center gap-1 text-text-secondary/85",title:\`Project: \${E}\`,children:[o.jsx($l,{className:"w-2.5 h-2.5 opacity-70"}),o.jsx("span",{className:"max-w-[130px] truncate",children:E})]}),e.totalMilestones>0&&o.jsxs("span",{className:"flex items-center gap-1 text-text-secondary/85",title:\`\${e.totalMilestones} milestone\${1!==e.totalMilestones?"s":""}\`,children:[o.jsx(Ol,{className:"w-2.5 h-2.5 opacity-70"}),e.totalMilestones]}),k&&o.jsx(Cu,{score:S,decimal:!0})]})]})]}),o.jsxs("div",{className:"flex items-center px-2.5 gap-1.5 border-l border-border/30 h-9 self-center",children:[l&&e.conversationId&&o.jsx(hu,{onDelete:()=>l(e.conversationId),className:"opacity-0 group-hover/conv:opacity-100 focus-within:opacity-100"}),T&&o.jsx("button",{onClick:e=>{e.stopPropagation(),f(!d)},className:"p-1.5 rounded-lg transition-all "+(p?"bg-success/10 text-success":"text-text-secondary hover:text-text-primary hover:bg-bg-surface-2"),title:p?"Public title shown":"Private title shown","aria-label":p?"Show private title":"Show public title",children:p?o.jsx(Fl,{className:"w-3.5 h-3.5"}):o.jsx(Rl,{className:"w-3.5 h-3.5"})}),o.jsx("button",{onClick:()=>u(!c),className:"p-1.5 rounded-lg transition-all "+(c?"text-accent bg-accent/8":"text-text-secondary hover:text-text-primary hover:bg-bg-surface-2"),title:c?"Collapse conversation":"Expand conversation","aria-label":c?"Collapse conversation":"Expand conversation",children:o.jsx(Cl,{className:"w-4 h-4 transition-transform duration-200 "+(c?"rotate-180":"")})})]})]}),o.jsx(Qi,{children:c&&o.jsx(pl.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:o.jsxs("div",{className:"px-3.5 pb-2.5 relative",children:[o.jsx("div",{className:"absolute left-[1.75rem] top-0 bottom-2 w-px",style:{backgroundColor:\`\${g}25\`}}),o.jsx("div",{className:"space-y-1 pl-10",children:e.sessions.map(e=>o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"absolute -left-7 top-5 w-2 h-2 rounded-full border-2",style:{backgroundColor:g,borderColor:\`\${g}40\`}}),o.jsx(Su,{session:e.session,milestones:e.milestones,defaultExpanded:!1,externalShowPublic:p||void 0,hideClientAvatar:!0,hideProject:!0,showFullDate:r,highlightWords:a,onDeleteSession:s,onDeleteMilestone:i})]},e.session.session_id))})]})})})]});var P});function Tu({sessions:e,milestones:t,filters:n,globalShowPublic:r,showFullDate:a,highlightWords:s,outsideWindowCounts:i,onNavigateNewer:l,onNavigateOlder:c,onDeleteSession:u,onDeleteConversation:d,onDeleteMilestone:f}){const p=h.useMemo(()=>e.filter(e=>("all"===n.client||e.client===n.client)&&(!("all"!==n.language&&!e.languages.includes(n.language))&&("all"===n.project||(e.project??"")===n.project))),[e,n]),m=h.useMemo(()=>"all"===n.category?t:t.filter(e=>e.category===n.category),[t,n.category]),g=h.useMemo(()=>{const e=function(e,t){const n=new Map;for(const a of t){const e=n.get(a.session_id);e?e.push(a):n.set(a.session_id,[a])}const r=e.map(e=>({session:e,milestones:n.get(e.session_id)??[]}));return r.sort((e,t)=>Cc(t.session.started_at)-Cc(e.session.started_at)),r}(p,m);return function(e){const t=new Map,n=[];for(const a of e){const e=a.session.conversation_id;if(e){const n=t.get(e);n?n.push(a):t.set(e,[a])}else n.push(a)}const r=[];for(const[a,s]of t){s.sort((e,t)=>Cc(t.session.started_at)-Cc(e.session.started_at));const e=s.reduce((e,t)=>e+t.session.duration_seconds,0),t=s.reduce((e,t)=>e+t.milestones.length,0),n=s[s.length-1].session.started_at,i=s[0].session.ended_at,o=s[0].session.started_at;r.push({conversationId:a,sessions:s,aggregateEval:Tc(s),totalDuration:e,totalMilestones:t,startedAt:n,endedAt:i,lastSessionAt:o})}for(const a of n)r.push({conversationId:null,sessions:[a],aggregateEval:a.session.evaluation?Tc([a]):null,totalDuration:a.session.duration_seconds,totalMilestones:a.milestones.length,startedAt:a.session.started_at,endedAt:a.session.ended_at,lastSessionAt:a.session.started_at});return r.sort((e,t)=>Cc(t.lastSessionAt)-Cc(e.lastSessionAt)),r}(e)},[p,m]),[y,v]=h.useState(25),x=h.useRef(null);if(h.useEffect(()=>{v(25)},[g]),h.useEffect(()=>{const e=x.current;if(!e)return;const t=new IntersectionObserver(([e])=>{e?.isIntersecting&&v(e=>e+25)},{rootMargin:"200px"});return t.observe(e),()=>t.disconnect()},[g,y]),0===g.length){const e=i&&i.before>0,t=i&&i.after>0;return o.jsxs("div",{className:"text-center text-text-muted py-8 text-sm mb-4 space-y-3",children:[t&&o.jsxs("button",{onClick:l,className:"flex flex-col items-center gap-0.5 mx-auto text-[11px] text-text-muted/60 hover:text-accent transition-colors group",children:[o.jsx(El,{className:"w-3.5 h-3.5"}),o.jsxs("span",{children:[i.after," newer session",1!==i.after?"s":""]}),i.newerLabel&&o.jsx("span",{className:"text-[10px] opacity-70 group-hover:opacity-100",children:i.newerLabel})]}),o.jsx("div",{children:"No sessions in this window"}),e&&o.jsxs("button",{onClick:c,className:"flex flex-col items-center gap-0.5 mx-auto text-[11px] text-text-muted/60 hover:text-accent transition-colors group",children:[i.olderLabel&&o.jsx("span",{className:"text-[10px] opacity-70 group-hover:opacity-100",children:i.olderLabel}),o.jsxs("span",{children:[i.before," older session",1!==i.before?"s":""]}),o.jsx(Cl,{className:"w-3.5 h-3.5"})]})]})}const b=y<g.length,w=b?g.slice(0,y):g;return o.jsxs("div",{className:"space-y-2 mb-4",children:[i&&i.after>0&&o.jsxs("button",{onClick:l,className:"flex flex-col items-center gap-0.5 w-full text-[11px] text-text-muted/60 hover:text-accent py-1.5 transition-colors group",children:[o.jsx(El,{className:"w-3.5 h-3.5"}),o.jsxs("span",{children:[i.after," newer session",1!==i.after?"s":""]}),i.newerLabel&&o.jsx("span",{className:"text-[10px] opacity-70 group-hover:opacity-100",children:i.newerLabel})]}),w.map(e=>o.jsx(Nu,{group:e,defaultExpanded:!1,globalShowPublic:r,showFullDate:a,highlightWords:s,onDeleteSession:u,onDeleteMilestone:f,onDeleteConversation:d},e.conversationId??e.sessions[0].session.session_id)),b&&o.jsx("div",{ref:x,className:"h-px"}),g.length>25&&o.jsxs("div",{className:"flex items-center justify-center gap-3 py-2 text-[11px] text-text-muted",children:[o.jsxs("span",{children:["Showing ",Math.min(y,g.length)," of ",g.length," conversations"]}),b&&o.jsx("button",{onClick:()=>v(g.length),className:"text-accent hover:text-accent/80 font-semibold transition-colors",children:"Show all"})]}),i&&i.before>0&&o.jsxs("button",{onClick:c,className:"flex flex-col items-center gap-0.5 w-full text-[11px] text-text-muted/60 hover:text-accent py-1.5 transition-colors group",children:[i.olderLabel&&o.jsx("span",{className:"text-[10px] opacity-70 group-hover:opacity-100",children:i.olderLabel}),o.jsxs("span",{children:[i.before," older session",1!==i.before?"s":""]}),o.jsx(Cl,{className:"w-3.5 h-3.5"})]})]})}var Eu={accent:{border:"border-accent/20",bg:"bg-[var(--accent-alpha)]",dot:"bg-accent"},success:{border:"border-success/20",bg:"bg-success/10",dot:"bg-success"},muted:{border:"border-border",bg:"bg-bg-surface-2/50",dot:"bg-text-muted"}};function Mu({label:e,color:t="accent",dot:n=!1,icon:r,glow:a=!1,className:s="","data-testid":i}){const l=Eu[t];return o.jsxs("div",{"data-testid":i,className:\`inline-flex items-center gap-2 px-3 py-1 rounded-full border \${l.border} \${l.bg} \${s}\`,style:a?{boxShadow:"0 0 10px rgba(var(--accent-rgb), 0.1)"}:void 0,children:[n&&o.jsx("span",{className:\`w-1.5 h-1.5 rounded-full \${l.dot} animate-pulse\`}),r,o.jsx("span",{className:"text-[10px] font-mono text-text-secondary tracking-widest uppercase",children:e})]})}var Pu={"1h":{visibleDuration:36e5,majorTickInterval:9e5,minorTickInterval:3e5,labelFormat:e=>e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})},"3h":{visibleDuration:108e5,majorTickInterval:18e5,minorTickInterval:6e5,labelFormat:e=>e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})},"6h":{visibleDuration:216e5,majorTickInterval:36e5,minorTickInterval:9e5,labelFormat:e=>e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})},"12h":{visibleDuration:432e5,majorTickInterval:72e5,minorTickInterval:18e5,labelFormat:e=>e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})},"24h":{visibleDuration:864e5,majorTickInterval:144e5,minorTickInterval:36e5,labelFormat:e=>e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})},day:{visibleDuration:864e5,majorTickInterval:144e5,minorTickInterval:36e5,labelFormat:e=>e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0})},"7d":{visibleDuration:6048e5,majorTickInterval:864e5,minorTickInterval:216e5,labelFormat:e=>e.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"})},week:{visibleDuration:6048e5,majorTickInterval:864e5,minorTickInterval:216e5,labelFormat:e=>e.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"})},"30d":{visibleDuration:2592e6,majorTickInterval:6048e5,minorTickInterval:864e5,labelFormat:e=>e.toLocaleDateString([],{month:"short",day:"numeric"})},month:{visibleDuration:2592e6,majorTickInterval:6048e5,minorTickInterval:864e5,labelFormat:e=>e.toLocaleDateString([],{month:"short",day:"numeric"})}};function Lu(e){if(e<60)return\`\${e}s\`;const t=Math.round(e/60);if(t<60)return\`\${t}m\`;const n=Math.floor(t/60),r=t%60;return r>0?\`\${n}h \${r}m\`:\`\${n}h\`}function Du({value:e,onChange:t,scale:n,window:r,sessions:a=[],milestones:s=[],showPublic:i=!1}){const l=h.useRef(null),[c,u]=h.useState(0),d=void 0!==r;h.useEffect(()=>{if(!l.current)return;const e=new ResizeObserver(e=>{for(const t of e)u(t.contentRect.width)});return e.observe(l.current),u(l.current.getBoundingClientRect().width),()=>e.disconnect()},[]);const f=Pu[n],p=d?r.end-r.start:f.visibleDuration,m=d?r.end:e,g=d?r.start:e-f.visibleDuration,y=c>0?c/p:0,[v,x]=h.useState(!1),[b,w]=h.useState(0),k=h.useRef(0),S=h.useRef(0),j=h.useRef(null);h.useEffect(()=>()=>{j.current&&clearTimeout(j.current)},[]);const C=h.useCallback(e=>{x(!0),k.current=e.clientX,S.current=0,w(0),e.currentTarget.setPointerCapture(e.pointerId)},[]),N=h.useCallback(n=>{if(!v||0===y)return;const r=n.clientX-k.current;k.current=n.clientX,S.current+=r,w(e=>e+r),j.current||(j.current=setTimeout(()=>{j.current=null;const n=S.current;S.current=0,w(0);const r=e+-n/y,a=d?Math.max(Math.min(r,m),g):Math.min(r,Date.now());t(a)},80))},[v,y,e,m,g,d,t]),T=h.useCallback(()=>{if(x(!1),j.current&&(clearTimeout(j.current),j.current=null),0!==S.current&&y>0){const n=e+-S.current/y,r=d?Math.max(Math.min(n,m),g):Math.min(n,Date.now());S.current=0,t(r)}w(0)},[e,m,g,d,y,t]),E=h.useMemo(()=>{if(!c||0===y)return[];const e=g-f.majorTickInterval,t=m+f.majorTickInterval,n=[];for(let r=Math.ceil(e/f.majorTickInterval)*f.majorTickInterval;r<=t;r+=f.majorTickInterval)n.push({type:"major",time:r,position:(r-m)*y,label:f.labelFormat(new Date(r))});for(let r=Math.ceil(e/f.minorTickInterval)*f.minorTickInterval;r<=t;r+=f.minorTickInterval)r%f.majorTickInterval!==0&&n.push({type:"minor",time:r,position:(r-m)*y});return n},[g,m,c,y,f]),M=h.useMemo(()=>a.map(e=>({session:e,start:Cc(e.started_at),end:Cc(e.ended_at)})),[a]),P=h.useMemo(()=>{if(!c||0===y)return[];const e=M.filter(e=>e.start<=m&&e.end>=g).map(e=>({session:e.session,leftOffset:(Math.max(e.start,g)-m)*y,width:(Math.min(e.end,m)-Math.max(e.start,g))*y}));return e.length>100?(e.sort((e,t)=>t.width-e.width),e.slice(0,100)):e},[M,g,m,c,y]),L=h.useMemo(()=>s.map(e=>({milestone:e,time:Cc(e.created_at)})).sort((e,t)=>e.time-t.time),[s]),D=h.useMemo(()=>{if(!c||0===y||!L.length)return[];let e=0,t=L.length;for(;e<t;){const n=e+t>>1;L[n].time<g?e=n+1:t=n}const n=e;for(t=L.length;e<t;){const n=e+t>>1;L[n].time<=m?e=n+1:t=n}const r=e,a=[];for(let s=n;s<r;s++){const e=L[s];a.push({...e,offset:(e.time-m)*y})}return a},[L,g,m,c,y]),A=h.useMemo(()=>{if(!c||0===y)return null;const e=Date.now();return e<g||e>m?null:(e-m)*y},[g,m,c,y]),[_,z]=h.useState(null),R=h.useRef(e);return h.useEffect(()=>{_&&Math.abs(e-R.current)>1e3&&z(null),R.current=e},[e,_]),o.jsxs("div",{className:"relative h-16",children:[o.jsxs("div",{"data-testid":"time-scrubber",className:"absolute inset-0 bg-transparent border-t border-border/50 overflow-hidden select-none touch-none cursor-grab active:cursor-grabbing",ref:l,onPointerDown:C,onPointerMove:N,onPointerUp:T,style:{touchAction:"none"},children:[null!==A&&o.jsx("div",{className:"absolute top-0 bottom-0 w-[2px] bg-accent/50 z-30",style:{right:-A}}),null!==A&&A<-1&&o.jsx("div",{className:"absolute top-0 bottom-0 bg-bg-base/30 z-20",style:{right:0,width:-A}}),o.jsxs("div",{className:"absolute right-0 top-0 bottom-0 w-0 pointer-events-none",style:b?{transform:\`translateX(\${b}px)\`,willChange:"transform"}:void 0,children:[E.map(e=>o.jsx("div",{className:"absolute top-0 border-l "+("major"===e.type?"border-border/60":"border-border/30"),style:{left:e.position,height:"major"===e.type?"100%":"35%",bottom:0},children:"major"===e.type&&e.label&&o.jsx("span",{className:"absolute top-2 left-2 text-[9px] font-bold text-text-muted uppercase tracking-wider whitespace-nowrap bg-bg-surface-1/80 px-1 py-0.5 rounded",children:e.label})},e.time)),P.map(e=>o.jsx("div",{className:"absolute bottom-0 rounded-t-md pointer-events-auto cursor-pointer hover:opacity-80",style:{left:e.leftOffset,width:Math.max(e.width,3),height:"45%",backgroundColor:"rgba(var(--accent-rgb), 0.15)",borderTop:"2px solid rgba(var(--accent-rgb), 0.5)",boxShadow:"inset 0 1px 10px rgba(var(--accent-rgb), 0.05)"},onMouseEnter:t=>{const n=t.currentTarget.getBoundingClientRect();z({type:"session",data:e.session,x:n.left+n.width/2,y:n.top})},onMouseLeave:()=>z(null)},e.session.session_id)),D.map((e,n)=>o.jsx("div",{className:"absolute bottom-2 pointer-events-auto cursor-pointer z-40 transition-transform hover:scale-125",style:{left:e.offset,transform:"translateX(-50%)"},onMouseEnter:t=>{const n=t.currentTarget.getBoundingClientRect();z({type:"milestone",data:e.milestone,x:n.left+n.width/2,y:n.top})},onMouseLeave:()=>z(null),onClick:n=>{n.stopPropagation(),t(e.time)},children:o.jsx("div",{className:"w-3.5 h-3.5 rounded-full border-2 border-bg-surface-1 shadow-lg",style:{backgroundColor:bc[e.milestone.category]??"#9c9588",boxShadow:\`0 0 10px \${bc[e.milestone.category]}50\`}})},n))]})]}),_&&Sc.createPortal(o.jsx("div",{className:"fixed z-[9999] pointer-events-none",style:{left:_.x,top:_.y,transform:"translate(-50%, -100%)"},children:o.jsxs("div",{className:"mb-3 bg-bg-surface-3/95 backdrop-blur-md text-text-primary rounded-xl shadow-2xl px-3 py-2.5 text-[11px] min-w-[180px] max-w-[280px] border border-border/50 animate-in fade-in zoom-in-95 duration-200",children:["session"===_.type?o.jsx(Au,{session:_.data,showPublic:i}):o.jsx(_u,{milestone:_.data,showPublic:i}),o.jsx("div",{className:"absolute -bottom-1.5 left-1/2 -translate-x-1/2 w-3 h-3 bg-bg-surface-3/95 border-r border-b border-border/50 rotate-45"})]})}),document.body)]})}function Au({session:e,showPublic:t}){const n=gc[e.client]??e.client,r=t?e.title||e.project||\`\${n} Session\`:e.private_title||e.title||e.project||\`\${n} Session\`;return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"font-bold text-xs text-accent uppercase tracking-widest",children:n}),o.jsx("span",{className:"text-[10px] text-text-muted font-mono",children:Lu(e.duration_seconds)})]}),o.jsx("div",{className:"h-px bg-border/50 my-0.5"}),o.jsx("div",{className:"text-text-primary font-medium",children:r}),o.jsx("div",{className:"text-text-secondary capitalize text-[10px]",children:e.task_type})]})}function _u({milestone:e,showPublic:t}){const n=t?e.title:e.private_title??e.title;return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"font-bold text-[10px] uppercase tracking-widest",style:{color:bc[e.category]??"#9c9588"},children:e.category}),e.complexity&&o.jsx("span",{className:"text-[9px] font-mono text-text-muted font-bold border border-border/50 px-1 rounded uppercase",children:e.complexity})]}),o.jsx("div",{className:"h-px bg-border/50 my-0.5"}),o.jsx("div",{className:"font-bold text-xs break-words text-text-primary",children:n}),!t&&e.private_title&&o.jsxs("div",{className:"text-[10px] text-text-muted italic opacity-70",children:["Public: ",e.title]})]})}function zu(e,t){const n=e.trim();if(!n)return null;const r=new Date(t),a=n.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM)$/i);if(a){let e=parseInt(a[1],10);const t=parseInt(a[2],10),n=a[3]?parseInt(a[3],10):0,s=a[4].toUpperCase();return e<1||e>12||t>59||n>59?null:("AM"===s&&12===e&&(e=0),"PM"===s&&12!==e&&(e+=12),r.setHours(e,t,n,0),r.getTime())}const s=n.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/);if(s){const e=parseInt(s[1],10),t=parseInt(s[2],10),n=s[3]?parseInt(s[3],10):0;return e>23||t>59||n>59?null:(r.setHours(e,t,n,0),r.getTime())}return null}function Ru({value:e,onChange:t,scale:n,onScaleChange:r,sessions:a,showPublic:s=!1}){const i=null===e,l=Rc(n),[c,u]=h.useState(Date.now());h.useEffect(()=>{if(!i)return;const e=setInterval(()=>u(Date.now()),1e3);return()=>clearInterval(e)},[i]);const d=i?c:e,f=Ic(n,d),p=h.useMemo(()=>{const{start:e,end:t}=f,n=e=>new Date(e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0}),r=e=>new Date(e).toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"}),a=new Date(e).toDateString()===new Date(t-1).toDateString();return i?a?\`\${n(e)} \u2013 Now\`:\`\${r(e)}, \${n(e)} \u2013 Now\`:a?\`\${n(e)} \u2013 \${n(t)}\`:\`\${r(e)}, \${n(e)} \u2013 \${r(t)}, \${n(t)}\`},[f,i]),[m,g]=h.useState(!1),[y,v]=h.useState(""),x=h.useRef(null),b=h.useRef(!1),w=h.useRef(""),k=h.useRef(!1),S=h.useRef(0),j=h.useCallback(e=>{if(l){if(e>=Date.now()-2e3)return void t(null);const a=_c[n];return a&&r(a),void t(e)}const a=Date.now();if(e>=a-2e3)return k.current=!0,S.current=a,void t(null);k.current&&a-S.current<300||k.current&&e>=a-1e4&&e<=a+2e3?t(null):(k.current=!1,t(e))},[t,r,l,n]),C=e=>{const r=Oc(n,d,e);$c(n,r)?t(null):t(r)},N=()=>{b.current=i,t(d);const e=new Date(d).toLocaleTimeString([],{hour12:!0,hour:"2-digit",minute:"2-digit",second:"2-digit"});w.current=e,v(e),g(!0),requestAnimationFrame(()=>x.current?.select())},T=()=>{if(g(!1),b.current&&y===w.current)return void t(null);const e=zu(y,d);null!==e&&t(Math.min(e,Date.now()))},E=e=>{if(l){const t=-1===e?"Previous":"Next";return"day"===n?\`\${t} Day\`:"week"===n?\`\${t} Week\`:\`\${t} Month\`}return\`\${-1===e?"Back":"Forward"} \${Vc[n].toLowerCase()}\`};return o.jsxs("div",{"data-testid":"time-travel-panel",className:"flex flex-col bg-bg-surface-1 border border-border/50 rounded-2xl overflow-hidden mb-8 shadow-sm",children:[o.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between px-6 py-3 border-b border-border/50 gap-4",children:[o.jsxs("div",{className:"flex flex-col items-start gap-0.5",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 h-8",children:[m?o.jsx("input",{ref:x,type:"text",value:y,onChange:e=>v(e.target.value),onBlur:T,onKeyDown:e=>{if("Enter"===e.key)return void T();if("Escape"===e.key)return e.preventDefault(),g(!1),void(b.current&&t(null));if("ArrowUp"!==e.key&&"ArrowDown"!==e.key)return;e.preventDefault();const n=x.current;if(!n)return;const r=n.selectionStart??0,a="ArrowUp"===e.key?1:-1,s=zu(y,d);if(null===s)return;const i=y.indexOf(":"),o=y.indexOf(":",i+1),l=y.lastIndexOf(" ");let c;c=r<=i?36e5*a:o>-1&&r<=o?6e4*a:l>-1&&r<=l?1e3*a:12*a*36e5;const u=Math.min(s+c,Date.now()),h=new Date(u).toLocaleTimeString([],{hour12:!0,hour:"2-digit",minute:"2-digit",second:"2-digit"});v(h),t(u),requestAnimationFrame(()=>{n&&n.setSelectionRange(r,r)})},className:"text-xl font-mono font-bold tracking-tight bg-bg-surface-2 border rounded-lg px-2 -ml-2 w-[155px] outline-none text-text-primary "+(i?"border-accent":"border-history"),style:{boxShadow:i?"0 0 10px rgba(var(--accent-rgb), 0.2)":"0 0 10px rgba(var(--history-rgb), 0.2)"}}):o.jsxs("button",{onClick:N,className:"group flex items-center gap-2 hover:bg-bg-surface-2/50 rounded-lg px-2 -ml-2 py-1 transition-all cursor-text",title:"Click to edit time",children:[o.jsx(Pl,{className:"w-5 h-5 "+(i?"text-text-muted":"text-history")}),o.jsx("span",{"data-testid":"time-display",className:"text-xl font-mono font-bold tracking-tight tabular-nums "+(i?"text-text-primary":"text-history"),children:new Date(d).toLocaleTimeString([],{hour12:!0,hour:"2-digit",minute:"2-digit",second:"2-digit"})})]}),o.jsx("button",{onClick:m?T:N,className:"p-1.5 rounded-lg transition-colors flex-shrink-0 "+(m?i?"bg-accent text-bg-base hover:bg-accent-bright":"bg-history text-white hover:brightness-110":"text-text-muted hover:text-text-primary hover:bg-bg-surface-2"),title:m?"Confirm time":"Edit time",children:o.jsx(Ql,{className:"w-3.5 h-3.5"})})]}),i?o.jsx(Mu,{label:"Live",color:"success",dot:!0,glow:!0,"data-testid":"live-badge"}):o.jsxs(o.Fragment,{children:[o.jsx(Mu,{label:"History",color:"muted","data-testid":"history-badge"}),o.jsxs("button",{"data-testid":"go-live-button",onClick:()=>t(null),className:"group flex items-center gap-1.5 px-3 py-1.5 text-[10px] font-bold uppercase tracking-widest bg-history/10 hover:bg-history text-history hover:text-white rounded-xl transition-all border border-history/20",children:[o.jsx(ec,{className:"w-3 h-3 group-hover:-rotate-90 transition-transform duration-500"}),"Live"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2 text-sm text-text-secondary font-medium px-0.5",children:[o.jsx(wl,{className:"w-3.5 h-3.5 text-text-muted"}),o.jsx("span",{"data-testid":"date-display",children:new Date(d).toLocaleDateString([],{weekday:"short",month:"long",day:"numeric",year:"numeric"})}),o.jsx("span",{className:"text-text-muted",children:"\xB7"}),o.jsx("span",{"data-testid":"period-label",className:"text-text-muted text-xs tabular-nums",children:p})]})]}),o.jsxs("div",{className:"flex flex-col sm:flex-row items-center gap-4",children:[o.jsxs("div",{className:"flex items-center bg-bg-surface-2/50 border border-border/50 rounded-xl p-1 shadow-inner",children:[Lc.map(e=>o.jsx("button",{"data-testid":\`scale-\${e}\`,onClick:()=>r(e),className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider rounded-lg transition-all "+(n===e?"bg-bg-surface-3 text-text-primary shadow-sm":"text-text-muted hover:text-text-primary hover:bg-bg-surface-2"),title:Vc[e],children:e},e)),o.jsx("div",{className:"w-px h-5 bg-border/50 mx-1"}),Dc.map(e=>{const t=n===e||zc[n]===e;return o.jsx("button",{"data-testid":\`scale-\${e}\`,onClick:()=>r(e),className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider rounded-lg transition-all "+(t?"bg-bg-surface-3 text-text-primary shadow-sm":"text-text-muted hover:text-text-primary hover:bg-bg-surface-2"),title:Vc[e],children:e},e)})]}),o.jsx("div",{className:"flex items-center gap-2",children:o.jsxs("div",{className:"flex items-center gap-1 bg-bg-surface-2/50 border border-border/50 rounded-xl p-1",children:[o.jsx("button",{onClick:()=>C(-1),className:"p-2 text-text-muted hover:text-text-primary hover:bg-bg-surface-2 rounded-lg transition-colors",title:E(-1),children:o.jsx(Nl,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>C(1),className:"p-2 text-text-muted hover:text-text-primary hover:bg-bg-surface-2 rounded-lg transition-colors disabled:opacity-20 disabled:cursor-not-allowed",title:E(1),disabled:i||d>=Date.now()-1e3,children:o.jsx(Tl,{className:"w-4 h-4"})})]})})]})]}),o.jsx(Du,{value:d,onChange:j,scale:n,window:l?f:void 0,sessions:a,milestones:void 0,showPublic:s})]})}function Fu({children:e}){return o.jsx("span",{className:"text-text-primary font-medium",children:e})}function Vu(e){return e.reduce((e,t)=>e+t.duration_seconds,0)/3600}function Iu(e,t){const n=e.filter(e=>null!=e.evaluation);if(n.length<2)return null;return n.reduce((e,n)=>e+n.evaluation[t],0)/n.length}function Ou(e,t,n,r,a,s){var i;const l=[],c=a-(s-a),u=a,d=function(e,t,n){return e.filter(e=>{const r=new Date(e.started_at).getTime();return r>=t&&r<=n})}(n,c,u),h=function(e,t,n){return e.filter(e=>{const r=new Date(e.created_at).getTime();return r>=t&&r<=n})}(r,c,u),f=Vu(e),p=Vu(d),m=Iu(e,"prompt_quality"),g=Iu(d,"prompt_quality");if(null!==m&&null!==g&&m>g+.3&&l.push({priority:10,node:o.jsxs("span",{children:["Your prompt quality improved from ",o.jsx(Fu,{children:g.toFixed(1)})," to"," ",o.jsx(Fu,{children:m.toFixed(1)})," \u2014 clearer prompts mean faster results."]})}),d.length>0&&e.length>0){const e=t.length/Math.max(f,.1),n=h.length/Math.max(p,.1);e>1.2*n&&t.length>=2&&l.push({priority:9,node:o.jsxs("span",{children:["You're shipping ",o.jsxs(Fu,{children:[Math.round(100*(e/n-1)),"% faster"]})," ","this period \u2014 great momentum."]})})}const y=t.filter(e=>"complex"===e.complexity).length,v=h.filter(e=>"complex"===e.complexity).length;y>v&&y>=2&&l.push({priority:8,node:o.jsxs("span",{children:[o.jsx(Fu,{children:y})," complex ",1===y?"task":"tasks"," this period vs"," ",o.jsx(Fu,{children:v})," before \u2014 you're taking on harder problems."]})});const x=e.filter(e=>null!=e.evaluation),b=x.filter(e=>"completed"===e.evaluation.task_outcome&&e.evaluation.iteration_count<=3);if(x.length>=3&&b.length>0){const e=Math.round(b.length/x.length*100);e>=50&&l.push({priority:7,node:o.jsxs("span",{children:[o.jsxs(Fu,{children:[e,"%"]})," of your sessions completed in 3 or fewer turns \u2014 efficient prompting."]})})}const w=function(e){if(0===e.length)return null;const t={};for(const a of e){const e=a.task_type||"coding";t[e]=(t[e]??0)+a.duration_seconds}const n=e.reduce((e,t)=>e+t.duration_seconds,0),r=Object.entries(t).sort((e,t)=>t[1]-e[1])[0];return r&&0!==n?{type:r[0],pct:Math.round(r[1]/n*100)}:null}(e);if(w&&w.pct>=60&&e.length>=2){const e={coding:"building",debugging:"debugging",testing:"testing",planning:"planning",reviewing:"reviewing",documenting:"documenting",refactoring:"refactoring",research:"researching",analysis:"analyzing"}[w.type]??w.type;l.push({priority:6,node:o.jsxs("span",{children:["Deep focus: ",o.jsxs(Fu,{children:[w.pct,"%"]})," of your time spent ",e,"."]})})}const k={};for(const o of e)o.client&&(k[i=o.client]??(k[i]=[])).push(o);const S=Object.entries(k).filter(([,e])=>e.length>=2);if(S.length>=2){const e=S.map(([e,n])=>{const r=Vu(n),a=new Set(n.map(e=>e.session_id)),s=t.filter(e=>a.has(e.session_id));return{name:e,rate:s.length/Math.max(r,.1),count:s.length}}).filter(e=>e.count>0);if(e.length>=2){e.sort((e,t)=>t.rate-e.rate);const t=e[0],n=gc[t.name]??t.name;l.push({priority:5,node:o.jsxs("span",{children:[o.jsx(Fu,{children:n})," is your most productive tool this period \u2014 ",t.count," ",1===t.count?"milestone":"milestones"," shipped."]})})}}const j=Iu(e,"context_provided");if(null!==j&&j<3.5&&l.push({priority:4,node:o.jsxs("span",{children:["Tip: Your context score averages ",o.jsxs(Fu,{children:[j.toFixed(1),"/5"]})," \u2014 try including specific files and error messages for faster results."]})}),x.length>=3){const e=x.filter(e=>"completed"===e.evaluation.task_outcome).length,t=Math.round(e/x.length*100);100===t?l.push({priority:3,node:o.jsxs("span",{children:[o.jsx(Fu,{children:"100%"})," completion rate \u2014 every task landed."]})}):t<70&&l.push({priority:4,node:o.jsxs("span",{children:[o.jsxs(Fu,{children:[t,"%"]})," completion rate \u2014 try breaking tasks into smaller, well-scoped pieces."]})})}return p>0&&f>1.5*p&&f>=1&&l.push({priority:2,node:o.jsxs("span",{children:[o.jsxs(Fu,{children:[Math.round(100*(f/p-1)),"% more"]})," AI-paired time this period \u2014 you're leaning in."]})}),0===e.length&&l.push({priority:1,node:o.jsx("span",{className:"text-text-muted",children:"No sessions in this window. Start coding with AI to see insights here."})}),l.sort((e,t)=>t.priority-e.priority)}function $u({sessions:e,milestones:t,windowStart:n,windowEnd:r,allSessions:a,allMilestones:s}){const i=h.useMemo(()=>{const i=Ou(e,t,a??e,s??t,n,r);return i[0]?.node??null},[e,t,a,s,n,r]);return i?o.jsx(pl.div,{initial:{opacity:0},animate:{opacity:1},className:"rounded-xl bg-bg-surface-1 border border-border/50 px-4 py-3",children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx(sc,{className:"w-4 h-4 text-accent flex-shrink-0 mt-0.5"}),o.jsx("p",{className:"text-sm text-text-secondary leading-relaxed",children:i})]})}):null}function Bu(e){return e>=5?"var(--color-text-muted)":e>=4?"#f59e0b":e>=3?"#f97316":"var(--color-error)"}function Uu({sessions:e}){const{scores:t,summaryLine:n}=h.useMemo(()=>{const t=e.filter(e=>null!=e.evaluation);if(0===t.length)return{scores:null,summaryLine:null};let n=0,r=0,a=0,s=0,i=0,o=0;for(const e of t){const t=e.evaluation;n+=t.prompt_quality,r+=t.context_provided,a+=t.independence_level,s+=t.scope_quality,o+=t.iteration_count,"completed"===t.task_outcome&&i++}const l=t.length,c=Math.round(i/l*100);return{scores:[{label:"Prompt Quality",value:n/l,max:5},{label:"Context",value:r/l,max:5},{label:"Independence",value:a/l,max:5},{label:"Scope",value:s/l,max:5},{label:"Completion",value:c/20,max:5}],summaryLine:\`\${l} session\${1===l?"":"s"} evaluated \xB7 \${c}% completed \xB7 avg \${(o/l).toFixed(1)} iterations\`}},[e]);return o.jsxs(pl.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"rounded-xl bg-bg-surface-1 border border-border/50 p-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx("div",{className:"p-1.5 rounded-lg bg-bg-surface-2",children:o.jsx(ic,{className:"w-3.5 h-3.5 text-text-muted"})}),o.jsx("h2",{className:"text-sm font-bold text-text-muted uppercase tracking-widest",children:"AI Proficiency"})]}),null===t?o.jsx("p",{className:"text-xs text-text-muted py-2",children:"No evaluation data yet"}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"space-y-3",children:t.map((e,t)=>{const n=e.value/e.max*100,r="Completion"===e.label?\`\${Math.round(n)}%\`:e.value>=5?"5/5":\`\${e.value.toFixed(1)}/5\`,a=e.value>=e.max;return o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("span",{className:"text-xs text-text-secondary font-medium w-28 text-right shrink-0",children:e.label}),o.jsx("div",{className:"flex-1 h-1.5 rounded-full bg-bg-surface-2/50 overflow-hidden",children:o.jsx(pl.div,{className:"h-full rounded-full",style:{backgroundColor:Bu(e.value)},initial:{width:0},animate:{width:\`\${n}%\`},transition:{duration:.6,delay:.05*t,ease:[.22,1,.36,1]}})}),o.jsx("span",{className:"text-xs font-mono w-10 text-right shrink-0 "+(a?"text-text-muted":"font-bold"),style:a?void 0:{color:Bu(e.value)},children:r})]},e.label)})}),o.jsx("p",{className:"text-[10px] text-text-muted mt-4 px-1 font-mono",children:n})]})]})}var Hu=["Output","Efficiency","Prompts","Consistency","Breadth"];function Wu(e,t,n,r,a){const s=2*Math.PI*e/5-Math.PI/2;return[n+a*t*Math.cos(s),r+a*t*Math.sin(s)]}function qu(e,t,n,r){const a=[];for(let s=0;s<5;s++){const[i,o]=Wu(s,e,t,n,r);a.push(\`\${i},\${o}\`)}return a.join(" ")}function Yu({sessions:e,milestones:t,streak:n}){const{values:r,hasEvalData:a}=h.useMemo(()=>{const r={simple:1,medium:2,complex:4};let a=0;for(const e of t)a+=r[e.complexity]??1;const s=Math.min(1,a/10),i=e.reduce((e,t)=>e+t.files_touched,0),o=e.reduce((e,t)=>e+t.duration_seconds,0)/3600,l=Math.min(1,i/Math.max(o,1)/20),c=e.filter(e=>null!=e.evaluation);let u=0;const d=c.length>0;if(d){u=c.reduce((e,t)=>e+t.evaluation.prompt_quality,0)/c.length/5}const h=Math.min(1,n/14),f=new Set;for(const t of e)for(const e of t.languages)f.add(e);return{values:[s,l,u,h,Math.min(1,f.size/5)],hasEvalData:d}},[e,t,n]),s=100,i=100,l=[];for(let o=0;o<5;o++){const e=Math.max(r[o],.02),[t,n]=Wu(o,e,s,i,70);l.push(\`\${t},\${n}\`)}const c=l.join(" ");return o.jsxs(pl.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.15},className:"rounded-xl bg-bg-surface-1 border border-border/50 p-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx("div",{className:"p-1.5 rounded-lg bg-bg-surface-2",children:o.jsx(xl,{className:"w-3.5 h-3.5 text-text-muted"})}),o.jsx("h2",{className:"text-sm font-bold text-text-muted uppercase tracking-widest",children:"Skill Profile"})]}),o.jsx("div",{className:"flex justify-center",children:o.jsxs("svg",{viewBox:"0 0 200 200",width:200,height:200,className:"overflow-visible",children:[[.33,.66,1].map(e=>o.jsx("polygon",{points:qu(e,s,i,70),fill:"none",stroke:"var(--color-bg-surface-3)",strokeWidth:.5,opacity:.6},e)),Array.from({length:5}).map((e,t)=>{const[n,r]=Wu(t,1,s,i,70);return o.jsx("line",{x1:s,y1:i,x2:n,y2:r,stroke:"var(--color-bg-surface-3)",strokeWidth:.5,opacity:.4},\`axis-\${t}\`)}),o.jsx(pl.polygon,{points:c,fill:"var(--color-accent)",fillOpacity:.2,stroke:"var(--color-accent)",strokeWidth:1.5,strokeLinejoin:"round",initial:{opacity:0,scale:.5},animate:{opacity:1,scale:1},transition:{duration:.6,ease:[.22,1,.36,1]},style:{transformOrigin:"100px 100px"}}),r.map((e,t)=>{const n=Math.max(e,.02),[r,l]=Wu(t,n,s,i,70),c=2===t&&!a;return o.jsx("circle",{cx:r,cy:l,r:2.5,fill:c?"var(--color-text-muted)":"var(--color-accent-bright)",opacity:c?.4:1},\`point-\${t}\`)}),Hu.map((e,t)=>{const n=function(e,t,n,r){const[a,s]=Wu(e,1.28,t,n,r);let i="middle";return 1!==e&&2!==e||(i="start"),3!==e&&4!==e||(i="end"),{x:a,y:s,anchor:i}}(t,s,i,70),r=2===t&&!a;return o.jsx("text",{x:n.x,y:n.y,textAnchor:n.anchor,dominantBaseline:"central",className:"text-[9px] font-medium",fill:r?"var(--color-text-muted)":"var(--color-text-secondary)",opacity:r?.5:1,children:e},e)})]})}),o.jsx("div",{className:"flex justify-center gap-3 mt-2 flex-wrap",children:Hu.map((e,t)=>{const n=2===t&&!a,s=Math.round(100*r[t]);return o.jsxs("span",{className:"text-[10px] font-mono "+(n?"text-text-muted/50":"text-text-muted"),children:[s,"%"]},e)})})]})}var Ku={coding:"#b4f82c",debugging:"#f87171",testing:"#60a5fa",planning:"#a78bfa",reviewing:"#34d399",documenting:"#fbbf24",learning:"#f472b6",deployment:"#fb923c",devops:"#e879f9",research:"#22d3ee",migration:"#facc15",design:"#c084fc",data:"#2dd4bf",security:"#f43f5e",configuration:"#a3e635",other:"#94a3b8"};function Xu(e){if(e<60)return"<1m";const t=Math.round(e/60);if(t<60)return\`\${t}m\`;return\`\${(e/3600).toFixed(1)}h\`}function Qu({byTaskType:e}){const t=Object.entries(e).filter(([,e])=>e>0).sort((e,t)=>t[1]-e[1]);if(0===t.length)return null;const n=t[0][1];return o.jsxs("div",{className:"rounded-xl bg-bg-surface-1 border border-border/50 p-4 mb-8",children:[o.jsx("h2",{className:"text-sm font-bold text-text-muted uppercase tracking-widest mb-4 px-1",children:"Task Types"}),o.jsx("div",{className:"space-y-2.5",children:t.map(([e,t],r)=>{const a=Ku[e]??Ku.other,s=t/n*100;return o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("span",{className:"text-xs text-text-secondary font-medium w-24 text-right shrink-0",children:(i=e,i.charAt(0).toUpperCase()+i.slice(1))}),o.jsx("div",{className:"flex-1 h-5 rounded bg-bg-surface-2/50 overflow-hidden",children:o.jsx(pl.div,{className:"h-full rounded",style:{backgroundColor:a},initial:{width:0},animate:{width:\`\${s}%\`},transition:{duration:.6,delay:.05*r,ease:[.22,1,.36,1]}})}),o.jsx("span",{className:"text-xs text-text-muted font-mono w-12 text-right shrink-0",children:Xu(t)})]},e);var i})})]})}var Zu=["#b4f82c","#60a5fa","#f87171","#a78bfa","#fbbf24","#34d399","#f472b6","#22d3ee"];function Gu(e){if(e<60)return"<1m";const t=Math.round(e/60);if(t<60)return\`\${t}m\`;return\`\${(e/3600).toFixed(1)}h\`}function Ju({sessions:e,byProject:t}){const[n,r]=h.useState("user"),[a,s]=h.useState(!1),i=h.useMemo(()=>{const t=[];for(const o of e){if(!o.project)continue;const e=new Date(o.started_at).getTime(),n=new Date(o.ended_at).getTime();n<=e||(t.push({time:e,project:o.project,delta:1}),t.push({time:n,project:o.project,delta:-1}))}t.sort((e,t)=>e.time-t.time||e.delta-t.delta);const n={},r={};let a=0,s=0;for(const e of t){if(a>0&&e.time>s){const t=e.time-s,a=Object.keys(r).filter(e=>r[e]>0),i=a.length;if(i>0){const e=t/i;for(const t of a)n[t]=(n[t]??0)+e}}s=e.time,r[e.project]=(r[e.project]??0)+e.delta,0===r[e.project]&&delete r[e.project],a=Object.values(r).reduce((e,t)=>e+t,0)}const i={};for(const[e,o]of Object.entries(n))o>0&&(i[e]=o/1e3);return i},[e]),l="user"===n?i:t,c=h.useMemo(()=>function(e){const t=Object.entries(e).filter(([,e])=>e>0).sort((e,t)=>t[1]-e[1]);if(0===t.length)return[];const n=t.reduce((e,[,t])=>e+t,0);let r,a=0;t.length<=6?r=t:(r=t.slice(0,6),a=t.slice(6).reduce((e,[,t])=>e+t,0));const s=r.map(([e,t],r)=>({name:e,seconds:t,color:Zu[r%Zu.length],percentage:t/n*100}));return a>0&&s.push({name:"Other",seconds:a,color:"#64748b",percentage:a/n*100}),s}(l),[l]);if(0===c.length)return null;const u=c.reduce((e,t)=>e+t.seconds,0),d=140,f=2*Math.PI*52;let p=0;const m=c.map(e=>{const t=e.percentage/100*f,n=f-t,r=.25*f-p;return p+=t,{...e,dashLength:t,gap:n,offset:r}}),g={user:"User Time",ai:"AI Time"};return o.jsxs(pl.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"rounded-xl bg-bg-surface-1 border border-border/50 p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4 px-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"p-1.5 rounded-lg bg-bg-surface-2",children:o.jsx($l,{className:"w-3.5 h-3.5 text-text-muted"})}),o.jsx("h2",{className:"text-sm font-bold text-text-muted uppercase tracking-widest",children:"Project Allocation"})]}),o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>s(e=>!e),className:"inline-flex items-center gap-1 px-2 py-1 rounded-md border border-border/50 bg-bg-surface-2 text-[11px] text-text-secondary font-medium hover:border-text-muted/50 transition-colors",children:[g[n],o.jsx(Cl,{className:"w-3 h-3 text-text-muted"})]}),a&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>s(!1)}),o.jsx("div",{className:"absolute right-0 top-full mt-1 z-20 min-w-[120px] rounded-lg border border-border/50 bg-bg-surface-1 shadow-lg py-1",children:Object.entries(g).map(([e,t])=>o.jsx("button",{onClick:()=>{r(e),s(!1)},className:"w-full text-left px-3 py-1.5 text-xs transition-colors "+(e===n?"text-accent bg-accent/10 font-medium":"text-text-secondary hover:bg-bg-surface-2"),children:t},e))})]})]})]}),o.jsxs("div",{className:"flex flex-col sm:flex-row items-center gap-6",children:[o.jsxs("div",{className:"relative shrink-0",style:{width:d,height:d},children:[o.jsxs("svg",{width:d,height:d,viewBox:"0 0 140 140",children:[o.jsx("circle",{cx:70,cy:70,r:52,fill:"none",stroke:"var(--color-bg-surface-2, #1e293b)",strokeWidth:18,opacity:.3}),m.map((e,t)=>o.jsx(pl.circle,{cx:70,cy:70,r:52,fill:"none",stroke:e.color,strokeWidth:18,strokeDasharray:\`\${e.dashLength} \${e.gap}\`,strokeDashoffset:e.offset,strokeLinecap:"butt",initial:{opacity:0},animate:{opacity:1},transition:{duration:.5,delay:.1+.08*t,ease:[.22,1,.36,1]}},\`\${n}-\${e.name}\`))]}),o.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[o.jsx("span",{className:"text-lg font-bold text-text-primary leading-none",children:c.length}),o.jsx("span",{className:"text-[10px] text-text-muted mt-0.5",children:1===c.length?"project":"projects"})]})]}),o.jsx("div",{className:"flex-1 min-w-0 space-y-1.5 w-full",children:c.map((e,t)=>o.jsxs(pl.div,{className:"flex items-center gap-2.5",initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{duration:.4,delay:.15+.06*t,ease:[.22,1,.36,1]},children:[o.jsx("span",{className:"w-2.5 h-2.5 rounded-full shrink-0",style:{backgroundColor:e.color}}),o.jsx("span",{className:"text-xs text-text-secondary font-medium truncate flex-1 min-w-0",children:e.name}),o.jsx("span",{className:"text-[10px] text-text-muted font-mono shrink-0",children:Gu(e.seconds)}),o.jsxs("span",{className:"text-[10px] text-text-muted/70 font-mono w-10 text-right shrink-0",children:[e.percentage.toFixed(0),"%"]})]},e.name))})]}),o.jsx("div",{className:"mt-4 flex h-2 rounded-full overflow-hidden bg-bg-surface-2/30",children:c.map(e=>{const t=u>0?e.seconds/u*100:0;return 0===t?null:o.jsx(pl.div,{className:"h-full",style:{backgroundColor:e.color},initial:{width:0},animate:{width:\`\${t}%\`},transition:{duration:.8,ease:[.22,1,.36,1]}},e.name)})})]})}var ed={feature:"bg-success/10 text-success border-success/20",bugfix:"bg-error/10 text-error border-error/20",refactor:"bg-purple/10 text-purple border-purple/20",test:"bg-blue/10 text-blue border-blue/20",docs:"bg-accent/10 text-accent border-accent/20",setup:"bg-text-muted/10 text-text-muted border-text-muted/20",deployment:"bg-emerald/10 text-emerald border-emerald/20"};function td(e){const t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return"just now";if(n<60)return\`\${n}m ago\`;const r=Math.floor(n/60);if(r<24)return\`\${r}h ago\`;const a=Math.floor(r/24);return 1===a?"yesterday":a<7?\`\${a}d ago\`:new Date(e).toLocaleDateString([],{month:"short",day:"numeric"})}function nd({milestones:e,showPublic:t=!1}){const n=[...e].sort((e,t)=>new Date(t.created_at).getTime()-new Date(e.created_at).getTime()).slice(0,8);return o.jsxs(pl.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.35,ease:[.22,1,.36,1]},className:"rounded-xl bg-bg-surface-1 border border-border/50 p-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-3 px-1",children:[o.jsx(uc,{className:"w-4 h-4 text-accent"}),o.jsx("h2",{className:"text-sm font-bold text-text-muted uppercase tracking-widest",children:"Recent Achievements"}),o.jsxs("span",{className:"text-[10px] text-text-muted font-mono bg-bg-surface-2 px-2 py-0.5 rounded ml-auto",children:[e.length," total"]})]}),0===n.length?o.jsx("div",{className:"text-sm text-text-muted text-center py-6",children:"No milestones yet \u2014 complete your first session!"}):o.jsx("div",{className:"space-y-0.5",children:n.map((e,n)=>{const r=bc[e.category]??"#9c9588",a=ed[e.category]??"bg-bg-surface-2 text-text-secondary border-border",s=yc[e.client]??e.client.slice(0,2).toUpperCase(),i=mc[e.client]??"#91919a",l=t?e.title:e.private_title||e.title,c="complex"===e.complexity;return o.jsxs(pl.div,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{duration:.25,delay:.04*n},className:"flex items-center gap-3 py-2 px-2 rounded-lg hover:bg-bg-surface-2/40 transition-colors",children:[o.jsx("div",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:r}}),o.jsx("span",{className:"text-sm font-medium text-text-secondary hover:text-text-primary truncate flex-1 min-w-0",children:l}),o.jsx("span",{className:\`text-[9px] uppercase tracking-wider font-bold px-1.5 py-0.5 rounded-full border flex-shrink-0 \${a}\`,children:e.category}),c&&o.jsxs("span",{className:"flex items-center gap-0.5 text-[9px] uppercase tracking-wider font-bold px-1.5 py-0.5 rounded-full border bg-purple/10 text-purple border-purple/20 flex-shrink-0",children:[o.jsx(xl,{className:"w-2.5 h-2.5"}),"complex"]}),o.jsx("span",{className:"text-[10px] text-text-muted font-mono flex-shrink-0",children:td(e.created_at)}),o.jsx("div",{className:"w-5 h-5 rounded flex items-center justify-center text-[8px] font-bold font-mono flex-shrink-0",style:{backgroundColor:\`\${i}15\`,color:i,border:\`1px solid \${i}20\`},children:s})]},e.id)})})]})}function rd(e){const t=e/3600;return t<1?\`\${Math.round(60*t)}m\`:\`\${t.toFixed(1)}h\`}function ad(e,t){return Object.entries(e).sort((e,t)=>t[1]-e[1]).slice(0,t)}function sd({label:e,children:t}){return o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("span",{className:"text-[10px] text-text-muted uppercase tracking-widest font-bold whitespace-nowrap",children:e}),o.jsx("div",{className:"flex items-center gap-1.5 overflow-x-auto pb-1 no-scrollbar",children:t})]})}function id({stats:e}){const t=ad(e.byClient,4),n=ad(e.byLanguage,4);return 0===t.length&&0===n.length?null:o.jsxs("div",{className:"flex flex-col gap-4 mb-8 p-4 rounded-xl bg-bg-surface-1/30 border border-border/50",children:[t.length>0&&o.jsx(sd,{label:"Top Clients",children:t.map(([e,t])=>{const n=mc[e];return o.jsxs("span",{className:"text-[11px] font-mono px-2.5 py-1 rounded-full bg-bg-surface-1 border border-border hover:border-accent/40 transition-colors shadow-sm whitespace-nowrap group cursor-default",style:n?{borderLeftWidth:"3px",borderLeftColor:n}:void 0,title:rd(t),children:[gc[e]??e,o.jsx("span",{className:"ml-1.5 text-text-muted opacity-0 group-hover:opacity-100 transition-opacity",children:rd(t)})]},e)})}),n.length>0&&o.jsx(sd,{label:"Languages",children:n.map(([e,t])=>o.jsxs("span",{className:"text-[11px] font-mono px-2.5 py-1 rounded-full bg-bg-surface-1 border border-border hover:border-accent/40 transition-colors shadow-sm whitespace-nowrap group cursor-default",title:rd(t),children:[e,o.jsx("span",{className:"ml-1.5 text-text-muted opacity-0 group-hover:opacity-100 transition-opacity",children:rd(t)})]},e))})]})}function od(e,t,n){try{const n="undefined"!=typeof window?localStorage.getItem(e):null;if(n&&t.includes(n))return n}catch{}return n}function ld(e,t){try{localStorage.setItem(e,t)}catch{}}function cd({sessions:e,milestones:t,onDeleteSession:n,onDeleteConversation:r,onDeleteMilestone:a,defaultTimeScale:s="day",activeTab:i,onActiveTabChange:l}){const[c,u]=h.useState(null),[d,f]=h.useState(()=>od("useai-time-scale",Ac,s)),[p,m]=h.useState({category:"all",client:"all",project:"all",language:"all"}),[g,y]=h.useState(()=>od("useai-active-tab",["sessions","insights"],"sessions")),[v,x]=h.useState(null),[b,w]=h.useState(!1),[k,S]=h.useState(!1),j=void 0!==i,C=i??g,N=h.useCallback(e=>{l?l(e):(ld("useai-active-tab",e),y(e))},[l]),T=h.useCallback(e=>{ld("useai-time-scale",e),f(e)},[]),E=h.useCallback((e,t)=>{m(n=>({...n,[e]:t}))},[]);h.useEffect(()=>{if(null===c){const e=zc[d];e&&T(e)}},[c,d,T]);const M=null===c,P=c??Date.now(),{start:L,end:D}=Ic(d,P),A=h.useMemo(()=>function(e,t,n){return e.filter(e=>{const r=Cc(e.started_at),a=Cc(e.ended_at);return r<=n&&a>=t})}(e,L,D),[e,L,D]),_=h.useMemo(()=>function(e,t,n){return e.filter(e=>{const r=Cc(e.created_at);return r>=t&&r<=n})}(t,L,D),[t,L,D]),z=h.useMemo(()=>function(e,t=[]){let n=0,r=0;const a={},s={},i={},o={};for(const y of e){n+=y.duration_seconds,r+=y.files_touched,a[y.client]=(a[y.client]??0)+y.duration_seconds;for(const e of y.languages)s[e]=(s[e]??0)+y.duration_seconds;i[y.task_type]=(i[y.task_type]??0)+y.duration_seconds,y.project&&(o[y.project]=(o[y.project]??0)+y.duration_seconds)}let l=0,c=0,u=0,d=0;if(e.length>0){let t=1/0,r=-1/0;const a=[];for(const n of e){const e=Cc(n.started_at),s=Cc(n.ended_at);e<t&&(t=e),s>r&&(r=s),a.push({time:e,delta:1}),a.push({time:s,delta:-1})}l=(r-t)/36e5,a.sort((e,t)=>e.time-t.time||e.delta-t.delta);let s=0,i=0,o=0;for(const e of a){const t=s>0;s+=e.delta,s>d&&(d=s),!t&&s>0?o=e.time:t&&0===s&&(i+=e.time-o)}c=i/36e5,u=c>0?n/3600/c:0}const h=function(e){let t=0,n=0,r=0;for(const a of e)"feature"===a.category&&t++,"bugfix"===a.category&&n++,"complex"===a.complexity&&r++;return{featuresShipped:t,bugsFixed:n,complexSolved:r}}(t),f=e.filter(e=>e.evaluation&&"object"==typeof e.evaluation),p=f.filter(e=>"completed"===e.evaluation.task_outcome).length,m=f.length>0?Math.round(p/f.length*100):0,g=Object.keys(o).length;return{totalHours:n/3600,totalSessions:e.length,actualSpanHours:l,coveredHours:c,aiMultiplier:u,peakConcurrency:d,currentStreak:Nc(e),filesTouched:Math.round(r),...h,totalMilestones:t.length,completionRate:m,activeProjects:g,byClient:a,byLanguage:s,byTaskType:i,byProject:o}}(A,_),[A,_]),R=h.useMemo(()=>Nc(e),[e]),F=h.useMemo(()=>{const t=function(e,t,n){let r=0,a=0;for(const s of e){const e=Cc(s.ended_at),i=Cc(s.started_at);e<t?r++:i>n&&a++}return{before:r,after:a}}(e,L,D);if(M&&0===t.before)return;const n=Vc[d],r=e=>new Date(e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0}),a=Rc(d)||D-L>=864e5?e=>\`\${new Date(e).toLocaleDateString([],{month:"short",day:"numeric"})} \${r(e)}\`:r,s=Oc(d,P,-1),i=Ic(d,s),o=\`View prev \${n} \xB7 \${a(i.start)} \u2013 \${a(i.end)}\`;if(M)return{before:t.before,after:0,olderLabel:o};const l=Oc(d,P,1),c=Ic(d,l);return{...t,newerLabel:\`View next \${n} \xB7 \${a(c.start)} \u2013 \${a(c.end)}\`,olderLabel:o}},[e,L,D,P,M,d]),V=h.useCallback(()=>{const e=Oc(d,P,1);$c(d,e)?u(null):u(e)},[P,d]),I=h.useCallback(()=>{const e=Oc(d,P,-1);u(e)},[P,d]),O=h.useMemo(()=>{if(!M)return new Date(P).toISOString().slice(0,10)},[M,P]),$=h.useMemo(()=>{let e=0,t=0,n=0;for(const r of _)"simple"===r.complexity?e++:"medium"===r.complexity?t++:"complex"===r.complexity&&n++;return{simple:e,medium:t,complex:n}},[_]),B=h.useCallback(e=>{const t=new Date(\`\${e}T12:00:00\`).getTime();u(t),T("day")},[T]),U="all"!==p.client||"all"!==p.language||"all"!==p.project;return o.jsxs("div",{className:"space-y-3",children:[o.jsx(Ru,{value:c,onChange:u,scale:d,onScaleChange:T,sessions:e,milestones:t,showPublic:b}),o.jsx(Uc,{totalHours:z.totalHours,totalSessions:z.totalSessions,actualSpanHours:z.actualSpanHours,coveredHours:z.coveredHours,aiMultiplier:z.aiMultiplier,peakConcurrency:z.peakConcurrency,currentStreak:R,filesTouched:z.filesTouched,featuresShipped:z.featuresShipped,bugsFixed:z.bugsFixed,complexSolved:z.complexSolved,totalMilestones:z.totalMilestones,completionRate:z.completionRate,activeProjects:z.activeProjects,selectedCard:v,onCardClick:x}),o.jsx(Yc,{type:v,milestones:_,showPublic:b,onClose:()=>x(null)}),o.jsx(tu,{type:v,sessions:A,allSessions:e,currentStreak:R,stats:{totalHours:z.totalHours,coveredHours:z.coveredHours,aiMultiplier:z.aiMultiplier,peakConcurrency:z.peakConcurrency},showPublic:b,onClose:()=>x(null)}),!j&&o.jsx(cu,{activeTab:C,onTabChange:N}),"sessions"===C&&o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between px-1 pt-0.5",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"text-sm font-bold text-text-muted uppercase tracking-widest",children:"Activity Feed"}),o.jsxs("span",{className:"text-[10px] text-text-muted font-mono bg-bg-surface-2 px-2 py-0.5 rounded",children:[A.length," Sessions"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>w(e=>!e),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border transition-all duration-200 "+(b?"bg-success/10 border-success/30 text-success":"bg-bg-surface-1 border-border/50 text-text-muted hover:text-text-primary hover:border-text-muted/50"),title:b?"Showing public titles":"Showing private titles","aria-label":b?"Switch to private titles":"Switch to public titles",children:[b?o.jsx(Fl,{className:"w-3.5 h-3.5"}):o.jsx(Rl,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline text-xs font-medium",children:b?"Public":"Private"})]}),o.jsxs("button",{onClick:()=>S(e=>!e),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border transition-all duration-200 "+(k||U?"bg-accent/10 border-accent/30 text-accent":"bg-bg-surface-1 border-border/50 text-text-muted hover:text-text-primary hover:border-text-muted/50"),title:k?"Hide filters":"Show filters","aria-label":k?"Hide filters":"Show filters",children:[o.jsx(Il,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline text-xs font-medium",children:"Filters"})]})]})]}),k&&o.jsx(du,{sessions:A,filters:p,onFilterChange:E}),o.jsx(Tu,{sessions:A,milestones:_,filters:p,globalShowPublic:b,showFullDate:"week"===d||"7d"===d||"month"===d||"30d"===d,outsideWindowCounts:F,onNavigateNewer:V,onNavigateOlder:I,onDeleteSession:n,onDeleteConversation:r,onDeleteMilestone:a})]}),"insights"===C&&o.jsxs("div",{className:"space-y-4 pt-2",children:[o.jsx($u,{sessions:A,milestones:_,isLive:M,windowStart:L,windowEnd:D,allSessions:e,allMilestones:t}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsx(Uu,{sessions:A}),o.jsx(Yu,{sessions:A,milestones:_,streak:R})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsx(Pc,{data:$}),o.jsx(Ju,{sessions:A,byProject:z.byProject})]}),o.jsx(Qu,{byTaskType:z.byTaskType}),o.jsx(Ec,{sessions:e,timeScale:d,effectiveTime:P,isLive:M,onDayClick:B,highlightDate:O}),o.jsx(nd,{milestones:_,showPublic:b}),o.jsx(id,{stats:z})]})]})}function ud({className:e}){return o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 611.54 143.47",className:e,children:[o.jsxs("g",{fill:"var(--text-primary)",children:[o.jsx("path",{d:"M21.4,121.85c-4.57-4.57-6.85-10.02-6.85-16.37V17.23c0-3.1,1.55-4.65,4.64-4.65h25.55c3.1,0,4.65,1.55,4.65,4.65v76.64c0,3.25,1.12,6,3.37,8.25,2.24,2.25,4.99,3.37,8.25,3.37h27.87c3.25,0,6-1.12,8.25-3.37,2.24-2.24,3.37-4.99,3.37-8.25V17.23c0-3.1,1.55-4.65,4.64-4.65h25.55c3.1,0,4.65,1.55,4.65,4.65v88.25c0,6.35-2.29,11.81-6.85,16.37-4.57,4.57-10.03,6.85-16.37,6.85H37.78c-6.35,0-11.81-2.28-16.37-6.85Z"}),o.jsx("path",{d:"M146.93,124.06v-13.93c0-3.1,1.55-4.65,4.64-4.65h69.67c3.25,0,6-1.12,8.25-3.37,2.24-2.24,3.37-4.99,3.37-8.25s-1.12-6-3.37-8.25c-2.25-2.24-4.99-3.37-8.25-3.37h-51.09c-6.35,0-11.81-2.28-16.37-6.85-4.57-4.57-6.85-10.02-6.85-16.37v-23.22c0-6.35,2.28-11.81,6.85-16.37,4.56-4.57,10.02-6.85,16.37-6.85h92.9c3.1,0,4.65,1.55,4.65,4.65v13.94c0,3.1-1.55,4.65-4.65,4.65h-69.67c-3.25,0-6,1.12-8.25,3.37-2.25,2.25-3.37,4.99-3.37,8.25s1.12,6,3.37,8.25c2.24,2.25,4.99,3.37,8.25,3.37h51.09c6.35,0,11.8,2.29,16.37,6.85,4.57,4.57,6.85,10.03,6.85,16.37v23.22c0,6.35-2.29,11.81-6.85,16.37-4.57,4.57-10.03,6.85-16.37,6.85h-92.9c-3.1,0-4.64-1.55-4.64-4.65Z"}),o.jsx("path",{d:"M286.16,121.85c-4.57-4.57-6.85-10.02-6.85-16.37V35.81c0-6.35,2.28-11.81,6.85-16.37,4.56-4.57,10.02-6.85,16.37-6.85h74.32c6.35,0,11.8,2.29,16.37,6.85,4.57,4.57,6.85,10.03,6.85,16.37v23.22c0,6.35-2.29,11.81-6.85,16.37-4.57,4.57-10.03,6.85-16.37,6.85h-62.71v11.61c0,3.25,1.12,6,3.37,8.25,2.24,2.25,4.99,3.37,8.25,3.37h69.67c3.1,0,4.65,1.55,4.65,4.65v13.93c0,3.1-1.55,4.65-4.65,4.65h-92.9c-6.35,0-11.81-2.28-16.37-6.85ZM361.87,55.66c2.24-2.24,3.37-4.99,3.37-8.25s-1.12-6-3.37-8.25c-2.25-2.24-4.99-3.37-8.25-3.37h-27.87c-3.25,0-6,1.12-8.25,3.37-2.25,2.25-3.37,4.99-3.37,8.25v11.61h39.48c3.25,0,6-1.12,8.25-3.37Z"})]}),o.jsxs("g",{fill:"var(--accent)",children:[o.jsx("path",{d:"M432.08,126.44c-4.76-4.76-7.14-10.44-7.14-17.06v-24.2c0-6.61,2.38-12.3,7.14-17.06,4.76-4.76,10.44-7.14,17.06-7.14h65.34v-12.1c0-3.39-1.17-6.25-3.51-8.59-2.34-2.34-5.2-3.51-8.59-3.51h-72.6c-3.23,0-4.84-1.61-4.84-4.84v-14.52c0-3.23,1.61-4.84,4.84-4.84h96.8c6.61,0,12.3,2.38,17.06,7.14,4.76,4.76,7.14,10.45,7.14,17.06v72.6c0,6.62-2.38,12.3-7.14,17.06-4.76,4.76-10.45,7.14-17.06,7.14h-77.44c-6.62,0-12.3-2.38-17.06-7.14ZM510.97,105.87c2.34-2.34,3.51-5.2,3.51-8.59v-12.1h-41.14c-3.39,0-6.25,1.17-8.59,3.51-2.34,2.34-3.51,5.2-3.51,8.59s1.17,6.25,3.51,8.59c2.34,2.34,5.2,3.51,8.59,3.51h29.04c3.39,0,6.25-1.17,8.59-3.51Z"}),o.jsx("path",{d:"M562.87,128.74V17.42c0-3.23,1.61-4.84,4.84-4.84h26.62c3.23,0,4.84,1.61,4.84,4.84v111.32c0,3.23-1.61,4.84-4.84,4.84h-26.62c-3.23,0-4.84-1.61-4.84-4.84Z"})]})]})}var dd={category:"all",client:"all",project:"all",language:"all"};function hd({open:e,onClose:t,sessions:n,milestones:r,onDeleteSession:a,onDeleteConversation:s,onDeleteMilestone:i}){const[l,c]=h.useState(""),[u,d]=h.useState(""),[f,p]=h.useState(!1),m=h.useRef(null);h.useEffect(()=>{e&&(c(""),d(""),requestAnimationFrame(()=>m.current?.focus()))},[e]),h.useEffect(()=>{if(!e)return;const t=document.documentElement;return t.style.overflow="hidden",document.body.style.overflow="hidden",()=>{t.style.overflow="",document.body.style.overflow=""}},[e]),h.useEffect(()=>{if(!e)return;const n=e=>{"Escape"===e.key&&t()};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[e,t]),h.useEffect(()=>{const e=setTimeout(()=>d(l),250);return()=>clearTimeout(e)},[l]);const g=h.useMemo(()=>{const e=new Map;for(const t of r){const n=e.get(t.session_id);n?n.push(t):e.set(t.session_id,[t])}return e},[r]),{filteredSessions:y,filteredMilestones:v,highlightWords:x}=h.useMemo(()=>{const e=u.trim().toLowerCase();if(!e)return{filteredSessions:[],filteredMilestones:[],highlightWords:[]};const t=e.split(/\\s+/),a=n.filter(e=>function(e,t,n,r){const a=(r?[e.title,e.client,e.task_type,...e.languages,...t.map(e=>e.title)]:[e.private_title,e.title,e.client,e.task_type,...e.languages,...t.map(e=>e.private_title),...t.map(e=>e.title)]).filter(Boolean).join(" ").toLowerCase();return n.every(e=>a.includes(e))}(e,g.get(e.session_id)??[],t,f)),s=new Set(a.map(e=>e.session_id));return{filteredSessions:a,filteredMilestones:r.filter(e=>s.has(e.session_id)),highlightWords:t}},[n,r,g,u,f]),b=u.trim().length>0;return o.jsx(Qi,{children:e&&o.jsxs(o.Fragment,{children:[o.jsx(pl.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},className:"fixed inset-0 bg-black/40 backdrop-blur-sm z-[60]",onClick:t}),o.jsx(pl.div,{initial:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.96},transition:{duration:.15},className:"fixed inset-0 z-[61] flex items-start justify-center pt-[10vh] px-4 pointer-events-none",children:o.jsxs("div",{className:"w-full max-w-2xl bg-bg-base border border-border/50 rounded-xl shadow-2xl flex flex-col max-h-[75vh] pointer-events-auto",onClick:e=>e.stopPropagation(),children:[o.jsxs("div",{className:"flex items-center gap-3 px-4 py-3 border-b border-border/50",children:[o.jsx(nc,{className:"w-4 h-4 text-text-muted flex-shrink-0"}),o.jsx("input",{ref:m,type:"text",value:l,onChange:e=>c(e.target.value),placeholder:f?"Search public titles...":"Search all sessions and milestones...",className:"flex-1 bg-transparent text-sm text-text-primary placeholder:text-text-muted/50 outline-none"}),l&&o.jsx("button",{onClick:()=>{c(""),m.current?.focus()},className:"p-1 rounded-md hover:bg-bg-surface-2 text-text-muted hover:text-text-primary transition-colors",children:o.jsx(fc,{className:"w-3.5 h-3.5"})}),o.jsx("button",{onClick:()=>p(e=>!e),className:"p-1.5 rounded-md border transition-all duration-200 flex-shrink-0 "+(f?"bg-success/10 border-success/30 text-success":"bg-bg-surface-1 border-border/50 text-text-muted hover:text-text-primary hover:border-text-muted/50"),title:f?"Searching public titles":"Searching private titles",children:f?o.jsx(Fl,{className:"w-3.5 h-3.5"}):o.jsx(Rl,{className:"w-3.5 h-3.5"})}),o.jsx("kbd",{className:"hidden sm:inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded border border-border bg-bg-surface-1 text-[10px] font-mono text-text-muted",children:"esc"})]}),o.jsx("div",{className:"flex-1 overflow-y-auto overscroll-none px-4 py-3",children:b?0===y.length?o.jsxs("div",{className:"text-center py-12 text-sm text-text-muted/60",children:["No results for \u201C",u.trim(),"\u201D"]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"text-[10px] font-mono text-text-muted uppercase tracking-wider mb-3 px-1",children:[y.length," result",1!==y.length?"s":""]}),o.jsx(Tu,{sessions:y,milestones:v,filters:dd,globalShowPublic:f||void 0,showFullDate:!0,highlightWords:x,onDeleteSession:a,onDeleteConversation:s,onDeleteMilestone:i})]}):o.jsx("div",{className:"text-center py-12 text-sm text-text-muted/60",children:"Type to search across all sessions"})})]})})]})})}const fd=(pd=(e,t)=>({sessions:[],milestones:[],config:null,health:null,updateInfo:null,loading:!0,timeTravelTime:null,timeScale:(()=>{try{const e=localStorage.getItem("useai-time-scale"),t=[...Ac];if(e&&t.includes(e))return e}catch{}return"day"})(),filters:{category:"all",client:"all",project:"all",language:"all"},activeTab:(()=>{try{const e=localStorage.getItem("useai-active-tab");if("sessions"===e||"insights"===e||"settings"===e)return e}catch{}return"sessions"})(),loadAll:async()=>{try{const[t,n,r]=await Promise.all([_("/api/local/sessions"),_("/api/local/milestones"),V()]);e({sessions:t,milestones:n,config:r,loading:!1})}catch{e({loading:!1})}},loadHealth:async()=>{try{const t=await _("/health");e({health:t})}catch{}},loadUpdateCheck:async()=>{try{const t=await _("/api/local/update-check");e({updateInfo:t})}catch{}},setTimeTravelTime:t=>e({timeTravelTime:t}),setTimeScale:t=>{try{localStorage.setItem("useai-time-scale",t)}catch{}e({timeScale:t})},setFilter:(t,n)=>e(e=>({filters:{...e.filters,[t]:n}})),setActiveTab:t=>{try{localStorage.setItem("useai-active-tab",t)}catch{}e({activeTab:t})},deleteSession:async n=>{const r={sessions:t().sessions,milestones:t().milestones};e({sessions:r.sessions.filter(e=>e.session_id!==n),milestones:r.milestones.filter(e=>e.session_id!==n)});try{await function(e){return F(\`/api/local/sessions/\${encodeURIComponent(e)}\`)}(n)}catch{e(r)}},deleteConversation:async n=>{const r={sessions:t().sessions,milestones:t().milestones},a=new Set(r.sessions.filter(e=>e.conversation_id===n).map(e=>e.session_id));e({sessions:r.sessions.filter(e=>e.conversation_id!==n),milestones:r.milestones.filter(e=>!a.has(e.session_id))});try{await function(e){return F(\`/api/local/conversations/\${encodeURIComponent(e)}\`)}(n)}catch{e(r)}},deleteMilestone:async n=>{const r={milestones:t().milestones};e({milestones:r.milestones.filter(e=>e.id!==n)});try{await function(e){return F(\`/api/local/milestones/\${encodeURIComponent(e)}\`)}(n)}catch{e(r)}}}))?A(pd):A;var pd;const md=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;function gd(e){if(!e)return"Never synced";const t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return"Just now";if(n<60)return\`\${n}m ago\`;const r=Math.floor(n/60);if(r<24)return\`\${r}h ago\`;return\`\${Math.floor(r/24)}d ago\`}function yd({config:e,onRefresh:t}){const n=!!e.username,[r,a]=h.useState(!n),[s,i]=h.useState(e.username??""),[l,c]=h.useState("idle"),[u,d]=h.useState(),[f,p]=h.useState(!1),m=h.useRef(void 0),g=h.useRef(void 0);h.useEffect(()=>{e.username&&(a(!1),i(e.username))},[e.username]);const y=h.useCallback(t=>{const n=function(e){return e.toLowerCase().replace(/[^a-z0-9-]/g,"")}(t);if(i(n),d(void 0),m.current&&clearTimeout(m.current),g.current&&g.current.abort(),!n)return void c("idle");const r=function(e){return 0===e.length?{valid:!1}:e.length<3?{valid:!1,reason:"At least 3 characters"}:e.length>32?{valid:!1,reason:"At most 32 characters"}:md.test(e)?{valid:!0}:{valid:!1,reason:"No leading/trailing hyphens"}}(n);if(!r.valid)return c("invalid"),void d(r.reason);n!==e.username?(c("checking"),m.current=setTimeout(async()=>{g.current=new AbortController;try{const e=await async function(e){return _(\`/api/local/users/check-username/\${encodeURIComponent(e)}\`)}(n);e.available?(c("available"),d(void 0)):(c("taken"),d(e.reason))}catch{c("invalid"),d("Check failed")}},400)):c("idle")},[e.username]),v=h.useCallback(async()=>{if("available"===l){p(!0);try{await async function(e){return R("/api/local/users/me",{username:e})}(s),t()}catch(e){c("invalid"),d(e.message)}finally{p(!1)}}},[s,l,t]),x=h.useCallback(()=>{a(!1),i(e.username??""),c("idle"),d(void 0)},[e.username]),b=h.useCallback(()=>{a(!0),i(e.username??""),c("idle"),d(void 0)},[e.username]);return!r&&n?o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Hl,{className:"w-3.5 h-3.5 text-text-muted"}),o.jsxs("a",{href:\`https://useai.dev/\${e.username}\`,target:"_blank",rel:"noopener noreferrer",className:"text-xs font-bold text-accent hover:text-accent-bright transition-colors",children:["useai.dev/",e.username]}),o.jsx("button",{onClick:b,className:"p-1 rounded hover:bg-bg-surface-2 text-text-muted hover:text-text-primary transition-colors cursor-pointer",title:"Edit username",children:o.jsx(Zl,{className:"w-3 h-3"})})]}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-xs text-text-muted whitespace-nowrap",children:"useai.dev/"}),o.jsx("div",{className:"flex items-center bg-bg-base border border-border rounded-lg overflow-hidden focus-within:border-accent/50 transition-all",children:o.jsx("input",{type:"text",placeholder:"username",value:s,onChange:e=>y(e.target.value),onKeyDown:e=>"Enter"===e.key&&v(),autoFocus:r,maxLength:32,className:"px-2 py-1.5 text-xs bg-transparent text-text-primary outline-none w-28 placeholder:text-text-muted/50"})}),o.jsxs("div",{className:"w-4 h-4 flex items-center justify-center",children:["checking"===l&&o.jsx(Wl,{className:"w-3.5 h-3.5 text-text-muted animate-spin"}),"available"===l&&o.jsx(jl,{className:"w-3.5 h-3.5 text-success"}),("taken"===l||"invalid"===l)&&s.length>0&&o.jsx(fc,{className:"w-3.5 h-3.5 text-error"})]}),o.jsx("button",{onClick:v,disabled:"available"!==l||f,className:"px-3 py-1.5 bg-accent hover:bg-accent-bright text-bg-base text-[10px] font-bold uppercase tracking-wider rounded-lg transition-colors disabled:opacity-30 cursor-pointer",children:f?"...":n?"Save":"Claim"}),n&&o.jsx("button",{onClick:x,className:"px-2 py-1.5 text-[10px] font-bold uppercase tracking-wider text-text-muted hover:text-text-primary transition-colors cursor-pointer",children:"Cancel"}),u&&o.jsx("span",{className:"text-[10px] text-error/80 truncate max-w-[140px]",title:u,children:u})]})}const vd=h.forwardRef(function({config:e,onRefresh:t},n){const[r,a]=h.useState(!1),[s,i]=h.useState(""),[l,c]=h.useState(""),[u,d]=h.useState("email"),[f,p]=h.useState(!1),[m,g]=h.useState(null),y=h.useRef(null);h.useImperativeHandle(n,()=>({open:()=>a(!0)})),h.useEffect(()=>{if(!r)return;const e=e=>{y.current&&!y.current.contains(e.target)&&a(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[r]),h.useEffect(()=>{if(!r)return;const e=e=>{"Escape"===e.key&&a(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[r]);const v=h.useCallback(async()=>{if(s.includes("@")){p(!0),g(null);try{await function(e){return z("/api/local/auth/send-otp",{email:e})}(s),d("otp")}catch(e){g(e.message)}finally{p(!1)}}},[s]),x=h.useCallback(async()=>{if(/^\\d{6}$/.test(l)){p(!0),g(null);try{await async function(e,t){return z("/api/local/auth/verify-otp",{email:e,code:t})}(s,l),t(),a(!1)}catch(e){g(e.message)}finally{p(!1)}}},[s,l,t]),b=h.useCallback(async()=>{p(!0),g(null);try{const e=await async function(){return z("/api/local/sync")}();e.success?(g("Synced!"),t(),setTimeout(()=>g(null),3e3)):g(e.error??"Sync failed")}catch(e){g(e.message)}finally{p(!1)}},[t]),w=h.useCallback(async()=>{await async function(){return z("/api/local/auth/logout")}(),t(),a(!1)},[t]);if(!e)return null;const k=e.authenticated;return o.jsxs("div",{className:"relative",ref:y,children:[k?o.jsxs("button",{onClick:()=>a(e=>!e),className:"flex items-center gap-1.5 rounded-full transition-colors cursor-pointer hover:opacity-80",children:[o.jsxs("div",{className:"relative w-7 h-7 rounded-full bg-accent/15 border border-accent/30 flex items-center justify-center",children:[o.jsx("span",{className:"text-xs font-bold text-accent leading-none",children:(e.email?.[0]??"?").toUpperCase()}),o.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 rounded-full border-2 border-bg-base "+(e.last_sync_at?"bg-success":"bg-warning")})]}),o.jsx(Cl,{className:"w-3 h-3 text-text-muted transition-transform "+(r?"rotate-180":"")})]}):o.jsxs("button",{onClick:()=>a(e=>!e),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-accent hover:bg-accent-bright text-bg-base text-xs font-bold tracking-wide transition-colors cursor-pointer",children:[o.jsx(dc,{className:"w-3 h-3"}),"Sign in"]}),r&&o.jsx("div",{className:"absolute right-0 top-full mt-2 z-50 w-80 rounded-lg bg-bg-surface-1 border border-border shadow-lg",children:k?o.jsxs("div",{children:[o.jsx("div",{className:"px-4 pt-3 pb-2",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-accent/10 flex items-center justify-center border border-accent/20 shrink-0",children:o.jsx("span",{className:"text-sm font-bold text-accent",children:(e.email?.[0]??"?").toUpperCase()})}),o.jsx("div",{className:"flex flex-col min-w-0",children:o.jsx("span",{className:"text-xs font-bold text-text-primary truncate",children:e.email})})]})}),o.jsx("div",{className:"px-4 py-2 border-t border-border/50",children:o.jsx(yd,{config:e,onRefresh:t})}),o.jsx("div",{className:"px-4 py-2 border-t border-border/50",children:o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("span",{className:"text-[10px] text-text-muted font-mono uppercase tracking-tighter",children:["Last sync: ",gd(e.last_sync_at)]}),o.jsxs("div",{className:"flex items-center gap-2",children:[m&&o.jsx("span",{className:"text-[10px] font-bold uppercase tracking-widest "+("Synced!"===m?"text-success":"text-error"),children:m}),o.jsxs("button",{onClick:b,disabled:f,className:"flex items-center gap-1.5 px-2.5 py-1 bg-accent hover:bg-accent-bright text-bg-base text-[10px] font-bold uppercase tracking-wider rounded-md transition-colors disabled:opacity-50 cursor-pointer",children:[o.jsx(Gl,{className:"w-3 h-3 "+(f?"animate-spin":"")}),f?"...":"Sync"]})]})]})}),o.jsx("div",{className:"px-4 py-2 border-t border-border/50",children:o.jsxs("button",{onClick:w,className:"flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs text-text-muted hover:text-error hover:bg-error/10 transition-colors cursor-pointer",children:[o.jsx(Yl,{className:"w-3.5 h-3.5"}),"Sign out"]})})]}):o.jsxs("div",{className:"p-4",children:[o.jsx("p",{className:"text-xs font-bold text-text-secondary uppercase tracking-widest mb-3",children:"Sign in to sync"}),m&&o.jsx("p",{className:"text-[10px] font-bold text-error uppercase tracking-widest mb-2",children:m}),"email"===u?o.jsxs("div",{className:"flex items-center bg-bg-base border border-border rounded-lg overflow-hidden focus-within:border-accent/50 focus-within:ring-1 focus-within:ring-accent/50 transition-all",children:[o.jsx("div",{className:"pl-3 py-2",children:o.jsx(Kl,{className:"w-3.5 h-3.5 text-text-muted"})}),o.jsx("input",{type:"email",placeholder:"you@email.com",value:s,onChange:e=>i(e.target.value),onKeyDown:e=>"Enter"===e.key&&v(),autoFocus:!0,className:"px-3 py-2 text-xs bg-transparent text-text-primary outline-none flex-1 placeholder:text-text-muted/50"}),o.jsx("button",{onClick:v,disabled:f||!s.includes("@"),className:"px-4 py-2 bg-bg-surface-2 hover:bg-bg-surface-3 text-text-primary text-[10px] font-bold uppercase tracking-wider transition-colors disabled:opacity-50 cursor-pointer border-l border-border",children:f?"...":"Send"})]}):o.jsxs("div",{className:"flex items-center bg-bg-base border border-border rounded-lg overflow-hidden focus-within:border-accent/50 focus-within:ring-1 focus-within:ring-accent/50 transition-all",children:[o.jsx("input",{type:"text",maxLength:6,placeholder:"000000",inputMode:"numeric",autoComplete:"one-time-code",value:l,onChange:e=>c(e.target.value),onKeyDown:e=>"Enter"===e.key&&x(),autoFocus:!0,className:"px-4 py-2 text-xs bg-transparent text-text-primary text-center font-mono tracking-widest outline-none flex-1 placeholder:text-text-muted/50"}),o.jsx("button",{onClick:x,disabled:f||6!==l.length,className:"px-4 py-2 bg-accent hover:bg-accent-bright text-bg-base text-[10px] font-bold uppercase tracking-wider transition-colors disabled:opacity-50 cursor-pointer",children:f?"...":"Verify"})]})]})})]})}),xd="npx -y @devness/useai update";function bd({updateInfo:e}){const[t,n]=h.useState(!1),[r,a]=h.useState(!1);return o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>n(e=>!e),className:"flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-accent/10 border border-accent/20 text-xs font-medium text-accent hover:bg-accent/15 transition-colors",children:[o.jsx(Ml,{className:"w-3 h-3"}),"v",e.latest," available"]}),t&&o.jsxs("div",{className:"absolute right-0 top-full mt-2 z-50 w-72 rounded-lg bg-bg-surface-1 border border-border shadow-lg p-3 space-y-2",children:[o.jsxs("p",{className:"text-xs text-text-muted",children:["Update from ",o.jsxs("span",{className:"font-mono text-text-secondary",children:["v",e.current]})," to ",o.jsxs("span",{className:"font-mono text-accent",children:["v",e.latest]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("code",{className:"flex-1 text-[11px] font-mono bg-bg-base px-2 py-1.5 rounded border border-border text-text-secondary truncate",children:xd}),o.jsx("button",{onClick:async()=>{try{await navigator.clipboard.writeText(xd),a(!0),setTimeout(()=>a(!1),2e3)}catch{}},className:"p-1.5 rounded-md border border-border bg-bg-base text-text-muted hover:text-text-primary hover:border-text-muted/50 transition-colors shrink-0",title:"Copy command",children:r?o.jsx(jl,{className:"w-3.5 h-3.5 text-success"}):o.jsx(Al,{className:"w-3.5 h-3.5"})})]})]})]})}function wd({health:e,updateInfo:t,onSearchOpen:n,activeTab:r,onTabChange:a,config:s,onRefresh:i}){const l=h.useRef(null),c=h.useMemo(()=>{if(s?.username)return[{label:"Leaderboard",href:"https://useai.dev/leaderboard"},{label:"Profile",href:\`https://useai.dev/\${s.username}\`}]},[s?.username]);return o.jsx("header",{className:"sticky top-0 z-50 bg-bg-base/80 backdrop-blur-md border-b border-border mb-6",children:o.jsxs("div",{className:"max-w-[1240px] mx-auto px-4 sm:px-6 py-3 flex items-center justify-between relative",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(ud,{className:"h-6"}),e&&e.active_sessions>0&&o.jsx(Mu,{label:\`\${e.active_sessions} active session\${1!==e.active_sessions?"s":""}\`,color:"success",dot:!0})]}),o.jsx("div",{className:"absolute left-1/2 -translate-x-1/2",children:o.jsx(cu,{activeTab:r,onTabChange:a,externalLinks:c})}),o.jsxs("div",{className:"flex items-center gap-4",children:[s?.authenticated&&!s?.username&&o.jsxs("button",{onClick:()=>l.current?.open(),className:"flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-accent/10 border border-accent/25 text-[11px] font-medium text-accent hover:bg-accent/15 transition-colors cursor-pointer",children:[o.jsx(sc,{className:"w-3 h-3"}),"Claim your username"]}),n&&o.jsxs("button",{onClick:n,className:"flex items-center gap-2 px-2.5 py-1.5 rounded-md border border-border/50 bg-bg-surface-1 text-text-muted hover:text-text-primary hover:border-text-muted/50 transition-colors text-xs",children:[o.jsx(nc,{className:"w-3 h-3"}),o.jsx("span",{className:"hidden sm:inline",children:"Search"}),o.jsx("kbd",{className:"hidden sm:inline-flex items-center px-1 py-0.5 rounded border border-border bg-bg-base text-[9px] font-mono leading-none",children:"\u2318K"})]}),t?.update_available&&o.jsx(bd,{updateInfo:t}),o.jsx(vd,{ref:l,config:s,onRefresh:i})]})]})})}function kd({label:e,description:t,checked:n,onChange:r,warning:a}){return o.jsxs("label",{className:"flex items-start justify-between gap-3 py-2 cursor-pointer group",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("div",{className:"text-xs font-medium text-text-primary",children:e}),o.jsx("div",{className:"text-[11px] text-text-muted leading-relaxed mt-0.5",children:t}),a&&n&&o.jsxs("div",{className:"flex items-center gap-1 mt-1 text-[11px] text-warning",children:[o.jsx(cc,{className:"w-3 h-3 shrink-0"}),a]})]}),o.jsx("button",{role:"switch","aria-checked":n,onClick:()=>r(!n),className:\`\\n relative inline-flex h-5 w-9 shrink-0 rounded-full border-2 border-transparent transition-colors duration-200\\n \${n?"bg-text-muted":"bg-bg-surface-2"}\\n \`,children:o.jsx("span",{className:\`\\n pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-sm transition-transform duration-200\\n \${n?"translate-x-4":"translate-x-0"}\\n \`})})]})}function Sd({label:e,description:t,value:n,options:r,onChange:a}){return o.jsxs("div",{className:"flex items-start justify-between gap-3 py-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("div",{className:"text-xs font-medium text-text-primary",children:e}),o.jsx("div",{className:"text-[11px] text-text-muted leading-relaxed mt-0.5",children:t})]}),o.jsxs("div",{className:"relative",children:[o.jsx("select",{value:n,onChange:e=>a(e.target.value),className:"appearance-none bg-bg-surface-2 border border-border/50 rounded-md px-2.5 py-1 pr-7 text-xs text-text-primary cursor-pointer hover:border-border transition-colors",children:r.map(e=>o.jsx("option",{value:e.value,children:e.label},e.value))}),o.jsx(Cl,{className:"absolute right-1.5 top-1/2 -translate-y-1/2 w-3 h-3 text-text-muted pointer-events-none"})]})]})}function jd(){const[e,t]=h.useState(null),[n,r]=h.useState(null),[a,s]=h.useState("idle"),[i,l]=h.useState(null),[c,u]=h.useState(null);h.useEffect(()=>{_("/api/local/config/full").then(e=>{t(e),r(structuredClone(e))}).catch(e=>u(e.message))},[]);const d=!(!e||!n)&&(f=e,p=n,!(JSON.stringify(f)===JSON.stringify(p)));var f,p;const m=h.useCallback(async()=>{if(n&&e){s("saving"),l(null);try{const e=await(a={capture:n.capture,sync:n.sync,evaluation_framework:n.evaluation_framework},R("/api/local/config",a)),{instructions_updated:i,...o}=e;t(o),r(structuredClone(o)),l(i??[]),s("saved"),setTimeout(()=>s("idle"),3e3)}catch{s("error"),setTimeout(()=>s("idle"),3e3)}var a}},[n,e]),g=h.useCallback(()=>{e&&r(structuredClone(e))},[e]),y=h.useCallback(e=>{r(t=>t?{...t,capture:{...t.capture,...e}}:t)},[]),v=h.useCallback(e=>{r(t=>t?{...t,sync:{...t.sync,...e}}:t)},[]),x=h.useCallback(e=>{r(t=>t?{...t,sync:{...t.sync,include:{...t.sync.include,...e}}}:t)},[]),b=h.useCallback(e=>{r(t=>t?{...t,evaluation_framework:e}:t)},[]);return c?o.jsx("div",{className:"max-w-xl mx-auto mt-12 text-center",children:o.jsxs("div",{className:"text-sm text-danger",children:["Failed to load config: ",c]})}):n?o.jsxs("div",{className:"max-w-xl mx-auto pt-2 pb-12 space-y-5",children:[o.jsxs("section",{className:"bg-bg-surface-1 border border-border/50 rounded-xl p-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx(kl,{className:"w-4 h-4 text-text-muted"}),o.jsx("h2",{className:"text-xs font-bold text-text-muted uppercase tracking-widest",children:"Capture"})]}),o.jsx("p",{className:"text-[11px] text-text-muted mb-3",children:"What data to record locally for each session."}),o.jsxs("div",{className:"divide-y divide-border/30",children:[o.jsx(kd,{label:"Prompts",description:"Record prompt word count and content metadata",checked:n.capture.prompt,onChange:e=>y({prompt:e})}),o.jsx(kd,{label:"Prompt images",description:"Record image descriptions from prompts",checked:n.capture.prompt_images,onChange:e=>y({prompt_images:e})}),o.jsx(kd,{label:"Evaluation scores",description:"Record session quality scores (SPACE framework)",checked:n.capture.evaluation,onChange:e=>y({evaluation:e})}),o.jsx(Sd,{label:"Evaluation reasons",description:"When to include reason text for each score",value:n.capture.evaluation_reasons,options:[{value:"all",label:"All scores"},{value:"below_perfect",label:"Below perfect only"},{value:"none",label:"None"}],onChange:e=>y({evaluation_reasons:e})}),o.jsx(kd,{label:"Milestones",description:"Record milestones (accomplishments) from each session",checked:n.capture.milestones,onChange:e=>y({milestones:e})})]})]}),o.jsxs("section",{className:"bg-bg-surface-1 border border-border/50 rounded-xl p-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx(Sl,{className:"w-4 h-4 text-text-muted"}),o.jsx("h2",{className:"text-xs font-bold text-text-muted uppercase tracking-widest",children:"Evaluation"})]}),o.jsx("p",{className:"text-[11px] text-text-muted mb-3",children:"How sessions are scored."}),o.jsx(Sd,{label:"Framework",description:"Scoring method used for session evaluations",value:n.evaluation_framework,options:[{value:"space",label:"SPACE (weighted)"},{value:"raw",label:"Raw (equal weight)"}],onChange:b})]}),o.jsxs("section",{className:"bg-bg-surface-1 border border-border/50 rounded-xl p-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx(Ll,{className:"w-4 h-4 text-text-muted"}),o.jsx("h2",{className:"text-xs font-bold text-text-muted uppercase tracking-widest",children:"Cloud Sync"})]}),o.jsxs("p",{className:"text-[11px] text-text-muted mb-3",children:["Sync session data to useai.dev for leaderboards and public profiles.",!n.authenticated&&" Login first to enable sync."]}),o.jsxs("div",{className:"divide-y divide-border/30",children:[o.jsx(kd,{label:"Auto-sync",description:"Automatically sync data on a schedule",checked:n.sync.enabled,onChange:e=>v({enabled:e})}),n.sync.enabled&&o.jsxs(o.Fragment,{children:[o.jsx(Sd,{label:"Sync interval",description:"How often to sync data",value:String(n.sync.interval_hours),options:[{value:"1",label:"Every hour"},{value:"2",label:"Every 2 hours"},{value:"3",label:"Every 3 hours"},{value:"6",label:"Every 6 hours"},{value:"12",label:"Every 12 hours"},{value:"24",label:"Every 24 hours"}],onChange:e=>v({interval_hours:Number(e)})}),o.jsx("div",{className:"pt-3 pb-1",children:o.jsx("div",{className:"text-[11px] font-medium text-text-muted uppercase tracking-wider mb-2",children:"Include in sync"})}),o.jsx(kd,{label:"Sessions",description:"Session metadata (duration, task type, client)",checked:n.sync.include.sessions,onChange:e=>x({sessions:e})}),o.jsx(kd,{label:"Evaluations",description:"Session quality scores",checked:n.sync.include.evaluations,onChange:e=>x({evaluations:e})}),o.jsx(kd,{label:"Milestones",description:"Accomplishments and categories",checked:n.sync.include.milestones,onChange:e=>x({milestones:e})}),o.jsx(kd,{label:"Model",description:"AI model used for each session",checked:n.sync.include.model,onChange:e=>x({model:e})}),o.jsx(kd,{label:"Languages",description:"Programming languages used",checked:n.sync.include.languages,onChange:e=>x({languages:e})}),o.jsx("div",{className:"pt-3 pb-1",children:o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx(ac,{className:"w-3 h-3 text-warning"}),o.jsx("div",{className:"text-[11px] font-medium text-warning uppercase tracking-wider",children:"Privacy-sensitive"})]})}),o.jsx(kd,{label:"Prompts",description:"Prompt content sent to AI tools",checked:n.sync.include.prompts,onChange:e=>x({prompts:e}),warning:"Prompts may contain sensitive code or context"}),o.jsx(kd,{label:"Private titles",description:"Detailed session/milestone titles with project names",checked:n.sync.include.private_titles,onChange:e=>x({private_titles:e}),warning:"May reveal project names and specifics"}),o.jsx(kd,{label:"Projects",description:"Project names associated with sessions",checked:n.sync.include.projects,onChange:e=>x({projects:e}),warning:"Project names will be visible on your profile"})]})]})]}),d&&o.jsxs("div",{className:"sticky bottom-4 flex items-center justify-between gap-3 bg-bg-surface-1 border border-border/50 rounded-xl px-4 py-3 shadow-lg",children:[o.jsx("div",{className:"text-xs text-text-muted",children:"saved"===a&&i?\`Saved. Updated instructions in \${i.length} tool\${1!==i.length?"s":""}: \${i.join(", ")||"none installed"}\`:"error"===a?"Failed to save. Try again.":"You have unsaved changes"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:g,disabled:"saving"===a,className:"px-3 py-1.5 rounded-md text-xs font-medium text-text-muted hover:text-text-primary border border-border/50 hover:border-border transition-colors disabled:opacity-50",children:"Discard"}),o.jsxs("button",{onClick:m,disabled:"saving"===a,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium bg-accent text-bg-base hover:bg-accent/90 transition-colors disabled:opacity-50",children:["saving"===a?o.jsx(Wl,{className:"w-3 h-3 animate-spin"}):"saved"===a?o.jsx(jl,{className:"w-3 h-3"}):o.jsx(tc,{className:"w-3 h-3"}),"saving"===a?"Saving...":"saved"===a?"Saved":"Save"]})]})]})]}):o.jsx("div",{className:"max-w-xl mx-auto mt-12 text-center",children:o.jsx("div",{className:"text-sm text-text-muted",children:"Loading settings..."})})}function Cd(){const{sessions:e,milestones:t,config:n,health:r,updateInfo:a,loading:s,loadAll:i,loadHealth:l,loadUpdateCheck:c,deleteSession:u,deleteConversation:d,deleteMilestone:f,activeTab:p,setActiveTab:m}=fd();h.useEffect(()=>{i(),l(),c()},[i,l,c]),h.useEffect(()=>{const e=setInterval(l,3e4),t=setInterval(i,3e4);return()=>{clearInterval(e),clearInterval(t)}},[i,l]);const[g,y]=h.useState(!1);return h.useEffect(()=>{const e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key&&(e.preventDefault(),y(e=>!e))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),s?o.jsx("div",{className:"min-h-screen flex items-center justify-center",children:o.jsx("div",{className:"text-text-muted text-sm",children:"Loading..."})}):o.jsxs("div",{className:"min-h-screen bg-bg-base selection:bg-accent/30 selection:text-text-primary",children:[o.jsx(wd,{health:r,updateInfo:a,onSearchOpen:()=>y(!0),activeTab:p,onTabChange:m,config:n,onRefresh:i}),o.jsx("div",{className:"max-w-[1240px] mx-auto px-4 sm:px-6 pb-6",children:"settings"===p?o.jsx(jd,{}):o.jsxs(o.Fragment,{children:[o.jsx(hd,{open:g,onClose:()=>y(!1),sessions:e,milestones:t,onDeleteSession:u,onDeleteConversation:d,onDeleteMilestone:f}),o.jsx(cd,{sessions:e,milestones:t,onDeleteSession:u,onDeleteConversation:d,onDeleteMilestone:f,activeTab:p,onActiveTabChange:m})]})})]})}P.createRoot(document.getElementById("root")).render(o.jsx(h.StrictMode,{children:o.jsx(Cd,{})}));</script>
|
|
34846
|
-
<style rel="stylesheet" crossorigin>/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:"Inter",system-ui,-apple-system,sans-serif;--font-mono:"Geist Mono","JetBrains Mono","SF Mono","Fira Code",ui-monospace,monospace;--color-orange-500:oklch(70.5% .213 47.604);--color-amber-500:oklch(76.9% .188 70.08);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--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-bg-base:var(--bg-base);--color-bg-surface-1:var(--bg-surface-1);--color-bg-surface-2:var(--bg-surface-2);--color-bg-surface-3:var(--bg-surface-3);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-accent:var(--accent);--color-accent-bright:var(--accent-bright);--color-success:var(--success);--color-error:var(--error);--color-history:var(--history);--color-border:var(--border);--color-purple:#8b5cf6;--color-blue:#3b82f6;--color-emerald:#34d399}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-top-10{top:calc(var(--spacing)*-10)}.top-0{top:calc(var(--spacing)*0)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-5{top:calc(var(--spacing)*5)}.top-full{top:100%}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.right-0{right:calc(var(--spacing)*0)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.-bottom-1\\.5{bottom:calc(var(--spacing)*-1.5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.bottom-4{bottom:calc(var(--spacing)*4)}.-left-7{left:calc(var(--spacing)*-7)}.left-1\\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-\\[1\\.75rem\\]{left:1.75rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\\[60\\]{z-index:60}.z-\\[61\\]{z-index:61}.z-\\[9999\\]{z-index:9999}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-auto{margin-inline:auto}.my-0\\.5{margin-block:calc(var(--spacing)*.5)}.my-1{margin-block:calc(var(--spacing)*1)}.ms-1{margin-inline-start:calc(var(--spacing)*1)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.ms-3{margin-inline-start:calc(var(--spacing)*3)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-12{margin-top:calc(var(--spacing)*12)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1\\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.-ml-2{margin-left:calc(var(--spacing)*-2)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.ml-1\\.5{margin-left:calc(var(--spacing)*1.5)}.ml-auto{margin-left:auto}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-16{height:calc(var(--spacing)*16)}.h-full{height:100%}.h-px{height:1px}.max-h-\\[75vh\\]{max-height:75vh}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-\\[2px\\]{width:2px}.w-\\[155px\\]{width:155px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[130px\\]{max-width:130px}.max-w-\\[140px\\]{max-width:140px}.max-w-\\[280px\\]{max-width:280px}.max-w-\\[1240px\\]{max-width:1240px}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[120px\\]{min-width:120px}.min-w-\\[180px\\]{min-width:180px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-bottom{transform-origin:bottom}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\\[86px_minmax\\(0\\,1fr\\)\\]{grid-template-columns:86px minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-3\\.5{gap:calc(var(--spacing)*3.5)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-\\[3px\\]{gap:3px}: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>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-x-5{column-gap:calc(var(--spacing)*5)}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-2{row-gap:calc(var(--spacing)*2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border\\/30>:not(:last-child)){border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){:where(.divide-border\\/30>:not(:last-child)){border-color:color-mix(in oklab,var(--color-border)30%,transparent)}}.self-center{align-self:center}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.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-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-accent,.border-accent\\/20{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/20{border-color:color-mix(in oklab,var(--color-accent)20%,transparent)}}.border-accent\\/25{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/25{border-color:color-mix(in oklab,var(--color-accent)25%,transparent)}}.border-accent\\/30{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/30{border-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.border-accent\\/35{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/35{border-color:color-mix(in oklab,var(--color-accent)35%,transparent)}}.border-accent\\/50{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/50{border-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.border-bg-base{border-color:var(--color-bg-base)}.border-bg-surface-1{border-color:var(--color-bg-surface-1)}.border-blue\\/20{border-color:#3b82f633}@supports (color:color-mix(in lab,red,red)){.border-blue\\/20{border-color:color-mix(in oklab,var(--color-blue)20%,transparent)}}.border-blue\\/30{border-color:#3b82f64d}@supports (color:color-mix(in lab,red,red)){.border-blue\\/30{border-color:color-mix(in oklab,var(--color-blue)30%,transparent)}}.border-border,.border-border\\/10{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/10{border-color:color-mix(in oklab,var(--color-border)10%,transparent)}}.border-border\\/15{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/15{border-color:color-mix(in oklab,var(--color-border)15%,transparent)}}.border-border\\/20{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/20{border-color:color-mix(in oklab,var(--color-border)20%,transparent)}}.border-border\\/30{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/30{border-color:color-mix(in oklab,var(--color-border)30%,transparent)}}.border-border\\/40{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/40{border-color:color-mix(in oklab,var(--color-border)40%,transparent)}}.border-border\\/50{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/50{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.border-border\\/60{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/60{border-color:color-mix(in oklab,var(--color-border)60%,transparent)}}.border-emerald\\/20{border-color:#34d39933}@supports (color:color-mix(in lab,red,red)){.border-emerald\\/20{border-color:color-mix(in oklab,var(--color-emerald)20%,transparent)}}.border-emerald\\/30{border-color:#34d3994d}@supports (color:color-mix(in lab,red,red)){.border-emerald\\/30{border-color:color-mix(in oklab,var(--color-emerald)30%,transparent)}}.border-error\\/20{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/20{border-color:color-mix(in oklab,var(--color-error)20%,transparent)}}.border-error\\/30{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/30{border-color:color-mix(in oklab,var(--color-error)30%,transparent)}}.border-history,.border-history\\/20{border-color:var(--color-history)}@supports (color:color-mix(in lab,red,red)){.border-history\\/20{border-color:color-mix(in oklab,var(--color-history)20%,transparent)}}.border-purple\\/20{border-color:#8b5cf633}@supports (color:color-mix(in lab,red,red)){.border-purple\\/20{border-color:color-mix(in oklab,var(--color-purple)20%,transparent)}}.border-purple\\/30{border-color:#8b5cf64d}@supports (color:color-mix(in lab,red,red)){.border-purple\\/30{border-color:color-mix(in oklab,var(--color-purple)30%,transparent)}}.border-success\\/20{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\\/20{border-color:color-mix(in oklab,var(--color-success)20%,transparent)}}.border-success\\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\\/30{border-color:color-mix(in oklab,var(--color-success)30%,transparent)}}.border-text-muted\\/20{border-color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.border-text-muted\\/20{border-color:color-mix(in oklab,var(--color-text-muted)20%,transparent)}}.border-transparent{border-color:#0000}.bg-\\[var\\(--accent-alpha\\)\\]{background-color:var(--accent-alpha)}.bg-accent,.bg-accent\\/5{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/5{background-color:color-mix(in oklab,var(--color-accent)5%,transparent)}}.bg-accent\\/8{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/8{background-color:color-mix(in oklab,var(--color-accent)8%,transparent)}}.bg-accent\\/10{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/10{background-color:color-mix(in oklab,var(--color-accent)10%,transparent)}}.bg-accent\\/15{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/15{background-color:color-mix(in oklab,var(--color-accent)15%,transparent)}}.bg-accent\\/30{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/30{background-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.bg-accent\\/50{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/50{background-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.bg-accent\\/60{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/60{background-color:color-mix(in oklab,var(--color-accent)60%,transparent)}}.bg-bg-base,.bg-bg-base\\/30{background-color:var(--color-bg-base)}@supports (color:color-mix(in lab,red,red)){.bg-bg-base\\/30{background-color:color-mix(in oklab,var(--color-bg-base)30%,transparent)}}.bg-bg-base\\/80{background-color:var(--color-bg-base)}@supports (color:color-mix(in lab,red,red)){.bg-bg-base\\/80{background-color:color-mix(in oklab,var(--color-bg-base)80%,transparent)}}.bg-bg-surface-1,.bg-bg-surface-1\\/30{background-color:var(--color-bg-surface-1)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-1\\/30{background-color:color-mix(in oklab,var(--color-bg-surface-1)30%,transparent)}}.bg-bg-surface-1\\/35{background-color:var(--color-bg-surface-1)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-1\\/35{background-color:color-mix(in oklab,var(--color-bg-surface-1)35%,transparent)}}.bg-bg-surface-1\\/50{background-color:var(--color-bg-surface-1)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-1\\/50{background-color:color-mix(in oklab,var(--color-bg-surface-1)50%,transparent)}}.bg-bg-surface-1\\/80{background-color:var(--color-bg-surface-1)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-1\\/80{background-color:color-mix(in oklab,var(--color-bg-surface-1)80%,transparent)}}.bg-bg-surface-2,.bg-bg-surface-2\\/20{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-2\\/20{background-color:color-mix(in oklab,var(--color-bg-surface-2)20%,transparent)}}.bg-bg-surface-2\\/30{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-2\\/30{background-color:color-mix(in oklab,var(--color-bg-surface-2)30%,transparent)}}.bg-bg-surface-2\\/50{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-2\\/50{background-color:color-mix(in oklab,var(--color-bg-surface-2)50%,transparent)}}.bg-bg-surface-3,.bg-bg-surface-3\\/95{background-color:var(--color-bg-surface-3)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-3\\/95{background-color:color-mix(in oklab,var(--color-bg-surface-3)95%,transparent)}}.bg-black{background-color:var(--color-black)}.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-blue\\/10{background-color:#3b82f61a}@supports (color:color-mix(in lab,red,red)){.bg-blue\\/10{background-color:color-mix(in oklab,var(--color-blue)10%,transparent)}}.bg-blue\\/15{background-color:#3b82f626}@supports (color:color-mix(in lab,red,red)){.bg-blue\\/15{background-color:color-mix(in oklab,var(--color-blue)15%,transparent)}}.bg-border\\/20{background-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.bg-border\\/20{background-color:color-mix(in oklab,var(--color-border)20%,transparent)}}.bg-border\\/30{background-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.bg-border\\/30{background-color:color-mix(in oklab,var(--color-border)30%,transparent)}}.bg-border\\/50{background-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.bg-border\\/50{background-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.bg-border\\/60{background-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.bg-border\\/60{background-color:color-mix(in oklab,var(--color-border)60%,transparent)}}.bg-emerald\\/10{background-color:#34d3991a}@supports (color:color-mix(in lab,red,red)){.bg-emerald\\/10{background-color:color-mix(in oklab,var(--color-emerald)10%,transparent)}}.bg-emerald\\/15{background-color:#34d39926}@supports (color:color-mix(in lab,red,red)){.bg-emerald\\/15{background-color:color-mix(in oklab,var(--color-emerald)15%,transparent)}}.bg-error\\/10{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/10{background-color:color-mix(in oklab,var(--color-error)10%,transparent)}}.bg-error\\/15{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/15{background-color:color-mix(in oklab,var(--color-error)15%,transparent)}}.bg-history,.bg-history\\/10{background-color:var(--color-history)}@supports (color:color-mix(in lab,red,red)){.bg-history\\/10{background-color:color-mix(in oklab,var(--color-history)10%,transparent)}}.bg-purple\\/10{background-color:#8b5cf61a}@supports (color:color-mix(in lab,red,red)){.bg-purple\\/10{background-color:color-mix(in oklab,var(--color-purple)10%,transparent)}}.bg-purple\\/15{background-color:#8b5cf626}@supports (color:color-mix(in lab,red,red)){.bg-purple\\/15{background-color:color-mix(in oklab,var(--color-purple)15%,transparent)}}.bg-success,.bg-success\\/10{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\\/10{background-color:color-mix(in oklab,var(--color-success)10%,transparent)}}.bg-success\\/15{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\\/15{background-color:color-mix(in oklab,var(--color-success)15%,transparent)}}.bg-text-muted,.bg-text-muted\\/10{background-color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.bg-text-muted\\/10{background-color:color-mix(in oklab,var(--color-text-muted)10%,transparent)}}.bg-text-muted\\/15{background-color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.bg-text-muted\\/15{background-color:color-mix(in oklab,var(--color-text-muted)15%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white\\/10{--tw-gradient-to:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.to-white\\/10{--tw-gradient-to:color-mix(in oklab,var(--color-white)10%,transparent)}}.to-white\\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-0\\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-px{padding-inline:1px}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-0\\.5{padding-top:calc(var(--spacing)*.5)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-\\[10vh\\]{padding-top:10vh}.pr-7{padding-right:calc(var(--spacing)*7)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-2\\.5{padding-bottom:calc(var(--spacing)*2.5)}.pb-3\\.5{padding-bottom:calc(var(--spacing)*3.5)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.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-\\[7px\\]{font-size:7px}.text-\\[8px\\]{font-size:8px}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[15px\\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent,.text-accent\\/70{color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.text-accent\\/70{color:color-mix(in oklab,var(--color-accent)70%,transparent)}}.text-accent\\/90{color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.text-accent\\/90{color:color-mix(in oklab,var(--color-accent)90%,transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-bg-base{color:var(--color-bg-base)}.text-blue{color:var(--color-blue)}.text-emerald{color:var(--color-emerald)}.text-error,.text-error\\/80{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\\/80{color:color-mix(in oklab,var(--color-error)80%,transparent)}}.text-history{color:var(--color-history)}.text-inherit{color:inherit}.text-orange-500{color:var(--color-orange-500)}.text-purple{color:var(--color-purple)}.text-success,.text-success\\/70{color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.text-success\\/70{color:color-mix(in oklab,var(--color-success)70%,transparent)}}.text-text-muted,.text-text-muted\\/30{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-text-muted\\/30{color:color-mix(in oklab,var(--color-text-muted)30%,transparent)}}.text-text-muted\\/50{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-text-muted\\/50{color:color-mix(in oklab,var(--color-text-muted)50%,transparent)}}.text-text-muted\\/60{color:var(--color-text-muted)}@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-muted\\/70{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-text-muted\\/70{color:color-mix(in oklab,var(--color-text-muted)70%,transparent)}}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary,.text-text-secondary\\/80{color:var(--color-text-secondary)}@supports (color:color-mix(in lab,red,red)){.text-text-secondary\\/80{color:color-mix(in oklab,var(--color-text-secondary)80%,transparent)}}.text-text-secondary\\/85{color:var(--color-text-secondary)}@supports (color:color-mix(in lab,red,red)){.text-text-secondary\\/85{color:color-mix(in oklab,var(--color-text-secondary)85%,transparent)}}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.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-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-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{--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-2{--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)}.ring-accent{--tw-ring-color:var(--color-accent)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-bg-base{--tw-ring-offset-color:var(--color-bg-base)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\[daemon\\:err\\]{daemon:err}@media(hover:hover){.group-hover\\:scale-x-110:is(:where(.group):hover *){--tw-scale-x:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\\:-rotate-90:is(:where(.group):hover *){rotate:-90deg}.group-hover\\:bg-accent:is(:where(.group):hover *),.group-hover\\:bg-accent\\/10:is(:where(.group):hover *){background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.group-hover\\:bg-accent\\/10:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-accent)10%,transparent)}}.group-hover\\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}.group-hover\\:text-text-primary:is(:where(.group):hover *){color:var(--color-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *),.group-hover\\/card\\:opacity-100:is(:where(.group\\/card):hover *),.group-hover\\/conv\\:opacity-100:is(:where(.group\\/conv):hover *){opacity:1}}.selection\\:bg-accent\\/30 ::selection{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.selection\\:bg-accent\\/30 ::selection{background-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.selection\\:bg-accent\\/30::selection{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.selection\\:bg-accent\\/30::selection{background-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.selection\\:text-text-primary ::selection{color:var(--color-text-primary)}.selection\\:text-text-primary::selection{color:var(--color-text-primary)}.placeholder\\:text-text-muted\\/50::placeholder{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.placeholder\\:text-text-muted\\/50::placeholder{color:color-mix(in oklab,var(--color-text-muted)50%,transparent)}}.focus-within\\:border-accent\\/50:focus-within{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.focus-within\\:border-accent\\/50:focus-within{border-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.focus-within\\:opacity-100:focus-within{opacity:1}.focus-within\\:ring-1:focus-within{--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)}.focus-within\\:ring-accent\\/50:focus-within{--tw-ring-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.focus-within\\:ring-accent\\/50:focus-within{--tw-ring-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}@media(hover:hover){.hover\\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:border-accent\\/30:hover{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:border-accent\\/30:hover{border-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.hover\\:border-accent\\/40:hover{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:border-accent\\/40:hover{border-color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.hover\\:border-border:hover{border-color:var(--color-border)}.hover\\:border-text-muted\\/50:hover{border-color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.hover\\:border-text-muted\\/50:hover{border-color:color-mix(in oklab,var(--color-text-muted)50%,transparent)}}.hover\\:bg-accent-bright:hover{background-color:var(--color-accent-bright)}.hover\\:bg-accent\\/15:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-accent\\/15:hover{background-color:color-mix(in oklab,var(--color-accent)15%,transparent)}}.hover\\:bg-accent\\/90:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-accent\\/90:hover{background-color:color-mix(in oklab,var(--color-accent)90%,transparent)}}.hover\\:bg-bg-surface-1:hover{background-color:var(--color-bg-surface-1)}.hover\\:bg-bg-surface-2:hover,.hover\\:bg-bg-surface-2\\/40:hover{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-bg-surface-2\\/40:hover{background-color:color-mix(in oklab,var(--color-bg-surface-2)40%,transparent)}}.hover\\:bg-bg-surface-2\\/50:hover{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-bg-surface-2\\/50:hover{background-color:color-mix(in oklab,var(--color-bg-surface-2)50%,transparent)}}.hover\\:bg-bg-surface-3:hover{background-color:var(--color-bg-surface-3)}.hover\\:bg-error\\/5:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/5:hover{background-color:color-mix(in oklab,var(--color-error)5%,transparent)}}.hover\\:bg-error\\/10:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/10:hover{background-color:color-mix(in oklab,var(--color-error)10%,transparent)}}.hover\\:bg-error\\/25:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/25:hover{background-color:color-mix(in oklab,var(--color-error)25%,transparent)}}.hover\\:bg-history:hover{background-color:var(--color-history)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-accent-bright:hover{color:var(--color-accent-bright)}.hover\\:text-accent\\/80:hover{color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:text-accent\\/80:hover{color:color-mix(in oklab,var(--color-accent)80%,transparent)}}.hover\\:text-error:hover,.hover\\:text-error\\/70:hover{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:text-error\\/70:hover{color:color-mix(in oklab,var(--color-error)70%,transparent)}}.hover\\:text-text-primary:hover{color:var(--color-text-primary)}.hover\\:text-white:hover{color:var(--color-white)}.hover\\:opacity-80:hover{opacity:.8}.hover\\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-20:disabled{opacity:.2}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\\:inline{display:inline}.sm\\:inline-flex{display:inline-flex}.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:px-6{padding-inline:calc(var(--spacing)*6)}}@media(min-width:48rem){.md\\:block{display:block}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:items-center{align-items:center}}@media(min-width:64rem){.lg\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}}}:root{--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#71717a;--accent:#b4f82c;--accent-bright:#d4fc6e;--accent-dim:#4d7c0f;--accent-rgb:180,248,44;--success:#b4f82c;--error:#ef4444;--streak:#f59e0b;--streak-bg:#f59e0b0f;--streak-border:#f59e0b33;--streak-muted:#f59e0b80;--history:#60a5fa;--history-rgb:96,165,250;--glass-border:#ffffff0d;--grid-color:#ffffff14;--glow-opacity:.15;--glow-blue:#3b82f626;--shadow-glow:rgba(var(--accent-rgb),.1);--accent-alpha:rgba(var(--accent-rgb),.05)}@media(prefers-color-scheme:light){:root{--text-primary:#09090b;--text-secondary:#52525b;--text-muted:#5f6068;--accent:#65a30d;--accent-bright:#84cc16;--accent-dim:#f7fee7;--accent-rgb:101,163,13;--success:#65a30d;--error:#dc2626;--streak:#b45309;--streak-bg:#b453090f;--streak-border:#b4530933;--streak-muted:#b4530980;--history:#2563eb;--history-rgb:37,99,235;--glass-border:#0000000d;--grid-color:#0000000a;--glow-opacity:.25;--glow-blue:#3b82f640;--shadow-glow:#00000014;--accent-alpha:rgba(var(--accent-rgb),.15)}}::selection{background-color:rgba(var(--accent-rgb),.3);color:var(--accent-bright)}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);will-change:transform,backdrop-filter;transform:translateZ(0);box-shadow:0 8px 32px #0000004d,inset 0 0 0 1px #ffffff0d}.hud-border{background:var(--bg-surface-1);position:relative}.hud-border:before{content:"";border:1px solid rgba(var(--accent-rgb),.2);pointer-events:none;border-radius:inherit;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.hud-border:after{content:"";border-top:2px solid var(--accent);border-left:2px solid var(--accent);border-top-left-radius:inherit;width:10px;height:10px;position:absolute;top:-1px;left:-1px}.gradient-text{background:linear-gradient(135deg,var(--text-primary),var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-text-accent{background:linear-gradient(135deg,var(--accent),var(--accent-bright));-webkit-text-fill-color:transparent;text-shadow:0 0 20px rgba(var(--accent-rgb),.4);-webkit-background-clip:text;background-clip:text}.subtle-glow{position:relative}.subtle-glow:after{content:"";background:linear-gradient(45deg,transparent,rgba(var(--accent-rgb),.1),transparent);border-radius:inherit;z-index:-1;pointer-events:none;position:absolute;inset:-1px}:root{--bg-base:#040405;--bg-surface-1:#0e0e11;--bg-surface-2:#18181b;--bg-surface-3:#27272a;--border:#ffffff14;--border-accent:rgba(var(--accent-rgb),.3);--glass-bg:#0e0e1199}@media(prefers-color-scheme:light){:root{--bg-base:#fafafa;--bg-surface-1:#fff;--bg-surface-2:#f4f4f5;--bg-surface-3:#e4e4e7;--border:#e4e4e7;--border-accent:rgba(var(--accent-rgb),.4);--glass-bg:#ffffffb3}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-bg-surface-3);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}body{font-family:var(--font-sans);background:var(--color-bg-base);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;line-height:1.6}@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-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}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}</style>
|
|
34848
|
+
<style rel="stylesheet" crossorigin>/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:"Inter",system-ui,-apple-system,sans-serif;--font-mono:"Geist Mono","JetBrains Mono","SF Mono","Fira Code",ui-monospace,monospace;--color-orange-500:oklch(70.5% .213 47.604);--color-amber-500:oklch(76.9% .188 70.08);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--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-bg-base:var(--bg-base);--color-bg-surface-1:var(--bg-surface-1);--color-bg-surface-2:var(--bg-surface-2);--color-bg-surface-3:var(--bg-surface-3);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-accent:var(--accent);--color-accent-bright:var(--accent-bright);--color-success:var(--success);--color-error:var(--error);--color-history:var(--history);--color-border:var(--border);--color-purple:#8b5cf6;--color-blue:#3b82f6;--color-emerald:#34d399}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-top-10{top:calc(var(--spacing)*-10)}.top-0{top:calc(var(--spacing)*0)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-5{top:calc(var(--spacing)*5)}.top-full{top:100%}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.right-0{right:calc(var(--spacing)*0)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.-bottom-1\\.5{bottom:calc(var(--spacing)*-1.5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.bottom-4{bottom:calc(var(--spacing)*4)}.-left-7{left:calc(var(--spacing)*-7)}.left-1\\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-\\[1\\.75rem\\]{left:1.75rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\\[60\\]{z-index:60}.z-\\[61\\]{z-index:61}.z-\\[9999\\]{z-index:9999}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-auto{margin-inline:auto}.my-0\\.5{margin-block:calc(var(--spacing)*.5)}.my-1{margin-block:calc(var(--spacing)*1)}.ms-1{margin-inline-start:calc(var(--spacing)*1)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.ms-3{margin-inline-start:calc(var(--spacing)*3)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-12{margin-top:calc(var(--spacing)*12)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1\\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.-ml-2{margin-left:calc(var(--spacing)*-2)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.ml-1\\.5{margin-left:calc(var(--spacing)*1.5)}.ml-auto{margin-left:auto}.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}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-16{height:calc(var(--spacing)*16)}.h-full{height:100%}.h-px{height:1px}.max-h-\\[75vh\\]{max-height:75vh}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-\\[2px\\]{width:2px}.w-\\[155px\\]{width:155px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[130px\\]{max-width:130px}.max-w-\\[140px\\]{max-width:140px}.max-w-\\[280px\\]{max-width:280px}.max-w-\\[1240px\\]{max-width:1240px}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[120px\\]{min-width:120px}.min-w-\\[180px\\]{min-width:180px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-bottom{transform-origin:bottom}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\\[86px_minmax\\(0\\,1fr\\)\\]{grid-template-columns:86px minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-3\\.5{gap:calc(var(--spacing)*3.5)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-\\[3px\\]{gap:3px}: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>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-x-5{column-gap:calc(var(--spacing)*5)}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-2{row-gap:calc(var(--spacing)*2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border\\/30>:not(:last-child)){border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){:where(.divide-border\\/30>:not(:last-child)){border-color:color-mix(in oklab,var(--color-border)30%,transparent)}}.self-center{align-self:center}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.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-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-accent,.border-accent\\/20{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/20{border-color:color-mix(in oklab,var(--color-accent)20%,transparent)}}.border-accent\\/25{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/25{border-color:color-mix(in oklab,var(--color-accent)25%,transparent)}}.border-accent\\/30{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/30{border-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.border-accent\\/35{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/35{border-color:color-mix(in oklab,var(--color-accent)35%,transparent)}}.border-accent\\/50{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/50{border-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.border-bg-base{border-color:var(--color-bg-base)}.border-bg-surface-1{border-color:var(--color-bg-surface-1)}.border-blue\\/20{border-color:#3b82f633}@supports (color:color-mix(in lab,red,red)){.border-blue\\/20{border-color:color-mix(in oklab,var(--color-blue)20%,transparent)}}.border-blue\\/30{border-color:#3b82f64d}@supports (color:color-mix(in lab,red,red)){.border-blue\\/30{border-color:color-mix(in oklab,var(--color-blue)30%,transparent)}}.border-border,.border-border\\/10{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/10{border-color:color-mix(in oklab,var(--color-border)10%,transparent)}}.border-border\\/15{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/15{border-color:color-mix(in oklab,var(--color-border)15%,transparent)}}.border-border\\/20{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/20{border-color:color-mix(in oklab,var(--color-border)20%,transparent)}}.border-border\\/30{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/30{border-color:color-mix(in oklab,var(--color-border)30%,transparent)}}.border-border\\/40{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/40{border-color:color-mix(in oklab,var(--color-border)40%,transparent)}}.border-border\\/50{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/50{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.border-border\\/60{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/60{border-color:color-mix(in oklab,var(--color-border)60%,transparent)}}.border-emerald\\/20{border-color:#34d39933}@supports (color:color-mix(in lab,red,red)){.border-emerald\\/20{border-color:color-mix(in oklab,var(--color-emerald)20%,transparent)}}.border-emerald\\/30{border-color:#34d3994d}@supports (color:color-mix(in lab,red,red)){.border-emerald\\/30{border-color:color-mix(in oklab,var(--color-emerald)30%,transparent)}}.border-error\\/20{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/20{border-color:color-mix(in oklab,var(--color-error)20%,transparent)}}.border-error\\/30{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/30{border-color:color-mix(in oklab,var(--color-error)30%,transparent)}}.border-history,.border-history\\/20{border-color:var(--color-history)}@supports (color:color-mix(in lab,red,red)){.border-history\\/20{border-color:color-mix(in oklab,var(--color-history)20%,transparent)}}.border-purple\\/20{border-color:#8b5cf633}@supports (color:color-mix(in lab,red,red)){.border-purple\\/20{border-color:color-mix(in oklab,var(--color-purple)20%,transparent)}}.border-purple\\/30{border-color:#8b5cf64d}@supports (color:color-mix(in lab,red,red)){.border-purple\\/30{border-color:color-mix(in oklab,var(--color-purple)30%,transparent)}}.border-success\\/20{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\\/20{border-color:color-mix(in oklab,var(--color-success)20%,transparent)}}.border-success\\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\\/30{border-color:color-mix(in oklab,var(--color-success)30%,transparent)}}.border-text-muted\\/20{border-color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.border-text-muted\\/20{border-color:color-mix(in oklab,var(--color-text-muted)20%,transparent)}}.border-transparent{border-color:#0000}.bg-\\[var\\(--accent-alpha\\)\\]{background-color:var(--accent-alpha)}.bg-accent,.bg-accent\\/5{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/5{background-color:color-mix(in oklab,var(--color-accent)5%,transparent)}}.bg-accent\\/8{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/8{background-color:color-mix(in oklab,var(--color-accent)8%,transparent)}}.bg-accent\\/10{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/10{background-color:color-mix(in oklab,var(--color-accent)10%,transparent)}}.bg-accent\\/15{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/15{background-color:color-mix(in oklab,var(--color-accent)15%,transparent)}}.bg-accent\\/30{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/30{background-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.bg-accent\\/50{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/50{background-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.bg-accent\\/60{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/60{background-color:color-mix(in oklab,var(--color-accent)60%,transparent)}}.bg-bg-base,.bg-bg-base\\/30{background-color:var(--color-bg-base)}@supports (color:color-mix(in lab,red,red)){.bg-bg-base\\/30{background-color:color-mix(in oklab,var(--color-bg-base)30%,transparent)}}.bg-bg-base\\/80{background-color:var(--color-bg-base)}@supports (color:color-mix(in lab,red,red)){.bg-bg-base\\/80{background-color:color-mix(in oklab,var(--color-bg-base)80%,transparent)}}.bg-bg-surface-1,.bg-bg-surface-1\\/30{background-color:var(--color-bg-surface-1)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-1\\/30{background-color:color-mix(in oklab,var(--color-bg-surface-1)30%,transparent)}}.bg-bg-surface-1\\/35{background-color:var(--color-bg-surface-1)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-1\\/35{background-color:color-mix(in oklab,var(--color-bg-surface-1)35%,transparent)}}.bg-bg-surface-1\\/50{background-color:var(--color-bg-surface-1)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-1\\/50{background-color:color-mix(in oklab,var(--color-bg-surface-1)50%,transparent)}}.bg-bg-surface-1\\/80{background-color:var(--color-bg-surface-1)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-1\\/80{background-color:color-mix(in oklab,var(--color-bg-surface-1)80%,transparent)}}.bg-bg-surface-2,.bg-bg-surface-2\\/20{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-2\\/20{background-color:color-mix(in oklab,var(--color-bg-surface-2)20%,transparent)}}.bg-bg-surface-2\\/30{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-2\\/30{background-color:color-mix(in oklab,var(--color-bg-surface-2)30%,transparent)}}.bg-bg-surface-2\\/50{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-2\\/50{background-color:color-mix(in oklab,var(--color-bg-surface-2)50%,transparent)}}.bg-bg-surface-3,.bg-bg-surface-3\\/95{background-color:var(--color-bg-surface-3)}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface-3\\/95{background-color:color-mix(in oklab,var(--color-bg-surface-3)95%,transparent)}}.bg-black{background-color:var(--color-black)}.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-blue\\/10{background-color:#3b82f61a}@supports (color:color-mix(in lab,red,red)){.bg-blue\\/10{background-color:color-mix(in oklab,var(--color-blue)10%,transparent)}}.bg-blue\\/15{background-color:#3b82f626}@supports (color:color-mix(in lab,red,red)){.bg-blue\\/15{background-color:color-mix(in oklab,var(--color-blue)15%,transparent)}}.bg-border\\/20{background-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.bg-border\\/20{background-color:color-mix(in oklab,var(--color-border)20%,transparent)}}.bg-border\\/30{background-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.bg-border\\/30{background-color:color-mix(in oklab,var(--color-border)30%,transparent)}}.bg-border\\/50{background-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.bg-border\\/50{background-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.bg-border\\/60{background-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.bg-border\\/60{background-color:color-mix(in oklab,var(--color-border)60%,transparent)}}.bg-emerald\\/10{background-color:#34d3991a}@supports (color:color-mix(in lab,red,red)){.bg-emerald\\/10{background-color:color-mix(in oklab,var(--color-emerald)10%,transparent)}}.bg-emerald\\/15{background-color:#34d39926}@supports (color:color-mix(in lab,red,red)){.bg-emerald\\/15{background-color:color-mix(in oklab,var(--color-emerald)15%,transparent)}}.bg-error\\/10{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/10{background-color:color-mix(in oklab,var(--color-error)10%,transparent)}}.bg-error\\/15{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/15{background-color:color-mix(in oklab,var(--color-error)15%,transparent)}}.bg-history,.bg-history\\/10{background-color:var(--color-history)}@supports (color:color-mix(in lab,red,red)){.bg-history\\/10{background-color:color-mix(in oklab,var(--color-history)10%,transparent)}}.bg-purple\\/10{background-color:#8b5cf61a}@supports (color:color-mix(in lab,red,red)){.bg-purple\\/10{background-color:color-mix(in oklab,var(--color-purple)10%,transparent)}}.bg-purple\\/15{background-color:#8b5cf626}@supports (color:color-mix(in lab,red,red)){.bg-purple\\/15{background-color:color-mix(in oklab,var(--color-purple)15%,transparent)}}.bg-success,.bg-success\\/10{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\\/10{background-color:color-mix(in oklab,var(--color-success)10%,transparent)}}.bg-success\\/15{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\\/15{background-color:color-mix(in oklab,var(--color-success)15%,transparent)}}.bg-text-muted,.bg-text-muted\\/10{background-color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.bg-text-muted\\/10{background-color:color-mix(in oklab,var(--color-text-muted)10%,transparent)}}.bg-text-muted\\/15{background-color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.bg-text-muted\\/15{background-color:color-mix(in oklab,var(--color-text-muted)15%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white\\/10{--tw-gradient-to:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.to-white\\/10{--tw-gradient-to:color-mix(in oklab,var(--color-white)10%,transparent)}}.to-white\\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-0\\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-px{padding-inline:1px}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-0\\.5{padding-top:calc(var(--spacing)*.5)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-\\[10vh\\]{padding-top:10vh}.pr-7{padding-right:calc(var(--spacing)*7)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-2\\.5{padding-bottom:calc(var(--spacing)*2.5)}.pb-3\\.5{padding-bottom:calc(var(--spacing)*3.5)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.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-\\[7px\\]{font-size:7px}.text-\\[8px\\]{font-size:8px}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[15px\\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent,.text-accent\\/70{color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.text-accent\\/70{color:color-mix(in oklab,var(--color-accent)70%,transparent)}}.text-accent\\/90{color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.text-accent\\/90{color:color-mix(in oklab,var(--color-accent)90%,transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-bg-base{color:var(--color-bg-base)}.text-blue{color:var(--color-blue)}.text-emerald{color:var(--color-emerald)}.text-error,.text-error\\/80{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\\/80{color:color-mix(in oklab,var(--color-error)80%,transparent)}}.text-history{color:var(--color-history)}.text-inherit{color:inherit}.text-orange-500{color:var(--color-orange-500)}.text-purple{color:var(--color-purple)}.text-success,.text-success\\/70{color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.text-success\\/70{color:color-mix(in oklab,var(--color-success)70%,transparent)}}.text-text-muted,.text-text-muted\\/30{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-text-muted\\/30{color:color-mix(in oklab,var(--color-text-muted)30%,transparent)}}.text-text-muted\\/50{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-text-muted\\/50{color:color-mix(in oklab,var(--color-text-muted)50%,transparent)}}.text-text-muted\\/60{color:var(--color-text-muted)}@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-muted\\/70{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-text-muted\\/70{color:color-mix(in oklab,var(--color-text-muted)70%,transparent)}}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary,.text-text-secondary\\/80{color:var(--color-text-secondary)}@supports (color:color-mix(in lab,red,red)){.text-text-secondary\\/80{color:color-mix(in oklab,var(--color-text-secondary)80%,transparent)}}.text-text-secondary\\/85{color:var(--color-text-secondary)}@supports (color:color-mix(in lab,red,red)){.text-text-secondary\\/85{color:color-mix(in oklab,var(--color-text-secondary)85%,transparent)}}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.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-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-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{--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-2{--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)}.ring-accent{--tw-ring-color:var(--color-accent)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-bg-base{--tw-ring-offset-color:var(--color-bg-base)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\[daemon\\:err\\]{daemon:err}@media(hover:hover){.group-hover\\:scale-x-110:is(:where(.group):hover *){--tw-scale-x:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\\:-rotate-90:is(:where(.group):hover *){rotate:-90deg}.group-hover\\:bg-accent:is(:where(.group):hover *),.group-hover\\:bg-accent\\/10:is(:where(.group):hover *){background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.group-hover\\:bg-accent\\/10:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-accent)10%,transparent)}}.group-hover\\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}.group-hover\\:text-text-primary:is(:where(.group):hover *){color:var(--color-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *),.group-hover\\/card\\:opacity-100:is(:where(.group\\/card):hover *),.group-hover\\/conv\\:opacity-100:is(:where(.group\\/conv):hover *){opacity:1}}.selection\\:bg-accent\\/30 ::selection{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.selection\\:bg-accent\\/30 ::selection{background-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.selection\\:bg-accent\\/30::selection{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.selection\\:bg-accent\\/30::selection{background-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.selection\\:text-text-primary ::selection{color:var(--color-text-primary)}.selection\\:text-text-primary::selection{color:var(--color-text-primary)}.placeholder\\:text-text-muted\\/50::placeholder{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.placeholder\\:text-text-muted\\/50::placeholder{color:color-mix(in oklab,var(--color-text-muted)50%,transparent)}}.focus-within\\:border-accent\\/50:focus-within{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.focus-within\\:border-accent\\/50:focus-within{border-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.focus-within\\:opacity-100:focus-within{opacity:1}.focus-within\\:ring-1:focus-within{--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)}.focus-within\\:ring-accent\\/50:focus-within{--tw-ring-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.focus-within\\:ring-accent\\/50:focus-within{--tw-ring-color:color-mix(in oklab,var(--color-accent)50%,transparent)}}@media(hover:hover){.hover\\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:border-accent\\/30:hover{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:border-accent\\/30:hover{border-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.hover\\:border-accent\\/40:hover{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:border-accent\\/40:hover{border-color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.hover\\:border-border:hover{border-color:var(--color-border)}.hover\\:border-text-muted\\/50:hover{border-color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.hover\\:border-text-muted\\/50:hover{border-color:color-mix(in oklab,var(--color-text-muted)50%,transparent)}}.hover\\:bg-accent-bright:hover{background-color:var(--color-accent-bright)}.hover\\:bg-accent\\/15:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-accent\\/15:hover{background-color:color-mix(in oklab,var(--color-accent)15%,transparent)}}.hover\\:bg-accent\\/90:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-accent\\/90:hover{background-color:color-mix(in oklab,var(--color-accent)90%,transparent)}}.hover\\:bg-bg-surface-1:hover{background-color:var(--color-bg-surface-1)}.hover\\:bg-bg-surface-2:hover,.hover\\:bg-bg-surface-2\\/40:hover{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-bg-surface-2\\/40:hover{background-color:color-mix(in oklab,var(--color-bg-surface-2)40%,transparent)}}.hover\\:bg-bg-surface-2\\/50:hover{background-color:var(--color-bg-surface-2)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-bg-surface-2\\/50:hover{background-color:color-mix(in oklab,var(--color-bg-surface-2)50%,transparent)}}.hover\\:bg-bg-surface-3:hover{background-color:var(--color-bg-surface-3)}.hover\\:bg-error\\/5:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/5:hover{background-color:color-mix(in oklab,var(--color-error)5%,transparent)}}.hover\\:bg-error\\/10:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/10:hover{background-color:color-mix(in oklab,var(--color-error)10%,transparent)}}.hover\\:bg-error\\/25:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/25:hover{background-color:color-mix(in oklab,var(--color-error)25%,transparent)}}.hover\\:bg-history:hover{background-color:var(--color-history)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-accent-bright:hover{color:var(--color-accent-bright)}.hover\\:text-accent\\/80:hover{color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:text-accent\\/80:hover{color:color-mix(in oklab,var(--color-accent)80%,transparent)}}.hover\\:text-error:hover,.hover\\:text-error\\/70:hover{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:text-error\\/70:hover{color:color-mix(in oklab,var(--color-error)70%,transparent)}}.hover\\:text-text-primary:hover{color:var(--color-text-primary)}.hover\\:text-white:hover{color:var(--color-white)}.hover\\:opacity-80:hover{opacity:.8}.hover\\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-20:disabled{opacity:.2}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\\:inline{display:inline}.sm\\:inline-flex{display:inline-flex}.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:px-6{padding-inline:calc(var(--spacing)*6)}}@media(min-width:48rem){.md\\:block{display:block}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:items-center{align-items:center}}@media(min-width:64rem){.lg\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}}}:root{--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#71717a;--accent:#b4f82c;--accent-bright:#d4fc6e;--accent-dim:#4d7c0f;--accent-rgb:180,248,44;--success:#b4f82c;--error:#ef4444;--streak:#f59e0b;--streak-bg:#f59e0b0f;--streak-border:#f59e0b33;--streak-muted:#f59e0b80;--history:#60a5fa;--history-rgb:96,165,250;--glass-border:#ffffff0d;--grid-color:#ffffff14;--glow-opacity:.15;--glow-blue:#3b82f626;--shadow-glow:rgba(var(--accent-rgb),.1);--accent-alpha:rgba(var(--accent-rgb),.05)}@media(prefers-color-scheme:light){:root{--text-primary:#09090b;--text-secondary:#52525b;--text-muted:#5f6068;--accent:#65a30d;--accent-bright:#84cc16;--accent-dim:#f7fee7;--accent-rgb:101,163,13;--success:#65a30d;--error:#dc2626;--streak:#b45309;--streak-bg:#b453090f;--streak-border:#b4530933;--streak-muted:#b4530980;--history:#2563eb;--history-rgb:37,99,235;--glass-border:#0000000d;--grid-color:#0000000a;--glow-opacity:.25;--glow-blue:#3b82f640;--shadow-glow:#00000014;--accent-alpha:rgba(var(--accent-rgb),.15)}}::selection{background-color:rgba(var(--accent-rgb),.3);color:var(--accent-bright)}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);will-change:transform,backdrop-filter;transform:translateZ(0);box-shadow:0 8px 32px #0000004d,inset 0 0 0 1px #ffffff0d}.hud-border{background:var(--bg-surface-1);position:relative}.hud-border:before{content:"";border:1px solid rgba(var(--accent-rgb),.2);pointer-events:none;border-radius:inherit;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.hud-border:after{content:"";border-top:2px solid var(--accent);border-left:2px solid var(--accent);border-top-left-radius:inherit;width:10px;height:10px;position:absolute;top:-1px;left:-1px}.gradient-text{background:linear-gradient(135deg,var(--text-primary),var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-text-accent{background:linear-gradient(135deg,var(--accent),var(--accent-bright));-webkit-text-fill-color:transparent;text-shadow:0 0 20px rgba(var(--accent-rgb),.4);-webkit-background-clip:text;background-clip:text}.subtle-glow{position:relative}.subtle-glow:after{content:"";background:linear-gradient(45deg,transparent,rgba(var(--accent-rgb),.1),transparent);border-radius:inherit;z-index:-1;pointer-events:none;position:absolute;inset:-1px}:root{--bg-base:#040405;--bg-surface-1:#0e0e11;--bg-surface-2:#18181b;--bg-surface-3:#27272a;--border:#ffffff14;--border-accent:rgba(var(--accent-rgb),.3);--glass-bg:#0e0e1199}@media(prefers-color-scheme:light){:root{--bg-base:#fafafa;--bg-surface-1:#fff;--bg-surface-2:#f4f4f5;--bg-surface-3:#e4e4e7;--border:#e4e4e7;--border-accent:rgba(var(--accent-rgb),.4);--glass-bg:#ffffffb3}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-bg-surface-3);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}body{font-family:var(--font-sans);background:var(--color-bg-base);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;line-height:1.6}@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-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}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}</style>
|
|
34847
34849
|
</head>
|
|
34848
34850
|
<body>
|
|
34849
34851
|
<div id="root"></div>
|
|
@@ -34857,9 +34859,111 @@ var init_html = __esm({
|
|
|
34857
34859
|
}
|
|
34858
34860
|
});
|
|
34859
34861
|
|
|
34860
|
-
// src/
|
|
34861
|
-
import {
|
|
34862
|
+
// src/reconcile.ts
|
|
34863
|
+
import { readFileSync as readFileSync6, existsSync as existsSync9 } from "fs";
|
|
34862
34864
|
import { join as join8 } from "path";
|
|
34865
|
+
function extractSealFromChain(sessionId) {
|
|
34866
|
+
const chainPath = join8(SEALED_DIR, `${sessionId}.jsonl`);
|
|
34867
|
+
if (!existsSync9(chainPath)) return null;
|
|
34868
|
+
try {
|
|
34869
|
+
const content = readFileSync6(chainPath, "utf-8").trim();
|
|
34870
|
+
const lines = content.split("\n").filter(Boolean);
|
|
34871
|
+
if (lines.length === 0) return null;
|
|
34872
|
+
const records = lines.map((line) => JSON.parse(line));
|
|
34873
|
+
const integrity = verifyChain(records);
|
|
34874
|
+
if (!integrity.valid) return null;
|
|
34875
|
+
const sealRecord = records.find((r) => r.type === "session_seal");
|
|
34876
|
+
if (!sealRecord || !sealRecord.data["seal"]) return null;
|
|
34877
|
+
const sealData = JSON.parse(sealRecord.data["seal"]);
|
|
34878
|
+
return sealData;
|
|
34879
|
+
} catch {
|
|
34880
|
+
return null;
|
|
34881
|
+
}
|
|
34882
|
+
}
|
|
34883
|
+
function reconcileSession(indexEntry) {
|
|
34884
|
+
const chainSeal = extractSealFromChain(indexEntry.session_id);
|
|
34885
|
+
if (chainSeal === null) {
|
|
34886
|
+
const chainPath = join8(SEALED_DIR, `${indexEntry.session_id}.jsonl`);
|
|
34887
|
+
const corrupted = existsSync9(chainPath);
|
|
34888
|
+
return { session: indexEntry, corrected: false, corrupted };
|
|
34889
|
+
}
|
|
34890
|
+
let corrected = false;
|
|
34891
|
+
const fixed = { ...indexEntry };
|
|
34892
|
+
for (const field of RECONCILE_FIELDS) {
|
|
34893
|
+
const chainValue = chainSeal[field];
|
|
34894
|
+
const indexValue = indexEntry[field];
|
|
34895
|
+
if (chainValue === void 0 || chainValue === null) continue;
|
|
34896
|
+
if (chainValue !== indexValue) {
|
|
34897
|
+
fixed[field] = chainValue;
|
|
34898
|
+
corrected = true;
|
|
34899
|
+
}
|
|
34900
|
+
}
|
|
34901
|
+
if (chainSeal.evaluation && JSON.stringify(chainSeal.evaluation) !== JSON.stringify(indexEntry.evaluation)) {
|
|
34902
|
+
fixed.evaluation = chainSeal.evaluation;
|
|
34903
|
+
corrected = true;
|
|
34904
|
+
}
|
|
34905
|
+
return { session: fixed, corrected, corrupted: false };
|
|
34906
|
+
}
|
|
34907
|
+
function reconcileSessions(sessions2) {
|
|
34908
|
+
const result = {
|
|
34909
|
+
checked: 0,
|
|
34910
|
+
corrected: 0,
|
|
34911
|
+
corrupted: 0,
|
|
34912
|
+
correctedIds: [],
|
|
34913
|
+
corruptedIds: []
|
|
34914
|
+
};
|
|
34915
|
+
const reconciled = [];
|
|
34916
|
+
for (const session2 of sessions2) {
|
|
34917
|
+
const { session: fixed, corrected, corrupted } = reconcileSession(session2);
|
|
34918
|
+
result.checked++;
|
|
34919
|
+
if (corrupted) {
|
|
34920
|
+
result.corrupted++;
|
|
34921
|
+
result.corruptedIds.push(session2.session_id);
|
|
34922
|
+
}
|
|
34923
|
+
if (corrected) {
|
|
34924
|
+
result.corrected++;
|
|
34925
|
+
result.correctedIds.push(session2.session_id);
|
|
34926
|
+
}
|
|
34927
|
+
reconciled.push(fixed);
|
|
34928
|
+
}
|
|
34929
|
+
if (result.corrected > 0) {
|
|
34930
|
+
const allSessions = readJson(SESSIONS_FILE, []);
|
|
34931
|
+
for (const correctedId of result.correctedIds) {
|
|
34932
|
+
const correctedSession = reconciled.find((s) => s.session_id === correctedId);
|
|
34933
|
+
const idx = allSessions.findIndex((s) => s.session_id === correctedId);
|
|
34934
|
+
if (correctedSession && idx >= 0) {
|
|
34935
|
+
allSessions[idx] = correctedSession;
|
|
34936
|
+
}
|
|
34937
|
+
}
|
|
34938
|
+
writeJson(SESSIONS_FILE, allSessions);
|
|
34939
|
+
}
|
|
34940
|
+
return { sessions: reconciled, result };
|
|
34941
|
+
}
|
|
34942
|
+
function reconcileForSync(sessions2) {
|
|
34943
|
+
const { sessions: reconciled, result } = reconcileSessions(sessions2);
|
|
34944
|
+
const filtered = reconciled.filter(
|
|
34945
|
+
(s) => !result.corruptedIds.includes(s.session_id)
|
|
34946
|
+
);
|
|
34947
|
+
return { sessions: filtered, result };
|
|
34948
|
+
}
|
|
34949
|
+
var RECONCILE_FIELDS;
|
|
34950
|
+
var init_reconcile = __esm({
|
|
34951
|
+
"src/reconcile.ts"() {
|
|
34952
|
+
"use strict";
|
|
34953
|
+
init_dist();
|
|
34954
|
+
RECONCILE_FIELDS = [
|
|
34955
|
+
"duration_seconds",
|
|
34956
|
+
"ended_at",
|
|
34957
|
+
"started_at",
|
|
34958
|
+
"session_score",
|
|
34959
|
+
"files_touched"
|
|
34960
|
+
];
|
|
34961
|
+
}
|
|
34962
|
+
});
|
|
34963
|
+
|
|
34964
|
+
// src/dashboard/local-api.ts
|
|
34965
|
+
import { existsSync as existsSync10, unlinkSync as unlinkSync4 } from "fs";
|
|
34966
|
+
import { join as join9 } from "path";
|
|
34863
34967
|
function json(res, status, data) {
|
|
34864
34968
|
const body = JSON.stringify(data);
|
|
34865
34969
|
res.writeHead(status, {
|
|
@@ -34915,7 +35019,8 @@ function calculateStreak(sessions2) {
|
|
|
34915
35019
|
}
|
|
34916
35020
|
function handleLocalSessions(_req, res) {
|
|
34917
35021
|
try {
|
|
34918
|
-
const
|
|
35022
|
+
const deduplicated = deduplicateSessions(readJson(SESSIONS_FILE, []));
|
|
35023
|
+
const { sessions: sessions2 } = reconcileSessions(deduplicated);
|
|
34919
35024
|
json(res, 200, sessions2);
|
|
34920
35025
|
} catch (err) {
|
|
34921
35026
|
json(res, 500, { error: err.message });
|
|
@@ -34923,7 +35028,8 @@ function handleLocalSessions(_req, res) {
|
|
|
34923
35028
|
}
|
|
34924
35029
|
function handleLocalStats(_req, res) {
|
|
34925
35030
|
try {
|
|
34926
|
-
const
|
|
35031
|
+
const deduplicated = deduplicateSessions(readJson(SESSIONS_FILE, []));
|
|
35032
|
+
const { sessions: sessions2 } = reconcileSessions(deduplicated);
|
|
34927
35033
|
let totalSeconds = 0;
|
|
34928
35034
|
let filesTouched = 0;
|
|
34929
35035
|
const byClient = {};
|
|
@@ -35038,7 +35144,8 @@ async function performSync() {
|
|
|
35038
35144
|
"Content-Type": "application/json",
|
|
35039
35145
|
"Authorization": `Bearer ${token}`
|
|
35040
35146
|
};
|
|
35041
|
-
const
|
|
35147
|
+
const deduplicated = deduplicateSessions(readJson(SESSIONS_FILE, []));
|
|
35148
|
+
const { sessions: sessions2 } = reconcileForSync(deduplicated);
|
|
35042
35149
|
const byDate = /* @__PURE__ */ new Map();
|
|
35043
35150
|
for (const s of sessions2) {
|
|
35044
35151
|
if (!s.started_at) continue;
|
|
@@ -35081,22 +35188,31 @@ async function performSync() {
|
|
|
35081
35188
|
}
|
|
35082
35189
|
if (syncInclude.milestones) {
|
|
35083
35190
|
const MILESTONE_CHUNK = 50;
|
|
35084
|
-
const
|
|
35085
|
-
const
|
|
35086
|
-
|
|
35087
|
-
|
|
35088
|
-
|
|
35089
|
-
|
|
35090
|
-
const chunk = sanitizedMilestones.slice(i, i + MILESTONE_CHUNK);
|
|
35091
|
-
const milestonesRes = await fetch(`${USEAI_API}/api/publish`, {
|
|
35092
|
-
method: "POST",
|
|
35093
|
-
headers,
|
|
35094
|
-
body: JSON.stringify({ milestones: chunk })
|
|
35191
|
+
const allMilestones = readJson(MILESTONES_FILE, []);
|
|
35192
|
+
const unpublished = allMilestones.filter((m) => !m.published && m.title && m.category);
|
|
35193
|
+
if (unpublished.length > 0) {
|
|
35194
|
+
const sanitizedMilestones = syncInclude.private_titles ? unpublished : unpublished.map((m) => {
|
|
35195
|
+
const { private_title: _, ...rest } = m;
|
|
35196
|
+
return rest;
|
|
35095
35197
|
});
|
|
35096
|
-
|
|
35097
|
-
const
|
|
35098
|
-
|
|
35198
|
+
for (let i = 0; i < sanitizedMilestones.length; i += MILESTONE_CHUNK) {
|
|
35199
|
+
const chunk = sanitizedMilestones.slice(i, i + MILESTONE_CHUNK);
|
|
35200
|
+
const milestonesRes = await fetch(`${USEAI_API}/api/publish`, {
|
|
35201
|
+
method: "POST",
|
|
35202
|
+
headers,
|
|
35203
|
+
body: JSON.stringify({ milestones: chunk })
|
|
35204
|
+
});
|
|
35205
|
+
if (!milestonesRes.ok) {
|
|
35206
|
+
const errBody = await milestonesRes.text();
|
|
35207
|
+
return { success: false, error: `Milestones publish failed (chunk ${Math.floor(i / MILESTONE_CHUNK) + 1}): ${milestonesRes.status} ${errBody}` };
|
|
35208
|
+
}
|
|
35099
35209
|
}
|
|
35210
|
+
const sentIds = new Set(unpublished.map((m) => m.id));
|
|
35211
|
+
const now2 = (/* @__PURE__ */ new Date()).toISOString();
|
|
35212
|
+
const updated = allMilestones.map(
|
|
35213
|
+
(m) => sentIds.has(m.id) ? { ...m, published: true, published_at: now2 } : m
|
|
35214
|
+
);
|
|
35215
|
+
writeJson(MILESTONES_FILE, updated);
|
|
35100
35216
|
}
|
|
35101
35217
|
}
|
|
35102
35218
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -35284,8 +35400,8 @@ function handleDeleteSession(req, res, sessionId) {
|
|
|
35284
35400
|
const remaining = milestones.filter((m) => m.session_id !== sessionId);
|
|
35285
35401
|
const milestonesRemoved = milestones.length - remaining.length;
|
|
35286
35402
|
if (milestonesRemoved > 0) writeJson(MILESTONES_FILE, remaining);
|
|
35287
|
-
const chainPath =
|
|
35288
|
-
if (
|
|
35403
|
+
const chainPath = join9(SEALED_DIR, `${sessionId}.jsonl`);
|
|
35404
|
+
if (existsSync10(chainPath)) unlinkSync4(chainPath);
|
|
35289
35405
|
json(res, 200, { deleted: true, session_id: sessionId, milestones_removed: milestonesRemoved });
|
|
35290
35406
|
} catch (err) {
|
|
35291
35407
|
json(res, 500, { error: err.message });
|
|
@@ -35307,8 +35423,8 @@ function handleDeleteConversation(req, res, conversationId) {
|
|
|
35307
35423
|
const milestonesRemoved = milestones.length - remainingMilestones.length;
|
|
35308
35424
|
if (milestonesRemoved > 0) writeJson(MILESTONES_FILE, remainingMilestones);
|
|
35309
35425
|
for (const sid of sessionIds) {
|
|
35310
|
-
const chainPath =
|
|
35311
|
-
if (
|
|
35426
|
+
const chainPath = join9(SEALED_DIR, `${sid}.jsonl`);
|
|
35427
|
+
if (existsSync10(chainPath)) unlinkSync4(chainPath);
|
|
35312
35428
|
}
|
|
35313
35429
|
json(res, 200, { deleted: true, conversation_id: conversationId, sessions_removed: sessionIds.size, milestones_removed: milestonesRemoved });
|
|
35314
35430
|
} catch (err) {
|
|
@@ -35390,6 +35506,7 @@ var init_local_api = __esm({
|
|
|
35390
35506
|
"use strict";
|
|
35391
35507
|
init_dist();
|
|
35392
35508
|
init_tools2();
|
|
35509
|
+
init_reconcile();
|
|
35393
35510
|
_onConfigUpdated = null;
|
|
35394
35511
|
USEAI_API = process.env.USEAI_API_URL || "https://api.useai.dev";
|
|
35395
35512
|
}
|
|
@@ -35402,8 +35519,8 @@ __export(daemon_exports, {
|
|
|
35402
35519
|
});
|
|
35403
35520
|
import { createServer } from "http";
|
|
35404
35521
|
import { createHash as createHash4, randomUUID as randomUUID4 } from "crypto";
|
|
35405
|
-
import { existsSync as
|
|
35406
|
-
import { join as
|
|
35522
|
+
import { existsSync as existsSync11, readdirSync as readdirSync2, readFileSync as readFileSync7, appendFileSync as appendFileSync2, renameSync as renameSync3, writeFileSync as writeFileSync6, unlinkSync as unlinkSync5, statSync } from "fs";
|
|
35523
|
+
import { join as join10 } from "path";
|
|
35407
35524
|
function getActiveUseaiSessionIds() {
|
|
35408
35525
|
const ids = /* @__PURE__ */ new Set();
|
|
35409
35526
|
for (const [, active] of sessions) {
|
|
@@ -35415,10 +35532,10 @@ function getActiveUseaiSessionIds() {
|
|
|
35415
35532
|
return ids;
|
|
35416
35533
|
}
|
|
35417
35534
|
function sealOrphanFile(sessionId) {
|
|
35418
|
-
const filePath =
|
|
35419
|
-
if (!
|
|
35535
|
+
const filePath = join10(ACTIVE_DIR, `${sessionId}.jsonl`);
|
|
35536
|
+
if (!existsSync11(filePath)) return;
|
|
35420
35537
|
try {
|
|
35421
|
-
const content =
|
|
35538
|
+
const content = readFileSync7(filePath, "utf-8").trim();
|
|
35422
35539
|
if (!content) return;
|
|
35423
35540
|
const lines = content.split("\n").filter(Boolean);
|
|
35424
35541
|
if (lines.length === 0) return;
|
|
@@ -35426,7 +35543,7 @@ function sealOrphanFile(sessionId) {
|
|
|
35426
35543
|
const lastRecord = JSON.parse(lines[lines.length - 1]);
|
|
35427
35544
|
if (lastRecord.type === "session_end" || lastRecord.type === "session_seal") {
|
|
35428
35545
|
try {
|
|
35429
|
-
renameSync3(filePath,
|
|
35546
|
+
renameSync3(filePath, join10(SEALED_DIR, `${sessionId}.jsonl`));
|
|
35430
35547
|
} catch {
|
|
35431
35548
|
}
|
|
35432
35549
|
return;
|
|
@@ -35486,7 +35603,7 @@ function sealOrphanFile(sessionId) {
|
|
|
35486
35603
|
}, endRecord.hash, daemonSigningKey)
|
|
35487
35604
|
) + "\n");
|
|
35488
35605
|
try {
|
|
35489
|
-
renameSync3(filePath,
|
|
35606
|
+
renameSync3(filePath, join10(SEALED_DIR, `${sessionId}.jsonl`));
|
|
35490
35607
|
} catch {
|
|
35491
35608
|
}
|
|
35492
35609
|
const convId = startData["conversation_id"] ?? void 0;
|
|
@@ -35516,7 +35633,7 @@ function sealOrphanFile(sessionId) {
|
|
|
35516
35633
|
}
|
|
35517
35634
|
}
|
|
35518
35635
|
function sealOrphanedSessions() {
|
|
35519
|
-
if (!
|
|
35636
|
+
if (!existsSync11(ACTIVE_DIR)) return;
|
|
35520
35637
|
const activeIds = getActiveUseaiSessionIds();
|
|
35521
35638
|
const mcpMap = readMcpMap();
|
|
35522
35639
|
const mappedUseaiIds = new Set(Object.values(mcpMap));
|
|
@@ -35528,7 +35645,7 @@ function sealOrphanedSessions() {
|
|
|
35528
35645
|
if (activeIds.has(sessionId)) continue;
|
|
35529
35646
|
if (mappedUseaiIds.has(sessionId)) {
|
|
35530
35647
|
try {
|
|
35531
|
-
const mtime = statSync(
|
|
35648
|
+
const mtime = statSync(join10(ACTIVE_DIR, file)).mtimeMs;
|
|
35532
35649
|
if (Date.now() - mtime < IDLE_TIMEOUT_MS) continue;
|
|
35533
35650
|
} catch {
|
|
35534
35651
|
continue;
|
|
@@ -35544,8 +35661,8 @@ function sealOrphanedSessions() {
|
|
|
35544
35661
|
}
|
|
35545
35662
|
}
|
|
35546
35663
|
function isSessionAlreadySealed(session2) {
|
|
35547
|
-
const activePath =
|
|
35548
|
-
return !
|
|
35664
|
+
const activePath = join10(ACTIVE_DIR, `${session2.sessionId}.jsonl`);
|
|
35665
|
+
return !existsSync11(activePath);
|
|
35549
35666
|
}
|
|
35550
35667
|
function sealRichness(s) {
|
|
35551
35668
|
let score = 0;
|
|
@@ -35632,10 +35749,10 @@ function autoSealSession(active) {
|
|
|
35632
35749
|
seal_signature: sealSignature,
|
|
35633
35750
|
auto_sealed: true
|
|
35634
35751
|
});
|
|
35635
|
-
const activePath =
|
|
35636
|
-
const sealedPath =
|
|
35752
|
+
const activePath = join10(ACTIVE_DIR, `${session2.sessionId}.jsonl`);
|
|
35753
|
+
const sealedPath = join10(SEALED_DIR, `${session2.sessionId}.jsonl`);
|
|
35637
35754
|
try {
|
|
35638
|
-
if (
|
|
35755
|
+
if (existsSync11(activePath)) {
|
|
35639
35756
|
renameSync3(activePath, sealedPath);
|
|
35640
35757
|
}
|
|
35641
35758
|
} catch {
|
|
@@ -35763,12 +35880,12 @@ function sendJsonRpcResult(res, rpcId, text) {
|
|
|
35763
35880
|
}));
|
|
35764
35881
|
}
|
|
35765
35882
|
function readChainMetadata(useaiSessionId) {
|
|
35766
|
-
const activePath =
|
|
35767
|
-
const sealedPath =
|
|
35768
|
-
const chainPath =
|
|
35883
|
+
const activePath = join10(ACTIVE_DIR, `${useaiSessionId}.jsonl`);
|
|
35884
|
+
const sealedPath = join10(SEALED_DIR, `${useaiSessionId}.jsonl`);
|
|
35885
|
+
const chainPath = existsSync11(activePath) ? activePath : existsSync11(sealedPath) ? sealedPath : null;
|
|
35769
35886
|
if (!chainPath) return null;
|
|
35770
35887
|
try {
|
|
35771
|
-
const firstLine =
|
|
35888
|
+
const firstLine = readFileSync7(chainPath, "utf-8").split("\n")[0];
|
|
35772
35889
|
if (!firstLine) return null;
|
|
35773
35890
|
const record2 = JSON.parse(firstLine);
|
|
35774
35891
|
const d = record2.data;
|
|
@@ -35789,8 +35906,8 @@ function readChainMetadata(useaiSessionId) {
|
|
|
35789
35906
|
function recoverStartSession(staleMcpSessionId, args, rpcId, res, req) {
|
|
35790
35907
|
const map = readMcpMap();
|
|
35791
35908
|
const prevSessionId = map[staleMcpSessionId];
|
|
35792
|
-
const prevActivePath = prevSessionId ?
|
|
35793
|
-
if (prevActivePath &&
|
|
35909
|
+
const prevActivePath = prevSessionId ? join10(ACTIVE_DIR, `${prevSessionId}.jsonl`) : null;
|
|
35910
|
+
if (prevActivePath && existsSync11(prevActivePath)) {
|
|
35794
35911
|
sealOrphanFile(prevSessionId);
|
|
35795
35912
|
}
|
|
35796
35913
|
const meta = prevSessionId ? readChainMetadata(prevSessionId) : null;
|
|
@@ -35816,7 +35933,7 @@ function recoverStartSession(staleMcpSessionId, args, rpcId, res, req) {
|
|
|
35816
35933
|
if (privateTitle) chainData["private_title"] = privateTitle;
|
|
35817
35934
|
if (model) chainData["model"] = model;
|
|
35818
35935
|
const record2 = buildChainRecord("session_start", newSessionId, chainData, "GENESIS", daemonSigningKey);
|
|
35819
|
-
const chainPath =
|
|
35936
|
+
const chainPath = join10(ACTIVE_DIR, `${newSessionId}.jsonl`);
|
|
35820
35937
|
appendFileSync2(chainPath, JSON.stringify(record2) + "\n");
|
|
35821
35938
|
writeMcpMapping(staleMcpSessionId, newSessionId);
|
|
35822
35939
|
sendJsonRpcResult(
|
|
@@ -35831,13 +35948,13 @@ function recoverHeartbeat(staleMcpSessionId, rpcId, res) {
|
|
|
35831
35948
|
const map = readMcpMap();
|
|
35832
35949
|
const useaiSessionId = map[staleMcpSessionId];
|
|
35833
35950
|
if (!useaiSessionId) return false;
|
|
35834
|
-
const chainPath =
|
|
35835
|
-
if (!
|
|
35951
|
+
const chainPath = join10(ACTIVE_DIR, `${useaiSessionId}.jsonl`);
|
|
35952
|
+
if (!existsSync11(chainPath)) {
|
|
35836
35953
|
sendJsonRpcResult(res, rpcId, "Session already ended (recovered).");
|
|
35837
35954
|
return true;
|
|
35838
35955
|
}
|
|
35839
35956
|
try {
|
|
35840
|
-
const content =
|
|
35957
|
+
const content = readFileSync7(chainPath, "utf-8").trim();
|
|
35841
35958
|
const lines = content.split("\n").filter(Boolean);
|
|
35842
35959
|
if (lines.length === 0) return false;
|
|
35843
35960
|
const firstRecord = JSON.parse(lines[0]);
|
|
@@ -35867,12 +35984,12 @@ function recoverEndSession(staleMcpSessionId, args, rpcId, res) {
|
|
|
35867
35984
|
const map = readMcpMap();
|
|
35868
35985
|
const useaiSessionId = map[staleMcpSessionId];
|
|
35869
35986
|
if (!useaiSessionId) return false;
|
|
35870
|
-
const activePath =
|
|
35871
|
-
const sealedPath =
|
|
35872
|
-
const chainPath =
|
|
35987
|
+
const activePath = join10(ACTIVE_DIR, `${useaiSessionId}.jsonl`);
|
|
35988
|
+
const sealedPath = join10(SEALED_DIR, `${useaiSessionId}.jsonl`);
|
|
35989
|
+
const chainPath = existsSync11(activePath) ? activePath : existsSync11(sealedPath) ? sealedPath : null;
|
|
35873
35990
|
if (!chainPath) return false;
|
|
35874
35991
|
const isAlreadySealed = chainPath === sealedPath;
|
|
35875
|
-
const content =
|
|
35992
|
+
const content = readFileSync7(chainPath, "utf-8").trim();
|
|
35876
35993
|
if (!content) return false;
|
|
35877
35994
|
const lines = content.split("\n").filter(Boolean);
|
|
35878
35995
|
if (lines.length === 0) return false;
|
|
@@ -36211,7 +36328,7 @@ async function startDaemon(port) {
|
|
|
36211
36328
|
const listenPort = port ?? DAEMON_PORT;
|
|
36212
36329
|
ensureDir();
|
|
36213
36330
|
try {
|
|
36214
|
-
if (
|
|
36331
|
+
if (existsSync11(KEYSTORE_FILE)) {
|
|
36215
36332
|
const ks = readJson(KEYSTORE_FILE, null);
|
|
36216
36333
|
if (ks) daemonSigningKey = decryptKeystore(ks);
|
|
36217
36334
|
}
|
|
@@ -36481,7 +36598,7 @@ async function startDaemon(port) {
|
|
|
36481
36598
|
}
|
|
36482
36599
|
}
|
|
36483
36600
|
try {
|
|
36484
|
-
if (
|
|
36601
|
+
if (existsSync11(DAEMON_PID_FILE)) {
|
|
36485
36602
|
unlinkSync5(DAEMON_PID_FILE);
|
|
36486
36603
|
}
|
|
36487
36604
|
} catch {
|