- add finalize-task-routing skill with policy and test scripts - add execution target selection scripts and tests for orchestrate-agent-task-loop - add quota probe adapter and CLI status for node app - update plan, finalize-task-routing, and orchestration skill files - add agent-task archive for runtime target selector - update stream-evidence-gate-core milestone
137 lines
3.4 KiB
Bash
Executable file
137 lines
3.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
usage() {
|
|
printf '%s\n' \
|
|
'usage:' \
|
|
' finalize-task-policy.sh pair <build-base-lane> <true|false> <build-scope> <build-state> <build-blast> <build-evidence> <build-verification> <review-base-lane> <review-scope> <review-state> <review-blast> <review-evidence> <review-verification>' \
|
|
' finalize-task-policy.sh build <base-lane> <true|false> <scope> <state> <blast> <evidence> <verification>' \
|
|
' finalize-task-policy.sh review <base-lane> <scope> <state> <blast> <evidence> <verification>' >&2
|
|
exit 2
|
|
}
|
|
|
|
script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
|
|
formatter="$script_dir/finalize-task-route.sh"
|
|
|
|
field() {
|
|
local output=$1
|
|
local key=$2
|
|
local value
|
|
value=$(sed -n "s/^${key}=//p" <<<"$output")
|
|
if [[ -z "$value" ]]; then
|
|
printf 'missing formatter field: %s\n' "$key" >&2
|
|
exit 3
|
|
fi
|
|
printf '%s\n' "$value"
|
|
}
|
|
|
|
finalize_build() {
|
|
local base_lane=$1
|
|
local risk_triggered=$2
|
|
shift 2
|
|
local scores=("$@")
|
|
local base
|
|
local final
|
|
|
|
case "$risk_triggered" in
|
|
true|false)
|
|
;;
|
|
*)
|
|
usage
|
|
;;
|
|
esac
|
|
|
|
base=$("$formatter" build "$base_lane" "${scores[@]}")
|
|
BUILD_BASE_LANE=$(field "$base" lane)
|
|
BUILD_BASE_GRADE=$(field "$base" grade)
|
|
BUILD_RISK_TRIGGERED=$risk_triggered
|
|
|
|
if [[ "$risk_triggered" == true ]]; then
|
|
BUILD_FLOOR=G07
|
|
final=$("$formatter" build cloud "${scores[@]}" 7)
|
|
else
|
|
BUILD_FLOOR=none
|
|
final=$base
|
|
fi
|
|
|
|
BUILD_LANE=$(field "$final" lane)
|
|
BUILD_GRADE=$(field "$final" grade)
|
|
BUILD_FILENAME=$(field "$final" filename)
|
|
}
|
|
|
|
finalize_review() {
|
|
local base_lane=$1
|
|
local floor_number=$2
|
|
shift 2
|
|
local scores=("$@")
|
|
local base
|
|
local final
|
|
|
|
base=$("$formatter" review "$base_lane" "${scores[@]}")
|
|
REVIEW_BASE_LANE=$(field "$base" lane)
|
|
REVIEW_BASE_GRADE=$(field "$base" grade)
|
|
REVIEW_FLOOR=$(printf 'G%02d' "$floor_number")
|
|
final=$("$formatter" review cloud "${scores[@]}" "$floor_number")
|
|
REVIEW_LANE=$(field "$final" lane)
|
|
REVIEW_GRADE=$(field "$final" grade)
|
|
REVIEW_FILENAME=$(field "$final" filename)
|
|
}
|
|
|
|
emit_build() {
|
|
printf 'build_base_lane=%s\n' "$BUILD_BASE_LANE"
|
|
printf 'build_base_grade=%s\n' "$BUILD_BASE_GRADE"
|
|
printf 'build_risk_triggered=%s\n' "$BUILD_RISK_TRIGGERED"
|
|
printf 'build_floor=%s\n' "$BUILD_FLOOR"
|
|
printf 'build_lane=%s\n' "$BUILD_LANE"
|
|
printf 'build_grade=%s\n' "$BUILD_GRADE"
|
|
printf 'build_filename=%s\n' "$BUILD_FILENAME"
|
|
}
|
|
|
|
emit_review() {
|
|
printf 'review_base_lane=%s\n' "$REVIEW_BASE_LANE"
|
|
printf 'review_base_grade=%s\n' "$REVIEW_BASE_GRADE"
|
|
printf 'review_floor=%s\n' "$REVIEW_FLOOR"
|
|
printf 'review_lane=%s\n' "$REVIEW_LANE"
|
|
printf 'review_grade=%s\n' "$REVIEW_GRADE"
|
|
printf 'review_filename=%s\n' "$REVIEW_FILENAME"
|
|
}
|
|
|
|
mode=${1:-}
|
|
case "$mode" in
|
|
pair)
|
|
[[ $# -eq 14 ]] || usage
|
|
finalize_build "$2" "$3" "${@:4:5}"
|
|
if [[ "$BUILD_GRADE" == G09 || "$BUILD_GRADE" == G10 ]]; then
|
|
review_floor=10
|
|
else
|
|
review_floor=9
|
|
fi
|
|
finalize_review "$9" "$review_floor" "${@:10:5}"
|
|
;;
|
|
build)
|
|
[[ $# -eq 8 ]] || usage
|
|
finalize_build "$2" "$3" "${@:4:5}"
|
|
;;
|
|
review)
|
|
[[ $# -eq 7 ]] || usage
|
|
finalize_review "$2" 9 "${@:3:5}"
|
|
;;
|
|
*)
|
|
usage
|
|
;;
|
|
esac
|
|
|
|
printf 'finalizer=finalize-task-policy.sh\n'
|
|
printf 'finalizer_mode=%s\n' "$mode"
|
|
case "$mode" in
|
|
pair)
|
|
emit_build
|
|
emit_review
|
|
;;
|
|
build)
|
|
emit_build
|
|
;;
|
|
review)
|
|
emit_review
|
|
;;
|
|
esac
|