Skip to content

Commit 35a8ace

Browse files
webwornclaude
andcommitted
fix: Add missing CI/CD infrastructure files
- Create validation report generator for CFD test results - Add performance benchmark runner with JSON output - Implement MCP protocol compliance tests - Add tool registration and end-to-end workflow tests - Create changelog generator from git history - Add Dockerfile for containerized deployment - Include Doxyfile for API documentation generation - Resolve all missing files referenced in CI workflow 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 09ac926 commit 35a8ace

File tree

209 files changed

+78750
-2516
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

209 files changed

+78750
-2516
lines changed

.clang-format

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
# OpenFOAM MCP Server - Clang Format Configuration
2+
# Based on LLVM style with OpenFOAM-specific customizations
3+
4+
---
5+
Language: Cpp
6+
BasedOnStyle: LLVM
7+
8+
# Indentation
9+
IndentWidth: 4
10+
TabWidth: 4
11+
UseTab: Never
12+
IndentCaseLabels: true
13+
IndentPPDirectives: BeforeHash
14+
IndentAccessModifiers: false
15+
16+
# Alignment
17+
AlignAfterOpenBracket: Align
18+
AlignArrayOfStructures: Left
19+
AlignConsecutiveAssignments: false
20+
AlignConsecutiveBitFields: false
21+
AlignConsecutiveDeclarations: false
22+
AlignConsecutiveMacros: false
23+
AlignEscapedNewlines: Right
24+
AlignOperands: Align
25+
AlignTrailingComments: true
26+
27+
# Allow parameters/arguments
28+
AllowAllArgumentsOnNextLine: true
29+
AllowAllParametersOfDeclarationOnNextLine: true
30+
AllowShortBlocksOnASingleLine: Empty
31+
AllowShortCaseLabelsOnASingleLine: false
32+
AllowShortEnumsOnASingleLine: true
33+
AllowShortFunctionsOnASingleLine: Empty
34+
AllowShortIfStatementsOnASingleLine: Never
35+
AllowShortLambdasOnASingleLine: All
36+
AllowShortLoopsOnASingleLine: false
37+
38+
# Breaking
39+
AlwaysBreakAfterReturnType: None
40+
AlwaysBreakBeforeMultilineStrings: false
41+
AlwaysBreakTemplateDeclarations: Yes
42+
BinPackArguments: false
43+
BinPackParameters: false
44+
45+
# Braces
46+
BreakBeforeBraces: Custom
47+
BraceWrapping:
48+
AfterCaseLabel: false
49+
AfterClass: true
50+
AfterControlStatement: Never
51+
AfterEnum: true
52+
AfterFunction: true
53+
AfterNamespace: true
54+
AfterStruct: true
55+
AfterUnion: true
56+
AfterExternBlock: true
57+
BeforeCatch: false
58+
BeforeElse: false
59+
BeforeLambdaBody: false
60+
BeforeWhile: false
61+
IndentBraces: false
62+
SplitEmptyFunction: false
63+
SplitEmptyRecord: false
64+
SplitEmptyNamespace: false
65+
66+
# Breaking binary operators
67+
BreakBeforeBinaryOperators: None
68+
BreakBeforeConceptDeclarations: true
69+
BreakBeforeTernaryOperators: true
70+
BreakConstructorInitializers: BeforeColon
71+
BreakInheritanceList: BeforeColon
72+
BreakStringLiterals: true
73+
74+
# Column limit
75+
ColumnLimit: 100
76+
CommentPragmas: '^ IWYU pragma:'
77+
78+
# Includes
79+
IncludeBlocks: Regroup
80+
IncludeCategories:
81+
# OpenFOAM headers
82+
- Regex: '^"[^/]*\.H"$'
83+
Priority: 1
84+
# Project headers
85+
- Regex: '^".*\.hpp"$'
86+
Priority: 2
87+
# C++ standard library
88+
- Regex: '^<[^.]*>$'
89+
Priority: 4
90+
# Everything else
91+
- Regex: '.*'
92+
Priority: 3
93+
SortIncludes: CaseInsensitive
94+
95+
# Initialization
96+
ConstructorInitializerIndentWidth: 4
97+
98+
# Namespaces
99+
CompactNamespaces: false
100+
FixNamespaceComments: true
101+
NamespaceIndentation: None
102+
103+
# Penalties (for line breaking decisions)
104+
PenaltyBreakAssignment: 2
105+
PenaltyBreakBeforeFirstCallParameter: 19
106+
PenaltyBreakComment: 300
107+
PenaltyBreakFirstLessLess: 120
108+
PenaltyBreakOpenParenthesis: 0
109+
PenaltyBreakString: 1000
110+
PenaltyBreakTemplateDeclaration: 10
111+
PenaltyExcessCharacter: 1000000
112+
PenaltyIndentedWhitespace: 0
113+
PenaltyReturnTypeOnItsOwnLine: 60
114+
115+
# Pointers and references
116+
DerivePointerAlignment: false
117+
PointerAlignment: Left
118+
119+
# Spacing
120+
SpaceAfterCStyleCast: false
121+
SpaceAfterLogicalNot: false
122+
SpaceAfterTemplateKeyword: true
123+
SpaceAroundPointerQualifiers: Default
124+
SpaceBeforeAssignmentOperators: true
125+
SpaceBeforeCaseColon: false
126+
SpaceBeforeCpp11BracedList: false
127+
SpaceBeforeCtorInitializerColon: true
128+
SpaceBeforeInheritanceColon: true
129+
SpaceBeforeParens: ControlStatements
130+
SpaceBeforeParensOptions:
131+
AfterControlStatements: true
132+
AfterForeachMacros: true
133+
AfterFunctionDefinitionName: false
134+
AfterFunctionDeclarationName: false
135+
AfterIfMacros: true
136+
AfterOverloadedOperator: false
137+
BeforeNonEmptyParentheses: false
138+
SpaceBeforeRangeBasedForLoopColon: true
139+
SpaceBeforeSquareBrackets: false
140+
SpaceInEmptyBlock: false
141+
SpaceInEmptyParentheses: false
142+
SpacesBeforeTrailingComments: 2
143+
SpacesInAngles: Never
144+
SpacesInCStyleCastParentheses: false
145+
SpacesInConditionalStatement: false
146+
SpacesInContainerLiterals: true
147+
SpacesInParentheses: false
148+
SpacesInSquareBrackets: false
149+
150+
# Line endings
151+
InsertTrailingCommas: None
152+
KeepEmptyLinesAtTheStartOfBlocks: false
153+
MaxEmptyLinesToKeep: 2
154+
155+
# C++11/14/17/20 features
156+
Standard: c++20
157+
158+
# OpenFOAM specific settings
159+
ReflowComments: true
160+
SortUsingDeclarations: true
161+
162+
# Macros (common OpenFOAM macros)
163+
MacroBlockBegin: ''
164+
MacroBlockEnd: ''

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,10 @@ platforms/
1717

1818
# System files
1919
.DS_Store
20-
Thumbs.db
20+
Thumbs.db
21+
22+
# IMP
23+
expert_advice.txt
24+
ULTRATHINK_SUMMARY.md
25+
ROADMAP.md
26+
comprehensive_openfoam_capabilities.md

Dockerfile

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# OpenFOAM MCP Server Docker Image
2+
FROM ubuntu:22.04
3+
4+
# Prevent interactive prompts during package installation
5+
ENV DEBIAN_FRONTEND=noninteractive
6+
7+
# Install system dependencies
8+
RUN apt-get update && apt-get install -y \
9+
build-essential \
10+
cmake \
11+
ninja-build \
12+
git \
13+
curl \
14+
wget \
15+
python3 \
16+
python3-pip \
17+
nlohmann-json3-dev \
18+
libboost-all-dev \
19+
libsqlite3-dev \
20+
software-properties-common \
21+
gnupg \
22+
ca-certificates \
23+
&& rm -rf /var/lib/apt/lists/*
24+
25+
# Install OpenFOAM 12
26+
RUN wget -O - https://dl.openfoam.org/gpg.key | apt-key add - && \
27+
add-apt-repository http://dl.openfoam.org/ubuntu && \
28+
apt-get update && \
29+
apt-get install -y openfoam12 && \
30+
rm -rf /var/lib/apt/lists/*
31+
32+
# Set up OpenFOAM environment
33+
ENV FOAM_VERSION=12
34+
ENV FOAM_INST_DIR=/opt/openfoam12
35+
ENV WM_PROJECT_DIR=/opt/openfoam12
36+
37+
# Create app directory
38+
WORKDIR /app
39+
40+
# Copy source code
41+
COPY src/ ./src/
42+
COPY CMakeLists.txt ./
43+
COPY README.md ./
44+
45+
# Source OpenFOAM environment and build
46+
RUN /bin/bash -c "source /opt/openfoam12/etc/bashrc && \
47+
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=20 && \
48+
cmake --build build --parallel $(nproc)"
49+
50+
# Create non-root user
51+
RUN useradd -m -u 1000 openfoam && \
52+
chown -R openfoam:openfoam /app
53+
54+
USER openfoam
55+
56+
# Set up runtime environment
57+
ENV PATH="/app/build:$PATH"
58+
59+
# Health check
60+
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
61+
CMD /app/build/openfoam-mcp-server --version || exit 1
62+
63+
# Default command
64+
CMD ["/app/build/openfoam-mcp-server"]

Doxyfile

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Doxyfile for OpenFOAM MCP Server
2+
3+
# Project information
4+
PROJECT_NAME = "OpenFOAM MCP Server"
5+
PROJECT_NUMBER = "1.0.0"
6+
PROJECT_BRIEF = "Model Context Protocol server for OpenFOAM CFD analysis"
7+
8+
# Input/Output settings
9+
INPUT = src/
10+
OUTPUT_DIRECTORY = docs/
11+
RECURSIVE = YES
12+
EXCLUDE_PATTERNS = */build/* */.*
13+
14+
# HTML output
15+
GENERATE_HTML = YES
16+
HTML_OUTPUT = html
17+
HTML_HEADER =
18+
HTML_FOOTER =
19+
HTML_STYLESHEET =
20+
HTML_EXTRA_STYLESHEET =
21+
HTML_TIMESTAMP = YES
22+
23+
# Source code
24+
EXTRACT_ALL = YES
25+
EXTRACT_PRIVATE = YES
26+
EXTRACT_STATIC = YES
27+
EXTRACT_LOCAL_CLASSES = YES
28+
SOURCE_BROWSER = YES
29+
INLINE_SOURCES = YES
30+
STRIP_CODE_COMMENTS = NO
31+
32+
# Graphs and diagrams
33+
HAVE_DOT = YES
34+
CLASS_GRAPH = YES
35+
COLLABORATION_GRAPH = YES
36+
INCLUDE_GRAPH = YES
37+
CALL_GRAPH = YES
38+
CALLER_GRAPH = YES
39+
40+
# Other formats
41+
GENERATE_LATEX = NO
42+
GENERATE_RTF = NO
43+
GENERATE_MAN = NO
44+
GENERATE_XML = NO
45+
46+
# Preprocessor
47+
ENABLE_PREPROCESSING = YES
48+
MACRO_EXPANSION = YES
49+
EXPAND_ONLY_PREDEF = YES
50+
PREDEFINED = __cplusplus \
51+
"FOAM_EXPORT=" \
52+
"FOAM_DEPRECATED(x)=" \
53+
"FOAM_INLINE=inline"
54+
55+
# Warnings
56+
WARNINGS = YES
57+
WARN_IF_UNDOCUMENTED = YES
58+
WARN_IF_DOC_ERROR = YES
59+
WARN_NO_PARAMDOC = NO

0 commit comments

Comments
 (0)