app-ai-solution-exp 0.1.2 → 0.1.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.
Files changed (20) hide show
  1. package/out/main/index.js +152 -26
  2. package/out/renderer/assets/{cssMode-BlKZF8mS.js → cssMode-C5Tokc-n.js} +3 -3
  3. package/out/renderer/assets/{freemarker2-BTb0QKKy.js → freemarker2-C0lGxada.js} +1 -1
  4. package/out/renderer/assets/{handlebars-DKVnkZoO.js → handlebars-BV0fuaap.js} +1 -1
  5. package/out/renderer/assets/{html-DSHBWNSF.js → html-BxWLadBj.js} +1 -1
  6. package/out/renderer/assets/{htmlMode-hdSFcfq-.js → htmlMode-zfCYeC_B.js} +3 -3
  7. package/out/renderer/assets/{index-ByP1RhpK.js → index-XVbIxDHD.js} +35 -33
  8. package/out/renderer/assets/{javascript-Ae6t5gfn.js → javascript-B52-QZ4O.js} +2 -2
  9. package/out/renderer/assets/{jsonMode-B3dQSNhP.js → jsonMode-BPd43hxT.js} +3 -3
  10. package/out/renderer/assets/{liquid-Zgyb8DZ5.js → liquid-CONmGJuq.js} +1 -1
  11. package/out/renderer/assets/{lspLanguageFeatures-CkDn9c2y.js → lspLanguageFeatures-B3m6lv2z.js} +1 -1
  12. package/out/renderer/assets/{mdx-C8e8DFOf.js → mdx-B6dMt7rD.js} +1 -1
  13. package/out/renderer/assets/{python-8eSQckTG.js → python-leFKgl38.js} +1 -1
  14. package/out/renderer/assets/{razor-eAkN4Qfv.js → razor-Cr1NgQWt.js} +1 -1
  15. package/out/renderer/assets/{tsMode-D7ET908H.js → tsMode-DzuaSEz_.js} +1 -1
  16. package/out/renderer/assets/{typescript-BhqUlrW4.js → typescript-PM9ffZEf.js} +1 -1
  17. package/out/renderer/assets/{xml-Bg3Ctug6.js → xml-RxPUXY79.js} +1 -1
  18. package/out/renderer/assets/{yaml-C9aCL4uU.js → yaml-COW97BXG.js} +1 -1
  19. package/out/renderer/index.html +1 -1
  20. package/package.json +2 -2
package/out/main/index.js CHANGED
@@ -789,7 +789,7 @@ function formatTime(timeStr) {
789
789
  function formatResetLabel(raw) {
790
790
  const stripped = raw.replace(/\(.*?\)/g, "").trim();
791
791
  const weekdays = ["dom.", "seg.", "ter.", "qua.", "qui.", "sex.", "sáb."];
792
- const slashMatch = /rese[a-z]*\s*(\d+)\/(\d+),\s*(\S+)/i.exec(stripped);
792
+ const slashMatch = /rese[a-z]{0,2}\s*(\d+)\/(\d+),\s*(\S+)/i.exec(stripped);
793
793
  if (slashMatch) {
794
794
  const part1 = parseInt(slashMatch[1], 10);
795
795
  const part2 = parseInt(slashMatch[2], 10);
@@ -807,45 +807,56 @@ function formatResetLabel(raw) {
807
807
  }
808
808
  const time = formatTime(slashMatch[3]);
809
809
  if (monthIndex >= 0 && monthIndex <= 11) {
810
- const date = /* @__PURE__ */ new Date();
811
- const currentYear = date.getFullYear();
812
- date.setFullYear(currentYear, monthIndex, day);
810
+ const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
811
+ const date = new Date(currentYear, monthIndex, day, 12, 0, 0);
813
812
  if (date.getTime() < Date.now() - 30 * 24 * 60 * 60 * 1e3) {
814
813
  date.setFullYear(currentYear + 1);
815
814
  }
816
815
  return `Reinicia ${weekdays[date.getDay()]}, ${time}`;
817
816
  }
818
817
  }
819
- const dateMatch = /rese[a-z]*\s*([a-z0-9]+)\s*(\d+),\s*(\S+)/i.exec(stripped);
820
- if (dateMatch) {
821
- const monthStr = dateMatch[1].substring(0, 3).toLowerCase();
822
- const isNumericMonth = !isNaN(parseInt(monthStr, 10));
823
- let monthIndex = -1;
824
- if (isNumericMonth) {
825
- monthIndex = parseInt(monthStr, 10) - 1;
826
- } else {
827
- monthIndex = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"].indexOf(monthStr);
828
- if (monthIndex === -1) {
829
- monthIndex = ["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"].indexOf(monthStr);
830
- }
818
+ const textDateMatch = /rese[a-z]{0,2}\s*([a-z]{3,})\s*(\d+),\s*(\S+)/i.exec(stripped);
819
+ if (textDateMatch) {
820
+ const monthStr = textDateMatch[1].substring(0, 3).toLowerCase();
821
+ let monthIndex = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"].indexOf(monthStr);
822
+ if (monthIndex === -1) {
823
+ monthIndex = ["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"].indexOf(monthStr);
831
824
  }
832
- const day = parseInt(dateMatch[2], 10);
833
- const time = formatTime(dateMatch[3]);
825
+ const day = parseInt(textDateMatch[2], 10);
826
+ const time = formatTime(textDateMatch[3]);
834
827
  if (monthIndex >= 0 && monthIndex <= 11) {
835
- const date = /* @__PURE__ */ new Date();
836
- const currentYear = date.getFullYear();
837
- date.setFullYear(currentYear, monthIndex, day);
828
+ const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
829
+ const date = new Date(currentYear, monthIndex, day, 12, 0, 0);
838
830
  if (date.getTime() < Date.now() - 30 * 24 * 60 * 60 * 1e3) {
839
831
  date.setFullYear(currentYear + 1);
840
832
  }
841
833
  return `Reinicia ${weekdays[date.getDay()]}, ${time}`;
842
834
  }
843
- const monthFallback = MONTH_MAP[dateMatch[1]] ?? dateMatch[1].toLowerCase();
835
+ const monthFallback = MONTH_MAP[textDateMatch[1]] ?? textDateMatch[1].toLowerCase();
844
836
  return `Reinicia em ${day}/${monthFallback} às ${time}`;
845
837
  }
846
- const timeMatch = /rese[a-z]*\s*(\S+)/i.exec(stripped);
838
+ const numDateMatch = /rese[a-z]{0,2}\s+(\d{1,2})\s+(\d{1,2}),\s*(\S+)/i.exec(stripped);
839
+ if (numDateMatch) {
840
+ const monthIndex = parseInt(numDateMatch[1], 10) - 1;
841
+ const day = parseInt(numDateMatch[2], 10);
842
+ const time = formatTime(numDateMatch[3]);
843
+ if (monthIndex >= 0 && monthIndex <= 11) {
844
+ const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
845
+ const date = new Date(currentYear, monthIndex, day, 12, 0, 0);
846
+ if (date.getTime() < Date.now() - 30 * 24 * 60 * 60 * 1e3) {
847
+ date.setFullYear(currentYear + 1);
848
+ }
849
+ return `Reinicia ${weekdays[date.getDay()]}, ${time}`;
850
+ }
851
+ }
852
+ const timeMatch = /rese[a-z]{0,2}\s*(\S+)/i.exec(stripped);
847
853
  if (timeMatch) {
848
- return `Reinicia ${weekdays[(/* @__PURE__ */ new Date()).getDay()]}, ${formatTime(timeMatch[1])}`;
854
+ const time = formatTime(timeMatch[1]);
855
+ const now = /* @__PURE__ */ new Date();
856
+ const [resetH, resetM] = time.split(":").map(Number);
857
+ const resetToday = new Date(now.getFullYear(), now.getMonth(), now.getDate(), resetH, resetM);
858
+ const targetDate = resetToday.getTime() > now.getTime() ? resetToday : new Date(resetToday.getTime() + 24 * 60 * 60 * 1e3);
859
+ return `Reinicia ${weekdays[targetDate.getDay()]}, ${time}`;
849
860
  }
850
861
  return raw;
851
862
  }
@@ -1418,14 +1429,127 @@ function startSession(payload) {
1418
1429
  contextPercent: 0,
1419
1430
  status: "connecting"
1420
1431
  };
1432
+ const ANSI_RE = /\x1B[@-_][0-?]*[ -/]*[@-~]/g;
1433
+ const MAX_TOKENS = 2e5;
1434
+ const CHARS_PER_TOKEN = 3.5;
1435
+ const CONTENT_RATIO = 0.5;
1436
+ let outputCharCount = 0;
1437
+ let greetingPhase = true;
1438
+ let exactContextReceived = false;
1439
+ let lastEstimateUpdate = 0;
1440
+ setTimeout(() => {
1441
+ greetingPhase = false;
1442
+ }, 5e3);
1443
+ let lastOutputTime = Date.now();
1444
+ let contextFetchActive = false;
1445
+ let contextFetchBuffer = "";
1446
+ const contextCheckInterval = setInterval(() => {
1447
+ if (contextFetchActive) return;
1448
+ const entry = sessions.get(sessionId);
1449
+ if (!entry || entry.session.status === "ended") {
1450
+ clearInterval(contextCheckInterval);
1451
+ return;
1452
+ }
1453
+ const now = Date.now();
1454
+ const idleInput = now - (entry.lastInputTime ?? now);
1455
+ const idleOutput = now - lastOutputTime;
1456
+ const isIdle = idleInput > 15e3 && idleOutput > 1e4;
1457
+ if (!isIdle) return;
1458
+ contextFetchActive = true;
1459
+ contextFetchBuffer = "";
1460
+ try {
1461
+ ptyProcess.write("/context");
1462
+ } catch {
1463
+ }
1464
+ setTimeout(() => {
1465
+ try {
1466
+ ptyProcess.write("\r");
1467
+ } catch {
1468
+ }
1469
+ }, 300);
1470
+ setTimeout(() => {
1471
+ try {
1472
+ ptyProcess.write("\x1B");
1473
+ } catch {
1474
+ }
1475
+ setTimeout(() => {
1476
+ contextFetchActive = false;
1477
+ const clean = contextFetchBuffer.replace(ANSI_RE, "");
1478
+ let percent = -1;
1479
+ const p1 = /(\d+)%\s+of\s+context\s+window/i.exec(clean);
1480
+ if (p1) percent = parseInt(p1[1], 10);
1481
+ if (percent < 0) {
1482
+ const p2 = /(\d+)[kKmM]?\s*\/\s*(\d+)[kKmM]?\s+tokens\s*\((\d+)%?\)/i.exec(clean);
1483
+ if (p2) percent = parseInt(p2[3], 10);
1484
+ }
1485
+ if (percent < 0) {
1486
+ const p3 = /context\s+window[:\s]+(\d+)\s*\/\s*(\d+)\s*tokens/i.exec(clean);
1487
+ if (p3) {
1488
+ const used = parseInt(p3[1], 10);
1489
+ const total = parseInt(p3[2], 10);
1490
+ if (total > 0) percent = Math.round(used / total * 100);
1491
+ }
1492
+ }
1493
+ if (percent < 0) {
1494
+ const p4 = /(\d{1,3})%/.exec(clean);
1495
+ if (p4 && (clean.toLowerCase().includes("token") || clean.toLowerCase().includes("context"))) {
1496
+ percent = parseInt(p4[1], 10);
1497
+ }
1498
+ }
1499
+ if (percent < 0) {
1500
+ const p5 = /(\d+)\s*[kK]\s*\/\s*(\d+)\s*[kK]\s+tokens/i.exec(clean);
1501
+ if (p5) {
1502
+ const used = parseInt(p5[1], 10);
1503
+ const total = parseInt(p5[2], 10);
1504
+ if (total > 0) percent = Math.round(used / total * 100);
1505
+ }
1506
+ }
1507
+ if (percent >= 0) {
1508
+ exactContextReceived = true;
1509
+ const p = Math.min(100, Math.max(0, percent));
1510
+ updateContextPercent(sessionId, p);
1511
+ const win = getMainWindow();
1512
+ if (win) {
1513
+ win.webContents.send("monitor:contextUsage", { sessionId, percent: p });
1514
+ }
1515
+ }
1516
+ contextFetchBuffer = "";
1517
+ }, 500);
1518
+ }, 2500);
1519
+ }, 6e4);
1421
1520
  ptyProcess.onData((data) => {
1422
1521
  const win = getMainWindow();
1522
+ lastOutputTime = Date.now();
1423
1523
  if (win) {
1424
1524
  win.webContents.send("terminal:output", { sessionId, data });
1425
- parseOutput(data, sessionId, win, updateContextPercent);
1525
+ parseOutput(data, sessionId, win, (sid, pct) => {
1526
+ exactContextReceived = true;
1527
+ updateContextPercent(sid, pct);
1528
+ });
1529
+ }
1530
+ if (contextFetchActive) {
1531
+ contextFetchBuffer += data;
1532
+ }
1533
+ if (greetingPhase || exactContextReceived) return;
1534
+ const stripped = data.replace(ANSI_RE, "");
1535
+ if (stripped.length > 5) {
1536
+ outputCharCount += stripped.length;
1537
+ }
1538
+ const now = Date.now();
1539
+ if (now - lastEstimateUpdate > 3e3 && outputCharCount > 100) {
1540
+ lastEstimateUpdate = now;
1541
+ const entry = sessions.get(sessionId);
1542
+ const totalChars = (outputCharCount + (entry?.inputCharCount ?? 0)) * CONTENT_RATIO;
1543
+ const estimatedTokens = Math.round(totalChars / CHARS_PER_TOKEN);
1544
+ const percent = Math.min(99, Math.round(estimatedTokens / MAX_TOKENS * 100));
1545
+ updateContextPercent(sessionId, percent);
1546
+ if (win) {
1547
+ win.webContents.send("monitor:contextUsage", { sessionId, percent });
1548
+ }
1426
1549
  }
1427
1550
  });
1428
1551
  ptyProcess.onExit(() => {
1552
+ clearInterval(contextCheckInterval);
1429
1553
  const entry = sessions.get(sessionId);
1430
1554
  if (entry) {
1431
1555
  entry.session.status = "ended";
@@ -1435,7 +1559,7 @@ function startSession(payload) {
1435
1559
  win?.webContents.send("session:ended", { sessionId });
1436
1560
  });
1437
1561
  session.status = "active";
1438
- sessions.set(sessionId, { session, pty: ptyProcess });
1562
+ sessions.set(sessionId, { session, pty: ptyProcess, inputCharCount: 0, lastInputTime: Date.now() });
1439
1563
  return session;
1440
1564
  }
1441
1565
  function killSession(sessionId) {
@@ -1455,6 +1579,8 @@ function writeToSession(sessionId, data) {
1455
1579
  const entry = sessions.get(sessionId);
1456
1580
  if (!entry) return false;
1457
1581
  entry.pty.write(data);
1582
+ entry.inputCharCount += data.length;
1583
+ entry.lastInputTime = Date.now();
1458
1584
  return true;
1459
1585
  }
1460
1586
  function resizeSession(sessionId, cols, rows) {
@@ -1,6 +1,6 @@
1
- import { c as createWebWorker, l as languages } from "./index-ByP1RhpK.js";
2
- import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-CkDn9c2y.js";
3
- import { h, i, j, t, k } from "./lspLanguageFeatures-CkDn9c2y.js";
1
+ import { c as createWebWorker, l as languages } from "./index-XVbIxDHD.js";
2
+ import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-B3m6lv2z.js";
3
+ import { h, i, j, t, k } from "./lspLanguageFeatures-B3m6lv2z.js";
4
4
  const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
5
5
  class WorkerManager {
6
6
  constructor(defaults) {
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "assign",
4
4
  "flush",
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,6 +1,6 @@
1
- import { c as createWebWorker, l as languages } from "./index-ByP1RhpK.js";
2
- import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-CkDn9c2y.js";
3
- import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-CkDn9c2y.js";
1
+ import { c as createWebWorker, l as languages } from "./index-XVbIxDHD.js";
2
+ import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-B3m6lv2z.js";
3
+ import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-B3m6lv2z.js";
4
4
  const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
5
5
  class WorkerManager {
6
6
  constructor(defaults) {
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-BlKZF8mS.js","./lspLanguageFeatures-CkDn9c2y.js","./htmlMode-hdSFcfq-.js","./jsonMode-B3dQSNhP.js","./javascript-Ae6t5gfn.js","./typescript-BhqUlrW4.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-C5Tokc-n.js","./lspLanguageFeatures-B3m6lv2z.js","./htmlMode-zfCYeC_B.js","./jsonMode-BPd43hxT.js","./javascript-B52-QZ4O.js","./typescript-PM9ffZEf.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];
@@ -54942,11 +54942,24 @@ function Terminal({ sessionId, className: className2 }) {
54942
54942
  term.loadAddon(webLinksAddon);
54943
54943
  term.open(containerRef.current);
54944
54944
  fitAddon.fit();
54945
+ term.focus();
54945
54946
  termRef.current = term;
54946
54947
  fitAddonRef.current = fitAddon;
54948
+ let firstOutput = true;
54947
54949
  const unsubOutput = ipc.terminal.onOutput(({ sessionId: sid, data }) => {
54948
54950
  if (sid === sessionId) {
54949
54951
  term.write(data);
54952
+ if (firstOutput) {
54953
+ firstOutput = false;
54954
+ requestAnimationFrame(() => {
54955
+ try {
54956
+ fitAddon.fit();
54957
+ ipc.terminal.resize(sessionId, term.cols, term.rows);
54958
+ term.focus();
54959
+ } catch {
54960
+ }
54961
+ });
54962
+ }
54950
54963
  }
54951
54964
  });
54952
54965
  const disposeOnData = term.onData((data) => {
@@ -93960,7 +93973,6 @@ function MarkdownEditor({
93960
93973
  setSaveStatus("idle");
93961
93974
  }, [initialContent]);
93962
93975
  const lineCount = content2 === "" ? 0 : content2.split("\n").length;
93963
- const overLimit = lineCount > 200;
93964
93976
  const canDiscard = content2 !== originalContentRef.current;
93965
93977
  reactExports.useEffect(() => {
93966
93978
  if (!hasPendingSave) return;
@@ -94152,16 +94164,6 @@ function MarkdownEditor({
94152
94164
  }
94153
94165
  )
94154
94166
  ] }) }),
94155
- overLimit && !diffMode && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-2 flex items-start gap-2 rounded-md border border-warning/30 bg-warning/10 px-3 py-2", children: [
94156
- /* @__PURE__ */ jsxRuntimeExports.jsx(TriangleAlert, { size: 14, className: "mt-0.5 shrink-0 text-warning", "aria-hidden": "true" }),
94157
- /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-xs text-muted-foreground", children: [
94158
- /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "font-medium text-warning", children: [
94159
- lineCount,
94160
- " linhas"
94161
- ] }),
94162
- " — acima do limite. Claude Code lê apenas as primeiras 200 linhas. Considere dividir o arquivo em tópicos separados."
94163
- ] })
94164
- ] }),
94165
94167
  /* @__PURE__ */ jsxRuntimeExports.jsx(AlertDialog, { open: discardConfirmOpen, onOpenChange: setDiscardConfirmOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(AlertDialogContent, { children: [
94166
94168
  /* @__PURE__ */ jsxRuntimeExports.jsxs(AlertDialogHeader, { children: [
94167
94169
  /* @__PURE__ */ jsxRuntimeExports.jsx(AlertDialogTitle, { children: "Descartar alterações?" }),
@@ -304900,7 +304902,7 @@ const lessDefaults = new LanguageServiceDefaultsImpl$3(
304900
304902
  modeConfigurationDefault$2
304901
304903
  );
304902
304904
  function getMode$3() {
304903
- return __vitePreload(() => import("./cssMode-BlKZF8mS.js"), true ? __vite__mapDeps([0,1]) : void 0, import.meta.url);
304905
+ return __vitePreload(() => import("./cssMode-C5Tokc-n.js"), true ? __vite__mapDeps([0,1]) : void 0, import.meta.url);
304904
304906
  }
304905
304907
  languages.onLanguage("less", () => {
304906
304908
  getMode$3().then((mode2) => mode2.setupMode(lessDefaults));
@@ -305005,7 +305007,7 @@ const razorLanguageService = registerHTMLLanguageService(
305005
305007
  );
305006
305008
  const razorDefaults = razorLanguageService.defaults;
305007
305009
  function getMode$2() {
305008
- return __vitePreload(() => import("./htmlMode-hdSFcfq-.js"), true ? __vite__mapDeps([2,1]) : void 0, import.meta.url);
305010
+ return __vitePreload(() => import("./htmlMode-zfCYeC_B.js"), true ? __vite__mapDeps([2,1]) : void 0, import.meta.url);
305009
305011
  }
305010
305012
  function registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {
305011
305013
  const defaults2 = new LanguageServiceDefaultsImpl$2(languageId, options, modeConfiguration);
@@ -305089,7 +305091,7 @@ const jsonDefaults = new LanguageServiceDefaultsImpl$1(
305089
305091
  );
305090
305092
  const getWorker$1 = () => getMode$1().then((mode2) => mode2.getWorker());
305091
305093
  function getMode$1() {
305092
- return __vitePreload(() => import("./jsonMode-B3dQSNhP.js"), true ? __vite__mapDeps([3,1]) : void 0, import.meta.url);
305094
+ return __vitePreload(() => import("./jsonMode-BPd43hxT.js"), true ? __vite__mapDeps([3,1]) : void 0, import.meta.url);
305093
305095
  }
305094
305096
  languages.register({
305095
305097
  id: "json",
@@ -305335,7 +305337,7 @@ const getJavaScriptWorker = () => {
305335
305337
  return getMode().then((mode) => mode.getJavaScriptWorker());
305336
305338
  };
305337
305339
  function getMode() {
305338
- return __vitePreload(() => import("./tsMode-D7ET908H.js"), true ? [] : void 0, import.meta.url);
305340
+ return __vitePreload(() => import("./tsMode-DzuaSEz_.js"), true ? [] : void 0, import.meta.url);
305339
305341
  }
305340
305342
  languages.onLanguage("typescript", () => {
305341
305343
  return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));
@@ -305530,49 +305532,49 @@ registerLanguage({
305530
305532
  extensions: [".ftl", ".ftlh", ".ftlx"],
305531
305533
  aliases: ["FreeMarker2", "Apache FreeMarker2"],
305532
305534
  loader: () => {
305533
- return __vitePreload(() => import("./freemarker2-BTb0QKKy.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationDollar);
305535
+ return __vitePreload(() => import("./freemarker2-C0lGxada.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationDollar);
305534
305536
  }
305535
305537
  });
305536
305538
  registerLanguage({
305537
305539
  id: "freemarker2.tag-angle.interpolation-dollar",
305538
305540
  aliases: ["FreeMarker2 (Angle/Dollar)", "Apache FreeMarker2 (Angle/Dollar)"],
305539
305541
  loader: () => {
305540
- return __vitePreload(() => import("./freemarker2-BTb0QKKy.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAngleInterpolationDollar);
305542
+ return __vitePreload(() => import("./freemarker2-C0lGxada.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAngleInterpolationDollar);
305541
305543
  }
305542
305544
  });
305543
305545
  registerLanguage({
305544
305546
  id: "freemarker2.tag-bracket.interpolation-dollar",
305545
305547
  aliases: ["FreeMarker2 (Bracket/Dollar)", "Apache FreeMarker2 (Bracket/Dollar)"],
305546
305548
  loader: () => {
305547
- return __vitePreload(() => import("./freemarker2-BTb0QKKy.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagBracketInterpolationDollar);
305549
+ return __vitePreload(() => import("./freemarker2-C0lGxada.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagBracketInterpolationDollar);
305548
305550
  }
305549
305551
  });
305550
305552
  registerLanguage({
305551
305553
  id: "freemarker2.tag-angle.interpolation-bracket",
305552
305554
  aliases: ["FreeMarker2 (Angle/Bracket)", "Apache FreeMarker2 (Angle/Bracket)"],
305553
305555
  loader: () => {
305554
- return __vitePreload(() => import("./freemarker2-BTb0QKKy.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAngleInterpolationBracket);
305556
+ return __vitePreload(() => import("./freemarker2-C0lGxada.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAngleInterpolationBracket);
305555
305557
  }
305556
305558
  });
305557
305559
  registerLanguage({
305558
305560
  id: "freemarker2.tag-bracket.interpolation-bracket",
305559
305561
  aliases: ["FreeMarker2 (Bracket/Bracket)", "Apache FreeMarker2 (Bracket/Bracket)"],
305560
305562
  loader: () => {
305561
- return __vitePreload(() => import("./freemarker2-BTb0QKKy.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagBracketInterpolationBracket);
305563
+ return __vitePreload(() => import("./freemarker2-C0lGxada.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagBracketInterpolationBracket);
305562
305564
  }
305563
305565
  });
305564
305566
  registerLanguage({
305565
305567
  id: "freemarker2.tag-auto.interpolation-dollar",
305566
305568
  aliases: ["FreeMarker2 (Auto/Dollar)", "Apache FreeMarker2 (Auto/Dollar)"],
305567
305569
  loader: () => {
305568
- return __vitePreload(() => import("./freemarker2-BTb0QKKy.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationDollar);
305570
+ return __vitePreload(() => import("./freemarker2-C0lGxada.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationDollar);
305569
305571
  }
305570
305572
  });
305571
305573
  registerLanguage({
305572
305574
  id: "freemarker2.tag-auto.interpolation-bracket",
305573
305575
  aliases: ["FreeMarker2 (Auto/Bracket)", "Apache FreeMarker2 (Auto/Bracket)"],
305574
305576
  loader: () => {
305575
- return __vitePreload(() => import("./freemarker2-BTb0QKKy.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationBracket);
305577
+ return __vitePreload(() => import("./freemarker2-C0lGxada.js"), true ? [] : void 0, import.meta.url).then((m2) => m2.TagAutoInterpolationBracket);
305576
305578
  }
305577
305579
  });
305578
305580
  registerLanguage({
@@ -305593,7 +305595,7 @@ registerLanguage({
305593
305595
  extensions: [".handlebars", ".hbs"],
305594
305596
  aliases: ["Handlebars", "handlebars", "hbs"],
305595
305597
  mimetypes: ["text/x-handlebars-template"],
305596
- loader: () => __vitePreload(() => import("./handlebars-DKVnkZoO.js"), true ? [] : void 0, import.meta.url)
305598
+ loader: () => __vitePreload(() => import("./handlebars-BV0fuaap.js"), true ? [] : void 0, import.meta.url)
305597
305599
  });
305598
305600
  registerLanguage({
305599
305601
  id: "hcl",
@@ -305606,7 +305608,7 @@ registerLanguage({
305606
305608
  extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
305607
305609
  aliases: ["HTML", "htm", "html", "xhtml"],
305608
305610
  mimetypes: ["text/html", "text/x-jshtm", "text/template", "text/ng-template"],
305609
- loader: () => __vitePreload(() => import("./html-DSHBWNSF.js"), true ? [] : void 0, import.meta.url)
305611
+ loader: () => __vitePreload(() => import("./html-BxWLadBj.js"), true ? [] : void 0, import.meta.url)
305610
305612
  });
305611
305613
  registerLanguage({
305612
305614
  id: "ini",
@@ -305629,7 +305631,7 @@ registerLanguage({
305629
305631
  filenames: ["jakefile"],
305630
305632
  aliases: ["JavaScript", "javascript", "js"],
305631
305633
  mimetypes: ["text/javascript"],
305632
- loader: () => __vitePreload(() => import("./javascript-Ae6t5gfn.js"), true ? __vite__mapDeps([4,5]) : void 0, import.meta.url)
305634
+ loader: () => __vitePreload(() => import("./javascript-B52-QZ4O.js"), true ? __vite__mapDeps([4,5]) : void 0, import.meta.url)
305633
305635
  });
305634
305636
  registerLanguage({
305635
305637
  id: "julia",
@@ -305668,7 +305670,7 @@ registerLanguage({
305668
305670
  extensions: [".liquid", ".html.liquid"],
305669
305671
  aliases: ["Liquid", "liquid"],
305670
305672
  mimetypes: ["application/liquid"],
305671
- loader: () => __vitePreload(() => import("./liquid-Zgyb8DZ5.js"), true ? [] : void 0, import.meta.url)
305673
+ loader: () => __vitePreload(() => import("./liquid-CONmGJuq.js"), true ? [] : void 0, import.meta.url)
305672
305674
  });
305673
305675
  registerLanguage({
305674
305676
  id: "m3",
@@ -305686,7 +305688,7 @@ registerLanguage({
305686
305688
  id: "mdx",
305687
305689
  extensions: [".mdx"],
305688
305690
  aliases: ["MDX", "mdx"],
305689
- loader: () => __vitePreload(() => import("./mdx-C8e8DFOf.js"), true ? [] : void 0, import.meta.url)
305691
+ loader: () => __vitePreload(() => import("./mdx-B6dMt7rD.js"), true ? [] : void 0, import.meta.url)
305690
305692
  });
305691
305693
  registerLanguage({
305692
305694
  id: "mips",
@@ -305785,7 +305787,7 @@ registerLanguage({
305785
305787
  extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
305786
305788
  aliases: ["Python", "py"],
305787
305789
  firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
305788
- loader: () => __vitePreload(() => import("./python-8eSQckTG.js"), true ? [] : void 0, import.meta.url)
305790
+ loader: () => __vitePreload(() => import("./python-leFKgl38.js"), true ? [] : void 0, import.meta.url)
305789
305791
  });
305790
305792
  registerLanguage({
305791
305793
  id: "qsharp",
@@ -305804,7 +305806,7 @@ registerLanguage({
305804
305806
  extensions: [".cshtml"],
305805
305807
  aliases: ["Razor", "razor"],
305806
305808
  mimetypes: ["text/x-cshtml"],
305807
- loader: () => __vitePreload(() => import("./razor-eAkN4Qfv.js"), true ? [] : void 0, import.meta.url)
305809
+ loader: () => __vitePreload(() => import("./razor-Cr1NgQWt.js"), true ? [] : void 0, import.meta.url)
305808
305810
  });
305809
305811
  registerLanguage({
305810
305812
  id: "redis",
@@ -305937,7 +305939,7 @@ registerLanguage({
305937
305939
  aliases: ["TypeScript", "ts", "typescript"],
305938
305940
  mimetypes: ["text/typescript"],
305939
305941
  loader: () => {
305940
- return __vitePreload(() => import("./typescript-BhqUlrW4.js"), true ? [] : void 0, import.meta.url);
305942
+ return __vitePreload(() => import("./typescript-PM9ffZEf.js"), true ? [] : void 0, import.meta.url);
305941
305943
  }
305942
305944
  });
305943
305945
  registerLanguage({
@@ -305982,14 +305984,14 @@ registerLanguage({
305982
305984
  firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
305983
305985
  aliases: ["XML", "xml"],
305984
305986
  mimetypes: ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"],
305985
- loader: () => __vitePreload(() => import("./xml-Bg3Ctug6.js"), true ? [] : void 0, import.meta.url)
305987
+ loader: () => __vitePreload(() => import("./xml-RxPUXY79.js"), true ? [] : void 0, import.meta.url)
305986
305988
  });
305987
305989
  registerLanguage({
305988
305990
  id: "yaml",
305989
305991
  extensions: [".yaml", ".yml"],
305990
305992
  aliases: ["YAML", "yaml", "YML", "yml"],
305991
305993
  mimetypes: ["application/x-yaml", "text/x-yaml"],
305992
- loader: () => __vitePreload(() => import("./yaml-C9aCL4uU.js"), true ? [] : void 0, import.meta.url)
305994
+ loader: () => __vitePreload(() => import("./yaml-COW97BXG.js"), true ? [] : void 0, import.meta.url)
305993
305995
  });
305994
305996
  var __defProp = Object.defineProperty;
305995
305997
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -1,5 +1,5 @@
1
- import { conf as conf$1, language as language$1 } from "./typescript-BhqUlrW4.js";
2
- import "./index-ByP1RhpK.js";
1
+ import { conf as conf$1, language as language$1 } from "./typescript-PM9ffZEf.js";
2
+ import "./index-XVbIxDHD.js";
3
3
  const conf = conf$1;
4
4
  const language = {
5
5
  // Set defaultToken to invalid to see what you do not tokenize yet
@@ -1,6 +1,6 @@
1
- import { c as createWebWorker, l as languages, e as editor } from "./index-ByP1RhpK.js";
2
- import { f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter, H as HoverAdapter, b as DocumentSymbolAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, S as SelectionRangeAdapter, e as DiagnosticsAdapter } from "./lspLanguageFeatures-CkDn9c2y.js";
3
- import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-CkDn9c2y.js";
1
+ import { c as createWebWorker, l as languages, e as editor } from "./index-XVbIxDHD.js";
2
+ import { f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter, H as HoverAdapter, b as DocumentSymbolAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, S as SelectionRangeAdapter, e as DiagnosticsAdapter } from "./lspLanguageFeatures-B3m6lv2z.js";
3
+ import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-B3m6lv2z.js";
4
4
  const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
5
5
  class WorkerManager {
6
6
  constructor(defaults) {
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,4 +1,4 @@
1
- import { R as Range$1, l as languages, e as editor, U as Uri, M as MarkerSeverity } from "./index-ByP1RhpK.js";
1
+ import { R as Range$1, l as languages, e as editor, U as Uri, M as MarkerSeverity } from "./index-XVbIxDHD.js";
2
2
  var DocumentUri;
3
3
  (function(DocumentUri2) {
4
4
  function is(value) {
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const conf = {
3
3
  comments: {
4
4
  blockComment: ["{/*", "*/}"]
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const conf = {
3
3
  comments: {
4
4
  lineComment: "#",
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,4 +1,4 @@
1
- import { c as createWebWorker, e as editor, U as Uri, a as MarkerTag, M as MarkerSeverity, l as languages, t as typescriptDefaults, R as Range } from "./index-ByP1RhpK.js";
1
+ import { c as createWebWorker, e as editor, U as Uri, a as MarkerTag, M as MarkerSeverity, l as languages, t as typescriptDefaults, R as Range } from "./index-XVbIxDHD.js";
2
2
  class WorkerManager {
3
3
  constructor(_modeId, _defaults) {
4
4
  this._modeId = _modeId;
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const conf = {
3
3
  wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
4
4
  comments: {
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const conf = {
3
3
  comments: {
4
4
  blockComment: ["<!--", "-->"]
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-ByP1RhpK.js";
1
+ import { l as languages } from "./index-XVbIxDHD.js";
2
2
  const conf = {
3
3
  comments: {
4
4
  lineComment: "#"
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>AI Solution EXP</title>
7
- <script type="module" crossorigin src="./assets/index-ByP1RhpK.js"></script>
7
+ <script type="module" crossorigin src="./assets/index-XVbIxDHD.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="./assets/index-CgixHIqL.css">
9
9
  </head>
10
10
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "app-ai-solution-exp",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "",
5
5
  "main": "./out/main/index.js",
6
6
  "bin": {
@@ -107,4 +107,4 @@
107
107
  "vite": "^6.1.0",
108
108
  "vitest": "^3.0.6"
109
109
  }
110
- }
110
+ }