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