diff --git a/README.md b/README.md index 4aae7916..3dec0d7b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,9 @@ A persistent operator USB with XFCE as the live-image baseline: - bootable USB image - stable XFCE desktop for the live operator environment - browser available immediately -- `pi` agent harness available immediately (bundled npm global) +- Colibri's agent harness staged with the control plane (under the colibri + umbrella — no separate feature flag) +- `pi` retained as a spawnable agent backend (bundled npm global) - Tailscale available immediately - Colibri control-plane daemon staged and enabled as the live-USB rc.d service (`service colibri_daemon`) @@ -50,7 +52,8 @@ Live operator USB SDDM/XFCE desktop └── colibri_daemon # lightweight control plane, enabled on USB ├── colibri CLI / colibri-tui - └── agent harness events (pi today; runtime adapters in Colibri) + └── agent harness # Colibri's bundled agent (staged with the + # daemon); pi available as a spawnable backend Deployed disk/server system service clawdie # target operator service name diff --git a/build.cfg b/build.cfg index 2d8dce70..6db6e062 100644 --- a/build.cfg +++ b/build.cfg @@ -104,20 +104,22 @@ COLIBRI_COST_MODE="${COLIBRI_COST_MODE:-smart}" # lightweight `colibri_daemon` control plane directly. Add deployed-system # service packaging only after that implementation is chosen. -# zot agent harness (the consolidation target — see colibri ADR -# docs/ADR-agent-harness-consolidation.md). zot is a single static Go binary -# (providers incl. DeepSeek, Telegram bot, json/rpc modes, SKILL.md, extensions). -# Opt-in (default NO) while Pi stays the default harness during migration. -# Pin a tag for reproducible images; zot has no FreeBSD release, so the build -# host compiles it: (cd $ZOT_REPO && git checkout $ZOT_VERSION && +# Colibri's bundled agent harness (the consolidation target — see colibri ADR +# docs/ADR-agent-harness-consolidation.md). Shipped under the colibri umbrella as +# a single static Go binary (providers incl. DeepSeek, Telegram bot, json/rpc +# modes, SKILL.md, extensions), so it has NO separate feature flag: it stages +# automatically whenever FEATURE_COLIBRI=YES. Internal escape hatch only — +# COLIBRI_STAGE_AGENT=NO stages the daemon without the agent (debug builds). +# Pin a tag for reproducible images; the agent has no FreeBSD release, so the +# build host compiles it: (cd $ZOT_REPO && git checkout $ZOT_VERSION && # GOOS=freebsd GOARCH=amd64 go build -trimpath -o bin/zot ./cmd/zot) -FEATURE_ZOT="${FEATURE_ZOT:-NO}" +COLIBRI_STAGE_AGENT="${COLIBRI_STAGE_AGENT:-YES}" ZOT_VERSION="${ZOT_VERSION:-v0.2.29}" ZOT_REPO="${ZOT_REPO:-/home/clawdie/ai/zot}" ZOT_ARTIFACT_DIR="${ZOT_ARTIFACT_DIR:-}" -# Optional: bake the operator's DeepSeek key into $ZOT_HOME/auth.json (0600). +# Optional: bake the operator's DeepSeek key into the agent's auth.json (0600). # Leave blank to stage an auth.json.sample template the operator fills in, or -# to configure at runtime via `zot` env / `zot telegram-bot setup`. +# to configure at runtime via agent env / `zot telegram-bot setup`. ZOT_DEEPSEEK_KEY="${ZOT_DEEPSEEK_KEY:-}" # Local LLM runtime (optional) diff --git a/build.sh b/build.sh index 5fa42664..214a324a 100755 --- a/build.sh +++ b/build.sh @@ -121,8 +121,7 @@ echo " Pkg : ${DEFAULT_PKG_BRANCH}" echo " GPU : ${GPU_DRIVER:-auto-detect}" echo " NVIDIA universal : ${NVIDIA_UNIVERSAL:-NO}" echo " Target : ${TARGET:-baremetal}" -echo " Colibri : ${FEATURE_COLIBRI:-NO}" -echo " zot agent : ${FEATURE_ZOT:-NO} (${ZOT_VERSION:-})" +echo " Colibri : ${FEATURE_COLIBRI:-NO} (agent ${ZOT_VERSION:-} / stage ${COLIBRI_STAGE_AGENT:-YES})" echo "" # Name the output for the thing we are actually building. @@ -354,16 +353,17 @@ resolve_zot_paths() { } preflight_zot_artifacts() { - [ "${FEATURE_ZOT:-NO}" = "YES" ] || return 0 + [ "${FEATURE_COLIBRI:-NO}" = "YES" ] || return 0 + [ "${COLIBRI_STAGE_AGENT:-YES}" = "YES" ] || return 0 [ "${FETCH_ONLY:-0}" -eq 0 ] || return 0 resolve_zot_paths if [ ! -x "${_resolved_zot_artifact_dir}/zot" ]; then - echo "ERROR: zot binary missing: ${_resolved_zot_artifact_dir}/zot" - echo " zot has no FreeBSD release — build it first:" + echo "ERROR: Colibri agent binary missing: ${_resolved_zot_artifact_dir}/zot" + echo " The agent has no FreeBSD release — build it first:" echo " (cd ${_resolved_zot_repo} && git checkout ${ZOT_VERSION:-v0.2.29} && \\" echo " GOOS=freebsd GOARCH=amd64 go build -trimpath -o bin/zot ./cmd/zot)" - echo " Or set FEATURE_ZOT=NO to skip zot staging." + echo " Or set COLIBRI_STAGE_AGENT=NO to skip agent staging." exit 1 fi } @@ -852,12 +852,16 @@ install_colibri_service() { } install_zot_agent() { - [ "${FEATURE_ZOT:-NO}" = "YES" ] || { - echo " zot agent staging disabled (FEATURE_ZOT=${FEATURE_ZOT:-NO})" + [ "${FEATURE_COLIBRI:-NO}" = "YES" ] || { + echo " Colibri agent staging disabled (FEATURE_COLIBRI=${FEATURE_COLIBRI:-NO})" + return 0 + } + [ "${COLIBRI_STAGE_AGENT:-YES}" = "YES" ] || { + echo " Colibri agent staging disabled (COLIBRI_STAGE_AGENT=${COLIBRI_STAGE_AGENT:-YES})" return 0 } - echo " Staging zot agent (${ZOT_VERSION:-})..." + echo " Staging Colibri agent (${ZOT_VERSION:-})..." resolve_zot_paths env \