main
 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  "subagentProviderPreference": [
16    "anthropic-vertex",
17    "google",
18    "llama-cpp"
19  ],
20  "packages": [
21    "npm:@aliou/pi-processes@0.4.4",
22    "npm:@twogiants/pi-anthropic-vertex"
23  ]
24}'
25
26# Create runtime settings directory if it doesn't exist
27mkdir -p "$(dirname "$RUNTIME_SETTINGS")"
28
29# If runtime settings doesn't exist, copy from template
30if [ ! -f "$RUNTIME_SETTINGS" ]; then
31	echo "⚙️  Creating $RUNTIME_SETTINGS from template..."
32	cp "$TEMPLATE_SETTINGS" "$RUNTIME_SETTINGS"
33	exit 0
34fi
35
36# Use jq to merge required settings into existing settings
37# This preserves user settings while ensuring required ones are present
38if command -v jq >/dev/null 2>&1; then
39	echo "⚙️  Ensuring required pi agent settings..."
40
41	TEMP_FILE=$(mktemp)
42	jq -s '.[0] * .[1]' "$RUNTIME_SETTINGS" <(echo "$REQUIRED_SETTINGS") >"$TEMP_FILE"
43	mv "$TEMP_FILE" "$RUNTIME_SETTINGS"
44
45	echo "✅ Pi agent settings updated:"
46	echo "   - hideThinkingBlock: true"
47	echo "   - quietStartup: true"
48	echo "   - treeFilterMode: no-tools"
49
50	echo "   - subagentProviderPreference: google-vertex-claude, google, llama-cpp"
51	echo "   - packages: @aliou/pi-processes"
52else
53	echo "⚠️  jq not found - cannot merge settings automatically"
54	echo "   Please ensure these settings are in $RUNTIME_SETTINGS:"
55	echo "   - hideThinkingBlock: true"
56	echo "   - quietStartup: true"
57	echo "   - treeFilterMode: no-tools"
58
59	echo "   - subagentProviderPreference: [\"google-vertex-claude\", \"vertex\", ...]"
60	exit 1
61fi