mycode-cli 0.9.0__py3-none-any.whl → 0.9.1__py3-none-any.whl
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.
- mycode_cli/config.py +30 -19
- mycode_cli/main.py +2 -3
- mycode_cli/server/app.py +1 -1
- mycode_cli/server/deps.py +11 -1
- mycode_cli/server/routers/chat.py +10 -10
- mycode_cli/server/routers/sessions.py +2 -5
- mycode_cli/server/routers/settings.py +2 -3
- mycode_cli/server/run_manager.py +2 -2
- mycode_cli/server/static/assets/{EditDiff-B0IHjo9H.js → EditDiff-DXTvyFLa.js} +1 -1
- mycode_cli/server/static/assets/{angular-html-1A3-6kDn.js → angular-html-zUBHyh8F.js} +1 -1
- mycode_cli/server/static/assets/{angular-ts-DHbksxnM.js → angular-ts-D__kA5Sc.js} +1 -1
- mycode_cli/server/static/assets/{apl-BaBAc5eF.js → apl-C3-z3dfi.js} +1 -1
- mycode_cli/server/static/assets/{astro-COnAvojq.js → astro-CFoXPPIu.js} +1 -1
- mycode_cli/server/static/assets/{blade-TOINzxFP.js → blade-D3NE5Ndo.js} +1 -1
- mycode_cli/server/static/assets/{c-Nf_dof3C.js → c-XVpTwZ8J.js} +1 -1
- mycode_cli/server/static/assets/{cobol-C5VZrCE3.js → cobol-ChCkSIDw.js} +1 -1
- mycode_cli/server/static/assets/{coffee-DZrxMgkq.js → coffee-D93Gwvt1.js} +1 -1
- mycode_cli/server/static/assets/{cpp-sXfSrOsh.js → cpp-CQvSsQrn.js} +1 -1
- mycode_cli/server/static/assets/{crystal-BjlKCmcB.js → crystal-ClKys-4k.js} +1 -1
- mycode_cli/server/static/assets/{css-DIFAVgam.js → css-CqqqlUGN.js} +1 -1
- mycode_cli/server/static/assets/{edge-DF8HkBtE.js → edge-1m7mz0oj.js} +1 -1
- mycode_cli/server/static/assets/{elixir-qnpJ3Nvm.js → elixir-Dhj2SUNE.js} +1 -1
- mycode_cli/server/static/assets/{elm-BL2EN5T8.js → elm-Bc9X3CQR.js} +1 -1
- mycode_cli/server/static/assets/{engine-compile-F5yGEj2z.js → engine-compile-X009Avpn.js} +3 -3
- mycode_cli/server/static/assets/{erb-QTsb__7o.js → erb-DfaOLgXg.js} +1 -1
- mycode_cli/server/static/assets/{git-rebase-0I7RXJtl.js → git-rebase-DodCdp9O.js} +1 -1
- mycode_cli/server/static/assets/{glimmer-js-Bs8WRGgm.js → glimmer-js-DUUII4Wd.js} +1 -1
- mycode_cli/server/static/assets/{glimmer-ts-D9emdqIC.js → glimmer-ts-BfFaAicF.js} +1 -1
- mycode_cli/server/static/assets/{glsl-D9ulPUIi.js → glsl-De9OvqVZ.js} +1 -1
- mycode_cli/server/static/assets/{graphql-DUJZ9UiP.js → graphql-DT_uHyhu.js} +1 -1
- mycode_cli/server/static/assets/{hack-DYifHe-0.js → hack-wAnhyYPT.js} +1 -1
- mycode_cli/server/static/assets/{haml-Bz_OM7oT.js → haml-25rdgz3P.js} +1 -1
- mycode_cli/server/static/assets/{handlebars-BjKJLgms.js → handlebars-DUoyuSqS.js} +1 -1
- mycode_cli/server/static/assets/{highlighter-w4GLV421.js → highlighter-DMEpdwDZ.js} +1 -1
- mycode_cli/server/static/assets/{html-ClcZt6DK.js → html-BUu0DAfb.js} +1 -1
- mycode_cli/server/static/assets/{html-derivative-BaRvfEoQ.js → html-derivative-CWrcx4X0.js} +1 -1
- mycode_cli/server/static/assets/{http-D-6KTEZs.js → http-Bvi8ldk2.js} +1 -1
- mycode_cli/server/static/assets/{hurl-DG0n-OrQ.js → hurl-HNI3XiYB.js} +1 -1
- mycode_cli/server/static/assets/{index-CRjupeqA.js → index-Cn7Zu-W8.js} +54 -54
- mycode_cli/server/static/assets/{java-tcLPA8Yi.js → java-xN-qDE15.js} +1 -1
- mycode_cli/server/static/assets/{javascript-CNvuR0fU.js → javascript-azPbeGRp.js} +1 -1
- mycode_cli/server/static/assets/{jinja-BUA2of-S.js → jinja-BU1N7s9p.js} +1 -1
- mycode_cli/server/static/assets/{jison-D-xje2pK.js → jison-iZna58V0.js} +1 -1
- mycode_cli/server/static/assets/{json-BDX8WktD.js → json-NONbKG7j.js} +1 -1
- mycode_cli/server/static/assets/{jsx-B7wMhlSu.js → jsx-DTZAgS-2.js} +1 -1
- mycode_cli/server/static/assets/{julia-pLGJrApL.js → julia-B_9chSzB.js} +1 -1
- mycode_cli/server/static/assets/{just-CkNBJHi-.js → just-D9lnNwgC.js} +1 -1
- mycode_cli/server/static/assets/{latex-q0kn6Pcj.js → latex-CnZdAYwj.js} +1 -1
- mycode_cli/server/static/assets/{liquid-B--iPi74.js → liquid-DQ14BZT0.js} +1 -1
- mycode_cli/server/static/assets/{lua-BSzNx2dN.js → lua-DnS3-v-y.js} +1 -1
- mycode_cli/server/static/assets/{marko-CHA5nb2O.js → marko-D9DfWPi4.js} +1 -1
- mycode_cli/server/static/assets/{mdc-Ckuw-Vv5.js → mdc-BN9Ot7DB.js} +1 -1
- mycode_cli/server/static/assets/{nginx-VrfEBzs7.js → nginx-B58tlfvI.js} +1 -1
- mycode_cli/server/static/assets/{nim-DzAmBQZE.js → nim-av-MfCDE.js} +1 -1
- mycode_cli/server/static/assets/{perl-BUFrzUfQ.js → perl-0sjrS3Gb.js} +1 -1
- mycode_cli/server/static/assets/{php-Bm4RKslR.js → php-CZvo7wBk.js} +1 -1
- mycode_cli/server/static/assets/{pug-n_U-KK_5.js → pug-BwBS8e4J.js} +1 -1
- mycode_cli/server/static/assets/{qml-B9YHUmta.js → qml-H5wLT71o.js} +1 -1
- mycode_cli/server/static/assets/{r-Dw_ezJH6.js → r-Be5cp8iE.js} +1 -1
- mycode_cli/server/static/assets/{razor-yv2hRY5M.js → razor-Bcc8E2rc.js} +1 -1
- mycode_cli/server/static/assets/{regexp-D4Ukx3kJ.js → regexp-JVHml1Yu.js} +1 -1
- mycode_cli/server/static/assets/{rst-C6v-SMfD.js → rst-BNOEpKF8.js} +1 -1
- mycode_cli/server/static/assets/{ruby-CYSDCpk-.js → ruby-DHqrbN-C.js} +1 -1
- mycode_cli/server/static/assets/{sas-DrkbyhMO.js → sas-CDM1ewMx.js} +1 -1
- mycode_cli/server/static/assets/{scss-SpHo1rm1.js → scss-D2W9OINT.js} +1 -1
- mycode_cli/server/static/assets/{shellscript-DbHlMLhv.js → shellscript-CrNyGC08.js} +1 -1
- mycode_cli/server/static/assets/{shellsession-DWVDoPWl.js → shellsession-4RFKAdWa.js} +1 -1
- mycode_cli/server/static/assets/{soy-D1a_iX7F.js → soy-DYySMI5S.js} +1 -1
- mycode_cli/server/static/assets/{sql-CefQnlGw.js → sql-DYFlRzi8.js} +1 -1
- mycode_cli/server/static/assets/{stata-BxFGeD9k.js → stata-CWzbXmA0.js} +1 -1
- mycode_cli/server/static/assets/{surrealql-h0ka8_Su.js → surrealql-BZiskn5H.js} +1 -1
- mycode_cli/server/static/assets/{svelte-I0t2JQun.js → svelte-Cb9-B7io.js} +1 -1
- mycode_cli/server/static/assets/{templ-BibZqt9i.js → templ-B8xKIPfZ.js} +1 -1
- mycode_cli/server/static/assets/{tex-BjKBBM3h.js → tex-CkybcnC8.js} +1 -1
- mycode_cli/server/static/assets/{ts-tags-D1PtKTiF.js → ts-tags-CfStMU-y.js} +1 -1
- mycode_cli/server/static/assets/{tsx-C9yQch3d.js → tsx-CWJ_UlgO.js} +1 -1
- mycode_cli/server/static/assets/{twig-CNmz35zb.js → twig-CilVFDAc.js} +1 -1
- mycode_cli/server/static/assets/{typescript-CqchtJT1.js → typescript-Cbhz-HJw.js} +1 -1
- mycode_cli/server/static/assets/{vue-html-CEXjbQ_2.js → vue-html-D16hSZPs.js} +1 -1
- mycode_cli/server/static/assets/{vue-CP0lvd8t.js → vue-nvDSqQNS.js} +1 -1
- mycode_cli/server/static/assets/{vue-vine-CZuLbSRK.js → vue-vine-BiAviZSH.js} +1 -1
- mycode_cli/server/static/assets/{xml-BVrV4sh8.js → xml-BZYdfa6I.js} +1 -1
- mycode_cli/server/static/assets/{xsl-BycG2Clx.js → xsl-foGXcAPU.js} +1 -1
- mycode_cli/server/static/assets/{yaml-D7btoOKo.js → yaml-B7b28xXf.js} +1 -1
- mycode_cli/server/static/index.html +1 -1
- mycode_cli/tui/chat.py +66 -59
- mycode_cli/tui/render.py +20 -34
- {mycode_cli-0.9.0.dist-info → mycode_cli-0.9.1.dist-info}/METADATA +6 -6
- {mycode_cli-0.9.0.dist-info → mycode_cli-0.9.1.dist-info}/RECORD +92 -92
- {mycode_cli-0.9.0.dist-info → mycode_cli-0.9.1.dist-info}/WHEEL +0 -0
- {mycode_cli-0.9.0.dist-info → mycode_cli-0.9.1.dist-info}/entry_points.txt +0 -0
- {mycode_cli-0.9.0.dist-info → mycode_cli-0.9.1.dist-info}/licenses/LICENSE +0 -0
mycode_cli/config.py
CHANGED
|
@@ -128,14 +128,10 @@ def project_dirs(cwd: str, project: str | Path | None = None) -> list[Path]:
|
|
|
128
128
|
else:
|
|
129
129
|
project_path = Path(project).expanduser().resolve(strict=False)
|
|
130
130
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
break
|
|
136
|
-
dirs.append(parent)
|
|
137
|
-
|
|
138
|
-
return list(reversed(dirs))
|
|
131
|
+
ancestors = [cwd_path, *cwd_path.parents]
|
|
132
|
+
if project_path in ancestors:
|
|
133
|
+
ancestors = ancestors[: ancestors.index(project_path) + 1]
|
|
134
|
+
return list(reversed(ancestors))
|
|
139
135
|
|
|
140
136
|
|
|
141
137
|
def _candidate_config_paths(cwd: str, project: str | Path) -> list[Path]:
|
|
@@ -190,6 +186,19 @@ def normalize_reasoning_effort(value: Any) -> str | None:
|
|
|
190
186
|
raise ValueError(f"unsupported reasoning_effort {value!r}; supported: {supported}")
|
|
191
187
|
|
|
192
188
|
|
|
189
|
+
def gate_reasoning_effort(
|
|
190
|
+
effort: str | None,
|
|
191
|
+
*,
|
|
192
|
+
supports_reasoning: bool | None,
|
|
193
|
+
adapter_supports_effort: bool,
|
|
194
|
+
) -> str | None:
|
|
195
|
+
"""Return effort only when the model reasons and the adapter accepts the effort knob."""
|
|
196
|
+
|
|
197
|
+
if effort is not None and supports_reasoning is True and adapter_supports_effort:
|
|
198
|
+
return effort
|
|
199
|
+
return None
|
|
200
|
+
|
|
201
|
+
|
|
193
202
|
def normalize_permission_level(value: Any) -> PermissionLevel:
|
|
194
203
|
if not isinstance(value, str):
|
|
195
204
|
raise ValueError(f"permission level must be a string, got {type(value).__name__}")
|
|
@@ -364,7 +373,9 @@ def _validate_model_config_entries(name: str, raw: Any) -> dict[str, dict[str, A
|
|
|
364
373
|
if overrides is None:
|
|
365
374
|
out[key] = {}
|
|
366
375
|
elif isinstance(overrides, dict):
|
|
367
|
-
out[key] = {
|
|
376
|
+
out[key] = {
|
|
377
|
+
k: v for k, v in overrides.items() if isinstance(k, str) and k in MODEL_OVERRIDE_KEYS and v is not None
|
|
378
|
+
}
|
|
368
379
|
else:
|
|
369
380
|
raise ValueError(f"provider {name!r}: model {key!r} config must be an object")
|
|
370
381
|
return out
|
|
@@ -570,7 +581,7 @@ def resolve_provider(
|
|
|
570
581
|
if refs:
|
|
571
582
|
return _resolve_provider_runtime(
|
|
572
583
|
settings,
|
|
573
|
-
selected_name=refs[0]
|
|
584
|
+
selected_name=refs[0],
|
|
574
585
|
model=model,
|
|
575
586
|
api_key=api_key,
|
|
576
587
|
api_base=api_base,
|
|
@@ -594,7 +605,7 @@ def resolve_provider_choices(settings: Settings) -> list[ResolvedProvider]:
|
|
|
594
605
|
"""Return currently selectable providers in stable selection order."""
|
|
595
606
|
|
|
596
607
|
choices: list[ResolvedProvider] = []
|
|
597
|
-
for selected_name
|
|
608
|
+
for selected_name in _available_provider_references(settings):
|
|
598
609
|
try:
|
|
599
610
|
choices.append(_resolve_provider_runtime(settings, selected_name=selected_name))
|
|
600
611
|
except ValueError:
|
|
@@ -616,10 +627,10 @@ def _config_api_key_from_env_var(provider: ProviderConfig, *, require: bool = Fa
|
|
|
616
627
|
return None
|
|
617
628
|
|
|
618
629
|
|
|
619
|
-
def _available_provider_references(settings: Settings) -> list[
|
|
620
|
-
"""Return usable provider
|
|
630
|
+
def _available_provider_references(settings: Settings) -> list[str]:
|
|
631
|
+
"""Return usable provider names with the configured default first."""
|
|
621
632
|
|
|
622
|
-
available: list[
|
|
633
|
+
available: list[str] = []
|
|
623
634
|
seen: set[str] = set()
|
|
624
635
|
configured_types_with_credentials: set[str] = set()
|
|
625
636
|
|
|
@@ -641,7 +652,7 @@ def _available_provider_references(settings: Settings) -> list[tuple[str, Provid
|
|
|
641
652
|
return
|
|
642
653
|
|
|
643
654
|
seen.add(cleaned)
|
|
644
|
-
available.append(
|
|
655
|
+
available.append(cleaned)
|
|
645
656
|
|
|
646
657
|
add(settings.default_provider)
|
|
647
658
|
|
|
@@ -704,10 +715,10 @@ def _resolve_provider_runtime(
|
|
|
704
715
|
supports_reasoning=model_config.supports_reasoning if model_config else None,
|
|
705
716
|
)
|
|
706
717
|
adapter = get_provider_adapter(provider_type)
|
|
707
|
-
reasoning_effort = (
|
|
708
|
-
configured_effort
|
|
709
|
-
|
|
710
|
-
|
|
718
|
+
reasoning_effort = gate_reasoning_effort(
|
|
719
|
+
configured_effort,
|
|
720
|
+
supports_reasoning=meta.supports_reasoning,
|
|
721
|
+
adapter_supports_effort=adapter.supports_reasoning_effort,
|
|
711
722
|
)
|
|
712
723
|
|
|
713
724
|
resolved_api_key = api_key
|
mycode_cli/main.py
CHANGED
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import asyncio
|
|
6
6
|
import os
|
|
7
7
|
import sys
|
|
8
|
+
from contextlib import suppress
|
|
8
9
|
from dataclasses import dataclass, replace
|
|
9
10
|
from typing import Annotated, Any
|
|
10
11
|
from uuid import uuid4
|
|
@@ -250,7 +251,7 @@ def chat(
|
|
|
250
251
|
if setup.resolved_session.mode == "resumed":
|
|
251
252
|
setup.view.print_history_preview(setup.resolved_session.messages)
|
|
252
253
|
|
|
253
|
-
|
|
254
|
+
with suppress(KeyboardInterrupt):
|
|
254
255
|
asyncio.run(
|
|
255
256
|
TerminalChat(
|
|
256
257
|
agent=setup.agent,
|
|
@@ -260,8 +261,6 @@ def chat(
|
|
|
260
261
|
view=setup.view,
|
|
261
262
|
).run()
|
|
262
263
|
)
|
|
263
|
-
except KeyboardInterrupt:
|
|
264
|
-
pass
|
|
265
264
|
|
|
266
265
|
|
|
267
266
|
@app.command()
|
mycode_cli/server/app.py
CHANGED
|
@@ -14,6 +14,7 @@ from mycode_cli.server.routers.settings import router as settings_router
|
|
|
14
14
|
from mycode_cli.server.routers.workspaces import router as workspaces_router
|
|
15
15
|
|
|
16
16
|
logger = logging.getLogger(__name__)
|
|
17
|
+
logging.basicConfig(level=logging.INFO, format="%(levelname)s %(name)s: %(message)s")
|
|
17
18
|
DEV_CORS_ORIGINS = ("http://localhost:5173", "http://127.0.0.1:5173")
|
|
18
19
|
|
|
19
20
|
|
|
@@ -25,7 +26,6 @@ def web_static_path() -> Path:
|
|
|
25
26
|
|
|
26
27
|
def create_app(*, serve_web: bool = True, cors_origins: Sequence[str] = ()) -> FastAPI:
|
|
27
28
|
"""Create the FastAPI app."""
|
|
28
|
-
logging.basicConfig(level=logging.INFO, format="%(levelname)s %(name)s: %(message)s")
|
|
29
29
|
application = FastAPI(title="mycode")
|
|
30
30
|
|
|
31
31
|
if cors_origins:
|
mycode_cli/server/deps.py
CHANGED
|
@@ -2,16 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import os
|
|
5
6
|
from functools import lru_cache
|
|
6
7
|
from typing import Annotated
|
|
7
8
|
|
|
8
|
-
from fastapi import Depends
|
|
9
|
+
from fastapi import Depends, HTTPException
|
|
9
10
|
|
|
10
11
|
from mycode.session import SessionStore
|
|
11
12
|
from mycode_cli.config import resolve_sessions_dir
|
|
12
13
|
from mycode_cli.server.run_manager import RunManager
|
|
13
14
|
|
|
14
15
|
|
|
16
|
+
def resolve_workspace_cwd(raw: str | None) -> str:
|
|
17
|
+
"""Resolve a request cwd to an absolute path, rejecting a non-directory."""
|
|
18
|
+
|
|
19
|
+
cwd = os.path.abspath(raw or os.getcwd())
|
|
20
|
+
if not os.path.isdir(cwd):
|
|
21
|
+
raise HTTPException(status_code=400, detail=f"Working directory does not exist: {cwd}")
|
|
22
|
+
return cwd
|
|
23
|
+
|
|
24
|
+
|
|
15
25
|
@lru_cache
|
|
16
26
|
def get_store() -> SessionStore:
|
|
17
27
|
"""Return the shared session store for server requests."""
|
|
@@ -33,6 +33,7 @@ from mycode.utils import resolve_path
|
|
|
33
33
|
from mycode_cli.config import (
|
|
34
34
|
REASONING_EFFORT_OPTIONS,
|
|
35
35
|
ResolvedProvider,
|
|
36
|
+
gate_reasoning_effort,
|
|
36
37
|
get_settings,
|
|
37
38
|
normalize_reasoning_effort,
|
|
38
39
|
resolve_provider,
|
|
@@ -40,7 +41,7 @@ from mycode_cli.config import (
|
|
|
40
41
|
)
|
|
41
42
|
from mycode_cli.permissions import ToolReviewDecision, ToolReviewRequest
|
|
42
43
|
from mycode_cli.runtime import build_agent
|
|
43
|
-
from mycode_cli.server.deps import RunManagerDep, StoreDep
|
|
44
|
+
from mycode_cli.server.deps import RunManagerDep, StoreDep, resolve_workspace_cwd
|
|
44
45
|
from mycode_cli.server.run_manager import ActiveRunError, RunManager
|
|
45
46
|
from mycode_cli.server.schemas import (
|
|
46
47
|
CancelRunResponse,
|
|
@@ -74,11 +75,13 @@ async def _build_user_message(chat: ChatRequest, cwd: str) -> ConversationMessag
|
|
|
74
75
|
blocks.append(text_block(text))
|
|
75
76
|
continue
|
|
76
77
|
|
|
78
|
+
# block.type is "image" or "document" from here on.
|
|
79
|
+
factory = document_block if block.type == "document" else image_block
|
|
80
|
+
|
|
77
81
|
# Inline base64 from the web client.
|
|
78
82
|
if block.data:
|
|
79
83
|
mime_type = block.mime_type or "application/pdf"
|
|
80
84
|
default_name = "document.pdf" if block.type == "document" else "image"
|
|
81
|
-
factory = document_block if block.type == "document" else image_block
|
|
82
85
|
blocks.append(factory(block.data, mime_type=mime_type, name=block.name or default_name))
|
|
83
86
|
continue
|
|
84
87
|
|
|
@@ -92,7 +95,6 @@ async def _build_user_message(chat: ChatRequest, cwd: str) -> ConversationMessag
|
|
|
92
95
|
if not mime_type or (block.type == "document" and mime_type != "application/pdf"):
|
|
93
96
|
raise HTTPException(status_code=400, detail=f"unsupported {block.type} file: {block.path}")
|
|
94
97
|
data = b64encode(await asyncio.to_thread(path.read_bytes)).decode("utf-8")
|
|
95
|
-
factory = image_block if block.type == "image" else document_block
|
|
96
98
|
blocks.append(factory(data, mime_type=mime_type, name=block.name or path.name))
|
|
97
99
|
|
|
98
100
|
if not blocks:
|
|
@@ -132,9 +134,7 @@ def _validate_rewind_request(
|
|
|
132
134
|
|
|
133
135
|
@router.post("/chat")
|
|
134
136
|
async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep) -> ChatResponse:
|
|
135
|
-
cwd =
|
|
136
|
-
if not os.path.isdir(cwd):
|
|
137
|
-
raise HTTPException(status_code=400, detail=f"Working directory does not exist: {cwd}")
|
|
137
|
+
cwd = resolve_workspace_cwd(chat.cwd)
|
|
138
138
|
settings = await asyncio.to_thread(get_settings, cwd)
|
|
139
139
|
resolved = resolve_provider(
|
|
140
140
|
settings,
|
|
@@ -168,10 +168,10 @@ async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep) -> ChatR
|
|
|
168
168
|
|
|
169
169
|
adapter = get_provider_adapter(resolved.provider)
|
|
170
170
|
configured_effort = request_effort if request_effort is not None else resolved.reasoning_effort
|
|
171
|
-
reasoning_effort = (
|
|
172
|
-
configured_effort
|
|
173
|
-
|
|
174
|
-
|
|
171
|
+
reasoning_effort = gate_reasoning_effort(
|
|
172
|
+
configured_effort,
|
|
173
|
+
supports_reasoning=model_meta.supports_reasoning,
|
|
174
|
+
adapter_supports_effort=adapter.supports_reasoning_effort,
|
|
175
175
|
)
|
|
176
176
|
|
|
177
177
|
async with runs.session_operation(session_id):
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
import os
|
|
6
5
|
from typing import Annotated, Any
|
|
7
6
|
from uuid import uuid4
|
|
8
7
|
|
|
@@ -10,7 +9,7 @@ from fastapi import APIRouter, HTTPException, Query
|
|
|
10
9
|
from fastapi import Path as PathParam
|
|
11
10
|
|
|
12
11
|
from mycode.messages import ConversationMessage
|
|
13
|
-
from mycode_cli.server.deps import RunManagerDep, StoreDep
|
|
12
|
+
from mycode_cli.server.deps import RunManagerDep, StoreDep, resolve_workspace_cwd
|
|
14
13
|
from mycode_cli.server.schemas import SessionCreateRequest, StatusResponse
|
|
15
14
|
|
|
16
15
|
router = APIRouter(prefix="/sessions", tags=["sessions"])
|
|
@@ -32,9 +31,7 @@ def _redact_document_data(messages: list[ConversationMessage]) -> list[dict[str,
|
|
|
32
31
|
|
|
33
32
|
@router.post("")
|
|
34
33
|
async def create_session(req: SessionCreateRequest, store: StoreDep) -> dict[str, Any]:
|
|
35
|
-
cwd =
|
|
36
|
-
if not os.path.isdir(cwd):
|
|
37
|
-
raise HTTPException(status_code=400, detail=f"Working directory does not exist: {cwd}")
|
|
34
|
+
cwd = resolve_workspace_cwd(req.cwd)
|
|
38
35
|
session_id = uuid4().hex
|
|
39
36
|
data = await store.create_session(session_id, cwd=cwd)
|
|
40
37
|
return {"session": data["session"], "messages": data["messages"]}
|
|
@@ -11,6 +11,7 @@ import copy
|
|
|
11
11
|
import json
|
|
12
12
|
import os
|
|
13
13
|
import tempfile
|
|
14
|
+
from contextlib import suppress
|
|
14
15
|
from pathlib import Path
|
|
15
16
|
from typing import Any
|
|
16
17
|
|
|
@@ -137,10 +138,8 @@ def _atomic_write(path: Path, payload: dict[str, Any]) -> None:
|
|
|
137
138
|
fh.write("\n")
|
|
138
139
|
os.replace(tmp_name, path)
|
|
139
140
|
except Exception:
|
|
140
|
-
|
|
141
|
+
with suppress(OSError):
|
|
141
142
|
os.unlink(tmp_name)
|
|
142
|
-
except OSError:
|
|
143
|
-
pass
|
|
144
143
|
raise
|
|
145
144
|
|
|
146
145
|
|
mycode_cli/server/run_manager.py
CHANGED
|
@@ -123,7 +123,7 @@ class RunManager:
|
|
|
123
123
|
return {
|
|
124
124
|
"run": state.info(),
|
|
125
125
|
"messages": messages,
|
|
126
|
-
"pending_events":
|
|
126
|
+
"pending_events": list(state.events),
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
@asynccontextmanager
|
|
@@ -152,7 +152,7 @@ class RunManager:
|
|
|
152
152
|
last_seq = max(0, after)
|
|
153
153
|
while True:
|
|
154
154
|
async with state.condition:
|
|
155
|
-
pending = [
|
|
155
|
+
pending = [event for event in state.events if int(event.get("seq") or 0) > last_seq]
|
|
156
156
|
finished = state.status != "running"
|
|
157
157
|
|
|
158
158
|
if not pending and not finished:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./engine-compile-F5yGEj2z.js";import{d as s,n as c,p as l,t as u,u as d}from"./index-CRjupeqA.js";var f={position:`absolute`,top:0,bottom:0,textAlign:`center`},p={display:`contents`};function m(){return null}var h=`diffs-container`,g=/(?=^From [a-f0-9]+ .+$)/m,_=/(?=^diff --git)/gm,v=/(?=^---\s+\S)/gm,y=/(?=^@@ )/gm,b=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(?: (.*))?/m,x=/(?<=\n)/,S=/^(---|\+\+\+)\s+([^\t\r\n]+)/,C=/^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/,w=/^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/,T=/^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i,E=`header-prefix`,D=`header-metadata`,O=`header-custom`,k={dark:`pierre-dark`,light:`pierre-light`},ee=`data-theme-css`,te=`data-unsafe-css`,ne={hunkLineCount:50,lineHeight:20,diffHeaderHeight:44,hunkSeparatorHeight:32,fileGap:8},re=Object.freeze({fromStart:0,fromEnd:0}),ie={startingLine:0,totalLines:1/0,bufferBefore:0,bufferAfter:0},ae={startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:0};function A(e){return`annotation-${`side`in e?`${e.side}-`:``}${e.lineNumber}`}var j=d();function oe(e,t){return typeof window>`u`&&t!=null?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`template`,{shadowrootmode:`open`,dangerouslySetInnerHTML:{__html:t}}),e]}):(0,j.jsx)(j.Fragment,{children:e})}var M=l(s(),1),se=(0,M.createContext)(void 0);function ce(){return(0,M.useContext)(se)}var N=new Map,le=new Map,ue=new Map,de=new Set;function fe(e,t){e=Array.isArray(e)?e:[e];for(let n of e){let e;if(typeof n==`string`){if(e=N.get(n),e==null)throw Error(`loadResolvedThemes: ${n} is not resolved, you must resolve it before calling loadResolvedThemes`)}else e=n,n=n.name,N.has(n)||N.set(n,e);de.has(n)||(de.add(n),t.loadThemeSync(e))}}var P=new Map,pe=new Map,me=new Map,he=new Set;function ge(e,t){e=Array.isArray(e)?e:[e];for(let n of e){if(he.has(n.name))continue;let e=P.get(n.name);e??(e=n,P.set(n.name,e)),he.add(e.name),t.loadLanguageSync(e.data)}}function _e(){return typeof WorkerGlobalScope<`u`&&typeof self<`u`&&self instanceof WorkerGlobalScope}var ve=Object.fromEntries([{id:`andromeeda`,displayName:`Andromeeda`,type:`dark`,import:(()=>c(()=>import(`./andromeeda-N4z3YzmR.js`),[]))},{id:`aurora-x`,displayName:`Aurora X`,type:`dark`,import:(()=>c(()=>import(`./aurora-x-CND-FqEb.js`),[]))},{id:`ayu-dark`,displayName:`Ayu Dark`,type:`dark`,import:(()=>c(()=>import(`./ayu-dark-on7xzq_B.js`),[]))},{id:`ayu-light`,displayName:`Ayu Light`,type:`light`,import:(()=>c(()=>import(`./ayu-light-DnGeGGc2.js`),[]))},{id:`ayu-mirage`,displayName:`Ayu Mirage`,type:`dark`,import:(()=>c(()=>import(`./ayu-mirage-DG3LlYC_.js`),[]))},{id:`catppuccin-frappe`,displayName:`Catppuccin Frappé`,type:`dark`,import:(()=>c(()=>import(`./catppuccin-frappe-Dr22sraq.js`),[]))},{id:`catppuccin-latte`,displayName:`Catppuccin Latte`,type:`light`,import:(()=>c(()=>import(`./catppuccin-latte-C57EeX8c.js`),[]))},{id:`catppuccin-macchiato`,displayName:`Catppuccin Macchiato`,type:`dark`,import:(()=>c(()=>import(`./catppuccin-macchiato-CpheI4uD.js`),[]))},{id:`catppuccin-mocha`,displayName:`Catppuccin Mocha`,type:`dark`,import:(()=>c(()=>import(`./catppuccin-mocha-D8Lmdks_.js`),[]))},{id:`dark-plus`,displayName:`Dark Plus`,type:`dark`,import:(()=>c(()=>import(`./dark-plus-CqeW_0kH.js`),[]))},{id:`dracula`,displayName:`Dracula Theme`,type:`dark`,import:(()=>c(()=>import(`./dracula-CtqCPLGa.js`),[]))},{id:`dracula-soft`,displayName:`Dracula Theme Soft`,type:`dark`,import:(()=>c(()=>import(`./dracula-soft-DmBpwRAy.js`),[]))},{id:`everforest-dark`,displayName:`Everforest Dark`,type:`dark`,import:(()=>c(()=>import(`./everforest-dark-CrbyKk4n.js`),[]))},{id:`everforest-light`,displayName:`Everforest Light`,type:`light`,import:(()=>c(()=>import(`./everforest-light-DRbSh8Tm.js`),[]))},{id:`github-dark`,displayName:`GitHub Dark`,type:`dark`,import:(()=>c(()=>import(`./github-dark-ipGuFGYC.js`),[]))},{id:`github-dark-default`,displayName:`GitHub Dark Default`,type:`dark`,import:(()=>c(()=>import(`./github-dark-default-DX3IG_X0.js`),[]))},{id:`github-dark-dimmed`,displayName:`GitHub Dark Dimmed`,type:`dark`,import:(()=>c(()=>import(`./github-dark-dimmed-CH6p_7ez.js`),[]))},{id:`github-dark-high-contrast`,displayName:`GitHub Dark High Contrast`,type:`dark`,import:(()=>c(()=>import(`./github-dark-high-contrast-Bg2sSao5.js`),[]))},{id:`github-light`,displayName:`GitHub Light`,type:`light`,import:(()=>c(()=>import(`./github-light-BxjqOQl0.js`),[]))},{id:`github-light-default`,displayName:`GitHub Light Default`,type:`light`,import:(()=>c(()=>import(`./github-light-default-DwpDd1IQ.js`),[]))},{id:`github-light-high-contrast`,displayName:`GitHub Light High Contrast`,type:`light`,import:(()=>c(()=>import(`./github-light-high-contrast-C0QeixPf.js`),[]))},{id:`gruvbox-dark-hard`,displayName:`Gruvbox Dark Hard`,type:`dark`,import:(()=>c(()=>import(`./gruvbox-dark-hard-BIMX9ePb.js`),[]))},{id:`gruvbox-dark-medium`,displayName:`Gruvbox Dark Medium`,type:`dark`,import:(()=>c(()=>import(`./gruvbox-dark-medium-DxuwyVzM.js`),[]))},{id:`gruvbox-dark-soft`,displayName:`Gruvbox Dark Soft`,type:`dark`,import:(()=>c(()=>import(`./gruvbox-dark-soft-ba2fjht0.js`),[]))},{id:`gruvbox-light-hard`,displayName:`Gruvbox Light Hard`,type:`light`,import:(()=>c(()=>import(`./gruvbox-light-hard-DAJK2PqC.js`),[]))},{id:`gruvbox-light-medium`,displayName:`Gruvbox Light Medium`,type:`light`,import:(()=>c(()=>import(`./gruvbox-light-medium-WRifDAJD.js`),[]))},{id:`gruvbox-light-soft`,displayName:`Gruvbox Light Soft`,type:`light`,import:(()=>c(()=>import(`./gruvbox-light-soft-B0dBOoVB.js`),[]))},{id:`horizon`,displayName:`Horizon`,type:`dark`,import:(()=>c(()=>import(`./horizon-C5RtD1fY.js`),[]))},{id:`horizon-bright`,displayName:`Horizon Bright`,type:`dark`,import:(()=>c(()=>import(`./horizon-bright-pEOice34.js`),[]))},{id:`houston`,displayName:`Houston`,type:`dark`,import:(()=>c(()=>import(`./houston-A0zg9vNP.js`),[]))},{id:`kanagawa-dragon`,displayName:`Kanagawa Dragon`,type:`dark`,import:(()=>c(()=>import(`./kanagawa-dragon-CtPmcCMp.js`),[]))},{id:`kanagawa-lotus`,displayName:`Kanagawa Lotus`,type:`light`,import:(()=>c(()=>import(`./kanagawa-lotus-DpOXEGCa.js`),[]))},{id:`kanagawa-wave`,displayName:`Kanagawa Wave`,type:`dark`,import:(()=>c(()=>import(`./kanagawa-wave-CLVCyc-n.js`),[]))},{id:`laserwave`,displayName:`LaserWave`,type:`dark`,import:(()=>c(()=>import(`./laserwave-7fEj4XGb.js`),[]))},{id:`light-plus`,displayName:`Light Plus`,type:`light`,import:(()=>c(()=>import(`./light-plus-DHI2dh3p.js`),[]))},{id:`material-theme`,displayName:`Material Theme`,type:`dark`,import:(()=>c(()=>import(`./material-theme-Dm6ETY8i.js`),[]))},{id:`material-theme-darker`,displayName:`Material Theme Darker`,type:`dark`,import:(()=>c(()=>import(`./material-theme-darker-BeyjmM5Z.js`),[]))},{id:`material-theme-lighter`,displayName:`Material Theme Lighter`,type:`light`,import:(()=>c(()=>import(`./material-theme-lighter-CCOYYzKL.js`),[]))},{id:`material-theme-ocean`,displayName:`Material Theme Ocean`,type:`dark`,import:(()=>c(()=>import(`./material-theme-ocean-CUtPiiX3.js`),[]))},{id:`material-theme-palenight`,displayName:`Material Theme Palenight`,type:`dark`,import:(()=>c(()=>import(`./material-theme-palenight-2L4zMwIM.js`),[]))},{id:`min-dark`,displayName:`Min Dark`,type:`dark`,import:(()=>c(()=>import(`./min-dark-B8TUPGHg.js`),[]))},{id:`min-light`,displayName:`Min Light`,type:`light`,import:(()=>c(()=>import(`./min-light-BDOoBxcA.js`),[]))},{id:`monokai`,displayName:`Monokai`,type:`dark`,import:(()=>c(()=>import(`./monokai-E_VBmXGZ.js`),[]))},{id:`night-owl`,displayName:`Night Owl`,type:`dark`,import:(()=>c(()=>import(`./night-owl-DefhalNX.js`),[]))},{id:`night-owl-light`,displayName:`Night Owl Light`,type:`light`,import:(()=>c(()=>import(`./night-owl-light-byb3AbEn.js`),[]))},{id:`nord`,displayName:`Nord`,type:`dark`,import:(()=>c(()=>import(`./nord-D5rQzHT-.js`),[]))},{id:`one-dark-pro`,displayName:`One Dark Pro`,type:`dark`,import:(()=>c(()=>import(`./one-dark-pro-DxXww9jg.js`),[]))},{id:`one-light`,displayName:`One Light`,type:`light`,import:(()=>c(()=>import(`./one-light-D9c03w7t.js`),[]))},{id:`plastic`,displayName:`Plastic`,type:`dark`,import:(()=>c(()=>import(`./plastic-uOsw7z1x.js`),[]))},{id:`poimandres`,displayName:`Poimandres`,type:`dark`,import:(()=>c(()=>import(`./poimandres-CyO4HORD.js`),[]))},{id:`red`,displayName:`Red`,type:`dark`,import:(()=>c(()=>import(`./red-z4H4llUY.js`),[]))},{id:`rose-pine`,displayName:`Rosé Pine`,type:`dark`,import:(()=>c(()=>import(`./rose-pine-BADquuIH.js`),[]))},{id:`rose-pine-dawn`,displayName:`Rosé Pine Dawn`,type:`light`,import:(()=>c(()=>import(`./rose-pine-dawn-BLcEeBoh.js`),[]))},{id:`rose-pine-moon`,displayName:`Rosé Pine Moon`,type:`dark`,import:(()=>c(()=>import(`./rose-pine-moon-BK_tLY1Y.js`),[]))},{id:`slack-dark`,displayName:`Slack Dark`,type:`dark`,import:(()=>c(()=>import(`./slack-dark-DOnVms5P.js`),[]))},{id:`slack-ochin`,displayName:`Slack Ochin`,type:`light`,import:(()=>c(()=>import(`./slack-ochin-DcRTft4q.js`),[]))},{id:`snazzy-light`,displayName:`Snazzy Light`,type:`light`,import:(()=>c(()=>import(`./snazzy-light-x9CLJ1W9.js`),[]))},{id:`solarized-dark`,displayName:`Solarized Dark`,type:`dark`,import:(()=>c(()=>import(`./solarized-dark-BB1sh-pe.js`),[]))},{id:`solarized-light`,displayName:`Solarized Light`,type:`light`,import:(()=>c(()=>import(`./solarized-light-9-RPS998.js`),[]))},{id:`synthwave-84`,displayName:`Synthwave '84`,type:`dark`,import:(()=>c(()=>import(`./synthwave-84-eJ9uRN_S.js`),[]))},{id:`tokyo-night`,displayName:`Tokyo Night`,type:`dark`,import:(()=>c(()=>import(`./tokyo-night-B9N7LyrF.js`),[]))},{id:`vesper`,displayName:`Vesper`,type:`dark`,import:(()=>c(()=>import(`./vesper-CtgQQ2sf.js`),[]))},{id:`vitesse-black`,displayName:`Vitesse Black`,type:`dark`,import:(()=>c(()=>import(`./vitesse-black-jXdfyqgD.js`),[]))},{id:`vitesse-dark`,displayName:`Vitesse Dark`,type:`dark`,import:(()=>c(()=>import(`./vitesse-dark-B88PxG1r.js`),[]))},{id:`vitesse-light`,displayName:`Vitesse Light`,type:`light`,import:(()=>c(()=>import(`./vitesse-light-BXxZh2iV.js`),[]))}].map(e=>[e.id,e.import])),ye=class extends Error{constructor(e){super(e),this.name=`ShikiError`}};function be(){return 2147483648}function xe(){return typeof performance<`u`?performance.now():Date.now()}var Se=(e,t)=>e+(t-e%t)%t;async function Ce(e){let t,n,r={};function i(e){n=e,r.HEAPU8=new Uint8Array(e),r.HEAPU32=new Uint32Array(e)}function a(e,t,n){r.HEAPU8.copyWithin(e,t,t+n)}function o(e){try{return t.grow(e-n.byteLength+65535>>>16),i(t.buffer),1}catch{}}function s(e){let t=r.HEAPU8.length;e>>>=0;let n=be();if(e>n)return!1;for(let r=1;r<=4;r*=2){let i=t*(1+.2/r);if(i=Math.min(i,e+100663296),o(Math.min(n,Se(Math.max(e,i),65536))))return!0}return!1}let c=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0;function l(e,t,n=1024){let r=t+n,i=t;for(;e[i]&&!(i>=r);)++i;if(i-t>16&&e.buffer&&c)return c.decode(e.subarray(t,i));let a=``;for(;t<i;){let n=e[t++];if(!(n&128)){a+=String.fromCharCode(n);continue}let r=e[t++]&63;if((n&224)==192){a+=String.fromCharCode((n&31)<<6|r);continue}let i=e[t++]&63;if(n=(n&240)==224?(n&15)<<12|r<<6|i:(n&7)<<18|r<<12|i<<6|e[t++]&63,n<65536)a+=String.fromCharCode(n);else{let e=n-65536;a+=String.fromCharCode(55296|e>>10,56320|e&1023)}}return a}function u(e,t){return e?l(r.HEAPU8,e,t):``}let d={emscripten_get_now:xe,emscripten_memcpy_big:a,emscripten_resize_heap:s,fd_write:()=>0};async function f(){let n=await e({env:d,wasi_snapshot_preview1:d});t=n.memory,i(t.buffer),Object.assign(r,n),r.UTF8ToString=u}return await f(),r}var we=Object.defineProperty,Te=(e,t,n)=>t in e?we(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,F=(e,t,n)=>Te(e,typeof t==`symbol`?t:t+``,n),I=null;function Ee(e){throw new ye(e.UTF8ToString(e.getLastOnigError()))}var De=class e{constructor(t){F(this,`utf16Length`),F(this,`utf8Length`),F(this,`utf16Value`),F(this,`utf8Value`),F(this,`utf16OffsetToUtf8`),F(this,`utf8OffsetToUtf16`);let n=t.length,r=e._utf8ByteLength(t),i=r!==n,a=i?new Uint32Array(n+1):null;i&&(a[n]=r);let o=i?new Uint32Array(r+1):null;i&&(o[r]=n);let s=new Uint8Array(r),c=0;for(let e=0;e<n;e++){let r=t.charCodeAt(e),l=r,u=!1;if(r>=55296&&r<=56319&&e+1<n){let n=t.charCodeAt(e+1);n>=56320&&n<=57343&&(l=(r-55296<<10)+65536|n-56320,u=!0)}i&&(a[e]=c,u&&(a[e+1]=c),l<=127?o[c+0]=e:l<=2047?(o[c+0]=e,o[c+1]=e):l<=65535?(o[c+0]=e,o[c+1]=e,o[c+2]=e):(o[c+0]=e,o[c+1]=e,o[c+2]=e,o[c+3]=e)),l<=127?s[c++]=l:l<=2047?(s[c++]=192|(l&1984)>>>6,s[c++]=128|(l&63)>>>0):l<=65535?(s[c++]=224|(l&61440)>>>12,s[c++]=128|(l&4032)>>>6,s[c++]=128|(l&63)>>>0):(s[c++]=240|(l&1835008)>>>18,s[c++]=128|(l&258048)>>>12,s[c++]=128|(l&4032)>>>6,s[c++]=128|(l&63)>>>0),u&&e++}this.utf16Length=n,this.utf8Length=r,this.utf16Value=t,this.utf8Value=s,this.utf16OffsetToUtf8=a,this.utf8OffsetToUtf16=o}static _utf8ByteLength(e){let t=0;for(let n=0,r=e.length;n<r;n++){let i=e.charCodeAt(n),a=i,o=!1;if(i>=55296&&i<=56319&&n+1<r){let t=e.charCodeAt(n+1);t>=56320&&t<=57343&&(a=(i-55296<<10)+65536|t-56320,o=!0)}a<=127?t+=1:a<=2047?t+=2:a<=65535?t+=3:t+=4,o&&n++}return t}createString(e){let t=e.omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}},Oe=class e{constructor(t){if(F(this,`id`,++e.LAST_ID),F(this,`_onigBinding`),F(this,`content`),F(this,`utf16Length`),F(this,`utf8Length`),F(this,`utf16OffsetToUtf8`),F(this,`utf8OffsetToUtf16`),F(this,`ptr`),!I)throw new ye(`Must invoke loadWasm first.`);this._onigBinding=I,this.content=t;let n=new De(t);this.utf16Length=n.utf16Length,this.utf8Length=n.utf8Length,this.utf16OffsetToUtf8=n.utf16OffsetToUtf8,this.utf8OffsetToUtf16=n.utf8OffsetToUtf16,this.utf8Length<1e4&&!e._sharedPtrInUse?(e._sharedPtr||=I.omalloc(1e4),e._sharedPtrInUse=!0,I.HEAPU8.set(n.utf8Value,e._sharedPtr),this.ptr=e._sharedPtr):this.ptr=n.createString(I)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===e._sharedPtr?e._sharedPtrInUse=!1:this._onigBinding.ofree(this.ptr)}};F(Oe,`LAST_ID`,0),F(Oe,`_sharedPtr`,0),F(Oe,`_sharedPtrInUse`,!1);var ke=Oe,Ae=class{constructor(e){if(F(this,`_onigBinding`),F(this,`_ptr`),!I)throw new ye(`Must invoke loadWasm first.`);let t=[],n=[];for(let r=0,i=e.length;r<i;r++){let i=new De(e[r]);t[r]=i.createString(I),n[r]=i.utf8Length}let r=I.omalloc(4*e.length);I.HEAPU32.set(t,r/4);let i=I.omalloc(4*e.length);I.HEAPU32.set(n,i/4);let a=I.createOnigScanner(r,i,e.length);for(let n=0,r=e.length;n<r;n++)I.ofree(t[n]);I.ofree(i),I.ofree(r),a===0&&Ee(I),this._onigBinding=I,this._ptr=a}dispose(){this._onigBinding.freeOnigScanner(this._ptr)}findNextMatchSync(e,t,n){let r=0;if(typeof n==`number`&&(r=n),typeof e==`string`){e=new ke(e);let n=this._findNextMatchSync(e,t,!1,r);return e.dispose(),n}return this._findNextMatchSync(e,t,!1,r)}_findNextMatchSync(e,t,n,r){let i=this._onigBinding,a=i.findNextOnigScannerMatch(this._ptr,e.id,e.ptr,e.utf8Length,e.convertUtf16OffsetToUtf8(t),r);if(a===0)return null;let o=i.HEAPU32,s=a/4,c=o[s++],l=o[s++],u=[];for(let t=0;t<l;t++){let n=e.convertUtf8OffsetToUtf16(o[s++]),r=e.convertUtf8OffsetToUtf16(o[s++]);u[t]={start:n,end:r,length:r-n}}return{index:c,captureIndices:u}}};function je(e){return typeof e.instantiator==`function`}function Me(e){return typeof e.default==`function`}function Ne(e){return e.data!==void 0}function Pe(e){return typeof Response<`u`&&e instanceof Response}function Fe(e){return typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||ArrayBuffer.isView(e))||typeof Buffer<`u`&&Buffer.isBuffer?.(e)||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer||typeof Uint32Array<`u`&&e instanceof Uint32Array}var Ie;function Le(e){if(Ie)return Ie;async function t(){I=await Ce(async t=>{let n=e;return n=await n,typeof n==`function`&&(n=await n(t)),typeof n==`function`&&(n=await n(t)),je(n)?n=await n.instantiator(t):Me(n)?n=await n.default(t):(Ne(n)&&(n=n.data),Pe(n)?n=typeof WebAssembly.instantiateStreaming==`function`?await ze(n)(t):await Be(n)(t):Fe(n)||n instanceof WebAssembly.Module?n=await Re(n)(t):`default`in n&&n.default instanceof WebAssembly.Module&&(n=await Re(n.default)(t))),`instance`in n&&(n=n.instance),`exports`in n&&(n=n.exports),n})}return Ie=t(),Ie}function Re(e){return t=>WebAssembly.instantiate(e,t)}function ze(e){return t=>WebAssembly.instantiateStreaming(e,t)}function Be(e){return async t=>{let n=await e.arrayBuffer();return WebAssembly.instantiate(n,t)}}async function Ve(e){return e&&await Le(e),{createScanner(e){return new Ae(e.map(e=>typeof e==`string`?e:e.source))},createString(e){return new ke(e)}}}var He=i({langs:n,themes:ve,engine:()=>Ve(c(()=>import(`./wasm-CEUrWlVz.js`),[]))}),{codeToHtml:Ue,codeToHast:We,codeToTokens:Ge,codeToTokensBase:Ke,codeToTokensWithThemes:qe,getSingletonHighlighter:Je,getLastGrammarState:Ye}=t(He,{guessEmbeddedLanguages:e});async function Xe(e){if(_e())throw Error(`resolveLanguage("${e}") cannot be called from a worker context. Languages must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);let t=pe.get(e);if(t!=null)return t;try{let t=me.get(e);if(t==null&&Object.prototype.hasOwnProperty.call(n,e)&&(t=n[e]),t==null)throw Error(`resolveLanguage: "${e}" not found in bundled or custom languages`);let r=t().then(({default:t})=>{let n={name:e,data:t};return P.has(e)||P.set(e,n),n});return pe.set(e,r),await r}finally{pe.delete(e)}}function Ze(e){return P.get(e)??Xe(e)}async function Qe(e){if(_e())throw Error(`resolveTheme("${e}") cannot be called from a worker context. Themes must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);let t=le.get(e);if(t!=null)return t;try{let t=ue.get(e)??ve[e];if(t==null)throw Error(`resolveTheme: No valid loader for ${e}`);let n=t().then(t=>$e(e,`default`in t?t.default:t));le.set(e,n);let r=await n;if(r.name!==e)throw Error(`resolvedTheme: themeName: ${e} does not match theme.name: ${r.name}`);return N.set(r.name,r),r}finally{le.delete(e)}}function $e(e,t){return N.get(e)??(t=r(t),N.set(e,t),t)}function et(e){return N.get(e)??Qe(e)}function tt(e,t){if(ue.has(e)){console.error(`SharedHighlight.registerCustomTheme: theme name already registered`,e);return}ue.set(e,t)}var L;async function nt({themes:e,langs:t,preferredHighlighter:n=`shiki-js`}){L??=He({themes:[],langs:[`text`],engine:n===`shiki-wasm`?Ve(c(()=>import(`./wasm-CEUrWlVz.js`),[])):o()});let r=it(L)?await L:L;L=r;let i=[];for(let e of t){if(e===`text`||e===`ansi`)continue;let t=Ze(e);`then`in t?i.push(t):ge(t,r)}let a=[];for(let t of e){let e=et(t);`then`in e?a.push(e):fe(e,L)}return(i.length>0||a.length>0)&&await Promise.all([Promise.all(i).then(e=>{ge(e,r)}),Promise.all(a).then(e=>{fe(e,r)})]),r}function rt(){if(L!=null&&!(`then`in L))return L}function it(e=L){return e!=null&&`then`in e}tt(`pierre-dark`,async()=>{let{default:e}=await c(async()=>{let{default:e}=await import(`./pierre-dark-CizZ1Z5z.js`);return{default:e}},[]);return{...e,name:`pierre-dark`}}),tt(`pierre-light`,async()=>{let{default:e}=await c(async()=>{let{default:e}=await import(`./pierre-light-CHMWfAMe.js`);return{default:e}},[]);return{...e,name:`pierre-light`}});function at(e=k){let t=[];return typeof e==`string`?t.push(e):(t.push(e.dark),t.push(e.light)),t}function ot(e,t){return e==null||t==null||typeof e==`string`||typeof t==`string`?e===t:e.dark===t.dark&&e.light===t.light}var R=new Map,z={"1c":`1c`,abap:`abap`,as:`actionscript-3`,ada:`ada`,adb:`ada`,ads:`ada`,adoc:`asciidoc`,asciidoc:`asciidoc`,"component.html":`angular-html`,"component.ts":`angular-ts`,conf:`nginx`,htaccess:`apache`,cls:`tex`,trigger:`apex`,apl:`apl`,applescript:`applescript`,scpt:`applescript`,ara:`ara`,asm:`asm`,s:`riscv`,astro:`astro`,awk:`awk`,bal:`ballerina`,sh:`zsh`,bash:`zsh`,bat:`cmd`,cmd:`cmd`,be:`berry`,beancount:`beancount`,bib:`bibtex`,bicep:`bicep`,"blade.php":`blade`,bsl:`bsl`,c:`c`,h:`objective-cpp`,cs:`csharp`,cpp:`cpp`,hpp:`cpp`,cc:`cpp`,cxx:`cpp`,hh:`cpp`,cdc:`cdc`,cairo:`cairo`,clar:`clarity`,clj:`clojure`,cljs:`clojure`,cljc:`clojure`,soy:`soy`,cmake:`cmake`,"CMakeLists.txt":`cmake`,cob:`cobol`,cbl:`cobol`,cobol:`cobol`,CODEOWNERS:`codeowners`,ql:`ql`,coffee:`coffeescript`,lisp:`lisp`,cl:`lisp`,lsp:`lisp`,log:`log`,v:`verilog`,cql:`cql`,cr:`crystal`,css:`css`,csv:`csv`,cue:`cue`,cypher:`cypher`,cyp:`cypher`,d:`d`,dart:`dart`,dax:`dax`,desktop:`desktop`,diff:`diff`,patch:`diff`,Dockerfile:`dockerfile`,dockerfile:`dockerfile`,env:`dotenv`,dm:`dream-maker`,edge:`edge`,el:`emacs-lisp`,ex:`elixir`,exs:`elixir`,elm:`elm`,erb:`erb`,erl:`erlang`,hrl:`erlang`,f:`fortran-fixed-form`,for:`fortran-fixed-form`,fs:`fsharp`,fsi:`fsharp`,fsx:`fsharp`,f03:`f03`,f08:`f08`,f18:`f18`,f77:`f77`,f90:`fortran-free-form`,f95:`fortran-free-form`,fnl:`fennel`,fish:`fish`,ftl:`ftl`,tres:`gdresource`,res:`gdresource`,gd:`gdscript`,gdshader:`gdshader`,gs:`genie`,feature:`gherkin`,COMMIT_EDITMSG:`git-commit`,"git-rebase-todo":`git-rebase`,gjs:`glimmer-js`,gleam:`gleam`,gts:`glimmer-ts`,glsl:`glsl`,vert:`glsl`,frag:`glsl`,shader:`shaderlab`,gp:`gnuplot`,plt:`gnuplot`,gnuplot:`gnuplot`,go:`go`,graphql:`graphql`,gql:`graphql`,groovy:`groovy`,gvy:`groovy`,hack:`hack`,haml:`haml`,hbs:`handlebars`,handlebars:`handlebars`,hs:`haskell`,lhs:`haskell`,hx:`haxe`,hcl:`hcl`,hjson:`hjson`,hlsl:`hlsl`,fx:`hlsl`,html:`html`,htm:`html`,http:`http`,rest:`http`,hxml:`hxml`,hy:`hy`,imba:`imba`,ini:`ini`,cfg:`ini`,jade:`pug`,pug:`pug`,java:`java`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jinja:`jinja`,jinja2:`jinja`,j2:`jinja`,jison:`jison`,jl:`julia`,json:`json`,json5:`json5`,jsonc:`jsonc`,jsonl:`jsonl`,jsonnet:`jsonnet`,libsonnet:`jsonnet`,jssm:`jssm`,jsx:`jsx`,kt:`kotlin`,kts:`kts`,kql:`kusto`,tex:`tex`,ltx:`tex`,lean:`lean4`,less:`less`,liquid:`liquid`,lit:`lit`,ll:`llvm`,logo:`logo`,lua:`lua`,luau:`luau`,Makefile:`makefile`,mk:`makefile`,makefile:`makefile`,md:`markdown`,markdown:`markdown`,marko:`marko`,m:`wolfram`,mat:`matlab`,mdc:`mdc`,mdx:`mdx`,wiki:`wikitext`,mediawiki:`wikitext`,mmd:`mermaid`,mermaid:`mermaid`,mips:`mipsasm`,mojo:`mojo`,"🔥":`mojo`,move:`move`,nar:`narrat`,nf:`nextflow`,nim:`nim`,nims:`nim`,nimble:`nim`,nix:`nix`,nu:`nushell`,mm:`objective-cpp`,ml:`ocaml`,mli:`ocaml`,mll:`ocaml`,mly:`ocaml`,pas:`pascal`,p:`pascal`,pl:`prolog`,pm:`perl`,t:`perl`,raku:`raku`,p6:`raku`,pl6:`raku`,php:`php`,phtml:`php`,pls:`plsql`,sql:`sql`,po:`po`,polar:`polar`,pcss:`postcss`,pot:`pot`,potx:`potx`,pq:`powerquery`,pqm:`powerquery`,ps1:`powershell`,psm1:`powershell`,psd1:`powershell`,prisma:`prisma`,pro:`prolog`,P:`prolog`,properties:`properties`,proto:`protobuf`,pp:`puppet`,purs:`purescript`,py:`python`,pyw:`python`,pyi:`python`,qml:`qml`,qmldir:`qmldir`,qss:`qss`,r:`r`,R:`r`,rkt:`racket`,rktl:`racket`,razor:`razor`,cshtml:`razor`,rb:`ruby`,rbw:`ruby`,reg:`reg`,regex:`regexp`,rel:`rel`,rs:`rust`,rst:`rst`,rake:`ruby`,gemspec:`ruby`,sas:`sas`,sass:`sass`,scala:`scala`,sc:`scala`,scm:`scheme`,ss:`scheme`,sld:`scheme`,scss:`scss`,sdbl:`sdbl`,shadergraph:`shader`,st:`smalltalk`,sol:`solidity`,sparql:`sparql`,rq:`sparql`,spl:`splunk`,config:`ssh-config`,do:`stata`,ado:`stata`,dta:`stata`,styl:`stylus`,stylus:`stylus`,svelte:`svelte`,swift:`swift`,sv:`system-verilog`,svh:`system-verilog`,service:`systemd`,socket:`systemd`,device:`systemd`,timer:`systemd`,talon:`talonscript`,tasl:`tasl`,tcl:`tcl`,templ:`templ`,tf:`tf`,tfvars:`tfvars`,toml:`toml`,ts:`typescript`,tsp:`typespec`,tsv:`tsv`,tsx:`tsx`,ttl:`turtle`,twig:`twig`,typ:`typst`,vv:`v`,vala:`vala`,vapi:`vala`,vb:`vb`,vbs:`vb`,bas:`vb`,vh:`verilog`,vhd:`vhdl`,vhdl:`vhdl`,vim:`vimscript`,vue:`vue`,"vine.ts":`vue-vine`,vy:`vyper`,wasm:`wasm`,wat:`wasm`,wy:`文言`,wgsl:`wgsl`,wit:`wit`,wl:`wolfram`,nb:`wolfram`,xml:`xml`,xsl:`xsl`,xslt:`xsl`,yaml:`yaml`,yml:`yml`,zs:`zenscript`,zig:`zig`,zsh:`zsh`,sty:`tex`};function B(e){if(R.has(e))return R.get(e)??`text`;if(z[e]!=null)return z[e];let t=e.match(/\.([^/\\]+\.[^/\\]+)$/);if(t!=null){if(R.has(t[1]))return R.get(t[1])??`text`;if(z[t[1]]!=null)return z[t[1]]??`text`}let n=e.match(/\.([^.]+)$/)?.[1]??``;return R.has(n)?R.get(n)??`text`:z[n]??`text`}function V(e){return e.replace(/\n$|\r\n$/,``)}function H(e){return{type:`text`,value:e}}function U({tagName:e,children:t=[],properties:n={}}){return{type:`element`,tagName:e,properties:n,children:t}}function st({name:e,width:t=16,height:n=16,properties:r}){return U({tagName:`svg`,properties:{width:t,height:n,viewBox:`0 0 16 16`,...r},children:[U({tagName:`use`,properties:{href:`#${e.replace(/^#/,``)}`}})]})}function ct(e){let t=e.children[0];for(;t!=null;){if(t.type===`element`&&t.tagName===`code`)return t;t=`children`in t?t.children[0]:null}}function lt(e){return U({tagName:`div`,properties:{"data-gutter":``},children:e})}function ut(e,t,n,r={}){return U({tagName:`div`,properties:{"data-line-type":e,"data-column-number":t,"data-line-index":n,...r},children:t==null?void 0:[U({tagName:`span`,properties:{"data-line-number-content":``},children:[H(`${t}`)]})]})}function W(e,t,n){return U({tagName:`div`,properties:{"data-gutter-buffer":t,"data-buffer-size":n,"data-line-type":t===`annotation`?void 0:e,style:t===`annotation`?`grid-row: span ${n};`:`grid-row: span ${n};min-height:calc(${n} * 1lh);`}})}function dt(e,t,n){let r=typeof n.lineInfo==`function`?n.lineInfo(t):n.lineInfo[t-1];if(r==null){let r=`processLine: line ${t}, contains no state.lineInfo`;throw console.error(r,{node:e,line:t,state:n}),Error(r)}return e.tagName=`div`,e.properties[`data-line`]=r.lineNumber,e.properties[`data-alt-line`]=r.altLineNumber,e.properties[`data-line-type`]=r.type,e.properties[`data-line-index`]=r.lineIndex,e.children.length===0&&e.children.push(H(`
|
|
1
|
+
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./engine-compile-X009Avpn.js";import{d as s,n as c,p as l,t as u,u as d}from"./index-Cn7Zu-W8.js";var f={position:`absolute`,top:0,bottom:0,textAlign:`center`},p={display:`contents`};function m(){return null}var h=`diffs-container`,g=/(?=^From [a-f0-9]+ .+$)/m,_=/(?=^diff --git)/gm,v=/(?=^---\s+\S)/gm,y=/(?=^@@ )/gm,b=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(?: (.*))?/m,x=/(?<=\n)/,S=/^(---|\+\+\+)\s+([^\t\r\n]+)/,C=/^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/,w=/^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/,T=/^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i,E=`header-prefix`,D=`header-metadata`,O=`header-custom`,k={dark:`pierre-dark`,light:`pierre-light`},ee=`data-theme-css`,te=`data-unsafe-css`,ne={hunkLineCount:50,lineHeight:20,diffHeaderHeight:44,hunkSeparatorHeight:32,fileGap:8},re=Object.freeze({fromStart:0,fromEnd:0}),ie={startingLine:0,totalLines:1/0,bufferBefore:0,bufferAfter:0},ae={startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:0};function A(e){return`annotation-${`side`in e?`${e.side}-`:``}${e.lineNumber}`}var j=d();function oe(e,t){return typeof window>`u`&&t!=null?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`template`,{shadowrootmode:`open`,dangerouslySetInnerHTML:{__html:t}}),e]}):(0,j.jsx)(j.Fragment,{children:e})}var M=l(s(),1),se=(0,M.createContext)(void 0);function ce(){return(0,M.useContext)(se)}var N=new Map,le=new Map,ue=new Map,de=new Set;function fe(e,t){e=Array.isArray(e)?e:[e];for(let n of e){let e;if(typeof n==`string`){if(e=N.get(n),e==null)throw Error(`loadResolvedThemes: ${n} is not resolved, you must resolve it before calling loadResolvedThemes`)}else e=n,n=n.name,N.has(n)||N.set(n,e);de.has(n)||(de.add(n),t.loadThemeSync(e))}}var P=new Map,pe=new Map,me=new Map,he=new Set;function ge(e,t){e=Array.isArray(e)?e:[e];for(let n of e){if(he.has(n.name))continue;let e=P.get(n.name);e??(e=n,P.set(n.name,e)),he.add(e.name),t.loadLanguageSync(e.data)}}function _e(){return typeof WorkerGlobalScope<`u`&&typeof self<`u`&&self instanceof WorkerGlobalScope}var ve=Object.fromEntries([{id:`andromeeda`,displayName:`Andromeeda`,type:`dark`,import:(()=>c(()=>import(`./andromeeda-N4z3YzmR.js`),[]))},{id:`aurora-x`,displayName:`Aurora X`,type:`dark`,import:(()=>c(()=>import(`./aurora-x-CND-FqEb.js`),[]))},{id:`ayu-dark`,displayName:`Ayu Dark`,type:`dark`,import:(()=>c(()=>import(`./ayu-dark-on7xzq_B.js`),[]))},{id:`ayu-light`,displayName:`Ayu Light`,type:`light`,import:(()=>c(()=>import(`./ayu-light-DnGeGGc2.js`),[]))},{id:`ayu-mirage`,displayName:`Ayu Mirage`,type:`dark`,import:(()=>c(()=>import(`./ayu-mirage-DG3LlYC_.js`),[]))},{id:`catppuccin-frappe`,displayName:`Catppuccin Frappé`,type:`dark`,import:(()=>c(()=>import(`./catppuccin-frappe-Dr22sraq.js`),[]))},{id:`catppuccin-latte`,displayName:`Catppuccin Latte`,type:`light`,import:(()=>c(()=>import(`./catppuccin-latte-C57EeX8c.js`),[]))},{id:`catppuccin-macchiato`,displayName:`Catppuccin Macchiato`,type:`dark`,import:(()=>c(()=>import(`./catppuccin-macchiato-CpheI4uD.js`),[]))},{id:`catppuccin-mocha`,displayName:`Catppuccin Mocha`,type:`dark`,import:(()=>c(()=>import(`./catppuccin-mocha-D8Lmdks_.js`),[]))},{id:`dark-plus`,displayName:`Dark Plus`,type:`dark`,import:(()=>c(()=>import(`./dark-plus-CqeW_0kH.js`),[]))},{id:`dracula`,displayName:`Dracula Theme`,type:`dark`,import:(()=>c(()=>import(`./dracula-CtqCPLGa.js`),[]))},{id:`dracula-soft`,displayName:`Dracula Theme Soft`,type:`dark`,import:(()=>c(()=>import(`./dracula-soft-DmBpwRAy.js`),[]))},{id:`everforest-dark`,displayName:`Everforest Dark`,type:`dark`,import:(()=>c(()=>import(`./everforest-dark-CrbyKk4n.js`),[]))},{id:`everforest-light`,displayName:`Everforest Light`,type:`light`,import:(()=>c(()=>import(`./everforest-light-DRbSh8Tm.js`),[]))},{id:`github-dark`,displayName:`GitHub Dark`,type:`dark`,import:(()=>c(()=>import(`./github-dark-ipGuFGYC.js`),[]))},{id:`github-dark-default`,displayName:`GitHub Dark Default`,type:`dark`,import:(()=>c(()=>import(`./github-dark-default-DX3IG_X0.js`),[]))},{id:`github-dark-dimmed`,displayName:`GitHub Dark Dimmed`,type:`dark`,import:(()=>c(()=>import(`./github-dark-dimmed-CH6p_7ez.js`),[]))},{id:`github-dark-high-contrast`,displayName:`GitHub Dark High Contrast`,type:`dark`,import:(()=>c(()=>import(`./github-dark-high-contrast-Bg2sSao5.js`),[]))},{id:`github-light`,displayName:`GitHub Light`,type:`light`,import:(()=>c(()=>import(`./github-light-BxjqOQl0.js`),[]))},{id:`github-light-default`,displayName:`GitHub Light Default`,type:`light`,import:(()=>c(()=>import(`./github-light-default-DwpDd1IQ.js`),[]))},{id:`github-light-high-contrast`,displayName:`GitHub Light High Contrast`,type:`light`,import:(()=>c(()=>import(`./github-light-high-contrast-C0QeixPf.js`),[]))},{id:`gruvbox-dark-hard`,displayName:`Gruvbox Dark Hard`,type:`dark`,import:(()=>c(()=>import(`./gruvbox-dark-hard-BIMX9ePb.js`),[]))},{id:`gruvbox-dark-medium`,displayName:`Gruvbox Dark Medium`,type:`dark`,import:(()=>c(()=>import(`./gruvbox-dark-medium-DxuwyVzM.js`),[]))},{id:`gruvbox-dark-soft`,displayName:`Gruvbox Dark Soft`,type:`dark`,import:(()=>c(()=>import(`./gruvbox-dark-soft-ba2fjht0.js`),[]))},{id:`gruvbox-light-hard`,displayName:`Gruvbox Light Hard`,type:`light`,import:(()=>c(()=>import(`./gruvbox-light-hard-DAJK2PqC.js`),[]))},{id:`gruvbox-light-medium`,displayName:`Gruvbox Light Medium`,type:`light`,import:(()=>c(()=>import(`./gruvbox-light-medium-WRifDAJD.js`),[]))},{id:`gruvbox-light-soft`,displayName:`Gruvbox Light Soft`,type:`light`,import:(()=>c(()=>import(`./gruvbox-light-soft-B0dBOoVB.js`),[]))},{id:`horizon`,displayName:`Horizon`,type:`dark`,import:(()=>c(()=>import(`./horizon-C5RtD1fY.js`),[]))},{id:`horizon-bright`,displayName:`Horizon Bright`,type:`dark`,import:(()=>c(()=>import(`./horizon-bright-pEOice34.js`),[]))},{id:`houston`,displayName:`Houston`,type:`dark`,import:(()=>c(()=>import(`./houston-A0zg9vNP.js`),[]))},{id:`kanagawa-dragon`,displayName:`Kanagawa Dragon`,type:`dark`,import:(()=>c(()=>import(`./kanagawa-dragon-CtPmcCMp.js`),[]))},{id:`kanagawa-lotus`,displayName:`Kanagawa Lotus`,type:`light`,import:(()=>c(()=>import(`./kanagawa-lotus-DpOXEGCa.js`),[]))},{id:`kanagawa-wave`,displayName:`Kanagawa Wave`,type:`dark`,import:(()=>c(()=>import(`./kanagawa-wave-CLVCyc-n.js`),[]))},{id:`laserwave`,displayName:`LaserWave`,type:`dark`,import:(()=>c(()=>import(`./laserwave-7fEj4XGb.js`),[]))},{id:`light-plus`,displayName:`Light Plus`,type:`light`,import:(()=>c(()=>import(`./light-plus-DHI2dh3p.js`),[]))},{id:`material-theme`,displayName:`Material Theme`,type:`dark`,import:(()=>c(()=>import(`./material-theme-Dm6ETY8i.js`),[]))},{id:`material-theme-darker`,displayName:`Material Theme Darker`,type:`dark`,import:(()=>c(()=>import(`./material-theme-darker-BeyjmM5Z.js`),[]))},{id:`material-theme-lighter`,displayName:`Material Theme Lighter`,type:`light`,import:(()=>c(()=>import(`./material-theme-lighter-CCOYYzKL.js`),[]))},{id:`material-theme-ocean`,displayName:`Material Theme Ocean`,type:`dark`,import:(()=>c(()=>import(`./material-theme-ocean-CUtPiiX3.js`),[]))},{id:`material-theme-palenight`,displayName:`Material Theme Palenight`,type:`dark`,import:(()=>c(()=>import(`./material-theme-palenight-2L4zMwIM.js`),[]))},{id:`min-dark`,displayName:`Min Dark`,type:`dark`,import:(()=>c(()=>import(`./min-dark-B8TUPGHg.js`),[]))},{id:`min-light`,displayName:`Min Light`,type:`light`,import:(()=>c(()=>import(`./min-light-BDOoBxcA.js`),[]))},{id:`monokai`,displayName:`Monokai`,type:`dark`,import:(()=>c(()=>import(`./monokai-E_VBmXGZ.js`),[]))},{id:`night-owl`,displayName:`Night Owl`,type:`dark`,import:(()=>c(()=>import(`./night-owl-DefhalNX.js`),[]))},{id:`night-owl-light`,displayName:`Night Owl Light`,type:`light`,import:(()=>c(()=>import(`./night-owl-light-byb3AbEn.js`),[]))},{id:`nord`,displayName:`Nord`,type:`dark`,import:(()=>c(()=>import(`./nord-D5rQzHT-.js`),[]))},{id:`one-dark-pro`,displayName:`One Dark Pro`,type:`dark`,import:(()=>c(()=>import(`./one-dark-pro-DxXww9jg.js`),[]))},{id:`one-light`,displayName:`One Light`,type:`light`,import:(()=>c(()=>import(`./one-light-D9c03w7t.js`),[]))},{id:`plastic`,displayName:`Plastic`,type:`dark`,import:(()=>c(()=>import(`./plastic-uOsw7z1x.js`),[]))},{id:`poimandres`,displayName:`Poimandres`,type:`dark`,import:(()=>c(()=>import(`./poimandres-CyO4HORD.js`),[]))},{id:`red`,displayName:`Red`,type:`dark`,import:(()=>c(()=>import(`./red-z4H4llUY.js`),[]))},{id:`rose-pine`,displayName:`Rosé Pine`,type:`dark`,import:(()=>c(()=>import(`./rose-pine-BADquuIH.js`),[]))},{id:`rose-pine-dawn`,displayName:`Rosé Pine Dawn`,type:`light`,import:(()=>c(()=>import(`./rose-pine-dawn-BLcEeBoh.js`),[]))},{id:`rose-pine-moon`,displayName:`Rosé Pine Moon`,type:`dark`,import:(()=>c(()=>import(`./rose-pine-moon-BK_tLY1Y.js`),[]))},{id:`slack-dark`,displayName:`Slack Dark`,type:`dark`,import:(()=>c(()=>import(`./slack-dark-DOnVms5P.js`),[]))},{id:`slack-ochin`,displayName:`Slack Ochin`,type:`light`,import:(()=>c(()=>import(`./slack-ochin-DcRTft4q.js`),[]))},{id:`snazzy-light`,displayName:`Snazzy Light`,type:`light`,import:(()=>c(()=>import(`./snazzy-light-x9CLJ1W9.js`),[]))},{id:`solarized-dark`,displayName:`Solarized Dark`,type:`dark`,import:(()=>c(()=>import(`./solarized-dark-BB1sh-pe.js`),[]))},{id:`solarized-light`,displayName:`Solarized Light`,type:`light`,import:(()=>c(()=>import(`./solarized-light-9-RPS998.js`),[]))},{id:`synthwave-84`,displayName:`Synthwave '84`,type:`dark`,import:(()=>c(()=>import(`./synthwave-84-eJ9uRN_S.js`),[]))},{id:`tokyo-night`,displayName:`Tokyo Night`,type:`dark`,import:(()=>c(()=>import(`./tokyo-night-B9N7LyrF.js`),[]))},{id:`vesper`,displayName:`Vesper`,type:`dark`,import:(()=>c(()=>import(`./vesper-CtgQQ2sf.js`),[]))},{id:`vitesse-black`,displayName:`Vitesse Black`,type:`dark`,import:(()=>c(()=>import(`./vitesse-black-jXdfyqgD.js`),[]))},{id:`vitesse-dark`,displayName:`Vitesse Dark`,type:`dark`,import:(()=>c(()=>import(`./vitesse-dark-B88PxG1r.js`),[]))},{id:`vitesse-light`,displayName:`Vitesse Light`,type:`light`,import:(()=>c(()=>import(`./vitesse-light-BXxZh2iV.js`),[]))}].map(e=>[e.id,e.import])),ye=class extends Error{constructor(e){super(e),this.name=`ShikiError`}};function be(){return 2147483648}function xe(){return typeof performance<`u`?performance.now():Date.now()}var Se=(e,t)=>e+(t-e%t)%t;async function Ce(e){let t,n,r={};function i(e){n=e,r.HEAPU8=new Uint8Array(e),r.HEAPU32=new Uint32Array(e)}function a(e,t,n){r.HEAPU8.copyWithin(e,t,t+n)}function o(e){try{return t.grow(e-n.byteLength+65535>>>16),i(t.buffer),1}catch{}}function s(e){let t=r.HEAPU8.length;e>>>=0;let n=be();if(e>n)return!1;for(let r=1;r<=4;r*=2){let i=t*(1+.2/r);if(i=Math.min(i,e+100663296),o(Math.min(n,Se(Math.max(e,i),65536))))return!0}return!1}let c=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0;function l(e,t,n=1024){let r=t+n,i=t;for(;e[i]&&!(i>=r);)++i;if(i-t>16&&e.buffer&&c)return c.decode(e.subarray(t,i));let a=``;for(;t<i;){let n=e[t++];if(!(n&128)){a+=String.fromCharCode(n);continue}let r=e[t++]&63;if((n&224)==192){a+=String.fromCharCode((n&31)<<6|r);continue}let i=e[t++]&63;if(n=(n&240)==224?(n&15)<<12|r<<6|i:(n&7)<<18|r<<12|i<<6|e[t++]&63,n<65536)a+=String.fromCharCode(n);else{let e=n-65536;a+=String.fromCharCode(55296|e>>10,56320|e&1023)}}return a}function u(e,t){return e?l(r.HEAPU8,e,t):``}let d={emscripten_get_now:xe,emscripten_memcpy_big:a,emscripten_resize_heap:s,fd_write:()=>0};async function f(){let n=await e({env:d,wasi_snapshot_preview1:d});t=n.memory,i(t.buffer),Object.assign(r,n),r.UTF8ToString=u}return await f(),r}var we=Object.defineProperty,Te=(e,t,n)=>t in e?we(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,F=(e,t,n)=>Te(e,typeof t==`symbol`?t:t+``,n),I=null;function Ee(e){throw new ye(e.UTF8ToString(e.getLastOnigError()))}var De=class e{constructor(t){F(this,`utf16Length`),F(this,`utf8Length`),F(this,`utf16Value`),F(this,`utf8Value`),F(this,`utf16OffsetToUtf8`),F(this,`utf8OffsetToUtf16`);let n=t.length,r=e._utf8ByteLength(t),i=r!==n,a=i?new Uint32Array(n+1):null;i&&(a[n]=r);let o=i?new Uint32Array(r+1):null;i&&(o[r]=n);let s=new Uint8Array(r),c=0;for(let e=0;e<n;e++){let r=t.charCodeAt(e),l=r,u=!1;if(r>=55296&&r<=56319&&e+1<n){let n=t.charCodeAt(e+1);n>=56320&&n<=57343&&(l=(r-55296<<10)+65536|n-56320,u=!0)}i&&(a[e]=c,u&&(a[e+1]=c),l<=127?o[c+0]=e:l<=2047?(o[c+0]=e,o[c+1]=e):l<=65535?(o[c+0]=e,o[c+1]=e,o[c+2]=e):(o[c+0]=e,o[c+1]=e,o[c+2]=e,o[c+3]=e)),l<=127?s[c++]=l:l<=2047?(s[c++]=192|(l&1984)>>>6,s[c++]=128|(l&63)>>>0):l<=65535?(s[c++]=224|(l&61440)>>>12,s[c++]=128|(l&4032)>>>6,s[c++]=128|(l&63)>>>0):(s[c++]=240|(l&1835008)>>>18,s[c++]=128|(l&258048)>>>12,s[c++]=128|(l&4032)>>>6,s[c++]=128|(l&63)>>>0),u&&e++}this.utf16Length=n,this.utf8Length=r,this.utf16Value=t,this.utf8Value=s,this.utf16OffsetToUtf8=a,this.utf8OffsetToUtf16=o}static _utf8ByteLength(e){let t=0;for(let n=0,r=e.length;n<r;n++){let i=e.charCodeAt(n),a=i,o=!1;if(i>=55296&&i<=56319&&n+1<r){let t=e.charCodeAt(n+1);t>=56320&&t<=57343&&(a=(i-55296<<10)+65536|t-56320,o=!0)}a<=127?t+=1:a<=2047?t+=2:a<=65535?t+=3:t+=4,o&&n++}return t}createString(e){let t=e.omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}},Oe=class e{constructor(t){if(F(this,`id`,++e.LAST_ID),F(this,`_onigBinding`),F(this,`content`),F(this,`utf16Length`),F(this,`utf8Length`),F(this,`utf16OffsetToUtf8`),F(this,`utf8OffsetToUtf16`),F(this,`ptr`),!I)throw new ye(`Must invoke loadWasm first.`);this._onigBinding=I,this.content=t;let n=new De(t);this.utf16Length=n.utf16Length,this.utf8Length=n.utf8Length,this.utf16OffsetToUtf8=n.utf16OffsetToUtf8,this.utf8OffsetToUtf16=n.utf8OffsetToUtf16,this.utf8Length<1e4&&!e._sharedPtrInUse?(e._sharedPtr||=I.omalloc(1e4),e._sharedPtrInUse=!0,I.HEAPU8.set(n.utf8Value,e._sharedPtr),this.ptr=e._sharedPtr):this.ptr=n.createString(I)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===e._sharedPtr?e._sharedPtrInUse=!1:this._onigBinding.ofree(this.ptr)}};F(Oe,`LAST_ID`,0),F(Oe,`_sharedPtr`,0),F(Oe,`_sharedPtrInUse`,!1);var ke=Oe,Ae=class{constructor(e){if(F(this,`_onigBinding`),F(this,`_ptr`),!I)throw new ye(`Must invoke loadWasm first.`);let t=[],n=[];for(let r=0,i=e.length;r<i;r++){let i=new De(e[r]);t[r]=i.createString(I),n[r]=i.utf8Length}let r=I.omalloc(4*e.length);I.HEAPU32.set(t,r/4);let i=I.omalloc(4*e.length);I.HEAPU32.set(n,i/4);let a=I.createOnigScanner(r,i,e.length);for(let n=0,r=e.length;n<r;n++)I.ofree(t[n]);I.ofree(i),I.ofree(r),a===0&&Ee(I),this._onigBinding=I,this._ptr=a}dispose(){this._onigBinding.freeOnigScanner(this._ptr)}findNextMatchSync(e,t,n){let r=0;if(typeof n==`number`&&(r=n),typeof e==`string`){e=new ke(e);let n=this._findNextMatchSync(e,t,!1,r);return e.dispose(),n}return this._findNextMatchSync(e,t,!1,r)}_findNextMatchSync(e,t,n,r){let i=this._onigBinding,a=i.findNextOnigScannerMatch(this._ptr,e.id,e.ptr,e.utf8Length,e.convertUtf16OffsetToUtf8(t),r);if(a===0)return null;let o=i.HEAPU32,s=a/4,c=o[s++],l=o[s++],u=[];for(let t=0;t<l;t++){let n=e.convertUtf8OffsetToUtf16(o[s++]),r=e.convertUtf8OffsetToUtf16(o[s++]);u[t]={start:n,end:r,length:r-n}}return{index:c,captureIndices:u}}};function je(e){return typeof e.instantiator==`function`}function Me(e){return typeof e.default==`function`}function Ne(e){return e.data!==void 0}function Pe(e){return typeof Response<`u`&&e instanceof Response}function Fe(e){return typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||ArrayBuffer.isView(e))||typeof Buffer<`u`&&Buffer.isBuffer?.(e)||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer||typeof Uint32Array<`u`&&e instanceof Uint32Array}var Ie;function Le(e){if(Ie)return Ie;async function t(){I=await Ce(async t=>{let n=e;return n=await n,typeof n==`function`&&(n=await n(t)),typeof n==`function`&&(n=await n(t)),je(n)?n=await n.instantiator(t):Me(n)?n=await n.default(t):(Ne(n)&&(n=n.data),Pe(n)?n=typeof WebAssembly.instantiateStreaming==`function`?await ze(n)(t):await Be(n)(t):Fe(n)||n instanceof WebAssembly.Module?n=await Re(n)(t):`default`in n&&n.default instanceof WebAssembly.Module&&(n=await Re(n.default)(t))),`instance`in n&&(n=n.instance),`exports`in n&&(n=n.exports),n})}return Ie=t(),Ie}function Re(e){return t=>WebAssembly.instantiate(e,t)}function ze(e){return t=>WebAssembly.instantiateStreaming(e,t)}function Be(e){return async t=>{let n=await e.arrayBuffer();return WebAssembly.instantiate(n,t)}}async function Ve(e){return e&&await Le(e),{createScanner(e){return new Ae(e.map(e=>typeof e==`string`?e:e.source))},createString(e){return new ke(e)}}}var He=i({langs:n,themes:ve,engine:()=>Ve(c(()=>import(`./wasm-CEUrWlVz.js`),[]))}),{codeToHtml:Ue,codeToHast:We,codeToTokens:Ge,codeToTokensBase:Ke,codeToTokensWithThemes:qe,getSingletonHighlighter:Je,getLastGrammarState:Ye}=t(He,{guessEmbeddedLanguages:e});async function Xe(e){if(_e())throw Error(`resolveLanguage("${e}") cannot be called from a worker context. Languages must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);let t=pe.get(e);if(t!=null)return t;try{let t=me.get(e);if(t==null&&Object.prototype.hasOwnProperty.call(n,e)&&(t=n[e]),t==null)throw Error(`resolveLanguage: "${e}" not found in bundled or custom languages`);let r=t().then(({default:t})=>{let n={name:e,data:t};return P.has(e)||P.set(e,n),n});return pe.set(e,r),await r}finally{pe.delete(e)}}function Ze(e){return P.get(e)??Xe(e)}async function Qe(e){if(_e())throw Error(`resolveTheme("${e}") cannot be called from a worker context. Themes must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);let t=le.get(e);if(t!=null)return t;try{let t=ue.get(e)??ve[e];if(t==null)throw Error(`resolveTheme: No valid loader for ${e}`);let n=t().then(t=>$e(e,`default`in t?t.default:t));le.set(e,n);let r=await n;if(r.name!==e)throw Error(`resolvedTheme: themeName: ${e} does not match theme.name: ${r.name}`);return N.set(r.name,r),r}finally{le.delete(e)}}function $e(e,t){return N.get(e)??(t=r(t),N.set(e,t),t)}function et(e){return N.get(e)??Qe(e)}function tt(e,t){if(ue.has(e)){console.error(`SharedHighlight.registerCustomTheme: theme name already registered`,e);return}ue.set(e,t)}var L;async function nt({themes:e,langs:t,preferredHighlighter:n=`shiki-js`}){L??=He({themes:[],langs:[`text`],engine:n===`shiki-wasm`?Ve(c(()=>import(`./wasm-CEUrWlVz.js`),[])):o()});let r=it(L)?await L:L;L=r;let i=[];for(let e of t){if(e===`text`||e===`ansi`)continue;let t=Ze(e);`then`in t?i.push(t):ge(t,r)}let a=[];for(let t of e){let e=et(t);`then`in e?a.push(e):fe(e,L)}return(i.length>0||a.length>0)&&await Promise.all([Promise.all(i).then(e=>{ge(e,r)}),Promise.all(a).then(e=>{fe(e,r)})]),r}function rt(){if(L!=null&&!(`then`in L))return L}function it(e=L){return e!=null&&`then`in e}tt(`pierre-dark`,async()=>{let{default:e}=await c(async()=>{let{default:e}=await import(`./pierre-dark-CizZ1Z5z.js`);return{default:e}},[]);return{...e,name:`pierre-dark`}}),tt(`pierre-light`,async()=>{let{default:e}=await c(async()=>{let{default:e}=await import(`./pierre-light-CHMWfAMe.js`);return{default:e}},[]);return{...e,name:`pierre-light`}});function at(e=k){let t=[];return typeof e==`string`?t.push(e):(t.push(e.dark),t.push(e.light)),t}function ot(e,t){return e==null||t==null||typeof e==`string`||typeof t==`string`?e===t:e.dark===t.dark&&e.light===t.light}var R=new Map,z={"1c":`1c`,abap:`abap`,as:`actionscript-3`,ada:`ada`,adb:`ada`,ads:`ada`,adoc:`asciidoc`,asciidoc:`asciidoc`,"component.html":`angular-html`,"component.ts":`angular-ts`,conf:`nginx`,htaccess:`apache`,cls:`tex`,trigger:`apex`,apl:`apl`,applescript:`applescript`,scpt:`applescript`,ara:`ara`,asm:`asm`,s:`riscv`,astro:`astro`,awk:`awk`,bal:`ballerina`,sh:`zsh`,bash:`zsh`,bat:`cmd`,cmd:`cmd`,be:`berry`,beancount:`beancount`,bib:`bibtex`,bicep:`bicep`,"blade.php":`blade`,bsl:`bsl`,c:`c`,h:`objective-cpp`,cs:`csharp`,cpp:`cpp`,hpp:`cpp`,cc:`cpp`,cxx:`cpp`,hh:`cpp`,cdc:`cdc`,cairo:`cairo`,clar:`clarity`,clj:`clojure`,cljs:`clojure`,cljc:`clojure`,soy:`soy`,cmake:`cmake`,"CMakeLists.txt":`cmake`,cob:`cobol`,cbl:`cobol`,cobol:`cobol`,CODEOWNERS:`codeowners`,ql:`ql`,coffee:`coffeescript`,lisp:`lisp`,cl:`lisp`,lsp:`lisp`,log:`log`,v:`verilog`,cql:`cql`,cr:`crystal`,css:`css`,csv:`csv`,cue:`cue`,cypher:`cypher`,cyp:`cypher`,d:`d`,dart:`dart`,dax:`dax`,desktop:`desktop`,diff:`diff`,patch:`diff`,Dockerfile:`dockerfile`,dockerfile:`dockerfile`,env:`dotenv`,dm:`dream-maker`,edge:`edge`,el:`emacs-lisp`,ex:`elixir`,exs:`elixir`,elm:`elm`,erb:`erb`,erl:`erlang`,hrl:`erlang`,f:`fortran-fixed-form`,for:`fortran-fixed-form`,fs:`fsharp`,fsi:`fsharp`,fsx:`fsharp`,f03:`f03`,f08:`f08`,f18:`f18`,f77:`f77`,f90:`fortran-free-form`,f95:`fortran-free-form`,fnl:`fennel`,fish:`fish`,ftl:`ftl`,tres:`gdresource`,res:`gdresource`,gd:`gdscript`,gdshader:`gdshader`,gs:`genie`,feature:`gherkin`,COMMIT_EDITMSG:`git-commit`,"git-rebase-todo":`git-rebase`,gjs:`glimmer-js`,gleam:`gleam`,gts:`glimmer-ts`,glsl:`glsl`,vert:`glsl`,frag:`glsl`,shader:`shaderlab`,gp:`gnuplot`,plt:`gnuplot`,gnuplot:`gnuplot`,go:`go`,graphql:`graphql`,gql:`graphql`,groovy:`groovy`,gvy:`groovy`,hack:`hack`,haml:`haml`,hbs:`handlebars`,handlebars:`handlebars`,hs:`haskell`,lhs:`haskell`,hx:`haxe`,hcl:`hcl`,hjson:`hjson`,hlsl:`hlsl`,fx:`hlsl`,html:`html`,htm:`html`,http:`http`,rest:`http`,hxml:`hxml`,hy:`hy`,imba:`imba`,ini:`ini`,cfg:`ini`,jade:`pug`,pug:`pug`,java:`java`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jinja:`jinja`,jinja2:`jinja`,j2:`jinja`,jison:`jison`,jl:`julia`,json:`json`,json5:`json5`,jsonc:`jsonc`,jsonl:`jsonl`,jsonnet:`jsonnet`,libsonnet:`jsonnet`,jssm:`jssm`,jsx:`jsx`,kt:`kotlin`,kts:`kts`,kql:`kusto`,tex:`tex`,ltx:`tex`,lean:`lean4`,less:`less`,liquid:`liquid`,lit:`lit`,ll:`llvm`,logo:`logo`,lua:`lua`,luau:`luau`,Makefile:`makefile`,mk:`makefile`,makefile:`makefile`,md:`markdown`,markdown:`markdown`,marko:`marko`,m:`wolfram`,mat:`matlab`,mdc:`mdc`,mdx:`mdx`,wiki:`wikitext`,mediawiki:`wikitext`,mmd:`mermaid`,mermaid:`mermaid`,mips:`mipsasm`,mojo:`mojo`,"🔥":`mojo`,move:`move`,nar:`narrat`,nf:`nextflow`,nim:`nim`,nims:`nim`,nimble:`nim`,nix:`nix`,nu:`nushell`,mm:`objective-cpp`,ml:`ocaml`,mli:`ocaml`,mll:`ocaml`,mly:`ocaml`,pas:`pascal`,p:`pascal`,pl:`prolog`,pm:`perl`,t:`perl`,raku:`raku`,p6:`raku`,pl6:`raku`,php:`php`,phtml:`php`,pls:`plsql`,sql:`sql`,po:`po`,polar:`polar`,pcss:`postcss`,pot:`pot`,potx:`potx`,pq:`powerquery`,pqm:`powerquery`,ps1:`powershell`,psm1:`powershell`,psd1:`powershell`,prisma:`prisma`,pro:`prolog`,P:`prolog`,properties:`properties`,proto:`protobuf`,pp:`puppet`,purs:`purescript`,py:`python`,pyw:`python`,pyi:`python`,qml:`qml`,qmldir:`qmldir`,qss:`qss`,r:`r`,R:`r`,rkt:`racket`,rktl:`racket`,razor:`razor`,cshtml:`razor`,rb:`ruby`,rbw:`ruby`,reg:`reg`,regex:`regexp`,rel:`rel`,rs:`rust`,rst:`rst`,rake:`ruby`,gemspec:`ruby`,sas:`sas`,sass:`sass`,scala:`scala`,sc:`scala`,scm:`scheme`,ss:`scheme`,sld:`scheme`,scss:`scss`,sdbl:`sdbl`,shadergraph:`shader`,st:`smalltalk`,sol:`solidity`,sparql:`sparql`,rq:`sparql`,spl:`splunk`,config:`ssh-config`,do:`stata`,ado:`stata`,dta:`stata`,styl:`stylus`,stylus:`stylus`,svelte:`svelte`,swift:`swift`,sv:`system-verilog`,svh:`system-verilog`,service:`systemd`,socket:`systemd`,device:`systemd`,timer:`systemd`,talon:`talonscript`,tasl:`tasl`,tcl:`tcl`,templ:`templ`,tf:`tf`,tfvars:`tfvars`,toml:`toml`,ts:`typescript`,tsp:`typespec`,tsv:`tsv`,tsx:`tsx`,ttl:`turtle`,twig:`twig`,typ:`typst`,vv:`v`,vala:`vala`,vapi:`vala`,vb:`vb`,vbs:`vb`,bas:`vb`,vh:`verilog`,vhd:`vhdl`,vhdl:`vhdl`,vim:`vimscript`,vue:`vue`,"vine.ts":`vue-vine`,vy:`vyper`,wasm:`wasm`,wat:`wasm`,wy:`文言`,wgsl:`wgsl`,wit:`wit`,wl:`wolfram`,nb:`wolfram`,xml:`xml`,xsl:`xsl`,xslt:`xsl`,yaml:`yaml`,yml:`yml`,zs:`zenscript`,zig:`zig`,zsh:`zsh`,sty:`tex`};function B(e){if(R.has(e))return R.get(e)??`text`;if(z[e]!=null)return z[e];let t=e.match(/\.([^/\\]+\.[^/\\]+)$/);if(t!=null){if(R.has(t[1]))return R.get(t[1])??`text`;if(z[t[1]]!=null)return z[t[1]]??`text`}let n=e.match(/\.([^.]+)$/)?.[1]??``;return R.has(n)?R.get(n)??`text`:z[n]??`text`}function V(e){return e.replace(/\n$|\r\n$/,``)}function H(e){return{type:`text`,value:e}}function U({tagName:e,children:t=[],properties:n={}}){return{type:`element`,tagName:e,properties:n,children:t}}function st({name:e,width:t=16,height:n=16,properties:r}){return U({tagName:`svg`,properties:{width:t,height:n,viewBox:`0 0 16 16`,...r},children:[U({tagName:`use`,properties:{href:`#${e.replace(/^#/,``)}`}})]})}function ct(e){let t=e.children[0];for(;t!=null;){if(t.type===`element`&&t.tagName===`code`)return t;t=`children`in t?t.children[0]:null}}function lt(e){return U({tagName:`div`,properties:{"data-gutter":``},children:e})}function ut(e,t,n,r={}){return U({tagName:`div`,properties:{"data-line-type":e,"data-column-number":t,"data-line-index":n,...r},children:t==null?void 0:[U({tagName:`span`,properties:{"data-line-number-content":``},children:[H(`${t}`)]})]})}function W(e,t,n){return U({tagName:`div`,properties:{"data-gutter-buffer":t,"data-buffer-size":n,"data-line-type":t===`annotation`?void 0:e,style:t===`annotation`?`grid-row: span ${n};`:`grid-row: span ${n};min-height:calc(${n} * 1lh);`}})}function dt(e,t,n){let r=typeof n.lineInfo==`function`?n.lineInfo(t):n.lineInfo[t-1];if(r==null){let r=`processLine: line ${t}, contains no state.lineInfo`;throw console.error(r,{node:e,line:t,state:n}),Error(r)}return e.tagName=`div`,e.properties[`data-line`]=r.lineNumber,e.properties[`data-alt-line`]=r.altLineNumber,e.properties[`data-line-type`]=r.type,e.properties[`data-line-index`]=r.lineIndex,e.children.length===0&&e.children.push(H(`
|
|
2
2
|
`)),e}var ft=Symbol(`no-token`),pt=Symbol(`multiple-tokens`);function mt(e){let t=ht(e);if(t!=null)return t;let n=ft,r=[],i=[],a,o=()=>{if(i.length===0||a==null){i=[],a=void 0;return}if(i.length===1){let e=i[0];if(e?.type===`element`){_t(e,a);for(let t of e.children)gt(t)}else gt(e);r.push(e),i=[],a=void 0;return}for(let e of i)gt(e);r.push(U({tagName:`span`,properties:{"data-char":a},children:i})),i=[],a=void 0},s=e=>{if(e!==ft){if(e===pt){n=pt;return}if(n===ft){n=e;return}n!==e&&(n=pt)}};for(let t of e.children){let e=t.type===`element`?mt(t):ft;if(s(e),typeof e!=`number`){o(),r.push(t);continue}a!=null&&a!==e&&o(),a??=e,i.push(t)}return o(),e.children=r,n}function ht(e){let t=e.properties[`data-char`];if(typeof t==`number`)return t}function gt(e){if(e.type===`element`){e.properties[`data-char`]=void 0;for(let t of e.children)gt(t)}}function _t(e,t){e.properties[`data-char`]=t}function vt(e={}){let{classPrefix:t=`__shiki_`,classSuffix:n=``,classReplacer:r=e=>e}=e,i=new Map;function a(e){return Object.entries(e).map(([e,t])=>`${e}:${t}`).join(`;`)}function o(e){let o=t+yt(typeof e==`string`?e:a(e))+n;return o=r(o),i.has(o)||i.set(o,typeof e==`string`?e:{...e}),o}return{name:`@shikijs/transformers:style-to-class`,pre(e){if(!e.properties.style)return;let t=o(e.properties.style);delete e.properties.style,this.addClassToHast(e,t)},tokens(e){for(let t of e)for(let e of t){if(!e.htmlStyle)continue;let t=o(e.htmlStyle);e.htmlStyle={},e.htmlAttrs||={},e.htmlAttrs.class?e.htmlAttrs.class+=` ${t}`:e.htmlAttrs.class=t}},getClassRegistry(){return i},getCSS(){let e=``;for(let[t,n]of i.entries())e+=`.${t}{${typeof n==`string`?n:a(n)}}`;return e},clearRegistry(){i.clear()}}}function yt(e,t=0){let n=3735928559^t,r=1103547991^t;for(let t=0,i;t<e.length;t++)i=e.charCodeAt(t),n=Math.imul(n^i,2654435761),r=Math.imul(r^i,1597334677);return n=Math.imul(n^n>>>16,2246822507),n^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(n^n>>>13,3266489909),(4294967296*(2097151&r)+(n>>>0)).toString(36).slice(0,6)}function bt(e=!1,t=!1){let n={lineInfo:[]},r=[{line(e){return delete e.properties.class,e},pre(t){let r=ct(t),i=[];if(r!=null){let t=1;for(let a of r.children)a.type===`element`&&(e&&mt(a),i.push(dt(a,t,n)),t++);r.children=i}return t},...e?{tokens(e){for(let t of e){let e=0;for(let n of t){let t=n;t.__lineChar??=e,e+=n.content.length}}},preprocess(e,t){t.mergeWhitespaces=`never`},span(e,t,n,r,i){if(i?.offset!=null&&i.content!=null){let t=i.__lineChar;return t!=null&&(e.properties[`data-char`]=t),e}return e}}:null}];return t&&r.push(St,xt),{state:n,transformers:r,toClass:xt}}var xt=vt({classPrefix:`hl-`}),St={name:`token-style-normalizer`,tokens(e){for(let t of e)for(let e of t){if(e.htmlStyle!=null)continue;let t={};e.color!=null&&(t.color=e.color),e.bgColor!=null&&(t[`background-color`]=e.bgColor),e.fontStyle!=null&&e.fontStyle!==0&&(e.fontStyle&1&&(t[`font-style`]=`italic`),e.fontStyle&2&&(t[`font-weight`]=`bold`),e.fontStyle&4&&(t[`text-decoration`]=`underline`)),Object.keys(t).length>0&&(e.htmlStyle=t)}}};function G(e){return`--${e===`token`?`diffs-token`:`diffs`}-`}function Ct({theme:e=k,highlighter:t,prefix:n}){let r=``;if(typeof e==`string`){let i=t.getTheme(e);r+=`color:${i.fg};`,r+=`background-color:${i.bg};`,r+=`${G(`global`)}fg:${i.fg};`,r+=`${G(`global`)}bg:${i.bg};`,r+=wt(i,n)}else{let n=t.getTheme(e.dark);r+=`${G(`global`)}dark:${n.fg};`,r+=`${G(`global`)}dark-bg:${n.bg};`,r+=wt(n,`dark`),n=t.getTheme(e.light),r+=`${G(`global`)}light:${n.fg};`,r+=`${G(`global`)}light-bg:${n.bg};`,r+=wt(n,`light`)}return r}function wt(e,t){t=t==null?``:`${t}-`;let n=``,r=e.colors?.[`gitDecoration.addedResourceForeground`]??e.colors?.[`terminal.ansiGreen`];r!=null&&(n+=`${G(`global`)}${t}addition-color:${r};`);let i=e.colors?.[`gitDecoration.deletedResourceForeground`]??e.colors?.[`terminal.ansiRed`];i!=null&&(n+=`${G(`global`)}${t}deletion-color:${i};`);let a=e.colors?.[`gitDecoration.modifiedResourceForeground`]??e.colors?.[`terminal.ansiBlue`];return a!=null&&(n+=`${G(`global`)}${t}modified-color:${a};`),n}function Tt(e){let t=e.children[0];for(;t!=null;){if(t.type===`element`&&t.tagName===`code`)return t.children;t=`children`in t?t.children[0]:null}throw console.error(e),Error(`getLineNodes: Unable to find children`)}function Et(e,t){return e?.cacheKey===t?.cacheKey&&e?.contents===t?.contents&&e?.name===t?.name&&e?.lang===t?.lang}function Dt(e,t){return ot(e.theme,t.theme)&&e.useTokenTransformer===t.useTokenTransformer&&e.tokenizeMaxLineLength===t.tokenizeMaxLineLength&&e.lineDiffType===t.lineDiffType&&e.maxLineDiffLength===t.maxLineDiffLength}function Ot(e){let t=e.lang??B(e.name),n=e.lang??(e.prevName==null?`text`:B(e.prevName));return t===`text`&&n===`text`}function K({diff:e,diffStyle:t,startingLine:n=0,totalLines:r=1/0,expandedHunks:i,collapsedContextThreshold:a=1,callback:o}){let s={finalHunk:e.hunks.at(-1),viewportStart:n,viewportEnd:n+r,isWindowedHighlight:n>0||r<1/0,splitCount:0,unifiedCount:0,shouldBreak(){if(!s.isWindowedHighlight)return!1;let e=s.unifiedCount>=n+r,i=s.splitCount>=n+r;return t===`unified`?e:(t===`split`||e)&&i},shouldSkip(e,r){if(!s.isWindowedHighlight)return!1;let i=s.unifiedCount+e<n,a=s.splitCount+r<n;return t===`unified`?i:(t===`split`||i)&&a},incrementCounts(e,n){(t===`unified`||t===`both`)&&(s.unifiedCount+=e),(t===`split`||t===`both`)&&(s.splitCount+=n)},isInWindow(e,n){if(!s.isWindowedHighlight)return!0;let r=s.isInUnifiedWindow(e),i=s.isInSplitWindow(n);return t===`unified`?r:t===`split`?i:r||i},isInUnifiedWindow(e){return!s.isWindowedHighlight||s.unifiedCount>=n-e&&s.unifiedCount<n+r},isInSplitWindow(e){return!s.isWindowedHighlight||s.splitCount>=n-e&&s.splitCount<n+r},emit(e,n=!1){return n||(t===`unified`?s.incrementCounts(1,0):t===`split`?s.incrementCounts(0,1):s.incrementCounts(1,1)),o(e)??!1}};hunkIterator:for(let[n,r]of e.hunks.entries()){if(s.shouldBreak())break;let o=kt(e.isPartial,r.collapsedBefore,i,n,a),c=(()=>{if(r!==s.finalHunk||!At(e))return;let t=e.additionLines.length-(r.additionLineIndex+r.additionCount),n=e.deletionLines.length-(r.deletionLineIndex+r.deletionCount);if(t!==n)throw Error(`iterateOverDiff: trailing context mismatch (additions=${t}, deletions=${n}) for ${e.name}`);let o=Math.min(t,n);return kt(e.isPartial,o,i,e.hunks.length,a)})(),l=o.fromStart+o.fromEnd;function u(e,n){return c==null||c.collapsedLines<=0||c.fromStart+c.fromEnd>0?0:t===`unified`?e===r.unifiedLineStart+r.unifiedLineCount-1?c.collapsedLines:0:n===r.splitLineStart+r.splitLineCount-1?c.collapsedLines:0}function d(){if(o.collapsedLines===0)return 0;let e=o.collapsedLines;return o.collapsedLines=0,e}if(s.shouldSkip(l,l))s.incrementCounts(l,l),d();else{let e=r.unifiedLineStart-o.rangeSize,t=r.splitLineStart-o.rangeSize,i=r.deletionLineIndex-o.rangeSize,a=r.additionLineIndex-o.rangeSize,c=r.deletionStart-o.rangeSize,l=r.additionStart-o.rangeSize,u=0;for(;u<o.fromStart;){if(s.isInWindow(0,0)){if(s.emit({hunkIndex:n,hunk:r,collapsedBefore:0,collapsedAfter:0,type:`context-expanded`,deletionLine:{lineNumber:c+u,lineIndex:i+u,noEOFCR:!1,unifiedLineIndex:e+u,splitLineIndex:t+u},additionLine:{unifiedLineIndex:e+u,splitLineIndex:t+u,lineIndex:a+u,lineNumber:l+u,noEOFCR:!1}}))break hunkIterator}else s.incrementCounts(1,1);u++}for(e=r.unifiedLineStart-o.fromEnd,t=r.splitLineStart-o.fromEnd,i=r.deletionLineIndex-o.fromEnd,a=r.additionLineIndex-o.fromEnd,c=r.deletionStart-o.fromEnd,l=r.additionStart-o.fromEnd,u=0;u<o.fromEnd;){if(s.isInWindow(0,0)){if(s.emit({hunkIndex:n,hunk:r,collapsedBefore:d(),collapsedAfter:0,type:`context-expanded`,deletionLine:{lineNumber:c+u,lineIndex:i+u,noEOFCR:!1,unifiedLineIndex:e+u,splitLineIndex:t+u},additionLine:{unifiedLineIndex:e+u,splitLineIndex:t+u,lineIndex:a+u,lineNumber:l+u,noEOFCR:!1}}))break hunkIterator}else s.incrementCounts(1,1);u++}}let f=r.unifiedLineStart,p=r.splitLineStart,m=r.deletionLineIndex,h=r.additionLineIndex,g=r.deletionStart,_=r.additionStart,v=r.hunkContent.at(-1);for(let e of r.hunkContent){if(s.shouldBreak())break hunkIterator;let i=e===v;if(e.type===`context`){if(s.shouldSkip(e.lines,e.lines))s.incrementCounts(e.lines,e.lines),d();else{let t=0;for(;t<e.lines;){if(s.isInWindow(0,0)){let a=i&&t===e.lines-1,o=f+t,c=p+t;if(s.emit({hunkIndex:n,hunk:r,collapsedBefore:d(),collapsedAfter:u(o,c),type:`context`,deletionLine:{lineNumber:g+t,lineIndex:m+t,noEOFCR:a&&r.noEOFCRDeletions,unifiedLineIndex:o,splitLineIndex:c},additionLine:{unifiedLineIndex:o,splitLineIndex:c,lineIndex:h+t,lineNumber:_+t,noEOFCR:a&&r.noEOFCRAdditions}}))break hunkIterator}else s.incrementCounts(1,1);t++}}f+=e.lines,p+=e.lines,m+=e.lines,h+=e.lines,g+=e.lines,_+=e.lines}else{let a=Math.max(e.deletions,e.additions),o=e.deletions+e.additions;if(!s.shouldSkip(o,a)){let c=jt(s,e,t);for(let[l,v]of c)for(let c=l;c<v;c++){let l=u(f+c,t===`unified`?p+(c<e.deletions?c:c-e.deletions):p+c);if(s.emit(Mt({hunkIndex:n,hunk:r,collapsedBefore:d(),collapsedAfter:l,diffStyle:t,index:c,unifiedLineIndex:f,splitLineIndex:p,additionLineIndex:h,deletionLineIndex:m,additionLineNumber:_,deletionLineNumber:g,content:e,isLastContent:i,unifiedCount:o,splitCount:a}),!0))break hunkIterator}}d(),s.incrementCounts(o,a),f+=o,p+=a,m+=e.deletions,h+=e.additions,g+=e.deletions,_+=e.additions}}if(c!=null){let{collapsedLines:t,fromStart:n,fromEnd:r}=c,i=n+r,a=0;for(;a<i;){if(s.shouldBreak())break hunkIterator;if(s.isInWindow(0,0)){let n=a===i-1;if(s.emit({hunkIndex:e.hunks.length,hunk:void 0,collapsedBefore:0,collapsedAfter:n?t:0,type:`context-expanded`,deletionLine:{lineNumber:g+a,lineIndex:m+a,noEOFCR:!1,unifiedLineIndex:f+a,splitLineIndex:p+a},additionLine:{unifiedLineIndex:f+a,splitLineIndex:p+a,lineIndex:h+a,lineNumber:_+a,noEOFCR:!1}}))break hunkIterator}else s.incrementCounts(1,1);a++}}}}function kt(e,t,n,r,i){if(t=Math.max(t,0),t===0||e)return{fromStart:0,fromEnd:0,rangeSize:t,collapsedLines:Math.max(t,0)};if(n===!0||t<=i)return{fromStart:t,fromEnd:0,rangeSize:t,collapsedLines:0};let a=n?.get(r),o=Math.min(Math.max(a?.fromStart??0,0),t),s=Math.min(Math.max(a?.fromEnd??0,0),t),c=o+s,l=c>=t;return{fromStart:l?t:o,fromEnd:l?0:s,rangeSize:t,collapsedLines:Math.max(t-c,0)}}function At(e){let t=e.hunks.at(-1);return t==null||e.isPartial||e.additionLines.length===0||e.deletionLines.length===0?!1:t.additionLineIndex+t.additionCount<e.additionLines.length||t.deletionLineIndex+t.deletionCount<e.deletionLines.length}function jt(e,t,n){if(!e.isWindowedHighlight)return[[0,n===`unified`?t.deletions+t.additions:Math.max(t.deletions,t.additions)]];let r=n!==`split`,i=n!==`unified`,a=n===`unified`?`unified`:`split`,o=[];function s(t,n){if(t+n<=e.viewportStart||t>=e.viewportEnd)return;let r=Math.max(0,e.viewportStart-t),i=Math.min(n,e.viewportEnd-t);return i>r?[r,i]:void 0}function c(e,n){return a===`split`?e:n===`additions`?[e[0]+t.deletions,e[1]+t.deletions]:e}function l(e,t){if(e==null)return;let[n,r]=c(e,t);r>n&&o.push([n,r])}if(r&&(l(s(e.unifiedCount,t.deletions),`deletions`),l(s(e.unifiedCount+t.deletions,t.additions),`additions`)),i&&(l(s(e.splitCount,t.deletions),`deletions`),l(s(e.splitCount,t.additions),`additions`)),o.length===0)return o;o.sort((e,t)=>e[0]-t[0]);let u=[o[0]];for(let[e,t]of o.slice(1)){let n=u[u.length-1];e<=n[1]?n[1]=Math.max(n[1],t):u.push([e,t])}return u}function Mt({hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,diffStyle:i,index:a,unifiedLineIndex:o,splitLineIndex:s,additionLineIndex:c,deletionLineIndex:l,additionLineNumber:u,deletionLineNumber:d,content:f,isLastContent:p,unifiedCount:m,splitCount:h}){let g=a<f.deletions?o+a:void 0,_=i===`unified`?a>=f.deletions?o+a:void 0:a<f.additions?o+f.deletions+a:void 0,v=i===`unified`?s+(a<f.deletions?a:a-f.deletions):s+a,y=a<f.deletions?l+a:void 0,b=a<f.deletions?d+a:void 0,x=i===`unified`?a>=f.deletions?c+(a-f.deletions):void 0:a<f.additions?c+a:void 0,S=i===`unified`?a>=f.deletions?u+(a-f.deletions):void 0:a<f.additions?u+a:void 0,C=i===`unified`?p&&a===f.deletions-1&&t.noEOFCRDeletions:p&&a===h-1&&t.noEOFCRDeletions,w=i===`unified`?p&&a===m-1&&t.noEOFCRAdditions:p&&a===h-1&&t.noEOFCRAdditions,T=y!=null&&b!=null&&g!=null?{lineNumber:b,lineIndex:y,noEOFCR:C,unifiedLineIndex:g,splitLineIndex:v}:void 0,E=x!=null&&S!=null&&_!=null?{unifiedLineIndex:_,splitLineIndex:v,lineIndex:x,lineNumber:S,noEOFCR:w}:void 0;if(T==null&&E!=null)return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:void 0,additionLine:E};if(T!=null&&E==null)return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:T,additionLine:void 0};if(T==null||E==null)throw Error(`iterateOverDiff: missing change line data`);return{type:`change`,hunkIndex:e,hunk:t,collapsedAfter:n,collapsedBefore:r,deletionLine:T,additionLine:E}}var q=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}else return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}},Nt=new class extends q{};function Pt(e,t,n){return Nt.diff(e,t,n)}function Ft(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function It(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function Lt(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function Rt(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function J(e,t){return Lt(e,t,``)}function zt(e,t){return Rt(e,t,``)}function Bt(e,t){return t.slice(0,Vt(e,t))}function Vt(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function Y(e){let t;for(t=e.length-1;t>=0&&e[t].match(/\s/);t--);return e.substring(t+1)}function X(e){let t=e.match(/^\s*/);return t?t[0]:``}var Ht=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,Ut=RegExp(`[${Ht}]+|\\s+|[^${Ht}]`,`ug`);new class extends q{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=[];for(let t of Array.from(r.segment(e))){let e=t.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}}else n=e.match(Ut)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&Wt(n,i,r,e),n=e,r=null,i=null)}),(r||i)&&Wt(n,i,r,null),e}};function Wt(e,t,n,r){if(t&&n){let i=X(t.value),a=Y(t.value),o=X(n.value),s=Y(n.value);if(e){let r=Ft(i,o);e.value=Rt(e.value,o,r),t.value=J(t.value,r),n.value=J(n.value,r)}if(r){let e=It(a,s);r.value=Lt(r.value,s,e),t.value=zt(t.value,e),n.value=zt(n.value,e)}}else if(n){if(e){let e=X(n.value);n.value=n.value.substring(e.length)}if(r){let e=X(r.value);r.value=r.value.substring(e.length)}}else if(e&&r){let n=X(r.value),i=X(t.value),a=Y(t.value),o=Ft(n,i);t.value=J(t.value,o);let s=It(J(n,o),a);t.value=zt(t.value,s),r.value=Lt(r.value,n,s),e.value=Rt(e.value,n,n.slice(0,n.length-s.length))}else if(r){let e=X(r.value),n=Bt(Y(t.value),e);t.value=zt(t.value,n)}else if(e){let n=Bt(Y(e.value),X(t.value));t.value=J(t.value,n)}}var Gt=new class extends q{tokenize(e){let t=RegExp(`(\\r?\\n)|[${Ht}]+|[^\\S\\n\\r]+|[^${Ht}]`,`ug`);return e.match(t)||[]}};function Kt(e,t,n){return Gt.diff(e,t,n)}var qt=new class extends q{constructor(){super(...arguments),this.tokenize=Yt}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
|
|
3
3
|
`))&&(e=e.trim()),(!n.newlineIsToken||!t.includes(`
|
|
4
4
|
`))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
|