#!/bin/bash
# 行为规范访问脚本

RULES_BASE="/root/data/disk/system/behavior_rules"

# 显示帮助信息
show_help() {
    echo "行为规范访问工具"
    echo "用法: $0 [选项]"
    echo ""
    echo "选项:"
    echo "  list                 列出所有规范文件"
    echo "  show <agent>         显示指定Agent的规范"
    echo "  check <agent>        检查指定Agent的规范符合性"
    echo "  report               生成规范执行报告"
    echo "  version              显示规范版本信息"
    echo "  help                 显示此帮助信息"
}

# 列出所有规范文件
list_rules() {
    echo "=== 行为规范文件列表 ==="
    echo ""
    echo "通用规范:"
    find "$RULES_BASE/general" -name "*.md" -exec basename {} \; | sort
    
    echo ""
    echo "专用规范:"
    find "$RULES_BASE/specific" -name "*.md" -exec dirname {} \; | sort -u | xargs -I {} basename {}
    
    echo ""
    echo "配置文件:"
    find "$RULES_BASE/config" -name "*.json" -exec basename {} \;
}

# 显示指定Agent的规范
show_agent_rules() {
    local agent=$1
    local agent_dir="$RULES_BASE/specific/${agent}_Agent"
    
    if [ ! -d "$agent_dir" ]; then
        echo "错误: 未找到Agent '$agent' 的规范目录"
        echo "可用Agent: CTO, Producer, Writer, Collector, Publisher, Analyzer"
        return 1
    fi
    
    echo "=== $agent Agent 行为规范 ==="
    echo ""
    
    # 显示通用规范链接
    echo "通用规范 (所有Agent遵守):"
    echo "- 通用行为原则: $RULES_BASE/general/01_通用行为原则.md"
    echo "- 技能使用规则: $RULES_BASE/general/02_技能使用通用规则.md"
    echo "- 文件操作标准: $RULES_BASE/general/03_文件操作通用标准.md"
    echo "- 数据更新流程: $RULES_BASE/general/04_数据更新通用流程.md"
    echo "- 通信协作协议: $RULES_BASE/general/05_通信协作通用协议.md"
    echo "- 质量安全要求: $RULES_BASE/general/06_质量安全通用要求.md"
    echo ""
    
    # 显示专用规范
    echo "专用规范 ($agent Agent专用):"
    find "$agent_dir" -name "*.md" -exec echo "- {}" \;
    echo ""
    
    # 显示配置文件
    echo "配置文件:"
    echo "- 行为规则配置: $RULES_BASE/config/behavior_rules.json"
}

# 主函数
main() {
    case "$1" in
        list)
            list_rules
            ;;
        show)
            if [ -z "$2" ]; then
                echo "错误: 需要指定Agent名称"
                show_help
                exit 1
            fi
            show_agent_rules "$2"
            ;;
        check)
            echo "规范检查功能开发中..."
            ;;
        report)
            echo "规范报告功能开发中..."
            ;;
        version)
            if [ -f "$RULES_BASE/index.json" ]; then
                jq . "$RULES_BASE/index.json" 2>/dev/null || cat "$RULES_BASE/index.json"
            else
                echo "未找到规范索引文件"
            fi
            ;;
        help|*)
            show_help
            ;;
    esac
}

main "$@"
