opencami 1.5.0 → 1.6.0

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 (118) hide show
  1. package/README.md +4 -1
  2. package/dist/client/assets/{CSPContext-EgWK8bIJ.js → CSPContext-Bq8j4nl9.js} +1 -1
  3. package/dist/client/assets/DirectionContext-BdX86BHP.js +1 -0
  4. package/dist/client/assets/_sessionKey-DsjnpErt.js +14 -0
  5. package/dist/client/assets/agents-DwxKcpP6.js +2 -0
  6. package/dist/client/assets/agents-screen-DwIY8hze.js +1 -0
  7. package/dist/client/assets/bots-CRlm-3-d.js +2 -0
  8. package/dist/client/assets/bots-screen-c78I920d.js +1 -0
  9. package/dist/client/assets/button-Dg7VFQQn.js +1 -0
  10. package/dist/client/assets/c-BIGW1oBm.js +1 -0
  11. package/dist/client/assets/composite-DBl8R3ae.js +1 -0
  12. package/dist/client/assets/{connect-w4lLOqiJ.js → connect-NYvOqiBJ.js} +1 -1
  13. package/dist/client/assets/core-BrHBc0Zp.js +12 -0
  14. package/dist/client/assets/cpp-B-lmv-kZ.js +1 -0
  15. package/dist/client/assets/csharp-K5feNrxe.js +1 -0
  16. package/dist/client/assets/css-DPfMkruS.js +1 -0
  17. package/dist/client/assets/diff-D97Zzqfu.js +1 -0
  18. package/dist/client/assets/dockerfile-BcOcwvcX.js +1 -0
  19. package/dist/client/assets/engine-javascript-PwbX1GN8.js +141 -0
  20. package/dist/client/assets/file-explorer-screen-BSMbs0vi.js +1 -0
  21. package/dist/client/assets/files-BJbMx0_w.js +2 -0
  22. package/dist/client/assets/go-Dn2_MT6a.js +1 -0
  23. package/dist/client/assets/graphql-ChdNCCLP.js +1 -0
  24. package/dist/client/assets/html-GMplVEZG.js +1 -0
  25. package/dist/client/assets/index-CMATW8VA.js +3 -0
  26. package/dist/client/assets/index-T4TOjvD0.js +1 -0
  27. package/dist/client/assets/{index-36G0WCxU.js → index-rOIRO-8E.js} +1 -1
  28. package/dist/client/assets/java-CylS5w8V.js +1 -0
  29. package/dist/client/assets/javascript-wDzz0qaB.js +1 -0
  30. package/dist/client/assets/json-Cp-IABpG.js +1 -0
  31. package/dist/client/assets/jsx-g9-lgVsj.js +1 -0
  32. package/dist/client/assets/keyboard-shortcuts-dialog-BTGWdJMl.js +1 -0
  33. package/dist/client/assets/kotlin-BdnUsdx6.js +1 -0
  34. package/dist/client/assets/{main-B3N0eQFg.js → main-B_dlfHME.js} +9 -9
  35. package/dist/client/assets/markdown-BVzT7z4x.js +87 -0
  36. package/dist/client/assets/markdown-Cvjx9yec.js +1 -0
  37. package/dist/client/assets/memory-S3Yws6a5.js +2 -0
  38. package/dist/client/assets/memory-screen-C-Z9o31m.js +1 -0
  39. package/dist/client/assets/menu-DHNgWk_8.js +1 -0
  40. package/dist/client/assets/{opencami-logo-DD0DPFRQ.js → opencami-logo-BQQETnJG.js} +1 -1
  41. package/dist/client/assets/owner-CpRnf1fI.js +1 -0
  42. package/dist/client/assets/php-CDn_0X-4.js +1 -0
  43. package/dist/client/assets/popupStateMapping-BRPDXnjv.js +1 -0
  44. package/dist/client/assets/proxy-BcUh9kMA.js +9 -0
  45. package/dist/client/assets/python-B6aJPvgy.js +1 -0
  46. package/dist/client/assets/react-irH8OzhB.js +1 -0
  47. package/dist/client/assets/regexp-CDVJQ6XC.js +1 -0
  48. package/dist/client/assets/ruby-FDmvQDUv.js +1 -0
  49. package/dist/client/assets/rust-B1yitclQ.js +1 -0
  50. package/dist/client/assets/search-dialog-B96zx_ng.js +1 -0
  51. package/dist/client/assets/session-export-dialog-DPuHnhgv.js +1 -0
  52. package/dist/client/assets/settings-dialog-DZcRCaPj.js +1 -0
  53. package/dist/client/assets/shell-DfDnw5Jg.js +1 -0
  54. package/dist/client/assets/skills-YZe3I63y.js +2 -0
  55. package/dist/client/assets/{skills-panel-BLUjzfjJ.js → skills-panel-WDUfIwnI.js} +2 -2
  56. package/dist/client/assets/sql-BLtJtn59.js +1 -0
  57. package/dist/client/assets/styles-Bwo-K6Y4.css +1 -0
  58. package/dist/client/assets/swift-Dg5xB15N.js +1 -0
  59. package/dist/client/assets/switch-DPocNFRG.js +1 -0
  60. package/dist/client/assets/tabs-B0cro1hL.js +1 -0
  61. package/dist/client/assets/toml-vGWfd6FD.js +1 -0
  62. package/dist/client/assets/tooltip-Dg9fy-vT.js +1 -0
  63. package/dist/client/assets/tsx-COt5Ahok.js +1 -0
  64. package/dist/client/assets/typescript-BPQ3VLAy.js +1 -0
  65. package/dist/client/assets/use-file-explorer-state-DzT0bksg.js +12 -0
  66. package/dist/client/assets/useButton-Cbl_9oFG.js +1 -0
  67. package/dist/client/assets/useCompositeItem-BDAzTxVe.js +1 -0
  68. package/dist/client/assets/{useControlled-BhUuiHAm.js → useControlled-Dscz_s4f.js} +1 -1
  69. package/dist/client/assets/{useMutation-CFmVaBag.js → useMutation-B1FlDsNN.js} +1 -1
  70. package/dist/client/assets/visuallyHidden-ONmQ-0U2.js +1 -0
  71. package/dist/client/assets/vitesse-dark-D0r3Knsf.js +1 -0
  72. package/dist/client/assets/vitesse-light-CVO1_9PV.js +1 -0
  73. package/dist/client/assets/xml-sdJ4AIDG.js +1 -0
  74. package/dist/client/assets/yaml-Buea-lGh.js +1 -0
  75. package/dist/server/assets/{_sessionKey-tRze5NLR.js → _sessionKey-B0ZlLAjH.js} +184 -575
  76. package/dist/server/assets/_tanstack-start-manifest_v-D5UVTs1o.js +4 -0
  77. package/dist/server/assets/{connect-d3AqjAqe.js → connect-CbgijWz4.js} +1 -34
  78. package/dist/server/assets/{file-explorer-screen-CVlFiAFu.js → file-explorer-screen-DH4UFK03.js} +3 -2
  79. package/dist/server/assets/{files-BIEcSPGp.js → files-DYdXlQDr.js} +1 -1
  80. package/dist/server/assets/{index-CRfLKh30.js → index-CiUjUD0t.js} +1 -1
  81. package/dist/server/assets/{index-CNIATlJ9.js → index-Dl2BOKP7.js} +94 -79
  82. package/dist/server/assets/{keyboard-shortcuts-dialog-CsNP85q8.js → keyboard-shortcuts-dialog-Cr6fOqHz.js} +1 -2
  83. package/dist/server/assets/markdown-BFE5y9YH.js +565 -0
  84. package/dist/server/assets/memory-BqZOoD7Q.js +11 -0
  85. package/dist/server/assets/memory-screen-BK5phS8K.js +235 -0
  86. package/dist/server/assets/menu-D90CDTi2.js +45 -0
  87. package/dist/server/assets/{router-rn7pJO_D.js → router-Uuagl6O7.js} +56 -46
  88. package/dist/server/assets/{search-dialog-Bz4Cu0KW.js → search-dialog-DZTS5SEi.js} +49 -83
  89. package/dist/server/assets/{session-export-dialog-CwclV0Aj.js → session-export-dialog-C53RRAah.js} +1 -2
  90. package/dist/server/assets/{settings-dialog-BBM7jCjE.js → settings-dialog-CSYDj2qm.js} +82 -56
  91. package/dist/server/assets/{use-file-explorer-state-Il1LlBAe.js → use-file-explorer-state-s7CS50ho.js} +0 -41
  92. package/dist/server/server.js +2 -2
  93. package/package.json +2 -1
  94. package/dist/client/assets/DirectionContext-DXtY05YF.js +0 -1
  95. package/dist/client/assets/_sessionKey-B89e7G3y.js +0 -100
  96. package/dist/client/assets/agents-screen-1BiEZ9od.js +0 -1
  97. package/dist/client/assets/agents-x54ocA9z.js +0 -2
  98. package/dist/client/assets/bots-screen-BNQciUeJ.js +0 -1
  99. package/dist/client/assets/bots-x86ZHG4b.js +0 -2
  100. package/dist/client/assets/button-nDcsaNPl.js +0 -1
  101. package/dist/client/assets/file-explorer-screen-CAsjd3w8.js +0 -1
  102. package/dist/client/assets/files-Bype5Mnb.js +0 -2
  103. package/dist/client/assets/index-BXkRE220.js +0 -153
  104. package/dist/client/assets/keyboard-shortcuts-dialog-BdCeXRjD.js +0 -1
  105. package/dist/client/assets/react-B16OrBeM.js +0 -1
  106. package/dist/client/assets/search-dialog-BjTPceEl.js +0 -1
  107. package/dist/client/assets/session-export-dialog-DtHKG2zW.js +0 -1
  108. package/dist/client/assets/settings-dialog-hiqdk_UD.js +0 -1
  109. package/dist/client/assets/skills-DhwyFq3y.js +0 -2
  110. package/dist/client/assets/styles-CHP4l6vZ.css +0 -1
  111. package/dist/client/assets/switch-J6wLIVu2.js +0 -1
  112. package/dist/client/assets/tabs-DvPgTz5I.js +0 -1
  113. package/dist/client/assets/tooltip-C14vdXHK.js +0 -1
  114. package/dist/client/assets/use-file-explorer-state-BnaJEqRP.js +0 -12
  115. package/dist/client/assets/useButton-Bnnac1eR.js +0 -1
  116. package/dist/client/assets/useCompositeItem-BgiEMKAt.js +0 -1
  117. package/dist/client/assets/visuallyHidden-DCCICp6T.js +0 -9
  118. package/dist/server/assets/_tanstack-start-manifest_v-CyfoMvUa.js +0 -4
@@ -0,0 +1,4 @@
1
+ const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "/home/runner/work/opencami/opencami/src/routes/__root.tsx", "children": ["/", "/agents", "/bots", "/connect", "/files", "/memory", "/new", "/skills", "/api/agents", "/api/cron", "/api/follow-ups", "/api/history", "/api/llm-features", "/api/models", "/api/paths", "/api/personas", "/api/ping", "/api/send", "/api/sessions", "/api/skills", "/api/stream", "/api/stt", "/api/tts", "/chat/$sessionKey", "/api/files/delete", "/api/files/download", "/api/files/info", "/api/files/list", "/api/files/mkdir", "/api/files/read", "/api/files/rename", "/api/files/save", "/api/files/upload"], "preloads": ["/assets/main-B_dlfHME.js"], "assets": [] }, "/": { "filePath": "/home/runner/work/opencami/opencami/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-rOIRO-8E.js"] }, "/agents": { "filePath": "/home/runner/work/opencami/opencami/src/routes/agents.tsx", "assets": [], "preloads": ["/assets/agents-DwxKcpP6.js"] }, "/bots": { "filePath": "/home/runner/work/opencami/opencami/src/routes/bots.tsx", "assets": [], "preloads": ["/assets/bots-CRlm-3-d.js"] }, "/connect": { "filePath": "/home/runner/work/opencami/opencami/src/routes/connect.tsx", "assets": [], "preloads": ["/assets/connect-NYvOqiBJ.js", "/assets/index-CMATW8VA.js", "/assets/button-Dg7VFQQn.js", "/assets/react-irH8OzhB.js"] }, "/files": { "filePath": "/home/runner/work/opencami/opencami/src/routes/files.tsx", "assets": [], "preloads": ["/assets/files-BJbMx0_w.js"] }, "/memory": { "filePath": "/home/runner/work/opencami/opencami/src/routes/memory.tsx", "assets": [], "preloads": ["/assets/memory-S3Yws6a5.js"] }, "/new": { "filePath": "/home/runner/work/opencami/opencami/src/routes/new.tsx", "assets": [], "preloads": ["/assets/new-DLlBm66g.js"] }, "/skills": { "filePath": "/home/runner/work/opencami/opencami/src/routes/skills.tsx", "assets": [], "preloads": ["/assets/skills-YZe3I63y.js"] }, "/api/agents": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/agents.ts" }, "/api/cron": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/cron.ts" }, "/api/follow-ups": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/follow-ups.ts" }, "/api/history": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/history.ts" }, "/api/llm-features": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/llm-features.ts" }, "/api/models": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/models.ts" }, "/api/paths": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/paths.ts" }, "/api/personas": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/personas.ts" }, "/api/ping": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/ping.ts" }, "/api/send": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/send.ts" }, "/api/sessions": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/sessions.ts" }, "/api/skills": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/skills.ts" }, "/api/stream": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/stream.ts" }, "/api/stt": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/stt.ts" }, "/api/tts": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/tts.ts" }, "/chat/$sessionKey": { "filePath": "/home/runner/work/opencami/opencami/src/routes/chat/$sessionKey.tsx", "assets": [], "preloads": ["/assets/_sessionKey-DsjnpErt.js", "/assets/visuallyHidden-ONmQ-0U2.js", "/assets/tooltip-Dg9fy-vT.js", "/assets/button-Dg7VFQQn.js", "/assets/use-file-explorer-state-DzT0bksg.js", "/assets/useButton-Cbl_9oFG.js", "/assets/useControlled-Dscz_s4f.js", "/assets/popupStateMapping-BRPDXnjv.js", "/assets/owner-CpRnf1fI.js", "/assets/CSPContext-Bq8j4nl9.js", "/assets/DirectionContext-BdX86BHP.js", "/assets/menu-DHNgWk_8.js", "/assets/useMutation-B1FlDsNN.js", "/assets/opencami-logo-BQQETnJG.js", "/assets/proxy-BcUh9kMA.js", "/assets/markdown-BVzT7z4x.js", "/assets/index-CMATW8VA.js", "/assets/react-irH8OzhB.js"] }, "/api/files/delete": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/delete.ts" }, "/api/files/download": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/download.ts" }, "/api/files/info": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/info.ts" }, "/api/files/list": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/list.ts" }, "/api/files/mkdir": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/mkdir.ts" }, "/api/files/read": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/read.ts" }, "/api/files/rename": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/rename.ts" }, "/api/files/save": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/save.ts" }, "/api/files/upload": { "filePath": "/home/runner/work/opencami/opencami/src/routes/api/files/upload.ts" } }, "clientEntry": "/assets/main-B_dlfHME.js" });
2
+ export {
3
+ tsrStartManifest
4
+ };
@@ -1,41 +1,8 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { C as CodeBlock } from "./index-CNIATlJ9.js";
2
+ import { C as CodeBlock } from "./index-Dl2BOKP7.js";
3
3
  import "react";
4
4
  import "@hugeicons/react";
5
5
  import "@hugeicons/core-free-icons";
6
- import "shiki/core";
7
- import "shiki/engine/javascript";
8
- import "@shikijs/themes/vitesse-dark";
9
- import "@shikijs/themes/vitesse-light";
10
- import "@shikijs/langs/bash";
11
- import "@shikijs/langs/c";
12
- import "@shikijs/langs/cpp";
13
- import "@shikijs/langs/csharp";
14
- import "@shikijs/langs/css";
15
- import "@shikijs/langs/diff";
16
- import "@shikijs/langs/dockerfile";
17
- import "@shikijs/langs/go";
18
- import "@shikijs/langs/graphql";
19
- import "@shikijs/langs/html";
20
- import "@shikijs/langs/java";
21
- import "@shikijs/langs/javascript";
22
- import "@shikijs/langs/json";
23
- import "@shikijs/langs/jsx";
24
- import "@shikijs/langs/kotlin";
25
- import "@shikijs/langs/markdown";
26
- import "@shikijs/langs/php";
27
- import "@shikijs/langs/python";
28
- import "@shikijs/langs/regexp";
29
- import "@shikijs/langs/ruby";
30
- import "@shikijs/langs/rust";
31
- import "@shikijs/langs/shell";
32
- import "@shikijs/langs/sql";
33
- import "@shikijs/langs/swift";
34
- import "@shikijs/langs/toml";
35
- import "@shikijs/langs/typescript";
36
- import "@shikijs/langs/tsx";
37
- import "@shikijs/langs/xml";
38
- import "@shikijs/langs/yaml";
39
6
  import "zustand";
40
7
  import "zustand/middleware";
41
8
  import "./button-CwY2OHFj.js";
@@ -7,7 +7,8 @@ import { motion, AnimatePresence } from "motion/react";
7
7
  import { T as TooltipProvider, a as TooltipRoot, b as TooltipTrigger, c as TooltipContent, d as chatUiQueryKey, g as getChatUiState, s as setChatUiState } from "./tooltip-DgsSPocE.js";
8
8
  import { c as cn, b as buttonVariants, B as Button } from "./button-CwY2OHFj.js";
9
9
  import { Link } from "@tanstack/react-router";
10
- import { u as useFileExplorerState, M as MenuRoot, e as MenuTrigger, f as MenuContent, g as MenuItem, D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./use-file-explorer-state-Il1LlBAe.js";
10
+ import { u as useFileExplorerState, D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./use-file-explorer-state-s7CS50ho.js";
11
+ import { M as MenuRoot, a as MenuTrigger, b as MenuContent, c as MenuItem } from "./menu-D90CDTi2.js";
11
12
  import "@base-ui/react/tooltip";
12
13
  import "@base-ui/react/merge-props";
13
14
  import "@base-ui/react/use-render";
@@ -15,8 +16,8 @@ import "class-variance-authority";
15
16
  import "clsx";
16
17
  import "tailwind-merge";
17
18
  import "@base-ui/react/dialog";
18
- import "@base-ui/react/menu";
19
19
  import "zustand";
20
+ import "@base-ui/react/menu";
20
21
  function WebClawIconBig({ className }) {
21
22
  return /* @__PURE__ */ jsxs(
22
23
  "svg",
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Suspense, lazy } from "react";
3
- const FileExplorerScreen = lazy(() => import("./file-explorer-screen-CVlFiAFu.js").then((m) => ({
3
+ const FileExplorerScreen = lazy(() => import("./file-explorer-screen-DH4UFK03.js").then((m) => ({
4
4
  default: m.FileExplorerScreen
5
5
  })));
6
6
  function FilesRoute() {
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useEffect } from "react";
3
- import { R as Route } from "./router-rn7pJO_D.js";
3
+ import { R as Route } from "./router-Uuagl6O7.js";
4
4
  import "@tanstack/react-router";
5
5
  import "@tanstack/react-query";
6
6
  import "node:crypto";
@@ -2,39 +2,6 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { useState, useEffect, useMemo } from "react";
3
3
  import { HugeiconsIcon } from "@hugeicons/react";
4
4
  import { File01Icon, TextWrapIcon, Tick02Icon, Copy01Icon } from "@hugeicons/core-free-icons";
5
- import { createHighlighterCore } from "shiki/core";
6
- import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
7
- import vitesseDark from "@shikijs/themes/vitesse-dark";
8
- import vitesseLight from "@shikijs/themes/vitesse-light";
9
- import langBash from "@shikijs/langs/bash";
10
- import langC from "@shikijs/langs/c";
11
- import langCpp from "@shikijs/langs/cpp";
12
- import langCsharp from "@shikijs/langs/csharp";
13
- import langCss from "@shikijs/langs/css";
14
- import langDiff from "@shikijs/langs/diff";
15
- import langDockerfile from "@shikijs/langs/dockerfile";
16
- import langGo from "@shikijs/langs/go";
17
- import langGraphql from "@shikijs/langs/graphql";
18
- import langHtml from "@shikijs/langs/html";
19
- import langJava from "@shikijs/langs/java";
20
- import langJavascript from "@shikijs/langs/javascript";
21
- import langJson from "@shikijs/langs/json";
22
- import langJsx from "@shikijs/langs/jsx";
23
- import langKotlin from "@shikijs/langs/kotlin";
24
- import langMarkdown from "@shikijs/langs/markdown";
25
- import langPhp from "@shikijs/langs/php";
26
- import langPython from "@shikijs/langs/python";
27
- import langRegexp from "@shikijs/langs/regexp";
28
- import langRuby from "@shikijs/langs/ruby";
29
- import langRust from "@shikijs/langs/rust";
30
- import langShell from "@shikijs/langs/shell";
31
- import langSql from "@shikijs/langs/sql";
32
- import langSwift from "@shikijs/langs/swift";
33
- import langToml from "@shikijs/langs/toml";
34
- import langTypescript from "@shikijs/langs/typescript";
35
- import langTsx from "@shikijs/langs/tsx";
36
- import langXml from "@shikijs/langs/xml";
37
- import langYaml from "@shikijs/langs/yaml";
38
5
  import { create } from "zustand";
39
6
  import { persist } from "zustand/middleware";
40
7
  import { B as Button, c as cn } from "./button-CwY2OHFj.js";
@@ -175,47 +142,88 @@ function formatLanguageName(language) {
175
142
  };
176
143
  return names[language] || language.charAt(0).toUpperCase() + language.slice(1);
177
144
  }
145
+ const languageLoaders = {
146
+ bash: () => import("@shikijs/langs/bash").then((m) => m.default),
147
+ c: () => import("@shikijs/langs/c").then((m) => m.default),
148
+ cpp: () => import("@shikijs/langs/cpp").then((m) => m.default),
149
+ csharp: () => import("@shikijs/langs/csharp").then((m) => m.default),
150
+ css: () => import("@shikijs/langs/css").then((m) => m.default),
151
+ diff: () => import("@shikijs/langs/diff").then((m) => m.default),
152
+ dockerfile: () => import("@shikijs/langs/dockerfile").then((m) => m.default),
153
+ go: () => import("@shikijs/langs/go").then((m) => m.default),
154
+ graphql: () => import("@shikijs/langs/graphql").then((m) => m.default),
155
+ html: () => import("@shikijs/langs/html").then((m) => m.default),
156
+ java: () => import("@shikijs/langs/java").then((m) => m.default),
157
+ javascript: () => import("@shikijs/langs/javascript").then((m) => m.default),
158
+ json: () => import("@shikijs/langs/json").then((m) => m.default),
159
+ jsx: () => import("@shikijs/langs/jsx").then((m) => m.default),
160
+ kotlin: () => import("@shikijs/langs/kotlin").then((m) => m.default),
161
+ markdown: () => import("@shikijs/langs/markdown").then((m) => m.default),
162
+ php: () => import("@shikijs/langs/php").then((m) => m.default),
163
+ python: () => import("@shikijs/langs/python").then((m) => m.default),
164
+ regexp: () => import("@shikijs/langs/regexp").then((m) => m.default),
165
+ ruby: () => import("@shikijs/langs/ruby").then((m) => m.default),
166
+ rust: () => import("@shikijs/langs/rust").then((m) => m.default),
167
+ shell: () => import("@shikijs/langs/shell").then((m) => m.default),
168
+ sql: () => import("@shikijs/langs/sql").then((m) => m.default),
169
+ swift: () => import("@shikijs/langs/swift").then((m) => m.default),
170
+ toml: () => import("@shikijs/langs/toml").then((m) => m.default),
171
+ typescript: () => import("@shikijs/langs/typescript").then((m) => m.default),
172
+ tsx: () => import("@shikijs/langs/tsx").then((m) => m.default),
173
+ xml: () => import("@shikijs/langs/xml").then((m) => m.default),
174
+ yaml: () => import("@shikijs/langs/yaml").then((m) => m.default)
175
+ };
176
+ const languageAliases = {
177
+ sh: "bash",
178
+ zsh: "bash",
179
+ js: "javascript",
180
+ ts: "typescript",
181
+ py: "python",
182
+ rb: "ruby",
183
+ rs: "rust",
184
+ cs: "csharp",
185
+ "c++": "cpp",
186
+ yml: "yaml",
187
+ md: "markdown",
188
+ docker: "dockerfile"
189
+ };
178
190
  let highlighterPromise = null;
179
- function getHighlighter() {
191
+ const loadedLanguages = /* @__PURE__ */ new Set();
192
+ async function getHighlighter() {
180
193
  if (!highlighterPromise) {
194
+ const [{ createHighlighterCore }, { createJavaScriptRegexEngine }, vitesseDark, vitesseLight] = await Promise.all([
195
+ import("shiki/core"),
196
+ import("shiki/engine/javascript"),
197
+ import("@shikijs/themes/vitesse-dark").then((m) => m.default),
198
+ import("@shikijs/themes/vitesse-light").then((m) => m.default)
199
+ ]);
181
200
  highlighterPromise = createHighlighterCore({
182
201
  themes: [vitesseDark, vitesseLight],
183
- langs: [
184
- langBash,
185
- langC,
186
- langCpp,
187
- langCsharp,
188
- langCss,
189
- langDiff,
190
- langDockerfile,
191
- langGo,
192
- langGraphql,
193
- langHtml,
194
- langJava,
195
- langJavascript,
196
- langJson,
197
- langJsx,
198
- langKotlin,
199
- langMarkdown,
200
- langPhp,
201
- langPython,
202
- langRegexp,
203
- langRuby,
204
- langRust,
205
- langShell,
206
- langSql,
207
- langSwift,
208
- langToml,
209
- langTypescript,
210
- langTsx,
211
- langXml,
212
- langYaml
213
- ],
202
+ langs: [],
203
+ // Start with no languages, load on demand
214
204
  engine: createJavaScriptRegexEngine()
215
205
  });
216
206
  }
217
207
  return highlighterPromise;
218
208
  }
209
+ async function ensureLanguageLoaded(highlighter, lang) {
210
+ const resolvedLang = languageAliases[lang] || lang;
211
+ if (loadedLanguages.has(resolvedLang)) {
212
+ return resolvedLang;
213
+ }
214
+ const loader = languageLoaders[resolvedLang];
215
+ if (!loader) {
216
+ return "text";
217
+ }
218
+ try {
219
+ const langModule = await loader();
220
+ await highlighter.loadLanguage(langModule);
221
+ loadedLanguages.add(resolvedLang);
222
+ return resolvedLang;
223
+ } catch {
224
+ return "text";
225
+ }
226
+ }
219
227
  function CodeBlock({
220
228
  content,
221
229
  ariaLabel,
@@ -236,21 +244,28 @@ function CodeBlock({
236
244
  const themeName = resolvedTheme === "dark" ? "vitesse-dark" : "vitesse-light";
237
245
  useEffect(() => {
238
246
  let active = true;
239
- getHighlighter().then(async (highlighter) => {
240
- const lang = resolveLanguage(normalizedLanguage);
241
- const highlighted = highlighter.codeToHtml(content, {
242
- lang,
243
- theme: themeName
244
- });
245
- if (active) {
246
- setResolvedLanguage(lang);
247
- setHtml(highlighted);
248
- const theme = highlighter.getTheme(themeName);
249
- setHeaderBg(theme.bg);
247
+ async function highlight() {
248
+ try {
249
+ const highlighter = await getHighlighter();
250
+ if (!active) return;
251
+ const baseLang = resolveLanguage(normalizedLanguage);
252
+ const lang = await ensureLanguageLoaded(highlighter, baseLang);
253
+ if (!active) return;
254
+ const highlighted = highlighter.codeToHtml(content, {
255
+ lang,
256
+ theme: themeName
257
+ });
258
+ if (active) {
259
+ setResolvedLanguage(lang);
260
+ setHtml(highlighted);
261
+ const theme = highlighter.getTheme(themeName);
262
+ setHeaderBg(theme.bg);
263
+ }
264
+ } catch {
265
+ if (active) setHtml(null);
250
266
  }
251
- }).catch(() => {
252
- if (active) setHtml(null);
253
- });
267
+ }
268
+ highlight();
254
269
  return () => {
255
270
  active = false;
256
271
  };
@@ -1,8 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./use-file-explorer-state-Il1LlBAe.js";
2
+ import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./use-file-explorer-state-s7CS50ho.js";
3
3
  import { B as Button } from "./button-CwY2OHFj.js";
4
4
  import "@base-ui/react/dialog";
5
- import "@base-ui/react/menu";
6
5
  import "zustand";
7
6
  import "@base-ui/react/merge-props";
8
7
  import "@base-ui/react/use-render";