Skip to content

Commit 203f13f

Browse files
committed
chore(project): rename MyYuCode to MoYuCode and redesign workspace layout
- Rename project from MyYuCode to MoYuCode across all source files and configurations - Update solution file from MyYuCode.slnx to MoYuCode.slnx - Migrate CI/CD pipeline to reference new project structure and paths - Add Docker support with Dockerfile and Dockerfile.ai-tools for containerized deployment - Redesign workspace layout with new UI components (ActivityBar, Sidebar, EditorArea, FileExplorer, GitPanel, TerminalPanel, OutputPanel, SearchPanel) - Implement resizable workspace panels with useResizable hook for flexible layout management - Add workspace state management with workspaceStore for persistent UI state - Add new UI components (checkbox, tooltip) to component library - Update web application routing and main entry point for new workspace structure - Add design and requirements specifications for docker-ai-tools-image and workspace-layout-redesign - Update test files to reference new project naming conventions - Update documentation (AGENTS.md, CLAUDE.md, README files) with new project branding - Update publish script to use new project paths and naming
1 parent 4d2179b commit 203f13f

156 files changed

Lines changed: 6163 additions & 943 deletions

File tree

Some content is hidden

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

.github/workflows/ci.yml

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -73,27 +73,27 @@ jobs:
7373
shell: bash
7474
run: |
7575
set -euo pipefail
76-
mkdir -p src/MyYuCode/wwwroot
77-
rsync -a --delete web/dist/ src/MyYuCode/wwwroot/
76+
mkdir -p src/MoYuCode/wwwroot
77+
rsync -a --delete web/dist/ src/MoYuCode/wwwroot/
7878
7979
- name: Build backend
8080
if: github.event_name != 'workflow_dispatch'
81-
run: dotnet build src/MyYuCode/MyYuCode.csproj -c Release -p:Version=${{ steps.version.outputs.version }} -p:InformationalVersion=${{ steps.version.outputs.version }}
81+
run: dotnet build src/MoYuCode/MoYuCode.csproj -c Release -p:Version=${{ steps.version.outputs.version }} -p:InformationalVersion=${{ steps.version.outputs.version }}
8282

8383
- name: Publish backend
8484
if: github.event_name == 'workflow_dispatch'
8585
shell: bash
8686
run: |
8787
set -euo pipefail
8888
for RID in linux-x64 osx-x64; do
89-
dotnet publish src/MyYuCode/MyYuCode.csproj -c Release -r "${RID}" --self-contained false -o "artifacts/publish/${RID}" -p:Version=${{ steps.version.outputs.version }} -p:InformationalVersion=${{ steps.version.outputs.version }}
89+
dotnet publish src/MoYuCode/MoYuCode.csproj -c Release -r "${RID}" --self-contained false -o "artifacts/publish/${RID}" -p:Version=${{ steps.version.outputs.version }} -p:InformationalVersion=${{ steps.version.outputs.version }}
9090
done
9191
WIN_PUBLISH_ROOT="artifacts/publish/win-x64"
9292
rm -rf "${WIN_PUBLISH_ROOT}"
9393
mkdir -p "${WIN_PUBLISH_ROOT}"
94-
dotnet publish src/MyYuCode.Win/MyYuCode.Win.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:Version=${{ steps.version.outputs.version }} -p:InformationalVersion=${{ steps.version.outputs.version }} -p:DebugType=None -p:DebugSymbols=false -o "${WIN_PUBLISH_ROOT}"
95-
if [[ ! -f "${WIN_PUBLISH_ROOT}/MyYuCode.Win.exe" ]]; then
96-
echo "MyYuCode.Win.exe not found in win-x64 publish output."
94+
dotnet publish src/MoYuCode.Win/MoYuCode.Win.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:Version=${{ steps.version.outputs.version }} -p:InformationalVersion=${{ steps.version.outputs.version }} -p:DebugType=None -p:DebugSymbols=false -o "${WIN_PUBLISH_ROOT}"
95+
if [[ ! -f "${WIN_PUBLISH_ROOT}/MoYuCode.Win.exe" ]]; then
96+
echo "MoYuCode.Win.exe not found in win-x64 publish output."
9797
exit 1
9898
fi
9999
@@ -112,14 +112,14 @@ jobs:
112112
export DOTNET_ENVIRONMENT=Production
113113
export ASPNETCORE_URLS="http://0.0.0.0:9110"
114114
115-
echo "MyYuCode is running at $ASPNETCORE_URLS"
115+
echo "MoYuCode is running at $ASPNETCORE_URLS"
116116
echo "Open: http://localhost:9110"
117117
118-
if [[ -f "./MyYuCode" ]]; then
119-
chmod +x "./MyYuCode"
120-
./MyYuCode
118+
if [[ -f "./MoYuCode" ]]; then
119+
chmod +x "./MoYuCode"
120+
./MoYuCode
121121
else
122-
dotnet "./MyYuCode.dll"
122+
dotnet "./MoYuCode.dll"
123123
fi
124124
EOF
125125
chmod +x "artifacts/publish/linux-x64/run.sh"
@@ -137,25 +137,25 @@ jobs:
137137
exit 1
138138
fi
139139
140-
if [[ -x "$INSTALL_DIR/MyYuCode" ]]; then
141-
EXECUTABLE="$INSTALL_DIR/MyYuCode"
142-
elif [[ -f "$INSTALL_DIR/MyYuCode.dll" ]]; then
140+
if [[ -x "$INSTALL_DIR/MoYuCode" ]]; then
141+
EXECUTABLE="$INSTALL_DIR/MoYuCode"
142+
elif [[ -f "$INSTALL_DIR/MoYuCode.dll" ]]; then
143143
DOTNET_PATH="$(command -v dotnet || true)"
144144
if [[ -z "$DOTNET_PATH" ]]; then
145145
echo "dotnet not found in PATH." >&2
146146
exit 1
147147
fi
148-
EXECUTABLE="$DOTNET_PATH $INSTALL_DIR/MyYuCode.dll"
148+
EXECUTABLE="$DOTNET_PATH $INSTALL_DIR/MoYuCode.dll"
149149
else
150-
echo "MyYuCode executable not found in $INSTALL_DIR" >&2
150+
echo "MoYuCode executable not found in $INSTALL_DIR" >&2
151151
exit 1
152152
fi
153153
154154
SERVICE_PATH="/etc/systemd/system/${SERVICE_NAME}.service"
155155
156156
cat > "$SERVICE_PATH" <<SERVICE_EOF
157157
[Unit]
158-
Description=MyYuCode service
158+
Description=MoYuCode service
159159
After=network.target
160160
161161
[Service]
@@ -187,14 +187,14 @@ jobs:
187187
export DOTNET_ENVIRONMENT=Production
188188
export ASPNETCORE_URLS="http://0.0.0.0:9110"
189189
190-
echo "MyYuCode is running at $ASPNETCORE_URLS"
190+
echo "MoYuCode is running at $ASPNETCORE_URLS"
191191
echo "Open: http://localhost:9110"
192192
193-
if [[ -f "./MyYuCode" ]]; then
194-
chmod +x "./MyYuCode"
195-
./MyYuCode
193+
if [[ -f "./MoYuCode" ]]; then
194+
chmod +x "./MoYuCode"
195+
./MoYuCode
196196
else
197-
dotnet "./MyYuCode.dll"
197+
dotnet "./MoYuCode.dll"
198198
fi
199199
EOF
200200
chmod +x "artifacts/publish/osx-x64/run.sh"
@@ -212,12 +212,12 @@ jobs:
212212
exit 1
213213
fi
214214
215-
if [[ -x "$INSTALL_DIR/MyYuCode" ]]; then
216-
program_args=("$INSTALL_DIR/MyYuCode" "--urls" "$URLS")
215+
if [[ -x "$INSTALL_DIR/MoYuCode" ]]; then
216+
program_args=("$INSTALL_DIR/MoYuCode" "--urls" "$URLS")
217217
else
218-
dll="$INSTALL_DIR/MyYuCode.dll"
218+
dll="$INSTALL_DIR/MoYuCode.dll"
219219
if [[ ! -f "$dll" ]]; then
220-
echo "MyYuCode executable not found in $INSTALL_DIR" >&2
220+
echo "MoYuCode executable not found in $INSTALL_DIR" >&2
221221
exit 1
222222
fi
223223
dotnet_path="$(command -v dotnet || true)"
@@ -288,9 +288,9 @@ jobs:
288288
run: |
289289
set -euo pipefail
290290
mkdir -p artifacts
291-
tar -czf "artifacts/MyYuCode-${{ steps.version.outputs.version }}-linux-x64.tar.gz" -C artifacts/publish/linux-x64 .
292-
tar -czf "artifacts/MyYuCode-${{ steps.version.outputs.version }}-osx-x64.tar.gz" -C artifacts/publish/osx-x64 .
293-
(cd artifacts/publish/win-x64 && zip -r "../../MyYuCode-${{ steps.version.outputs.version }}-win-x64.zip" .)
291+
tar -czf "artifacts/MoYuCode-${{ steps.version.outputs.version }}-linux-x64.tar.gz" -C artifacts/publish/linux-x64 .
292+
tar -czf "artifacts/MoYuCode-${{ steps.version.outputs.version }}-osx-x64.tar.gz" -C artifacts/publish/osx-x64 .
293+
(cd artifacts/publish/win-x64 && zip -r "../../MoYuCode-${{ steps.version.outputs.version }}-win-x64.zip" .)
294294
295295
- name: Create release
296296
if: github.event_name == 'workflow_dispatch'
@@ -302,8 +302,8 @@ jobs:
302302
set -euo pipefail
303303
TAG="v${{ steps.version.outputs.version }}"
304304
ASSETS=(
305-
"artifacts/MyYuCode-${{ steps.version.outputs.version }}-linux-x64.tar.gz"
306-
"artifacts/MyYuCode-${{ steps.version.outputs.version }}-osx-x64.tar.gz"
307-
"artifacts/MyYuCode-${{ steps.version.outputs.version }}-win-x64.zip"
305+
"artifacts/MoYuCode-${{ steps.version.outputs.version }}-linux-x64.tar.gz"
306+
"artifacts/MoYuCode-${{ steps.version.outputs.version }}-osx-x64.tar.gz"
307+
"artifacts/MoYuCode-${{ steps.version.outputs.version }}-win-x64.zip"
308308
)
309309
gh release create "${TAG}" "${ASSETS[@]}" --title "${TAG}" --notes "${RELEASE_NOTES}" --target "${GITHUB_SHA}"

.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ artifacts/
77
.tmpbuild/
88
web/node_modules/
99
web/dist/
10-
src/MyYuCode/wwwroot/
10+
src/MoYuCode/wwwroot/
1111
/artifacts
12-
/src/MyYuCode/wwwroot
12+
/src/MoYuCode/wwwroot
1313
node_modules
14-
/.vs/MyYuCode.slnx
14+
/.vs/MoYuCode.slnx
1515
*.DotSettings.user

.idea/.idea.MyYuCode/.idea/.gitignore

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.kiro/specs/docker-ai-tools-image/design.md

Whitespace-only changes.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# 需求文档
2+
3+
## 简介
4+
5+
本功能旨在创建一个包含 AI 编程工具的 Docker 镜像。该镜像基于 .NET 10.0 ASP.NET 运行时,并集成 Node.js 20 环境,预装 OpenAI Codex CLI 和 Anthropic Claude Code 两款 AI 编程辅助工具,为开发者提供一个开箱即用的 AI 辅助开发环境。
6+
7+
## 术语表
8+
9+
- **AI_Tools_Image**: 包含 AI 编程工具的 Docker 镜像
10+
- **Base_Image**: 基础镜像,即 mcr.microsoft.com/dotnet/aspnet:10.0
11+
- **Node_Runtime**: Node.js 20 运行时环境
12+
- **Codex_CLI**: OpenAI 提供的 Codex 命令行工具 (@openai/codex)
13+
- **Claude_Code**: Anthropic 提供的 Claude Code 命令行工具 (@anthropic-ai/claude-code)
14+
- **Dockerfile**: Docker 镜像构建配置文件
15+
16+
## 需求
17+
18+
### 需求 1:基础镜像配置
19+
20+
**用户故事:** 作为开发者,我希望镜像基于官方 .NET 10.0 ASP.NET 运行时,以便能够运行 .NET 应用程序并保持与现有项目的兼容性。
21+
22+
#### 验收标准
23+
24+
1. THE AI_Tools_Image SHALL 使用 mcr.microsoft.com/dotnet/aspnet:10.0 作为基础镜像
25+
2. THE AI_Tools_Image SHALL 保留基础镜像的默认工作目录配置
26+
3. THE AI_Tools_Image SHALL 保留基础镜像的默认端口暴露配置(8080 和 8081)
27+
28+
### 需求 2:Node.js 运行时安装
29+
30+
**用户故事:** 作为开发者,我希望镜像中包含 Node.js 20 运行时,以便能够运行基于 npm 的 AI 编程工具。
31+
32+
#### 验收标准
33+
34+
1. THE AI_Tools_Image SHALL 安装 Node.js 20 LTS 版本
35+
2. THE AI_Tools_Image SHALL 包含 npm 包管理器
36+
3. WHEN 执行 `node --version` 命令时,THE AI_Tools_Image SHALL 返回 v20.x.x 版本号
37+
4. WHEN 执行 `npm --version` 命令时,THE AI_Tools_Image SHALL 返回有效的 npm 版本号
38+
39+
### 需求 3:Codex CLI 安装
40+
41+
**用户故事:** 作为开发者,我希望镜像中预装 OpenAI Codex CLI 工具,以便能够使用 AI 辅助编程功能。
42+
43+
#### 验收标准
44+
45+
1. THE AI_Tools_Image SHALL 通过 npm 全局安装 @openai/codex
46+
2. WHEN 执行 `codex --version` 命令时,THE AI_Tools_Image SHALL 返回有效的版本号
47+
3. WHEN 执行 `codex --help` 命令时,THE AI_Tools_Image SHALL 显示帮助信息
48+
49+
### 需求 4:Claude Code 安装
50+
51+
**用户故事:** 作为开发者,我希望镜像中预装 Anthropic Claude Code 工具,以便能够使用 Claude AI 辅助编程功能。
52+
53+
#### 验收标准
54+
55+
1. THE AI_Tools_Image SHALL 通过 npm 全局安装 @anthropic-ai/claude-code
56+
2. WHEN 执行 `claude --version` 命令时,THE AI_Tools_Image SHALL 返回有效的版本号
57+
3. WHEN 执行 `claude --help` 命令时,THE AI_Tools_Image SHALL 显示帮助信息
58+
59+
### 需求 5:镜像构建与验证
60+
61+
**用户故事:** 作为开发者,我希望 Dockerfile 能够成功构建,并且构建后的镜像能够正常运行所有已安装的工具。
62+
63+
#### 验收标准
64+
65+
1. WHEN 执行 `docker build` 命令时,THE Dockerfile SHALL 成功构建镜像
66+
2. WHEN 镜像构建完成后,THE AI_Tools_Image SHALL 能够正常启动容器
67+
3. THE AI_Tools_Image SHALL 保持合理的镜像大小(不超过 2GB)
68+
4. IF 任何工具安装失败,THEN THE Dockerfile SHALL 终止构建并返回错误信息

0 commit comments

Comments
 (0)