Merge pull request 'fix: fix: entrypoint state file creation and AGENT_ROLES default should include all agents (#403)' (#406) from fix/issue-403 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
This commit is contained in:
commit
4b4eb741e6
1 changed files with 17 additions and 6 deletions
|
|
@ -7,11 +7,12 @@ set -euo pipefail
|
||||||
# poll scripts. All Docker Compose env vars are inherited (PATH, FORGE_TOKEN,
|
# poll scripts. All Docker Compose env vars are inherited (PATH, FORGE_TOKEN,
|
||||||
# ANTHROPIC_API_KEY, etc.).
|
# ANTHROPIC_API_KEY, etc.).
|
||||||
#
|
#
|
||||||
# AGENT_ROLES env var controls which scripts run: "review,dev,gardener"
|
# AGENT_ROLES env var controls which scripts run: "review,dev,gardener,architect"
|
||||||
# (default: all three). Uses while-true loop with staggered intervals:
|
# (default: all four). Uses while-true loop with staggered intervals:
|
||||||
# - review-poll: every 5 minutes (offset by 0s)
|
# - review-poll: every 5 minutes (offset by 0s)
|
||||||
# - dev-poll: every 5 minutes (offset by 2 minutes)
|
# - dev-poll: every 5 minutes (offset by 2 minutes)
|
||||||
# - gardener: every 6 hours (72 iterations * 5 min)
|
# - gardener: every 6 hours (72 iterations * 5 min)
|
||||||
|
# - architect: every 6 hours (same as gardener)
|
||||||
|
|
||||||
DISINTO_DIR="/home/agent/disinto"
|
DISINTO_DIR="/home/agent/disinto"
|
||||||
LOGFILE="/home/agent/data/agent-entrypoint.log"
|
LOGFILE="/home/agent/data/agent-entrypoint.log"
|
||||||
|
|
@ -27,9 +28,9 @@ init_state_dir() {
|
||||||
local state_dir="${DISINTO_DIR}/state"
|
local state_dir="${DISINTO_DIR}/state"
|
||||||
mkdir -p "$state_dir"
|
mkdir -p "$state_dir"
|
||||||
# Create empty state files so check_active guards work
|
# Create empty state files so check_active guards work
|
||||||
touch "$state_dir/.dev-active"
|
for agent in dev reviewer gardener architect planner predictor; do
|
||||||
touch "$state_dir/.reviewer-active"
|
touch "$state_dir/.${agent}-active" 2>/dev/null || true
|
||||||
touch "$state_dir/.gardener-active"
|
done
|
||||||
chown -R agent:agent "$state_dir"
|
chown -R agent:agent "$state_dir"
|
||||||
log "Initialized state directory"
|
log "Initialized state directory"
|
||||||
}
|
}
|
||||||
|
|
@ -124,7 +125,7 @@ init_state_dir
|
||||||
|
|
||||||
# Parse AGENT_ROLES env var (default: all agents)
|
# Parse AGENT_ROLES env var (default: all agents)
|
||||||
# Expected format: comma-separated list like "review,dev,gardener"
|
# Expected format: comma-separated list like "review,dev,gardener"
|
||||||
AGENT_ROLES="${AGENT_ROLES:-review,dev,gardener}"
|
AGENT_ROLES="${AGENT_ROLES:-review,dev,gardener,architect}"
|
||||||
log "Agent roles configured: ${AGENT_ROLES}"
|
log "Agent roles configured: ${AGENT_ROLES}"
|
||||||
|
|
||||||
# Poll interval in seconds (5 minutes default)
|
# Poll interval in seconds (5 minutes default)
|
||||||
|
|
@ -169,6 +170,16 @@ while true; do
|
||||||
gosu agent bash -c "cd ${DISINTO_DIR} && bash gardener/gardener-run.sh \"${toml}\"" >> "${DISINTO_DIR}/../data/logs/gardener.log" 2>&1 || true
|
gosu agent bash -c "cd ${DISINTO_DIR} && bash gardener/gardener-run.sh \"${toml}\"" >> "${DISINTO_DIR}/../data/logs/gardener.log" 2>&1 || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Architect (every 6 hours, same schedule as gardener)
|
||||||
|
if [[ ",${AGENT_ROLES}," == *",architect,"* ]]; then
|
||||||
|
architect_iteration=$((iteration * POLL_INTERVAL))
|
||||||
|
architect_interval=$((6 * 60 * 60)) # 6 hours in seconds
|
||||||
|
if [ $((architect_iteration % architect_interval)) -eq 0 ] && [ "$now" -ge "$architect_iteration" ]; then
|
||||||
|
log "Running architect (iteration ${iteration}, 6-hour interval) for ${toml}"
|
||||||
|
gosu agent bash -c "cd ${DISINTO_DIR} && bash architect/architect-run.sh \"${toml}\"" >> "${DISINTO_DIR}/../data/logs/architect.log" 2>&1 || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
sleep "${POLL_INTERVAL}"
|
sleep "${POLL_INTERVAL}"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue