flake-update-20260505
1#!/usr/bin/env bash
2# Ensure pi agent settings.json has required values without overwriting user preferences
3# This script merges required settings into ~/.pi/agent/settings.json
4
5set -euo pipefail
6
7RUNTIME_SETTINGS="$HOME/.pi/agent/settings.json"
8TEMPLATE_SETTINGS="$(dirname "$0")/settings.json"
9
10# Required settings that should always be present
11REQUIRED_SETTINGS='{
12 "hideThinkingBlock": true,
13 "quietStartup": true,
14 "treeFilterMode": "no-tools",
15 "skills": ["~/.config/claude/skills"],
16 "subagentProviderPreference": [
17 "anthropic-vertex",
18 "google",
19 "llama-cpp"
20 ],
21 "packages": [
22 "npm:@aliou/pi-processes@0.4.4",
23 "npm:@twogiants/pi-anthropic-vertex"
24 ]
25}'
26
27# Create runtime settings directory if it doesn't exist
28mkdir -p "$(dirname "$RUNTIME_SETTINGS")"
29
30# If runtime settings doesn't exist, copy from template
31if [ ! -f "$RUNTIME_SETTINGS" ]; then
32 echo "⚙️ Creating $RUNTIME_SETTINGS from template..."
33 cp "$TEMPLATE_SETTINGS" "$RUNTIME_SETTINGS"
34 exit 0
35fi
36
37# Use jq to merge required settings into existing settings
38# This preserves user settings while ensuring required ones are present
39if command -v jq >/dev/null 2>&1; then
40 echo "⚙️ Ensuring required pi agent settings..."
41
42 TEMP_FILE=$(mktemp)
43 jq -s '.[0] * .[1]' "$RUNTIME_SETTINGS" <(echo "$REQUIRED_SETTINGS") >"$TEMP_FILE"
44 mv "$TEMP_FILE" "$RUNTIME_SETTINGS"
45
46 echo "✅ Pi agent settings updated:"
47 echo " - hideThinkingBlock: true"
48 echo " - quietStartup: true"
49 echo " - treeFilterMode: no-tools"
50 echo " - skills: ~/.config/claude/skills"
51 echo " - subagentProviderPreference: google-vertex-claude, google, llama-cpp"
52 echo " - packages: @aliou/pi-processes"
53else
54 echo "⚠️ jq not found - cannot merge settings automatically"
55 echo " Please ensure these settings are in $RUNTIME_SETTINGS:"
56 echo " - hideThinkingBlock: true"
57 echo " - quietStartup: true"
58 echo " - treeFilterMode: no-tools"
59 echo " - skills: [\"~/.config/claude/skills\"]"
60 echo " - subagentProviderPreference: [\"google-vertex-claude\", \"vertex\", ...]"
61 exit 1
62fi