FISH_SCRIPT

Constant FISH_SCRIPT 

Source
const FISH_SCRIPT: &str = "# AgentMux shell integration for fish\n# Deployed to: ~/.agentmux/shell/fish/wave.fish\n# Loaded via: fish -C \"source <this-file>\"\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# \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\nfunction _agentmux_si_blocked\n    test -n \"$TMUX\"; or test -n \"$STY\"\nend\n\nfunction _agentmux_si_osc7\n    _agentmux_si_blocked; and return\n    set -l encoded (string escape --style url -- $PWD)\n    printf \'\\033]7;file://%s%s\\007\' (hostname) \"$encoded\"\nend\n\nfunction _agentmux_si_json_escape\n    set -l s $argv[1]\n    set s (string replace -a \'\\\\\' \'\\\\\\\\\' -- $s)\n    set s (string replace -a \'\"\' \'\\\\\"\' -- $s)\n    printf \'%s\' $s\nend\n\nset -g _AGENTMUX_SI_LAST_AGENT \"\"\n\n# Send AGENTMUX_AGENT_ID via OSC 16162;E on every prompt (only when changed)\nfunction _agentmux_si_agent_env\n    _agentmux_si_blocked; and return\n    set -l current_agent \"\"\n    if set -q AGENTMUX_AGENT_ID; and test -n \"$AGENTMUX_AGENT_ID\"\n        set current_agent \"AGENTMUX_AGENT_ID:$AGENTMUX_AGENT_ID:COLOR:$AGENTMUX_AGENT_COLOR\"\n    end\n    if test \"$current_agent\" != \"$_AGENTMUX_SI_LAST_AGENT\"\n        set -g _AGENTMUX_SI_LAST_AGENT \"$current_agent\"\n        if set -q AGENTMUX_AGENT_ID; and test -n \"$AGENTMUX_AGENT_ID\"\n            set -l escaped (_agentmux_si_json_escape \"$AGENTMUX_AGENT_ID\")\n            set -l payload \"{\\\"AGENTMUX_AGENT_ID\\\":\\\"$escaped\\\"\"\n            if set -q AGENTMUX_AGENT_COLOR; and test -n \"$AGENTMUX_AGENT_COLOR\"\n                set -l color_escaped (_agentmux_si_json_escape \"$AGENTMUX_AGENT_COLOR\")\n                set payload \"$payload,\\\"AGENTMUX_AGENT_COLOR\\\":\\\"$color_escaped\\\"\"\n            end\n            set payload \"$payload}\"\n            printf \'\\033]16162;E;%s\\007\' \"$payload\"\n        else\n            printf \'\\033]16162;E;{}\\007\'\n        end\n    end\nend\n\n# \u{2500}\u{2500}\u{2500} muxlog helper \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}\nfunction muxlog\n    set -l target (test (count $argv) -ge 1; and echo $argv[1]; or echo \"host\")\n    set -l action (test (count $argv) -ge 2; and echo $argv[2]; or echo \"tail\")\n    if not set -q AGENTMUX_LOG_DIR\n        echo \"AGENTMUX_LOG_DIR not set \u{2014} run inside an AgentMux terminal\" >&2\n        return 1\n    end\n    set -l ptr \"$AGENTMUX_LOG_DIR/current-$target-v$AGENTMUX_VERSION.path\"\n    if not test -f \"$ptr\"\n        echo \"Unknown log target \'$target\'. Check $AGENTMUX_LOG_DIR for current-*.path files.\" >&2\n        return 1\n    end\n    set -l ptr_content (cat \"$ptr\")\n    # Pointer content may be a basename (legacy: resolve under\n    # AGENTMUX_LOG_DIR) or an absolute path (post-2026-05 host fix:\n    # global pointer writes the absolute path so discovery works\n    # from outside the instance dir).\n    set -l logfile\n    if string match -q \'/*\' \"$ptr_content\"; or string match -q \'?:[/\\\\]*\' \"$ptr_content\"\n        set logfile \"$ptr_content\"\n    else\n        set logfile \"$AGENTMUX_LOG_DIR/$ptr_content\"\n    end\n    switch $action\n        case tail\n            tail -f \"$logfile\"\n        case cat\n            cat \"$logfile\"\n        case \'*\'\n            grep \"$action\" \"$logfile\"\n    end\nend\n\nfunction _agentmux_si_prompt --on-event fish_prompt\n    _agentmux_si_osc7\n    _agentmux_si_agent_env\nend\n";