forge-cpp-mcp 0.2.2__tar.gz → 0.2.4__tar.gz
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 → forge_cpp_mcp-0.2.4}/.gitignore +231 -231
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/LICENSE +21 -21
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/PKG-INFO +50 -7
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/README.md +480 -437
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/clangd-result.html +5 -5
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/cmake-build.html +12 -12
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/cmake-configure.html +12 -12
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/cmake-profiles.html +12 -12
- forge_cpp_mcp-0.2.4/frontend/cmake-run-test.html +12 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/cmake-test.html +12 -12
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/package-lock.json +2832 -2832
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/package.json +18 -18
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/process-details.html +12 -12
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/process-overview.html +12 -12
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/clangd-navigation-view.js +182 -182
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/clangd-result.js +4 -4
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/clangd-view.js +145 -145
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/cmake-build.js +8 -8
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/cmake-configure.js +8 -8
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/cmake-profiles.js +8 -8
- forge_cpp_mcp-0.2.4/frontend/src/cmake-run-test.js +8 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/cmake-test.js +8 -8
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/cmake-view.js +50 -50
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/process-details.js +188 -188
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/process-overview.js +85 -85
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/process-status.js +13 -13
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/process.css +21 -21
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/shared/app.js +54 -54
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/shared/copy-icon.js +19 -19
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/shared/presentation.js +71 -71
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/shared/result-resources.js +87 -87
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/shared/result-view.js +422 -422
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/shared/widget.css +244 -244
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/source-view.js +318 -318
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/toolsets.js +4 -4
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/workspace-file.js +4 -4
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/workspace-result.js +4 -4
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/workspace-search.js +4 -4
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/workspace-tree.js +4 -4
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/src/workspace-view.js +487 -487
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/tests/result-resources.test.js +62 -62
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/tests/result-view.test.js +215 -215
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/tests/workspace.test.js +248 -248
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/toolsets.html +12 -12
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/vite.config.js +34 -33
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/workspace-file.html +5 -5
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/workspace-result.html +5 -5
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/workspace-search.html +5 -5
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/frontend/workspace-tree.html +5 -5
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/hatch_build.py +1 -1
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/pyproject.toml +63 -63
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/__init__.py +1 -1
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/clangd/service.py +105 -51
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/clangd/session.py +50 -48
- forge_cpp_mcp-0.2.4/src/forgemcp/cmake/errors.py +5 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/cmake/models.py +13 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/cmake/service.py +95 -2
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/cmake/text.py +19 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/clangd.LICENSE +219 -219
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/clangd.svg +25 -25
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/cmake.svg +9 -9
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/process.svg +4 -4
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/toolchain.svg +1 -1
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/workspace-edit.svg +1 -1
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/workspace-file.svg +1 -1
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/workspace-search.svg +1 -1
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/icons/workspace.svg +4 -4
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/process/service.py +2 -1
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/server.py +1 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/clangd.py +1 -0
- forge_cpp_mcp-0.2.2/src/forgemcp/cmake/errors.py +0 -5
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/assets.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/clangd/__init__.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/clangd/errors.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/clangd/models.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/clangd/text.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/cmake/__init__.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/cmake/profiles.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/completion.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/markdown.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/process/__init__.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/process/errors.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/process/models.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/process/text.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/process/transcript.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/progress.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/text.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/__init__.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/discovery.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/errors.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/loader.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/providers/__init__.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/providers/system.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/providers/user.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/providers/visual_studio.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/service.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/spec.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/__init__.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/clang.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/clang_cl.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/clangxx.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/cmake.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/cppvsdbg.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/ctest.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/gcc.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/gdb.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/git.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/gxx.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/link.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/lld.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/lld_link.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/lldb_dap.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/make.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/msbuild.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/msvc.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/toolchain/tools/ninja.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/__init__.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/diff.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/errors.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/metadata.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/models.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/path.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/providers.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/service.py +0 -0
- {forge_cpp_mcp-0.2.2 → forge_cpp_mcp-0.2.4}/src/forgemcp/workspace/text.py +0 -0
|
@@ -1,231 +1,231 @@
|
|
|
1
|
-
# Byte-compiled / optimized / DLL files
|
|
2
|
-
__pycache__/
|
|
3
|
-
*.py[codz]
|
|
4
|
-
*$py.class
|
|
5
|
-
|
|
6
|
-
# C extensions
|
|
7
|
-
*.so
|
|
8
|
-
|
|
9
|
-
# Distribution / packaging
|
|
10
|
-
.Python
|
|
11
|
-
build/
|
|
12
|
-
develop-eggs/
|
|
13
|
-
dist/
|
|
14
|
-
downloads/
|
|
15
|
-
eggs/
|
|
16
|
-
.eggs/
|
|
17
|
-
lib/
|
|
18
|
-
lib64/
|
|
19
|
-
parts/
|
|
20
|
-
sdist/
|
|
21
|
-
var/
|
|
22
|
-
wheels/
|
|
23
|
-
share/python-wheels/
|
|
24
|
-
*.egg-info/
|
|
25
|
-
.installed.cfg
|
|
26
|
-
*.egg
|
|
27
|
-
MANIFEST
|
|
28
|
-
|
|
29
|
-
# PyInstaller
|
|
30
|
-
# Usually these files are written by a python script from a template
|
|
31
|
-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
-
*.manifest
|
|
33
|
-
*.spec
|
|
34
|
-
|
|
35
|
-
# Installer logs
|
|
36
|
-
pip-log.txt
|
|
37
|
-
pip-delete-this-directory.txt
|
|
38
|
-
|
|
39
|
-
# Unit test / coverage reports
|
|
40
|
-
htmlcov/
|
|
41
|
-
.tox/
|
|
42
|
-
.nox/
|
|
43
|
-
.coverage
|
|
44
|
-
.coverage.*
|
|
45
|
-
.cache
|
|
46
|
-
nosetests.xml
|
|
47
|
-
coverage.xml
|
|
48
|
-
*.cover
|
|
49
|
-
*.py.cover
|
|
50
|
-
*.lcov
|
|
51
|
-
.hypothesis/
|
|
52
|
-
.pytest_cache/
|
|
53
|
-
.pytest_tmp/
|
|
54
|
-
cover/
|
|
55
|
-
|
|
56
|
-
# Translations
|
|
57
|
-
*.mo
|
|
58
|
-
*.pot
|
|
59
|
-
|
|
60
|
-
# Django stuff:
|
|
61
|
-
*.log
|
|
62
|
-
local_settings.py
|
|
63
|
-
db.sqlite3
|
|
64
|
-
db.sqlite3-journal
|
|
65
|
-
|
|
66
|
-
# Flask stuff:
|
|
67
|
-
instance/
|
|
68
|
-
.webassets-cache
|
|
69
|
-
|
|
70
|
-
# Scrapy stuff:
|
|
71
|
-
.scrapy
|
|
72
|
-
|
|
73
|
-
# Sphinx documentation
|
|
74
|
-
docs/_build/
|
|
75
|
-
|
|
76
|
-
# PyBuilder
|
|
77
|
-
.pybuilder/
|
|
78
|
-
target/
|
|
79
|
-
|
|
80
|
-
# Jupyter Notebook
|
|
81
|
-
.ipynb_checkpoints
|
|
82
|
-
|
|
83
|
-
# IPython
|
|
84
|
-
profile_default/
|
|
85
|
-
ipython_config.py
|
|
86
|
-
|
|
87
|
-
# pyenv
|
|
88
|
-
# For a library or package, you might want to ignore these files since the code is
|
|
89
|
-
# intended to run in multiple environments; otherwise, check them in:
|
|
90
|
-
# .python-version
|
|
91
|
-
|
|
92
|
-
# pipenv
|
|
93
|
-
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
94
|
-
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
95
|
-
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
96
|
-
# install all needed dependencies.
|
|
97
|
-
# Pipfile.lock
|
|
98
|
-
|
|
99
|
-
# UV
|
|
100
|
-
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
101
|
-
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
102
|
-
# commonly ignored for libraries.
|
|
103
|
-
# uv.lock
|
|
104
|
-
|
|
105
|
-
# poetry
|
|
106
|
-
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
107
|
-
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
108
|
-
# commonly ignored for libraries.
|
|
109
|
-
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
110
|
-
# poetry.lock
|
|
111
|
-
# poetry.toml
|
|
112
|
-
|
|
113
|
-
# pdm
|
|
114
|
-
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
115
|
-
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
|
|
116
|
-
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
|
|
117
|
-
# pdm.lock
|
|
118
|
-
# pdm.toml
|
|
119
|
-
.pdm-python
|
|
120
|
-
.pdm-build/
|
|
121
|
-
|
|
122
|
-
# pixi
|
|
123
|
-
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
|
|
124
|
-
# pixi.lock
|
|
125
|
-
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
|
|
126
|
-
# in the .venv directory. It is recommended not to include this directory in version control.
|
|
127
|
-
.pixi/*
|
|
128
|
-
!.pixi/config.toml
|
|
129
|
-
|
|
130
|
-
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
131
|
-
__pypackages__/
|
|
132
|
-
|
|
133
|
-
# Celery stuff
|
|
134
|
-
celerybeat-schedule*
|
|
135
|
-
celerybeat.pid
|
|
136
|
-
|
|
137
|
-
# Redis
|
|
138
|
-
*.rdb
|
|
139
|
-
*.aof
|
|
140
|
-
*.pid
|
|
141
|
-
|
|
142
|
-
# RabbitMQ
|
|
143
|
-
mnesia/
|
|
144
|
-
rabbitmq/
|
|
145
|
-
rabbitmq-data/
|
|
146
|
-
|
|
147
|
-
# ActiveMQ
|
|
148
|
-
activemq-data/
|
|
149
|
-
|
|
150
|
-
# SageMath parsed files
|
|
151
|
-
*.sage.py
|
|
152
|
-
|
|
153
|
-
# Environments
|
|
154
|
-
.env
|
|
155
|
-
.envrc
|
|
156
|
-
.venv
|
|
157
|
-
.release-venv/
|
|
158
|
-
env/
|
|
159
|
-
venv/
|
|
160
|
-
ENV/
|
|
161
|
-
env.bak/
|
|
162
|
-
venv.bak/
|
|
163
|
-
|
|
164
|
-
# Spyder project settings
|
|
165
|
-
.spyderproject
|
|
166
|
-
.spyproject
|
|
167
|
-
|
|
168
|
-
# Rope project settings
|
|
169
|
-
.ropeproject
|
|
170
|
-
|
|
171
|
-
# mkdocs documentation
|
|
172
|
-
/site
|
|
173
|
-
|
|
174
|
-
# mypy
|
|
175
|
-
.mypy_cache/
|
|
176
|
-
.dmypy.json
|
|
177
|
-
dmypy.json
|
|
178
|
-
|
|
179
|
-
# Pyre type checker
|
|
180
|
-
.pyre/
|
|
181
|
-
|
|
182
|
-
# pytype static type analyzer
|
|
183
|
-
.pytype/
|
|
184
|
-
|
|
185
|
-
# Cython debug symbols
|
|
186
|
-
cython_debug/
|
|
187
|
-
|
|
188
|
-
# PyCharm
|
|
189
|
-
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
190
|
-
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
191
|
-
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
192
|
-
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
193
|
-
# .idea/
|
|
194
|
-
|
|
195
|
-
# Abstra
|
|
196
|
-
# Abstra is an AI-powered process automation framework.
|
|
197
|
-
# Ignore directories containing user credentials, local state, and settings.
|
|
198
|
-
# Learn more at https://abstra.io/docs
|
|
199
|
-
.abstra/
|
|
200
|
-
|
|
201
|
-
# Visual Studio Code
|
|
202
|
-
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore that
|
|
203
|
-
# can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
|
204
|
-
# and can be added to the global gitignore or merged into this file. However, if you prefer, you
|
|
205
|
-
# could uncomment the following to ignore the entire vscode folder
|
|
206
|
-
.vscode/
|
|
207
|
-
# Temporary file for partial code execution
|
|
208
|
-
tempCodeRunnerFile.py
|
|
209
|
-
|
|
210
|
-
# Ruff stuff:
|
|
211
|
-
.ruff_cache/
|
|
212
|
-
|
|
213
|
-
# PyPI configuration file
|
|
214
|
-
.pypirc
|
|
215
|
-
|
|
216
|
-
# Marimo
|
|
217
|
-
marimo/_static/
|
|
218
|
-
marimo/_lsp/
|
|
219
|
-
__marimo__/
|
|
220
|
-
|
|
221
|
-
# Streamlit
|
|
222
|
-
.streamlit/secrets.toml
|
|
223
|
-
|
|
224
|
-
# ForgeMCP development artifacts
|
|
225
|
-
/frontend/node_modules/
|
|
226
|
-
/src/forgemcp/assets/*.html
|
|
227
|
-
/examples/cpp-acceptance-project/build*/
|
|
228
|
-
/examples/cpp-acceptance-project/out/
|
|
229
|
-
/examples/cpp-acceptance-project/**/compile_commands.json
|
|
230
|
-
/examples/cpp-acceptance-project/**/*.exe
|
|
231
|
-
/examples/cpp-acceptance-project/**/*.pdb
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[codz]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py.cover
|
|
50
|
+
*.lcov
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
.pytest_tmp/
|
|
54
|
+
cover/
|
|
55
|
+
|
|
56
|
+
# Translations
|
|
57
|
+
*.mo
|
|
58
|
+
*.pot
|
|
59
|
+
|
|
60
|
+
# Django stuff:
|
|
61
|
+
*.log
|
|
62
|
+
local_settings.py
|
|
63
|
+
db.sqlite3
|
|
64
|
+
db.sqlite3-journal
|
|
65
|
+
|
|
66
|
+
# Flask stuff:
|
|
67
|
+
instance/
|
|
68
|
+
.webassets-cache
|
|
69
|
+
|
|
70
|
+
# Scrapy stuff:
|
|
71
|
+
.scrapy
|
|
72
|
+
|
|
73
|
+
# Sphinx documentation
|
|
74
|
+
docs/_build/
|
|
75
|
+
|
|
76
|
+
# PyBuilder
|
|
77
|
+
.pybuilder/
|
|
78
|
+
target/
|
|
79
|
+
|
|
80
|
+
# Jupyter Notebook
|
|
81
|
+
.ipynb_checkpoints
|
|
82
|
+
|
|
83
|
+
# IPython
|
|
84
|
+
profile_default/
|
|
85
|
+
ipython_config.py
|
|
86
|
+
|
|
87
|
+
# pyenv
|
|
88
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
89
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
90
|
+
# .python-version
|
|
91
|
+
|
|
92
|
+
# pipenv
|
|
93
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
94
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
95
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
96
|
+
# install all needed dependencies.
|
|
97
|
+
# Pipfile.lock
|
|
98
|
+
|
|
99
|
+
# UV
|
|
100
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
101
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
102
|
+
# commonly ignored for libraries.
|
|
103
|
+
# uv.lock
|
|
104
|
+
|
|
105
|
+
# poetry
|
|
106
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
107
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
108
|
+
# commonly ignored for libraries.
|
|
109
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
110
|
+
# poetry.lock
|
|
111
|
+
# poetry.toml
|
|
112
|
+
|
|
113
|
+
# pdm
|
|
114
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
115
|
+
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
|
|
116
|
+
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
|
|
117
|
+
# pdm.lock
|
|
118
|
+
# pdm.toml
|
|
119
|
+
.pdm-python
|
|
120
|
+
.pdm-build/
|
|
121
|
+
|
|
122
|
+
# pixi
|
|
123
|
+
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
|
|
124
|
+
# pixi.lock
|
|
125
|
+
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
|
|
126
|
+
# in the .venv directory. It is recommended not to include this directory in version control.
|
|
127
|
+
.pixi/*
|
|
128
|
+
!.pixi/config.toml
|
|
129
|
+
|
|
130
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
131
|
+
__pypackages__/
|
|
132
|
+
|
|
133
|
+
# Celery stuff
|
|
134
|
+
celerybeat-schedule*
|
|
135
|
+
celerybeat.pid
|
|
136
|
+
|
|
137
|
+
# Redis
|
|
138
|
+
*.rdb
|
|
139
|
+
*.aof
|
|
140
|
+
*.pid
|
|
141
|
+
|
|
142
|
+
# RabbitMQ
|
|
143
|
+
mnesia/
|
|
144
|
+
rabbitmq/
|
|
145
|
+
rabbitmq-data/
|
|
146
|
+
|
|
147
|
+
# ActiveMQ
|
|
148
|
+
activemq-data/
|
|
149
|
+
|
|
150
|
+
# SageMath parsed files
|
|
151
|
+
*.sage.py
|
|
152
|
+
|
|
153
|
+
# Environments
|
|
154
|
+
.env
|
|
155
|
+
.envrc
|
|
156
|
+
.venv
|
|
157
|
+
.release-venv/
|
|
158
|
+
env/
|
|
159
|
+
venv/
|
|
160
|
+
ENV/
|
|
161
|
+
env.bak/
|
|
162
|
+
venv.bak/
|
|
163
|
+
|
|
164
|
+
# Spyder project settings
|
|
165
|
+
.spyderproject
|
|
166
|
+
.spyproject
|
|
167
|
+
|
|
168
|
+
# Rope project settings
|
|
169
|
+
.ropeproject
|
|
170
|
+
|
|
171
|
+
# mkdocs documentation
|
|
172
|
+
/site
|
|
173
|
+
|
|
174
|
+
# mypy
|
|
175
|
+
.mypy_cache/
|
|
176
|
+
.dmypy.json
|
|
177
|
+
dmypy.json
|
|
178
|
+
|
|
179
|
+
# Pyre type checker
|
|
180
|
+
.pyre/
|
|
181
|
+
|
|
182
|
+
# pytype static type analyzer
|
|
183
|
+
.pytype/
|
|
184
|
+
|
|
185
|
+
# Cython debug symbols
|
|
186
|
+
cython_debug/
|
|
187
|
+
|
|
188
|
+
# PyCharm
|
|
189
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
190
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
191
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
192
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
193
|
+
# .idea/
|
|
194
|
+
|
|
195
|
+
# Abstra
|
|
196
|
+
# Abstra is an AI-powered process automation framework.
|
|
197
|
+
# Ignore directories containing user credentials, local state, and settings.
|
|
198
|
+
# Learn more at https://abstra.io/docs
|
|
199
|
+
.abstra/
|
|
200
|
+
|
|
201
|
+
# Visual Studio Code
|
|
202
|
+
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore that
|
|
203
|
+
# can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
|
204
|
+
# and can be added to the global gitignore or merged into this file. However, if you prefer, you
|
|
205
|
+
# could uncomment the following to ignore the entire vscode folder
|
|
206
|
+
.vscode/
|
|
207
|
+
# Temporary file for partial code execution
|
|
208
|
+
tempCodeRunnerFile.py
|
|
209
|
+
|
|
210
|
+
# Ruff stuff:
|
|
211
|
+
.ruff_cache/
|
|
212
|
+
|
|
213
|
+
# PyPI configuration file
|
|
214
|
+
.pypirc
|
|
215
|
+
|
|
216
|
+
# Marimo
|
|
217
|
+
marimo/_static/
|
|
218
|
+
marimo/_lsp/
|
|
219
|
+
__marimo__/
|
|
220
|
+
|
|
221
|
+
# Streamlit
|
|
222
|
+
.streamlit/secrets.toml
|
|
223
|
+
|
|
224
|
+
# ForgeMCP development artifacts
|
|
225
|
+
/frontend/node_modules/
|
|
226
|
+
/src/forgemcp/assets/*.html
|
|
227
|
+
/examples/cpp-acceptance-project/build*/
|
|
228
|
+
/examples/cpp-acceptance-project/out/
|
|
229
|
+
/examples/cpp-acceptance-project/**/compile_commands.json
|
|
230
|
+
/examples/cpp-acceptance-project/**/*.exe
|
|
231
|
+
/examples/cpp-acceptance-project/**/*.pdb
|
|
@@ -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.
|
|
@@ -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`
|