commit - 828fc2369b17f03c7a88cf7e1f1eee69d78c25bc
commit + 106c5083532b2fc0f296bc56f030182f6c432b06
blob - 7ada3ceee0541285cef542f403038948053e4a73
blob + 4bc930ba52df1fb0ba2344d12e8c22ff6f74e198
--- flake.lock
+++ flake.lock
]
},
"locked": {
- "lastModified": 1789071706,
- "narHash": "sha256-S+oyh2YSP9V5bSjWbbK0N7GxdxxMwgBfUOtUdVcAWc4=",
+ "lastModified": 1789178892,
+ "narHash": "sha256-9IcxPm9wfRIQqnVbChGNRF6PzfTRLp7iqTzKszCv5zU=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "150f9ce4ddd41544ea42eb9d6043a75bd615fa24",
+ "rev": "cd0e747f6af26cf4a699ce4b6dc1910dbe8af9a7",
"type": "github"
},
"original": {
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1789012029,
- "narHash": "sha256-1CBkBf+Nhggykzlx0jvXrj5rk20btl+tK8Fa8Ml/BL4=",
+ "lastModified": 1789073787,
+ "narHash": "sha256-xfX/toC2QV707s06GbP4II/TxYF0fNQj7s5/LClNDKc=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "d5dfd8e6716dde34398bc14bc87c10dece9c8c68",
+ "rev": "aff8a0b28396750446e5537a96461bc4facdb287",
"type": "github"
},
"original": {
blob - a8d738bfc72ac8d3db250fd819fffc5fe20099ea
blob + ab1bf1f0d7dcf533fc7cf5800ed134edf9fe6044
--- hosts/impish/default.nix
+++ hosts/impish/default.nix
redo-sh
knit
go-task
+ goreleaser
];
debug = [
blob - 13968e6f99a7780ab5d08660fc5ad1a2dcbfed7b
blob + 7718eb6c66b9bf05a762af0cf4bf8a629d4eaabd
--- modules/mixins/dotfiles/config/zsh/rc/llm
+++ modules/mixins/dotfiles/config/zsh/rc/llm
-#!/bin/bash
+#!/usr/bin/env bash
-pi_recent_models() {
- local n=${1:-10}
- local session_dir="${HOME}/.pi/agent/sessions"
- local files
- if [ -n "${2:-}" ]; then
- local enc
- enc=$(echo "/$2" | sed 's|[./]|-|g')
- files=$(find "$session_dir/$enc"* -name '*.jsonl' 2>/dev/null)
- else
- files=$(find "$session_dir" -name '*.jsonl' 2>/dev/null)
- fi
- [ -n "$files" ] || return 1
- # shellcheck disable=SC2086
- jaq -cr 'select(.type=="model_change") | "\(.timestamp)\t\(.provider) \(.modelId)"' $files |
- sort -r |
- cut -f2- |
- awk '!seen[$0]++' |
- head -n "$n"
-}
-
paj() {
- local isolate args model provider recent
- args=("$@")
- isolate="pisol"
-
- case "${args[0]}" in
- --reuse | --continue)
+ local isolate candidates model provider rest fzf_status prov mid _
+ isolate=pisol
+ case "${1:-}" in
+ y | yikes)
isolate=
shift
;;
esac
- # Use fzf picker for 10 models unless --reuse or --continue
- if [ -z "${isolate}" ]; then
- recent=$(pi_recent_models 10 2>/dev/null) || recent=""
+ candidates=
+ {
+ read -r _
+ while read -r prov mid _; do
+ [[ -n "${prov:-}" && -n "${mid:-}" ]] || continue
+ candidates+="$prov $mid"$'\n'
+ done
+ } < <(pi --list-models 2>/dev/null)
+ candidates=${candidates%$'\n'}
+
+ model=$(printf '%s\n' "$candidates" | fzf)
+ fzf_status=$?
+ if [[ "$fzf_status" -eq 130 ]]; then
+ return "$fzf_status"
+ elif [[ "$fzf_status" -ne 0 ]]; then
+ model=
fi
- candidates=$(pi --list-models 2>/dev/null | awk 'NR > 1 {print $1 " "$2}') || candidates=""
+ if [[ -n "$model" ]]; then
+ case "$model" in
+ *' '*)
+ provider=${model%% *}
+ rest=${model#* }
+ set -- --provider "$provider" --model "$rest" "$@"
+ ;;
+ esac
+ fi
- if [ -n "$recent" ] && [ -n "$candidates" ]; then
- # Show recent + non-recent
- model=$(printf '%s\n' "$recent" | grep -xFf <(printf '%s' "$candidates") || true)
- model=$(printf '%s%s' "$model" "\\n$(printf '%s' "$candidates" | grep -Fxvf <(printf '%s' "$recent"))" | fzf) || true
+ if [[ -n "$isolate" ]]; then
+ "$isolate" pi "$@"
else
- model=$(printf '%s' "$candidates" | fzf) || model="default"
+ pi "$@"
fi
-
- [ -z "$model" ] && model="default"
- provider=${model%% *}
- rest=${model#* }
-
- [ "$rest" = "$model" ] && rest="$model"
-
- $isolate pi --provider "$provider" --model "$rest" "${args[@]}"
}
-alias pajre='paj --reuse'
-alias pajco='paj --continue'
+alias pajlo='paj yikes'
+alias alpaq='alpaca quota'
+alias alpac='alpaca compose'