forge-cpp-mcp 0.2.2__py3-none-any.whl → 0.2.4__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.
- {forge_cpp_mcp-0.2.2.dist-info → forge_cpp_mcp-0.2.4.dist-info}/METADATA +50 -7
- {forge_cpp_mcp-0.2.2.dist-info → forge_cpp_mcp-0.2.4.dist-info}/RECORD +37 -36
- {forge_cpp_mcp-0.2.2.dist-info → forge_cpp_mcp-0.2.4.dist-info}/licenses/LICENSE +21 -21
- forgemcp/__init__.py +1 -1
- forgemcp/assets/clangd-result.html +5 -5
- forgemcp/assets/cmake-build.html +11 -11
- forgemcp/assets/cmake-configure.html +11 -11
- forgemcp/assets/cmake-profiles.html +11 -11
- forgemcp/assets/cmake-run-test.html +111 -0
- forgemcp/assets/cmake-test.html +11 -11
- forgemcp/assets/process-details.html +11 -11
- forgemcp/assets/process-overview.html +11 -11
- forgemcp/assets/toolsets.html +11 -11
- forgemcp/assets/workspace-file.html +5 -5
- forgemcp/assets/workspace-result.html +5 -5
- forgemcp/assets/workspace-search.html +5 -5
- forgemcp/assets/workspace-tree.html +5 -5
- forgemcp/clangd/service.py +105 -51
- forgemcp/clangd/session.py +50 -48
- forgemcp/cmake/errors.py +1 -1
- forgemcp/cmake/models.py +13 -0
- forgemcp/cmake/service.py +95 -2
- forgemcp/cmake/text.py +19 -0
- forgemcp/icons/clangd.LICENSE +219 -219
- forgemcp/icons/clangd.svg +25 -25
- forgemcp/icons/cmake.svg +9 -9
- forgemcp/icons/process.svg +4 -4
- forgemcp/icons/toolchain.svg +1 -1
- forgemcp/icons/workspace-edit.svg +1 -1
- forgemcp/icons/workspace-file.svg +1 -1
- forgemcp/icons/workspace-search.svg +1 -1
- forgemcp/icons/workspace.svg +4 -4
- forgemcp/process/service.py +2 -1
- forgemcp/server.py +1 -0
- forgemcp/toolchain/tools/clangd.py +1 -0
- {forge_cpp_mcp-0.2.2.dist-info → forge_cpp_mcp-0.2.4.dist-info}/WHEEL +0 -0
- {forge_cpp_mcp-0.2.2.dist-info → forge_cpp_mcp-0.2.4.dist-info}/entry_points.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: forge-cpp-mcp
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: A safe MCP server for structured C++ project development workflows.
|
|
5
5
|
Project-URL: Homepage, https://github.com/hardened-steel/ForgeMCP
|
|
6
6
|
Project-URL: Repository, https://github.com/hardened-steel/ForgeMCP
|
|
@@ -44,7 +44,8 @@ debugger modules are planned.
|
|
|
44
44
|
configuration selections use all available contexts.
|
|
45
45
|
- No prompts are currently registered.
|
|
46
46
|
- CMake tools list operator profiles, configure projects, build targets, and run
|
|
47
|
-
CTest.
|
|
47
|
+
CTest. `cmake_run_test` directly runs a project/storage test executable with
|
|
48
|
+
literal command-line arguments. Each tool has its own widget with Fields/JSON views,
|
|
48
49
|
copying and per-test results. Command logs are available through `process_get`. CMake syntax highlighting remains deferred.
|
|
49
50
|
- Tool `processes_overview` shows running and completed external development tools,
|
|
50
51
|
including exit codes and timeout interruptions. `process_get(process_id)` returns
|
|
@@ -75,7 +76,9 @@ without making additional tool calls. Process times are readable to seconds; JSO
|
|
|
75
76
|
copying preserve the original precision. A toolsets list shows summaries, while a
|
|
76
77
|
`toolset_get` result shows the details returned by that call.
|
|
77
78
|
|
|
78
|
-
ForgeMCP
|
|
79
|
+
ForgeMCP can directly run an explicitly selected test executable inside the
|
|
80
|
+
project or storage root; it does not expose shell commands or external executable
|
|
81
|
+
paths over MCP. Feature services use
|
|
79
82
|
the shared process service internally; its public MCP surface is read-only.
|
|
80
83
|
|
|
81
84
|
## Requirements
|
|
@@ -93,7 +96,7 @@ and install it in a virtual environment:
|
|
|
93
96
|
|
|
94
97
|
```powershell
|
|
95
98
|
python -m venv .venv
|
|
96
|
-
.\.venv\Scripts\python.exe -m pip install .\forge_cpp_mcp-0.2.
|
|
99
|
+
.\.venv\Scripts\python.exe -m pip install .\forge_cpp_mcp-0.2.4-py3-none-any.whl
|
|
97
100
|
.\.venv\Scripts\forgemcp.exe --help
|
|
98
101
|
```
|
|
99
102
|
|
|
@@ -105,7 +108,7 @@ The distribution name is `forge-cpp-mcp`; the Python module and server command a
|
|
|
105
108
|
After the package is published to PyPI, the install command can instead be:
|
|
106
109
|
|
|
107
110
|
```powershell
|
|
108
|
-
.\.venv\Scripts\python.exe -m pip install forge-cpp-mcp==0.2.
|
|
111
|
+
.\.venv\Scripts\python.exe -m pip install forge-cpp-mcp==0.2.4
|
|
109
112
|
```
|
|
110
113
|
|
|
111
114
|
## Setup from source
|
|
@@ -280,10 +283,26 @@ A resource-loading failure does not change the successful file-operation outcome
|
|
|
280
283
|
When a CMake configuration has a compilation database and clangd in its toolset,
|
|
281
284
|
Workspace reads, writes, and edits of C/C++ files also return
|
|
282
285
|
`resources.clangd`. This immutable JSON contains diagnostics and semantic
|
|
283
|
-
highlighting grouped by configuration
|
|
284
|
-
|
|
286
|
+
highlighting grouped by configuration, always across all available configurations.
|
|
287
|
+
Clangd analyzes the complete file even for a partial Workspace read, but the saved
|
|
288
|
+
diagnostics and semantic spans include only those intersecting the lines actually
|
|
289
|
+
returned. Their coordinates remain absolute file positions; an empty partial-read
|
|
290
|
+
excerpt (for example, beyond EOF) has no annotations.
|
|
291
|
+
|
|
285
292
|
Clangd starts sessions from CMake's configuration subscription and keeps them until
|
|
286
293
|
the configuration disappears, its database changes, or the server stops.
|
|
294
|
+
Each process receives `-j=2`; this worker setting does not impose a memory limit.
|
|
295
|
+
File analysis opens the complete current file, collects the requested result, and
|
|
296
|
+
closes the document before returning. Documents are not retained between calls, so
|
|
297
|
+
the next analysis incorporates saved header changes without reopening other files
|
|
298
|
+
after each Workspace mutation. Repeated calls pay the cost of a fresh file parse;
|
|
299
|
+
closing a document does not release clangd's whole index. Workspace mutations still
|
|
300
|
+
notify sessions of filesystem changes and reconcile changed compilation databases.
|
|
301
|
+
Explicit clangd tools use their existing `configurations` argument to select a
|
|
302
|
+
subset, for example
|
|
303
|
+
`clangd_diagnostics(path="project/src/main.cpp", configurations=["debug"])`.
|
|
304
|
+
Omitting that argument or passing `[]` selects all available configurations.
|
|
305
|
+
|
|
287
306
|
Workspace widgets load both resources independently. The source view lets you
|
|
288
307
|
select a configuration for semantic highlighting and inline diagnostic markers;
|
|
289
308
|
lexical C/C++ colors also cover keywords, comments, literals, directives, and nested
|
|
@@ -316,6 +335,30 @@ Full process transcripts remain in the process module; CMake results contain no
|
|
|
316
335
|
transcript links. The default command timeout is 600 seconds per execution and
|
|
317
336
|
can be overridden with the existing `ProcessTimeout` shape (`total`, `idle`).
|
|
318
337
|
|
|
338
|
+
`cmake_run_test(executable, arguments=null, cwd="project/", timeout={"total":600})`
|
|
339
|
+
runs one already-built test executable directly, without a profile or CTest
|
|
340
|
+
registration. Executable and working-directory paths use `project/...` or
|
|
341
|
+
`storage/...` and must resolve inside their respective roots. The working directory
|
|
342
|
+
must exist; storage is not created automatically. On Windows, batch files are not
|
|
343
|
+
supported. Arguments are a list of literal strings, preserving spaces and empty
|
|
344
|
+
strings; NUL is rejected. For example:
|
|
345
|
+
|
|
346
|
+
```json
|
|
347
|
+
{
|
|
348
|
+
"executable": "project/build/ninja-debug/fixture_tests.exe",
|
|
349
|
+
"arguments": ["--fail"],
|
|
350
|
+
"cwd": "project/build/ninja-debug",
|
|
351
|
+
"timeout": {"total": 30}
|
|
352
|
+
}
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
The process inherits the server environment, closes stdin, and waits for completion.
|
|
356
|
+
It does not replay toolset/preset environments or CTest properties such as
|
|
357
|
+
`WILL_FAIL`, fixtures, or per-test timeouts. Exit zero means success; a nonzero
|
|
358
|
+
exit or process failure is reported in `error`. The single structured result
|
|
359
|
+
contains `executable`, `arguments`, `cwd`, `error`, and `process_id`; logs are read
|
|
360
|
+
through `process_get`. No JUnit or framework case report is inferred from output.
|
|
361
|
+
|
|
319
362
|
With no explicit profiles:
|
|
320
363
|
|
|
321
364
|
- If `CMakePresets.json` or `CMakeUserPresets.json` exists, the automatic `presets`
|
|
@@ -1,47 +1,48 @@
|
|
|
1
|
-
forgemcp/__init__.py,sha256=
|
|
1
|
+
forgemcp/__init__.py,sha256=CCzoMEBsYQgcuRN60r2a5Dpo4r0ePWqHhRVliM-NEWc,74
|
|
2
2
|
forgemcp/assets.py,sha256=jQqqAFvdYpbhZygJemTMzYo_clRZMs0e181XQ_YvQYc,1958
|
|
3
3
|
forgemcp/completion.py,sha256=BHryNbRpMIDwkdIjg8sfRSAVaIPhg6LLzohsyor5OP0,1638
|
|
4
4
|
forgemcp/markdown.py,sha256=oeW_cBIUo4BrU3iLFLuZDj50-DIyX1APQ0ongp01KWM,10599
|
|
5
5
|
forgemcp/progress.py,sha256=jdv8We1F5GFhtYna4fZ_SekRjQvOBJUKyFW4AjcYZes,1253
|
|
6
|
-
forgemcp/server.py,sha256=
|
|
6
|
+
forgemcp/server.py,sha256=h66LU4elkSe88pnKTl06fF4RDRdPJiHIPCWkerVPOgw,6496
|
|
7
7
|
forgemcp/text.py,sha256=X792KGlPSlRHoUHp-lj5tmlv0AHqq5mY1J_57YR_9uE,1316
|
|
8
|
-
forgemcp/assets/clangd-result.html,sha256=
|
|
9
|
-
forgemcp/assets/cmake-build.html,sha256=
|
|
10
|
-
forgemcp/assets/cmake-configure.html,sha256=
|
|
11
|
-
forgemcp/assets/cmake-profiles.html,sha256=
|
|
12
|
-
forgemcp/assets/cmake-test.html,sha256=
|
|
13
|
-
forgemcp/assets/
|
|
14
|
-
forgemcp/assets/process-
|
|
15
|
-
forgemcp/assets/
|
|
16
|
-
forgemcp/assets/
|
|
17
|
-
forgemcp/assets/workspace-
|
|
18
|
-
forgemcp/assets/workspace-
|
|
19
|
-
forgemcp/assets/workspace-
|
|
8
|
+
forgemcp/assets/clangd-result.html,sha256=MLiR12nJY4TzdGg3LpdP0vriy4T7rluncfwNSrFf-CA,579631
|
|
9
|
+
forgemcp/assets/cmake-build.html,sha256=tqwNeJvoUHPJnBwQGqc1T8YSMTwwTtMHbPcSpkmUUFs,467786
|
|
10
|
+
forgemcp/assets/cmake-configure.html,sha256=gOiMQKqdMgR4sO9p567TmagB14UFTaLki3lbmX2XK48,467810
|
|
11
|
+
forgemcp/assets/cmake-profiles.html,sha256=_tNT-w03sVy3alwkJn0QZOEwtfEtMQiGKAKoR3IrFfU,467798
|
|
12
|
+
forgemcp/assets/cmake-run-test.html,sha256=k2OBNfBrWJsJXWEoJhqZwzoRjozTyjFIOwTsqZUkoD0,467814
|
|
13
|
+
forgemcp/assets/cmake-test.html,sha256=kJG-KZjQCNKwmQ-eJk6KGePvTfd7pPRzLgDhrEh4Gso,467788
|
|
14
|
+
forgemcp/assets/process-details.html,sha256=5iabo4LJvzJ3_z_isVg2l_mszv3Mwc9yfWClAoC3G5I,457724
|
|
15
|
+
forgemcp/assets/process-overview.html,sha256=rItP_4FgD-DpY9h3zE0asmFafiZHE8GI-VtB0JjEChs,470558
|
|
16
|
+
forgemcp/assets/toolsets.html,sha256=okDy1rrTZYBPAXfiwOpnmgeD8DEiYqMQrX6PGl_uyBE,466977
|
|
17
|
+
forgemcp/assets/workspace-file.html,sha256=LpnemqfhljKrLUAaPQqt_zSwpLOJLVCREpPROngxawg,594995
|
|
18
|
+
forgemcp/assets/workspace-result.html,sha256=wCbC7xUfItIft68cK8qv1C32bHl9xJEzy7gD11vejlg,595001
|
|
19
|
+
forgemcp/assets/workspace-search.html,sha256=p6UuLwbg7mM228YTH5C00Bdpw5WZjlYQMF8AVKEIk1Y,595006
|
|
20
|
+
forgemcp/assets/workspace-tree.html,sha256=1a5PqxwFG4KbdvONDvyCrhS7eyx0i4RCAX6qF7SCRkY,594995
|
|
20
21
|
forgemcp/clangd/__init__.py,sha256=28CNWRBBzNsktJ5md1__XM859vCNa6XgtpGpvM4WL6k,49
|
|
21
22
|
forgemcp/clangd/errors.py,sha256=aYOzCVPtcZlI8bIe610_3WMM-NXuuYVhEprZ6z954r4,988
|
|
22
23
|
forgemcp/clangd/models.py,sha256=c9S8iEo1m5WC05wphRJC6v36w4VOKbh777UoSkEtrzQ,4920
|
|
23
|
-
forgemcp/clangd/service.py,sha256=
|
|
24
|
-
forgemcp/clangd/session.py,sha256=
|
|
24
|
+
forgemcp/clangd/service.py,sha256=xgcD7LY2pAAEu7FqzqsqSA9oJfd_bcqGvqwHHdBFPpg,54892
|
|
25
|
+
forgemcp/clangd/session.py,sha256=a0oZVnzd47StF8zFsPwdf2P1EWF2v3rPurfImiG7Bjo,22552
|
|
25
26
|
forgemcp/clangd/text.py,sha256=CJJHQvbkBlL6zj1H-BcIR6J-fqvKXErv5LKz-PbLSD0,9394
|
|
26
27
|
forgemcp/cmake/__init__.py,sha256=qI2hkfi4GsZj_rpa24E3M2LUnIYCbKEgVCmNDiNtFMU,43
|
|
27
|
-
forgemcp/cmake/errors.py,sha256=
|
|
28
|
-
forgemcp/cmake/models.py,sha256=
|
|
28
|
+
forgemcp/cmake/errors.py,sha256=zBRSuL10AyxqFxfEvCJUDjiwMUY6hy3UGbscZ6ZNoP4,180
|
|
29
|
+
forgemcp/cmake/models.py,sha256=vCCbBV8cubRN83SHCpO-9QqdIN12wsLvmNc-kQyYt28,2738
|
|
29
30
|
forgemcp/cmake/profiles.py,sha256=2ZCzSX6u-Obv130BKjsKFl414axnq51cwMCw9Pllw8I,3767
|
|
30
|
-
forgemcp/cmake/service.py,sha256=
|
|
31
|
-
forgemcp/cmake/text.py,sha256=
|
|
32
|
-
forgemcp/icons/clangd.LICENSE,sha256=
|
|
33
|
-
forgemcp/icons/clangd.svg,sha256=
|
|
34
|
-
forgemcp/icons/cmake.svg,sha256=
|
|
35
|
-
forgemcp/icons/process.svg,sha256
|
|
36
|
-
forgemcp/icons/toolchain.svg,sha256=
|
|
37
|
-
forgemcp/icons/workspace-edit.svg,sha256=
|
|
38
|
-
forgemcp/icons/workspace-file.svg,sha256=
|
|
39
|
-
forgemcp/icons/workspace-search.svg,sha256=
|
|
40
|
-
forgemcp/icons/workspace.svg,sha256=
|
|
31
|
+
forgemcp/cmake/service.py,sha256=bZm7vIc17dG-ITSbrbPa6V_laFoYwMgOS5iuCEX5OG4,48736
|
|
32
|
+
forgemcp/cmake/text.py,sha256=uKhH5rOzOH1JIUTlV77Te0VTE0rwwhSHexIY7S1Jeac,4811
|
|
33
|
+
forgemcp/icons/clangd.LICENSE,sha256=9ysSDROFQI6eOArMAgdW62uhtGHWbDKOpnMnugjX3P0,12263
|
|
34
|
+
forgemcp/icons/clangd.svg,sha256=za6pqUyRhl-hnzF65DNF0Xbyim2vYv6Tp0K0zyHTf0o,1864
|
|
35
|
+
forgemcp/icons/cmake.svg,sha256=76fBkKz4OUm1lbzwYYdia1KO9HWSr_u_ItyFvKetMRw,677
|
|
36
|
+
forgemcp/icons/process.svg,sha256=1BoCqUwYZUYgUn6uhGPTqKOW_TZOVOa4_BfANN8rSMY,247
|
|
37
|
+
forgemcp/icons/toolchain.svg,sha256=d5XaQwAl4ypgF4dJoY_6GjD2d92SEs4yIGU4DBPHKYc,254
|
|
38
|
+
forgemcp/icons/workspace-edit.svg,sha256=PsWRrzX_8o7UZ8BQD0M8hVhfPZEqOYuJEGP6w_TH6dw,261
|
|
39
|
+
forgemcp/icons/workspace-file.svg,sha256=hSFhrEbeca0mJJtLmZru8JhfS488jIQKLnUZf-tV2P4,268
|
|
40
|
+
forgemcp/icons/workspace-search.svg,sha256=0H9kseGpppC4jY0-SWjlglH5Ionh0eEolFyKIR8BB1c,273
|
|
41
|
+
forgemcp/icons/workspace.svg,sha256=Ik4CdguQnYM4N1LgEEbEfjys1kjHliax_34DnS2NeQg,186
|
|
41
42
|
forgemcp/process/__init__.py,sha256=AgA_kCMjAqEYamEoJDt1r-BO7oUhxXnVeCdgMkjks6w,377
|
|
42
43
|
forgemcp/process/errors.py,sha256=HKm052X3_U4BVyT6jcObRPPhEFSltJTVHMySs3oNKRg,560
|
|
43
44
|
forgemcp/process/models.py,sha256=mEeCfOcAkrIvj_ioqDXzVtKicxg5JQoj01TxEv-HXHY,5163
|
|
44
|
-
forgemcp/process/service.py,sha256=
|
|
45
|
+
forgemcp/process/service.py,sha256=44iWU6XvEjGcLLOfi5JMyUVS9ABHD_jXVSimRyA0tLs,32808
|
|
45
46
|
forgemcp/process/text.py,sha256=adu_kYTEnnkj2eKEkYsezbhaRV5sQtgjHnlQhRgwz14,2745
|
|
46
47
|
forgemcp/process/transcript.py,sha256=bawogNS_1OaXsl_wl9Epx5PMcstLGP-IMipj7L7W1AM,4244
|
|
47
48
|
forgemcp/toolchain/__init__.py,sha256=EJIuBS2kRnPawqSiGqCps86AJB-K4H2AFp1zeTfZn7E,66
|
|
@@ -57,7 +58,7 @@ forgemcp/toolchain/providers/visual_studio.py,sha256=_dbvJ1etjWs7GiQCZZW-2nvjKM2
|
|
|
57
58
|
forgemcp/toolchain/tools/__init__.py,sha256=_XfdPYomtc8WunNyhcxWZYkCP9hRhtoZZzm39rwmS0E,74
|
|
58
59
|
forgemcp/toolchain/tools/clang.py,sha256=zDFkk4gZy-ENGGVC0tloz9gDku1GGiaX6xElcC31KhU,2381
|
|
59
60
|
forgemcp/toolchain/tools/clang_cl.py,sha256=-DGFbyxct_p5397irMtT-7dVJbz8bJErYxeBdH83fO8,2396
|
|
60
|
-
forgemcp/toolchain/tools/clangd.py,sha256=
|
|
61
|
+
forgemcp/toolchain/tools/clangd.py,sha256=hGdN0vFveZnmsau1eH-frEthyo5VOZsrJUrVX5LAIis,11444
|
|
61
62
|
forgemcp/toolchain/tools/clangxx.py,sha256=xtvwRc83WzcsGfGYvbjn_NoTQUWohtASkWwhNVaG1RQ,2391
|
|
62
63
|
forgemcp/toolchain/tools/cmake.py,sha256=ZMLWhaf8-KZEEaWStAXkUzS1BheKuvMfMb0BtwMfZAg,11239
|
|
63
64
|
forgemcp/toolchain/tools/cppvsdbg.py,sha256=1aR9OS__dEB4lDUAV2DDK_4pD393iLO9--rA1hZ89FA,787
|
|
@@ -83,8 +84,8 @@ forgemcp/workspace/path.py,sha256=jh68b_ZBPH6Z_gkoYfjm5qp-XmL0ux5Y8UURk7L58ss,37
|
|
|
83
84
|
forgemcp/workspace/providers.py,sha256=DrCXoihTRd7O_tRIc2Drz4S97HSzBPODzphfSrEYZhI,861
|
|
84
85
|
forgemcp/workspace/service.py,sha256=4D9SNHYU76QSpL43kMB41E4-el6n-i_Ni7ID4AgGH6o,76086
|
|
85
86
|
forgemcp/workspace/text.py,sha256=RdfmqsEEsYlldrRiRS9ASR4OiGAvjDaSz1RyCmPU-q8,4578
|
|
86
|
-
forge_cpp_mcp-0.2.
|
|
87
|
-
forge_cpp_mcp-0.2.
|
|
88
|
-
forge_cpp_mcp-0.2.
|
|
89
|
-
forge_cpp_mcp-0.2.
|
|
90
|
-
forge_cpp_mcp-0.2.
|
|
87
|
+
forge_cpp_mcp-0.2.4.dist-info/METADATA,sha256=iiKDvcV1pXNHjpsdF9GmW0OApPI7flw2lgjEUD6oohk,27568
|
|
88
|
+
forge_cpp_mcp-0.2.4.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
89
|
+
forge_cpp_mcp-0.2.4.dist-info/entry_points.txt,sha256=X3lvpCOLmNNRl5SUIs2Py6jNR_ySNbIHo43OkeJTwjk,50
|
|
90
|
+
forge_cpp_mcp-0.2.4.dist-info/licenses/LICENSE,sha256=LmXV0zKMUYEP9wGMetoup7zgKNN_29LFO_Jey5VR5so,1071
|
|
91
|
+
forge_cpp_mcp-0.2.4.dist-info/RECORD,,
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 hardened-steel
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 hardened-steel
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
forgemcp/__init__.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
3
|
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Clangd result</title> <script type="module" crossorigin>var e=Object.defineProperty,t=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},n=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},r=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var i=n({BIGINT_FORMAT_RANGES:()=>Qe,CONSTANT_CATCH:()=>it,Class:()=>et,NUMBER_FORMAT_RANGES:()=>Ze,aborted:()=>xe,allowsEval:()=>qe,assert:()=>u,assertEqual:()=>a,assertIs:()=>c,assertNever:()=>l,assertNotEqual:()=>o,assignProp:()=>y,attachSchema:()=>Te,base64ToUint8Array:()=>Me,base64urlToUint8Array:()=>Pe,cached:()=>m,captureStackTrace:()=>Ke,cleanEnum:()=>je,cleanRegex:()=>g,clone:()=>x,cloneDef:()=>ne,codePointLength:()=>Oe,constantCatch:()=>We,createTransparentProxy:()=>fe,defineLazy:()=>v,defineLazyInternal:()=>T,esc:()=>oe,escapeRegex:()=>b,explicitlyAborted:()=>Se,extend:()=>ge,finalizeIssue:()=>Ee,floatSafeRemainder:()=>_,getElementAtPath:()=>re,getEnumValues:()=>d,getLengthableOrigin:()=>ke,getParsedType:()=>Je,getSizableOrigin:()=>De,hexToUint8Array:()=>Ie,hide:()=>Be,installLazyProp:()=>Ue,isObject:()=>ce,isPlainObject:()=>le,issue:()=>Ae,joinValues:()=>f,jsonStringifyReplacer:()=>p,members:()=>Re,merge:()=>ve,mergeDefs:()=>te,normalizeParams:()=>S,nullish:()=>h,numKeys:()=>de,objectClone:()=>ee,omit:()=>he,optionalKeys:()=>pe,own:()=>ze,parsedType:()=>w,partial:()=>ye,pick:()=>me,prefixIssues:()=>Ce,primitiveTypes:()=>Xe,promiseAllObject:()=>ie,propertyKeyTypes:()=>Ye,randomString:()=>ae,required:()=>be,safeExtend:()=>_e,shallowClone:()=>ue,slugify:()=>se,stringifyPrimitive:()=>C,toZod:()=>s,uint8ArrayToBase64:()=>Ne,uint8ArrayToBase64url:()=>Fe,uint8ArrayToHex:()=>Le,unwrapMessage:()=>we});function a(e){return e}function o(e){return e}function s(){return e=>e}function c(e){}function l(e){throw Error(`Unexpected value in exhaustive check`)}function u(e){}function d(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function f(e,t=`|`){return e.map(e=>C(e)).join(t)}function p(e,t){return typeof t==`bigint`?t.toString():t}function m(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function h(e){return e==null}function g(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function _(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function v(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Ge)return r===void 0&&(r=Ge,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function ee(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function y(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function te(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function ne(e){return te(e._zod.def)}function re(e,t){return t?t.reduce((e,t)=>e?.[t],e):e}function ie(e){let t=Object.keys(e),n=t.map(t=>e[t]);return Promise.all(n).then(e=>{let n={};for(let r=0;r<t.length;r++)n[t[r]]=e[r];return n})}function ae(e=10){let t=``;for(let n=0;n<e;n++)t+=`abcdefghijklmnopqrstuvwxyz`[Math.floor(Math.random()*26)];return t}function oe(e){return JSON.stringify(e)}function se(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}function ce(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function le(e){if(ce(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return ce(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function ue(e){return le(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function de(e){let t=0;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function b(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function x(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function S(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function fe(e){let t;return new Proxy({},{get(n,r,i){return t??=e(),Reflect.get(t,r,i)},set(n,r,i,a){return t??=e(),Reflect.set(t,r,i,a)},has(n,r){return t??=e(),Reflect.has(t,r)},deleteProperty(n,r){return t??=e(),Reflect.deleteProperty(t,r)},ownKeys(n){return t??=e(),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??=e(),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??=e(),Reflect.defineProperty(t,r,i)}})}function C(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function pe(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}function me(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return x(e,te(e._zod.def,{get shape(){let e={};for(let r of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(n.shape,r))throw Error(`Unrecognized key: "${String(r)}"`);t[r]&&y(e,r,n.shape[r])}return y(this,`shape`,e),e},checks:[]}))}function he(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return x(e,te(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(n.shape,e))throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&delete r[e]}return y(this,`shape`,r),r},checks:[]}))}function ge(e,t){if(!le(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return x(e,te(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return y(this,`shape`,n),n}}))}function _e(e,t){if(!le(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return x(e,te(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return y(this,`shape`,n),n}}))}function ve(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return x(e,te(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return y(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function ye(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);return x(t,te(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t of Reflect.ownKeys(n)){if(!Object.prototype.hasOwnProperty.call(r,t))throw Error(`Unrecognized key: "${String(t)}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t of Reflect.ownKeys(r))i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return y(this,`shape`,i),i},checks:[]}))}function be(e,t,n){return x(t,te(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t of Reflect.ownKeys(n)){if(!Object.prototype.hasOwnProperty.call(i,t))throw Error(`Unrecognized key: "${String(t)}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t of Reflect.ownKeys(r))i[t]=new e({type:`nonoptional`,innerType:r[t]});return y(this,`shape`,i),i}}))}function xe(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function Se(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function Ce(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function we(e){return typeof e==`string`?e:e?.message}function Te(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function Ee(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:we(e.inst?._zod.def?.error?.(e))??we(a?.(e))??we(t?.error?.(e))??we(n.customError?.(e))??we(n.localeError?.(e))??`Invalid input`,{inst:s,schema:c,continue:l,input:u,...d}=e;return d.path??=[],d.message=o,t?.reportInput&&(d.input=u),d}function De(e){return e instanceof Set?`set`:e instanceof Map?`map`:e instanceof File?`file`:`unknown`}function Oe(e){let t=e.length;if(!$e.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function ke(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function w(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function Ae(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function je(e){return Object.entries(e).filter(([e,t])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Me(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function Ne(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function Pe(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return Me(t+`=`.repeat((4-t.length%4)%4))}function Fe(e){return Ne(e).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function Ie(e){let t=e.replace(/^0x/,``);if(t.length%2!=0)throw Error(`Invalid hex string length`);let n=new Uint8Array(t.length/2);for(let e=0;e<t.length;e+=2)n[e/2]=Number.parseInt(t.slice(e,e+2),16);return n}function Le(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function Re(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Ve(e,n,r.value)}}function ze(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function Be(e,t,n){return ze(e,t,n,!1)}function Ve(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:ze(this,t,n.bind(this))},set(e){ze(this,t,e)}})}function He(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}function T(e,t,n){let r=Object.getPrototypeOf(e._zod);if(t in r&&tt!==e._zod){tt=void 0;return}tt=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,rt);let e=nt;nt=!1;try{let r=n(this);return nt?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),nt||=e,r}catch(n){throw delete this[t],nt||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})}function Ue(e,t,n,r){let i=He(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}function We(e){let t=()=>e;return t[it]=!0,t}var Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,nt,rt,it,E=t((()=>{ht(),Ge=Symbol(`evaluating`),Ke=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{},qe=m(()=>{if(mt.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}}),Je=e=>{let t=typeof e;switch(t){case`undefined`:return`undefined`;case`string`:return`string`;case`number`:return Number.isNaN(e)?`nan`:`number`;case`boolean`:return`boolean`;case`function`:return`function`;case`bigint`:return`bigint`;case`symbol`:return`symbol`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?`promise`:typeof Map<`u`&&e instanceof Map?`map`:typeof Set<`u`&&e instanceof Set?`set`:typeof Date<`u`&&e instanceof Date?`date`:typeof File<`u`&&e instanceof File?`file`:`object`;default:throw Error(`Unknown data type: ${t}`)}},Ye=new Set([`string`,`number`,`symbol`]),Xe=new Set([`string`,`number`,`bigint`,`boolean`,`symbol`,`undefined`]),Ze={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Qe={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]},$e=/[\uD800-\uDBFF]/,et=class{constructor(...e){}},nt=!1,rt={configurable:!0,get(){nt=!0}},it=`~constantCatch`}));function at(e){let t=ut;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return ut=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function D(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){lt.value=new a(r);try{Object.defineProperty(n,"_zod",lt)}finally{lt.value=void 0}}if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Re(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?at(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}function ot(e){return e&&Object.assign(mt,e),mt}var st,ct,lt,ut,dt,ft,pt,mt,ht=t((()=>{E(),ct=Object.freeze({status:`aborted`}),lt={value:void 0,enumerable:!1},ut=`captureStackTrace`in Error?Error:null,dt=Symbol(`zod_brand`),ft=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},pt=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},(st=globalThis).__zod_globalConfig??(st.__zod_globalConfig={}),mt=globalThis.__zod_globalConfig}));function gt(){let e=this._zod;return e.message??=JSON.stringify(e.def,p,2),e.message}function _t(e){this._zod.message=e}function vt(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function yt(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?vt(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function bt(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function xt(e,t=e=>e.message){let n={errors:[]},r=(e,i=[])=>{var a;for(let o of e.issues)if(o.code===`invalid_union`&&o.errors.length)o.errors.map(e=>r({issues:e},[...i,...o.path]));else if(o.code===`invalid_key`)r({issues:o.issues},[...i,...o.path]);else if(o.code===`invalid_element`)r({issues:o.issues},[...i,...o.path]);else{let e=[...i,...o.path];if(e.length===0){n.errors.push(t(o));continue}let r=n,s=0;for(;s<e.length;){let n=e[s],i=s===e.length-1;typeof n==`string`?(r.properties??(r.properties={}),Object.prototype.hasOwnProperty.call(r.properties,n)||Object.defineProperty(r.properties,n,{value:{errors:[]},enumerable:!0,writable:!0,configurable:!0}),r=r.properties[n]):(r.items??(r.items=[]),(a=r.items)[n]??(a[n]={errors:[]}),r=r.items[n]),i&&r.errors.push(t(o)),s++}}};return r(e),n}function St(e){let t=[],n=e.map(e=>typeof e==`object`?e.key:e);for(let e of n)typeof e==`number`?t.push(`[${e}]`):typeof e==`symbol`?t.push(`[${JSON.stringify(String(e))}]`):/[^\w$]/.test(e)?t.push(`[${JSON.stringify(e)}]`):(t.length&&t.push(`.`),t.push(e));return t.join(``)}function Ct(e){let t=[],n=[...e.issues].sort((e,t)=>(e.path??[]).length-(t.path??[]).length);for(let e of n)t.push(`✖ ${e.message}`),e.path?.length&&t.push(` → at ${St(e.path)}`);return t.join(`
|
|
4
4
|
`)}var wt,Tt,Et,Dt,Ot,kt,At,jt=t((()=>{ht(),E(),wt={get:gt,set:_t,enumerable:!0,configurable:!0},Tt={value:void 0,enumerable:!1},Et={value:void 0,enumerable:!1},Dt=new WeakSet([Object.prototype,Error.prototype]),Ot=(e,t)=>{e.name=`$ZodError`,Tt.value=e._zod,Object.defineProperty(e,"_zod",Tt),Et.value=t,Object.defineProperty(e,"issues",Et),Tt.value=void 0,Et.value=void 0,Object.defineProperty(e,"message",wt);let n=Object.getPrototypeOf(e);Dt.has(n)||(Dt.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))},kt=D(`$ZodError`,Ot),At=D(`$ZodError`,Ot,void 0,{Parent:Error})}));function Mt(e,t){return{callee:t?.callee??e,Err:t?.Err}}function Nt(e,t,n){let r=n?{...n,async:!1}:{async:!1},i=e._zod.bag.fallbackRun,a;if(i?(r[Ut]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new ft;return a.issues.length===0}var Pt,Ft,It,Lt,Rt,zt,Bt,Vt,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln=t((()=>{ht(),jt(),E(),Pt=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new ft;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>Ee(e,o,ot())));throw Ke(n,a?.callee??t),n}return s.value};return t},Ft=Pt(At),It=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>Ee(e,o,ot())));throw Ke(n,a?.callee??t),n}return s.value};return t},Lt=It(At),Rt=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new ft;return a.issues.length?{success:!1,error:new(e??kt)(a.issues.map(e=>Ee(e,i,ot())))}:{success:!0,data:a.value}},zt=Rt(At),Bt=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>Ee(e,i,ot())))}:{success:!0,data:a.value}},Vt=Bt(At),Ht=Symbol.for(`zod.compile.invalid`),Ut=Symbol.for(`zod.compile.fallback`),Wt=((e,t,n)=>{let r=e._zod.bag.validator;return r!==void 0&&r(t)!==Ht||Nt(e,t,n)}),Gt=async(e,t,n)=>{let r=n?{...n,async:!0}:{async:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},Kt=e=>{let t=Pt(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,Mt(n,a))};return n},qt=Kt(At),Jt=e=>{let t=Pt(e),n=(e,r,i,a)=>t(e,r,i,Mt(n,a));return n},Yt=Jt(At),Xt=e=>{let t=It(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,Mt(n,a))};return n},Zt=Xt(At),Qt=e=>{let t=It(e),n=async(e,r,i,a)=>await t(e,r,i,Mt(n,a));return n},$t=Qt(At),en=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Rt(e)(t,n,i)},tn=en(At),nn=e=>(t,n,r)=>Rt(e)(t,n,r),rn=nn(At),an=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Bt(e)(t,n,i)},on=an(At),sn=e=>async(t,n,r)=>Bt(e)(t,n,r),cn=sn(At)})),un=n({base64:()=>Wn,base64url:()=>Gn,bigint:()=>er,boolean:()=>rr,browserEmail:()=>Ln,cidrv4:()=>Hn,cidrv6:()=>Un,creditCard:()=>Xn,cuid:()=>yn,cuid2:()=>bn,date:()=>Qn,datetime:()=>gn,domain:()=>qn,duration:()=>Tn,e164:()=>Yn,email:()=>Mn,emoji:()=>fn,extendedDuration:()=>En,guid:()=>Dn,hex:()=>cr,hostname:()=>Kn,html5Email:()=>Nn,httpProtocol:()=>Jn,idnEmail:()=>In,integer:()=>tr,ipv4:()=>zn,ipv6:()=>Bn,ksuid:()=>Cn,lowercase:()=>or,mac:()=>Vn,md5_base64:()=>ur,md5_base64url:()=>dr,md5_hex:()=>lr,nanoid:()=>wn,nanoidOfLength:()=>dn,null:()=>ir,number:()=>nr,rfc5322Email:()=>Pn,sha1_base64:()=>pr,sha1_base64url:()=>mr,sha1_hex:()=>fr,sha256_base64:()=>gr,sha256_base64url:()=>_r,sha256_hex:()=>hr,sha384_base64:()=>yr,sha384_base64url:()=>br,sha384_hex:()=>vr,sha512_base64:()=>Sr,sha512_base64url:()=>Cr,sha512_hex:()=>xr,string:()=>$n,time:()=>hn,ulid:()=>xn,undefined:()=>ar,unicodeEmail:()=>Fn,uppercase:()=>sr,uuid:()=>On,uuid4:()=>kn,uuid6:()=>An,uuid7:()=>jn,xid:()=>Sn});function dn(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}function fn(){return new RegExp(Rn,`u`)}function pn(e){return RegExp(`^${e}$`)}function mn(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function hn(e){return RegExp(`^${mn(e)}$`)}function gn(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${mn({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${mn({precision:e.precision})}`:n;return RegExp(`^${Zn}T(?:${r})$`)}function _n(e,t){return RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function vn(e){return RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr,br,xr,Sr,Cr,wr=t((()=>{E(),yn=/^[cC][0-9a-z]{6,}$/,bn=/^[0-9a-z]+$/,xn=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Sn=/^[0-9a-vA-V]{20}$/,Cn=/^[A-Za-z0-9]{27}$/,wn=/^[a-zA-Z0-9_-]{21}$/,Tn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,En=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Dn=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,On=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,kn=On(4),An=On(6),jn=On(7),Mn=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Nn=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Pn=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,Fn=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,In=Fn,Ln=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Rn=`^[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`,zn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Bn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Vn=e=>{let t=b(e??`:`);return RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},Hn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Un=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Wn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Gn=/^[A-Za-z0-9_-]*$/,Kn=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,qn=/^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/,Jn=/^https?$/,Yn=/^\+[1-9]\d{6,14}$/,Xn=/^\d(?:[ -]?\d){11,18}$/,Zn=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,Qn=pn(Zn),$n=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},er=/^-?\d+n?$/,tr=/^-?\d+$/,nr=/^-?\d+(?:\.\d+)?$/,rr=/^(?:true|false)$/i,ir=/^null$/i,ar=/^undefined$/i,or=/^[^A-Z]*$/,sr=/^[^a-z]*$/,cr=/^[0-9a-fA-F]*$/,lr=/^[0-9a-fA-F]{32}$/,ur=_n(22,`==`),dr=vn(22),fr=/^[0-9a-fA-F]{40}$/,pr=_n(27,`=`),mr=vn(27),hr=/^[0-9a-fA-F]{64}$/,gr=_n(43,`=`),_r=vn(43),vr=/^[0-9a-fA-F]{96}$/,yr=_n(64,``),br=vn(64),xr=/^[0-9a-fA-F]{128}$/,Sr=_n(86,`==`),Cr=vn(86)}));function Tr(e,t,n){e.issues.length&&t.issues.push(...Ce(n,e.issues))}var O,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr=t((()=>{ht(),wr(),E(),O=D(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Er=e=>{let t=e.value;return!h(t)&&t.size!==void 0},Dr=e=>{let t=e.value;return!h(t)&&t.length!==void 0},Or={number:`number`,bigint:`bigint`,object:`date`},kr=D(`$ZodCheckLessThan`,(e,t)=>{O.init(e,t);let n=Or[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:Or[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ar=D(`$ZodCheckGreaterThan`,(e,t)=>{O.init(e,t);let n=Or[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:Or[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),jr=D(`$ZodCheckMultipleOf`,(e,t)=>{O.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):_(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Mr=D(`$ZodCheckNumberFormat`,(e,t)=>{O.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Ze[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=tr)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Nr=D(`$ZodCheckBigIntFormat`,(e,t)=>{O.init(e,t);let[n,r]=Qe[t.format];e._zod.onattach.push(e=>{let i=e._zod.bag;i.format=t.format,i.minimum=n,i.maximum=r}),e._zod.check=i=>{let a=i.value;a<n&&i.issues.push({origin:`bigint`,input:a,code:`too_small`,minimum:n,inclusive:!0,inst:e,continue:!t.abort}),a>r&&i.issues.push({origin:`bigint`,input:a,code:`too_big`,maximum:r,inclusive:!0,inst:e,continue:!t.abort})}}),Pr=D(`$ZodCheckMaxSize`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=Er),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;r.size<=t.maximum||n.issues.push({origin:De(r),code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Fr=D(`$ZodCheckMinSize`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=Er),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;r.size>=t.minimum||n.issues.push({origin:De(r),code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Ir=D(`$ZodCheckSizeEquals`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=Er),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.size,n.maximum=t.size,n.size=t.size}),e._zod.check=n=>{let r=n.value,i=r.size;if(i===t.size)return;let a=i>t.size;n.issues.push({origin:De(r),...a?{code:`too_big`,maximum:t.size}:{code:`too_small`,minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Lr=D(`$ZodCheckMaxLength`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=Dr),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?Oe(r):i)<=t.maximum)return;let a=ke(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Rr=D(`$ZodCheckMinLength`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=Dr),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?Oe(r):i)>=t.minimum)return;let a=ke(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),zr=D(`$ZodCheckLengthEquals`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=Dr),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?Oe(r):i;if(a===t.length)return;let o=ke(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Br=D(`$ZodCheckStringFormat`,(e,t)=>{var n,r;O.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Vr=D(`$ZodCheckRegex`,(e,t)=>{Br.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Hr=D(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=or,Br.init(e,t)}),Ur=D(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=sr,Br.init(e,t)}),Wr=D(`$ZodCheckIncludes`,(e,t)=>{O.init(e,t);let n=b(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Gr=D(`$ZodCheckStartsWith`,(e,t)=>{O.init(e,t);let n=RegExp(`^${b(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Kr=D(`$ZodCheckEndsWith`,(e,t)=>{O.init(e,t);let n=RegExp(`.*${b(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),qr=D(`$ZodCheckProperty`,(e,t)=>{O.init(e,t),e._zod.check=e=>{let n=t.schema._zod.run({value:e.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(n=>Tr(n,e,t.property));Tr(n,e,t.property)}}),Jr=D(`$ZodCheckMimeType`,(e,t)=>{O.init(e,t);let n=new Set(t.mime);e._zod.onattach.push(e=>{e._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:`invalid_value`,values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),Yr=D(`$ZodCheckOverwrite`,(e,t)=>{O.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}})})),Zr,Qr=t((()=>{Zr=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
|
|
5
5
|
`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(`
|
|
@@ -114,6 +114,6 @@ container holding the app. Specify either width or maxWidth, and either height o
|
|
|
114
114
|
`).toLocaleLowerCase().includes(n)):t,u=new Map;for(let e of l)u.has(e.path)||u.set(e.path,[]),u.get(e.path).push(e);if(a.append($(e,`span`,``,`${l.length} ${r.toLocaleLowerCase()} · ${u.size} files`)),i.append(a),!l.length)return i.append($(e,`p`,`fm-empty`,n?`No matching locations.`:`No ${r.toLocaleLowerCase()} found.`)),i;let d,f=new Map;function p(t){d=t;for(let[e,n]of f)n.setAttribute(`aria-pressed`,String(e===t));s.replaceChildren();let n=$(e,`div`,`fm-nav-target-heading`);if(n.append($(e,`span`,`fm-nav-path`,`${t.path}:${t.range.start.line}`)),t.name&&n.append($(e,`strong`,`fm-symbol-name fm-symbol-${SD(t.kind)}`,t.name)),n.append($(e,`span`,`fm-label`,`Range ${CD(t.range)}`)),s.append(n),!t.preview){s.append($(e,`p`,`fm-empty`,t.path.startsWith(`root/`)?`External file · no source preview`:`Source preview unavailable in this result.`));return}let r=$(e,`div`,`fm-source-viewport fm-location-preview fm-syntax`);r.tabIndex=0,r.setAttribute(`aria-label`,`Source at ${t.path}:${t.range.start.line}`);let i=t.preview.text.split(/(?<=\n)|(?<=\r)(?!\n)/),a=vD(i,t.path);i.forEach((n,o)=>{if(!n&&o===i.length-1)return;let s=t.preview.start_line+o,c=$(e,`div`,`fm-source-line`);c.dataset.line=String(s),c.classList.toggle(`fm-nav-target-line`,s===t.range.start.line);let l=$(e,`code`,``),u=t.range,d=[];u.start.line<=s&&u.end.line>=s&&(u.end.line!==s||u.end.character!==0||u.start.line===s)&&d.push([u.start.line===s?u.start.character:0,u.end.line===s?u.end.character:Array.from(n.replace(/[\r\n]+$/,``)).length]),yD(e,l,n,``,void 0,s,void 0,d,a[o]),c.append(l),r.append(c)}),s.append(r)}function m(t){let n=$(e,`button`,`fm-nav-entry`);n.type=`button`,n.setAttribute(`aria-label`,`${t.name?`${t.name} · `:``}${t.path}:${t.range.start.line}:${t.range.start.character+1}`),n.setAttribute(`aria-pressed`,String(t===d));let r=$(e,`span`,`fm-nav-entry-heading`);if(r.append($(e,`span`,`fm-nav-line-number`,String(t.range.start.line))),t.name)r.append(wD(e,t.kind),$(e,`span`,`fm-symbol-name fm-symbol-${SD(t.kind)}`,t.name));else{let n=t.preview?.text.split(/\r\n|\n|\r/)[t.range.start.line-t.preview.start_line];if(n!==void 0){let i=Array.from(n),a=Math.max(0,t.range.start.character-45),o=Math.min(i.length,a+160),s=$(e,`code`,`fm-nav-line-code`);a&&s.append(e.createTextNode(`…`));let c=t.range.end.line===t.range.start.line?t.range.end.character:i.length;yD(e,s,i.slice(a,o).join(``),``,void 0,void 0,void 0,[[t.range.start.character-a,c-a]]),o<i.length&&s.append(e.createTextNode(`…`)),r.append(s)}else r.append($(e,`span`,`fm-label`,`Column ${t.range.start.character+1}`))}return n.append(r),t.tags?.includes(1)&&n.classList.add(`fm-deprecated`),n.addEventListener(`click`,()=>p(t)),f.set(t,n),n}for(let[t,n]of u){let r=$(e,`details`,`fm-nav-file`);r.open=u.size===1||t===l[0].path;let i=$(e,`summary`,`fm-nav-file-heading`);i.append($(e,`span`,`fm-nav-file-path`,t),$(e,`span`,`fm-navigation-count`,String(n.length))),r.append(i);let a=!1,o=()=>{if(!r.open||a)return;a=!0;let t=new Map;for(let e of n){let n=e.container??``;t.has(n)||t.set(n,[]),t.get(n).push(e)}for(let[n,i]of t){n&&r.append($(e,`div`,`fm-symbol-scope`,n));for(let e of i)r.append(m(e))}};r.addEventListener(`toggle`,o),o(),c.append(r)}return o.append(s,c),i.append(o),p(l[0]),i}function ED(e,t,n=``){let r=e=>e.flatMap(e=>{if(!n||`${e.name}\n${e.detail??``}`.toLocaleLowerCase().includes(n))return[e];let t=r(e.children??[]);return t.length?[{...e,children:t}]:[]}),i=r(t),a=$(e,`div`,`fm-source fm-document-outline`),o=e=>e.reduce((e,t)=>e+1+o(t.children??[]),0);a.append($(e,`div`,`fm-navigation-heading`,`${o(i)} symbols · document outline`));function s(t,r=0){let i=$(e,`ul`,`fm-symbol-tree`);for(let a of t){let t=$(e,`li`,``),o=$(e,`details`,`fm-outline-symbol`);o.open=!!n||r<2;let c=$(e,`summary`,`fm-outline-heading`),l=$(e,`span`,`fm-symbol-name fm-symbol-${SD(a.kind)}`,a.name);a.tags?.includes(1)&&l.classList.add(`fm-deprecated`),c.append(wD(e,a.kind),l,$(e,`span`,`fm-outline-line`,String(a.selection_range.start.line))),c.title=`Selection ${CD(a.selection_range)}`,a.children?.length&&c.append($(e,`span`,`fm-navigation-count`,String(a.children.length))),o.append(c);let u=!1,d=()=>{o.open&&!u&&(u=!0,a.detail&&o.append($(e,`div`,`fm-symbol-detail`,a.detail)),o.append($(e,`div`,`fm-symbol-range`,`Range ${CD(a.range)} · selection ${CD(a.selection_range)}`)),a.children?.length&&o.append(s(a.children,r+1)))};o.addEventListener(`toggle`,d),d(),t.append(o),i.append(t)}return i}return i.length?a.append(s(i)):a.append($(e,`p`,`fm-empty`,n?`No matching symbols.`:`No document symbols found.`)),a}var DD=new dD({html:!1,linkify:!1});DD.renderer.rules.link_open=()=>`<span class="fm-markdown-link">`,DD.renderer.rules.link_close=()=>`</span>`,DD.renderer.rules.image=(e,t)=>DD.utils.escapeHtml(e[t].content);function OD(e){let t=e=>`${e.line}:${e.character+1}`;return e.start.line===e.end.line&&e.start.character===e.end.character?t(e.start):`${t(e.start)}–${t(e.end)}`}function kD(e,t,n=`cpp`){let r=t.textContent.split(/(?<=\n)|(?<=\r)(?!\n)/);if(!/^(?:c|cpp|c\+\+|cc|cxx|h|hpp)$/i.test(n))return;let i=vD(r,n===`c`?`snippet.c`:`snippet.cpp`);t.replaceChildren(),r.forEach((n,r)=>yD(e,t,n,``,void 0,r+1,void 0,[],i[r]))}function AD(e,t){let n=e.createElement(`div`);n.className=`fm-markdown fm-syntax`,n.innerHTML=DD.render(t);for(let t of n.querySelectorAll(`pre > code`)){let n=[...t.classList].find(e=>e.startsWith(`language-`))?.slice(9)||`cpp`;t.parentElement.classList.add(`fm-hover-code`),kD(e,t,n)}return n}function jD(e,t,n){let r=Array.isArray(e)?e:Array.isArray(e?.result)?e.result:null;return{toolName:n,summary:r===null?e:Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([e])=>e!==`result`)),records:r,titleKey:n===`clangd_configurations`?`id`:`path`,recordLabel:{clangd_definition:`Definitions`,clangd_references:`References`,clangd_workspace_symbols:`Workspace symbols`}[n],filterPlaceholder:`Filter configurations and results`,unlabeledFields:[`diagnostics`,`hover`,`locations`,`symbols`]}}function MD(e,t,n,{doc:r,valueNode:i,query:a=``,toolName:o}){let s=(e,t,n)=>{let i=r.createElement(e);return i.className=t,n!==void 0&&(i.textContent=n),i},c=n?.path?.toLocaleLowerCase().includes(a)||n?.configurations?.some(e=>e.toLocaleLowerCase().includes(a))?``:a;if(t===`locations`&&Array.isArray(e))return TD(r,e,c,o===`clangd_definition`?`Definitions`:`References`);if(t===`symbols`&&Array.isArray(e))return n?.path?ED(r,e,c):TD(r,e.map(e=>({...e.location,name:e.name,kind:e.kind,container:e.container_name,tags:e.tags})),c,`Symbols`);if(t===`configurations`&&Array.isArray(e)){let t=s(`span`,`fm-configuration-list`);for(let n of e)t.append(s(`span`,`fm-configuration-badge`,n));return t}if(t===`position`&&e)return s(`span`,`fm-location`,`${e.line}:${e.character+1}`);if(t===`hover`){let t=s(`div`,`fm-source fm-hover-card`);if(!e)return t.append(s(`p`,`fm-label`,`No symbol information at this position.`)),t;for(let n of e.contents)if(n.kind===`markdown`)t.append(AD(r,n.text));else if(n.kind===`code`){let e=s(`pre`,`fm-hover-code fm-syntax`),i=s(`code`,``,n.text);kD(r,i,n.language),e.append(i),t.append(e)}else t.append(s(`p`,`fm-hover-message`,n.text));return e.contents.length||t.append(s(`p`,`fm-label`,`No symbol information at this position.`)),e.range&&t.append(s(`div`,`fm-hover-range`,`Range ${OD(e.range)}`)),t}if(t===`severity`){let t=r.createElement(`span`);return t.className=e===`error`?`fm-error`:e===`warning`?`fm-warning`:`fm-label`,t.textContent=e??`null`,t}if(t===`diagnostics`&&Array.isArray(e)&&e.every(e=>typeof e?.message==`string`)){let t=s(`div`,`fm-source fm-diagnostics`);if(!e.length)return t.append(s(`div`,`fm-diagnostic-clean fm-success`,`✓ No diagnostics`)),t;let n=new Map;for(let t of e)n.set(t.severity??`diagnostic`,(n.get(t.severity??`diagnostic`)??0)+1);let r=s(`div`,`fm-diagnostic-counts`);for(let[e,t]of n){let n=e===`information`?`note`:e;r.append(s(`span`,`fm-severity fm-severity-${e}`,`${t} ${n}${t===1?``:`s`}`))}t.append(r);for(let n of e){let e=n.severity??`diagnostic`,r=s(`article`,`fm-diagnostic-card fm-severity-${e}`),i=s(`header`,`fm-diagnostic-heading`);i.append(s(`span`,`fm-severity fm-severity-${e}`,e),s(`span`,`fm-location`,OD(n.range)));let a=[n.source,n.code].filter(e=>e!=null).join(` · `);a&&i.append(s(`span`,`fm-diagnostic-origin`,a)),r.append(i,s(`div`,`fm-hover-message`,n.message));for(let e of n.related??[]){let t=s(`div`,`fm-diagnostic-note`);t.append(s(`div`,`fm-hover-location`,`${e.location.path} · ${OD(e.location.range)}`),s(`div`,`fm-hover-message`,e.message)),r.append(t)}for(let e of n.tags??[])r.append(s(`span`,`fm-diagnostic-tag`,{1:`Unnecessary`,2:`Deprecated`}[e]??`Tag ${e}`));t.append(r)}return t}if(t===`analysis`&&Array.isArray(e)){let t=r.createElement(`div`);t.className=`fm-source fm-analysis`;for(let n of e){let e=r.createElement(`h2`);e.className=`fm-record-heading`,e.textContent=n.path,t.append(e,i(n.diagnostics,`diagnostic_groups`))}return e.length||(t.textContent=`No analyzed files`),t}}await $S({toolName:`clangd`,describe:jD,renderValue:MD});</script>
|
|
115
115
|
<style rel="stylesheet" crossorigin>:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{background:0 0;margin:0}.fm-widget{--fm-bg:var(--color-background-primary,var(--lightningcss-light,#f5f5f5)var(--lightningcss-dark,#1c1c1e));--fm-bar:var(--color-background-secondary,var(--lightningcss-light,#e8e8ea)var(--lightningcss-dark,#28282b));--fm-text:var(--color-text-primary,var(--lightningcss-light,#28282c)var(--lightningcss-dark,#dedee1));--fm-muted:var(--color-text-secondary,var(--lightningcss-light,#63636b)var(--lightningcss-dark,#a1a1a8));--fm-border:var(--color-border-secondary,var(--lightningcss-light,#c6c6cb)var(--lightningcss-dark,#414146));--fm-accent:var(--lightningcss-light,#087680)var(--lightningcss-dark,#56cbd3);--fm-warning:var(--lightningcss-light,#856215)var(--lightningcss-dark,#d6bd70);--fm-error:var(--lightningcss-light,#b53043)var(--lightningcss-dark,#ee8790);--fm-success:var(--lightningcss-light,#377743)var(--lightningcss-dark,#8cbb95);--fm-number:var(--lightningcss-light,#6f52a5)var(--lightningcss-dark,#b5a2da);--fm-string:var(--lightningcss-light,#526a38)var(--lightningcss-dark,#becaaa);--fm-hover:var(--lightningcss-light,#dfe8ea)var(--lightningcss-dark,#30373a);--fm-code-keyword:var(--lightningcss-light,#00f)var(--lightningcss-dark,#569cd6);--fm-code-control:var(--lightningcss-light,#af00db)var(--lightningcss-dark,#c586c0);--fm-code-type:var(--lightningcss-light,#267f99)var(--lightningcss-dark,#4ec9b0);--fm-code-function:var(--lightningcss-light,#795e26)var(--lightningcss-dark,#dcdcaa);--fm-code-variable:var(--lightningcss-light,#001080)var(--lightningcss-dark,#9cdcfe);--fm-code-string:var(--lightningcss-light,#a31515)var(--lightningcss-dark,#ce9178);--fm-code-comment:var(--lightningcss-light,green)var(--lightningcss-dark,#6a9955);--fm-code-number:var(--lightningcss-light,#098658)var(--lightningcss-dark,#b5cea8);--fm-code-bracket:var(--lightningcss-light,#705b00)var(--lightningcss-dark,gold);--fm-key-width:20ch;box-sizing:border-box;width:100%;height:420px;padding:var(--fm-safe-top,0px) var(--fm-safe-right,0px) var(--fm-safe-bottom,0px) var(--fm-safe-left,0px);color:var(--fm-text);font:13px/1.35 var(--font-mono,"Cascadia Code", Consolas, "SFMono-Regular", monospace);position:relative;container-type:inline-size}.fm-widget *,.fm-widget :before,.fm-widget :after{box-sizing:border-box;min-width:0}.fm-widget.fm-compact{height:160px}.fm-widget.fm-minimal,.fm-minimal .fm-window{height:auto;max-height:420px}.fm-minimal .fm-scroll{padding:8px 10px}.fm-widget.fm-minimal .fm-field{grid-template-columns:11ch minmax(0,1fr)}.fm-window{border:1px solid var(--fm-border);background:var(--fm-bg);flex-direction:column;height:100%;display:flex;overflow:hidden}.fm-titlebar,.fm-toolbar,.fm-filters,.fm-footer{flex-wrap:wrap;flex:none;align-items:center;gap:3px 10px;display:flex}.fm-titlebar{background:var(--fm-bar);border-bottom:1px solid var(--fm-border);padding:5px 10px}.fm-brand{color:var(--fm-warning);font-weight:500}.fm-tool-name{font:inherit;overflow-wrap:anywhere;margin:0}.fm-mode{color:var(--fm-muted);margin-left:auto;font-size:11px}.fm-toolbar{border-bottom:1px solid var(--fm-border);padding:3px 8px}.fm-widget button,.fm-widget input,.fm-widget select{font:inherit;color:inherit;border-radius:0}.fm-widget button{cursor:pointer;overflow-wrap:anywhere;background:0 0;border:1px solid #0000;padding:2px 5px}.fm-widget button:hover{background:var(--fm-hover);color:var(--fm-accent)}.fm-widget button:focus-visible,.fm-widget input:focus-visible,.fm-widget select:focus-visible{outline:2px solid var(--fm-accent);outline-offset:1px}.fm-widget button:disabled{opacity:.6;cursor:default}.fm-widget button[aria-pressed=true]{color:var(--fm-accent);background:var(--fm-hover);border-color:var(--fm-border)}.fm-views{gap:5px;display:flex}.fm-copy-all{align-items:center;gap:7px;margin-left:auto;display:flex}.fm-filters{border-bottom:1px solid var(--fm-border);padding:4px 10px}.fm-search{flex:160px;align-items:center;gap:8px;display:flex}.fm-search-label{color:var(--fm-accent)}.fm-widget input{border:0;border-bottom:1px solid var(--fm-border);background:0 0;width:100%;padding:1px 0}.fm-widget input::placeholder{color:var(--fm-muted);opacity:1}.fm-widget select{background:var(--fm-bg);border:1px solid var(--fm-border);max-width:100%;padding:1px 5px}.fm-scroll{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--fm-muted) var(--fm-bg);-webkit-user-select:text;user-select:text;flex:1;min-height:0;padding:3px 10px 8px;overflow:hidden auto}.fm-summary{border-bottom:1px solid var(--fm-border);padding:5px 0 7px}.fm-fields{margin:0}.fm-field{grid-template-columns:minmax(0, min(var(--fm-key-width), 42%)) minmax(0, 1fr) 22px;align-items:start;gap:3px 10px;display:grid}.fm-label{color:var(--fm-muted);overflow-wrap:anywhere;white-space:normal}.fm-value{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;margin:0}.fm-widget .fm-copy{color:var(--fm-muted);justify-content:center;align-items:center;width:22px;min-height:20px;padding:1px;display:flex}.fm-icon{fill:none;stroke:currentColor;pointer-events:none;flex:none;width:14px;height:14px;display:block}.fm-record{border-bottom:1px solid var(--fm-border);padding:6px 0}.fm-record-heading{color:var(--fm-accent);font:inherit;overflow-wrap:anywhere;align-items:baseline;gap:7px;margin:0 0 3px;display:flex}.fm-index{color:var(--fm-muted);flex:none;font-size:11px}.fm-json{color:var(--fm-text);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;background:0 0;margin:5px 0;padding:0}.fm-json-plain{white-space:pre;overflow-wrap:normal;overflow-x:auto}.fm-footer{border-top:1px solid var(--fm-border);background:var(--fm-bar);color:var(--fm-muted);justify-content:space-between;padding:4px 10px;font-size:11px}.fm-feedback{overflow-wrap:anywhere}.fm-empty{color:var(--fm-muted);overflow-wrap:anywhere;white-space:pre-wrap;padding:16px 0}.fm-items{white-space:normal}.fm-item{white-space:pre-wrap;overflow-wrap:anywhere}.fm-nested{grid-template-columns:minmax(0,1fr);gap:2px;margin:0;display:grid}.fm-separator,.fm-null,.fm-iso,.fm-json-punctuation{color:var(--fm-muted)}.fm-json-key{color:var(--fm-accent)}.fm-json-string{color:var(--fm-string)}.fm-number{color:var(--fm-number)}.fm-warning,.fm-boolean{color:var(--fm-warning)}.fm-error{color:var(--fm-error)}.fm-success{color:var(--fm-success)}.fm-active{color:var(--fm-accent)}.fm-tooltip{z-index:10;pointer-events:none;border:1px solid var(--fm-border);background:var(--fm-bar);max-width:calc(100% - 16px);color:var(--fm-text);overflow-wrap:anywhere;padding:4px 7px;font-size:12px;position:fixed}.fm-clipboard{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.fm-widget [hidden]{display:none!important}.fm-wide-field{grid-template-columns:minmax(0,1fr) 22px}.fm-wide-field>dt{grid-column:1}.fm-wide-field>dd:first-of-type{grid-area:2/1/auto/-1}.fm-wide-field>dd:last-of-type{grid-area:1/2}.fm-source{white-space:normal;margin:3px 0 7px}.fm-source-line{content-visibility:auto;contain-intrinsic-size:auto 1.35em;grid-template-columns:6ch minmax(0,1fr);gap:10px;display:grid}.fm-source-line:before{content:attr(data-line);text-align:right;color:var(--fm-muted);-webkit-user-select:none;user-select:none;background:var(--fm-bar);border-right:1px solid var(--fm-border);padding-right:1ch}.fm-source-line code{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:4}.fm-source-viewport{border:1px solid var(--fm-border);margin-top:5px;overflow-x:auto}.fm-source-nowrap .fm-source-line{grid-template-columns:6ch auto;width:max-content;min-width:100%}.fm-source-nowrap .fm-source-line code{white-space:pre;overflow-wrap:normal}.fm-search-tabs{border-bottom:1px solid var(--fm-border);gap:6px;margin-bottom:6px;display:flex}.fm-search-tabs [aria-selected=true]{color:var(--fm-accent);background:var(--fm-hover);border-bottom-color:var(--fm-accent)}.fm-search-file{border-bottom:1px solid var(--fm-border);padding:4px 0}.fm-search-file summary{cursor:pointer;color:var(--fm-accent);overflow-wrap:anywhere;padding:3px 0}.fm-widget .fm-match-line{text-align:left;border:0;grid-template-columns:6ch minmax(0,1fr);gap:10px;width:100%;padding:1px 0;display:grid}.fm-match-line:before{content:attr(data-line);text-align:right;color:var(--fm-muted);border-right:1px solid var(--fm-border);-webkit-user-select:none;user-select:none;padding-right:1ch}.fm-match-line code{font:inherit;white-space:pre;tab-size:4;overflow:hidden}.fm-match-expanded code{white-space:pre-wrap;overflow-wrap:anywhere}.fm-match-line mark{color:inherit;background:var(--lightningcss-light,#ffe69a)var(--lightningcss-dark,#685319)}.fm-match-line mark.fm-local-match,.fm-source-line .fm-local-match{color:inherit;background:var(--lightningcss-light,#b3e7ee)var(--lightningcss-dark,#20565e)}.fm-diff-add code{color:var(--fm-success)}.fm-diff-remove code{color:var(--fm-error)}.fm-diff-line{grid-template-columns:6ch 6ch 2ch minmax(0,1fr);gap:4px}.fm-diff-line:before{content:none}.fm-diff-number{text-align:right;color:var(--fm-muted);border-right:1px solid var(--fm-border);-webkit-user-select:none;user-select:none;padding-right:1ch}.fm-diff-sign{color:var(--fm-muted);text-align:center}.fm-diff-add .fm-diff-sign{color:var(--fm-success)}.fm-diff-remove .fm-diff-sign{color:var(--fm-error)}.fm-inline-change{color:inherit;background:0 0}.fm-diff-highlight .fm-diff-add .fm-inline-change{background:var(--lightningcss-light,#c4e9c8)var(--lightningcss-dark,#285032)}.fm-diff-highlight .fm-diff-remove .fm-inline-change{background:var(--lightningcss-light,#f4c3c9)var(--lightningcss-dark,#603039)}.fm-diff-highlight .fm-inline-zero:after{content:"│"}.fm-unlabeled-field>dd:first-of-type{grid-area:1/1}.fm-source-nowrap .fm-diff-line{grid-template-columns:6ch 6ch 2ch auto}.fm-file-sort{border-bottom:1px solid var(--fm-border);gap:6px;padding:3px 0;display:flex}.fm-file-path{border-bottom:1px solid var(--fm-border);overflow-wrap:anywhere;padding:3px 0}.fm-zero-match:after{content:"│"}.fm-source-configuration{color:var(--fm-muted);align-items:center;gap:5px;margin:2px 5px;display:inline-flex}.fm-syntax .fm-token-keyword{color:var(--fm-code-keyword)}.fm-syntax .fm-token-control{color:var(--fm-code-control)}.fm-syntax .fm-token-type{color:var(--fm-code-type)}.fm-syntax .fm-token-function,.fm-syntax .fm-token-macro{color:var(--fm-code-function)}.fm-syntax .fm-token-variable{color:var(--fm-code-variable)}.fm-syntax .fm-token-comment{color:var(--fm-code-comment)}.fm-syntax .fm-token-string{color:var(--fm-code-string)}.fm-syntax .fm-token-number{color:var(--fm-code-number)}.fm-syntax .fm-token-bracket-0{color:var(--fm-code-bracket)}.fm-syntax .fm-token-bracket-1{color:var(--fm-code-control)}.fm-syntax .fm-token-bracket-2{color:var(--fm-code-keyword)}.fm-deprecated{text-decoration:line-through}.fm-diagnostic,.fm-diagnostic-warning,.fm-diagnostic-info{-webkit-text-decoration:underline wavy var(--fm-error);text-decoration:underline wavy var(--fm-error);text-underline-offset:3px}.fm-diagnostic-warning{-webkit-text-decoration-color:var(--fm-warning);text-decoration-color:var(--fm-warning)}.fm-diagnostic-info{-webkit-text-decoration-color:var(--fm-accent);text-decoration-color:var(--fm-accent)}.fm-diagnostic-zero:after{content:"│";color:var(--fm-error)}.fm-diagnostic-warning.fm-diagnostic-zero:after{color:var(--fm-warning)}.fm-diagnostic-info.fm-diagnostic-zero:after{color:var(--fm-accent)}.fm-source-hover{z-index:20;border:1px solid var(--fm-border);background:var(--fm-bar);width:max-content;max-width:min(700px,100% - 16px);font:inherit;white-space:normal;-webkit-user-select:text;user-select:text;border-radius:6px;padding:0 10px;position:absolute;overflow:auto;box-shadow:0 3px 12px #0004}.fm-source-hover section{padding:8px 0}.fm-source-hover section+section{border-top:1px solid var(--fm-border)}.fm-hover-heading{overflow-wrap:anywhere;margin-bottom:5px;font-weight:600}.fm-hover-message{white-space:pre-wrap;overflow-wrap:anywhere}.fm-hover-location{color:var(--fm-code-keyword);overflow-wrap:anywhere;margin-top:8px}.fm-hover-configuration{color:var(--fm-muted);border-top:1px solid var(--fm-border);overflow-wrap:anywhere;padding:5px 0}.fm-configuration-list,.fm-diagnostic-counts{flex-wrap:wrap;gap:4px 6px;display:flex}.fm-configuration-badge,.fm-severity,.fm-diagnostic-tag{border:1px solid var(--fm-border);white-space:normal;overflow-wrap:anywhere;border-radius:3px;padding:1px 6px;font-size:11px;display:inline-block}.fm-configuration-badge{color:var(--fm-accent);background:var(--fm-bar)}.fm-severity-error{--fm-severity:var(--fm-error)}.fm-severity-warning{--fm-severity:var(--fm-warning)}.fm-severity-information,.fm-severity-hint,.fm-severity-diagnostic{--fm-severity:var(--fm-accent)}.fm-severity{color:var(--fm-severity);text-transform:capitalize}.fm-diagnostic-counts{margin-bottom:6px}.fm-diagnostic-card{border:1px solid var(--fm-border);border-left:3px solid var(--fm-severity);background:var(--fm-bar);margin:5px 0;padding:7px 9px}.fm-diagnostic-heading{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:5px;display:flex}.fm-location{color:var(--fm-accent)}.fm-diagnostic-origin{color:var(--fm-muted);overflow-wrap:anywhere;margin-left:auto;font-size:11px}.fm-diagnostic-note{border-left:1px solid var(--fm-border);margin-top:7px;padding-left:9px}.fm-diagnostic-note .fm-hover-location{margin-top:0}.fm-diagnostic-tag{color:var(--fm-muted);margin:6px 5px 0 0}.fm-diagnostic-clean{border:1px solid var(--fm-border);background:var(--fm-bar);padding:8px 10px}.fm-hover-card{border:1px solid var(--fm-border);background:var(--fm-bar);border-radius:4px;padding:8px 10px}.fm-hover-card>p{margin:3px 0}.fm-hover-code{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--fm-bg);border:1px solid var(--fm-border);tab-size:4;margin:6px 0;padding:7px 9px}.fm-hover-code code{font:inherit}.fm-hover-range{color:var(--fm-muted);border-top:1px solid var(--fm-border);margin-top:7px;padding-top:5px;font-size:11px}.fm-markdown{white-space:normal;overflow-wrap:anywhere}.fm-markdown p{margin:5px 0}.fm-markdown h1,.fm-markdown h2,.fm-markdown h3,.fm-markdown h4,.fm-markdown h5,.fm-markdown h6{font:inherit;margin:8px 0 5px;font-weight:600}.fm-markdown>:first-child{margin-top:0}.fm-markdown>:last-child{margin-bottom:0}.fm-markdown ul,.fm-markdown ol{margin:5px 0;padding-left:22px}.fm-markdown li{margin:3px 0}.fm-markdown :not(pre)>code{font:inherit;background:var(--fm-bg);border-radius:3px;padding:1px 4px}.fm-markdown blockquote{border-left:2px solid var(--fm-border);color:var(--fm-muted);margin:7px 0;padding-left:10px}.fm-markdown hr{border:0;border-top:1px solid var(--fm-border);margin:7px 0}.fm-markdown-link{color:var(--fm-accent)}.fm-markdown table{border-collapse:collapse;width:100%;margin:6px 0}.fm-markdown th,.fm-markdown td{border:1px solid var(--fm-border);text-align:left;padding:3px 6px}.fm-navigation-heading{color:var(--fm-muted);margin:3px 0 6px;font-size:11px}.fm-navigation-layout{border:1px solid var(--fm-border);grid-template-columns:minmax(0,1fr) minmax(150px,.75fr);display:grid}.fm-nav-preview{padding:7px 8px}.fm-nav-target-heading{gap:3px;margin-bottom:5px;display:grid}.fm-nav-target-heading .fm-label{font-size:11px}.fm-nav-path{color:var(--fm-accent);overflow-wrap:anywhere}.fm-nav-index{border-left:1px solid var(--fm-border);background:var(--fm-bar);max-height:280px;overflow:auto}.fm-nav-file{border-bottom:1px solid var(--fm-border)}.fm-nav-file-heading{cursor:pointer;align-items:baseline;gap:6px;padding:6px;display:flex}.fm-nav-file-heading:before,.fm-outline-heading:before{content:"▸";color:var(--fm-muted);flex:none}.fm-nav-file[open]>.fm-nav-file-heading:before,.fm-outline-symbol[open]>.fm-outline-heading:before{content:"▾"}.fm-nav-file-path{color:var(--fm-accent);overflow-wrap:anywhere;flex:1}.fm-navigation-count{color:var(--fm-muted);border:1px solid var(--fm-border);border-radius:8px;flex:none;padding:0 5px;font-size:10px}.fm-widget .fm-nav-entry{text-align:left;border-top:1px solid var(--fm-border);width:100%;padding:5px 6px;display:block}.fm-nav-entry-heading{align-items:baseline;gap:6px;display:flex}.fm-nav-line-number{color:var(--fm-muted);flex:none;font-size:11px}.fm-nav-line-code{font:inherit;white-space:pre;text-overflow:ellipsis;overflow:hidden}.fm-nav-line-code .fm-inline-change,.fm-location-preview .fm-inline-change{color:inherit;background:var(--lightningcss-light,#ffe69a)var(--lightningcss-dark,#685319)}.fm-location-preview .fm-inline-zero:after,.fm-nav-line-code .fm-inline-zero:after{content:"│"}.fm-location-preview{margin-top:5px}.fm-nav-target-line{background:var(--fm-hover)}.fm-symbol-kind{border:1px solid var(--fm-border);white-space:normal;border-radius:3px;padding:0 4px;font-size:10px;display:inline-block}.fm-symbol-type{color:var(--fm-code-type)}.fm-symbol-function{color:var(--fm-code-function)}.fm-symbol-variable{color:var(--fm-code-variable)}.fm-symbol-name{overflow-wrap:anywhere;font-weight:500}.fm-symbol-scope{color:var(--fm-muted);overflow-wrap:anywhere;padding:4px 8px;font-size:11px}.fm-symbol-tree{margin:0;padding:0;list-style:none}.fm-symbol-tree .fm-symbol-tree{border-left:1px solid var(--fm-border);margin:3px 0 3px 10px;padding-left:9px}.fm-outline-heading{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:4px 7px;padding:4px 0;display:flex}.fm-outline-heading .fm-symbol-name{flex:1}.fm-outline-line{color:var(--fm-muted);margin-left:auto;font-size:11px}.fm-symbol-detail{color:var(--fm-text);background:var(--fm-bar);border-left:2px solid var(--fm-border);white-space:pre-wrap;overflow-wrap:anywhere;margin-left:16px;padding:4px 7px}.fm-symbol-range{color:var(--fm-muted);overflow-wrap:anywhere;margin:3px 0 4px 16px;font-size:10px}@container (width<=650px){.fm-navigation-layout{grid-template-columns:minmax(0,1fr)}.fm-nav-index{border-left:0;border-top:1px solid var(--fm-border);max-height:180px}}.fm-skipped-path{overflow-wrap:anywhere;padding:3px 0}.fm-tree{white-space:normal;margin:3px 0;padding:0;list-style:none}.fm-tree .fm-tree{border-left:1px solid var(--fm-border);margin-left:8px;padding-left:8px}.fm-tree li{overflow-wrap:anywhere;margin:2px 0}.fm-tree-path{color:var(--fm-accent);white-space:pre-wrap}.fm-tree-extra{font-size:11px}@container (width<=450px){.fm-field{column-gap:7px}.fm-mode,.fm-copy-all-label{display:none}}@media (pointer:coarse){.fm-widget button,.fm-widget select{min-height:44px}.fm-widget .fm-copy{width:44px}.fm-field{grid-template-columns:minmax(0, min(var(--fm-key-width), 42%)) minmax(0, 1fr) 44px}.fm-widget input{font-size:16px}}
|
|
116
116
|
/*$vite$:1*/</style>
|
|
117
|
-
</head>
|
|
118
|
-
<body><main id="widget" aria-label="Clangd analysis result"></main></body>
|
|
119
|
-
</html>
|
|
117
|
+
</head>
|
|
118
|
+
<body><main id="widget" aria-label="Clangd analysis result"></main></body>
|
|
119
|
+
</html>
|