@astralyn/pi 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/bundle/chunks/anthropic-messages-MSB6JBS2.js +6 -0
  3. package/dist/bundle/chunks/{azure-openai-responses-CH74HGP4.js → azure-openai-responses-ATZ757I2.js} +1 -1
  4. package/dist/bundle/chunks/bedrock-converse-stream.js +14 -11
  5. package/dist/bundle/chunks/{chunk-H35KWBT5.js → chunk-4XZYHGVN.js} +1 -1
  6. package/dist/bundle/chunks/{chunk-MAC4N3BW.js → chunk-7UBIBLPN.js} +1 -1
  7. package/dist/bundle/chunks/{chunk-KAC2YPTW.js → chunk-J75WV3FL.js} +1 -1
  8. package/dist/bundle/chunks/{chunk-EJEOEBSJ.js → chunk-KSCGI7JW.js} +2 -2
  9. package/dist/bundle/chunks/chunk-LUYFHZ6W.js +11 -0
  10. package/dist/bundle/chunks/{chunk-TEAAYBTS.js → chunk-NM2KGRFS.js} +1 -1
  11. package/dist/bundle/chunks/chunk-Q74S7ILH.js +2 -0
  12. package/dist/bundle/chunks/{chunk-QLU3LESZ.js → chunk-QDDSFJ35.js} +1 -1
  13. package/dist/bundle/chunks/{chunk-D3XW5X3Z.js → chunk-R2KES7LS.js} +175 -244
  14. package/dist/bundle/chunks/{chunk-5B3S5DVL.js → chunk-SA2AQYEI.js} +5 -2
  15. package/dist/bundle/chunks/{chunk-C2ARIVS3.js → chunk-YHRHHXFG.js} +1 -1
  16. package/dist/bundle/chunks/{cloudflare-workers-ai-system-one-XO45ZT3V.js → cloudflare-workers-ai-system-one-HGOVFZDC.js} +1 -1
  17. package/dist/bundle/chunks/codemode-worker.js +17 -9
  18. package/dist/bundle/chunks/github-copilot.js +1 -1
  19. package/dist/bundle/chunks/{google-generative-ai-VVO64ZRQ.js → google-generative-ai-QRLQ4MCJ.js} +1 -1
  20. package/dist/bundle/chunks/{google-vertex-LKS5NUHA.js → google-vertex-L3T6EGTL.js} +1 -1
  21. package/dist/bundle/chunks/mistral-conversations-6E6SS3WF.js +5 -0
  22. package/dist/bundle/chunks/openai-codex-responses-4GUO76XJ.js +10 -0
  23. package/dist/bundle/chunks/{openai-completions-7HTTU6FH.js → openai-completions-O4TKZCIM.js} +1 -1
  24. package/dist/bundle/chunks/{openai-decisions-776H4VDZ.js → openai-decisions-TVCDIPZX.js} +1 -1
  25. package/dist/bundle/chunks/openai-responses-VBQKJFNO.js +3 -0
  26. package/dist/bundle/chunks/{pi-messages-ZXNERWJG.js → pi-messages-3POWZ43C.js} +1 -1
  27. package/dist/bundle/chunks/{typesafe-system-one-2DQLG4R2.js → typesafe-system-one-LWPJYTJP.js} +1 -1
  28. package/dist/bundle/chunks/{virtual-modules-2NHGQRS6.js → virtual-modules-TG53AOL4.js} +1 -1
  29. package/dist/bundle/cli.js +1 -1
  30. package/dist/bundle/index.js +1 -1
  31. package/dist/bundle/rpc-entry.js +1 -1
  32. package/dist/cli/credential-print.d.ts.map +1 -1
  33. package/dist/cli/credential-print.js +4 -4
  34. package/dist/cli/credential-print.js.map +1 -1
  35. package/dist/core/agent-session.d.ts +18 -3
  36. package/dist/core/agent-session.d.ts.map +1 -1
  37. package/dist/core/agent-session.js +98 -62
  38. package/dist/core/agent-session.js.map +1 -1
  39. package/dist/core/auth-storage.d.ts.map +1 -1
  40. package/dist/core/auth-storage.js +20 -13
  41. package/dist/core/auth-storage.js.map +1 -1
  42. package/dist/core/bug-report.d.ts +9 -1
  43. package/dist/core/bug-report.d.ts.map +1 -1
  44. package/dist/core/compaction/utils.d.ts +6 -0
  45. package/dist/core/compaction/utils.d.ts.map +1 -1
  46. package/dist/core/compaction/utils.js +7 -8
  47. package/dist/core/compaction/utils.js.map +1 -1
  48. package/dist/core/export-html/template.js +21 -16
  49. package/dist/core/extensions/index.d.ts +1 -1
  50. package/dist/core/extensions/index.d.ts.map +1 -1
  51. package/dist/core/extensions/index.js.map +1 -1
  52. package/dist/core/extensions/runner.d.ts +4 -2
  53. package/dist/core/extensions/runner.d.ts.map +1 -1
  54. package/dist/core/extensions/runner.js +2 -3
  55. package/dist/core/extensions/runner.js.map +1 -1
  56. package/dist/core/extensions/types.d.ts +31 -7
  57. package/dist/core/extensions/types.d.ts.map +1 -1
  58. package/dist/core/extensions/types.js.map +1 -1
  59. package/dist/core/key-id-schema.d.ts +6 -0
  60. package/dist/core/key-id-schema.d.ts.map +1 -0
  61. package/dist/core/key-id-schema.js +16 -0
  62. package/dist/core/key-id-schema.js.map +1 -0
  63. package/dist/core/keybinding-registry.d.ts +4 -3
  64. package/dist/core/keybinding-registry.d.ts.map +1 -1
  65. package/dist/core/keybinding-registry.js +4 -3
  66. package/dist/core/keybinding-registry.js.map +1 -1
  67. package/dist/core/keybindings-schema.d.ts +4 -0
  68. package/dist/core/keybindings-schema.d.ts.map +1 -0
  69. package/dist/core/keybindings-schema.js +16 -0
  70. package/dist/core/keybindings-schema.js.map +1 -0
  71. package/dist/core/keybindings.d.ts +258 -81
  72. package/dist/core/keybindings.d.ts.map +1 -1
  73. package/dist/core/keybindings.js +27 -24
  74. package/dist/core/keybindings.js.map +1 -1
  75. package/dist/core/model-config.d.ts +729 -180
  76. package/dist/core/model-config.d.ts.map +1 -1
  77. package/dist/core/model-config.js +18 -179
  78. package/dist/core/model-config.js.map +1 -1
  79. package/dist/core/model-resolver.d.ts +56 -43
  80. package/dist/core/model-resolver.d.ts.map +1 -1
  81. package/dist/core/model-resolver.js +247 -352
  82. package/dist/core/model-resolver.js.map +1 -1
  83. package/dist/core/model-runtime.d.ts.map +1 -1
  84. package/dist/core/model-runtime.js +11 -6
  85. package/dist/core/model-runtime.js.map +1 -1
  86. package/dist/core/package-manager.d.ts.map +1 -1
  87. package/dist/core/package-manager.js +3 -3
  88. package/dist/core/package-manager.js.map +1 -1
  89. package/dist/core/project-trust.d.ts.map +1 -1
  90. package/dist/core/project-trust.js +2 -1
  91. package/dist/core/project-trust.js.map +1 -1
  92. package/dist/core/prompt-templates.d.ts.map +1 -1
  93. package/dist/core/prompt-templates.js +7 -2
  94. package/dist/core/prompt-templates.js.map +1 -1
  95. package/dist/core/remote-catalog-provider.d.ts +12 -1
  96. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  97. package/dist/core/remote-catalog-provider.js +82 -24
  98. package/dist/core/remote-catalog-provider.js.map +1 -1
  99. package/dist/core/resource-loader.d.ts.map +1 -1
  100. package/dist/core/resource-loader.js +7 -2
  101. package/dist/core/resource-loader.js.map +1 -1
  102. package/dist/core/settings-defaults.d.ts +66 -0
  103. package/dist/core/settings-defaults.d.ts.map +1 -0
  104. package/dist/core/settings-defaults.js +67 -0
  105. package/dist/core/settings-defaults.js.map +1 -0
  106. package/dist/core/settings-manager.d.ts +6 -149
  107. package/dist/core/settings-manager.d.ts.map +1 -1
  108. package/dist/core/settings-manager.js +59 -44
  109. package/dist/core/settings-manager.js.map +1 -1
  110. package/dist/core/settings-schema.d.ts +233 -0
  111. package/dist/core/settings-schema.d.ts.map +1 -0
  112. package/dist/core/settings-schema.js +298 -0
  113. package/dist/core/settings-schema.js.map +1 -0
  114. package/dist/core/slash-commands.js +1 -1
  115. package/dist/core/slash-commands.js.map +1 -1
  116. package/dist/core/tools/render-utils.d.ts +20 -0
  117. package/dist/core/tools/render-utils.d.ts.map +1 -1
  118. package/dist/core/tools/render-utils.js +67 -0
  119. package/dist/core/tools/render-utils.js.map +1 -1
  120. package/dist/core/tools/renderers/bash.d.ts.map +1 -1
  121. package/dist/core/tools/renderers/bash.js +21 -50
  122. package/dist/core/tools/renderers/bash.js.map +1 -1
  123. package/dist/core/tools/renderers/read.d.ts.map +1 -1
  124. package/dist/core/tools/renderers/read.js +7 -11
  125. package/dist/core/tools/renderers/read.js.map +1 -1
  126. package/dist/extensions/btw/keybindings.d.ts +2 -2
  127. package/dist/extensions/btw/keybindings.d.ts.map +1 -1
  128. package/dist/extensions/btw/keybindings.js.map +1 -1
  129. package/dist/extensions/codemode/execute.d.ts.map +1 -1
  130. package/dist/extensions/codemode/execute.js +76 -45
  131. package/dist/extensions/codemode/execute.js.map +1 -1
  132. package/dist/extensions/codemode/index.d.ts.map +1 -1
  133. package/dist/extensions/codemode/index.js +3 -7
  134. package/dist/extensions/codemode/index.js.map +1 -1
  135. package/dist/extensions/codemode/renderer.d.ts +2 -2
  136. package/dist/extensions/codemode/renderer.d.ts.map +1 -1
  137. package/dist/extensions/codemode/renderer.js +9 -3
  138. package/dist/extensions/codemode/renderer.js.map +1 -1
  139. package/dist/extensions/codemode/tool.d.ts +6 -12
  140. package/dist/extensions/codemode/tool.d.ts.map +1 -1
  141. package/dist/extensions/codemode/tool.js +44 -32
  142. package/dist/extensions/codemode/tool.js.map +1 -1
  143. package/dist/extensions/list-keybindings.d.ts +2 -2
  144. package/dist/extensions/list-keybindings.d.ts.map +1 -1
  145. package/dist/extensions/list-keybindings.js.map +1 -1
  146. package/dist/extensions/mcp/cli.js +5 -8
  147. package/dist/extensions/mcp/cli.js.map +1 -1
  148. package/dist/extensions/mcp/index.d.ts.map +1 -1
  149. package/dist/extensions/mcp/index.js +25 -34
  150. package/dist/extensions/mcp/index.js.map +1 -1
  151. package/dist/extensions/mcp/resources.d.ts +0 -6
  152. package/dist/extensions/mcp/resources.d.ts.map +1 -1
  153. package/dist/extensions/mcp/resources.js +1 -1
  154. package/dist/extensions/mcp/resources.js.map +1 -1
  155. package/dist/extensions/mcp/runtime.d.ts +3 -6
  156. package/dist/extensions/mcp/runtime.d.ts.map +1 -1
  157. package/dist/extensions/mcp/runtime.js +4 -39
  158. package/dist/extensions/mcp/runtime.js.map +1 -1
  159. package/dist/extensions/mcp/tools.d.ts +2 -3
  160. package/dist/extensions/mcp/tools.d.ts.map +1 -1
  161. package/dist/extensions/mcp/tools.js +62 -6
  162. package/dist/extensions/mcp/tools.js.map +1 -1
  163. package/dist/extensions/provider/keybindings.d.ts +2 -2
  164. package/dist/extensions/provider/keybindings.d.ts.map +1 -1
  165. package/dist/extensions/provider/keybindings.js.map +1 -1
  166. package/dist/extensions/search/code-search.d.ts +0 -2
  167. package/dist/extensions/search/code-search.d.ts.map +1 -1
  168. package/dist/extensions/search/code-search.js +2 -2
  169. package/dist/extensions/search/code-search.js.map +1 -1
  170. package/dist/extensions/search/command.js +2 -2
  171. package/dist/extensions/search/command.js.map +1 -1
  172. package/dist/extensions/search/index.d.ts.map +1 -1
  173. package/dist/extensions/search/index.js +14 -11
  174. package/dist/extensions/search/index.js.map +1 -1
  175. package/dist/extensions/search/workspace.d.ts +11 -10
  176. package/dist/extensions/search/workspace.d.ts.map +1 -1
  177. package/dist/extensions/search/workspace.js +259 -141
  178. package/dist/extensions/search/workspace.js.map +1 -1
  179. package/dist/extensions/tool-search/index.d.ts.map +1 -1
  180. package/dist/extensions/tool-search/index.js +1 -6
  181. package/dist/extensions/tool-search/index.js.map +1 -1
  182. package/dist/extensions/tool-search/tool.d.ts +0 -2
  183. package/dist/extensions/tool-search/tool.d.ts.map +1 -1
  184. package/dist/extensions/tool-search/tool.js +2 -4
  185. package/dist/extensions/tool-search/tool.js.map +1 -1
  186. package/dist/index.d.ts +2 -1
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +1 -0
  189. package/dist/index.js.map +1 -1
  190. package/dist/main.d.ts.map +1 -1
  191. package/dist/main.js +4 -3
  192. package/dist/main.js.map +1 -1
  193. package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  194. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  195. package/dist/modes/interactive/components/settings-selector.js +13 -2
  196. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  197. package/dist/modes/interactive/components/status-indicator.d.ts +1 -1
  198. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  199. package/dist/modes/interactive/components/status-indicator.js +2 -2
  200. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  201. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  202. package/dist/modes/interactive/components/tree-selector.js +2 -9
  203. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  204. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  205. package/dist/modes/interactive/interactive-mode.js +20 -8
  206. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  207. package/dist/modes/interactive/session-share.d.ts.map +1 -1
  208. package/dist/modes/interactive/session-share.js +9 -2
  209. package/dist/modes/interactive/session-share.js.map +1 -1
  210. package/dist/modes/interactive/tasks/layout.d.ts +2 -0
  211. package/dist/modes/interactive/tasks/layout.d.ts.map +1 -1
  212. package/dist/modes/interactive/tasks/layout.js +32 -6
  213. package/dist/modes/interactive/tasks/layout.js.map +1 -1
  214. package/dist/modes/interactive/tasks/manager.d.ts.map +1 -1
  215. package/dist/modes/interactive/tasks/manager.js +20 -2
  216. package/dist/modes/interactive/tasks/manager.js.map +1 -1
  217. package/dist/modes/interactive/theme/dark.json +1 -1
  218. package/dist/modes/interactive/theme/light.json +1 -1
  219. package/dist/modes/interactive/theme/theme-schema.d.ts +28 -0
  220. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  221. package/dist/modes/interactive/theme/theme-schema.js +105 -0
  222. package/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  223. package/dist/modes/interactive/theme/theme-tokens.d.ts +257 -0
  224. package/dist/modes/interactive/theme/theme-tokens.d.ts.map +1 -0
  225. package/dist/modes/interactive/theme/theme-tokens.js +94 -0
  226. package/dist/modes/interactive/theme/theme-tokens.js.map +1 -0
  227. package/dist/modes/interactive/theme/theme.d.ts +13 -16
  228. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  229. package/dist/modes/interactive/theme/theme.js +23 -31
  230. package/dist/modes/interactive/theme/theme.js.map +1 -1
  231. package/dist/modes/print-mode.d.ts.map +1 -1
  232. package/dist/modes/print-mode.js +4 -0
  233. package/dist/modes/print-mode.js.map +1 -1
  234. package/dist/utils/clipboard.d.ts.map +1 -1
  235. package/dist/utils/clipboard.js +6 -1
  236. package/dist/utils/clipboard.js.map +1 -1
  237. package/docs/bundled/extensions/search.md +2 -1
  238. package/docs/bundled/tasks.md +1 -1
  239. package/docs/codemode.md +2 -1
  240. package/docs/compaction.md +2 -2
  241. package/docs/development.md +0 -13
  242. package/docs/docs.json +12 -0
  243. package/docs/environment-variables.md +2 -3
  244. package/docs/extensions.md +11 -5
  245. package/docs/keybindings.md +1 -0
  246. package/docs/llama-cpp.md +1 -1
  247. package/docs/mcp.md +1 -1
  248. package/docs/models.md +1 -0
  249. package/docs/nvidia-rtx-llama-cpp.md +96 -0
  250. package/docs/providers.md +17 -1
  251. package/docs/sdk.md +0 -27
  252. package/docs/sessions.md +1 -1
  253. package/docs/settings.md +4 -3
  254. package/docs/themes.md +4 -2
  255. package/docs/tui.md +1 -1
  256. package/docs/usage.md +7 -5
  257. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  258. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  259. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  260. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  261. package/examples/extensions/gondolin/package-lock.json +2 -2
  262. package/examples/extensions/gondolin/package.json +1 -1
  263. package/examples/extensions/minimal-mode.ts +4 -5
  264. package/examples/extensions/overlay-test.ts +2 -2
  265. package/examples/extensions/plan-mode/index.ts +6 -2
  266. package/examples/extensions/sandbox/package-lock.json +2 -2
  267. package/examples/extensions/sandbox/package.json +1 -1
  268. package/examples/extensions/with-deps/package-lock.json +2 -2
  269. package/examples/extensions/with-deps/package.json +1 -1
  270. package/npm-shrinkwrap.json +151 -199
  271. package/package.json +8 -20
  272. package/schemas/keybindings.schema.json +453 -0
  273. package/schemas/models.schema.json +1157 -0
  274. package/schemas/settings.schema.json +800 -0
  275. package/schemas/theme.schema.json +365 -0
  276. package/dist/bundle/chunks/anthropic-messages-3K3DWVY6.js +0 -6
  277. package/dist/bundle/chunks/chunk-3MMB5I7J.js +0 -11
  278. package/dist/bundle/chunks/mistral-conversations-NJUOG4ET.js +0 -5
  279. package/dist/bundle/chunks/openai-codex-responses-TZWBTTYM.js +0 -10
  280. package/dist/bundle/chunks/openai-responses-7A6BAQ5X.js +0 -3
  281. package/dist/modes/interactive/theme/theme-json.d.ts +0 -85
  282. package/dist/modes/interactive/theme/theme-json.d.ts.map +0 -1
  283. package/dist/modes/interactive/theme/theme-json.js +0 -132
  284. package/dist/modes/interactive/theme/theme-json.js.map +0 -1
  285. package/dist/modes/interactive/theme/theme-schema.json +0 -361
  286. package/examples/plugins/pi-example-plugin/README.md +0 -38
  287. package/examples/plugins/pi-example-plugin/package.json +0 -10
  288. package/examples/plugins/pi-example-plugin/src/contract.ts +0 -13
  289. package/examples/plugins/pi-example-plugin/src/session.ts +0 -24
  290. package/examples/plugins/pi-example-plugin/src/tui.ts +0 -31
@@ -0,0 +1,800 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://pi.dev/schemas/settings.schema.json",
4
+ "$comment": "This file is generated from TypeScript source. Do not edit it manually; run npm run generate:schemas.",
5
+ "type": "object",
6
+ "properties": {
7
+ "$schema": {
8
+ "type": "string",
9
+ "description": "JSON Schema reference."
10
+ },
11
+ "extensionSettings": {
12
+ "type": "object",
13
+ "patternProperties": {
14
+ "^.*$": {
15
+ "type": "object",
16
+ "patternProperties": {
17
+ "^.*$": {}
18
+ }
19
+ }
20
+ },
21
+ "description": "Per-extension global JSON namespaces, written through the extension settings API."
22
+ },
23
+ "lastChangelogVersion": {
24
+ "type": "string"
25
+ },
26
+ "defaultProvider": {
27
+ "type": "string"
28
+ },
29
+ "defaultModel": {
30
+ "type": "string"
31
+ },
32
+ "defaultThinkingLevel": {
33
+ "$ref": "#/$defs/ModelThinkingLevel"
34
+ },
35
+ "modelThinkingLevels": {
36
+ "type": "object",
37
+ "patternProperties": {
38
+ "^.*$": {
39
+ "$ref": "#/$defs/ModelThinkingLevel"
40
+ }
41
+ },
42
+ "description": "Per-model default thinking level overrides keyed by \"provider/modelId\"."
43
+ },
44
+ "transport": {
45
+ "anyOf": [
46
+ {
47
+ "type": "string",
48
+ "const": "auto"
49
+ },
50
+ {
51
+ "type": "string",
52
+ "const": "sse"
53
+ },
54
+ {
55
+ "type": "string",
56
+ "const": "websocket"
57
+ },
58
+ {
59
+ "type": "string",
60
+ "const": "websocket-cached"
61
+ }
62
+ ],
63
+ "default": "auto"
64
+ },
65
+ "sessionShareDestination": {
66
+ "anyOf": [
67
+ {
68
+ "type": "string",
69
+ "const": "auto"
70
+ },
71
+ {
72
+ "type": "string",
73
+ "const": "gist"
74
+ },
75
+ {
76
+ "type": "string",
77
+ "const": "radius"
78
+ }
79
+ ],
80
+ "description": "Destination used by /share. \"auto\" uses Radius when authenticated and otherwise creates a GitHub gist.",
81
+ "default": "auto"
82
+ },
83
+ "steeringMode": {
84
+ "anyOf": [
85
+ {
86
+ "type": "string",
87
+ "const": "all"
88
+ },
89
+ {
90
+ "type": "string",
91
+ "const": "one-at-a-time"
92
+ }
93
+ ],
94
+ "default": "one-at-a-time"
95
+ },
96
+ "followUpMode": {
97
+ "anyOf": [
98
+ {
99
+ "type": "string",
100
+ "const": "all"
101
+ },
102
+ {
103
+ "type": "string",
104
+ "const": "one-at-a-time"
105
+ }
106
+ ],
107
+ "default": "one-at-a-time"
108
+ },
109
+ "theme": {
110
+ "type": "string"
111
+ },
112
+ "compaction": {
113
+ "type": "object",
114
+ "properties": {
115
+ "enabled": {
116
+ "type": "boolean",
117
+ "default": true
118
+ },
119
+ "reserveTokens": {
120
+ "type": "integer",
121
+ "minimum": 0,
122
+ "maximum": 9007199254740991,
123
+ "default": 16384
124
+ },
125
+ "keepRecentTokens": {
126
+ "type": "integer",
127
+ "minimum": 0,
128
+ "maximum": 9007199254740991,
129
+ "default": 20000
130
+ },
131
+ "triggerPercent": {
132
+ "type": "number",
133
+ "description": "Auto-compaction triggers past this percentage of the context window (clamped to 20-95); derives the reserve when reserveTokens is not set.",
134
+ "default": 85
135
+ },
136
+ "modelOverrides": {
137
+ "type": "object",
138
+ "patternProperties": {
139
+ "^.*$": {
140
+ "type": "object",
141
+ "properties": {
142
+ "reserveTokens": {
143
+ "type": "integer",
144
+ "minimum": 0,
145
+ "maximum": 9007199254740991
146
+ },
147
+ "keepRecentTokens": {
148
+ "type": "integer",
149
+ "minimum": 0,
150
+ "maximum": 9007199254740991
151
+ }
152
+ }
153
+ }
154
+ },
155
+ "description": "Per-model overrides keyed by exact \"provider/modelId\" strings."
156
+ }
157
+ }
158
+ },
159
+ "branchSummary": {
160
+ "type": "object",
161
+ "properties": {
162
+ "reserveTokens": {
163
+ "type": "number",
164
+ "description": "Tokens reserved for the prompt and LLM response.",
165
+ "default": 16384
166
+ },
167
+ "skipPrompt": {
168
+ "type": "boolean",
169
+ "description": "When true, skips the \"Summarize branch?\" prompt and defaults to no summary.",
170
+ "default": false
171
+ }
172
+ }
173
+ },
174
+ "retry": {
175
+ "type": "object",
176
+ "properties": {
177
+ "enabled": {
178
+ "type": "boolean",
179
+ "default": true
180
+ },
181
+ "maxRetries": {
182
+ "type": "number",
183
+ "default": 3
184
+ },
185
+ "baseDelayMs": {
186
+ "type": "number",
187
+ "description": "Exponential backoff base delay in milliseconds: 2s, 4s, 8s.",
188
+ "default": 2000
189
+ },
190
+ "maxAgentDelayMs": {
191
+ "type": "number",
192
+ "default": 60000
193
+ },
194
+ "provider": {
195
+ "type": "object",
196
+ "properties": {
197
+ "timeoutMs": {
198
+ "type": "number",
199
+ "description": "SDK or provider request timeout in milliseconds."
200
+ },
201
+ "maxRetries": {
202
+ "type": "number",
203
+ "description": "SDK or provider retry attempts."
204
+ },
205
+ "maxRetryDelayMs": {
206
+ "type": "number",
207
+ "description": "Maximum server-requested delay before failing.",
208
+ "default": 60000
209
+ }
210
+ }
211
+ },
212
+ "maxDelayMs": {
213
+ "type": "number",
214
+ "description": "Legacy retry delay setting. Use provider.maxRetryDelayMs instead.",
215
+ "deprecated": true
216
+ }
217
+ }
218
+ },
219
+ "hideThinkingBlock": {
220
+ "type": "boolean",
221
+ "default": false
222
+ },
223
+ "showCacheMissNotices": {
224
+ "type": "boolean",
225
+ "description": "Show cache cost and provider recovery notices.",
226
+ "default": false
227
+ },
228
+ "externalEditor": {
229
+ "type": "string",
230
+ "description": "Command for Ctrl+G external editor; takes precedence over VISUAL and EDITOR."
231
+ },
232
+ "shellPath": {
233
+ "type": "string",
234
+ "description": "Custom shell path, for example for Cygwin on Windows, with support for leading ~ expansion."
235
+ },
236
+ "quietStartup": {
237
+ "anyOf": [
238
+ {
239
+ "type": "boolean"
240
+ },
241
+ {
242
+ "type": "string",
243
+ "const": "header"
244
+ }
245
+ ],
246
+ "description": "When true, hide all startup output. When \"header\", keep only the startup header.",
247
+ "default": false
248
+ },
249
+ "defaultProjectTrust": {
250
+ "anyOf": [
251
+ {
252
+ "type": "string",
253
+ "const": "ask"
254
+ },
255
+ {
256
+ "type": "string",
257
+ "const": "always"
258
+ },
259
+ {
260
+ "type": "string",
261
+ "const": "never"
262
+ }
263
+ ],
264
+ "description": "Global setting only.",
265
+ "default": "ask"
266
+ },
267
+ "shellCommandPrefix": {
268
+ "type": "string",
269
+ "description": "Prefix prepended to every bash command, for example to enable shell aliases."
270
+ },
271
+ "npmCommand": {
272
+ "type": "array",
273
+ "items": {
274
+ "type": "string"
275
+ },
276
+ "description": "Command used for npm package lookup and installation, in argv form such as [\"mise\", \"exec\", \"node@20\", \"--\", \"npm\"]."
277
+ },
278
+ "collapseChangelog": {
279
+ "type": "boolean",
280
+ "description": "Show the condensed changelog after update; use /changelog for the full changelog.",
281
+ "default": false
282
+ },
283
+ "enableInstallTelemetry": {
284
+ "type": "boolean",
285
+ "description": "Send an anonymous version and update ping after changelog-detected updates.",
286
+ "default": true
287
+ },
288
+ "enableAnalytics": {
289
+ "type": "boolean",
290
+ "description": "Opt in to analytics data sharing.",
291
+ "default": false
292
+ },
293
+ "trackingId": {
294
+ "type": "string",
295
+ "description": "Analytics tracking identifier, generated when analytics is enabled."
296
+ },
297
+ "packages": {
298
+ "type": "array",
299
+ "items": {
300
+ "anyOf": [
301
+ {
302
+ "type": "string",
303
+ "description": "Load all resources from the package."
304
+ },
305
+ {
306
+ "type": "object",
307
+ "required": [
308
+ "source"
309
+ ],
310
+ "properties": {
311
+ "source": {
312
+ "type": "string"
313
+ },
314
+ "autoload": {
315
+ "type": "boolean",
316
+ "description": "When false, start empty and only apply explicit resource patterns."
317
+ },
318
+ "extensions": {
319
+ "type": "array",
320
+ "items": {
321
+ "type": "string"
322
+ }
323
+ },
324
+ "skills": {
325
+ "type": "array",
326
+ "items": {
327
+ "type": "string"
328
+ }
329
+ },
330
+ "prompts": {
331
+ "type": "array",
332
+ "items": {
333
+ "type": "string"
334
+ }
335
+ },
336
+ "themes": {
337
+ "type": "array",
338
+ "items": {
339
+ "type": "string"
340
+ }
341
+ }
342
+ }
343
+ }
344
+ ],
345
+ "description": "Package source for npm or git packages. Use the string form to load all resources or the object form to filter resources."
346
+ },
347
+ "description": "npm or git package sources, as strings or objects with resource filtering."
348
+ },
349
+ "extensions": {
350
+ "type": "array",
351
+ "items": {
352
+ "type": "string"
353
+ },
354
+ "description": "Local extension file paths or directories."
355
+ },
356
+ "deviceId": {
357
+ "type": "string",
358
+ "description": "Stable installation UUID, generated when authentication first needs it. Global only."
359
+ },
360
+ "skills": {
361
+ "anyOf": [
362
+ {
363
+ "type": "array",
364
+ "items": {
365
+ "type": "string"
366
+ }
367
+ },
368
+ {
369
+ "type": "object",
370
+ "properties": {
371
+ "enableSkillCommands": {
372
+ "type": "boolean"
373
+ },
374
+ "customDirectories": {
375
+ "type": "array",
376
+ "items": {
377
+ "type": "string"
378
+ }
379
+ }
380
+ },
381
+ "deprecated": true
382
+ }
383
+ ],
384
+ "description": "Local skill file paths or directories."
385
+ },
386
+ "prompts": {
387
+ "type": "array",
388
+ "items": {
389
+ "type": "string"
390
+ },
391
+ "description": "Local prompt template file paths or directories."
392
+ },
393
+ "themes": {
394
+ "type": "array",
395
+ "items": {
396
+ "type": "string"
397
+ },
398
+ "description": "Local theme file paths or directories."
399
+ },
400
+ "enableSkillCommands": {
401
+ "type": "boolean",
402
+ "description": "Register skills as /skill:name commands.",
403
+ "default": true
404
+ },
405
+ "terminal": {
406
+ "type": "object",
407
+ "properties": {
408
+ "showImages": {
409
+ "type": "boolean",
410
+ "description": "Show images when the terminal supports them.",
411
+ "default": true
412
+ },
413
+ "imageWidthCells": {
414
+ "type": "number",
415
+ "description": "Preferred inline image width in terminal cells.",
416
+ "default": 60
417
+ },
418
+ "clearOnShrink": {
419
+ "type": "boolean",
420
+ "description": "Clear empty rows when content shrinks.",
421
+ "default": false
422
+ },
423
+ "showTerminalProgress": {
424
+ "type": "boolean",
425
+ "description": "Show OSC 9;4 terminal progress indicators.",
426
+ "default": false
427
+ },
428
+ "hyperlinks": {
429
+ "anyOf": [
430
+ {
431
+ "type": "boolean"
432
+ },
433
+ {
434
+ "type": "string",
435
+ "const": "auto"
436
+ }
437
+ ]
438
+ },
439
+ "images": {
440
+ "anyOf": [
441
+ {
442
+ "type": "string",
443
+ "const": "kitty"
444
+ },
445
+ {
446
+ "type": "string",
447
+ "const": "iterm2"
448
+ },
449
+ {
450
+ "type": "string",
451
+ "const": "auto"
452
+ },
453
+ {
454
+ "type": "boolean",
455
+ "const": false
456
+ }
457
+ ]
458
+ },
459
+ "trueColor": {
460
+ "anyOf": [
461
+ {
462
+ "type": "boolean"
463
+ },
464
+ {
465
+ "type": "string",
466
+ "const": "auto"
467
+ }
468
+ ]
469
+ }
470
+ }
471
+ },
472
+ "images": {
473
+ "type": "object",
474
+ "properties": {
475
+ "autoResize": {
476
+ "type": "boolean",
477
+ "description": "Resize images to 2000x2000 maximum for better model compatibility.",
478
+ "default": true
479
+ },
480
+ "blockImages": {
481
+ "type": "boolean",
482
+ "description": "When true, prevents all images from being sent to LLM providers.",
483
+ "default": false
484
+ }
485
+ }
486
+ },
487
+ "enabledModels": {
488
+ "type": "array",
489
+ "items": {
490
+ "type": "string"
491
+ },
492
+ "description": "Model patterns for cycling, in the same format as the --models CLI flag."
493
+ },
494
+ "defaultTools": {
495
+ "type": "array",
496
+ "items": {
497
+ "type": "string"
498
+ },
499
+ "description": "Initial tool selection. Plain names replace the inherited selection; +name and -name entries add or remove tools."
500
+ },
501
+ "doubleEscapeAction": {
502
+ "anyOf": [
503
+ {
504
+ "type": "string",
505
+ "const": "fork"
506
+ },
507
+ {
508
+ "type": "string",
509
+ "const": "tree"
510
+ },
511
+ {
512
+ "type": "string",
513
+ "const": "none"
514
+ }
515
+ ],
516
+ "description": "Action for double-escape with an empty editor.",
517
+ "default": "tree"
518
+ },
519
+ "treeFilterMode": {
520
+ "anyOf": [
521
+ {
522
+ "type": "string",
523
+ "const": "default"
524
+ },
525
+ {
526
+ "type": "string",
527
+ "const": "no-tools"
528
+ },
529
+ {
530
+ "type": "string",
531
+ "const": "user-only"
532
+ },
533
+ {
534
+ "type": "string",
535
+ "const": "labeled-only"
536
+ },
537
+ {
538
+ "type": "string",
539
+ "const": "all"
540
+ }
541
+ ],
542
+ "description": "Default filter when opening /tree.",
543
+ "default": "default"
544
+ },
545
+ "thinkingBudgets": {
546
+ "type": "object",
547
+ "properties": {
548
+ "minimal": {
549
+ "type": "number"
550
+ },
551
+ "low": {
552
+ "type": "number"
553
+ },
554
+ "medium": {
555
+ "type": "number"
556
+ },
557
+ "high": {
558
+ "type": "number"
559
+ }
560
+ },
561
+ "description": "Custom token budgets for thinking levels."
562
+ },
563
+ "editorPaddingX": {
564
+ "type": "number",
565
+ "description": "Horizontal padding for the input editor.",
566
+ "default": 0
567
+ },
568
+ "outputPad": {
569
+ "anyOf": [
570
+ {
571
+ "type": "number",
572
+ "const": 0
573
+ },
574
+ {
575
+ "type": "number",
576
+ "const": 1
577
+ }
578
+ ],
579
+ "description": "Horizontal padding for transcript content.",
580
+ "default": 1
581
+ },
582
+ "autocompleteMaxVisible": {
583
+ "type": "number",
584
+ "description": "Maximum visible items in the autocomplete dropdown.",
585
+ "default": 5
586
+ },
587
+ "showHardwareCursor": {
588
+ "type": "boolean",
589
+ "description": "Show the terminal cursor while still positioning it for IME."
590
+ },
591
+ "markdown": {
592
+ "type": "object",
593
+ "properties": {
594
+ "codeBlockIndent": {
595
+ "type": "string",
596
+ "default": " "
597
+ },
598
+ "mermaid": {
599
+ "anyOf": [
600
+ {
601
+ "type": "string",
602
+ "const": "off"
603
+ },
604
+ {
605
+ "type": "string",
606
+ "const": "final"
607
+ },
608
+ {
609
+ "type": "string",
610
+ "const": "streaming"
611
+ }
612
+ ],
613
+ "default": "streaming"
614
+ }
615
+ }
616
+ },
617
+ "warnings": {
618
+ "type": "object",
619
+ "properties": {
620
+ "anthropicExtraUsage": {
621
+ "type": "boolean",
622
+ "default": true
623
+ }
624
+ }
625
+ },
626
+ "codemode": {
627
+ "type": "object",
628
+ "properties": {
629
+ "mode": {
630
+ "anyOf": [
631
+ {
632
+ "type": "string",
633
+ "const": "on"
634
+ },
635
+ {
636
+ "type": "string",
637
+ "const": "only"
638
+ }
639
+ ],
640
+ "description": "How codemode presents tools. \"on\" keeps direct tools declared and annotates tools callable from scripts; codemode lists only tools without direct exposure. \"only\" lists every script-callable tool in codemode and does not declare active direct tools.",
641
+ "default": "on"
642
+ },
643
+ "inlineBudget": {
644
+ "type": "number",
645
+ "minimum": 0,
646
+ "description": "Estimated tokens available for inline codemode tool declarations.",
647
+ "default": 3000
648
+ }
649
+ }
650
+ },
651
+ "sessionDir": {
652
+ "type": "string",
653
+ "description": "Custom session storage directory, in the same format as the --session-dir CLI flag."
654
+ },
655
+ "httpProxy": {
656
+ "type": "string",
657
+ "description": "Proxy URL applied as HTTP_PROXY and HTTPS_PROXY for Pi-managed HTTP clients."
658
+ },
659
+ "httpIdleTimeoutMs": {
660
+ "anyOf": [
661
+ {
662
+ "type": "number",
663
+ "minimum": 0
664
+ },
665
+ {
666
+ "type": "string",
667
+ "const": "disabled"
668
+ }
669
+ ],
670
+ "description": "HTTP header or body idle timeout in milliseconds; 0 or \"disabled\" disables it."
671
+ },
672
+ "cacheWarming": {
673
+ "anyOf": [
674
+ {
675
+ "type": "string",
676
+ "const": "off"
677
+ },
678
+ {
679
+ "type": "string",
680
+ "const": "streaming"
681
+ },
682
+ {
683
+ "type": "string",
684
+ "const": "idle"
685
+ }
686
+ ],
687
+ "description": "Cache-warming profile. \"idle\" also warms between agent runs. Global only because each refresh costs money.",
688
+ "default": "streaming"
689
+ },
690
+ "websocketConnectTimeoutMs": {
691
+ "anyOf": [
692
+ {
693
+ "type": "number",
694
+ "minimum": 0
695
+ },
696
+ {
697
+ "type": "string",
698
+ "const": "disabled"
699
+ }
700
+ ],
701
+ "description": "WebSocket connect or open handshake timeout in milliseconds; 0 or \"disabled\" disables it."
702
+ },
703
+ "tuiMode": {
704
+ "anyOf": [
705
+ {
706
+ "type": "string",
707
+ "const": "regular"
708
+ },
709
+ {
710
+ "type": "string",
711
+ "const": "fullscreen"
712
+ }
713
+ ],
714
+ "default": "fullscreen"
715
+ },
716
+ "fullscreenExitOutput": {
717
+ "anyOf": [
718
+ {
719
+ "type": "string",
720
+ "const": "transcript"
721
+ },
722
+ {
723
+ "type": "string",
724
+ "const": "resume-hint"
725
+ }
726
+ ],
727
+ "description": "No effect in regular TUI mode.",
728
+ "default": "transcript"
729
+ },
730
+ "fullscreenScrollbar": {
731
+ "anyOf": [
732
+ {
733
+ "type": "string",
734
+ "const": "auto"
735
+ },
736
+ {
737
+ "type": "string",
738
+ "const": "always"
739
+ },
740
+ {
741
+ "type": "string",
742
+ "const": "hidden"
743
+ }
744
+ ],
745
+ "description": "No effect in regular TUI mode.",
746
+ "default": "auto"
747
+ },
748
+ "fullscreenCopyOnSelect": {
749
+ "type": "boolean",
750
+ "description": "No effect in regular TUI mode.",
751
+ "default": true
752
+ },
753
+ "fullscreenWheelScrollLines": {
754
+ "anyOf": [
755
+ {
756
+ "type": "number"
757
+ },
758
+ {
759
+ "type": "string",
760
+ "const": "auto"
761
+ }
762
+ ],
763
+ "description": "Lines scrolled per wheel event in fullscreen mode; numeric values are clamped from 1 to 100.",
764
+ "default": "auto"
765
+ },
766
+ "queueMode": {
767
+ "anyOf": [
768
+ {
769
+ "type": "string",
770
+ "const": "all"
771
+ },
772
+ {
773
+ "type": "string",
774
+ "const": "one-at-a-time"
775
+ }
776
+ ],
777
+ "description": "Legacy setting migrated to steeringMode.",
778
+ "deprecated": true
779
+ },
780
+ "websockets": {
781
+ "type": "boolean",
782
+ "description": "Legacy setting migrated to transport.",
783
+ "deprecated": true
784
+ }
785
+ },
786
+ "additionalProperties": true,
787
+ "$defs": {
788
+ "ModelThinkingLevel": {
789
+ "enum": [
790
+ "off",
791
+ "minimal",
792
+ "low",
793
+ "medium",
794
+ "high",
795
+ "xhigh",
796
+ "max"
797
+ ]
798
+ }
799
+ }
800
+ }