Catch up field brief, catalog Kimi K3, and wire live daily recurrence.
Add 2026-08-03 week catch-up brief with Kimi K3 as S1 strategic (collection deferred on ~1454 GiB vs 850 GiB soft quota), document recurrence ops, and add a workstation due-notice consumer cron helper. Production schedule was applied to railiance ConfigMap and Temporal (weekdays 07:30 Europe/Berlin).
This commit is contained in:
parent
441de11a3e
commit
70cbfe0c6c
10 changed files with 389 additions and 38 deletions
74
scripts/consume-fi-brief-spawn.sh
Executable file
74
scripts/consume-fi-brief-spawn.sh
Executable file
|
|
@ -0,0 +1,74 @@
|
|||
#!/usr/bin/env bash
|
||||
# Workstation consumer for FI daily research brief spawns.
|
||||
#
|
||||
# activity-core emits activity_task_spawn (state-hub sink) with
|
||||
# target_repo=freedom-intelligence. This script:
|
||||
# 1) checks fi_brief_status due (or open spawn)
|
||||
# 2) reminds operator / runs playbook path
|
||||
# 3) does NOT invent brief content — open a session with the playbook
|
||||
#
|
||||
# Schedule suggestion (Europe/Berlin, after 07:30 spawn):
|
||||
# 40 7 * * 1-5 /home/worsch/freedom-intelligence/scripts/consume-fi-brief-spawn.sh
|
||||
#
|
||||
# Env:
|
||||
# STATE_HUB_URL default http://127.0.0.1:8000
|
||||
# FI_REPO default /home/worsch/freedom-intelligence
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
STATE_HUB_URL="${STATE_HUB_URL:-http://127.0.0.1:8000}"
|
||||
FI_REPO="${FI_REPO:-/home/worsch/freedom-intelligence}"
|
||||
LOG_DIR="${FI_REPO}/.local/consumer-logs"
|
||||
mkdir -p "$LOG_DIR"
|
||||
log="$LOG_DIR/$(date +%Y-%m-%d).log"
|
||||
|
||||
{
|
||||
echo "=== $(date -Is) consume-fi-brief-spawn ==="
|
||||
# Prefer activity-core resolver if available; else raw progress heuristic
|
||||
due_json=""
|
||||
if command -v uv >/dev/null 2>&1 && [[ -d /home/worsch/activity-core ]]; then
|
||||
due_json="$(
|
||||
cd /home/worsch/activity-core &&
|
||||
STATE_HUB_URL="$STATE_HUB_URL" uv run python -c "
|
||||
from activity_core.context_resolvers.state_hub import _fi_brief_status
|
||||
import json
|
||||
print(json.dumps(_fi_brief_status({'repo': 'freedom-intelligence'}), default=str))
|
||||
" 2>/dev/null || true
|
||||
)"
|
||||
fi
|
||||
|
||||
if [[ -z "$due_json" ]]; then
|
||||
echo "WARN: could not query fi_brief_status; check STATE_HUB_URL=$STATE_HUB_URL"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "status: $due_json"
|
||||
due="$(python3 -c "import json,sys; d=json.loads(sys.argv[1]); print(d['items'][0]['due'])" "$due_json")"
|
||||
date_s="$(python3 -c "import json,sys; d=json.loads(sys.argv[1]); print(d['items'][0]['date'])" "$due_json")"
|
||||
|
||||
if [[ "$due" != "True" && "$due" != "true" ]]; then
|
||||
echo "not due for $date_s — exit"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
y="${date_s:0:4}"
|
||||
m="${date_s:5:2}"
|
||||
brief_path="$FI_REPO/briefs/$y/$m/$date_s.md"
|
||||
echo "DUE: produce brief at $brief_path"
|
||||
echo "Playbook: $FI_REPO/docs/daily-brief-playbook.md"
|
||||
echo "On completion POST event_type=fi_daily_brief detail.repo=freedom-intelligence detail.date=$date_s"
|
||||
|
||||
# Non-interactive marker for operators / agents
|
||||
notice="$LOG_DIR/DUE-$date_s.txt"
|
||||
cat >"$notice" <<EOF
|
||||
FI daily research brief is DUE for $date_s.
|
||||
|
||||
1. cd $FI_REPO
|
||||
2. Follow docs/daily-brief-playbook.md
|
||||
3. Write $brief_path
|
||||
4. Post State Hub progress event fi_daily_brief
|
||||
|
||||
Spawn consumer ran at $(date -Is).
|
||||
EOF
|
||||
echo "wrote $notice"
|
||||
} | tee -a "$log"
|
||||
Loading…
Add table
Add a link
Reference in a new issue