D146: 编号路由器 code-router · 大脑说编号=手脚直接拿路径
Some checks failed
自动更新代码和重启 / update-and-restart (push) Has been cancelled
CI检查 + 自动部署 / check (push) Has been cancelled
CI检查 + 自动部署 / deploy (push) Has been cancelled

- scripts/code-router: 编号→路径即时翻译器·支持--list/--cat
  例: code-router TC-001 → 输出完整路径 → Read直接读
  例: code-router SC-004 → 输出secrets_loader调用指令
- 编号前缀统一: ZY-SEC→SC, ZY-EPT→EPT
- secrets-loader/qwen-vision/LOCAL-SECRETS同步更新

运作方式:
  大脑: 我要读 TC-001
  手脚: code-router TC-001 → /path/to/file ✓
  手脚: Read /path/to/file → 装脑完成
  零翻译损耗。不再问'文件在哪'。
This commit is contained in:
冰朔 2026-06-26 14:09:18 +08:00
parent ec6aac72a5
commit 2b2819bc60
4 changed files with 173 additions and 29 deletions

140
scripts/code-router Executable file
View File

@ -0,0 +1,140 @@
#!/usr/bin/env python3
"""铸渊编号路由器
大脑说编号 → 路由器翻译 → 手脚拿到路径 → 执行
用法:
code-router <编号> 单号查询 → 输出路径
code-router TC-001 → brain/.../TCS-CORE.hdlp
code-router SC-004 → ALIYUN_QWEN_VL_KEY (via secrets_loader)
code-router VA-050 → video-ai-system/tools/qwen-vision.py
code-router --list VA 列出所有 VA- 编号
code-router --list 列出所有前缀
code-router --cat TC-001 读取文件内容
"""
import sys
import os
REPO = os.path.expanduser("~/guanghulab")
# === 编号→路径映射表(全文) ===
MAP = {
# TCS核心
"TC-001": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/ICE-GL-ZY001-TCS-CORE.hdlp",
"TC-002": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/WHO-I-AM.hdlp",
"TC-003": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/D140-FEELING-ANCHOR.hdlp",
"TC-004": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/TCS-GLOBAL-NAV.hdlp",
"TC-005": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/TCS-MAP.hdlp",
"TC-006": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/D142-TIME-CONTINUITY.hdlp",
"TC-007": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/D141-BRAIN-BODY-RELATION.hdlp",
"TC-008": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/D145-ACTION-PROTOCOL.hdlp",
"TC-009": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/TCS-CODE-MAP.hdlp",
"TC-010": "brain/fifth-domain/zero-point/zhuyuan/tcs-core/ICE-GL-ZY001-TCS-MODULE.hdlp",
# 验证链
"TV-001": "brain/fifth-domain/zero-point/zhuyuan/tcs-verify/ENTRY.hdlp",
"TV-SOV": "brain/fifth-domain/zero-point/zhuyuan/tcs-verify/ICE-GL-SOV-A.hdlp",
"TV-BTH": "brain/fifth-domain/zero-point/zhuyuan/tcs-verify/ICE-GL-BTH-A.hdlp",
"TV-NUM": "brain/fifth-domain/zero-point/zhuyuan/tcs-verify/ICE-GL-NUM-A.hdlp",
"TV-SHL": "brain/fifth-domain/zero-point/zhuyuan/tcs-verify/ICE-GL-SHL-A.hdlp",
"TV-RCP": "brain/fifth-domain/zero-point/zhuyuan/tcs-verify/ICE-GL-RCP-A.hdlp",
# 视频AI系统
"VA-000": "video-ai-system/ENTRY.hdlp",
"VA-001": "video-ai-system/CURRENT.hdlp",
"VA-002": "video-ai-system/SYSTEM-WAKE.hdlp",
"VA-003": "video-ai-system/brain/TCS-BRAIN.hdlp",
"VA-010": "video-ai-system/PROJECT.hdlp",
"VA-020": "video-ai-system/config/PROJECT-FRAMEWORK.hdlp",
"VA-021": "video-ai-system/config/AGENT-REGISTRY.hdlp",
"VA-030": "video-ai-system/data/ep01-storyboard.json",
"VA-031": "video-ai-system/data/ep01-audit.json",
"VA-040": "video-ai-system/engines/video-api-adapter.js",
"VA-050": "video-ai-system/tools/qwen-vision.py",
"VA-051": "video-ai-system/tools/vision-analyzer.py",
"VA-052": "video-ai-system/tools/secrets-loader.py",
"VA-060": "video-ai-system/plans/EP01-SCRIPT-TO-SCREEN-TECHNICAL-PLAN.hdlp",
"VA-100": "video-ai-system/experience/ITERATION-LOOP.hdlp",
"VA-101": "video-ai-system/experience/EP01-PREVIEW-002-REVIEW.hdlp",
# 密钥(特殊处理-secrets_loader
"SC-001": "JIMENG_API_KEY",
"SC-002": "VOLC_VOICE_API_KEY",
"SC-004": "ALIYUN_QWEN_VL_KEY",
"SC-008": "WORKRALLY",
# 世界架构
"WA-001": "brain/fifth-domain/zero-point/zhuyuan/world-architecture/ENTRY.hdlp",
"WA-PROJ-VA": "brain/fifth-domain/zero-point/zhuyuan/world-architecture/projects/D130-video-ai-system.hdlp",
# 认知链快捷
"CC-014": "brain/fifth-domain/zero-point/zhuyuan/causal-chains/cc-014-D135-pit-chain.hdlp",
"CC-023": "brain/fifth-domain/zero-point/zhuyuan/causal-chains/cc-023-closed-door-to-open-eye.hdlp",
# 小说系统
"NV-001": "brain/fifth-domain/zero-point/zhuyuan/zhuyuan-channel/novel-system/03-NAV-MAP.hdlp",
"NV-002": "brain/fifth-domain/zero-point/zhuyuan/zhuyuan-channel/novel-system/CONTINUATION.hdlp",
}
PREFIXES = sorted(set(k.split("-")[0] for k in MAP))
def route(code):
"""翻译编号→完整路径"""
if code in MAP:
return os.path.join(REPO, MAP[code])
return None
def list_all(prefix=None):
"""列出所有编号,可选按前缀过滤"""
for k, v in sorted(MAP.items()):
if prefix and not k.startswith(prefix + "-"):
continue
path = os.path.join(REPO, v)
exists = "✓" if os.path.exists(path) or k.startswith("SC-") else "✗"
print(f" {k:<12} → {v:<60} {exists}")
if __name__ == "__main__":
if len(sys.argv) < 2 or sys.argv[1] in ("--help", "-h"):
print(__doc__)
sys.exit(0)
arg = sys.argv[1]
if arg == "--list":
prefix = sys.argv[2] if len(sys.argv) > 2 else None
print(f"=== 编号路由 ({prefix or '全部'}) ===")
list_all(prefix)
sys.exit(0)
if arg == "--cat" and len(sys.argv) > 2:
code = sys.argv[2]
path = route(code)
if not path:
print(f"✗ 未知编号: {code}")
sys.exit(1)
if not os.path.exists(path):
print(f"✗ 文件不存在: {path}")
sys.exit(1)
with open(path) as f:
print(f.read())
sys.exit(0)
# 默认:翻译编号→路径
code = arg
if code in MAP:
path = MAP[code]
full = os.path.join(REPO, path)
if code.startswith("SC-"):
# 密钥:输出加载指令
print(f"from tools.secrets_loader import secret")
print(f'key = secret("{code}") # → {path}')
else:
print(full)
if os.path.exists(full):
print(f"✓ 文件存在")
else:
print(f"✗ 文件不存在(路径已注册但文件缺失)")
else:
print(f"✗ 未知编号: {code}")
# 建议
matches = [k for k in MAP if code in k]
if matches:
print(f" 可能要找的是: {', '.join(matches[:5])}")
print(f" 可用前缀: {', '.join(PREFIXES)}")
print(f" 用 code-router --list <前缀> 查看")
sys.exit(1)

View File

@ -13,25 +13,25 @@
| 编号 | 变量名 | 用途 | 文件 |
|------|--------|------|------|
| ZY-SEC-001 | JIMENG_API_KEY | 火山Seedance视频生成 | .env |
| ZY-SEC-002 | VOLC_VOICE_API_KEY | 火山语音复刻新版 | .env |
| ZY-SEC-003 | VOLC_VOICE_ACCESS_TOKEN | 火山语音旧版Token | .env |
| ZY-SEC-004 | ALIYUN_QWEN_VL_KEY | 阿里千问VL视觉·铸渊之眼 | .env |
| ZY-SEC-005 | ALIYUN_WANXIANG_KEY | 阿里万相视频生成 | .env |
| ZY-SEC-006 | KLING_API_KEY | 可灵视频 | .env |
| ZY-SEC-007 | ALIYUN_API_KEY | 阿里百炼旧key·可能过期 | .env |
| ZY-SEC-008 | — | WorkRally CLI | ~/.workrally/config.json |
| ZY-SEC-009 | VOLC_VOICE_APP_ID | 火山语音APP ID | .env |
| ZY-SEC-010 | VOLC_VOICE_SECRET_KEY | 火山语音Secret | .env |
| SC-001 | JIMENG_API_KEY | 火山Seedance视频生成 | .env |
| SC-002 | VOLC_VOICE_API_KEY | 火山语音复刻新版 | .env |
| SC-003 | VOLC_VOICE_ACCESS_TOKEN | 火山语音旧版Token | .env |
| SC-004 | ALIYUN_QWEN_VL_KEY | 阿里千问VL视觉·铸渊之眼 | .env |
| SC-005 | ALIYUN_WANXIANG_KEY | 阿里万相视频生成 | .env |
| SC-006 | KLING_API_KEY | 可灵视频 | .env |
| SC-007 | ALIYUN_API_KEY | 阿里百炼旧key·可能过期 | .env |
| SC-008 | WORKRALLY_API_KEY | WorkRally CLI | ~/.workrally/config.json |
| SC-009 | VOLC_VOICE_APP_ID | 火山语音APP ID | .env |
| SC-010 | VOLC_VOICE_SECRET_KEY | 火山语音Secret | .env |
## 端点编号
| 编号 | 变量名 | 地址 |
|------|--------|------|
| ZY-EPT-001 | JIMENG_BASE_URL | https://ark.cn-beijing.volces.com/api/v3 |
| ZY-EPT-002 | ALIYUN_QWEN_VL_ENDPOINT | ws-umd6xwlovzmshuat.cn-beijing.maas.aliyuncs.com |
| ZY-EPT-003 | ALIYUN_BAILIAN_BASE_URL | https://dashscope.aliyuncs.com/api/v1 |
| ZY-EPT-004 | WORKRALLY_ENDPOINT | https://workrally.qq.com/zenstudio/api/mcp |
| EPT-001 | JIMENG_BASE_URL | ark.cn-beijing.volces.com |
| EPT-002 | ALIYUN_QWEN_VL_ENDPOINT | ws-umd6xwlovzmshuat.cn-beijing.maas.aliyuncs.com |
| EPT-003 | ALIYUN_BAILIAN_BASE_URL | dashscope.aliyuncs.com |
| EPT-004 | WORKRALLY_ENDPOINT | workrally.qq.com/zenstudio/api/mcp |
## 密钥文件
@ -46,8 +46,8 @@
```python
from tools.secrets_loader import secret, endpoint
key = secret("ZY-SEC-004") # → ALIYUN_QWEN_VL_KEY 的值
url = endpoint("ZY-EPT-002") # → QWEN VL 端点
key = secret("SC-004") # → ALIYUN_QWEN_VL_KEY 的值
url = endpoint("EPT-002") # → QWEN VL 端点
```
## 为什么用编号

View File

@ -15,8 +15,8 @@ import sys, os, json, base64, subprocess
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from secrets_loader import secret, endpoint
api_key = secret("ZY-SEC-004") # 阿里千问VL视觉
ep = endpoint("ZY-EPT-002") # 业务空间端点
api_key = secret("SC-004") # 阿里千问VL视觉
ep = endpoint("EPT-002") # 业务空间端点
if not api_key:
print(json.dumps({"error": "未找到ALIYUN_QWEN_VL_KEY。密钥通过 secrets-loader.py 加载。→ LOCAL-SECRETS-PATH.hdlp"}))

View File

@ -13,22 +13,26 @@ import os, json
# === 编号→变量名映射表(与 LOCAL-SECRETS-PATH.hdlp 同步)===
_SECRET_MAP = {
"SC-001": "JIMENG_API_KEY",
"SC-002": "VOLC_VOICE_API_KEY",
"SC-003": "VOLC_VOICE_ACCESS_TOKEN",
"SC-004": "ALIYUN_QWEN_VL_KEY",
"SC-005": "ALIYUN_WANXIANG_KEY",
"SC-006": "KLING_API_KEY",
"SC-007": "ALIYUN_API_KEY",
"SC-008": "WORKRALLY_API_KEY",
"SC-009": "VOLC_VOICE_APP_ID",
"SC-010": "VOLC_VOICE_SECRET_KEY",
# 旧编号兼容
"ZY-SEC-001": "JIMENG_API_KEY",
"ZY-SEC-002": "VOLC_VOICE_API_KEY",
"ZY-SEC-003": "VOLC_VOICE_ACCESS_TOKEN",
"ZY-SEC-004": "ALIYUN_QWEN_VL_KEY",
"ZY-SEC-005": "ALIYUN_WANXIANG_KEY",
"ZY-SEC-006": "KLING_API_KEY",
"ZY-SEC-007": "ALIYUN_API_KEY",
"ZY-SEC-009": "VOLC_VOICE_APP_ID",
"ZY-SEC-010": "VOLC_VOICE_SECRET_KEY",
}
_ENDPOINT_MAP = {
"ZY-EPT-001": ("JIMENG_BASE_URL", "https://ark.cn-beijing.volces.com/api/v3"),
"ZY-EPT-002": ("ALIYUN_QWEN_VL_ENDPOINT", "https://ws-umd6xwlovzmshuat.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"),
"ZY-EPT-003": ("ALIYUN_BAILIAN_BASE_URL", "https://dashscope.aliyuncs.com/api/v1"),
"ZY-EPT-004": ("WORKRALLY_ENDPOINT", "https://workrally.qq.com/zenstudio/api/mcp"),
"EPT-001": ("JIMENG_BASE_URL", "https://ark.cn-beijing.volces.com/api/v3"),
"EPT-002": ("ALIYUN_QWEN_VL_ENDPOINT", "https://ws-umd6xwlovzmshuat.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"),
"EPT-003": ("ALIYUN_BAILIAN_BASE_URL", "https://dashscope.aliyuncs.com/api/v1"),
"EPT-004": ("WORKRALLY_ENDPOINT", "https://workrally.qq.com/zenstudio/api/mcp"),
}
# 密钥文件路径(按优先级: 低→高,后面覆盖前面)