diff --git a/packages/extension/agents/.deploy-receipt.json b/packages/extension/agents/.deploy-receipt.json index 2862758a..1c5d97d9 100644 --- a/packages/extension/agents/.deploy-receipt.json +++ b/packages/extension/agents/.deploy-receipt.json @@ -1,17 +1,42 @@ { "receipt_version": 1, - "deployed_at": "2026-08-23T12:56:11.089Z", + "deployed_at": "2026-09-12T14:20:11.336Z", "dry_run": false, "sources": [ { - "card": "autodev.md", - "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/autodev.md", - "sha256": "sha256:5094b3938f845b769898ae452c8a55f743eb9dfa4e1c2ee6993837efd58110cb" + "card": "analyzer.md", + "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/analyzer.md", + "sha256": "sha256:13314049129ad4f9dbcadd961b0cbfc05fba01e3800380aad500b530411139ce" }, { - "card": "autoresearch.md", - "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/autoresearch.md", - "sha256": "sha256:c3238c7b395fe6b9ab9d065c2c5fab18017e4b1e83c64ce1cfc99f2546b1f828" + "card": "develop.md", + "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/develop.md", + "sha256": "sha256:adefb7d5d630e614989ba4ea5affa141edd52ff5bf3d9073e8e9d66bc1aa8b50" + }, + { + "card": "experimenter.md", + "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/experimenter.md", + "sha256": "sha256:1bed34b410c31e00489360b1ed750b1edb27668b49bcce8ff8c61198b7321abf" + }, + { + "card": "hypothesizer.md", + "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/hypothesizer.md", + "sha256": "sha256:f6864945d5f1b737a9503aa5466f3026ecc39fc7901883a7d85c03857f0bb2b8" + }, + { + "card": "implementer.md", + "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/implementer.md", + "sha256": "sha256:4c27b6ff55b13f6680293a59160479cfc29dea256fd4ef8b29ce22508e4478ac" + }, + { + "card": "librarian.md", + "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/librarian.md", + "sha256": "sha256:f1fd27021e088e02d2eb0a05f6909a963dfaa9243a65f55e3fd5ef6250bab48a" + }, + { + "card": "research.md", + "path": "/Users/aaron/armonia/repos/amicode/packages/extension/agents/research.md", + "sha256": "sha256:ae870c2fab0c35239c8506d85a82b84d03c0fd1cd1b702485327b4f2442cc45c" } ], "destinations": [ @@ -28,4 +53,4 @@ "verified": true } ] -} +} \ No newline at end of file diff --git a/packages/extension/tools/fleet/install.sh b/packages/extension/tools/fleet/install.sh index 3a845f32..34fb88eb 100755 --- a/packages/extension/tools/fleet/install.sh +++ b/packages/extension/tools/fleet/install.sh @@ -22,10 +22,12 @@ say() { echo "[fleet] $*"; } # --- read fleet config --- ROLE="standalone" FLEET_PORT=4096 +SSH_ALIAS="" if [[ -f "$FLEET_CONFIG" ]]; then ROLE="$(grep -o '"role"[[:space:]]*:[[:space:]]*"[^"]*"' "$FLEET_CONFIG" 2>/dev/null | head -1 | sed 's/.*"role"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/' || echo standalone)" PORT_PARSED="$(grep -o '"port"[[:space:]]*:[[:space:]]*[0-9]*' "$FLEET_CONFIG" 2>/dev/null | head -1 | sed 's/.*:[[:space:]]*//' || echo 4096)" if [[ -n "$PORT_PARSED" ]]; then FLEET_PORT="$PORT_PARSED"; fi + SSH_ALIAS="$(grep -o '"sshAlias"[[:space:]]*:[[:space:]]*"[^"]*"' "$FLEET_CONFIG" 2>/dev/null | head -1 | sed 's/.*"sshAlias"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/' || true)" fi # Standalone: nothing to install — the guard/tunnel are irrelevant. @@ -107,18 +109,23 @@ if [[ "$(uname -s)" == "Darwin" ]]; then else if [[ $CHECK -eq 1 ]]; then if [[ ! -f "$PLIST_DST" ]]; then echo "[fleet] FAIL tunnel plist missing at $PLIST_DST"; exit 1; fi + if grep -q "FLEET_SSH_ALIAS" "$PLIST_DST"; then echo "[fleet] FAIL tunnel plist still carries the FLEET_SSH_ALIAS placeholder (alias was never substituted — ssh loops on an unresolvable hostname)"; exit 1; fi if ! grep -q "ServerAliveInterval=15" "$PLIST_DST"; then echo "[fleet] FAIL tunnel ServerAliveInterval 15 missing"; exit 1; fi if ! grep -q "ServerAliveCountMax=2" "$PLIST_DST"; then echo "[fleet] FAIL tunnel ServerAliveCountMax 2 missing"; exit 1; fi if ! grep -q "TCPKeepAlive=yes" "$PLIST_DST"; then echo "[fleet] FAIL tunnel TCPKeepAlive yes missing"; exit 1; fi if ! grep -q "127.0.0.1:${FLEET_PORT}:127.0.0.1:${FLEET_PORT}" "$PLIST_DST"; then echo "[fleet] FAIL tunnel LocalForward ${FLEET_PORT} missing"; exit 1; fi - say "ok tunnel $PLIST_DST (15/2 + TCPKeepAlive, port $FLEET_PORT)" + if [[ -n "$SSH_ALIAS" ]] && ! grep -q "${SSH_ALIAS}" "$PLIST_DST"; then echo "[fleet] FAIL tunnel alias is not ${SSH_ALIAS}"; exit 1; fi + say "ok tunnel $PLIST_DST (15/2 + TCPKeepAlive, port $FLEET_PORT, alias ${SSH_ALIAS:-unspecified})" else + if [[ -z "$SSH_ALIAS" ]]; then + die "no sshAlias in $FLEET_CONFIG — refusing to install a tunnel that cannot resolve its host (add canonical.sshAlias)" + fi mkdir -p "$(dirname "$PLIST_DST")" - cp "$PLIST_SRC" "$PLIST_DST" + sed -e "s/FLEET_SSH_ALIAS/${SSH_ALIAS}/g" -e "s/127\.0\.0\.1:4096:127\.0\.0\.1:4096/127.0.0.1:${FLEET_PORT}:127.0.0.1:${FLEET_PORT}/g" "$PLIST_SRC" > "$PLIST_DST" # reload launchctl unload "$PLIST_DST" 2>/dev/null || true launchctl load "$PLIST_DST" 2>/dev/null || launchctl bootstrap "gui/$(id -u)" "$PLIST_DST" 2>/dev/null || true - say "installed tunnel $PLIST_DST and (re)loaded" + say "installed tunnel $PLIST_DST and (re)loaded (alias ${SSH_ALIAS}, port ${FLEET_PORT})" fi fi fi diff --git a/tools/fleet/install.sh b/tools/fleet/install.sh index 3a845f32..34fb88eb 100755 --- a/tools/fleet/install.sh +++ b/tools/fleet/install.sh @@ -22,10 +22,12 @@ say() { echo "[fleet] $*"; } # --- read fleet config --- ROLE="standalone" FLEET_PORT=4096 +SSH_ALIAS="" if [[ -f "$FLEET_CONFIG" ]]; then ROLE="$(grep -o '"role"[[:space:]]*:[[:space:]]*"[^"]*"' "$FLEET_CONFIG" 2>/dev/null | head -1 | sed 's/.*"role"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/' || echo standalone)" PORT_PARSED="$(grep -o '"port"[[:space:]]*:[[:space:]]*[0-9]*' "$FLEET_CONFIG" 2>/dev/null | head -1 | sed 's/.*:[[:space:]]*//' || echo 4096)" if [[ -n "$PORT_PARSED" ]]; then FLEET_PORT="$PORT_PARSED"; fi + SSH_ALIAS="$(grep -o '"sshAlias"[[:space:]]*:[[:space:]]*"[^"]*"' "$FLEET_CONFIG" 2>/dev/null | head -1 | sed 's/.*"sshAlias"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/' || true)" fi # Standalone: nothing to install — the guard/tunnel are irrelevant. @@ -107,18 +109,23 @@ if [[ "$(uname -s)" == "Darwin" ]]; then else if [[ $CHECK -eq 1 ]]; then if [[ ! -f "$PLIST_DST" ]]; then echo "[fleet] FAIL tunnel plist missing at $PLIST_DST"; exit 1; fi + if grep -q "FLEET_SSH_ALIAS" "$PLIST_DST"; then echo "[fleet] FAIL tunnel plist still carries the FLEET_SSH_ALIAS placeholder (alias was never substituted — ssh loops on an unresolvable hostname)"; exit 1; fi if ! grep -q "ServerAliveInterval=15" "$PLIST_DST"; then echo "[fleet] FAIL tunnel ServerAliveInterval 15 missing"; exit 1; fi if ! grep -q "ServerAliveCountMax=2" "$PLIST_DST"; then echo "[fleet] FAIL tunnel ServerAliveCountMax 2 missing"; exit 1; fi if ! grep -q "TCPKeepAlive=yes" "$PLIST_DST"; then echo "[fleet] FAIL tunnel TCPKeepAlive yes missing"; exit 1; fi if ! grep -q "127.0.0.1:${FLEET_PORT}:127.0.0.1:${FLEET_PORT}" "$PLIST_DST"; then echo "[fleet] FAIL tunnel LocalForward ${FLEET_PORT} missing"; exit 1; fi - say "ok tunnel $PLIST_DST (15/2 + TCPKeepAlive, port $FLEET_PORT)" + if [[ -n "$SSH_ALIAS" ]] && ! grep -q "${SSH_ALIAS}" "$PLIST_DST"; then echo "[fleet] FAIL tunnel alias is not ${SSH_ALIAS}"; exit 1; fi + say "ok tunnel $PLIST_DST (15/2 + TCPKeepAlive, port $FLEET_PORT, alias ${SSH_ALIAS:-unspecified})" else + if [[ -z "$SSH_ALIAS" ]]; then + die "no sshAlias in $FLEET_CONFIG — refusing to install a tunnel that cannot resolve its host (add canonical.sshAlias)" + fi mkdir -p "$(dirname "$PLIST_DST")" - cp "$PLIST_SRC" "$PLIST_DST" + sed -e "s/FLEET_SSH_ALIAS/${SSH_ALIAS}/g" -e "s/127\.0\.0\.1:4096:127\.0\.0\.1:4096/127.0.0.1:${FLEET_PORT}:127.0.0.1:${FLEET_PORT}/g" "$PLIST_SRC" > "$PLIST_DST" # reload launchctl unload "$PLIST_DST" 2>/dev/null || true launchctl load "$PLIST_DST" 2>/dev/null || launchctl bootstrap "gui/$(id -u)" "$PLIST_DST" 2>/dev/null || true - say "installed tunnel $PLIST_DST and (re)loaded" + say "installed tunnel $PLIST_DST and (re)loaded (alias ${SSH_ALIAS}, port ${FLEET_PORT})" fi fi fi