- 50 命令:patrol/health/board/recall/poke/who/inbox/mind/message/team 等 - 异步并行 SSH (asyncio subprocess) - 命令注册表 + @command decorator + 插件扩展架构 - 环境检测 (Mac/VM/agent 身份) - JSON 输出契约 (stdout=成功, stderr=错误 code) - 权限模型 (agent 身份检测 + 环境限制) - pytest 23/23 通过 - deploy-joy.sh 全集群 16 VM 部署脚本 (含 PEP 668 兼容) - 旧 bash 版归档到 archive/commands.bash/ Closes: joy CLI 2.0 迁移
61 lines
2 KiB
Bash
61 lines
2 KiB
Bash
# wenpai 领域检查 — WordPress 插件 + 发布 + 翻译(高价值业务)
|
|
domain_check() {
|
|
local result="{"
|
|
local issues=()
|
|
|
|
# 1. 翻译队列
|
|
local translate_queue
|
|
translate_queue=$(ssh -o ConnectTimeout=3 wenpai "ls ~/wenpai-yijian/overlay/joy/core/ 2>/dev/null | head -5" 2>/dev/null)
|
|
if [[ -n "$translate_queue" ]]; then
|
|
result+="\"translation\":\"active\""
|
|
else
|
|
result+="\"translation\":\"unknown\""
|
|
fi
|
|
|
|
# 2. WP 插件
|
|
local git_dir=~/Projects
|
|
local dirty_repos
|
|
dirty_repos=$(find "$git_dir" -name ".git" -maxdepth 3 -type d 2>/dev/null | while read d; do
|
|
local repo=$(dirname "$d")
|
|
local status
|
|
status=$(cd "$repo" && git status --short 2>/dev/null | wc -l | tr -d ' ')
|
|
(( status > 0 )) && echo "$(basename "$repo"):${status}"
|
|
done | head -10)
|
|
if [[ -n "$dirty_repos" ]]; then
|
|
local dirty_count
|
|
dirty_count=$(echo "$dirty_repos" | wc -l | tr -d ' ')
|
|
result+=",\"git_dirty\":${dirty_count}"
|
|
(( dirty_count > 3 )) && issues+=("${dirty_count} 个仓库有未提交变更")
|
|
else
|
|
result+=",\"git_dirty\":0"
|
|
fi
|
|
|
|
# 3. CI/发布
|
|
local journal=~/office/wenpai/journal.jsonl
|
|
if [[ -f "$journal" ]]; then
|
|
local release_issues
|
|
release_issues=$(tail -10 "$journal" 2>/dev/null | python3 -c "
|
|
import json, sys
|
|
for line in sys.stdin:
|
|
line = line.strip()
|
|
if not line: continue
|
|
try:
|
|
d = json.loads(line)
|
|
se = d.get('self_eval','')
|
|
doubts = d.get('doubts','')
|
|
if 'release' in se.lower() or '发布' in se or '部署' in se or 'deploy' in se.lower():
|
|
print(se[:120])
|
|
if doubts and doubts not in ('无','none',''):
|
|
print(f'doubt: {doubts[:80]}')
|
|
except: pass
|
|
" 2>/dev/null | tail -3)
|
|
[[ -n "$release_issues" ]] && issues+=("$release_issues")
|
|
fi
|
|
|
|
result+=",\"issues\":$(jq -nc '$ARGS.positional' --args ${issues[@]+"${issues[@]}"})}"
|
|
echo "$result" | jq .
|
|
}
|
|
|
|
domain_summary() {
|
|
echo "WP 代码/翻译队列监控"
|
|
}
|