app-ai-solution-exp 0.1.7 → 0.1.8
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/out/main/index.js +155 -29
- package/out/preload/index.js +2 -1
- package/out/renderer/assets/{cssMode-0REew4-I.js → cssMode-Djbzf0LR.js} +3 -3
- package/out/renderer/assets/{freemarker2-DGOHYByW.js → freemarker2-plN48J_D.js} +1 -1
- package/out/renderer/assets/{handlebars-BqVGkTnX.js → handlebars-DkGSdJeE.js} +1 -1
- package/out/renderer/assets/{html-SBYz9B6Z.js → html-GfH6N1Gv.js} +1 -1
- package/out/renderer/assets/{htmlMode-CGiY9fYI.js → htmlMode-rVPkSV1Q.js} +3 -3
- package/out/renderer/assets/{index-D1jw-q7W.js → index-BmudFTDL.js} +511 -261
- package/out/renderer/assets/{index-BmTOg-UU.css → index-DCXeENj2.css} +92 -4
- package/out/renderer/assets/{javascript-C0APGOR5.js → javascript-PIyGYu6r.js} +2 -2
- package/out/renderer/assets/{jsonMode-Bp6cgaVL.js → jsonMode-1NERwSWX.js} +3 -3
- package/out/renderer/assets/{liquid-Azv9oa6C.js → liquid-DFsQCm0l.js} +1 -1
- package/out/renderer/assets/{lspLanguageFeatures-gtRC0h19.js → lspLanguageFeatures-UQJ0l2cB.js} +1 -1
- package/out/renderer/assets/{mdx-BFq9ZGPW.js → mdx-pETBiXt-.js} +1 -1
- package/out/renderer/assets/{python-Bmt9B2If.js → python-C-ndJWZ6.js} +1 -1
- package/out/renderer/assets/{razor-DNyVX9o_.js → razor-ccgYQ7JO.js} +1 -1
- package/out/renderer/assets/{tsMode-B-gbMtTM.js → tsMode-P6prXeLi.js} +1 -1
- package/out/renderer/assets/{typescript-EOW0R50S.js → typescript-D2Zozwub.js} +1 -1
- package/out/renderer/assets/{xml-Dvlj5OXN.js → xml-L2644zxV.js} +1 -1
- package/out/renderer/assets/{yaml-CUjhit4r.js → yaml-5rwJYQiz.js} +1 -1
- package/out/renderer/index.html +2 -2
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-Djbzf0LR.js","./lspLanguageFeatures-UQJ0l2cB.js","./htmlMode-rVPkSV1Q.js","./jsonMode-1NERwSWX.js","./javascript-PIyGYu6r.js","./typescript-D2Zozwub.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
function _mergeNamespaces(n2, m2) {
|
|
3
3
|
for (var i2 = 0; i2 < m2.length; i2++) {
|
|
4
4
|
const e = m2[i2];
|
|
@@ -29393,7 +29393,8 @@ const ipc = {
|
|
|
29393
29393
|
detectOrphan: (profileId) => getElectronAPI().history.detectOrphan(profileId),
|
|
29394
29394
|
readOrphanContent: (jsonlPath) => getElectronAPI().history.readOrphanContent(jsonlPath),
|
|
29395
29395
|
listNativeSessions: () => getElectronAPI().history.listNativeSessions(),
|
|
29396
|
-
readNativeSessionConversation: (sessionId) => getElectronAPI().history.readNativeSessionConversation(sessionId)
|
|
29396
|
+
readNativeSessionConversation: (sessionId) => getElectronAPI().history.readNativeSessionConversation(sessionId),
|
|
29397
|
+
deleteNativeSession: (sessionId) => getElectronAPI().history.deleteNativeSession(sessionId)
|
|
29397
29398
|
},
|
|
29398
29399
|
summary: {
|
|
29399
29400
|
generate: (payload) => getElectronAPI().summary.generate(payload)
|
|
@@ -29618,18 +29619,18 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
29618
29619
|
* This source code is licensed under the ISC license.
|
|
29619
29620
|
* See the LICENSE file in the root directory of this source tree.
|
|
29620
29621
|
*/
|
|
29621
|
-
const __iconNode$
|
|
29622
|
+
const __iconNode$M = [
|
|
29622
29623
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
29623
29624
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
29624
29625
|
];
|
|
29625
|
-
const ArrowLeft = createLucideIcon("ArrowLeft", __iconNode$
|
|
29626
|
+
const ArrowLeft = createLucideIcon("ArrowLeft", __iconNode$M);
|
|
29626
29627
|
/**
|
|
29627
29628
|
* @license lucide-react v0.475.0 - ISC
|
|
29628
29629
|
*
|
|
29629
29630
|
* This source code is licensed under the ISC license.
|
|
29630
29631
|
* See the LICENSE file in the root directory of this source tree.
|
|
29631
29632
|
*/
|
|
29632
|
-
const __iconNode$
|
|
29633
|
+
const __iconNode$L = [
|
|
29633
29634
|
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
29634
29635
|
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
29635
29636
|
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
@@ -29637,80 +29638,91 @@ const __iconNode$K = [
|
|
|
29637
29638
|
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
29638
29639
|
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
29639
29640
|
];
|
|
29640
|
-
const Bot = createLucideIcon("Bot", __iconNode$
|
|
29641
|
+
const Bot = createLucideIcon("Bot", __iconNode$L);
|
|
29641
29642
|
/**
|
|
29642
29643
|
* @license lucide-react v0.475.0 - ISC
|
|
29643
29644
|
*
|
|
29644
29645
|
* This source code is licensed under the ISC license.
|
|
29645
29646
|
* See the LICENSE file in the root directory of this source tree.
|
|
29646
29647
|
*/
|
|
29647
|
-
const __iconNode$
|
|
29648
|
+
const __iconNode$K = [
|
|
29648
29649
|
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
29649
29650
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
29650
29651
|
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
29651
29652
|
["path", { d: "M3 10h18", key: "8toen8" }]
|
|
29652
29653
|
];
|
|
29653
|
-
const Calendar = createLucideIcon("Calendar", __iconNode$
|
|
29654
|
+
const Calendar = createLucideIcon("Calendar", __iconNode$K);
|
|
29654
29655
|
/**
|
|
29655
29656
|
* @license lucide-react v0.475.0 - ISC
|
|
29656
29657
|
*
|
|
29657
29658
|
* This source code is licensed under the ISC license.
|
|
29658
29659
|
* See the LICENSE file in the root directory of this source tree.
|
|
29659
29660
|
*/
|
|
29660
|
-
const __iconNode$
|
|
29661
|
+
const __iconNode$J = [
|
|
29661
29662
|
["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
|
|
29662
29663
|
["path", { d: "M18 17V9", key: "2bz60n" }],
|
|
29663
29664
|
["path", { d: "M13 17V5", key: "1frdt8" }],
|
|
29664
29665
|
["path", { d: "M8 17v-3", key: "17ska0" }]
|
|
29665
29666
|
];
|
|
29666
|
-
const ChartColumn = createLucideIcon("ChartColumn", __iconNode$
|
|
29667
|
+
const ChartColumn = createLucideIcon("ChartColumn", __iconNode$J);
|
|
29667
29668
|
/**
|
|
29668
29669
|
* @license lucide-react v0.475.0 - ISC
|
|
29669
29670
|
*
|
|
29670
29671
|
* This source code is licensed under the ISC license.
|
|
29671
29672
|
* See the LICENSE file in the root directory of this source tree.
|
|
29672
29673
|
*/
|
|
29673
|
-
const __iconNode$
|
|
29674
|
-
const Check = createLucideIcon("Check", __iconNode$
|
|
29674
|
+
const __iconNode$I = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
29675
|
+
const Check = createLucideIcon("Check", __iconNode$I);
|
|
29675
29676
|
/**
|
|
29676
29677
|
* @license lucide-react v0.475.0 - ISC
|
|
29677
29678
|
*
|
|
29678
29679
|
* This source code is licensed under the ISC license.
|
|
29679
29680
|
* See the LICENSE file in the root directory of this source tree.
|
|
29680
29681
|
*/
|
|
29681
|
-
const __iconNode$
|
|
29682
|
-
const ChevronLeft = createLucideIcon("ChevronLeft", __iconNode$
|
|
29682
|
+
const __iconNode$H = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
29683
|
+
const ChevronLeft = createLucideIcon("ChevronLeft", __iconNode$H);
|
|
29683
29684
|
/**
|
|
29684
29685
|
* @license lucide-react v0.475.0 - ISC
|
|
29685
29686
|
*
|
|
29686
29687
|
* This source code is licensed under the ISC license.
|
|
29687
29688
|
* See the LICENSE file in the root directory of this source tree.
|
|
29688
29689
|
*/
|
|
29689
|
-
const __iconNode$
|
|
29690
|
-
const ChevronRight = createLucideIcon("ChevronRight", __iconNode$
|
|
29690
|
+
const __iconNode$G = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
29691
|
+
const ChevronRight = createLucideIcon("ChevronRight", __iconNode$G);
|
|
29691
29692
|
/**
|
|
29692
29693
|
* @license lucide-react v0.475.0 - ISC
|
|
29693
29694
|
*
|
|
29694
29695
|
* This source code is licensed under the ISC license.
|
|
29695
29696
|
* See the LICENSE file in the root directory of this source tree.
|
|
29696
29697
|
*/
|
|
29697
|
-
const __iconNode$
|
|
29698
|
+
const __iconNode$F = [
|
|
29698
29699
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
29699
29700
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
29700
29701
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
29701
29702
|
];
|
|
29702
|
-
const CircleAlert = createLucideIcon("CircleAlert", __iconNode$
|
|
29703
|
+
const CircleAlert = createLucideIcon("CircleAlert", __iconNode$F);
|
|
29703
29704
|
/**
|
|
29704
29705
|
* @license lucide-react v0.475.0 - ISC
|
|
29705
29706
|
*
|
|
29706
29707
|
* This source code is licensed under the ISC license.
|
|
29707
29708
|
* See the LICENSE file in the root directory of this source tree.
|
|
29708
29709
|
*/
|
|
29709
|
-
const __iconNode$
|
|
29710
|
+
const __iconNode$E = [
|
|
29710
29711
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
29711
29712
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
29712
29713
|
];
|
|
29713
|
-
const CircleCheck = createLucideIcon("CircleCheck", __iconNode$
|
|
29714
|
+
const CircleCheck = createLucideIcon("CircleCheck", __iconNode$E);
|
|
29715
|
+
/**
|
|
29716
|
+
* @license lucide-react v0.475.0 - ISC
|
|
29717
|
+
*
|
|
29718
|
+
* This source code is licensed under the ISC license.
|
|
29719
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
29720
|
+
*/
|
|
29721
|
+
const __iconNode$D = [
|
|
29722
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
29723
|
+
["polygon", { points: "10 8 16 12 10 16 10 8", key: "1cimsy" }]
|
|
29724
|
+
];
|
|
29725
|
+
const CirclePlay = createLucideIcon("CirclePlay", __iconNode$D);
|
|
29714
29726
|
/**
|
|
29715
29727
|
* @license lucide-react v0.475.0 - ISC
|
|
29716
29728
|
*
|
|
@@ -56228,6 +56240,7 @@ function SessionPage() {
|
|
|
56228
56240
|
const projectClaudeMdRef = reactExports.useRef("");
|
|
56229
56241
|
const fullSummaryContentRef = reactExports.useRef("");
|
|
56230
56242
|
const isSwitchingModelRef = reactExports.useRef(false);
|
|
56243
|
+
const hasPrefilledRef = reactExports.useRef(false);
|
|
56231
56244
|
const state = location.state ?? {};
|
|
56232
56245
|
const workingDirectory = state.workingDirectory ?? "";
|
|
56233
56246
|
const liveSession = session ? getSession(session.id) ?? session : null;
|
|
@@ -56245,10 +56258,16 @@ function SessionPage() {
|
|
|
56245
56258
|
setRecentSummary(null);
|
|
56246
56259
|
projectClaudeMdRef.current = "";
|
|
56247
56260
|
fullSummaryContentRef.current = "";
|
|
56261
|
+
hasPrefilledRef.current = false;
|
|
56248
56262
|
const existing = getSessionByProfileId(profileId);
|
|
56249
56263
|
if (existing) {
|
|
56250
56264
|
setSession(existing);
|
|
56251
56265
|
setPhase("running");
|
|
56266
|
+
if (state.contextToInject && workingDirectory) {
|
|
56267
|
+
const mdPath = workingDirectory.replace(/\\/g, "/") + "/CLAUDE.md";
|
|
56268
|
+
ipc.fs.injectContext(mdPath, state.contextToInject).catch(() => {
|
|
56269
|
+
});
|
|
56270
|
+
}
|
|
56252
56271
|
return;
|
|
56253
56272
|
}
|
|
56254
56273
|
const claudeMdPath = getClaudeMdPath();
|
|
@@ -56362,6 +56381,14 @@ function SessionPage() {
|
|
|
56362
56381
|
setShowSummaryModal(false);
|
|
56363
56382
|
navigate("/dashboard");
|
|
56364
56383
|
}
|
|
56384
|
+
reactExports.useEffect(() => {
|
|
56385
|
+
if (liveSession && state.prefillMessage && !hasPrefilledRef.current) {
|
|
56386
|
+
hasPrefilledRef.current = true;
|
|
56387
|
+
setTimeout(() => {
|
|
56388
|
+
ipc.terminal.input(liveSession.id, state.prefillMessage);
|
|
56389
|
+
}, 1500);
|
|
56390
|
+
}
|
|
56391
|
+
}, [liveSession, state.prefillMessage]);
|
|
56365
56392
|
const durationMin = session ? Math.round((Date.now() - sessionStartedAt.current.getTime()) / 6e4) : 0;
|
|
56366
56393
|
if (phase === "checking" || phase === "starting") {
|
|
56367
56394
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(SessionLayout, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-1 items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: phase === "checking" ? "Verificando histórico..." : "Iniciando sessão..." }) }) });
|
|
@@ -56414,6 +56441,17 @@ function SessionList({
|
|
|
56414
56441
|
profileNames
|
|
56415
56442
|
}) {
|
|
56416
56443
|
const navigate = useNavigate();
|
|
56444
|
+
const queryClient2 = useQueryClient();
|
|
56445
|
+
async function handleDeleteNative(e, sessionId) {
|
|
56446
|
+
e.stopPropagation();
|
|
56447
|
+
try {
|
|
56448
|
+
await ipc.history.deleteNativeSession(sessionId);
|
|
56449
|
+
queryClient2.invalidateQueries({ queryKey: ["history", "native-sessions"] });
|
|
56450
|
+
ue$1.success("Sessão excluída");
|
|
56451
|
+
} catch {
|
|
56452
|
+
ue$1.error("Erro ao excluir sessão");
|
|
56453
|
+
}
|
|
56454
|
+
}
|
|
56417
56455
|
if (isLoading) {
|
|
56418
56456
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { className: "space-y-2", "aria-label": "Carregando histórico", children: Array.from({ length: 5 }).map((_2, i2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "rounded-lg border border-border bg-card p-4", children: [
|
|
56419
56457
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
@@ -56425,18 +56463,16 @@ function SessionList({
|
|
|
56425
56463
|
] }, i2)) });
|
|
56426
56464
|
}
|
|
56427
56465
|
const filteredSummaries = selectedProfileId ? summaries.filter((s2) => s2.profileId === selectedProfileId) : summaries;
|
|
56428
|
-
const filteredNative = selectedProfileId ?
|
|
56466
|
+
const filteredNative = selectedProfileId ? nativeSessions.filter((s2) => s2.profileId === selectedProfileId) : nativeSessions;
|
|
56429
56467
|
let items = [
|
|
56430
56468
|
...filteredSummaries.map((s2) => ({
|
|
56431
56469
|
kind: "cm",
|
|
56432
56470
|
data: s2,
|
|
56433
|
-
// YYYY-MM-DD_HH-MM → comparável diretamente (lexicográfico = cronológico)
|
|
56434
56471
|
sortKey: s2.date
|
|
56435
56472
|
})),
|
|
56436
56473
|
...filteredNative.map((s2) => ({
|
|
56437
56474
|
kind: "native",
|
|
56438
56475
|
data: s2,
|
|
56439
|
-
// ISO 8601 → slice para YYYY-MM-DDTHH-MM para comparar com o mesmo formato
|
|
56440
56476
|
sortKey: s2.lastMessageAt
|
|
56441
56477
|
}))
|
|
56442
56478
|
];
|
|
@@ -56525,22 +56561,39 @@ function SessionList({
|
|
|
56525
56561
|
state: { session: native }
|
|
56526
56562
|
}),
|
|
56527
56563
|
className: cn(
|
|
56528
|
-
"w-full rounded-lg border border-border bg-card p-4 text-left transition-colors",
|
|
56564
|
+
"group w-full rounded-lg border border-border bg-card p-4 text-left transition-colors",
|
|
56529
56565
|
"hover:border-border/80 hover:bg-card/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
56530
56566
|
),
|
|
56531
56567
|
children: [
|
|
56532
56568
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
56533
56569
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
56534
56570
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Terminal$1, { size: 14, className: "shrink-0 text-muted-foreground", "aria-hidden": "true" }),
|
|
56535
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate text-sm font-medium", children: native.projectName }),
|
|
56571
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate text-sm font-medium", children: native.profileId && profileNames[native.profileId] ? profileNames[native.profileId] : native.projectName }),
|
|
56536
56572
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "secondary", className: "shrink-0 text-xs", children: "Nativo" })
|
|
56537
56573
|
] }),
|
|
56538
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "
|
|
56539
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
56540
|
-
|
|
56541
|
-
|
|
56542
|
-
|
|
56543
|
-
|
|
56574
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
56575
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 text-right", children: [
|
|
56576
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: formatNativeDate(native.lastMessageAt) }),
|
|
56577
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-xs text-muted-foreground/60", children: [
|
|
56578
|
+
native.messageCount,
|
|
56579
|
+
" interações"
|
|
56580
|
+
] })
|
|
56581
|
+
] }),
|
|
56582
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
56583
|
+
"button",
|
|
56584
|
+
{
|
|
56585
|
+
type: "button",
|
|
56586
|
+
onClick: (e) => handleDeleteNative(e, native.sessionId),
|
|
56587
|
+
className: cn(
|
|
56588
|
+
"rounded-md p-1.5 text-muted-foreground/40 transition-colors",
|
|
56589
|
+
"opacity-0 group-hover:opacity-100",
|
|
56590
|
+
"hover:bg-destructive/10 hover:text-destructive",
|
|
56591
|
+
"focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
56592
|
+
),
|
|
56593
|
+
title: "Excluir sessão",
|
|
56594
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Trash2, { size: 14, "aria-hidden": "true" })
|
|
56595
|
+
}
|
|
56596
|
+
)
|
|
56544
56597
|
] })
|
|
56545
56598
|
] }),
|
|
56546
56599
|
native.firstMessage && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-2 line-clamp-2 text-xs text-muted-foreground", children: native.firstMessage })
|
|
@@ -56576,13 +56629,41 @@ function useAllHistorySummaries(profileIds) {
|
|
|
56576
56629
|
});
|
|
56577
56630
|
}
|
|
56578
56631
|
function HistoryPage() {
|
|
56579
|
-
const [searchTerm, setSearchTerm] = reactExports.useState("");
|
|
56580
|
-
const [selectedProfileId, setSelectedProfileId] = reactExports.useState(
|
|
56581
|
-
|
|
56632
|
+
const [searchTerm, setSearchTerm] = reactExports.useState(() => sessionStorage.getItem("cm:history:search") || "");
|
|
56633
|
+
const [selectedProfileId, setSelectedProfileId] = reactExports.useState(
|
|
56634
|
+
() => sessionStorage.getItem("cm:history:profile") || void 0
|
|
56635
|
+
);
|
|
56636
|
+
const scrollContainerRef = reactExports.useRef(null);
|
|
56637
|
+
reactExports.useEffect(() => {
|
|
56638
|
+
sessionStorage.setItem("cm:history:search", searchTerm);
|
|
56639
|
+
}, [searchTerm]);
|
|
56640
|
+
reactExports.useEffect(() => {
|
|
56641
|
+
if (selectedProfileId) {
|
|
56642
|
+
sessionStorage.setItem("cm:history:profile", selectedProfileId);
|
|
56643
|
+
} else {
|
|
56644
|
+
sessionStorage.removeItem("cm:history:profile");
|
|
56645
|
+
}
|
|
56646
|
+
}, [selectedProfileId]);
|
|
56647
|
+
const { data: profilesData = [] } = useProfiles();
|
|
56648
|
+
const profiles = profilesData;
|
|
56582
56649
|
const profileIds = profiles.map((p2) => p2.id);
|
|
56583
56650
|
const { data: summaries = [], isLoading: isLoadingSummaries } = useAllHistorySummaries(profileIds);
|
|
56584
56651
|
const { data: nativeSessions = [], isLoading: isLoadingNative } = useNativeSessions();
|
|
56585
56652
|
const isLoading = isLoadingSummaries || isLoadingNative;
|
|
56653
|
+
reactExports.useEffect(() => {
|
|
56654
|
+
const savedScroll = sessionStorage.getItem("cm:history:scroll");
|
|
56655
|
+
if (savedScroll && scrollContainerRef.current) {
|
|
56656
|
+
const timeoutId = setTimeout(() => {
|
|
56657
|
+
if (scrollContainerRef.current) {
|
|
56658
|
+
scrollContainerRef.current.scrollTop = parseInt(savedScroll, 10);
|
|
56659
|
+
}
|
|
56660
|
+
}, 100);
|
|
56661
|
+
return () => clearTimeout(timeoutId);
|
|
56662
|
+
}
|
|
56663
|
+
}, [summaries.length, nativeSessions.length]);
|
|
56664
|
+
function handleScroll2(e) {
|
|
56665
|
+
sessionStorage.setItem("cm:history:scroll", e.currentTarget.scrollTop.toString());
|
|
56666
|
+
}
|
|
56586
56667
|
const profileNames = Object.fromEntries(profiles.map((p2) => [p2.id, p2.name]));
|
|
56587
56668
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-1 flex-col overflow-hidden", children: [
|
|
56588
56669
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-b border-border px-6 py-4", children: [
|
|
@@ -56641,17 +56722,25 @@ function HistoryPage() {
|
|
|
56641
56722
|
))
|
|
56642
56723
|
] })
|
|
56643
56724
|
] }) }),
|
|
56644
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
56645
|
-
|
|
56725
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
56726
|
+
"div",
|
|
56646
56727
|
{
|
|
56647
|
-
|
|
56648
|
-
|
|
56649
|
-
|
|
56650
|
-
|
|
56651
|
-
|
|
56652
|
-
|
|
56728
|
+
ref: scrollContainerRef,
|
|
56729
|
+
className: "flex-1 overflow-y-auto px-6 py-4",
|
|
56730
|
+
onScroll: handleScroll2,
|
|
56731
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
56732
|
+
SessionList,
|
|
56733
|
+
{
|
|
56734
|
+
summaries,
|
|
56735
|
+
nativeSessions,
|
|
56736
|
+
isLoading,
|
|
56737
|
+
searchTerm,
|
|
56738
|
+
selectedProfileId,
|
|
56739
|
+
profileNames
|
|
56740
|
+
}
|
|
56741
|
+
)
|
|
56653
56742
|
}
|
|
56654
|
-
)
|
|
56743
|
+
)
|
|
56655
56744
|
] });
|
|
56656
56745
|
}
|
|
56657
56746
|
function ok$2() {
|
|
@@ -89945,6 +90034,80 @@ function NativeSessionDetailPage() {
|
|
|
89945
90034
|
const [isLoading, setIsLoading] = reactExports.useState(true);
|
|
89946
90035
|
const state = location.state ?? {};
|
|
89947
90036
|
const session = state.session;
|
|
90037
|
+
const { data: profiles = [] } = useProfiles();
|
|
90038
|
+
const profileName = session?.profileId ? profiles.find((p2) => p2.id === session.profileId)?.name : void 0;
|
|
90039
|
+
const displayName = profileName ?? session?.projectName ?? "";
|
|
90040
|
+
const [showContinueModal, setShowContinueModal] = reactExports.useState(false);
|
|
90041
|
+
const [selectedProfileId, setSelectedProfileId] = reactExports.useState("");
|
|
90042
|
+
const [isStarting, setIsStarting] = reactExports.useState(false);
|
|
90043
|
+
reactExports.useEffect(() => {
|
|
90044
|
+
if (showContinueModal && profiles.length > 0 && !selectedProfileId) {
|
|
90045
|
+
const defaultId = session?.profileId ?? profiles[0]?.id ?? "";
|
|
90046
|
+
setSelectedProfileId(defaultId);
|
|
90047
|
+
}
|
|
90048
|
+
}, [showContinueModal, profiles, selectedProfileId, session?.profileId]);
|
|
90049
|
+
const [quotaMap, setQuotaMap] = reactExports.useState({});
|
|
90050
|
+
const [quotaLoading, setQuotaLoading] = reactExports.useState(false);
|
|
90051
|
+
reactExports.useEffect(() => {
|
|
90052
|
+
if (!showContinueModal || profiles.length === 0) return;
|
|
90053
|
+
setQuotaLoading(true);
|
|
90054
|
+
Promise.all(
|
|
90055
|
+
profiles.map(async (p2) => {
|
|
90056
|
+
try {
|
|
90057
|
+
const q2 = await ipc.quota.get(p2.id);
|
|
90058
|
+
return [p2.id, q2];
|
|
90059
|
+
} catch {
|
|
90060
|
+
return [p2.id, null];
|
|
90061
|
+
}
|
|
90062
|
+
})
|
|
90063
|
+
).then((results) => {
|
|
90064
|
+
const map2 = {};
|
|
90065
|
+
for (const [id, q2] of results) map2[id] = q2;
|
|
90066
|
+
setQuotaMap(map2);
|
|
90067
|
+
setQuotaLoading(false);
|
|
90068
|
+
});
|
|
90069
|
+
}, [showContinueModal, profiles]);
|
|
90070
|
+
function quotaBadgeColor(percent) {
|
|
90071
|
+
if (percent >= 90) return "bg-destructive/15 text-destructive border-destructive/30";
|
|
90072
|
+
if (percent >= 70) return "bg-amber-500/15 text-amber-500 border-amber-500/30";
|
|
90073
|
+
return "bg-primary/10 text-primary border-primary/30";
|
|
90074
|
+
}
|
|
90075
|
+
async function handleContinueSession() {
|
|
90076
|
+
if (!selectedProfileId || !session) return;
|
|
90077
|
+
const profile = profiles.find((p2) => p2.id === selectedProfileId);
|
|
90078
|
+
if (!profile) return;
|
|
90079
|
+
setIsStarting(true);
|
|
90080
|
+
try {
|
|
90081
|
+
const summaryLines = [];
|
|
90082
|
+
summaryLines.push(`# Contexto da sessão anterior`);
|
|
90083
|
+
summaryLines.push(`> Sessão: ${session.sessionId.slice(0, 8)}... | Projeto: ${session.projectPath}`);
|
|
90084
|
+
summaryLines.push(`> ${messages2.length} mensagens | ${formatTimestamp(session.lastMessageAt)}`);
|
|
90085
|
+
summaryLines.push("");
|
|
90086
|
+
const relevantMessages = messages2.filter((m2) => m2.kind !== "tool").slice(-20);
|
|
90087
|
+
for (const msg of relevantMessages) {
|
|
90088
|
+
const prefix2 = msg.role === "user" ? "**Usuário:**" : "**Claude:**";
|
|
90089
|
+
const content2 = msg.content.length > 500 ? msg.content.slice(0, 500) + "..." : msg.content;
|
|
90090
|
+
summaryLines.push(`${prefix2} ${content2}`);
|
|
90091
|
+
summaryLines.push("");
|
|
90092
|
+
}
|
|
90093
|
+
const summaryContent = summaryLines.join("\n");
|
|
90094
|
+
setShowContinueModal(false);
|
|
90095
|
+
navigate(`/session/${profile.id}`, {
|
|
90096
|
+
state: {
|
|
90097
|
+
profileName: profile.name,
|
|
90098
|
+
workingDirectory: session.projectPath,
|
|
90099
|
+
contextToInject: summaryContent,
|
|
90100
|
+
prefillMessage: "Continue o trabalho da sessão anterior com base no contexto do CLAUDE.md"
|
|
90101
|
+
}
|
|
90102
|
+
});
|
|
90103
|
+
} catch (err) {
|
|
90104
|
+
ue$1.error("Erro ao iniciar sessão", {
|
|
90105
|
+
description: err instanceof Error ? err.message : "Erro desconhecido"
|
|
90106
|
+
});
|
|
90107
|
+
} finally {
|
|
90108
|
+
setIsStarting(false);
|
|
90109
|
+
}
|
|
90110
|
+
}
|
|
89948
90111
|
reactExports.useEffect(() => {
|
|
89949
90112
|
if (!sessionId) {
|
|
89950
90113
|
setIsLoading(false);
|
|
@@ -89968,218 +90131,305 @@ function NativeSessionDetailPage() {
|
|
|
89968
90131
|
return iso;
|
|
89969
90132
|
}
|
|
89970
90133
|
}
|
|
89971
|
-
return /* @__PURE__ */ jsxRuntimeExports.
|
|
89972
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex
|
|
89973
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
89974
|
-
|
|
89975
|
-
|
|
89976
|
-
|
|
89977
|
-
|
|
89978
|
-
|
|
89979
|
-
|
|
89980
|
-
|
|
89981
|
-
|
|
89982
|
-
|
|
89983
|
-
|
|
89984
|
-
|
|
89985
|
-
|
|
89986
|
-
|
|
89987
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
89988
|
-
|
|
89989
|
-
|
|
89990
|
-
|
|
89991
|
-
|
|
89992
|
-
|
|
89993
|
-
|
|
89994
|
-
|
|
89995
|
-
|
|
89996
|
-
|
|
89997
|
-
|
|
89998
|
-
|
|
89999
|
-
|
|
90000
|
-
|
|
90001
|
-
|
|
90002
|
-
|
|
90003
|
-
|
|
90004
|
-
|
|
90005
|
-
|
|
90006
|
-
sessionId.slice(0, 8),
|
|
90007
|
-
"…"
|
|
90008
|
-
] })
|
|
90009
|
-
] }),
|
|
90010
|
-
stats && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap gap-x-4 gap-y-1 border-b border-border/40 bg-card/30 px-4 py-2 text-[11px]", children: [
|
|
90011
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90012
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex cursor-default items-center gap-1 text-muted-foreground/70", children: [
|
|
90013
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { size: 10, "aria-hidden": "true" }),
|
|
90014
|
-
" ",
|
|
90015
|
-
formatDuration(stats.durationMs)
|
|
90016
|
-
] }) }),
|
|
90017
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Duração da sessão — tempo decorrido entre a primeira e a última mensagem" }) })
|
|
90018
|
-
] }),
|
|
90019
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground/50", children: "·" }),
|
|
90020
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-muted-foreground/70", children: [
|
|
90021
|
-
stats.totalMessages,
|
|
90022
|
-
" msgs · ",
|
|
90023
|
-
stats.totalToolCalls,
|
|
90024
|
-
" tool calls"
|
|
90025
|
-
] }),
|
|
90026
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground/50", children: "·" }),
|
|
90027
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90028
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default text-muted-foreground/70", children: [
|
|
90029
|
-
"↑ ",
|
|
90030
|
-
formatTokens$1(stats.totalInputTokens)
|
|
90031
|
-
] }) }),
|
|
90032
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Input tokens — tokens enviados ao modelo (prompt + contexto + histórico)" }) })
|
|
90033
|
-
] }),
|
|
90034
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90035
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default text-muted-foreground/70", children: [
|
|
90036
|
-
"↓ ",
|
|
90037
|
-
formatTokens$1(stats.totalOutputTokens)
|
|
90038
|
-
] }) }),
|
|
90039
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Output tokens — tokens gerados pelo modelo (respostas do Claude)" }) })
|
|
90040
|
-
] }),
|
|
90041
|
-
stats.totalCacheRead > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90042
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default text-muted-foreground/50", children: [
|
|
90043
|
-
"📖 ",
|
|
90044
|
-
formatTokens$1(stats.totalCacheRead)
|
|
90045
|
-
] }) }),
|
|
90046
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Cache read — tokens lidos do cache de contexto (custo reduzido)" }) })
|
|
90134
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipProvider, { delayDuration: 400, children: [
|
|
90135
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-1 flex-col overflow-hidden", children: [
|
|
90136
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 border-b border-border px-6 py-4", children: [
|
|
90137
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
90138
|
+
Button$1,
|
|
90139
|
+
{
|
|
90140
|
+
variant: "ghost",
|
|
90141
|
+
size: "sm",
|
|
90142
|
+
onClick: () => navigate("/history"),
|
|
90143
|
+
className: "gap-1.5 text-muted-foreground hover:text-foreground",
|
|
90144
|
+
children: [
|
|
90145
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ArrowLeft, { size: 14, "aria-hidden": "true" }),
|
|
90146
|
+
"Histórico"
|
|
90147
|
+
]
|
|
90148
|
+
}
|
|
90149
|
+
),
|
|
90150
|
+
session && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
90151
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground/40", children: "/" }),
|
|
90152
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium", children: displayName }),
|
|
90153
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "secondary", className: "text-xs", children: "Nativo" })
|
|
90154
|
+
] }),
|
|
90155
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ml-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
90156
|
+
Button$1,
|
|
90157
|
+
{
|
|
90158
|
+
variant: "default",
|
|
90159
|
+
size: "sm",
|
|
90160
|
+
onClick: () => setShowContinueModal(true),
|
|
90161
|
+
className: "gap-1.5",
|
|
90162
|
+
disabled: !session || messages2.length === 0,
|
|
90163
|
+
children: [
|
|
90164
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CirclePlay, { size: 14, "aria-hidden": "true" }),
|
|
90165
|
+
"Continuar sessão"
|
|
90166
|
+
]
|
|
90167
|
+
}
|
|
90168
|
+
) })
|
|
90047
90169
|
] }),
|
|
90048
|
-
|
|
90049
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
90050
|
-
"
|
|
90051
|
-
|
|
90052
|
-
] })
|
|
90053
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
90170
|
+
session && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap items-center gap-4 border-b border-border px-6 py-3", children: [
|
|
90171
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
90172
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FolderOpen, { size: 12, "aria-hidden": "true" }),
|
|
90173
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono", children: session.projectPath })
|
|
90174
|
+
] }),
|
|
90175
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
90176
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Calendar, { size: 12, "aria-hidden": "true" }),
|
|
90177
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: formatTimestamp(session.lastMessageAt) })
|
|
90178
|
+
] }),
|
|
90179
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
90180
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(MessageSquare, { size: 12, "aria-hidden": "true" }),
|
|
90181
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
|
|
90182
|
+
session?.messageCount ?? 0,
|
|
90183
|
+
" interações"
|
|
90184
|
+
] })
|
|
90185
|
+
] }),
|
|
90186
|
+
sessionId && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-auto font-mono text-xs text-muted-foreground/40", children: [
|
|
90187
|
+
sessionId.slice(0, 8),
|
|
90188
|
+
"…"
|
|
90189
|
+
] })
|
|
90054
90190
|
] }),
|
|
90055
|
-
stats
|
|
90191
|
+
stats && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap gap-x-4 gap-y-1 border-b border-border/40 bg-card/30 px-4 py-2 text-[11px]", children: [
|
|
90192
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90193
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex cursor-default items-center gap-1 text-muted-foreground/70", children: [
|
|
90194
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { size: 10, "aria-hidden": "true" }),
|
|
90195
|
+
" ",
|
|
90196
|
+
formatDuration(stats.durationMs)
|
|
90197
|
+
] }) }),
|
|
90198
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Duração da sessão — tempo decorrido entre a primeira e a última mensagem" }) })
|
|
90199
|
+
] }),
|
|
90200
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground/50", children: "·" }),
|
|
90201
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-muted-foreground/70", children: [
|
|
90202
|
+
stats.totalMessages,
|
|
90203
|
+
" blocos de texto · ",
|
|
90204
|
+
stats.totalToolCalls,
|
|
90205
|
+
" tool calls"
|
|
90206
|
+
] }),
|
|
90056
90207
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground/50", children: "·" }),
|
|
90057
90208
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90058
90209
|
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default text-muted-foreground/70", children: [
|
|
90059
|
-
"
|
|
90060
|
-
stats.
|
|
90061
|
-
|
|
90210
|
+
"↑ ",
|
|
90211
|
+
formatTokens$1(stats.totalInputTokens)
|
|
90212
|
+
] }) }),
|
|
90213
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Input tokens — tokens enviados ao modelo (prompt + contexto + histórico)" }) })
|
|
90214
|
+
] }),
|
|
90215
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90216
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default text-muted-foreground/70", children: [
|
|
90217
|
+
"↓ ",
|
|
90218
|
+
formatTokens$1(stats.totalOutputTokens)
|
|
90219
|
+
] }) }),
|
|
90220
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Output tokens — tokens gerados pelo modelo (respostas do Claude)" }) })
|
|
90221
|
+
] }),
|
|
90222
|
+
stats.totalCacheRead > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90223
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default text-muted-foreground/50", children: [
|
|
90224
|
+
"📖 ",
|
|
90225
|
+
formatTokens$1(stats.totalCacheRead)
|
|
90226
|
+
] }) }),
|
|
90227
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Cache read — tokens lidos do cache de contexto (custo reduzido)" }) })
|
|
90228
|
+
] }),
|
|
90229
|
+
stats.totalCacheCreate > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90230
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default text-muted-foreground/50", children: [
|
|
90231
|
+
"📦 ",
|
|
90232
|
+
formatTokens$1(stats.totalCacheCreate)
|
|
90062
90233
|
] }) }),
|
|
90063
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
90064
|
-
|
|
90065
|
-
|
|
90066
|
-
|
|
90067
|
-
|
|
90068
|
-
|
|
90069
|
-
|
|
90070
|
-
|
|
90234
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Cache write — tokens gravados no cache para reutilização futura" }) })
|
|
90235
|
+
] }),
|
|
90236
|
+
stats.compactionCount > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
90237
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground/50", children: "·" }),
|
|
90238
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90239
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default text-muted-foreground/70", children: [
|
|
90240
|
+
"⚡ ",
|
|
90241
|
+
stats.compactionCount,
|
|
90242
|
+
"×"
|
|
90243
|
+
] }) }),
|
|
90244
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipContent, { children: [
|
|
90245
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "font-medium", children: stats.compactionCount === 1 ? "1 compactação" : `${stats.compactionCount} compactações` }),
|
|
90246
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: "Contexto resumido para liberar espaço na janela" }),
|
|
90247
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-xs", children: [
|
|
90248
|
+
formatTokens$1(stats.compactionTokensIn),
|
|
90249
|
+
" → ",
|
|
90250
|
+
formatTokens$1(stats.compactionTokensOut),
|
|
90251
|
+
" tokens"
|
|
90252
|
+
] })
|
|
90071
90253
|
] })
|
|
90072
90254
|
] })
|
|
90073
90255
|
] })
|
|
90074
|
-
] })
|
|
90075
|
-
|
|
90076
|
-
|
|
90077
|
-
|
|
90078
|
-
|
|
90079
|
-
Button$1,
|
|
90080
|
-
{
|
|
90081
|
-
variant: "ghost",
|
|
90082
|
-
size: "sm",
|
|
90083
|
-
className: "mt-3",
|
|
90084
|
-
onClick: () => navigate("/history"),
|
|
90085
|
-
children: "Voltar ao histórico"
|
|
90086
|
-
}
|
|
90087
|
-
)
|
|
90088
|
-
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-4 pb-4", children: messages2.map(
|
|
90089
|
-
(msg, i2) => msg.kind === "tool" ? (
|
|
90090
|
-
// Linha de ação de ferramenta — compacta, sem bolha
|
|
90091
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-center py-0.5", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-border/40 bg-muted/20 px-3 py-1.5", children: [
|
|
90092
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Wrench, { size: 10, className: "mt-0.5 shrink-0 text-muted-foreground/40", "aria-hidden": "true" }),
|
|
90093
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "font-mono text-[10px] leading-relaxed text-muted-foreground/50", children: [
|
|
90094
|
-
msg.content.split("\n").join(" · "),
|
|
90095
|
-
msg.durationMs !== void 0 && msg.durationMs > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90096
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-2 cursor-default text-muted-foreground/30", children: [
|
|
90097
|
-
"· ",
|
|
90098
|
-
formatDuration(msg.durationMs)
|
|
90099
|
-
] }) }),
|
|
90100
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Tempo de execução das ferramentas neste bloco" }) })
|
|
90101
|
-
] })
|
|
90102
|
-
] })
|
|
90103
|
-
] }) }, i2)
|
|
90104
|
-
) : (
|
|
90105
|
-
// Bolha de conversa normal
|
|
90106
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
90107
|
-
"div",
|
|
90256
|
+
] }),
|
|
90257
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "flex-1 px-6 py-4", children: isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-4", children: Array.from({ length: 6 }).map((_2, i2) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn("flex gap-3", i2 % 2 === 0 ? "justify-end" : ""), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton, { className: cn("h-16 rounded-xl", i2 % 2 === 0 ? "w-2/3" : "w-3/4") }) }, i2)) }) : messages2.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center py-16 text-center", children: [
|
|
90258
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: "Conversa não encontrada ou não pôde ser lida." }),
|
|
90259
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
90260
|
+
Button$1,
|
|
90108
90261
|
{
|
|
90109
|
-
|
|
90110
|
-
|
|
90111
|
-
|
|
90112
|
-
),
|
|
90113
|
-
children:
|
|
90114
|
-
|
|
90115
|
-
|
|
90116
|
-
|
|
90117
|
-
|
|
90118
|
-
|
|
90119
|
-
|
|
90120
|
-
|
|
90121
|
-
|
|
90122
|
-
|
|
90262
|
+
variant: "ghost",
|
|
90263
|
+
size: "sm",
|
|
90264
|
+
className: "mt-3",
|
|
90265
|
+
onClick: () => navigate("/history"),
|
|
90266
|
+
children: "Voltar ao histórico"
|
|
90267
|
+
}
|
|
90268
|
+
)
|
|
90269
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-4 pb-4", children: messages2.map(
|
|
90270
|
+
(msg, i2) => msg.kind === "tool" ? (
|
|
90271
|
+
// Linha de ação de ferramenta — compacta, sem bolha
|
|
90272
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-center py-0.5", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-border/40 bg-muted/20 px-3 py-1.5", children: [
|
|
90273
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Wrench, { size: 10, className: "mt-0.5 shrink-0 text-muted-foreground/40", "aria-hidden": "true" }),
|
|
90274
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "font-mono text-[10px] leading-relaxed text-muted-foreground/50", children: [
|
|
90275
|
+
msg.content.split("\n").join(" · "),
|
|
90276
|
+
msg.durationMs !== void 0 && msg.durationMs > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90277
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-2 cursor-default text-muted-foreground/30", children: [
|
|
90278
|
+
"· ",
|
|
90279
|
+
formatDuration(msg.durationMs)
|
|
90280
|
+
] }) }),
|
|
90281
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Tempo de execução das ferramentas neste bloco" }) })
|
|
90282
|
+
] })
|
|
90283
|
+
] })
|
|
90284
|
+
] }) }, i2)
|
|
90285
|
+
) : (
|
|
90286
|
+
// Bolha de conversa normal
|
|
90287
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
90288
|
+
"div",
|
|
90289
|
+
{
|
|
90290
|
+
className: cn(
|
|
90291
|
+
"flex gap-2.5",
|
|
90292
|
+
msg.role === "user" ? "flex-row-reverse" : "flex-row"
|
|
90123
90293
|
),
|
|
90124
|
-
|
|
90125
|
-
|
|
90126
|
-
|
|
90127
|
-
|
|
90128
|
-
|
|
90129
|
-
|
|
90130
|
-
|
|
90131
|
-
|
|
90132
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
90133
|
-
|
|
90134
|
-
|
|
90135
|
-
|
|
90136
|
-
|
|
90137
|
-
|
|
90138
|
-
|
|
90139
|
-
|
|
90140
|
-
|
|
90141
|
-
}
|
|
90294
|
+
children: [
|
|
90295
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
90296
|
+
"div",
|
|
90297
|
+
{
|
|
90298
|
+
className: cn(
|
|
90299
|
+
"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-full",
|
|
90300
|
+
msg.role === "user" ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground"
|
|
90301
|
+
),
|
|
90302
|
+
children: msg.role === "user" ? /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 12, "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { size: 12, "aria-hidden": "true" })
|
|
90303
|
+
}
|
|
90304
|
+
),
|
|
90305
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
90306
|
+
"div",
|
|
90307
|
+
{
|
|
90308
|
+
className: cn(
|
|
90309
|
+
"max-w-[75%] rounded-2xl px-4 py-2.5",
|
|
90310
|
+
msg.role === "user" ? "rounded-tr-sm bg-primary text-primary-foreground" : "rounded-tl-sm bg-muted text-foreground"
|
|
90142
90311
|
),
|
|
90143
|
-
|
|
90144
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
90145
|
-
|
|
90146
|
-
|
|
90147
|
-
|
|
90148
|
-
|
|
90149
|
-
|
|
90150
|
-
|
|
90151
|
-
|
|
90152
|
-
|
|
90153
|
-
|
|
90154
|
-
|
|
90155
|
-
|
|
90156
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
90157
|
-
|
|
90158
|
-
|
|
90159
|
-
|
|
90160
|
-
|
|
90161
|
-
|
|
90162
|
-
] })
|
|
90163
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
90164
|
-
|
|
90165
|
-
|
|
90166
|
-
|
|
90167
|
-
|
|
90168
|
-
|
|
90169
|
-
] })
|
|
90170
|
-
|
|
90312
|
+
children: [
|
|
90313
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "whitespace-pre-wrap text-sm leading-relaxed", children: msg.content }),
|
|
90314
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
90315
|
+
"p",
|
|
90316
|
+
{
|
|
90317
|
+
className: cn(
|
|
90318
|
+
"mt-1 text-right text-[10px]",
|
|
90319
|
+
msg.role === "user" ? "text-primary-foreground/60" : "text-muted-foreground/60"
|
|
90320
|
+
),
|
|
90321
|
+
children: formatTimestamp(msg.timestamp)
|
|
90322
|
+
}
|
|
90323
|
+
),
|
|
90324
|
+
msg.tokens && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-0.5 flex flex-wrap gap-x-2 text-[10px] text-muted-foreground/50", children: [
|
|
90325
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90326
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default", children: [
|
|
90327
|
+
"↑ ",
|
|
90328
|
+
formatTokens$1(msg.tokens.input)
|
|
90329
|
+
] }) }),
|
|
90330
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Input tokens — tokens enviados ao modelo" }) })
|
|
90331
|
+
] }),
|
|
90332
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90333
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default", children: [
|
|
90334
|
+
"↓ ",
|
|
90335
|
+
formatTokens$1(msg.tokens.output)
|
|
90336
|
+
] }) }),
|
|
90337
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Output tokens — tokens gerados pelo modelo" }) })
|
|
90338
|
+
] }),
|
|
90339
|
+
msg.tokens.cacheRead > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90340
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default", children: [
|
|
90341
|
+
"📖 ",
|
|
90342
|
+
formatTokens$1(msg.tokens.cacheRead)
|
|
90343
|
+
] }) }),
|
|
90344
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Cache read — tokens lidos do cache de contexto" }) })
|
|
90345
|
+
] }),
|
|
90346
|
+
msg.tokens.cacheCreate > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
90347
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cursor-default", children: [
|
|
90348
|
+
"📦 ",
|
|
90349
|
+
formatTokens$1(msg.tokens.cacheCreate)
|
|
90350
|
+
] }) }),
|
|
90351
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Cache write — tokens gravados no cache para reutilização futura" }) })
|
|
90352
|
+
] })
|
|
90171
90353
|
] })
|
|
90172
|
-
]
|
|
90173
|
-
|
|
90174
|
-
|
|
90175
|
-
|
|
90354
|
+
]
|
|
90355
|
+
}
|
|
90356
|
+
)
|
|
90357
|
+
]
|
|
90358
|
+
},
|
|
90359
|
+
i2
|
|
90360
|
+
)
|
|
90361
|
+
)
|
|
90362
|
+
) }) })
|
|
90363
|
+
] }),
|
|
90364
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showContinueModal, onOpenChange: setShowContinueModal, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-md", children: [
|
|
90365
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { children: [
|
|
90366
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Continuar sessão" }),
|
|
90367
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: "O contexto da sessão será injetado no CLAUDE.md do projeto para a nova sessão." })
|
|
90368
|
+
] }),
|
|
90369
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "py-4", children: [
|
|
90370
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-2 text-sm font-medium", children: "Perfil" }),
|
|
90371
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-h-[220px] space-y-1.5 overflow-y-auto pr-1", children: profiles.map((p2) => {
|
|
90372
|
+
const q2 = quotaMap[p2.id];
|
|
90373
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
90374
|
+
"button",
|
|
90375
|
+
{
|
|
90376
|
+
type: "button",
|
|
90377
|
+
onClick: () => setSelectedProfileId(p2.id),
|
|
90378
|
+
className: cn(
|
|
90379
|
+
"flex w-full items-center gap-2 rounded-lg border px-3 py-2.5 text-left text-sm transition-all",
|
|
90380
|
+
selectedProfileId === p2.id ? "border-primary bg-primary/5 ring-1 ring-primary" : "border-border hover:border-border/80 hover:bg-muted/30"
|
|
90381
|
+
),
|
|
90382
|
+
children: [
|
|
90383
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1 truncate font-medium", children: p2.name }),
|
|
90384
|
+
quotaLoading ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [
|
|
90385
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton, { className: "h-4 w-12 rounded-full" }),
|
|
90386
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton, { className: "h-4 w-12 rounded-full" })
|
|
90387
|
+
] }) : q2 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [
|
|
90388
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: cn(
|
|
90389
|
+
"rounded-full border px-1.5 py-0.5 text-[10px] font-medium leading-none",
|
|
90390
|
+
quotaBadgeColor(q2.session.percent)
|
|
90391
|
+
), children: [
|
|
90392
|
+
"S ",
|
|
90393
|
+
q2.session.percent,
|
|
90394
|
+
"%"
|
|
90395
|
+
] }),
|
|
90396
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: cn(
|
|
90397
|
+
"rounded-full border px-1.5 py-0.5 text-[10px] font-medium leading-none",
|
|
90398
|
+
quotaBadgeColor(q2.week.percent)
|
|
90399
|
+
), children: [
|
|
90400
|
+
"W ",
|
|
90401
|
+
q2.week.percent,
|
|
90402
|
+
"%"
|
|
90403
|
+
] })
|
|
90404
|
+
] }) : null
|
|
90405
|
+
]
|
|
90406
|
+
},
|
|
90407
|
+
p2.id
|
|
90408
|
+
);
|
|
90409
|
+
}) }),
|
|
90410
|
+
session && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-3 text-xs text-muted-foreground", children: [
|
|
90411
|
+
"Projeto: ",
|
|
90412
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono", children: session.projectPath })
|
|
90413
|
+
] })
|
|
90414
|
+
] }),
|
|
90415
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogFooter, { children: [
|
|
90416
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { variant: "ghost", size: "sm", onClick: () => setShowContinueModal(false), children: "Cancelar" }),
|
|
90417
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
90418
|
+
Button$1,
|
|
90419
|
+
{
|
|
90420
|
+
size: "sm",
|
|
90421
|
+
onClick: handleContinueSession,
|
|
90422
|
+
disabled: !selectedProfileId || isStarting,
|
|
90423
|
+
className: "gap-1.5",
|
|
90424
|
+
children: [
|
|
90425
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CirclePlay, { size: 14, "aria-hidden": "true" }),
|
|
90426
|
+
isStarting ? "Iniciando..." : "Iniciar sessão"
|
|
90176
90427
|
]
|
|
90177
|
-
}
|
|
90178
|
-
i2
|
|
90428
|
+
}
|
|
90179
90429
|
)
|
|
90180
|
-
)
|
|
90181
|
-
|
|
90182
|
-
] })
|
|
90430
|
+
] })
|
|
90431
|
+
] }) })
|
|
90432
|
+
] });
|
|
90183
90433
|
}
|
|
90184
90434
|
// @__NO_SIDE_EFFECTS__
|
|
90185
90435
|
function createSlot(ownerName) {
|
|
@@ -305041,7 +305291,7 @@ const lessDefaults = new LanguageServiceDefaultsImpl$3(
|
|
|
305041
305291
|
modeConfigurationDefault$2
|
|
305042
305292
|
);
|
|
305043
305293
|
function getMode$3() {
|
|
305044
|
-
return __vitePreload(() => import("./cssMode-
|
|
305294
|
+
return __vitePreload(() => import("./cssMode-Djbzf0LR.js"), true ? __vite__mapDeps([0,1]) : void 0, import.meta.url);
|
|
305045
305295
|
}
|
|
305046
305296
|
languages.onLanguage("less", () => {
|
|
305047
305297
|
getMode$3().then((mode2) => mode2.setupMode(lessDefaults));
|
|
@@ -305146,7 +305396,7 @@ const razorLanguageService = registerHTMLLanguageService(
|
|
|
305146
305396
|
);
|
|
305147
305397
|
const razorDefaults = razorLanguageService.defaults;
|
|
305148
305398
|
function getMode$2() {
|
|
305149
|
-
return __vitePreload(() => import("./htmlMode-
|
|
305399
|
+
return __vitePreload(() => import("./htmlMode-rVPkSV1Q.js"), true ? __vite__mapDeps([2,1]) : void 0, import.meta.url);
|
|
305150
305400
|
}
|
|
305151
305401
|
function registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {
|
|
305152
305402
|
const defaults2 = new LanguageServiceDefaultsImpl$2(languageId, options, modeConfiguration);
|
|
@@ -305230,7 +305480,7 @@ const jsonDefaults = new LanguageServiceDefaultsImpl$1(
|
|
|
305230
305480
|
);
|
|
305231
305481
|
const getWorker$1 = () => getMode$1().then((mode2) => mode2.getWorker());
|
|
305232
305482
|
function getMode$1() {
|
|
305233
|
-
return __vitePreload(() => import("./jsonMode-
|
|
305483
|
+
return __vitePreload(() => import("./jsonMode-1NERwSWX.js"), true ? __vite__mapDeps([3,1]) : void 0, import.meta.url);
|
|
305234
305484
|
}
|
|
305235
305485
|
languages.register({
|
|
305236
305486
|
id: "json",
|
|
@@ -305476,7 +305726,7 @@ const getJavaScriptWorker = () => {
|
|
|
305476
305726
|
return getMode().then((mode) => mode.getJavaScriptWorker());
|
|
305477
305727
|
};
|
|
305478
305728
|
function getMode() {
|
|
305479
|
-
return __vitePreload(() => import("./tsMode-
|
|
305729
|
+
return __vitePreload(() => import("./tsMode-P6prXeLi.js"), true ? [] : void 0, import.meta.url);
|
|
305480
305730
|
}
|
|
305481
305731
|
languages.onLanguage("typescript", () => {
|
|
305482
305732
|
return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));
|
|
@@ -305671,49 +305921,49 @@ registerLanguage({
|
|
|
305671
305921
|
extensions: [".ftl", ".ftlh", ".ftlx"],
|
|
305672
305922
|
aliases: ["FreeMarker2", "Apache FreeMarker2"],
|
|
305673
305923
|
loader: () => {
|
|
305674
|
-
return __vitePreload(() => import("./freemarker2-
|
|
305924
|
+
return __vitePreload(() => import("./freemarker2-plN48J_D.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationDollar);
|
|
305675
305925
|
}
|
|
305676
305926
|
});
|
|
305677
305927
|
registerLanguage({
|
|
305678
305928
|
id: "freemarker2.tag-angle.interpolation-dollar",
|
|
305679
305929
|
aliases: ["FreeMarker2 (Angle/Dollar)", "Apache FreeMarker2 (Angle/Dollar)"],
|
|
305680
305930
|
loader: () => {
|
|
305681
|
-
return __vitePreload(() => import("./freemarker2-
|
|
305931
|
+
return __vitePreload(() => import("./freemarker2-plN48J_D.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAngleInterpolationDollar);
|
|
305682
305932
|
}
|
|
305683
305933
|
});
|
|
305684
305934
|
registerLanguage({
|
|
305685
305935
|
id: "freemarker2.tag-bracket.interpolation-dollar",
|
|
305686
305936
|
aliases: ["FreeMarker2 (Bracket/Dollar)", "Apache FreeMarker2 (Bracket/Dollar)"],
|
|
305687
305937
|
loader: () => {
|
|
305688
|
-
return __vitePreload(() => import("./freemarker2-
|
|
305938
|
+
return __vitePreload(() => import("./freemarker2-plN48J_D.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagBracketInterpolationDollar);
|
|
305689
305939
|
}
|
|
305690
305940
|
});
|
|
305691
305941
|
registerLanguage({
|
|
305692
305942
|
id: "freemarker2.tag-angle.interpolation-bracket",
|
|
305693
305943
|
aliases: ["FreeMarker2 (Angle/Bracket)", "Apache FreeMarker2 (Angle/Bracket)"],
|
|
305694
305944
|
loader: () => {
|
|
305695
|
-
return __vitePreload(() => import("./freemarker2-
|
|
305945
|
+
return __vitePreload(() => import("./freemarker2-plN48J_D.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAngleInterpolationBracket);
|
|
305696
305946
|
}
|
|
305697
305947
|
});
|
|
305698
305948
|
registerLanguage({
|
|
305699
305949
|
id: "freemarker2.tag-bracket.interpolation-bracket",
|
|
305700
305950
|
aliases: ["FreeMarker2 (Bracket/Bracket)", "Apache FreeMarker2 (Bracket/Bracket)"],
|
|
305701
305951
|
loader: () => {
|
|
305702
|
-
return __vitePreload(() => import("./freemarker2-
|
|
305952
|
+
return __vitePreload(() => import("./freemarker2-plN48J_D.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagBracketInterpolationBracket);
|
|
305703
305953
|
}
|
|
305704
305954
|
});
|
|
305705
305955
|
registerLanguage({
|
|
305706
305956
|
id: "freemarker2.tag-auto.interpolation-dollar",
|
|
305707
305957
|
aliases: ["FreeMarker2 (Auto/Dollar)", "Apache FreeMarker2 (Auto/Dollar)"],
|
|
305708
305958
|
loader: () => {
|
|
305709
|
-
return __vitePreload(() => import("./freemarker2-
|
|
305959
|
+
return __vitePreload(() => import("./freemarker2-plN48J_D.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationDollar);
|
|
305710
305960
|
}
|
|
305711
305961
|
});
|
|
305712
305962
|
registerLanguage({
|
|
305713
305963
|
id: "freemarker2.tag-auto.interpolation-bracket",
|
|
305714
305964
|
aliases: ["FreeMarker2 (Auto/Bracket)", "Apache FreeMarker2 (Auto/Bracket)"],
|
|
305715
305965
|
loader: () => {
|
|
305716
|
-
return __vitePreload(() => import("./freemarker2-
|
|
305966
|
+
return __vitePreload(() => import("./freemarker2-plN48J_D.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationBracket);
|
|
305717
305967
|
}
|
|
305718
305968
|
});
|
|
305719
305969
|
registerLanguage({
|
|
@@ -305734,7 +305984,7 @@ registerLanguage({
|
|
|
305734
305984
|
extensions: [".handlebars", ".hbs"],
|
|
305735
305985
|
aliases: ["Handlebars", "handlebars", "hbs"],
|
|
305736
305986
|
mimetypes: ["text/x-handlebars-template"],
|
|
305737
|
-
loader: () => __vitePreload(() => import("./handlebars-
|
|
305987
|
+
loader: () => __vitePreload(() => import("./handlebars-DkGSdJeE.js"), true ? [] : void 0, import.meta.url)
|
|
305738
305988
|
});
|
|
305739
305989
|
registerLanguage({
|
|
305740
305990
|
id: "hcl",
|
|
@@ -305747,7 +305997,7 @@ registerLanguage({
|
|
|
305747
305997
|
extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
|
|
305748
305998
|
aliases: ["HTML", "htm", "html", "xhtml"],
|
|
305749
305999
|
mimetypes: ["text/html", "text/x-jshtm", "text/template", "text/ng-template"],
|
|
305750
|
-
loader: () => __vitePreload(() => import("./html-
|
|
306000
|
+
loader: () => __vitePreload(() => import("./html-GfH6N1Gv.js"), true ? [] : void 0, import.meta.url)
|
|
305751
306001
|
});
|
|
305752
306002
|
registerLanguage({
|
|
305753
306003
|
id: "ini",
|
|
@@ -305770,7 +306020,7 @@ registerLanguage({
|
|
|
305770
306020
|
filenames: ["jakefile"],
|
|
305771
306021
|
aliases: ["JavaScript", "javascript", "js"],
|
|
305772
306022
|
mimetypes: ["text/javascript"],
|
|
305773
|
-
loader: () => __vitePreload(() => import("./javascript-
|
|
306023
|
+
loader: () => __vitePreload(() => import("./javascript-PIyGYu6r.js"), true ? __vite__mapDeps([4,5]) : void 0, import.meta.url)
|
|
305774
306024
|
});
|
|
305775
306025
|
registerLanguage({
|
|
305776
306026
|
id: "julia",
|
|
@@ -305809,7 +306059,7 @@ registerLanguage({
|
|
|
305809
306059
|
extensions: [".liquid", ".html.liquid"],
|
|
305810
306060
|
aliases: ["Liquid", "liquid"],
|
|
305811
306061
|
mimetypes: ["application/liquid"],
|
|
305812
|
-
loader: () => __vitePreload(() => import("./liquid-
|
|
306062
|
+
loader: () => __vitePreload(() => import("./liquid-DFsQCm0l.js"), true ? [] : void 0, import.meta.url)
|
|
305813
306063
|
});
|
|
305814
306064
|
registerLanguage({
|
|
305815
306065
|
id: "m3",
|
|
@@ -305827,7 +306077,7 @@ registerLanguage({
|
|
|
305827
306077
|
id: "mdx",
|
|
305828
306078
|
extensions: [".mdx"],
|
|
305829
306079
|
aliases: ["MDX", "mdx"],
|
|
305830
|
-
loader: () => __vitePreload(() => import("./mdx-
|
|
306080
|
+
loader: () => __vitePreload(() => import("./mdx-pETBiXt-.js"), true ? [] : void 0, import.meta.url)
|
|
305831
306081
|
});
|
|
305832
306082
|
registerLanguage({
|
|
305833
306083
|
id: "mips",
|
|
@@ -305926,7 +306176,7 @@ registerLanguage({
|
|
|
305926
306176
|
extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
|
|
305927
306177
|
aliases: ["Python", "py"],
|
|
305928
306178
|
firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
|
|
305929
|
-
loader: () => __vitePreload(() => import("./python-
|
|
306179
|
+
loader: () => __vitePreload(() => import("./python-C-ndJWZ6.js"), true ? [] : void 0, import.meta.url)
|
|
305930
306180
|
});
|
|
305931
306181
|
registerLanguage({
|
|
305932
306182
|
id: "qsharp",
|
|
@@ -305945,7 +306195,7 @@ registerLanguage({
|
|
|
305945
306195
|
extensions: [".cshtml"],
|
|
305946
306196
|
aliases: ["Razor", "razor"],
|
|
305947
306197
|
mimetypes: ["text/x-cshtml"],
|
|
305948
|
-
loader: () => __vitePreload(() => import("./razor-
|
|
306198
|
+
loader: () => __vitePreload(() => import("./razor-ccgYQ7JO.js"), true ? [] : void 0, import.meta.url)
|
|
305949
306199
|
});
|
|
305950
306200
|
registerLanguage({
|
|
305951
306201
|
id: "redis",
|
|
@@ -306078,7 +306328,7 @@ registerLanguage({
|
|
|
306078
306328
|
aliases: ["TypeScript", "ts", "typescript"],
|
|
306079
306329
|
mimetypes: ["text/typescript"],
|
|
306080
306330
|
loader: () => {
|
|
306081
|
-
return __vitePreload(() => import("./typescript-
|
|
306331
|
+
return __vitePreload(() => import("./typescript-D2Zozwub.js"), true ? [] : void 0, import.meta.url);
|
|
306082
306332
|
}
|
|
306083
306333
|
});
|
|
306084
306334
|
registerLanguage({
|
|
@@ -306123,14 +306373,14 @@ registerLanguage({
|
|
|
306123
306373
|
firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
|
|
306124
306374
|
aliases: ["XML", "xml"],
|
|
306125
306375
|
mimetypes: ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"],
|
|
306126
|
-
loader: () => __vitePreload(() => import("./xml-
|
|
306376
|
+
loader: () => __vitePreload(() => import("./xml-L2644zxV.js"), true ? [] : void 0, import.meta.url)
|
|
306127
306377
|
});
|
|
306128
306378
|
registerLanguage({
|
|
306129
306379
|
id: "yaml",
|
|
306130
306380
|
extensions: [".yaml", ".yml"],
|
|
306131
306381
|
aliases: ["YAML", "yaml", "YML", "yml"],
|
|
306132
306382
|
mimetypes: ["application/x-yaml", "text/x-yaml"],
|
|
306133
|
-
loader: () => __vitePreload(() => import("./yaml-
|
|
306383
|
+
loader: () => __vitePreload(() => import("./yaml-5rwJYQiz.js"), true ? [] : void 0, import.meta.url)
|
|
306134
306384
|
});
|
|
306135
306385
|
var __defProp = Object.defineProperty;
|
|
306136
306386
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|