Files
cad-agent/ai.memory/reference_environment.md
T
gjm 8c0fcfee83 chore: 删除 5 个遗留调试脚本并同步文档引用
- 删除 agent_loop.py / dwg_review_agent.py / countOfCircle.py
  (硬编码 DeepSeek API Key)与 test.py / test_autoagent.py
  (重复实现;且 test_autoagent.py 名字与 pytest 的 test_*.py 收集规则冲突)
- CODEBUDDY.md 测试章节改为「pytest 快层 + verify_* 慢层」
- review_checklist.json 描述改指 dwg_review 包
- ai.memory 同步引用与历史说明

安全:Key 已随提交 bdd77af 进入 git 历史并推到远程,删除文件不能清除历史,
需去 DeepSeek 控制台轮换该 Key(已在 ai.memory 备案)。
2026-10-14 19:07:35 +08:00

4.1 KiB
Raw Blame History

name, description, type
name description type
环境与外部资源 CadProject 的构建/运行要点、CAD SDK 路径、测试分层(pytest 快层 + verify_* 慢层)等外部资源指引 reference

环境与外部资源

构建

  • 系统:CMake + vcpkg + Visual Studio 生成器,通过 CMake Presets 区分 CAD 版本。
  • 产物:bin/<Config>-<TAG>/ 与 lib/<Config>-<TAG>/。
  • 命令:cmake --preset R230 → cmake --build --preset R230 --config Debug。
  • 可用 preset:R180–R260(AutoCAD,ARX 18–26)、Z2023–Z2026(ZWCAD,ZRX)。
  • 前置:需要 VCPKG_ROOT;必需 cache 变量 CAD_SDK_ROOT、DEP_LIB_ROOT、DEP_INC_ROOT、 CAD_SDK_VERSION(AutoCAD 还需 CAD_SDK_SUBVERSION)。

CAD SDK 路径

  • AutoCAD:仓库同级 ../envi-code/Arx
  • ZWCAD:仓库同级 ../envi-code/Zrx
  • 在 cmakepresets.json 的 CAD_SDK_ROOT 中配置。

运行 / 联调

  • 先启动 已加载插件的 CAD,确认 127.0.0.1:8080 在监听。
  • 脚本通过 TCP 连接 127.0.0.1:8080 收发 JSON-RPC。

测试(两层,互不替代)

快层 —— pytest 离线单元测试(tests/,假 LLM + 假基座,无需 CAD、不联网、秒级):

  • pip install -r requirements-dev.txt → python -m pytest。
  • 配置:pytest.ini(testpaths = tests)、根 conftest.py(加 sys.path + RENDER_WAIT=0 / REPORT_DIR=tmp fixture)。
  • 陷阱:dwg_review.config 常量导入期定值,改 os.environ 无效,须 monkeypatch.setattr(config, ...)。

慢层 —— 端到端冒烟脚本(根目录 verify_*.py,需 CAD 在线且 127.0.0.1:8080 监听):

脚本 作用
verify_mcp_frame.py 基座最小集:分帧 / id / isError 映射
verify_mcp_tcp_hardening.py TCP 收发路径加固(超长帧 / 粘包 / 半关闭)
verify_mcp_fault_injection.py 工具异常保护(类型错误不再崩 CAD)
verify_stdio_bridge.py stdio ↔ TCP 桥(协议协商 / 转发 / 通知)
verify_annotate.py 批注工具运行时验证(绘制/校验/改属性/清理);--keep 保留批注

历史:根目录 test.py / test_autoagent.py / countOfCircle.py / agent_loop.py / dwg_review_agent.py 五个遗留调试脚本已于 2026-10-14 删除(前三个含硬编码 API Key, 后两个是重复实现)。test_screenshot.png 是 test_autoagent.py 的残留产物。

两个构建目标

目标 产物 作用
src/cad_mcp_frame cad_mcp_frame.arx(ZWCAD 下 .zrx) MCP 基座:起 TCP、解析配置、路由执行
src/cad_mcp_plugins cad_mcp_plugins.dll 示例 C++ 工具插件,ABI 动态加载

三种工具后端(backend.type)

  • lisp_inline:{占位符} 替换后 sendStringToExecute(异步)。
  • lisp_file:(load "文件" nil) 后执行 call_template。
  • c++_dll:LoadLibrary(同一 DLL 只加载一次)+ 工厂/销毁函数(同步,可返回图像)。 版本校验与「写库需文档锁」两个坑见 MCP 基座 c++_dll 加载与执行的坑。

远程仓库

  • 现状(2026-10-08 起):CadProject 已从「某仓库的子目录」独立为单独仓库。
    • origin = ssh://git@39.107.55.179:222/gjm/cad-agent.git
    • 当前分支 home-ai-dev;服务器只保留 main,采用 PR 流程 (home-ai-dev → main,合并后源分支被删除,故本地 home-ai-dev 的 upstream 显示 [gone])。
    • 历史已被重写/重新初始化(哈希全新)。
  • 历史参考(旧):new-start.git = ssh://gjm@47.93.46.28:1216/srv/git/new-start.git
  • SSH 密钥(2026-10-08 变更):服务器已改用新密钥 ~/.ssh/id_ed25519_guojianming(注释 guojianming.go@gmail.com); 旧密钥 ~/.ssh/id_ed25519(deploy@aly-db)已被服务器移除,会 Permission denied (publickey)。 本仓库已设置 git config core.sshCommand "ssh -i ~/.ssh/id_ed25519_guojianming -o IdentitiesOnly=yes"。 换机器时需补该配置或加入 ~/.ssh/config。