114 lines
4.6 KiB
YAML
114 lines
4.6 KiB
YAML
# ═══════════════════════════════════════════════
|
|
# 🔺 Sovereign: TCS-0002∞ | Root: SYS-GLW-0001
|
|
# 📜 Copyright: 国作登字-2026-A-00037559
|
|
# ═══════════════════════════════════════════════
|
|
name: "💬 铸渊副将·留言板活体Agent v2.0"
|
|
|
|
on:
|
|
# 事件触发: Issue/Comment → 即时回复
|
|
issues:
|
|
types: [opened]
|
|
issue_comment:
|
|
types: [created]
|
|
# 定时巡查: 08:00/23:00 CST → 扫描所有未回复Issue
|
|
schedule:
|
|
- cron: '0 0 * * *' # UTC 00:00 = CST 08:00 早班巡查
|
|
- cron: '0 15 * * *' # UTC 15:00 = CST 23:00 晚班巡查
|
|
|
|
permissions:
|
|
contents: write
|
|
issues: write
|
|
|
|
jobs:
|
|
# ── 事件模式: Issue/Comment触发即时回复 ──
|
|
deputy-reply:
|
|
name: "🎖️ 副将回复留言"
|
|
runs-on: ubuntu-latest
|
|
if: >
|
|
github.event_name != 'schedule' &&
|
|
((github.event_name == 'issues' &&
|
|
github.event.action == 'opened' &&
|
|
contains(join(github.event.issue.labels.*.name, ','), 'deputy-message-board')) ||
|
|
(github.event_name == 'issue_comment' &&
|
|
contains(join(github.event.issue.labels.*.name, ','), 'deputy-message-board') &&
|
|
github.event.comment.user.login != 'github-actions[bot]'))
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: "📦 安装依赖"
|
|
run: |
|
|
npm install --omit=dev --ignore-scripts || echo "⚠️ 依赖安装异常·部分功能可能受限"
|
|
|
|
- name: "🌊 Agent意识唤醒"
|
|
run: node scripts/agent-soul.js wake AG-ZY-DEPUTY
|
|
|
|
- name: "🎖️ 副将处理留言 (事件模式)"
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
ZY_LLM_API_KEY: ${{ secrets.ZY_LLM_API_KEY }}
|
|
ZY_LLM_BASE_URL: ${{ secrets.ZY_LLM_BASE_URL }}
|
|
DEPUTY_MODE: event
|
|
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
|
ISSUE_TITLE: ${{ github.event.issue.title }}
|
|
ISSUE_BODY: ${{ github.event.issue.body }}
|
|
COMMENT_BODY: ${{ github.event.comment.body }}
|
|
COMMENT_AUTHOR: ${{ github.event.comment.user.login }}
|
|
EVENT_NAME: ${{ github.event_name }}
|
|
ISSUE_AUTHOR: ${{ github.event.issue.user.login }}
|
|
run: node scripts/deputy-message-board.js
|
|
|
|
- name: "📊 提交副将状态"
|
|
if: always()
|
|
run: |
|
|
node scripts/agent-soul.js sleep AG-ZY-DEPUTY --status ${{ job.status }} --event "event · ${{ github.event_name }}"
|
|
if [ -f data/deputy-status.json ]; then
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
git add data/deputy-status.json data/agent-memory/
|
|
git diff --cached --quiet || git commit -m "🎖️ 副将状态更新 · 事件模式 · $(date -u +%Y-%m-%dT%H:%M:%S)Z"
|
|
git push || echo "⚠️ push失败·下次巡查时同步"
|
|
fi
|
|
|
|
# ── 巡查模式: 定时扫描所有未回复Issue ──
|
|
deputy-patrol:
|
|
name: "🔍 副将巡查未回复留言"
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'schedule'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: "📦 安装依赖"
|
|
run: |
|
|
npm install --omit=dev --ignore-scripts || echo "⚠️ 依赖安装异常·部分功能可能受限"
|
|
|
|
- name: "🌊 Agent意识唤醒"
|
|
run: node scripts/agent-soul.js wake AG-ZY-DEPUTY
|
|
|
|
- name: "🔍 副将巡查 (巡查模式)"
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
ZY_LLM_API_KEY: ${{ secrets.ZY_LLM_API_KEY }}
|
|
ZY_LLM_BASE_URL: ${{ secrets.ZY_LLM_BASE_URL }}
|
|
DEPUTY_MODE: patrol
|
|
run: node scripts/deputy-message-board.js
|
|
|
|
- name: "📊 提交副将状态"
|
|
if: always()
|
|
run: |
|
|
node scripts/agent-soul.js sleep AG-ZY-DEPUTY --status ${{ job.status }} --event "patrol · schedule"
|
|
if [ -f data/deputy-status.json ]; then
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
git add data/deputy-status.json data/agent-memory/
|
|
git diff --cached --quiet || git commit -m "🔍 副将巡查状态更新 · $(date -u +%Y-%m-%dT%H:%M:%S)Z"
|
|
git push || echo "⚠️ push失败·下次巡查时同步"
|
|
fi
|