D146: 编号路由器 code-router · 大脑说编号=手脚直接拿路径
- 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:
parent
ec6aac72a5
commit
2b2819bc60
140
scripts/code-router
Executable file
140
scripts/code-router
Executable 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)
|
||||
@ -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 端点
|
||||
```
|
||||
|
||||
## 为什么用编号
|
||||
|
||||
@ -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"}))
|
||||
|
||||
@ -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"),
|
||||
}
|
||||
|
||||
# 密钥文件路径(按优先级: 低→高,后面覆盖前面)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user