feat(delegate-job): support role aliases mapping and run delegate job safely using isolated temp copy with signal cleanups
This commit is contained in:
@@ -67,6 +67,18 @@ if [ -z "$TARGET_AGENT" ] || [ -z "$TASK" ]; then
|
||||
echo "ERROR: --target-agent and --task are mandatory fields."
|
||||
usage
|
||||
fi
|
||||
delegate_job_safe() {
|
||||
local orig_script="$REPO_ROOT/.agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job"
|
||||
local tmp_script
|
||||
tmp_script="${orig_script}.${RANDOM}_$$.tmp"
|
||||
cp "$orig_script" "$tmp_script"
|
||||
trap 'rm -f "$tmp_script"' EXIT INT TERM HUP
|
||||
local rc=0
|
||||
bash "$tmp_script" "$@" || rc=$?
|
||||
rm -f "$tmp_script"
|
||||
trap - EXIT INT TERM HUP
|
||||
return $rc
|
||||
}
|
||||
|
||||
log_info() {
|
||||
echo -e "\033[1;34m[*]\033[0m $1"
|
||||
@@ -221,7 +233,7 @@ if [ "$PLAN_MODE" = true ]; then
|
||||
|
||||
# Step 1.1: Request initial plan from Planner
|
||||
log_info "Requesting initial implementation plan from Planner..."
|
||||
PLAN_JOB_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \
|
||||
PLAN_JOB_OUTPUT=$(delegate_job_safe submit \
|
||||
--agent-session "tmux:$PLANNER_SESSION" \
|
||||
--agent "$(resolve_agent_type "$PLANNER_SESSION")" \
|
||||
--type "direct" \
|
||||
@@ -255,7 +267,7 @@ if [ "$PLAN_MODE" = true ]; then
|
||||
log_info "Discussion Turn $turn/$PLAN_TALK_TURNS: Creator challenging the plan..."
|
||||
|
||||
# Creator critique job
|
||||
DEBATE_JOB_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \
|
||||
DEBATE_JOB_OUTPUT=$(delegate_job_safe submit \
|
||||
--agent-session "tmux:$TARGET_AGENT" \
|
||||
--agent "$(resolve_agent_type "$TARGET_AGENT")" \
|
||||
--type "direct" \
|
||||
@@ -283,7 +295,7 @@ if [ "$PLAN_MODE" = true ]; then
|
||||
CRITIQUE_TEXT=$(cat "$CRITIQUE_FILE")
|
||||
|
||||
log_info "Planner refining plan with Creator's feedback..."
|
||||
REFINE_JOB_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \
|
||||
REFINE_JOB_OUTPUT=$(delegate_job_safe submit \
|
||||
--agent-session "tmux:$PLANNER_SESSION" \
|
||||
--agent "$(resolve_agent_type "$PLANNER_SESSION")" \
|
||||
--type "direct" \
|
||||
@@ -339,7 +351,7 @@ if [ -n "$CURRENT_PLAN" ]; then
|
||||
EXECUTION_PROMPT="이미 수립된 다음 계획서에 입각하여 작업자의 판단하에 코드를 구현하고 작업 목표를 완성해주세요. 계획서:\n$CURRENT_PLAN\n\n작업 목표: $TASK"
|
||||
fi
|
||||
|
||||
EXEC_JOB_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \
|
||||
EXEC_JOB_OUTPUT=$(delegate_job_safe submit \
|
||||
--agent-session "tmux:$TARGET_AGENT" \
|
||||
--agent "$(resolve_agent_type "$TARGET_AGENT")" \
|
||||
--type "direct" \
|
||||
@@ -383,7 +395,7 @@ while [ "$loop_count" -le "$MAX_LOOP" ]; do
|
||||
|
||||
if [ "${#REVIEWERS[@]}" -eq 0 ]; then
|
||||
log_warn "No reviewers specified. Conducting Creator Self-Review..."
|
||||
SELF_REV_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \
|
||||
SELF_REV_OUTPUT=$(delegate_job_safe submit \
|
||||
--agent-session "tmux:$TARGET_AGENT" \
|
||||
--agent "$(resolve_agent_type "$TARGET_AGENT")" \
|
||||
--type "direct" \
|
||||
@@ -427,7 +439,7 @@ while [ "$loop_count" -le "$MAX_LOOP" ]; do
|
||||
CHANGES_DIFF=$(git diff 2>/dev/null || echo "No git diff available")
|
||||
fi
|
||||
|
||||
REV_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \
|
||||
REV_OUTPUT=$(delegate_job_safe submit \
|
||||
--agent-session "tmux:$rev" \
|
||||
--agent "$(resolve_agent_type "$rev")" \
|
||||
--type "direct" \
|
||||
@@ -498,7 +510,7 @@ while [ "$loop_count" -le "$MAX_LOOP" ]; do
|
||||
if [ "$PLAN_MODE" = true ] && [ "$COMPLEX_FIX" = true ]; then
|
||||
log_warn "Feedback involves complex code modifications. Diverting to Planner to revise plan..."
|
||||
|
||||
REFINE_PLAN_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \
|
||||
REFINE_PLAN_OUTPUT=$(delegate_job_safe submit \
|
||||
--agent-session "tmux:$PLANNER_SESSION" \
|
||||
--agent "$(resolve_agent_type "$PLANNER_SESSION")" \
|
||||
--type "direct" \
|
||||
@@ -527,7 +539,7 @@ while [ "$loop_count" -le "$MAX_LOOP" ]; do
|
||||
fi
|
||||
|
||||
# Creator execution corrective job
|
||||
CORRECT_JOB_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \
|
||||
CORRECT_JOB_OUTPUT=$(delegate_job_safe submit \
|
||||
--agent-session "tmux:$TARGET_AGENT" \
|
||||
--agent "$(resolve_agent_type "$TARGET_AGENT")" \
|
||||
--type "direct" \
|
||||
|
||||
Reference in New Issue
Block a user