Constant ZSH_SCRIPT
Source const ZSH_SCRIPT: &str = "# AgentMux shell integration for zsh\n# Deployed to: ~/.agentmux/shell/zsh/.zshrc\n# Loaded via: ZDOTDIR=~/.agentmux/shell/zsh (zsh picks up .zshrc automatically)\n\n# wsh has been retired \u{2014} AGENTMUX is now a plain \"1\" sentinel.\n# See specs/SPEC_RETIRE_WSH_2026_04_12.md.\n\n# Source login profile (Homebrew shellenv and other login-shell setup live here)\nif [ -f ~/.zprofile ]; then\n source ~/.zprofile\nfi\n\n# Source the user\'s real ~/.zshrc (since ZDOTDIR overrides it)\nif [ -f ~/.zshrc ]; then\n source ~/.zshrc\nfi\n\n# \u{2500}\u{2500}\u{2500} Shell Integration \u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\n\n_agentmux_si_blocked() {\n [[ -n \"$TMUX\" || -n \"$STY\" || \"$TERM\" == tmux* || \"$TERM\" == screen* ]]\n}\n\n_agentmux_si_urlencode() {\n if (( $+functions[omz_urlencode] )); then\n omz_urlencode \"$1\"\n else\n local s=\"$1\"\n s=${s//%/%25}\n s=${s// /%20}\n s=${s//#/%23}\n s=${s//\\?/%3F}\n s=${s//&/%26}\n s=${s//;/%3B}\n s=${s//+/%2B}\n printf \'%s\' \"$s\"\n fi\n}\n\n_agentmux_si_osc7() {\n _agentmux_si_blocked && return\n local encoded_pwd\n encoded_pwd=$(_agentmux_si_urlencode \"$PWD\")\n printf \'\\033]7;file://%s%s\\007\' \"$HOST\" \"$encoded_pwd\"\n}\n\n_agentmux_si_json_escape() {\n local s=\"$1\"\n s=\"${s//\\\\/\\\\\\\\}\"\n s=\"${s//\\\"/\\\\\\\"}\"\n printf \'%s\' \"$s\"\n}\n\ntypeset -g _AGENTMUX_SI_LAST_AGENT=\"\"\n\n# Send AGENTMUX_AGENT_ID via OSC 16162;E on every prompt (only when changed)\n_agentmux_si_agent_env() {\n _agentmux_si_blocked && return\n local current_agent=\"\"\n if [[ -n \"$AGENTMUX_AGENT_ID\" ]]; then\n current_agent=\"AGENTMUX_AGENT_ID:$AGENTMUX_AGENT_ID:COLOR:$AGENTMUX_AGENT_COLOR\"\n fi\n if [[ \"$current_agent\" != \"$_AGENTMUX_SI_LAST_AGENT\" ]]; then\n _AGENTMUX_SI_LAST_AGENT=\"$current_agent\"\n if [[ -n \"$AGENTMUX_AGENT_ID\" ]]; then\n local escaped\n escaped=$(_agentmux_si_json_escape \"$AGENTMUX_AGENT_ID\")\n local payload=\"{\\\"AGENTMUX_AGENT_ID\\\":\\\"$escaped\\\"\"\n if [[ -n \"$AGENTMUX_AGENT_COLOR\" ]]; then\n local color_escaped\n color_escaped=$(_agentmux_si_json_escape \"$AGENTMUX_AGENT_COLOR\")\n payload=\"$payload,\\\"AGENTMUX_AGENT_COLOR\\\":\\\"$color_escaped\\\"\"\n fi\n payload=\"$payload}\"\n printf \'\\033]16162;E;%s\\007\' \"$payload\"\n else\n printf \'\\033]16162;E;{}\\007\'\n fi\n fi\n}\n\n_agentmux_si_precmd() {\n _agentmux_si_blocked && return\n _agentmux_si_osc7\n _agentmux_si_agent_env\n}\n\n# \u{2500}\u{2500}\u{2500} muxlog \u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\u{2500}\n# Discover, render & follow AgentMux logs across every running instance.\n# Delegates to the shared Node core (muxlog.mjs). `muxlog help` for full usage,\n# `muxlog ls` to list every instance\'s logs.\n_AGENTMUX_MUXLOG_JS=\"${${(%):-%x}:A:h}/../muxlog.mjs\"\nmuxlog() {\n if command -v node >/dev/null 2>&1 && [ -f \"$_AGENTMUX_MUXLOG_JS\" ]; then\n node \"$_AGENTMUX_MUXLOG_JS\" \"$@\"\n return\n fi\n # Fallback (no node / core missing): legacy pointer-based tail.\n local target=\"${1:-host}\" action=\"${2:-tail}\"\n [ -z \"$AGENTMUX_LOG_DIR\" ] && { echo \"AGENTMUX_LOG_DIR not set \u{2014} run inside an AgentMux terminal\" >&2; return 1; }\n local ptr=\"$AGENTMUX_LOG_DIR/current-${target}-v${AGENTMUX_VERSION}.path\"\n [ -f \"$ptr\" ] || { echo \"muxlog: Node core unavailable and no pointer for \'$target\'\" >&2; return 1; }\n local pc logfile; pc=\"$(cat \"$ptr\")\"\n case \"$pc\" in /* | ?:[/\\\\]*) logfile=\"$pc\" ;; *) logfile=\"$AGENTMUX_LOG_DIR/$pc\" ;; esac\n case \"$action\" in tail) tail -f \"$logfile\" ;; cat) cat \"$logfile\" ;; *) grep \"$action\" \"$logfile\" ;; esac\n}\n\nautoload -U add-zsh-hook\nadd-zsh-hook precmd _agentmux_si_precmd\nadd-zsh-hook chpwd _agentmux_si_osc7\n";