f8882cfa439b9be1d46edec36d2a9694d435f634

Author
TheEdgeOfRage <git@theedgeofrage.com>
Committer
TheEdgeOfRage <git@theedgeofrage.com>
Date

Message

Use jq to merge pi settings instead of templating

Diff

 1diff --git a/dot_pi/private_agent/modify_settings.json b/dot_pi/private_agent/modify_settings.json
 2old mode 100644
 3new mode 100755
 4index 5004c2e22a618384d8acede19c223d8959352bcd..90d5b2e620eb7e251e30f7b6dc22eb8113c36f9e
 5--- a/dot_pi/private_agent/modify_settings.json
 6+++ b/dot_pi/private_agent/modify_settings.json
 7@@ -1,18 +1,15 @@
 8-{{- /* chezmoi:modify-template */ -}}
 9-{{- /*
10-    vim: ft=json.chezmoitmpl ts=2 sts=2 sw=2
11-*/ -}}
12-{{- $current := fromJson (.chezmoi.stdin | default "{}") -}}
13+#!/usr/bin/env bash
14+# vim: ft=bash
15+jq -j '
16+(. // {}) as $current |
17 {
18+  "defaultProvider": "claude-code",
19+  "defaultModel": "claude-sonnet-5-5",
20+  "defaultThinkingLevel": "medium"
21+} as $defaults |
22+reduce ($defaults | keys_unsorted[]) as $key ($current; if has($key) then . else .[$key] = $defaults[$key] end) * {
23   "$schema": "https://pi.dev/schemas/settings.schema.json",
24-  "lastChangelogVersion": {{ $current.lastChangelogVersion | default "1.1.0" | toJson }},
25-  "defaultProvider": {{ $current.defaultProvider | default "openai-codex" | toJson }},
26-  "defaultModel": {{ $current.defaultModel | default "gpt-6.1-terra" | toJson }},
27-  "defaultThinkingLevel": {{ $current.defaultThinkingLevel | default "medium" | toJson }},
28-  "hideThinkingBlock": {{ $current.hideThinkingBlock | default false | toJson }},
29   "enabledModels": [
30-    "llama.cpp/unsloth/Qwen3.8-27B-GGUF:IQ3_S",
31-    "llama.cpp/ukisai/Swift-1.5-Qwen3.8-27B-GGUF:Q3_K_S",
32     "claude-code/claude-fable-5-1",
33     "claude-code/claude-haiku-5-5",
34     "claude-code/claude-opus-5-5",
35@@ -21,14 +18,11 @@
36     "openai-codex/gpt-6.1-terra",
37     "openai-codex/gpt-6.1-sol",
38     "openai-codex/gpt-6-astra",
39+    "llama.cpp/ukisai/Swift-1.5-Qwen3.8-27B-GGUF:Q3_K_S",
40     "strata/qwen3.8-flash-next-iq3_s"
41   ],
42-  "defaultTools": [
43-    "+codemode"
44-  ],
45-  "codemode": {
46-    "mode": "only"
47-  },
48+  "defaultTools": ["+codemode"],
49+  "codemode": {"mode": "only"},
50   "transport": "auto",
51   "quietStartup": true,
52   "enableInstallTelemetry": false,
53@@ -42,29 +36,14 @@
54     "git:github.com/earendil-works/pi-claude-code",
55     "npm:pi-context-view",
56     "npm:billion-context-pi",
57-    {
58-      "source": "npm:@plannotator/pi-extension",
59-      "skills": []
60-    }
61+    {"source": "npm:@plannotator/pi-extension", "skills": []}
62   ],
63   "outputPad": 0,
64   "autocompleteMaxVisible": 7,
65   "showHardwareCursor": false,
66   "steeringMode": "all",
67-  "markdown": {
68-    "mermaid": "streaming",
69-    "codeBlockIndent": ""
70-  },
71+  "markdown": {"mermaid": "streaming", "codeBlockIndent": ""},
72   "showCacheMissNotices": true,
73   "treeFilterMode": "no-tools",
74-  "tuiMode": "fullscreen"{{ if hasKey $current "deviceId" }},
75-  "deviceId": {{ $current.deviceId | toJson }}
76-  {{- end }}{{ if hasKey $current "extensionChangelogVersions" }},
77-  "extensionChangelogVersions": {
78-    {{- range $i, $k := keys $current.extensionChangelogVersions }}
79-    {{- if $i }},{{ end }}
80-    {{ $k | toJson }}: {{ index $current.extensionChangelogVersions $k | toJson }}
81-    {{- end }}
82-  }
83-  {{- end }}
84-}{{- "" -}}
85+  "tuiMode": "fullscreen"
86+}'