{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_deploy_nas_deploy_plan_md", "label": "deploy-plan.md", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L1"}, {"id": "nas_deploy_plan_nas_sanguo_vnpy", "label": "\u7fa4\u6656NAS\u90e8\u7f72sanguo_vnpy\u56de\u6d4b\u670d\u52a1\u65b9\u6848", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L1"}, {"id": "nas_deploy_plan", "label": "\u4e00\u3001\u95ee\u9898\u590d\u73b0\u4e0e\u6839\u56e0\u5206\u6790", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L9"}, {"id": "nas_deploy_plan_1_1", "label": "1.1 \u73b0\u8c61", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L11"}, {"id": "nas_deploy_plan_1_2_5", "label": "1.2 \u6839\u56e0\uff085\u91cd\u95ee\u9898\uff09", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L17"}, {"id": "nas_deploy_plan_1_3_4_vnpy_3_x_4_x_api", "label": "1.3 \u6839\u56e04\u8be6\u60c5\uff1avnpy 3.x \u2192 4.x API\u53d8\u66f4", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L27"}, {"id": "nas_deploy_plan_1_4", "label": "1.4 \u5df2\u6392\u9664\u9879", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L42"}, {"id": "nas_deploy_plan_51", "label": "\u4e8c\u3001\u73b0\u6709\u8d44\u6e90\u76d8\u70b9", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L51"}, {"id": "nas_deploy_plan_2_1_nas", "label": "2.1 NAS\u786c\u4ef6", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L53"}, {"id": "nas_deploy_plan_2_2", "label": "2.2 \u5bb9\u5668\u5185\u73af\u5883", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L63"}, {"id": "nas_deploy_plan_codeblock_1", "label": "code:block1 (\u5bb9\u5668ID: 8fc55af3d27d)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L65"}, {"id": "nas_deploy_plan_2_3_nas_smb", "label": "2.3 \u6570\u636e\u8d44\u6e90\uff08NAS SMB\u5171\u4eab\uff09", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L76"}, {"id": "nas_deploy_plan_codeblock_2", "label": "code:block2 (/Volumes/stock/A\u80a1\u6570\u636e/\u65e5\u7ebf\u6570\u636e/ \u2014 \u65e5\u7ebf\u5386\u53f2\u884c\u60c5)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L78"}, {"id": "nas_deploy_plan_86", "label": "\u4e09\u3001\u90e8\u7f72\u65b9\u6848", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L86"}, {"id": "nas_deploy_plan_3_1", "label": "3.1 \u67b6\u6784\u56fe", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L88"}, {"id": "nas_deploy_plan_codeblock_3", "label": "code:block3 (\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L90"}, {"id": "nas_deploy_plan_3_2_6", "label": "3.2 \u4fee\u590d\u6e05\u5355\uff086\u5904\u6539\u52a8\uff09", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L119"}, {"id": "nas_deploy_plan_3_3_executor_py", "label": "3.3 executor.py\u91cd\u5199\u8981\u70b9", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L132"}, {"id": "nas_deploy_plan_codeblock_4", "label": "code:python (# === vnpy 4.x import \u8def\u5f84 ===)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L136"}, {"id": "nas_deploy_plan_3_4_entrypoint_sh", "label": "3.4 \u4fee\u6539\u540e\u7684entrypoint.sh", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L165"}, {"id": "nas_deploy_plan_codeblock_5", "label": "code:bash (#!/bin/bash)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L167"}, {"id": "nas_deploy_plan_3_5_dockerfile", "label": "3.5 Dockerfile\u589e\u91cf\u4fee\u6539", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L221"}, {"id": "nas_deploy_plan_codeblock_6", "label": "code:dockerfile (# \u5728 COPY scripts \u884c\u4e4b\u540e\u6dfb\u52a0\uff1a)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L223"}, {"id": "nas_deploy_plan_3_6_docker_run", "label": "3.6 docker run\u547d\u4ee4", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L239"}, {"id": "nas_deploy_plan_codeblock_7", "label": "code:bash (sudo /var/packages/Docker/target/usr/bin/docker run -d \\)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L241"}, {"id": "nas_deploy_plan_257", "label": "\u56db\u3001\u9a8c\u8bc1\u6b65\u9aa4", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L257"}, {"id": "nas_deploy_plan_4_1", "label": "4.1 \u4ea4\u4ed8\u6807\u51c6\u9a8c\u8bc1", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L259"}, {"id": "nas_deploy_plan_codeblock_8", "label": "code:bash (# \u6807\u51c6\u4e00\uff1aHealth\u7aef\u70b9\u8fd4\u56de200)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L261"}, {"id": "nas_deploy_plan_4_2", "label": "4.2 \u56de\u6eda\u65b9\u6848", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L292"}, {"id": "nas_deploy_plan_303", "label": "\u4e94\u3001\u5b9e\u65bd\u8ba1\u5212", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L303"}, {"id": "nas_deploy_plan_codeblock_9", "label": "code:bash (# SSH\u5230NAS)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L315"}, {"id": "nas_deploy_plan_343", "label": "\u516d\u3001\u5173\u952e\u6280\u672f\u51b3\u7b56", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L343"}, {"id": "nas_deploy_plan_356", "label": "\u9644\u5f55\uff1a\u5bb9\u5668\u5185\u5b9e\u9645\u9a8c\u8bc1\u65e5\u5fd7", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L356"}, {"id": "nas_deploy_plan_codeblock_10", "label": "code:block10 ([2026-04-28 08:50] \u5bb9\u5668\u5185 pip list | grep vnpy \u2192 vnpy 4.3.0, vn)", "file_type": "document", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L358"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_deploy_nas_deploy_plan_md", "target": "nas_deploy_plan_nas_sanguo_vnpy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L1", "weight": 1.0}, {"source": "nas_deploy_plan_nas_sanguo_vnpy", "target": "nas_deploy_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L9", "weight": 1.0}, {"source": "nas_deploy_plan", "target": "nas_deploy_plan_1_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L11", "weight": 1.0}, {"source": "nas_deploy_plan", "target": "nas_deploy_plan_1_2_5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L17", "weight": 1.0}, {"source": "nas_deploy_plan", "target": "nas_deploy_plan_1_3_4_vnpy_3_x_4_x_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L27", "weight": 1.0}, {"source": "nas_deploy_plan", "target": "nas_deploy_plan_1_4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L42", "weight": 1.0}, {"source": "nas_deploy_plan_nas_sanguo_vnpy", "target": "nas_deploy_plan_51", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L51", "weight": 1.0}, {"source": "nas_deploy_plan_51", "target": "nas_deploy_plan_2_1_nas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L53", "weight": 1.0}, {"source": "nas_deploy_plan_51", "target": "nas_deploy_plan_2_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L63", "weight": 1.0}, {"source": "nas_deploy_plan_2_2", "target": "nas_deploy_plan_codeblock_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L65", "weight": 1.0}, {"source": "nas_deploy_plan_51", "target": "nas_deploy_plan_2_3_nas_smb", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L76", "weight": 1.0}, {"source": "nas_deploy_plan_2_3_nas_smb", "target": "nas_deploy_plan_codeblock_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L78", "weight": 1.0}, {"source": "nas_deploy_plan_nas_sanguo_vnpy", "target": "nas_deploy_plan_86", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L86", "weight": 1.0}, {"source": "nas_deploy_plan_86", "target": "nas_deploy_plan_3_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L88", "weight": 1.0}, {"source": "nas_deploy_plan_3_1", "target": "nas_deploy_plan_codeblock_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L90", "weight": 1.0}, {"source": "nas_deploy_plan_86", "target": "nas_deploy_plan_3_2_6", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L119", "weight": 1.0}, {"source": "nas_deploy_plan_86", "target": "nas_deploy_plan_3_3_executor_py", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L132", "weight": 1.0}, {"source": "nas_deploy_plan_3_3_executor_py", "target": "nas_deploy_plan_codeblock_4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L136", "weight": 1.0}, {"source": "nas_deploy_plan_86", "target": "nas_deploy_plan_3_4_entrypoint_sh", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L165", "weight": 1.0}, {"source": "nas_deploy_plan_3_4_entrypoint_sh", "target": "nas_deploy_plan_codeblock_5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L167", "weight": 1.0}, {"source": "nas_deploy_plan_86", "target": "nas_deploy_plan_3_5_dockerfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L221", "weight": 1.0}, {"source": "nas_deploy_plan_3_5_dockerfile", "target": "nas_deploy_plan_codeblock_6", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L223", "weight": 1.0}, {"source": "nas_deploy_plan_86", "target": "nas_deploy_plan_3_6_docker_run", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L239", "weight": 1.0}, {"source": "nas_deploy_plan_3_6_docker_run", "target": "nas_deploy_plan_codeblock_7", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L241", "weight": 1.0}, {"source": "nas_deploy_plan_nas_sanguo_vnpy", "target": "nas_deploy_plan_257", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L257", "weight": 1.0}, {"source": "nas_deploy_plan_257", "target": "nas_deploy_plan_4_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L259", "weight": 1.0}, {"source": "nas_deploy_plan_4_1", "target": "nas_deploy_plan_codeblock_8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L261", "weight": 1.0}, {"source": "nas_deploy_plan_257", "target": "nas_deploy_plan_4_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L292", "weight": 1.0}, {"source": "nas_deploy_plan_nas_sanguo_vnpy", "target": "nas_deploy_plan_303", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L303", "weight": 1.0}, {"source": "nas_deploy_plan_303", "target": "nas_deploy_plan_codeblock_9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L315", "weight": 1.0}, {"source": "nas_deploy_plan_nas_sanguo_vnpy", "target": "nas_deploy_plan_343", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L343", "weight": 1.0}, {"source": "nas_deploy_plan_nas_sanguo_vnpy", "target": "nas_deploy_plan_356", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L356", "weight": 1.0}, {"source": "nas_deploy_plan_356", "target": "nas_deploy_plan_codeblock_10", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/deploy/nas/deploy-plan.md", "source_location": "L358", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}