refactor: package-own long task watchdog entrypoint
This commit is contained in:
@@ -4,15 +4,28 @@ set -euo pipefail
|
||||
ROOT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
CRON_FILE="$ROOT_DIR/state/cron/long-task-watchdog.cron"
|
||||
LOG_DIR="$ROOT_DIR/state/long-task-watchdog"
|
||||
RUNNER="$ROOT_DIR/scripts/long_task_watchdog.mjs"
|
||||
ORCHESTRATOR="$ROOT_DIR/plugins/reporting-governance/scripts/watchdog_auto_notify_orchestrator.mjs"
|
||||
STATE_FILE="$ROOT_DIR/memory/watchdog-state.json"
|
||||
WATCHDOG_EVIDENCE_DIR="$ROOT_DIR/state/long-task-watchdog"
|
||||
WATCHDOG_EVENT_DIR="$ROOT_DIR/state/long-task-watchdog-events"
|
||||
WATCHDOG_QUEUE_DIR="$ROOT_DIR/state/operator-notify-queue"
|
||||
WATCHDOG_SPOOL_DIR="$ROOT_DIR/state/operator-notify-dispatch-spool"
|
||||
WATCHDOG_RECEIPT_DIR="$ROOT_DIR/state/operator-notify-bridge-receipts"
|
||||
PACKAGE_WATCHDOG_SCRIPT="$ROOT_DIR/plugins/reporting-governance/scripts/long_task_watchdog.mjs"
|
||||
PACKAGE_DISPATCHER_SCRIPT="$ROOT_DIR/plugins/reporting-governance/scripts/operator_notify_dispatcher.mjs"
|
||||
PACKAGE_SUPERVISOR_SCRIPT="$ROOT_DIR/plugins/reporting-governance/scripts/operator_notify_bridge_supervisor.mjs"
|
||||
PACKAGE_SENDER_BINDING_SCRIPT="$ROOT_DIR/plugins/reporting-governance/scripts/operator_notify_sender_binding.mjs"
|
||||
|
||||
mkdir -p "$(dirname "$CRON_FILE")" "$LOG_DIR"
|
||||
|
||||
cat >"$CRON_FILE" <<EOF
|
||||
*/10 * * * * cd "$ROOT_DIR" && /usr/bin/env node "$RUNNER" --write-state --state "$STATE_FILE" --evidence-dir "$LOG_DIR" >> "$LOG_DIR/cron.log" 2>&1
|
||||
*/10 * * * * cd "$ROOT_DIR" && /usr/bin/env node "$ORCHESTRATOR" --write-state --state "$STATE_FILE" --evidence-dir "$WATCHDOG_EVIDENCE_DIR" --event-dir "$WATCHDOG_EVENT_DIR" --queue-dir "$WATCHDOG_QUEUE_DIR" --spool-dir "$WATCHDOG_SPOOL_DIR" --receipt-dir "$WATCHDOG_RECEIPT_DIR" --watchdog-script "$PACKAGE_WATCHDOG_SCRIPT" --dispatcher-script "$PACKAGE_DISPATCHER_SCRIPT" --supervisor-script "$PACKAGE_SUPERVISOR_SCRIPT" --sender-command "/usr/bin/env node \"$PACKAGE_SENDER_BINDING_SCRIPT\" --queue-item \"__QUEUE_ITEM_PATH__\"" --dry-run >> "$LOG_DIR/cron.log" 2>&1
|
||||
EOF
|
||||
|
||||
printf 'Wrote cron snippet: %s\n' "$CRON_FILE"
|
||||
printf 'Default mode is dry-run orchestration: runner -> dispatcher -> bridge, without pretending message.send was delivered.\n'
|
||||
printf 'To install for current user, run:\n'
|
||||
printf ' (crontab -l 2>/dev/null; cat "%s") | crontab -\n' "$CRON_FILE"
|
||||
printf '\nTo enable real delivery after you have a trusted sender binding, replace --dry-run with either:\n'
|
||||
printf ' --sender-mode openclaw-cli\n'
|
||||
printf 'or an explicit --sender-command <shell>.\n'
|
||||
|
||||
Reference in New Issue
Block a user