gsd-pi 2.34.0-dev.bbb5216 → 2.34.0-dev.e6d9bed

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 (416) hide show
  1. package/dist/resources/extensions/gsd/changelog.js +162 -0
  2. package/dist/resources/extensions/gsd/commands-bootstrap.js +1 -0
  3. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +5 -1
  4. package/dist/resources/extensions/gsd/commands.js +8 -1
  5. package/dist/resources/extensions/gsd/docs/preferences-reference.md +10 -0
  6. package/dist/resources/extensions/gsd/doctor-checks.js +113 -5
  7. package/dist/resources/extensions/gsd/doctor-proactive.js +22 -0
  8. package/dist/resources/extensions/gsd/doctor.js +36 -0
  9. package/dist/resources/extensions/gsd/guided-flow.js +4 -2
  10. package/dist/resources/extensions/gsd/preferences-validation.js +38 -0
  11. package/dist/resources/extensions/gsd/preferences.js +2 -0
  12. package/dist/resources/extensions/mcp-client/index.js +2 -1
  13. package/dist/resources/skills/create-gsd-extension/references/events-reference.md +4 -4
  14. package/package.json +1 -1
  15. package/packages/native/dist/native.d.ts +0 -2
  16. package/packages/native/dist/native.js +0 -2
  17. package/packages/native/src/native.ts +0 -3
  18. package/packages/pi-agent-core/dist/agent-loop.d.ts +14 -0
  19. package/packages/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  20. package/packages/pi-agent-core/dist/agent-loop.js +24 -27
  21. package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
  22. package/packages/pi-agent-core/dist/agent.d.ts +1 -0
  23. package/packages/pi-agent-core/dist/agent.d.ts.map +1 -1
  24. package/packages/pi-agent-core/dist/agent.js +11 -22
  25. package/packages/pi-agent-core/dist/agent.js.map +1 -1
  26. package/packages/pi-agent-core/dist/proxy.d.ts +1 -25
  27. package/packages/pi-agent-core/dist/proxy.d.ts.map +1 -1
  28. package/packages/pi-agent-core/dist/proxy.js +3 -9
  29. package/packages/pi-agent-core/dist/proxy.js.map +1 -1
  30. package/packages/pi-agent-core/src/agent-loop.ts +30 -27
  31. package/packages/pi-agent-core/src/agent.ts +12 -23
  32. package/packages/pi-agent-core/src/proxy.ts +3 -9
  33. package/packages/pi-ai/dist/api-registry.d.ts +0 -2
  34. package/packages/pi-ai/dist/api-registry.d.ts.map +1 -1
  35. package/packages/pi-ai/dist/api-registry.js +0 -10
  36. package/packages/pi-ai/dist/api-registry.js.map +1 -1
  37. package/packages/pi-ai/dist/providers/anthropic.d.ts +0 -8
  38. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  39. package/packages/pi-ai/dist/providers/anthropic.js +1 -1
  40. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  41. package/packages/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
  42. package/packages/pi-ai/dist/providers/azure-openai-responses.js +5 -41
  43. package/packages/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
  44. package/packages/pi-ai/dist/providers/github-copilot-headers.d.ts +0 -1
  45. package/packages/pi-ai/dist/providers/github-copilot-headers.d.ts.map +1 -1
  46. package/packages/pi-ai/dist/providers/github-copilot-headers.js +1 -1
  47. package/packages/pi-ai/dist/providers/github-copilot-headers.js.map +1 -1
  48. package/packages/pi-ai/dist/providers/google-gemini-cli.d.ts +1 -43
  49. package/packages/pi-ai/dist/providers/google-gemini-cli.d.ts.map +1 -1
  50. package/packages/pi-ai/dist/providers/google-gemini-cli.js +2 -2
  51. package/packages/pi-ai/dist/providers/google-gemini-cli.js.map +1 -1
  52. package/packages/pi-ai/dist/providers/google-shared.d.ts +0 -4
  53. package/packages/pi-ai/dist/providers/google-shared.d.ts.map +1 -1
  54. package/packages/pi-ai/dist/providers/google-shared.js +1 -1
  55. package/packages/pi-ai/dist/providers/google-shared.js.map +1 -1
  56. package/packages/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
  57. package/packages/pi-ai/dist/providers/openai-completions.js +10 -73
  58. package/packages/pi-ai/dist/providers/openai-completions.js.map +1 -1
  59. package/packages/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
  60. package/packages/pi-ai/dist/providers/openai-responses.js +8 -79
  61. package/packages/pi-ai/dist/providers/openai-responses.js.map +1 -1
  62. package/packages/pi-ai/dist/providers/openai-shared.d.ts +65 -0
  63. package/packages/pi-ai/dist/providers/openai-shared.d.ts.map +1 -0
  64. package/packages/pi-ai/dist/providers/openai-shared.js +146 -0
  65. package/packages/pi-ai/dist/providers/openai-shared.js.map +1 -0
  66. package/packages/pi-ai/dist/providers/register-builtins.d.ts +0 -1
  67. package/packages/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
  68. package/packages/pi-ai/dist/providers/register-builtins.js +1 -1
  69. package/packages/pi-ai/dist/providers/register-builtins.js.map +1 -1
  70. package/packages/pi-ai/dist/utils/event-stream.d.ts +0 -2
  71. package/packages/pi-ai/dist/utils/event-stream.d.ts.map +1 -1
  72. package/packages/pi-ai/dist/utils/event-stream.js +0 -4
  73. package/packages/pi-ai/dist/utils/event-stream.js.map +1 -1
  74. package/packages/pi-ai/dist/utils/oauth/google-antigravity.d.ts.map +1 -1
  75. package/packages/pi-ai/dist/utils/oauth/google-antigravity.js +7 -135
  76. package/packages/pi-ai/dist/utils/oauth/google-antigravity.js.map +1 -1
  77. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.d.ts.map +1 -1
  78. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js +7 -135
  79. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js.map +1 -1
  80. package/packages/pi-ai/dist/utils/oauth/google-oauth-utils.d.ts +46 -0
  81. package/packages/pi-ai/dist/utils/oauth/google-oauth-utils.d.ts.map +1 -0
  82. package/packages/pi-ai/dist/utils/oauth/google-oauth-utils.js +160 -0
  83. package/packages/pi-ai/dist/utils/oauth/google-oauth-utils.js.map +1 -0
  84. package/packages/pi-ai/dist/utils/overflow.d.ts +0 -4
  85. package/packages/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  86. package/packages/pi-ai/dist/utils/overflow.js +0 -6
  87. package/packages/pi-ai/dist/utils/overflow.js.map +1 -1
  88. package/packages/pi-ai/dist/utils/validation.d.ts +0 -8
  89. package/packages/pi-ai/dist/utils/validation.d.ts.map +1 -1
  90. package/packages/pi-ai/dist/utils/validation.js +0 -14
  91. package/packages/pi-ai/dist/utils/validation.js.map +1 -1
  92. package/packages/pi-ai/src/api-registry.ts +0 -12
  93. package/packages/pi-ai/src/providers/anthropic.ts +1 -1
  94. package/packages/pi-ai/src/providers/azure-openai-responses.ts +11 -45
  95. package/packages/pi-ai/src/providers/github-copilot-headers.ts +1 -1
  96. package/packages/pi-ai/src/providers/google-gemini-cli.ts +2 -2
  97. package/packages/pi-ai/src/providers/google-shared.ts +1 -1
  98. package/packages/pi-ai/src/providers/openai-completions.ts +16 -86
  99. package/packages/pi-ai/src/providers/openai-responses.ts +15 -95
  100. package/packages/pi-ai/src/providers/openai-shared.ts +193 -0
  101. package/packages/pi-ai/src/providers/register-builtins.ts +1 -1
  102. package/packages/pi-ai/src/utils/event-stream.ts +0 -5
  103. package/packages/pi-ai/src/utils/oauth/google-antigravity.ts +14 -162
  104. package/packages/pi-ai/src/utils/oauth/google-gemini-cli.ts +13 -161
  105. package/packages/pi-ai/src/utils/oauth/google-oauth-utils.ts +201 -0
  106. package/packages/pi-ai/src/utils/overflow.ts +1 -8
  107. package/packages/pi-ai/src/utils/validation.ts +0 -15
  108. package/packages/pi-coding-agent/dist/config.d.ts +0 -9
  109. package/packages/pi-coding-agent/dist/config.d.ts.map +1 -1
  110. package/packages/pi-coding-agent/dist/config.js +4 -8
  111. package/packages/pi-coding-agent/dist/config.js.map +1 -1
  112. package/packages/pi-coding-agent/dist/core/agent-session.d.ts +16 -63
  113. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  114. package/packages/pi-coding-agent/dist/core/agent-session.js +104 -641
  115. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  116. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts +0 -1
  117. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  118. package/packages/pi-coding-agent/dist/core/auth-storage.js +4 -35
  119. package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  120. package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  121. package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.js +5 -43
  122. package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -1
  123. package/packages/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -1
  124. package/packages/pi-coding-agent/dist/core/compaction/compaction.js +11 -69
  125. package/packages/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -1
  126. package/packages/pi-coding-agent/dist/core/compaction/utils.d.ts +40 -0
  127. package/packages/pi-coding-agent/dist/core/compaction/utils.d.ts.map +1 -1
  128. package/packages/pi-coding-agent/dist/core/compaction/utils.js +78 -0
  129. package/packages/pi-coding-agent/dist/core/compaction/utils.js.map +1 -1
  130. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.d.ts +77 -0
  131. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.d.ts.map +1 -0
  132. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.js +331 -0
  133. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.js.map +1 -0
  134. package/packages/pi-coding-agent/dist/core/export-html/ansi-to-html.d.ts +0 -4
  135. package/packages/pi-coding-agent/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  136. package/packages/pi-coding-agent/dist/core/export-html/ansi-to-html.js +1 -1
  137. package/packages/pi-coding-agent/dist/core/export-html/ansi-to-html.js.map +1 -1
  138. package/packages/pi-coding-agent/dist/core/extensions/index.d.ts +2 -2
  139. package/packages/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
  140. package/packages/pi-coding-agent/dist/core/extensions/index.js +1 -1
  141. package/packages/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
  142. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +15 -5
  143. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  144. package/packages/pi-coding-agent/dist/core/extensions/runner.js +129 -256
  145. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  146. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts +49 -42
  147. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  148. package/packages/pi-coding-agent/dist/core/extensions/types.js +2 -21
  149. package/packages/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  150. package/packages/pi-coding-agent/dist/core/keybindings.d.ts +0 -8
  151. package/packages/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -1
  152. package/packages/pi-coding-agent/dist/core/keybindings.js +2 -2
  153. package/packages/pi-coding-agent/dist/core/keybindings.js.map +1 -1
  154. package/packages/pi-coding-agent/dist/core/lock-utils.d.ts +39 -0
  155. package/packages/pi-coding-agent/dist/core/lock-utils.d.ts.map +1 -0
  156. package/packages/pi-coding-agent/dist/core/lock-utils.js +89 -0
  157. package/packages/pi-coding-agent/dist/core/lock-utils.js.map +1 -0
  158. package/packages/pi-coding-agent/dist/core/lsp/client.d.ts +0 -17
  159. package/packages/pi-coding-agent/dist/core/lsp/client.d.ts.map +1 -1
  160. package/packages/pi-coding-agent/dist/core/lsp/client.js +3 -62
  161. package/packages/pi-coding-agent/dist/core/lsp/client.js.map +1 -1
  162. package/packages/pi-coding-agent/dist/core/lsp/config.d.ts +1 -1
  163. package/packages/pi-coding-agent/dist/core/lsp/config.d.ts.map +1 -1
  164. package/packages/pi-coding-agent/dist/core/lsp/config.js +2 -6
  165. package/packages/pi-coding-agent/dist/core/lsp/config.js.map +1 -1
  166. package/packages/pi-coding-agent/dist/core/lsp/edits.d.ts +0 -5
  167. package/packages/pi-coding-agent/dist/core/lsp/edits.d.ts.map +1 -1
  168. package/packages/pi-coding-agent/dist/core/lsp/edits.js +1 -1
  169. package/packages/pi-coding-agent/dist/core/lsp/edits.js.map +1 -1
  170. package/packages/pi-coding-agent/dist/core/lsp/index.d.ts.map +1 -1
  171. package/packages/pi-coding-agent/dist/core/lsp/index.js +52 -107
  172. package/packages/pi-coding-agent/dist/core/lsp/index.js.map +1 -1
  173. package/packages/pi-coding-agent/dist/core/lsp/lspmux.d.ts +0 -1
  174. package/packages/pi-coding-agent/dist/core/lsp/lspmux.d.ts.map +1 -1
  175. package/packages/pi-coding-agent/dist/core/lsp/lspmux.js +3 -22
  176. package/packages/pi-coding-agent/dist/core/lsp/lspmux.js.map +1 -1
  177. package/packages/pi-coding-agent/dist/core/lsp/types.d.ts +0 -1
  178. package/packages/pi-coding-agent/dist/core/lsp/types.d.ts.map +1 -1
  179. package/packages/pi-coding-agent/dist/core/lsp/types.js +0 -28
  180. package/packages/pi-coding-agent/dist/core/lsp/types.js.map +1 -1
  181. package/packages/pi-coding-agent/dist/core/lsp/utils.d.ts +1 -6
  182. package/packages/pi-coding-agent/dist/core/lsp/utils.d.ts.map +1 -1
  183. package/packages/pi-coding-agent/dist/core/lsp/utils.js +1 -28
  184. package/packages/pi-coding-agent/dist/core/lsp/utils.js.map +1 -1
  185. package/packages/pi-coding-agent/dist/core/messages.d.ts +0 -8
  186. package/packages/pi-coding-agent/dist/core/messages.d.ts.map +1 -1
  187. package/packages/pi-coding-agent/dist/core/messages.js +5 -5
  188. package/packages/pi-coding-agent/dist/core/messages.js.map +1 -1
  189. package/packages/pi-coding-agent/dist/core/model-registry.d.ts +0 -3
  190. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  191. package/packages/pi-coding-agent/dist/core/model-registry.js +1 -3
  192. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  193. package/packages/pi-coding-agent/dist/core/model-resolver.d.ts +1 -26
  194. package/packages/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  195. package/packages/pi-coding-agent/dist/core/model-resolver.js +3 -59
  196. package/packages/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  197. package/packages/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
  198. package/packages/pi-coding-agent/dist/core/package-manager.js +2 -4
  199. package/packages/pi-coding-agent/dist/core/package-manager.js.map +1 -1
  200. package/packages/pi-coding-agent/dist/core/prompt-templates.d.ts +0 -17
  201. package/packages/pi-coding-agent/dist/core/prompt-templates.d.ts.map +1 -1
  202. package/packages/pi-coding-agent/dist/core/prompt-templates.js +2 -2
  203. package/packages/pi-coding-agent/dist/core/prompt-templates.js.map +1 -1
  204. package/packages/pi-coding-agent/dist/core/resource-loader.d.ts +2 -4
  205. package/packages/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
  206. package/packages/pi-coding-agent/dist/core/resource-loader.js +33 -58
  207. package/packages/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
  208. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts +87 -0
  209. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts.map +1 -0
  210. package/packages/pi-coding-agent/dist/core/retry-handler.js +295 -0
  211. package/packages/pi-coding-agent/dist/core/retry-handler.js.map +1 -0
  212. package/packages/pi-coding-agent/dist/core/session-manager.d.ts +0 -5
  213. package/packages/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
  214. package/packages/pi-coding-agent/dist/core/session-manager.js +5 -32
  215. package/packages/pi-coding-agent/dist/core/session-manager.js.map +1 -1
  216. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +8 -12
  217. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  218. package/packages/pi-coding-agent/dist/core/settings-manager.js +78 -168
  219. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  220. package/packages/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
  221. package/packages/pi-coding-agent/dist/core/skills.js +1 -3
  222. package/packages/pi-coding-agent/dist/core/skills.js.map +1 -1
  223. package/packages/pi-coding-agent/dist/index.d.ts +1 -1
  224. package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
  225. package/packages/pi-coding-agent/dist/index.js +1 -1
  226. package/packages/pi-coding-agent/dist/index.js.map +1 -1
  227. package/packages/pi-coding-agent/dist/migrations.d.ts +0 -16
  228. package/packages/pi-coding-agent/dist/migrations.d.ts.map +1 -1
  229. package/packages/pi-coding-agent/dist/migrations.js +2 -2
  230. package/packages/pi-coding-agent/dist/migrations.js.map +1 -1
  231. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts +0 -2
  232. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  233. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector-search.js +2 -2
  234. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  235. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts +1 -1
  236. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  237. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector.js +9 -26
  238. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector.js.map +1 -1
  239. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  240. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +1 -13
  241. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  242. package/packages/pi-coding-agent/dist/modes/interactive/components/tree-render-utils.d.ts +44 -0
  243. package/packages/pi-coding-agent/dist/modes/interactive/components/tree-render-utils.d.ts.map +1 -0
  244. package/packages/pi-coding-agent/dist/modes/interactive/components/tree-render-utils.js +61 -0
  245. package/packages/pi-coding-agent/dist/modes/interactive/components/tree-render-utils.js.map +1 -0
  246. package/packages/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  247. package/packages/pi-coding-agent/dist/modes/interactive/components/tree-selector.js +6 -9
  248. package/packages/pi-coding-agent/dist/modes/interactive/components/tree-selector.js.map +1 -1
  249. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +1 -24
  250. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  251. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +50 -512
  252. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  253. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts +71 -0
  254. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts.map +1 -0
  255. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js +514 -0
  256. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js.map +1 -0
  257. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +65 -4
  258. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  259. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +6 -23
  260. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  261. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts +12 -0
  262. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -0
  263. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +175 -0
  264. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -0
  265. package/packages/pi-coding-agent/dist/modes/interactive/utils/shorten-path.d.ts +6 -0
  266. package/packages/pi-coding-agent/dist/modes/interactive/utils/shorten-path.d.ts.map +1 -0
  267. package/packages/pi-coding-agent/dist/modes/interactive/utils/shorten-path.js +15 -0
  268. package/packages/pi-coding-agent/dist/modes/interactive/utils/shorten-path.js.map +1 -0
  269. package/packages/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -1
  270. package/packages/pi-coding-agent/dist/modes/print-mode.js +2 -30
  271. package/packages/pi-coding-agent/dist/modes/print-mode.js.map +1 -1
  272. package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  273. package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js +2 -28
  274. package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
  275. package/packages/pi-coding-agent/dist/modes/shared/command-context-actions.d.ts +19 -0
  276. package/packages/pi-coding-agent/dist/modes/shared/command-context-actions.d.ts.map +1 -0
  277. package/packages/pi-coding-agent/dist/modes/shared/command-context-actions.js +45 -0
  278. package/packages/pi-coding-agent/dist/modes/shared/command-context-actions.js.map +1 -0
  279. package/packages/pi-coding-agent/dist/utils/changelog.d.ts +0 -4
  280. package/packages/pi-coding-agent/dist/utils/changelog.d.ts.map +1 -1
  281. package/packages/pi-coding-agent/dist/utils/changelog.js +1 -1
  282. package/packages/pi-coding-agent/dist/utils/changelog.js.map +1 -1
  283. package/packages/pi-coding-agent/dist/utils/clipboard-image.d.ts +0 -1
  284. package/packages/pi-coding-agent/dist/utils/clipboard-image.d.ts.map +1 -1
  285. package/packages/pi-coding-agent/dist/utils/clipboard-image.js +1 -1
  286. package/packages/pi-coding-agent/dist/utils/clipboard-image.js.map +1 -1
  287. package/packages/pi-coding-agent/dist/utils/error.d.ts +5 -0
  288. package/packages/pi-coding-agent/dist/utils/error.d.ts.map +1 -0
  289. package/packages/pi-coding-agent/dist/utils/error.js +7 -0
  290. package/packages/pi-coding-agent/dist/utils/error.js.map +1 -0
  291. package/packages/pi-coding-agent/dist/utils/photon.d.ts +0 -19
  292. package/packages/pi-coding-agent/dist/utils/photon.d.ts.map +1 -1
  293. package/packages/pi-coding-agent/dist/utils/photon.js +1 -120
  294. package/packages/pi-coding-agent/dist/utils/photon.js.map +1 -1
  295. package/packages/pi-coding-agent/dist/utils/tools-manager.d.ts +0 -1
  296. package/packages/pi-coding-agent/dist/utils/tools-manager.d.ts.map +1 -1
  297. package/packages/pi-coding-agent/dist/utils/tools-manager.js +1 -1
  298. package/packages/pi-coding-agent/dist/utils/tools-manager.js.map +1 -1
  299. package/packages/pi-coding-agent/src/config.ts +5 -10
  300. package/packages/pi-coding-agent/src/core/agent-session.ts +117 -745
  301. package/packages/pi-coding-agent/src/core/auth-storage.ts +4 -38
  302. package/packages/pi-coding-agent/src/core/compaction/branch-summarization.ts +7 -53
  303. package/packages/pi-coding-agent/src/core/compaction/compaction.ts +14 -74
  304. package/packages/pi-coding-agent/src/core/compaction/utils.ts +100 -0
  305. package/packages/pi-coding-agent/src/core/compaction-orchestrator.ts +424 -0
  306. package/packages/pi-coding-agent/src/core/export-html/ansi-to-html.ts +1 -1
  307. package/packages/pi-coding-agent/src/core/extensions/index.ts +1 -21
  308. package/packages/pi-coding-agent/src/core/extensions/runner.ts +119 -256
  309. package/packages/pi-coding-agent/src/core/extensions/types.ts +50 -69
  310. package/packages/pi-coding-agent/src/core/keybindings.ts +2 -2
  311. package/packages/pi-coding-agent/src/core/lock-utils.ts +113 -0
  312. package/packages/pi-coding-agent/src/core/lsp/client.ts +3 -73
  313. package/packages/pi-coding-agent/src/core/lsp/config.ts +2 -10
  314. package/packages/pi-coding-agent/src/core/lsp/edits.ts +1 -1
  315. package/packages/pi-coding-agent/src/core/lsp/index.ts +83 -152
  316. package/packages/pi-coding-agent/src/core/lsp/lspmux.ts +3 -23
  317. package/packages/pi-coding-agent/src/core/lsp/types.ts +0 -29
  318. package/packages/pi-coding-agent/src/core/lsp/utils.ts +1 -33
  319. package/packages/pi-coding-agent/src/core/messages.ts +5 -5
  320. package/packages/pi-coding-agent/src/core/model-registry.ts +0 -2
  321. package/packages/pi-coding-agent/src/core/model-resolver.ts +3 -77
  322. package/packages/pi-coding-agent/src/core/package-manager.ts +1 -4
  323. package/packages/pi-coding-agent/src/core/prompt-templates.ts +2 -2
  324. package/packages/pi-coding-agent/src/core/resource-loader.ts +43 -67
  325. package/packages/pi-coding-agent/src/core/retry-handler.ts +359 -0
  326. package/packages/pi-coding-agent/src/core/session-manager.ts +5 -34
  327. package/packages/pi-coding-agent/src/core/settings-manager.ts +87 -166
  328. package/packages/pi-coding-agent/src/core/skills.ts +1 -4
  329. package/packages/pi-coding-agent/src/index.ts +1 -7
  330. package/packages/pi-coding-agent/src/migrations.ts +2 -2
  331. package/packages/pi-coding-agent/src/modes/interactive/components/session-selector-search.ts +2 -2
  332. package/packages/pi-coding-agent/src/modes/interactive/components/session-selector.ts +17 -29
  333. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +1 -13
  334. package/packages/pi-coding-agent/src/modes/interactive/components/tree-render-utils.ts +81 -0
  335. package/packages/pi-coding-agent/src/modes/interactive/components/tree-selector.ts +14 -19
  336. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +50 -561
  337. package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.ts +653 -0
  338. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +7 -26
  339. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +196 -0
  340. package/packages/pi-coding-agent/src/modes/interactive/utils/shorten-path.ts +14 -0
  341. package/packages/pi-coding-agent/src/modes/print-mode.ts +2 -30
  342. package/packages/pi-coding-agent/src/modes/rpc/rpc-mode.ts +2 -28
  343. package/packages/pi-coding-agent/src/modes/shared/command-context-actions.ts +53 -0
  344. package/packages/pi-coding-agent/src/utils/changelog.ts +1 -1
  345. package/packages/pi-coding-agent/src/utils/clipboard-image.ts +1 -1
  346. package/packages/pi-coding-agent/src/utils/error.ts +6 -0
  347. package/packages/pi-coding-agent/src/utils/photon.ts +0 -137
  348. package/packages/pi-coding-agent/src/utils/tools-manager.ts +1 -1
  349. package/packages/pi-tui/dist/components/editor.d.ts +0 -10
  350. package/packages/pi-tui/dist/components/editor.d.ts.map +1 -1
  351. package/packages/pi-tui/dist/components/editor.js +1 -1
  352. package/packages/pi-tui/dist/components/editor.js.map +1 -1
  353. package/packages/pi-tui/dist/components/markdown.d.ts +5 -0
  354. package/packages/pi-tui/dist/components/markdown.d.ts.map +1 -1
  355. package/packages/pi-tui/dist/components/markdown.js +25 -31
  356. package/packages/pi-tui/dist/components/markdown.js.map +1 -1
  357. package/packages/pi-tui/dist/keys.d.ts +0 -4
  358. package/packages/pi-tui/dist/keys.d.ts.map +1 -1
  359. package/packages/pi-tui/dist/keys.js +94 -162
  360. package/packages/pi-tui/dist/keys.js.map +1 -1
  361. package/packages/pi-tui/dist/overlay-layout.d.ts +55 -0
  362. package/packages/pi-tui/dist/overlay-layout.d.ts.map +1 -0
  363. package/packages/pi-tui/dist/overlay-layout.js +288 -0
  364. package/packages/pi-tui/dist/overlay-layout.js.map +1 -0
  365. package/packages/pi-tui/dist/tui.d.ts +0 -22
  366. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  367. package/packages/pi-tui/dist/tui.js +6 -272
  368. package/packages/pi-tui/dist/tui.js.map +1 -1
  369. package/packages/pi-tui/dist/utils.d.ts +0 -7
  370. package/packages/pi-tui/dist/utils.d.ts.map +1 -1
  371. package/packages/pi-tui/dist/utils.js +0 -44
  372. package/packages/pi-tui/dist/utils.js.map +1 -1
  373. package/packages/pi-tui/src/components/editor.ts +1 -1
  374. package/packages/pi-tui/src/components/markdown.ts +25 -29
  375. package/packages/pi-tui/src/keys.ts +94 -173
  376. package/packages/pi-tui/src/overlay-layout.ts +372 -0
  377. package/packages/pi-tui/src/tui.ts +11 -312
  378. package/packages/pi-tui/src/utils.ts +0 -43
  379. package/pkg/dist/core/export-html/ansi-to-html.d.ts +0 -4
  380. package/pkg/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  381. package/pkg/dist/core/export-html/ansi-to-html.js +1 -1
  382. package/pkg/dist/core/export-html/ansi-to-html.js.map +1 -1
  383. package/pkg/dist/modes/interactive/theme/theme.d.ts +65 -4
  384. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  385. package/pkg/dist/modes/interactive/theme/theme.js +6 -23
  386. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  387. package/pkg/dist/modes/interactive/theme/themes.d.ts +12 -0
  388. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -0
  389. package/pkg/dist/modes/interactive/theme/themes.js +175 -0
  390. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -0
  391. package/src/resources/extensions/gsd/changelog.ts +213 -0
  392. package/src/resources/extensions/gsd/commands-bootstrap.ts +1 -0
  393. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +5 -1
  394. package/src/resources/extensions/gsd/commands.ts +9 -1
  395. package/src/resources/extensions/gsd/docs/preferences-reference.md +10 -0
  396. package/src/resources/extensions/gsd/doctor-checks.ts +107 -5
  397. package/src/resources/extensions/gsd/doctor-proactive.ts +24 -0
  398. package/src/resources/extensions/gsd/doctor-types.ts +9 -1
  399. package/src/resources/extensions/gsd/doctor.ts +35 -0
  400. package/src/resources/extensions/gsd/guided-flow.ts +4 -2
  401. package/src/resources/extensions/gsd/preferences-validation.ts +38 -0
  402. package/src/resources/extensions/gsd/preferences.ts +2 -0
  403. package/src/resources/extensions/gsd/tests/doctor-git.test.ts +98 -2
  404. package/src/resources/extensions/gsd/tests/doctor-runtime.test.ts +59 -3
  405. package/src/resources/extensions/gsd/tests/preferences.test.ts +28 -0
  406. package/src/resources/extensions/mcp-client/index.ts +2 -1
  407. package/src/resources/skills/create-gsd-extension/references/events-reference.md +4 -4
  408. package/packages/pi-coding-agent/dist/modes/interactive/theme/dark.json +0 -85
  409. package/packages/pi-coding-agent/dist/modes/interactive/theme/light.json +0 -84
  410. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.json +0 -335
  411. package/packages/pi-coding-agent/src/modes/interactive/theme/dark.json +0 -85
  412. package/packages/pi-coding-agent/src/modes/interactive/theme/light.json +0 -84
  413. package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.json +0 -335
  414. package/pkg/dist/modes/interactive/theme/dark.json +0 -85
  415. package/pkg/dist/modes/interactive/theme/light.json +0 -84
  416. package/pkg/dist/modes/interactive/theme/theme-schema.json +0 -335
@@ -28,7 +28,7 @@ function deepMergeSettings(base, overrides) {
28
28
  }
29
29
  return result;
30
30
  }
31
- export class FileSettingsStorage {
31
+ class FileSettingsStorage {
32
32
  constructor(cwd = process.cwd(), agentDir = getAgentDir()) {
33
33
  this.globalSettingsPath = join(agentDir, "settings.json");
34
34
  this.projectSettingsPath = join(cwd, CONFIG_DIR_NAME, "settings.json");
@@ -87,7 +87,7 @@ export class FileSettingsStorage {
87
87
  }
88
88
  }
89
89
  }
90
- export class InMemorySettingsStorage {
90
+ class InMemorySettingsStorage {
91
91
  withLock(scope, fn) {
92
92
  const current = scope === "global" ? this.global : this.project;
93
93
  const next = fn(current);
@@ -349,13 +349,46 @@ export class SettingsManager {
349
349
  this.errors = [];
350
350
  return drained;
351
351
  }
352
+ // ── Generic setter helpers ──────────────────────────────────────────
353
+ /** Set a top-level global setting field, mark modified, and save. */
354
+ setGlobalSetting(key, value) {
355
+ this.globalSettings[key] = value;
356
+ this.markModified(key);
357
+ this.save();
358
+ }
359
+ /** Set a top-level setting, scoped to project when project settings are active. */
360
+ setScopedSetting(key, value) {
361
+ if (this.hasProjectSettings()) {
362
+ this.projectSettings[key] = value;
363
+ this.markProjectModified(key);
364
+ this.saveProjectSettings(this.projectSettings);
365
+ }
366
+ else {
367
+ this.setGlobalSetting(key, value);
368
+ }
369
+ }
370
+ /** Set a nested field within a global settings object (e.g. compaction.enabled). */
371
+ setNestedGlobalSetting(key, nestedKey, value) {
372
+ if (!this.globalSettings[key]) {
373
+ this.globalSettings[key] = {};
374
+ }
375
+ this.globalSettings[key][nestedKey] = value;
376
+ this.markModified(key, nestedKey);
377
+ this.save();
378
+ }
379
+ /** Set a field on project settings (clone, set, mark modified, save). */
380
+ setProjectSetting(key, value) {
381
+ const projectSettings = structuredClone(this.projectSettings);
382
+ projectSettings[key] = value;
383
+ this.markProjectModified(key);
384
+ this.saveProjectSettings(projectSettings);
385
+ }
386
+ // ── Public getters and setters ──────────────────────────────────────
352
387
  getLastChangelogVersion() {
353
388
  return this.settings.lastChangelogVersion;
354
389
  }
355
390
  setLastChangelogVersion(version) {
356
- this.globalSettings.lastChangelogVersion = version;
357
- this.markModified("lastChangelogVersion");
358
- this.save();
391
+ this.setGlobalSetting("lastChangelogVersion", version);
359
392
  }
360
393
  getDefaultProvider() {
361
394
  return this.settings.defaultProvider;
@@ -364,28 +397,10 @@ export class SettingsManager {
364
397
  return this.settings.defaultModel;
365
398
  }
366
399
  setDefaultProvider(provider) {
367
- if (this.hasProjectSettings()) {
368
- this.projectSettings.defaultProvider = provider;
369
- this.markProjectModified("defaultProvider");
370
- this.saveProjectSettings(this.projectSettings);
371
- }
372
- else {
373
- this.globalSettings.defaultProvider = provider;
374
- this.markModified("defaultProvider");
375
- this.save();
376
- }
400
+ this.setScopedSetting("defaultProvider", provider);
377
401
  }
378
402
  setDefaultModel(modelId) {
379
- if (this.hasProjectSettings()) {
380
- this.projectSettings.defaultModel = modelId;
381
- this.markProjectModified("defaultModel");
382
- this.saveProjectSettings(this.projectSettings);
383
- }
384
- else {
385
- this.globalSettings.defaultModel = modelId;
386
- this.markModified("defaultModel");
387
- this.save();
388
- }
403
+ this.setScopedSetting("defaultModel", modelId);
389
404
  }
390
405
  setDefaultModelAndProvider(provider, modelId) {
391
406
  if (this.hasProjectSettings()) {
@@ -407,52 +422,37 @@ export class SettingsManager {
407
422
  return this.settings.steeringMode || "one-at-a-time";
408
423
  }
409
424
  setSteeringMode(mode) {
410
- this.globalSettings.steeringMode = mode;
411
- this.markModified("steeringMode");
412
- this.save();
425
+ this.setGlobalSetting("steeringMode", mode);
413
426
  }
414
427
  getFollowUpMode() {
415
428
  return this.settings.followUpMode || "one-at-a-time";
416
429
  }
417
430
  setFollowUpMode(mode) {
418
- this.globalSettings.followUpMode = mode;
419
- this.markModified("followUpMode");
420
- this.save();
431
+ this.setGlobalSetting("followUpMode", mode);
421
432
  }
422
433
  getTheme() {
423
434
  return this.settings.theme;
424
435
  }
425
436
  setTheme(theme) {
426
- this.globalSettings.theme = theme;
427
- this.markModified("theme");
428
- this.save();
437
+ this.setGlobalSetting("theme", theme);
429
438
  }
430
439
  getDefaultThinkingLevel() {
431
440
  return this.settings.defaultThinkingLevel;
432
441
  }
433
442
  setDefaultThinkingLevel(level) {
434
- this.globalSettings.defaultThinkingLevel = level;
435
- this.markModified("defaultThinkingLevel");
436
- this.save();
443
+ this.setGlobalSetting("defaultThinkingLevel", level);
437
444
  }
438
445
  getTransport() {
439
446
  return this.settings.transport ?? "sse";
440
447
  }
441
448
  setTransport(transport) {
442
- this.globalSettings.transport = transport;
443
- this.markModified("transport");
444
- this.save();
449
+ this.setGlobalSetting("transport", transport);
445
450
  }
446
451
  getCompactionEnabled() {
447
452
  return this.settings.compaction?.enabled ?? true;
448
453
  }
449
454
  setCompactionEnabled(enabled) {
450
- if (!this.globalSettings.compaction) {
451
- this.globalSettings.compaction = {};
452
- }
453
- this.globalSettings.compaction.enabled = enabled;
454
- this.markModified("compaction", "enabled");
455
- this.save();
455
+ this.setNestedGlobalSetting("compaction", "enabled", enabled);
456
456
  }
457
457
  getCompactionReserveTokens() {
458
458
  return this.settings.compaction?.reserveTokens ?? COMPACTION_RESERVE_TOKENS;
@@ -480,12 +480,7 @@ export class SettingsManager {
480
480
  return this.settings.retry?.enabled ?? true;
481
481
  }
482
482
  setRetryEnabled(enabled) {
483
- if (!this.globalSettings.retry) {
484
- this.globalSettings.retry = {};
485
- }
486
- this.globalSettings.retry.enabled = enabled;
487
- this.markModified("retry", "enabled");
488
- this.save();
483
+ this.setNestedGlobalSetting("retry", "enabled", enabled);
489
484
  }
490
485
  getRetrySettings() {
491
486
  return {
@@ -499,119 +494,82 @@ export class SettingsManager {
499
494
  return this.settings.hideThinkingBlock ?? false;
500
495
  }
501
496
  setHideThinkingBlock(hide) {
502
- this.globalSettings.hideThinkingBlock = hide;
503
- this.markModified("hideThinkingBlock");
504
- this.save();
497
+ this.setGlobalSetting("hideThinkingBlock", hide);
505
498
  }
506
499
  getShellPath() {
507
500
  return this.settings.shellPath;
508
501
  }
509
502
  setShellPath(path) {
510
- this.globalSettings.shellPath = path;
511
- this.markModified("shellPath");
512
- this.save();
503
+ this.setGlobalSetting("shellPath", path);
513
504
  }
514
505
  getQuietStartup() {
515
506
  return this.settings.quietStartup ?? false;
516
507
  }
517
508
  setQuietStartup(quiet) {
518
- this.globalSettings.quietStartup = quiet;
519
- this.markModified("quietStartup");
520
- this.save();
509
+ this.setGlobalSetting("quietStartup", quiet);
521
510
  }
522
511
  getShellCommandPrefix() {
523
512
  return this.settings.shellCommandPrefix;
524
513
  }
525
514
  setShellCommandPrefix(prefix) {
526
- this.globalSettings.shellCommandPrefix = prefix;
527
- this.markModified("shellCommandPrefix");
528
- this.save();
515
+ this.setGlobalSetting("shellCommandPrefix", prefix);
529
516
  }
530
517
  getCollapseChangelog() {
531
518
  return this.settings.collapseChangelog ?? false;
532
519
  }
533
520
  setCollapseChangelog(collapse) {
534
- this.globalSettings.collapseChangelog = collapse;
535
- this.markModified("collapseChangelog");
536
- this.save();
521
+ this.setGlobalSetting("collapseChangelog", collapse);
537
522
  }
538
523
  getPackages() {
539
524
  return [...(this.settings.packages ?? [])];
540
525
  }
541
526
  setPackages(packages) {
542
- this.globalSettings.packages = packages;
543
- this.markModified("packages");
544
- this.save();
527
+ this.setGlobalSetting("packages", packages);
545
528
  }
546
529
  setProjectPackages(packages) {
547
- const projectSettings = structuredClone(this.projectSettings);
548
- projectSettings.packages = packages;
549
- this.markProjectModified("packages");
550
- this.saveProjectSettings(projectSettings);
530
+ this.setProjectSetting("packages", packages);
551
531
  }
552
532
  getExtensionPaths() {
553
533
  return [...(this.settings.extensions ?? [])];
554
534
  }
555
535
  setExtensionPaths(paths) {
556
- this.globalSettings.extensions = paths;
557
- this.markModified("extensions");
558
- this.save();
536
+ this.setGlobalSetting("extensions", paths);
559
537
  }
560
538
  setProjectExtensionPaths(paths) {
561
- const projectSettings = structuredClone(this.projectSettings);
562
- projectSettings.extensions = paths;
563
- this.markProjectModified("extensions");
564
- this.saveProjectSettings(projectSettings);
539
+ this.setProjectSetting("extensions", paths);
565
540
  }
566
541
  getSkillPaths() {
567
542
  return [...(this.settings.skills ?? [])];
568
543
  }
569
544
  setSkillPaths(paths) {
570
- this.globalSettings.skills = paths;
571
- this.markModified("skills");
572
- this.save();
545
+ this.setGlobalSetting("skills", paths);
573
546
  }
574
547
  setProjectSkillPaths(paths) {
575
- const projectSettings = structuredClone(this.projectSettings);
576
- projectSettings.skills = paths;
577
- this.markProjectModified("skills");
578
- this.saveProjectSettings(projectSettings);
548
+ this.setProjectSetting("skills", paths);
579
549
  }
580
550
  getPromptTemplatePaths() {
581
551
  return [...(this.settings.prompts ?? [])];
582
552
  }
583
553
  setPromptTemplatePaths(paths) {
584
- this.globalSettings.prompts = paths;
585
- this.markModified("prompts");
586
- this.save();
554
+ this.setGlobalSetting("prompts", paths);
587
555
  }
588
556
  setProjectPromptTemplatePaths(paths) {
589
- const projectSettings = structuredClone(this.projectSettings);
590
- projectSettings.prompts = paths;
591
- this.markProjectModified("prompts");
592
- this.saveProjectSettings(projectSettings);
557
+ this.setProjectSetting("prompts", paths);
593
558
  }
594
559
  getThemePaths() {
595
560
  return [...(this.settings.themes ?? [])];
596
561
  }
597
562
  setThemePaths(paths) {
598
- this.globalSettings.themes = paths;
599
- this.markModified("themes");
600
- this.save();
563
+ this.setGlobalSetting("themes", paths);
601
564
  }
602
565
  setProjectThemePaths(paths) {
603
- const projectSettings = structuredClone(this.projectSettings);
604
- projectSettings.themes = paths;
605
- this.markProjectModified("themes");
606
- this.saveProjectSettings(projectSettings);
566
+ this.setProjectSetting("themes", paths);
607
567
  }
608
568
  getEnableSkillCommands() {
609
569
  return this.settings.enableSkillCommands ?? true;
610
570
  }
611
571
  setEnableSkillCommands(enabled) {
612
- this.globalSettings.enableSkillCommands = enabled;
613
- this.markModified("enableSkillCommands");
614
- this.save();
572
+ this.setGlobalSetting("enableSkillCommands", enabled);
615
573
  }
616
574
  getThinkingBudgets() {
617
575
  return this.settings.thinkingBudgets;
@@ -620,12 +578,7 @@ export class SettingsManager {
620
578
  return this.settings.terminal?.showImages ?? true;
621
579
  }
622
580
  setShowImages(show) {
623
- if (!this.globalSettings.terminal) {
624
- this.globalSettings.terminal = {};
625
- }
626
- this.globalSettings.terminal.showImages = show;
627
- this.markModified("terminal", "showImages");
628
- this.save();
581
+ this.setNestedGlobalSetting("terminal", "showImages", show);
629
582
  }
630
583
  getClearOnShrink() {
631
584
  // Settings takes precedence, then env var, then default false
@@ -635,50 +588,31 @@ export class SettingsManager {
635
588
  return process.env.PI_CLEAR_ON_SHRINK === "1";
636
589
  }
637
590
  setClearOnShrink(enabled) {
638
- if (!this.globalSettings.terminal) {
639
- this.globalSettings.terminal = {};
640
- }
641
- this.globalSettings.terminal.clearOnShrink = enabled;
642
- this.markModified("terminal", "clearOnShrink");
643
- this.save();
591
+ this.setNestedGlobalSetting("terminal", "clearOnShrink", enabled);
644
592
  }
645
593
  getImageAutoResize() {
646
594
  return this.settings.images?.autoResize ?? true;
647
595
  }
648
596
  setImageAutoResize(enabled) {
649
- if (!this.globalSettings.images) {
650
- this.globalSettings.images = {};
651
- }
652
- this.globalSettings.images.autoResize = enabled;
653
- this.markModified("images", "autoResize");
654
- this.save();
597
+ this.setNestedGlobalSetting("images", "autoResize", enabled);
655
598
  }
656
599
  getBlockImages() {
657
600
  return this.settings.images?.blockImages ?? false;
658
601
  }
659
602
  setBlockImages(blocked) {
660
- if (!this.globalSettings.images) {
661
- this.globalSettings.images = {};
662
- }
663
- this.globalSettings.images.blockImages = blocked;
664
- this.markModified("images", "blockImages");
665
- this.save();
603
+ this.setNestedGlobalSetting("images", "blockImages", blocked);
666
604
  }
667
605
  getEnabledModels() {
668
606
  return this.settings.enabledModels;
669
607
  }
670
608
  setEnabledModels(patterns) {
671
- this.globalSettings.enabledModels = patterns;
672
- this.markModified("enabledModels");
673
- this.save();
609
+ this.setGlobalSetting("enabledModels", patterns);
674
610
  }
675
611
  getDoubleEscapeAction() {
676
612
  return this.settings.doubleEscapeAction ?? "tree";
677
613
  }
678
614
  setDoubleEscapeAction(action) {
679
- this.globalSettings.doubleEscapeAction = action;
680
- this.markModified("doubleEscapeAction");
681
- this.save();
615
+ this.setGlobalSetting("doubleEscapeAction", action);
682
616
  }
683
617
  getTreeFilterMode() {
684
618
  const mode = this.settings.treeFilterMode;
@@ -686,49 +620,37 @@ export class SettingsManager {
686
620
  return mode && valid.includes(mode) ? mode : "default";
687
621
  }
688
622
  setTreeFilterMode(mode) {
689
- this.globalSettings.treeFilterMode = mode;
690
- this.markModified("treeFilterMode");
691
- this.save();
623
+ this.setGlobalSetting("treeFilterMode", mode);
692
624
  }
693
625
  getShowHardwareCursor() {
694
626
  return this.settings.showHardwareCursor ?? process.env.PI_HARDWARE_CURSOR === "1";
695
627
  }
696
628
  setShowHardwareCursor(enabled) {
697
- this.globalSettings.showHardwareCursor = enabled;
698
- this.markModified("showHardwareCursor");
699
- this.save();
629
+ this.setGlobalSetting("showHardwareCursor", enabled);
700
630
  }
701
631
  getEditorPaddingX() {
702
632
  return this.settings.editorPaddingX ?? 0;
703
633
  }
704
634
  setEditorPaddingX(padding) {
705
- this.globalSettings.editorPaddingX = Math.max(0, Math.min(3, Math.floor(padding)));
706
- this.markModified("editorPaddingX");
707
- this.save();
635
+ this.setGlobalSetting("editorPaddingX", Math.max(0, Math.min(3, Math.floor(padding))));
708
636
  }
709
637
  getAutocompleteMaxVisible() {
710
638
  return this.settings.autocompleteMaxVisible ?? 5;
711
639
  }
712
640
  setAutocompleteMaxVisible(maxVisible) {
713
- this.globalSettings.autocompleteMaxVisible = Math.max(3, Math.min(20, Math.floor(maxVisible)));
714
- this.markModified("autocompleteMaxVisible");
715
- this.save();
641
+ this.setGlobalSetting("autocompleteMaxVisible", Math.max(3, Math.min(20, Math.floor(maxVisible))));
716
642
  }
717
643
  getRespectGitignoreInPicker() {
718
644
  return this.settings.respectGitignoreInPicker ?? true;
719
645
  }
720
646
  setRespectGitignoreInPicker(value) {
721
- this.globalSettings.respectGitignoreInPicker = value;
722
- this.markModified("respectGitignoreInPicker");
723
- this.save();
647
+ this.setGlobalSetting("respectGitignoreInPicker", value);
724
648
  }
725
649
  getSearchExcludeDirs() {
726
650
  return this.settings.searchExcludeDirs ?? [];
727
651
  }
728
652
  setSearchExcludeDirs(dirs) {
729
- this.globalSettings.searchExcludeDirs = dirs.filter(Boolean);
730
- this.markModified("searchExcludeDirs");
731
- this.save();
653
+ this.setGlobalSetting("searchExcludeDirs", dirs.filter(Boolean));
732
654
  }
733
655
  getCodeBlockIndent() {
734
656
  return this.settings.markdown?.codeBlockIndent ?? " ";
@@ -759,12 +681,7 @@ export class SettingsManager {
759
681
  return this.settings.fallback?.enabled ?? false;
760
682
  }
761
683
  setFallbackEnabled(enabled) {
762
- if (!this.globalSettings.fallback) {
763
- this.globalSettings.fallback = {};
764
- }
765
- this.globalSettings.fallback.enabled = enabled;
766
- this.markModified("fallback", "enabled");
767
- this.save();
684
+ this.setNestedGlobalSetting("fallback", "enabled", enabled);
768
685
  }
769
686
  getFallbackChains() {
770
687
  return this.settings.fallback?.chains ?? {};
@@ -806,20 +723,13 @@ export class SettingsManager {
806
723
  return this.settings.modelDiscovery ?? {};
807
724
  }
808
725
  setModelDiscoveryEnabled(enabled) {
809
- if (!this.globalSettings.modelDiscovery) {
810
- this.globalSettings.modelDiscovery = {};
811
- }
812
- this.globalSettings.modelDiscovery.enabled = enabled;
813
- this.markModified("modelDiscovery", "enabled");
814
- this.save();
726
+ this.setNestedGlobalSetting("modelDiscovery", "enabled", enabled);
815
727
  }
816
728
  getEditMode() {
817
729
  return this.settings.editMode ?? "standard";
818
730
  }
819
731
  setEditMode(mode) {
820
- this.globalSettings.editMode = mode;
821
- this.markModified("editMode");
822
- this.save();
732
+ this.setGlobalSetting("editMode", mode);
823
733
  }
824
734
  }
825
735
  //# sourceMappingURL=settings-manager.js.map