@subimpact/e 0.100.0 → 0.100.1

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 (911) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +7 -1
  3. package/dist/bundle/chunks/{chunk-KAXC2ESR.js → chunk-GICF34HK.js} +8 -8
  4. package/dist/bundle/chunks/{chunk-FBZU53S6.js → chunk-NBSSK56J.js} +1 -1
  5. package/dist/bundle/chunks/{chunk-QSDAQKAU.js → chunk-RAB4RJZ2.js} +11 -12
  6. package/dist/bundle/chunks/{easter-egg-3d-DD22MRM3.js → easter-egg-3d-JQPBRQEU.js} +1 -1
  7. package/dist/bundle/chunks/{openai-codex-responses-YOLBMQOC.js → openai-codex-responses-WGH4GHLE.js} +1 -1
  8. package/dist/bundle/chunks/{virtual-modules-YQUQNKDN.js → virtual-modules-L22CHFWU.js} +1 -1
  9. package/dist/bundle/cli-runtime.js +1 -1
  10. package/dist/bundle/index.js +1 -1
  11. package/dist/bundle/rpc-entry.js +1 -1
  12. package/docs/compaction.md +2 -2
  13. package/docs/extensions.md +4 -10
  14. package/docs/message-types.md +2 -4
  15. package/docs/session-format.md +4 -4
  16. package/docs/settings.md +1 -1
  17. package/docs/tui.md +1 -1
  18. package/examples/extensions/overlay-test.ts +2 -2
  19. package/package.json +31 -31
  20. package/dist/bun/cli.d.ts +0 -5
  21. package/dist/bun/cli.d.ts.map +0 -1
  22. package/dist/bun/cli.js +0 -5
  23. package/dist/bun/cli.js.map +0 -1
  24. package/dist/bun/restore-sandbox-env.d.ts +0 -17
  25. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  26. package/dist/bun/restore-sandbox-env.js +0 -36
  27. package/dist/bun/restore-sandbox-env.js.map +0 -1
  28. package/dist/bun/runtime-setup.d.ts +0 -2
  29. package/dist/bun/runtime-setup.d.ts.map +0 -1
  30. package/dist/bun/runtime-setup.js +0 -9
  31. package/dist/bun/runtime-setup.js.map +0 -1
  32. package/dist/bun/sandbox-env-setup.d.ts +0 -2
  33. package/dist/bun/sandbox-env-setup.d.ts.map +0 -1
  34. package/dist/bun/sandbox-env-setup.js +0 -4
  35. package/dist/bun/sandbox-env-setup.js.map +0 -1
  36. package/dist/cli/args.d.ts +0 -61
  37. package/dist/cli/args.d.ts.map +0 -1
  38. package/dist/cli/args.js +0 -453
  39. package/dist/cli/args.js.map +0 -1
  40. package/dist/cli/auth-check.d.ts +0 -19
  41. package/dist/cli/auth-check.d.ts.map +0 -1
  42. package/dist/cli/auth-check.js +0 -50
  43. package/dist/cli/auth-check.js.map +0 -1
  44. package/dist/cli/auth-command.d.ts +0 -24
  45. package/dist/cli/auth-command.d.ts.map +0 -1
  46. package/dist/cli/auth-command.js +0 -103
  47. package/dist/cli/auth-command.js.map +0 -1
  48. package/dist/cli/config-selector.d.ts +0 -16
  49. package/dist/cli/config-selector.d.ts.map +0 -1
  50. package/dist/cli/config-selector.js +0 -32
  51. package/dist/cli/config-selector.js.map +0 -1
  52. package/dist/cli/credential-print.d.ts +0 -13
  53. package/dist/cli/credential-print.d.ts.map +0 -1
  54. package/dist/cli/credential-print.js +0 -76
  55. package/dist/cli/credential-print.js.map +0 -1
  56. package/dist/cli/file-processor.d.ts +0 -15
  57. package/dist/cli/file-processor.d.ts.map +0 -1
  58. package/dist/cli/file-processor.js +0 -71
  59. package/dist/cli/file-processor.js.map +0 -1
  60. package/dist/cli/initial-message.d.ts +0 -18
  61. package/dist/cli/initial-message.d.ts.map +0 -1
  62. package/dist/cli/initial-message.js +0 -22
  63. package/dist/cli/initial-message.js.map +0 -1
  64. package/dist/cli/list-models.d.ts +0 -9
  65. package/dist/cli/list-models.d.ts.map +0 -1
  66. package/dist/cli/list-models.js +0 -98
  67. package/dist/cli/list-models.js.map +0 -1
  68. package/dist/cli/project-trust.d.ts +0 -10
  69. package/dist/cli/project-trust.d.ts.map +0 -1
  70. package/dist/cli/project-trust.js +0 -48
  71. package/dist/cli/project-trust.js.map +0 -1
  72. package/dist/cli/session-picker.d.ts +0 -10
  73. package/dist/cli/session-picker.d.ts.map +0 -1
  74. package/dist/cli/session-picker.js +0 -36
  75. package/dist/cli/session-picker.js.map +0 -1
  76. package/dist/cli/setup.d.ts +0 -2
  77. package/dist/cli/setup.d.ts.map +0 -1
  78. package/dist/cli/setup.js +0 -12
  79. package/dist/cli/setup.js.map +0 -1
  80. package/dist/cli/startup-ui.d.ts +0 -20
  81. package/dist/cli/startup-ui.d.ts.map +0 -1
  82. package/dist/cli/startup-ui.js +0 -193
  83. package/dist/cli/startup-ui.js.map +0 -1
  84. package/dist/cli.d.ts +0 -3
  85. package/dist/cli.d.ts.map +0 -1
  86. package/dist/cli.js +0 -6
  87. package/dist/cli.js.map +0 -1
  88. package/dist/config.d.ts +0 -107
  89. package/dist/config.d.ts.map +0 -1
  90. package/dist/config.js +0 -486
  91. package/dist/config.js.map +0 -1
  92. package/dist/core/agent-session-runtime.d.ts +0 -119
  93. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  94. package/dist/core/agent-session-runtime.js +0 -317
  95. package/dist/core/agent-session-runtime.js.map +0 -1
  96. package/dist/core/agent-session-services.d.ts +0 -86
  97. package/dist/core/agent-session-services.d.ts.map +0 -1
  98. package/dist/core/agent-session-services.js +0 -147
  99. package/dist/core/agent-session-services.js.map +0 -1
  100. package/dist/core/agent-session.d.ts +0 -859
  101. package/dist/core/agent-session.d.ts.map +0 -1
  102. package/dist/core/agent-session.js +0 -3416
  103. package/dist/core/agent-session.js.map +0 -1
  104. package/dist/core/auth-guidance.d.ts +0 -5
  105. package/dist/core/auth-guidance.d.ts.map +0 -1
  106. package/dist/core/auth-guidance.js +0 -21
  107. package/dist/core/auth-guidance.js.map +0 -1
  108. package/dist/core/auth-storage.d.ts +0 -72
  109. package/dist/core/auth-storage.d.ts.map +0 -1
  110. package/dist/core/auth-storage.js +0 -426
  111. package/dist/core/auth-storage.js.map +0 -1
  112. package/dist/core/bash-executor.d.ts +0 -32
  113. package/dist/core/bash-executor.d.ts.map +0 -1
  114. package/dist/core/bash-executor.js +0 -106
  115. package/dist/core/bash-executor.js.map +0 -1
  116. package/dist/core/bug-report-upload.d.ts +0 -12
  117. package/dist/core/bug-report-upload.d.ts.map +0 -1
  118. package/dist/core/bug-report-upload.js +0 -22
  119. package/dist/core/bug-report-upload.js.map +0 -1
  120. package/dist/core/bug-report.d.ts +0 -176
  121. package/dist/core/bug-report.d.ts.map +0 -1
  122. package/dist/core/bug-report.js +0 -292
  123. package/dist/core/bug-report.js.map +0 -1
  124. package/dist/core/cache-stats.d.ts +0 -49
  125. package/dist/core/cache-stats.d.ts.map +0 -1
  126. package/dist/core/cache-stats.js +0 -112
  127. package/dist/core/cache-stats.js.map +0 -1
  128. package/dist/core/cache-warmer.d.ts +0 -103
  129. package/dist/core/cache-warmer.d.ts.map +0 -1
  130. package/dist/core/cache-warmer.js +0 -359
  131. package/dist/core/cache-warmer.js.map +0 -1
  132. package/dist/core/compaction/branch-summarization.d.ts +0 -98
  133. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  134. package/dist/core/compaction/branch-summarization.js +0 -251
  135. package/dist/core/compaction/branch-summarization.js.map +0 -1
  136. package/dist/core/compaction/compaction.d.ts +0 -145
  137. package/dist/core/compaction/compaction.d.ts.map +0 -1
  138. package/dist/core/compaction/compaction.js +0 -744
  139. package/dist/core/compaction/compaction.js.map +0 -1
  140. package/dist/core/compaction/index.d.ts +0 -7
  141. package/dist/core/compaction/index.d.ts.map +0 -1
  142. package/dist/core/compaction/index.js +0 -7
  143. package/dist/core/compaction/index.js.map +0 -1
  144. package/dist/core/compaction/utils.d.ts +0 -39
  145. package/dist/core/compaction/utils.d.ts.map +0 -1
  146. package/dist/core/compaction/utils.js +0 -149
  147. package/dist/core/compaction/utils.js.map +0 -1
  148. package/dist/core/crash-log.d.ts +0 -27
  149. package/dist/core/crash-log.d.ts.map +0 -1
  150. package/dist/core/crash-log.js +0 -140
  151. package/dist/core/crash-log.js.map +0 -1
  152. package/dist/core/defaults.d.ts +0 -4
  153. package/dist/core/defaults.d.ts.map +0 -1
  154. package/dist/core/defaults.js +0 -11
  155. package/dist/core/defaults.js.map +0 -1
  156. package/dist/core/diagnostics.d.ts +0 -15
  157. package/dist/core/diagnostics.d.ts.map +0 -1
  158. package/dist/core/diagnostics.js +0 -2
  159. package/dist/core/diagnostics.js.map +0 -1
  160. package/dist/core/event-bus.d.ts +0 -9
  161. package/dist/core/event-bus.d.ts.map +0 -1
  162. package/dist/core/event-bus.js +0 -25
  163. package/dist/core/event-bus.js.map +0 -1
  164. package/dist/core/exec.d.ts +0 -29
  165. package/dist/core/exec.d.ts.map +0 -1
  166. package/dist/core/exec.js +0 -75
  167. package/dist/core/exec.js.map +0 -1
  168. package/dist/core/experimental.d.ts +0 -2
  169. package/dist/core/experimental.d.ts.map +0 -1
  170. package/dist/core/experimental.js +0 -6
  171. package/dist/core/experimental.js.map +0 -1
  172. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  173. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  174. package/dist/core/export-html/ansi-to-html.js +0 -249
  175. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  176. package/dist/core/export-html/index.d.ts +0 -37
  177. package/dist/core/export-html/index.d.ts.map +0 -1
  178. package/dist/core/export-html/index.js +0 -226
  179. package/dist/core/export-html/index.js.map +0 -1
  180. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  181. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  182. package/dist/core/export-html/tool-renderer.js +0 -109
  183. package/dist/core/export-html/tool-renderer.js.map +0 -1
  184. package/dist/core/extensions/compat-check.d.ts +0 -26
  185. package/dist/core/extensions/compat-check.d.ts.map +0 -1
  186. package/dist/core/extensions/compat-check.js +0 -129
  187. package/dist/core/extensions/compat-check.js.map +0 -1
  188. package/dist/core/extensions/index.d.ts +0 -12
  189. package/dist/core/extensions/index.d.ts.map +0 -1
  190. package/dist/core/extensions/index.js +0 -9
  191. package/dist/core/extensions/index.js.map +0 -1
  192. package/dist/core/extensions/jiti-loader.d.ts +0 -2
  193. package/dist/core/extensions/jiti-loader.d.ts.map +0 -1
  194. package/dist/core/extensions/jiti-loader.js +0 -4
  195. package/dist/core/extensions/jiti-loader.js.map +0 -1
  196. package/dist/core/extensions/jiti-static-loader.d.ts +0 -2
  197. package/dist/core/extensions/jiti-static-loader.d.ts.map +0 -1
  198. package/dist/core/extensions/jiti-static-loader.js +0 -4
  199. package/dist/core/extensions/jiti-static-loader.js.map +0 -1
  200. package/dist/core/extensions/loader.d.ts +0 -23
  201. package/dist/core/extensions/loader.d.ts.map +0 -1
  202. package/dist/core/extensions/loader.js +0 -689
  203. package/dist/core/extensions/loader.js.map +0 -1
  204. package/dist/core/extensions/runner.d.ts +0 -204
  205. package/dist/core/extensions/runner.d.ts.map +0 -1
  206. package/dist/core/extensions/runner.js +0 -1207
  207. package/dist/core/extensions/runner.js.map +0 -1
  208. package/dist/core/extensions/types.d.ts +0 -1623
  209. package/dist/core/extensions/types.d.ts.map +0 -1
  210. package/dist/core/extensions/types.js +0 -48
  211. package/dist/core/extensions/types.js.map +0 -1
  212. package/dist/core/extensions/virtual-modules.d.ts +0 -3
  213. package/dist/core/extensions/virtual-modules.d.ts.map +0 -1
  214. package/dist/core/extensions/virtual-modules.js +0 -38
  215. package/dist/core/extensions/virtual-modules.js.map +0 -1
  216. package/dist/core/extensions/wrapper.d.ts +0 -20
  217. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  218. package/dist/core/extensions/wrapper.js +0 -22
  219. package/dist/core/extensions/wrapper.js.map +0 -1
  220. package/dist/core/footer-data-provider.d.ts +0 -64
  221. package/dist/core/footer-data-provider.d.ts.map +0 -1
  222. package/dist/core/footer-data-provider.js +0 -338
  223. package/dist/core/footer-data-provider.js.map +0 -1
  224. package/dist/core/http-dispatcher.d.ts +0 -22
  225. package/dist/core/http-dispatcher.d.ts.map +0 -1
  226. package/dist/core/http-dispatcher.js +0 -98
  227. package/dist/core/http-dispatcher.js.map +0 -1
  228. package/dist/core/index.d.ts +0 -14
  229. package/dist/core/index.d.ts.map +0 -1
  230. package/dist/core/index.js +0 -13
  231. package/dist/core/index.js.map +0 -1
  232. package/dist/core/keybindings.d.ts +0 -428
  233. package/dist/core/keybindings.d.ts.map +0 -1
  234. package/dist/core/keybindings.js +0 -321
  235. package/dist/core/keybindings.js.map +0 -1
  236. package/dist/core/messages.d.ts +0 -77
  237. package/dist/core/messages.d.ts.map +0 -1
  238. package/dist/core/messages.js +0 -124
  239. package/dist/core/messages.js.map +0 -1
  240. package/dist/core/model-config.d.ts +0 -760
  241. package/dist/core/model-config.d.ts.map +0 -1
  242. package/dist/core/model-config.js +0 -294
  243. package/dist/core/model-config.js.map +0 -1
  244. package/dist/core/model-registry.d.ts +0 -61
  245. package/dist/core/model-registry.d.ts.map +0 -1
  246. package/dist/core/model-registry.js +0 -140
  247. package/dist/core/model-registry.js.map +0 -1
  248. package/dist/core/model-resolver.d.ts +0 -124
  249. package/dist/core/model-resolver.d.ts.map +0 -1
  250. package/dist/core/model-resolver.js +0 -590
  251. package/dist/core/model-resolver.js.map +0 -1
  252. package/dist/core/model-runtime.d.ts +0 -145
  253. package/dist/core/model-runtime.d.ts.map +0 -1
  254. package/dist/core/model-runtime.js +0 -758
  255. package/dist/core/model-runtime.js.map +0 -1
  256. package/dist/core/models-store.d.ts +0 -22
  257. package/dist/core/models-store.d.ts.map +0 -1
  258. package/dist/core/models-store.js +0 -115
  259. package/dist/core/models-store.js.map +0 -1
  260. package/dist/core/nested-tool-calls.d.ts +0 -102
  261. package/dist/core/nested-tool-calls.d.ts.map +0 -1
  262. package/dist/core/nested-tool-calls.js +0 -178
  263. package/dist/core/nested-tool-calls.js.map +0 -1
  264. package/dist/core/output-guard.d.ts +0 -7
  265. package/dist/core/output-guard.d.ts.map +0 -1
  266. package/dist/core/output-guard.js +0 -89
  267. package/dist/core/output-guard.js.map +0 -1
  268. package/dist/core/package-manager.d.ts +0 -222
  269. package/dist/core/package-manager.d.ts.map +0 -1
  270. package/dist/core/package-manager.js +0 -2258
  271. package/dist/core/package-manager.js.map +0 -1
  272. package/dist/core/pi-manifest.d.ts +0 -8
  273. package/dist/core/pi-manifest.d.ts.map +0 -1
  274. package/dist/core/pi-manifest.js +0 -26
  275. package/dist/core/pi-manifest.js.map +0 -1
  276. package/dist/core/project-trust.d.ts +0 -15
  277. package/dist/core/project-trust.d.ts.map +0 -1
  278. package/dist/core/project-trust.js +0 -59
  279. package/dist/core/project-trust.js.map +0 -1
  280. package/dist/core/prompt-templates.d.ts +0 -59
  281. package/dist/core/prompt-templates.d.ts.map +0 -1
  282. package/dist/core/prompt-templates.js +0 -262
  283. package/dist/core/prompt-templates.js.map +0 -1
  284. package/dist/core/provider-attribution.d.ts +0 -4
  285. package/dist/core/provider-attribution.d.ts.map +0 -1
  286. package/dist/core/provider-attribution.js +0 -72
  287. package/dist/core/provider-attribution.js.map +0 -1
  288. package/dist/core/provider-composer.d.ts +0 -80
  289. package/dist/core/provider-composer.d.ts.map +0 -1
  290. package/dist/core/provider-composer.js +0 -488
  291. package/dist/core/provider-composer.js.map +0 -1
  292. package/dist/core/radius.d.ts +0 -5
  293. package/dist/core/radius.d.ts.map +0 -1
  294. package/dist/core/radius.js +0 -9
  295. package/dist/core/radius.js.map +0 -1
  296. package/dist/core/remote-catalog-provider.d.ts +0 -12
  297. package/dist/core/remote-catalog-provider.d.ts.map +0 -1
  298. package/dist/core/remote-catalog-provider.js +0 -132
  299. package/dist/core/remote-catalog-provider.js.map +0 -1
  300. package/dist/core/resolve-config-value.d.ts +0 -30
  301. package/dist/core/resolve-config-value.d.ts.map +0 -1
  302. package/dist/core/resolve-config-value.js +0 -247
  303. package/dist/core/resolve-config-value.js.map +0 -1
  304. package/dist/core/resource-loader.d.ts +0 -227
  305. package/dist/core/resource-loader.d.ts.map +0 -1
  306. package/dist/core/resource-loader.js +0 -1008
  307. package/dist/core/resource-loader.js.map +0 -1
  308. package/dist/core/runtime-credentials.d.ts +0 -15
  309. package/dist/core/runtime-credentials.d.ts.map +0 -1
  310. package/dist/core/runtime-credentials.js +0 -39
  311. package/dist/core/runtime-credentials.js.map +0 -1
  312. package/dist/core/sdk.d.ts +0 -108
  313. package/dist/core/sdk.d.ts.map +0 -1
  314. package/dist/core/sdk.js +0 -315
  315. package/dist/core/sdk.js.map +0 -1
  316. package/dist/core/session-cwd.d.ts +0 -19
  317. package/dist/core/session-cwd.d.ts.map +0 -1
  318. package/dist/core/session-cwd.js +0 -38
  319. package/dist/core/session-cwd.js.map +0 -1
  320. package/dist/core/session-export.d.ts +0 -8
  321. package/dist/core/session-export.d.ts.map +0 -1
  322. package/dist/core/session-export.js +0 -33
  323. package/dist/core/session-export.js.map +0 -1
  324. package/dist/core/session-manager.d.ts +0 -416
  325. package/dist/core/session-manager.d.ts.map +0 -1
  326. package/dist/core/session-manager.js +0 -1537
  327. package/dist/core/session-manager.js.map +0 -1
  328. package/dist/core/settings-diagnostics.d.ts +0 -9
  329. package/dist/core/settings-diagnostics.d.ts.map +0 -1
  330. package/dist/core/settings-diagnostics.js +0 -21
  331. package/dist/core/settings-diagnostics.js.map +0 -1
  332. package/dist/core/settings-manager.d.ts +0 -362
  333. package/dist/core/settings-manager.d.ts.map +0 -1
  334. package/dist/core/settings-manager.js +0 -1107
  335. package/dist/core/settings-manager.js.map +0 -1
  336. package/dist/core/skills.d.ts +0 -60
  337. package/dist/core/skills.d.ts.map +0 -1
  338. package/dist/core/skills.js +0 -407
  339. package/dist/core/skills.js.map +0 -1
  340. package/dist/core/slash-commands.d.ts +0 -15
  341. package/dist/core/slash-commands.d.ts.map +0 -1
  342. package/dist/core/slash-commands.js +0 -28
  343. package/dist/core/slash-commands.js.map +0 -1
  344. package/dist/core/source-info.d.ts +0 -26
  345. package/dist/core/source-info.d.ts.map +0 -1
  346. package/dist/core/source-info.js +0 -35
  347. package/dist/core/source-info.js.map +0 -1
  348. package/dist/core/system-prompt.d.ts +0 -71
  349. package/dist/core/system-prompt.d.ts.map +0 -1
  350. package/dist/core/system-prompt.js +0 -147
  351. package/dist/core/system-prompt.js.map +0 -1
  352. package/dist/core/telemetry.d.ts +0 -3
  353. package/dist/core/telemetry.d.ts.map +0 -1
  354. package/dist/core/telemetry.js +0 -10
  355. package/dist/core/telemetry.js.map +0 -1
  356. package/dist/core/timings.d.ts +0 -6
  357. package/dist/core/timings.d.ts.map +0 -1
  358. package/dist/core/timings.js +0 -42
  359. package/dist/core/timings.js.map +0 -1
  360. package/dist/core/tools/bash.d.ts +0 -101
  361. package/dist/core/tools/bash.d.ts.map +0 -1
  362. package/dist/core/tools/bash.js +0 -348
  363. package/dist/core/tools/bash.js.map +0 -1
  364. package/dist/core/tools/edit-diff.d.ts +0 -101
  365. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  366. package/dist/core/tools/edit-diff.js +0 -421
  367. package/dist/core/tools/edit-diff.js.map +0 -1
  368. package/dist/core/tools/edit.d.ts +0 -44
  369. package/dist/core/tools/edit.d.ts.map +0 -1
  370. package/dist/core/tools/edit.js +0 -147
  371. package/dist/core/tools/edit.js.map +0 -1
  372. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  373. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  374. package/dist/core/tools/file-mutation-queue.js +0 -52
  375. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  376. package/dist/core/tools/find.d.ts +0 -42
  377. package/dist/core/tools/find.d.ts.map +0 -1
  378. package/dist/core/tools/find.js +0 -251
  379. package/dist/core/tools/find.js.map +0 -1
  380. package/dist/core/tools/grep.d.ts +0 -41
  381. package/dist/core/tools/grep.d.ts.map +0 -1
  382. package/dist/core/tools/grep.js +0 -252
  383. package/dist/core/tools/grep.js.map +0 -1
  384. package/dist/core/tools/index.d.ts +0 -43
  385. package/dist/core/tools/index.d.ts.map +0 -1
  386. package/dist/core/tools/index.js +0 -129
  387. package/dist/core/tools/index.js.map +0 -1
  388. package/dist/core/tools/ls.d.ts +0 -41
  389. package/dist/core/tools/ls.d.ts.map +0 -1
  390. package/dist/core/tools/ls.js +0 -126
  391. package/dist/core/tools/ls.js.map +0 -1
  392. package/dist/core/tools/output-accumulator.d.ts +0 -63
  393. package/dist/core/tools/output-accumulator.d.ts.map +0 -1
  394. package/dist/core/tools/output-accumulator.js +0 -220
  395. package/dist/core/tools/output-accumulator.js.map +0 -1
  396. package/dist/core/tools/path-utils.d.ts +0 -10
  397. package/dist/core/tools/path-utils.d.ts.map +0 -1
  398. package/dist/core/tools/path-utils.js +0 -99
  399. package/dist/core/tools/path-utils.js.map +0 -1
  400. package/dist/core/tools/powershell.d.ts +0 -16
  401. package/dist/core/tools/powershell.d.ts.map +0 -1
  402. package/dist/core/tools/powershell.js +0 -39
  403. package/dist/core/tools/powershell.js.map +0 -1
  404. package/dist/core/tools/read.d.ts +0 -42
  405. package/dist/core/tools/read.d.ts.map +0 -1
  406. package/dist/core/tools/read.js +0 -169
  407. package/dist/core/tools/read.js.map +0 -1
  408. package/dist/core/tools/render-utils.d.ts +0 -30
  409. package/dist/core/tools/render-utils.d.ts.map +0 -1
  410. package/dist/core/tools/render-utils.js +0 -91
  411. package/dist/core/tools/render-utils.js.map +0 -1
  412. package/dist/core/tools/renderers/bash.d.ts +0 -12
  413. package/dist/core/tools/renderers/bash.d.ts.map +0 -1
  414. package/dist/core/tools/renderers/bash.js +0 -117
  415. package/dist/core/tools/renderers/bash.js.map +0 -1
  416. package/dist/core/tools/renderers/edit.d.ts +0 -23
  417. package/dist/core/tools/renderers/edit.d.ts.map +0 -1
  418. package/dist/core/tools/renderers/edit.js +0 -168
  419. package/dist/core/tools/renderers/edit.js.map +0 -1
  420. package/dist/core/tools/renderers/find.d.ts +0 -10
  421. package/dist/core/tools/renderers/find.d.ts.map +0 -1
  422. package/dist/core/tools/renderers/find.js +0 -64
  423. package/dist/core/tools/renderers/find.js.map +0 -1
  424. package/dist/core/tools/renderers/grep.d.ts +0 -10
  425. package/dist/core/tools/renderers/grep.d.ts.map +0 -1
  426. package/dist/core/tools/renderers/grep.js +0 -69
  427. package/dist/core/tools/renderers/grep.js.map +0 -1
  428. package/dist/core/tools/renderers/index.d.ts +0 -28
  429. package/dist/core/tools/renderers/index.d.ts.map +0 -1
  430. package/dist/core/tools/renderers/index.js +0 -47
  431. package/dist/core/tools/renderers/index.js.map +0 -1
  432. package/dist/core/tools/renderers/ls.d.ts +0 -10
  433. package/dist/core/tools/renderers/ls.d.ts.map +0 -1
  434. package/dist/core/tools/renderers/ls.js +0 -58
  435. package/dist/core/tools/renderers/ls.js.map +0 -1
  436. package/dist/core/tools/renderers/read.d.ts +0 -11
  437. package/dist/core/tools/renderers/read.d.ts.map +0 -1
  438. package/dist/core/tools/renderers/read.js +0 -130
  439. package/dist/core/tools/renderers/read.js.map +0 -1
  440. package/dist/core/tools/renderers/write.d.ts +0 -10
  441. package/dist/core/tools/renderers/write.d.ts.map +0 -1
  442. package/dist/core/tools/renderers/write.js +0 -153
  443. package/dist/core/tools/renderers/write.js.map +0 -1
  444. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -16
  445. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  446. package/dist/core/tools/tool-definition-wrapper.js +0 -38
  447. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  448. package/dist/core/tools/truncate.d.ts +0 -84
  449. package/dist/core/tools/truncate.d.ts.map +0 -1
  450. package/dist/core/tools/truncate.js +0 -244
  451. package/dist/core/tools/truncate.js.map +0 -1
  452. package/dist/core/tools/write.d.ts +0 -30
  453. package/dist/core/tools/write.d.ts.map +0 -1
  454. package/dist/core/tools/write.js +0 -61
  455. package/dist/core/tools/write.js.map +0 -1
  456. package/dist/core/trust-manager.d.ts +0 -36
  457. package/dist/core/trust-manager.d.ts.map +0 -1
  458. package/dist/core/trust-manager.js +0 -203
  459. package/dist/core/trust-manager.js.map +0 -1
  460. package/dist/core/usage-totals.d.ts +0 -21
  461. package/dist/core/usage-totals.d.ts.map +0 -1
  462. package/dist/core/usage-totals.js +0 -79
  463. package/dist/core/usage-totals.js.map +0 -1
  464. package/dist/core/virtual-models.d.ts +0 -117
  465. package/dist/core/virtual-models.d.ts.map +0 -1
  466. package/dist/core/virtual-models.js +0 -124
  467. package/dist/core/virtual-models.js.map +0 -1
  468. package/dist/extensions/index.d.ts +0 -3
  469. package/dist/extensions/index.d.ts.map +0 -1
  470. package/dist/extensions/index.js +0 -3
  471. package/dist/extensions/index.js.map +0 -1
  472. package/dist/extensions/llama/client.d.ts +0 -69
  473. package/dist/extensions/llama/client.d.ts.map +0 -1
  474. package/dist/extensions/llama/client.js +0 -313
  475. package/dist/extensions/llama/client.js.map +0 -1
  476. package/dist/extensions/llama/huggingface.d.ts +0 -23
  477. package/dist/extensions/llama/huggingface.d.ts.map +0 -1
  478. package/dist/extensions/llama/huggingface.js +0 -141
  479. package/dist/extensions/llama/huggingface.js.map +0 -1
  480. package/dist/extensions/llama/index.d.ts +0 -3
  481. package/dist/extensions/llama/index.d.ts.map +0 -1
  482. package/dist/extensions/llama/index.js +0 -219
  483. package/dist/extensions/llama/index.js.map +0 -1
  484. package/dist/extensions/llama/provider.d.ts +0 -12
  485. package/dist/extensions/llama/provider.d.ts.map +0 -1
  486. package/dist/extensions/llama/provider.js +0 -213
  487. package/dist/extensions/llama/provider.js.map +0 -1
  488. package/dist/extensions/llama/ui.d.ts +0 -42
  489. package/dist/extensions/llama/ui.d.ts.map +0 -1
  490. package/dist/extensions/llama/ui.js +0 -416
  491. package/dist/extensions/llama/ui.js.map +0 -1
  492. package/dist/index.d.ts +0 -38
  493. package/dist/index.d.ts.map +0 -1
  494. package/dist/index.js +0 -49
  495. package/dist/index.js.map +0 -1
  496. package/dist/main.d.ts +0 -16
  497. package/dist/main.d.ts.map +0 -1
  498. package/dist/main.js +0 -819
  499. package/dist/main.js.map +0 -1
  500. package/dist/migrations.d.ts +0 -33
  501. package/dist/migrations.d.ts.map +0 -1
  502. package/dist/migrations.js +0 -282
  503. package/dist/migrations.js.map +0 -1
  504. package/dist/modes/index.d.ts +0 -10
  505. package/dist/modes/index.d.ts.map +0 -1
  506. package/dist/modes/index.js +0 -8
  507. package/dist/modes/index.js.map +0 -1
  508. package/dist/modes/interactive/bug-report.d.ts +0 -16
  509. package/dist/modes/interactive/bug-report.d.ts.map +0 -1
  510. package/dist/modes/interactive/bug-report.js +0 -210
  511. package/dist/modes/interactive/bug-report.js.map +0 -1
  512. package/dist/modes/interactive/chat-viewport.d.ts +0 -20
  513. package/dist/modes/interactive/chat-viewport.d.ts.map +0 -1
  514. package/dist/modes/interactive/chat-viewport.js +0 -28
  515. package/dist/modes/interactive/chat-viewport.js.map +0 -1
  516. package/dist/modes/interactive/components/armin.d.ts +0 -37
  517. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  518. package/dist/modes/interactive/components/armin.js +0 -335
  519. package/dist/modes/interactive/components/armin.js.map +0 -1
  520. package/dist/modes/interactive/components/assistant-message.d.ts +0 -26
  521. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  522. package/dist/modes/interactive/components/assistant-message.js +0 -158
  523. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  524. package/dist/modes/interactive/components/bash-execution.d.ts +0 -38
  525. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  526. package/dist/modes/interactive/components/bash-execution.js +0 -178
  527. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  528. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  529. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  530. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  531. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  532. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -17
  533. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  534. package/dist/modes/interactive/components/branch-summary-message.js +0 -54
  535. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  536. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -17
  537. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  538. package/dist/modes/interactive/components/compaction-summary-message.js +0 -55
  539. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  540. package/dist/modes/interactive/components/config-selector.d.ts +0 -102
  541. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  542. package/dist/modes/interactive/components/config-selector.js +0 -771
  543. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  544. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  545. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  546. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  547. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  548. package/dist/modes/interactive/components/custom-editor.d.ts +0 -30
  549. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  550. package/dist/modes/interactive/components/custom-editor.js +0 -115
  551. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  552. package/dist/modes/interactive/components/custom-entry.d.ts +0 -21
  553. package/dist/modes/interactive/components/custom-entry.d.ts.map +0 -1
  554. package/dist/modes/interactive/components/custom-entry.js +0 -58
  555. package/dist/modes/interactive/components/custom-entry.js.map +0 -1
  556. package/dist/modes/interactive/components/custom-message.d.ts +0 -22
  557. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  558. package/dist/modes/interactive/components/custom-message.js +0 -88
  559. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  560. package/dist/modes/interactive/components/diff.d.ts +0 -12
  561. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  562. package/dist/modes/interactive/components/diff.js +0 -133
  563. package/dist/modes/interactive/components/diff.js.map +0 -1
  564. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  565. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  566. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  567. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  568. package/dist/modes/interactive/components/e-logo.d.ts +0 -16
  569. package/dist/modes/interactive/components/e-logo.d.ts.map +0 -1
  570. package/dist/modes/interactive/components/e-logo.js +0 -29
  571. package/dist/modes/interactive/components/e-logo.js.map +0 -1
  572. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  573. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  574. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  575. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  576. package/dist/modes/interactive/components/easter-egg-3d.d.ts +0 -104
  577. package/dist/modes/interactive/components/easter-egg-3d.d.ts.map +0 -1
  578. package/dist/modes/interactive/components/easter-egg-3d.js +0 -1138
  579. package/dist/modes/interactive/components/easter-egg-3d.js.map +0 -1
  580. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts +0 -6
  581. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts.map +0 -1
  582. package/dist/modes/interactive/components/easter-egg-3d.lazy.js +0 -23
  583. package/dist/modes/interactive/components/easter-egg-3d.lazy.js.map +0 -1
  584. package/dist/modes/interactive/components/extension-editor.d.ts +0 -24
  585. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  586. package/dist/modes/interactive/components/extension-editor.js +0 -103
  587. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  588. package/dist/modes/interactive/components/extension-input.d.ts +0 -25
  589. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  590. package/dist/modes/interactive/components/extension-input.js +0 -67
  591. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  592. package/dist/modes/interactive/components/extension-selector.d.ts +0 -27
  593. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  594. package/dist/modes/interactive/components/extension-selector.js +0 -87
  595. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  596. package/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  597. package/dist/modes/interactive/components/first-time-setup.d.ts.map +0 -1
  598. package/dist/modes/interactive/components/first-time-setup.js +0 -109
  599. package/dist/modes/interactive/components/first-time-setup.js.map +0 -1
  600. package/dist/modes/interactive/components/footer.d.ts +0 -39
  601. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  602. package/dist/modes/interactive/components/footer.js +0 -265
  603. package/dist/modes/interactive/components/footer.js.map +0 -1
  604. package/dist/modes/interactive/components/index.d.ts +0 -33
  605. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  606. package/dist/modes/interactive/components/index.js +0 -34
  607. package/dist/modes/interactive/components/index.js.map +0 -1
  608. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  609. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  610. package/dist/modes/interactive/components/keybinding-hints.js +0 -36
  611. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  612. package/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  613. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  614. package/dist/modes/interactive/components/login-dialog.js +0 -188
  615. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  616. package/dist/modes/interactive/components/markdown-transform.d.ts +0 -3
  617. package/dist/modes/interactive/components/markdown-transform.d.ts.map +0 -1
  618. package/dist/modes/interactive/components/markdown-transform.js +0 -19
  619. package/dist/modes/interactive/components/markdown-transform.js.map +0 -1
  620. package/dist/modes/interactive/components/mermaid.d.ts +0 -11
  621. package/dist/modes/interactive/components/mermaid.d.ts.map +0 -1
  622. package/dist/modes/interactive/components/mermaid.js +0 -75
  623. package/dist/modes/interactive/components/mermaid.js.map +0 -1
  624. package/dist/modes/interactive/components/model-selector.d.ts +0 -60
  625. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  626. package/dist/modes/interactive/components/model-selector.js +0 -361
  627. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  628. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  629. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  630. package/dist/modes/interactive/components/oauth-selector.js +0 -163
  631. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  632. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -46
  633. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  634. package/dist/modes/interactive/components/scoped-models-selector.js +0 -326
  635. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  636. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  637. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  638. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  639. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  640. package/dist/modes/interactive/components/session-selector.d.ts +0 -95
  641. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  642. package/dist/modes/interactive/components/session-selector.js +0 -893
  643. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  644. package/dist/modes/interactive/components/settings-selector.d.ts +0 -96
  645. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  646. package/dist/modes/interactive/components/settings-selector.js +0 -742
  647. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  648. package/dist/modes/interactive/components/settings-submenu.d.ts +0 -72
  649. package/dist/modes/interactive/components/settings-submenu.d.ts.map +0 -1
  650. package/dist/modes/interactive/components/settings-submenu.js +0 -165
  651. package/dist/modes/interactive/components/settings-submenu.js.map +0 -1
  652. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  653. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  654. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  655. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  656. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -18
  657. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  658. package/dist/modes/interactive/components/skill-invocation-message.js +0 -57
  659. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  660. package/dist/modes/interactive/components/status-indicator.d.ts +0 -30
  661. package/dist/modes/interactive/components/status-indicator.d.ts.map +0 -1
  662. package/dist/modes/interactive/components/status-indicator.js +0 -67
  663. package/dist/modes/interactive/components/status-indicator.js.map +0 -1
  664. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  665. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  666. package/dist/modes/interactive/components/theme-selector.js +0 -50
  667. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  668. package/dist/modes/interactive/components/themed-text.d.ts +0 -17
  669. package/dist/modes/interactive/components/themed-text.d.ts.map +0 -1
  670. package/dist/modes/interactive/components/themed-text.js +0 -29
  671. package/dist/modes/interactive/components/themed-text.js.map +0 -1
  672. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -23
  673. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  674. package/dist/modes/interactive/components/thinking-selector.js +0 -109
  675. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  676. package/dist/modes/interactive/components/tool-execution.d.ts +0 -83
  677. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  678. package/dist/modes/interactive/components/tool-execution.js +0 -323
  679. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  680. package/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  681. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  682. package/dist/modes/interactive/components/tree-selector.js +0 -1254
  683. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  684. package/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  685. package/dist/modes/interactive/components/trust-selector.d.ts.map +0 -1
  686. package/dist/modes/interactive/components/trust-selector.js +0 -91
  687. package/dist/modes/interactive/components/trust-selector.js.map +0 -1
  688. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  689. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  690. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  691. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  692. package/dist/modes/interactive/components/user-message.d.ts +0 -16
  693. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  694. package/dist/modes/interactive/components/user-message.js +0 -50
  695. package/dist/modes/interactive/components/user-message.js.map +0 -1
  696. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -48
  697. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  698. package/dist/modes/interactive/components/visual-truncate.js +0 -66
  699. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  700. package/dist/modes/interactive/external-editor.d.ts +0 -12
  701. package/dist/modes/interactive/external-editor.d.ts.map +0 -1
  702. package/dist/modes/interactive/external-editor.js +0 -38
  703. package/dist/modes/interactive/external-editor.js.map +0 -1
  704. package/dist/modes/interactive/interactive-mode.d.ts +0 -470
  705. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  706. package/dist/modes/interactive/interactive-mode.js +0 -5795
  707. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  708. package/dist/modes/interactive/model-catalog-refresh.d.ts +0 -7
  709. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +0 -1
  710. package/dist/modes/interactive/model-catalog-refresh.js +0 -34
  711. package/dist/modes/interactive/model-catalog-refresh.js.map +0 -1
  712. package/dist/modes/interactive/model-search.d.ts +0 -12
  713. package/dist/modes/interactive/model-search.d.ts.map +0 -1
  714. package/dist/modes/interactive/model-search.js +0 -15
  715. package/dist/modes/interactive/model-search.js.map +0 -1
  716. package/dist/modes/interactive/session-share.d.ts +0 -18
  717. package/dist/modes/interactive/session-share.d.ts.map +0 -1
  718. package/dist/modes/interactive/session-share.js +0 -188
  719. package/dist/modes/interactive/session-share.js.map +0 -1
  720. package/dist/modes/interactive/theme/system-theme.d.ts +0 -55
  721. package/dist/modes/interactive/theme/system-theme.d.ts.map +0 -1
  722. package/dist/modes/interactive/theme/system-theme.js +0 -546
  723. package/dist/modes/interactive/theme/system-theme.js.map +0 -1
  724. package/dist/modes/interactive/theme/theme-controller.d.ts +0 -81
  725. package/dist/modes/interactive/theme/theme-controller.d.ts.map +0 -1
  726. package/dist/modes/interactive/theme/theme-controller.js +0 -210
  727. package/dist/modes/interactive/theme/theme-controller.js.map +0 -1
  728. package/dist/modes/interactive/theme/theme-json.d.ts +0 -85
  729. package/dist/modes/interactive/theme/theme-json.d.ts.map +0 -1
  730. package/dist/modes/interactive/theme/theme-json.js +0 -132
  731. package/dist/modes/interactive/theme/theme-json.js.map +0 -1
  732. package/dist/modes/interactive/theme/theme.d.ts +0 -158
  733. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  734. package/dist/modes/interactive/theme/theme.js +0 -913
  735. package/dist/modes/interactive/theme/theme.js.map +0 -1
  736. package/dist/modes/interactive/tui-renderer.d.ts +0 -22
  737. package/dist/modes/interactive/tui-renderer.d.ts.map +0 -1
  738. package/dist/modes/interactive/tui-renderer.js +0 -67
  739. package/dist/modes/interactive/tui-renderer.js.map +0 -1
  740. package/dist/modes/json-event.d.ts +0 -34
  741. package/dist/modes/json-event.d.ts.map +0 -1
  742. package/dist/modes/json-event.js +0 -29
  743. package/dist/modes/json-event.js.map +0 -1
  744. package/dist/modes/print-mode.d.ts +0 -28
  745. package/dist/modes/print-mode.d.ts.map +0 -1
  746. package/dist/modes/print-mode.js +0 -142
  747. package/dist/modes/print-mode.js.map +0 -1
  748. package/dist/modes/rpc/jsonl.d.ts +0 -17
  749. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  750. package/dist/modes/rpc/jsonl.js +0 -49
  751. package/dist/modes/rpc/jsonl.js.map +0 -1
  752. package/dist/modes/rpc/rpc-client.d.ts +0 -254
  753. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  754. package/dist/modes/rpc/rpc-client.js +0 -499
  755. package/dist/modes/rpc/rpc-client.js.map +0 -1
  756. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  757. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  758. package/dist/modes/rpc/rpc-mode.js +0 -655
  759. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  760. package/dist/modes/rpc/rpc-types.d.ts +0 -478
  761. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  762. package/dist/modes/rpc/rpc-types.js +0 -8
  763. package/dist/modes/rpc/rpc-types.js.map +0 -1
  764. package/dist/package-manager-cli.d.ts +0 -9
  765. package/dist/package-manager-cli.d.ts.map +0 -1
  766. package/dist/package-manager-cli.js +0 -1003
  767. package/dist/package-manager-cli.js.map +0 -1
  768. package/dist/rpc-entry.d.ts +0 -3
  769. package/dist/rpc-entry.d.ts.map +0 -1
  770. package/dist/rpc-entry.js +0 -11
  771. package/dist/rpc-entry.js.map +0 -1
  772. package/dist/utils/abort.d.ts +0 -5
  773. package/dist/utils/abort.d.ts.map +0 -1
  774. package/dist/utils/abort.js +0 -48
  775. package/dist/utils/abort.js.map +0 -1
  776. package/dist/utils/ansi.d.ts +0 -10
  777. package/dist/utils/ansi.d.ts.map +0 -1
  778. package/dist/utils/ansi.js +0 -71
  779. package/dist/utils/ansi.js.map +0 -1
  780. package/dist/utils/changelog.d.ts +0 -22
  781. package/dist/utils/changelog.d.ts.map +0 -1
  782. package/dist/utils/changelog.js +0 -165
  783. package/dist/utils/changelog.js.map +0 -1
  784. package/dist/utils/child-process.d.ts +0 -18
  785. package/dist/utils/child-process.d.ts.map +0 -1
  786. package/dist/utils/child-process.js +0 -106
  787. package/dist/utils/child-process.js.map +0 -1
  788. package/dist/utils/clipboard-command.d.ts +0 -7
  789. package/dist/utils/clipboard-command.d.ts.map +0 -1
  790. package/dist/utils/clipboard-command.js +0 -45
  791. package/dist/utils/clipboard-command.js.map +0 -1
  792. package/dist/utils/clipboard-image.d.ts +0 -11
  793. package/dist/utils/clipboard-image.d.ts.map +0 -1
  794. package/dist/utils/clipboard-image.js +0 -214
  795. package/dist/utils/clipboard-image.js.map +0 -1
  796. package/dist/utils/clipboard.d.ts +0 -6
  797. package/dist/utils/clipboard.d.ts.map +0 -1
  798. package/dist/utils/clipboard.js +0 -157
  799. package/dist/utils/clipboard.js.map +0 -1
  800. package/dist/utils/deprecation.d.ts +0 -4
  801. package/dist/utils/deprecation.d.ts.map +0 -1
  802. package/dist/utils/deprecation.js +0 -13
  803. package/dist/utils/deprecation.js.map +0 -1
  804. package/dist/utils/exif-orientation.d.ts +0 -5
  805. package/dist/utils/exif-orientation.d.ts.map +0 -1
  806. package/dist/utils/exif-orientation.js +0 -157
  807. package/dist/utils/exif-orientation.js.map +0 -1
  808. package/dist/utils/frontmatter.d.ts +0 -8
  809. package/dist/utils/frontmatter.d.ts.map +0 -1
  810. package/dist/utils/frontmatter.js +0 -27
  811. package/dist/utils/frontmatter.js.map +0 -1
  812. package/dist/utils/fs-watch.d.ts +0 -5
  813. package/dist/utils/fs-watch.d.ts.map +0 -1
  814. package/dist/utils/fs-watch.js +0 -25
  815. package/dist/utils/fs-watch.js.map +0 -1
  816. package/dist/utils/git.d.ts +0 -26
  817. package/dist/utils/git.d.ts.map +0 -1
  818. package/dist/utils/git.js +0 -195
  819. package/dist/utils/git.js.map +0 -1
  820. package/dist/utils/html.d.ts +0 -7
  821. package/dist/utils/html.d.ts.map +0 -1
  822. package/dist/utils/html.js +0 -40
  823. package/dist/utils/html.js.map +0 -1
  824. package/dist/utils/image-convert.d.ts +0 -22
  825. package/dist/utils/image-convert.d.ts.map +0 -1
  826. package/dist/utils/image-convert.js +0 -84
  827. package/dist/utils/image-convert.js.map +0 -1
  828. package/dist/utils/image-process.d.ts +0 -18
  829. package/dist/utils/image-process.d.ts.map +0 -1
  830. package/dist/utils/image-process.js +0 -83
  831. package/dist/utils/image-process.js.map +0 -1
  832. package/dist/utils/image-resize-core.d.ts +0 -42
  833. package/dist/utils/image-resize-core.d.ts.map +0 -1
  834. package/dist/utils/image-resize-core.js +0 -129
  835. package/dist/utils/image-resize-core.js.map +0 -1
  836. package/dist/utils/image-resize-worker.d.ts +0 -2
  837. package/dist/utils/image-resize-worker.d.ts.map +0 -1
  838. package/dist/utils/image-resize-worker.js +0 -32
  839. package/dist/utils/image-resize-worker.js.map +0 -1
  840. package/dist/utils/image-resize.d.ts +0 -16
  841. package/dist/utils/image-resize.d.ts.map +0 -1
  842. package/dist/utils/image-resize.js +0 -96
  843. package/dist/utils/image-resize.js.map +0 -1
  844. package/dist/utils/json.d.ts +0 -3
  845. package/dist/utils/json.d.ts.map +0 -1
  846. package/dist/utils/json.js +0 -7
  847. package/dist/utils/json.js.map +0 -1
  848. package/dist/utils/management-http.d.ts +0 -25
  849. package/dist/utils/management-http.d.ts.map +0 -1
  850. package/dist/utils/management-http.js +0 -54
  851. package/dist/utils/management-http.js.map +0 -1
  852. package/dist/utils/mime.d.ts +0 -3
  853. package/dist/utils/mime.d.ts.map +0 -1
  854. package/dist/utils/mime.js +0 -110
  855. package/dist/utils/mime.js.map +0 -1
  856. package/dist/utils/open-browser.d.ts +0 -9
  857. package/dist/utils/open-browser.d.ts.map +0 -1
  858. package/dist/utils/open-browser.js +0 -22
  859. package/dist/utils/open-browser.js.map +0 -1
  860. package/dist/utils/paths.d.ts +0 -34
  861. package/dist/utils/paths.d.ts.map +0 -1
  862. package/dist/utils/paths.js +0 -115
  863. package/dist/utils/paths.js.map +0 -1
  864. package/dist/utils/photon.d.ts +0 -21
  865. package/dist/utils/photon.d.ts.map +0 -1
  866. package/dist/utils/photon.js +0 -121
  867. package/dist/utils/photon.js.map +0 -1
  868. package/dist/utils/pi-user-agent.d.ts +0 -2
  869. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  870. package/dist/utils/pi-user-agent.js +0 -5
  871. package/dist/utils/pi-user-agent.js.map +0 -1
  872. package/dist/utils/shell.d.ts +0 -32
  873. package/dist/utils/shell.d.ts.map +0 -1
  874. package/dist/utils/shell.js +0 -189
  875. package/dist/utils/shell.js.map +0 -1
  876. package/dist/utils/sleep.d.ts +0 -5
  877. package/dist/utils/sleep.d.ts.map +0 -1
  878. package/dist/utils/sleep.js +0 -17
  879. package/dist/utils/sleep.js.map +0 -1
  880. package/dist/utils/syntax-highlight.d.ts +0 -13
  881. package/dist/utils/syntax-highlight.d.ts.map +0 -1
  882. package/dist/utils/syntax-highlight.js +0 -184
  883. package/dist/utils/syntax-highlight.js.map +0 -1
  884. package/dist/utils/text.d.ts +0 -8
  885. package/dist/utils/text.d.ts.map +0 -1
  886. package/dist/utils/text.js +0 -9
  887. package/dist/utils/text.js.map +0 -1
  888. package/dist/utils/tool-result-images.d.ts +0 -21
  889. package/dist/utils/tool-result-images.d.ts.map +0 -1
  890. package/dist/utils/tool-result-images.js +0 -48
  891. package/dist/utils/tool-result-images.js.map +0 -1
  892. package/dist/utils/tools-manager.d.ts +0 -13
  893. package/dist/utils/tools-manager.d.ts.map +0 -1
  894. package/dist/utils/tools-manager.js +0 -343
  895. package/dist/utils/tools-manager.js.map +0 -1
  896. package/dist/utils/version-check.d.ts +0 -19
  897. package/dist/utils/version-check.d.ts.map +0 -1
  898. package/dist/utils/version-check.js +0 -72
  899. package/dist/utils/version-check.js.map +0 -1
  900. package/dist/utils/windows-self-update.d.ts +0 -3
  901. package/dist/utils/windows-self-update.d.ts.map +0 -1
  902. package/dist/utils/windows-self-update.js +0 -77
  903. package/dist/utils/windows-self-update.js.map +0 -1
  904. package/dist/utils/wsl.d.ts +0 -3
  905. package/dist/utils/wsl.d.ts.map +0 -1
  906. package/dist/utils/wsl.js +0 -15
  907. package/dist/utils/wsl.js.map +0 -1
  908. package/dist/utils/zip.d.ts +0 -7
  909. package/dist/utils/zip.d.ts.map +0 -1
  910. package/dist/utils/zip.js +0 -60
  911. package/dist/utils/zip.js.map +0 -1
@@ -1,1107 +0,0 @@
1
- import { DEFAULT_MAX_AGENT_RETRY_DELAY_MS } from "@earendil-works/pi-ai";
2
- import { randomUUID } from "crypto";
3
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
4
- import { dirname, join } from "path";
5
- import lockfile from "proper-lockfile";
6
- import { CONFIG_DIR_NAME, getAgentDir, readAppEnv } from "../config.js";
7
- import { normalizePath, resolvePath } from "../utils/paths.js";
8
- import { stripBom } from "../utils/text.js";
9
- import { DEFAULT_HTTP_IDLE_TIMEOUT_MS, parseHttpIdleTimeoutMs } from "./http-dispatcher.js";
10
- const DEFAULT_COMPACTION_TOKEN_SETTINGS = {
11
- reserveTokens: 16384,
12
- keepRecentTokens: 20000,
13
- };
14
- /** Cache-warming profile. "idle" also warms between agent runs. */
15
- export const CACHE_WARMING_MODES = ["off", "streaming", "idle"];
16
- function isMergeableObject(value) {
17
- return typeof value === "object" && value !== null && !Array.isArray(value);
18
- }
19
- function deepMergeObjects(base, overrides) {
20
- const result = { ...base };
21
- for (const key of Object.keys(overrides)) {
22
- const overrideValue = overrides[key];
23
- if (overrideValue === undefined) {
24
- continue;
25
- }
26
- const baseValue = base[key];
27
- result[key] =
28
- isMergeableObject(baseValue) && isMergeableObject(overrideValue)
29
- ? deepMergeObjects(baseValue, overrideValue)
30
- : overrideValue;
31
- }
32
- return result;
33
- }
34
- /** Tools enabled at startup when `defaultTools` does not change them. */
35
- export const DEFAULT_TOOL_NAMES = ["read", "bash", "edit", "write"];
36
- function isToolModifier(entry) {
37
- return typeof entry === "string" && (entry.startsWith("+") || entry.startsWith("-"));
38
- }
39
- /**
40
- * Merge `defaultTools` of two settings layers. A list with plain tool names replaces the inherited
41
- * one; a list of only `+name`/`-name` entries is appended, so it modifies the inherited selection.
42
- */
43
- function mergeDefaultTools(base, overrides) {
44
- if (overrides === undefined)
45
- return base;
46
- // Settings files are not validated; a malformed value replaces instead of throwing here.
47
- if (!Array.isArray(base) || !Array.isArray(overrides) || !overrides.every(isToolModifier))
48
- return overrides;
49
- return [...base, ...overrides];
50
- }
51
- /**
52
- * Resolve a merged `defaultTools` list: plain names replace `DEFAULT_TOOL_NAMES`, then `+name` adds
53
- * and `-name` removes a tool, in list order.
54
- */
55
- function resolveDefaultTools(entries) {
56
- const plain = entries.filter((entry) => !isToolModifier(entry));
57
- const tools = plain.length > 0 || entries.length === 0 ? plain : [...DEFAULT_TOOL_NAMES];
58
- for (const entry of entries) {
59
- if (!isToolModifier(entry))
60
- continue;
61
- const name = entry.slice(1);
62
- const index = tools.indexOf(name);
63
- if (entry.startsWith("+") && index === -1 && name)
64
- tools.push(name);
65
- else if (entry.startsWith("-") && index !== -1)
66
- tools.splice(index, 1);
67
- }
68
- return tools;
69
- }
70
- /** Deep merge settings: project/overrides take precedence, nested objects merge recursively */
71
- function deepMergeSettings(base, overrides) {
72
- const merged = deepMergeObjects(base, overrides);
73
- const defaultTools = mergeDefaultTools(base.defaultTools, overrides.defaultTools);
74
- return defaultTools === undefined ? merged : { ...merged, defaultTools };
75
- }
76
- function parseTimeoutSetting(value, settingName) {
77
- const timeoutMs = parseHttpIdleTimeoutMs(value);
78
- if (timeoutMs !== undefined) {
79
- return timeoutMs;
80
- }
81
- if (value !== undefined) {
82
- throw new Error(`Invalid ${settingName} setting: ${String(value)}`);
83
- }
84
- return undefined;
85
- }
86
- function toSettingsError(scope, error, path) {
87
- return {
88
- scope,
89
- ...(path ? { path } : {}),
90
- error: error instanceof Error ? error : new Error(String(error)),
91
- };
92
- }
93
- export class FileSettingsStorage {
94
- globalSettingsPath;
95
- projectSettingsPath;
96
- constructor(cwd, agentDir) {
97
- const resolvedCwd = resolvePath(cwd);
98
- const resolvedAgentDir = resolvePath(agentDir);
99
- this.globalSettingsPath = join(resolvedAgentDir, "settings.json");
100
- this.projectSettingsPath = join(resolvedCwd, CONFIG_DIR_NAME, "settings.json");
101
- }
102
- acquireLockSyncWithRetry(path) {
103
- const maxAttempts = 10;
104
- const delayMs = 20;
105
- let lastError;
106
- for (let attempt = 1; attempt <= maxAttempts; attempt++) {
107
- try {
108
- return lockfile.lockSync(path, { realpath: false });
109
- }
110
- catch (error) {
111
- const code = typeof error === "object" && error !== null && "code" in error
112
- ? String(error.code)
113
- : undefined;
114
- if (code !== "ELOCKED" || attempt === maxAttempts) {
115
- throw error;
116
- }
117
- lastError = error;
118
- const start = Date.now();
119
- while (Date.now() - start < delayMs) {
120
- // Sleep synchronously to avoid changing callers to async.
121
- }
122
- }
123
- }
124
- throw lastError ?? new Error("Failed to acquire settings lock");
125
- }
126
- withLock(scope, fn) {
127
- const path = scope === "global" ? this.globalSettingsPath : this.projectSettingsPath;
128
- const dir = dirname(path);
129
- let release;
130
- try {
131
- // Only create directory and lock if file exists or we need to write
132
- const fileExists = existsSync(path);
133
- if (fileExists) {
134
- release = this.acquireLockSyncWithRetry(path);
135
- }
136
- const current = fileExists ? readFileSync(path, "utf-8") : undefined;
137
- const next = fn(current);
138
- if (next !== undefined) {
139
- // Only create directory when we actually need to write
140
- if (!existsSync(dir)) {
141
- mkdirSync(dir, { recursive: true });
142
- }
143
- if (!release) {
144
- release = this.acquireLockSyncWithRetry(path);
145
- }
146
- writeFileSync(path, next, "utf-8");
147
- }
148
- }
149
- finally {
150
- if (release) {
151
- release();
152
- }
153
- }
154
- }
155
- }
156
- export class InMemorySettingsStorage {
157
- global;
158
- project;
159
- withLock(scope, fn) {
160
- const current = scope === "global" ? this.global : this.project;
161
- const next = fn(current);
162
- if (next !== undefined) {
163
- if (scope === "global") {
164
- this.global = next;
165
- }
166
- else {
167
- this.project = next;
168
- }
169
- }
170
- }
171
- }
172
- export class SettingsManager {
173
- storage;
174
- globalSettings;
175
- projectSettings;
176
- settings;
177
- projectTrusted;
178
- modifiedFields = new Set(); // Track global fields modified during session
179
- modifiedNestedFields = new Map(); // Track global nested field modifications
180
- modifiedProjectFields = new Set(); // Track project fields modified during session
181
- modifiedProjectNestedFields = new Map(); // Track project nested field modifications
182
- globalSettingsLoadError = null; // Track if global settings file had parse errors
183
- projectSettingsLoadError = null; // Track if project settings file had parse errors
184
- writeQueue = Promise.resolve();
185
- errors;
186
- settingsPaths;
187
- constructor(storage, initialGlobal, initialProject, globalLoadError = null, projectLoadError = null, initialErrors = [], projectTrusted = true, settingsPaths = {}) {
188
- this.storage = storage;
189
- this.globalSettings = initialGlobal;
190
- this.projectSettings = initialProject;
191
- this.projectTrusted = projectTrusted;
192
- this.globalSettingsLoadError = globalLoadError;
193
- this.projectSettingsLoadError = projectLoadError;
194
- this.errors = [...initialErrors];
195
- this.settingsPaths = settingsPaths;
196
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
197
- }
198
- /** Create a SettingsManager that loads from files */
199
- static create(cwd, agentDir = getAgentDir(), options = {}) {
200
- const resolvedCwd = resolvePath(cwd);
201
- const resolvedAgentDir = resolvePath(agentDir);
202
- const storage = new FileSettingsStorage(resolvedCwd, resolvedAgentDir);
203
- return SettingsManager.fromStorageWithPaths(storage, options, {
204
- global: join(resolvedAgentDir, "settings.json"),
205
- project: join(resolvedCwd, CONFIG_DIR_NAME, "settings.json"),
206
- });
207
- }
208
- /** Create a SettingsManager from an arbitrary storage backend */
209
- static fromStorage(storage, options = {}) {
210
- return SettingsManager.fromStorageWithPaths(storage, options);
211
- }
212
- /** Create a manager while retaining optional file paths for reported storage errors. */
213
- static fromStorageWithPaths(storage, options, settingsPaths = {}) {
214
- const projectTrusted = options.projectTrusted ?? true;
215
- const globalLoad = SettingsManager.tryLoadFromStorage(storage, "global");
216
- const projectLoad = SettingsManager.tryLoadFromStorage(storage, "project", projectTrusted);
217
- const initialErrors = [];
218
- if (globalLoad.error) {
219
- initialErrors.push(toSettingsError("global", globalLoad.error, settingsPaths.global));
220
- }
221
- if (projectLoad.error) {
222
- initialErrors.push(toSettingsError("project", projectLoad.error, settingsPaths.project));
223
- }
224
- return new SettingsManager(storage, globalLoad.settings, projectLoad.settings, globalLoad.error, projectLoad.error, initialErrors, projectTrusted, settingsPaths);
225
- }
226
- /** Create an in-memory SettingsManager (no file I/O) */
227
- static inMemory(settings = {}, options = {}) {
228
- const storage = new InMemorySettingsStorage();
229
- const initialSettings = SettingsManager.migrateSettings(structuredClone(settings));
230
- storage.withLock("global", () => JSON.stringify(initialSettings, null, 2));
231
- return SettingsManager.fromStorage(storage, options);
232
- }
233
- static loadFromStorage(storage, scope, projectTrusted = true) {
234
- if (scope === "project" && !projectTrusted) {
235
- return {};
236
- }
237
- let content;
238
- storage.withLock(scope, (current) => {
239
- content = current;
240
- return undefined;
241
- });
242
- if (!content) {
243
- return {};
244
- }
245
- const settings = JSON.parse(stripBom(content));
246
- return SettingsManager.migrateSettings(settings);
247
- }
248
- static tryLoadFromStorage(storage, scope, projectTrusted = true) {
249
- try {
250
- return { settings: SettingsManager.loadFromStorage(storage, scope, projectTrusted), error: null };
251
- }
252
- catch (error) {
253
- return { settings: {}, error: error };
254
- }
255
- }
256
- /** Migrate old settings format to new format */
257
- static migrateSettings(settings) {
258
- // Migrate queueMode -> steeringMode
259
- if ("queueMode" in settings && !("steeringMode" in settings)) {
260
- settings.steeringMode = settings.queueMode;
261
- delete settings.queueMode;
262
- }
263
- // Migrate legacy websockets boolean -> transport enum
264
- if (!("transport" in settings) && typeof settings.websockets === "boolean") {
265
- settings.transport = settings.websockets ? "websocket" : "sse";
266
- delete settings.websockets;
267
- }
268
- // Migrate old skills object format to new array format
269
- if ("skills" in settings &&
270
- typeof settings.skills === "object" &&
271
- settings.skills !== null &&
272
- !Array.isArray(settings.skills)) {
273
- const skillsSettings = settings.skills;
274
- if (skillsSettings.enableSkillCommands !== undefined && settings.enableSkillCommands === undefined) {
275
- settings.enableSkillCommands = skillsSettings.enableSkillCommands;
276
- }
277
- if (Array.isArray(skillsSettings.customDirectories) && skillsSettings.customDirectories.length > 0) {
278
- settings.skills = skillsSettings.customDirectories;
279
- }
280
- else {
281
- delete settings.skills;
282
- }
283
- }
284
- // Migrate retry.maxDelayMs -> retry.provider.maxRetryDelayMs
285
- if ("retry" in settings &&
286
- typeof settings.retry === "object" &&
287
- settings.retry !== null &&
288
- !Array.isArray(settings.retry)) {
289
- const retrySettings = settings.retry;
290
- const providerSettings = typeof retrySettings.provider === "object" && retrySettings.provider !== null
291
- ? retrySettings.provider
292
- : undefined;
293
- if (typeof retrySettings.maxDelayMs === "number" &&
294
- (providerSettings?.maxRetryDelayMs === undefined || providerSettings?.maxRetryDelayMs === null)) {
295
- retrySettings.provider = {
296
- ...(providerSettings ?? {}),
297
- maxRetryDelayMs: retrySettings.maxDelayMs,
298
- };
299
- }
300
- delete retrySettings.maxDelayMs;
301
- }
302
- return settings;
303
- }
304
- /** A copy of the effective settings: global and project settings merged, with overrides. */
305
- getSettings() {
306
- return structuredClone(this.settings);
307
- }
308
- getGlobalSettings() {
309
- return structuredClone(this.globalSettings);
310
- }
311
- getProjectSettings() {
312
- return structuredClone(this.projectSettings);
313
- }
314
- isProjectTrusted() {
315
- return this.projectTrusted;
316
- }
317
- setProjectTrusted(trusted) {
318
- if (this.projectTrusted === trusted) {
319
- return;
320
- }
321
- this.projectTrusted = trusted;
322
- this.modifiedProjectFields.clear();
323
- this.modifiedProjectNestedFields.clear();
324
- if (!trusted) {
325
- this.projectSettings = {};
326
- this.projectSettingsLoadError = null;
327
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
328
- return;
329
- }
330
- const projectLoad = SettingsManager.tryLoadFromStorage(this.storage, "project", trusted);
331
- this.projectSettings = projectLoad.settings;
332
- this.projectSettingsLoadError = projectLoad.error;
333
- if (projectLoad.error) {
334
- this.recordError("project", projectLoad.error);
335
- }
336
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
337
- }
338
- async reload() {
339
- await this.writeQueue;
340
- const globalLoad = SettingsManager.tryLoadFromStorage(this.storage, "global");
341
- if (!globalLoad.error) {
342
- this.globalSettings = globalLoad.settings;
343
- this.globalSettingsLoadError = null;
344
- }
345
- else {
346
- this.globalSettingsLoadError = globalLoad.error;
347
- this.recordError("global", globalLoad.error);
348
- }
349
- this.modifiedFields.clear();
350
- this.modifiedNestedFields.clear();
351
- this.modifiedProjectFields.clear();
352
- this.modifiedProjectNestedFields.clear();
353
- const projectLoad = SettingsManager.tryLoadFromStorage(this.storage, "project", this.projectTrusted);
354
- if (!projectLoad.error) {
355
- this.projectSettings = projectLoad.settings;
356
- this.projectSettingsLoadError = null;
357
- }
358
- else {
359
- this.projectSettingsLoadError = projectLoad.error;
360
- this.recordError("project", projectLoad.error);
361
- }
362
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
363
- }
364
- /** Apply additional overrides on top of current settings */
365
- applyOverrides(overrides) {
366
- this.settings = deepMergeSettings(this.settings, overrides);
367
- }
368
- /** Mark a global field as modified during this session */
369
- markModified(field, nestedKey) {
370
- this.modifiedFields.add(field);
371
- if (nestedKey) {
372
- if (!this.modifiedNestedFields.has(field)) {
373
- this.modifiedNestedFields.set(field, new Set());
374
- }
375
- this.modifiedNestedFields.get(field).add(nestedKey);
376
- }
377
- }
378
- /** Mark a project field as modified during this session */
379
- markProjectModified(field, nestedKey) {
380
- this.modifiedProjectFields.add(field);
381
- if (nestedKey) {
382
- if (!this.modifiedProjectNestedFields.has(field)) {
383
- this.modifiedProjectNestedFields.set(field, new Set());
384
- }
385
- this.modifiedProjectNestedFields.get(field).add(nestedKey);
386
- }
387
- }
388
- assertProjectTrustedForWrite() {
389
- if (!this.projectTrusted) {
390
- throw new Error("Project is not trusted; refusing to write project settings");
391
- }
392
- }
393
- recordError(scope, error) {
394
- this.errors.push(toSettingsError(scope, error, this.settingsPaths[scope]));
395
- }
396
- clearModifiedScope(scope) {
397
- if (scope === "global") {
398
- this.modifiedFields.clear();
399
- this.modifiedNestedFields.clear();
400
- return;
401
- }
402
- this.modifiedProjectFields.clear();
403
- this.modifiedProjectNestedFields.clear();
404
- }
405
- enqueueWrite(scope, task) {
406
- this.writeQueue = this.writeQueue
407
- .then(() => {
408
- if (scope === "project") {
409
- this.assertProjectTrustedForWrite();
410
- }
411
- task();
412
- this.clearModifiedScope(scope);
413
- })
414
- .catch((error) => {
415
- this.recordError(scope, error);
416
- });
417
- }
418
- cloneModifiedNestedFields(source) {
419
- const snapshot = new Map();
420
- for (const [key, value] of source.entries()) {
421
- snapshot.set(key, new Set(value));
422
- }
423
- return snapshot;
424
- }
425
- persistScopedSettings(scope, snapshotSettings, modifiedFields, modifiedNestedFields) {
426
- this.storage.withLock(scope, (current) => {
427
- const currentFileSettings = current
428
- ? SettingsManager.migrateSettings(JSON.parse(stripBom(current)))
429
- : {};
430
- const mergedSettings = { ...currentFileSettings };
431
- for (const field of modifiedFields) {
432
- const value = snapshotSettings[field];
433
- if (modifiedNestedFields.has(field) && typeof value === "object" && value !== null) {
434
- const nestedModified = modifiedNestedFields.get(field);
435
- const baseNested = currentFileSettings[field] ?? {};
436
- const inMemoryNested = value;
437
- const mergedNested = { ...baseNested };
438
- for (const nestedKey of nestedModified) {
439
- mergedNested[nestedKey] = inMemoryNested[nestedKey];
440
- }
441
- mergedSettings[field] = mergedNested;
442
- }
443
- else {
444
- mergedSettings[field] = value;
445
- }
446
- }
447
- return JSON.stringify(mergedSettings, null, 2);
448
- });
449
- }
450
- save() {
451
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
452
- if (this.globalSettingsLoadError) {
453
- return;
454
- }
455
- const snapshotGlobalSettings = structuredClone(this.globalSettings);
456
- const modifiedFields = new Set(this.modifiedFields);
457
- const modifiedNestedFields = this.cloneModifiedNestedFields(this.modifiedNestedFields);
458
- this.enqueueWrite("global", () => {
459
- this.persistScopedSettings("global", snapshotGlobalSettings, modifiedFields, modifiedNestedFields);
460
- });
461
- }
462
- saveProjectSettings(settings) {
463
- this.assertProjectTrustedForWrite();
464
- this.projectSettings = structuredClone(settings);
465
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
466
- if (this.projectSettingsLoadError) {
467
- return;
468
- }
469
- const snapshotProjectSettings = structuredClone(this.projectSettings);
470
- const modifiedFields = new Set(this.modifiedProjectFields);
471
- const modifiedNestedFields = this.cloneModifiedNestedFields(this.modifiedProjectNestedFields);
472
- this.enqueueWrite("project", () => {
473
- this.persistScopedSettings("project", snapshotProjectSettings, modifiedFields, modifiedNestedFields);
474
- });
475
- }
476
- updateProjectSettings(field, update) {
477
- this.assertProjectTrustedForWrite();
478
- const projectSettings = structuredClone(this.projectSettings);
479
- update(projectSettings);
480
- this.markProjectModified(field);
481
- this.saveProjectSettings(projectSettings);
482
- }
483
- async flush() {
484
- await this.writeQueue;
485
- }
486
- drainErrors() {
487
- const drained = [...this.errors];
488
- this.errors = [];
489
- return drained;
490
- }
491
- getLastChangelogVersion() {
492
- return this.settings.lastChangelogVersion;
493
- }
494
- setLastChangelogVersion(version) {
495
- this.globalSettings.lastChangelogVersion = version;
496
- this.markModified("lastChangelogVersion");
497
- this.save();
498
- }
499
- getSessionDir() {
500
- const sessionDir = this.settings.sessionDir;
501
- return sessionDir ? normalizePath(sessionDir) : sessionDir;
502
- }
503
- getDefaultProvider() {
504
- return this.settings.defaultProvider;
505
- }
506
- getDefaultModel() {
507
- return this.settings.defaultModel;
508
- }
509
- setDefaultProvider(provider) {
510
- this.globalSettings.defaultProvider = provider;
511
- this.markModified("defaultProvider");
512
- this.save();
513
- }
514
- setDefaultModel(modelId) {
515
- this.globalSettings.defaultModel = modelId;
516
- this.markModified("defaultModel");
517
- this.save();
518
- }
519
- setDefaultModelAndProvider(provider, modelId) {
520
- this.globalSettings.defaultProvider = provider;
521
- this.globalSettings.defaultModel = modelId;
522
- this.markModified("defaultProvider");
523
- this.markModified("defaultModel");
524
- this.save();
525
- }
526
- getSteeringMode() {
527
- return this.settings.steeringMode || "one-at-a-time";
528
- }
529
- setSteeringMode(mode) {
530
- this.globalSettings.steeringMode = mode;
531
- this.markModified("steeringMode");
532
- this.save();
533
- }
534
- getFollowUpMode() {
535
- return this.settings.followUpMode || "one-at-a-time";
536
- }
537
- setFollowUpMode(mode) {
538
- this.globalSettings.followUpMode = mode;
539
- this.markModified("followUpMode");
540
- this.save();
541
- }
542
- getThemeSetting() {
543
- const value = this.settings.theme;
544
- if (typeof value === "string")
545
- return value;
546
- return undefined;
547
- }
548
- getTheme() {
549
- const theme = this.getThemeSetting();
550
- return theme?.includes("/") ? undefined : theme;
551
- }
552
- setTheme(theme) {
553
- this.globalSettings.theme = theme;
554
- this.markModified("theme");
555
- this.save();
556
- }
557
- getDefaultThinkingLevel() {
558
- return this.settings.defaultThinkingLevel;
559
- }
560
- setDefaultThinkingLevel(level) {
561
- this.globalSettings.defaultThinkingLevel = level;
562
- this.markModified("defaultThinkingLevel");
563
- this.save();
564
- }
565
- getModelThinkingLevel(provider, modelId) {
566
- return this.settings.modelThinkingLevels?.[`${provider}/${modelId}`];
567
- }
568
- getAllModelThinkingLevels() {
569
- return { ...(this.settings.modelThinkingLevels ?? {}) };
570
- }
571
- setModelThinkingLevel(provider, modelId, level) {
572
- if (!this.globalSettings.modelThinkingLevels) {
573
- this.globalSettings.modelThinkingLevels = {};
574
- }
575
- this.globalSettings.modelThinkingLevels[`${provider}/${modelId}`] = level;
576
- this.markModified("modelThinkingLevels");
577
- this.save();
578
- }
579
- removeModelThinkingLevel(provider, modelId) {
580
- if (!this.globalSettings.modelThinkingLevels)
581
- return;
582
- delete this.globalSettings.modelThinkingLevels[`${provider}/${modelId}`];
583
- if (Object.keys(this.globalSettings.modelThinkingLevels).length === 0) {
584
- delete this.globalSettings.modelThinkingLevels;
585
- }
586
- this.markModified("modelThinkingLevels");
587
- this.save();
588
- }
589
- getTransport() {
590
- return this.settings.transport ?? "auto";
591
- }
592
- setTransport(transport) {
593
- this.globalSettings.transport = transport;
594
- this.markModified("transport");
595
- this.save();
596
- }
597
- getCompactionEnabled() {
598
- return this.settings.compaction?.enabled ?? true;
599
- }
600
- setCompactionEnabled(enabled) {
601
- if (!this.globalSettings.compaction) {
602
- this.globalSettings.compaction = {};
603
- }
604
- this.globalSettings.compaction.enabled = enabled;
605
- this.markModified("compaction", "enabled");
606
- this.save();
607
- }
608
- getCompactionTokenSetting(field, model) {
609
- const compaction = this.settings.compaction;
610
- const ordinary = compaction?.[field];
611
- if (ordinary !== undefined && (typeof ordinary !== "number" || !Number.isSafeInteger(ordinary) || ordinary < 0)) {
612
- throw new Error(`Invalid compaction.${field} setting: ${String(ordinary)}. Expected a non-negative safe integer.`);
613
- }
614
- const modelKey = model ? `${model.provider}/${model.id}` : undefined;
615
- const entry = modelKey !== undefined ? compaction?.modelOverrides?.[modelKey] : undefined;
616
- if (entry !== undefined && !isMergeableObject(entry)) {
617
- throw new Error(`Invalid compaction.modelOverrides["${modelKey}"] setting: ${String(entry)}. Expected an object.`);
618
- }
619
- const override = entry?.[field];
620
- if (override !== undefined && (typeof override !== "number" || !Number.isSafeInteger(override) || override < 0)) {
621
- throw new Error(`Invalid compaction.modelOverrides["${modelKey}"].${field} setting: ${String(override)}. Expected a non-negative safe integer.`);
622
- }
623
- return override ?? ordinary ?? DEFAULT_COMPACTION_TOKEN_SETTINGS[field];
624
- }
625
- getCompactionReserveTokens(model) {
626
- return this.getCompactionTokenSetting("reserveTokens", model);
627
- }
628
- getCompactionKeepRecentTokens(model) {
629
- return this.getCompactionTokenSetting("keepRecentTokens", model);
630
- }
631
- /** Resolve each token setting through model override, ordinary setting, then built-in default. */
632
- getCompactionSettings(model) {
633
- return {
634
- enabled: this.getCompactionEnabled(),
635
- reserveTokens: this.getCompactionReserveTokens(model),
636
- keepRecentTokens: this.getCompactionKeepRecentTokens(model),
637
- };
638
- }
639
- getBranchSummarySettings() {
640
- return {
641
- reserveTokens: this.settings.branchSummary?.reserveTokens ?? 16384,
642
- skipPrompt: this.settings.branchSummary?.skipPrompt ?? false,
643
- };
644
- }
645
- getBranchSummarySkipPrompt() {
646
- return this.settings.branchSummary?.skipPrompt ?? false;
647
- }
648
- getRetryEnabled() {
649
- return this.settings.retry?.enabled ?? true;
650
- }
651
- setRetryEnabled(enabled) {
652
- if (!this.globalSettings.retry) {
653
- this.globalSettings.retry = {};
654
- }
655
- this.globalSettings.retry.enabled = enabled;
656
- this.markModified("retry", "enabled");
657
- this.save();
658
- }
659
- getRetrySettings() {
660
- return {
661
- enabled: this.getRetryEnabled(),
662
- maxRetries: this.settings.retry?.maxRetries ?? 3,
663
- baseDelayMs: this.settings.retry?.baseDelayMs ?? 2000,
664
- maxAgentDelayMs: this.settings.retry?.maxAgentDelayMs ?? DEFAULT_MAX_AGENT_RETRY_DELAY_MS,
665
- };
666
- }
667
- getHttpIdleTimeoutMs() {
668
- return parseTimeoutSetting(this.settings.httpIdleTimeoutMs, "httpIdleTimeoutMs") ?? DEFAULT_HTTP_IDLE_TIMEOUT_MS;
669
- }
670
- setHttpIdleTimeoutMs(timeoutMs) {
671
- if (!Number.isFinite(timeoutMs) || timeoutMs < 0) {
672
- throw new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);
673
- }
674
- this.globalSettings.httpIdleTimeoutMs = Math.floor(timeoutMs);
675
- this.markModified("httpIdleTimeoutMs");
676
- this.save();
677
- }
678
- /** Read from global settings only because warming costs money. */
679
- getCacheWarmingMode() {
680
- const mode = this.globalSettings.cacheWarming;
681
- return mode !== undefined && CACHE_WARMING_MODES.includes(mode) ? mode : "streaming";
682
- }
683
- setCacheWarmingMode(mode) {
684
- this.globalSettings.cacheWarming = mode;
685
- this.markModified("cacheWarming");
686
- this.save();
687
- }
688
- getProviderRetrySettings() {
689
- return {
690
- timeoutMs: this.settings.retry?.provider?.timeoutMs,
691
- maxRetries: this.settings.retry?.provider?.maxRetries,
692
- maxRetryDelayMs: this.settings.retry?.provider?.maxRetryDelayMs ?? 60000,
693
- };
694
- }
695
- getWebSocketConnectTimeoutMs() {
696
- return parseTimeoutSetting(this.settings.websocketConnectTimeoutMs, "websocketConnectTimeoutMs");
697
- }
698
- getHideThinkingBlock() {
699
- return this.settings.hideThinkingBlock ?? false;
700
- }
701
- getShowCacheMissNotices() {
702
- return this.settings.showCacheMissNotices ?? false;
703
- }
704
- getExternalEditorCommand() {
705
- const configuredEditor = this.settings.externalEditor;
706
- if (typeof configuredEditor === "string" && configuredEditor.trim() !== "") {
707
- return configuredEditor;
708
- }
709
- const environmentEditor = process.env.VISUAL || process.env.EDITOR;
710
- if (environmentEditor) {
711
- return environmentEditor;
712
- }
713
- return process.platform === "win32" ? "notepad" : "nano";
714
- }
715
- setHideThinkingBlock(hide) {
716
- this.globalSettings.hideThinkingBlock = hide;
717
- this.markModified("hideThinkingBlock");
718
- this.save();
719
- }
720
- setShowCacheMissNotices(show) {
721
- this.globalSettings.showCacheMissNotices = show;
722
- this.markModified("showCacheMissNotices");
723
- this.save();
724
- }
725
- getShellPath() {
726
- const shellPath = this.settings.shellPath;
727
- return shellPath ? normalizePath(shellPath) : shellPath;
728
- }
729
- setShellPath(path) {
730
- this.globalSettings.shellPath = path;
731
- this.markModified("shellPath");
732
- this.save();
733
- }
734
- getQuietStartup() {
735
- return this.settings.quietStartup ?? false;
736
- }
737
- setQuietStartup(quiet) {
738
- this.globalSettings.quietStartup = quiet;
739
- this.markModified("quietStartup");
740
- this.save();
741
- }
742
- getDefaultProjectTrust() {
743
- const value = this.globalSettings.defaultProjectTrust;
744
- return value === "always" || value === "never" ? value : "ask";
745
- }
746
- setDefaultProjectTrust(defaultProjectTrust) {
747
- this.globalSettings.defaultProjectTrust = defaultProjectTrust;
748
- this.markModified("defaultProjectTrust");
749
- this.save();
750
- }
751
- getShellCommandPrefix() {
752
- return this.settings.shellCommandPrefix;
753
- }
754
- setShellCommandPrefix(prefix) {
755
- this.globalSettings.shellCommandPrefix = prefix;
756
- this.markModified("shellCommandPrefix");
757
- this.save();
758
- }
759
- getNpmCommand() {
760
- return this.settings.npmCommand ? [...this.settings.npmCommand] : undefined;
761
- }
762
- setNpmCommand(command) {
763
- this.globalSettings.npmCommand = command ? [...command] : undefined;
764
- this.markModified("npmCommand");
765
- this.save();
766
- }
767
- getCollapseChangelog() {
768
- return this.settings.collapseChangelog ?? false;
769
- }
770
- setCollapseChangelog(collapse) {
771
- this.globalSettings.collapseChangelog = collapse;
772
- this.markModified("collapseChangelog");
773
- this.save();
774
- }
775
- getEnableInstallTelemetry() {
776
- // e fork: default OFF. This flag gates the pi-brand provider attribution headers
777
- // (pi.dev referer, "Pi" billing origin) and the install ping. e makes no phone-home
778
- // by default and does not attribute its users' traffic to upstream pi (promise 8).
779
- // A user can still opt in explicitly with `enableInstallTelemetry: true`.
780
- return this.settings.enableInstallTelemetry ?? false;
781
- }
782
- setEnableInstallTelemetry(enabled) {
783
- this.globalSettings.enableInstallTelemetry = enabled;
784
- this.markModified("enableInstallTelemetry");
785
- this.save();
786
- }
787
- getEnableAnalytics() {
788
- return this.settings.enableAnalytics ?? false;
789
- }
790
- getTrackingId() {
791
- return this.settings.trackingId;
792
- }
793
- /** Set the analytics opt-in preference; generates a tracking identifier on first opt-in */
794
- setEnableAnalytics(enabled) {
795
- this.globalSettings.enableAnalytics = enabled;
796
- this.markModified("enableAnalytics");
797
- if (enabled && !this.globalSettings.trackingId) {
798
- this.globalSettings.trackingId = randomUUID();
799
- this.markModified("trackingId");
800
- }
801
- this.save();
802
- }
803
- /**
804
- * Stable ID of this installation, e.g. sent to OpenAI as its agent host ID.
805
- * Created on first use. Project settings are ignored so a committed project
806
- * settings file cannot give every clone the same ID.
807
- */
808
- getOrCreateDeviceId() {
809
- if (!this.globalSettings.deviceId) {
810
- this.globalSettings.deviceId = randomUUID();
811
- this.markModified("deviceId");
812
- this.save();
813
- }
814
- return this.globalSettings.deviceId;
815
- }
816
- getPackages() {
817
- return [...(this.settings.packages ?? [])];
818
- }
819
- setPackages(packages) {
820
- this.globalSettings.packages = packages;
821
- this.markModified("packages");
822
- this.save();
823
- }
824
- setProjectPackages(packages) {
825
- this.updateProjectSettings("packages", (settings) => {
826
- settings.packages = packages;
827
- });
828
- }
829
- getExtensionPaths() {
830
- return [...(this.settings.extensions ?? [])];
831
- }
832
- setExtensionPaths(paths) {
833
- this.globalSettings.extensions = paths;
834
- this.markModified("extensions");
835
- this.save();
836
- }
837
- setProjectExtensionPaths(paths) {
838
- this.updateProjectSettings("extensions", (settings) => {
839
- settings.extensions = paths;
840
- });
841
- }
842
- getSkillPaths() {
843
- return [...(this.settings.skills ?? [])];
844
- }
845
- setSkillPaths(paths) {
846
- this.globalSettings.skills = paths;
847
- this.markModified("skills");
848
- this.save();
849
- }
850
- setProjectSkillPaths(paths) {
851
- this.updateProjectSettings("skills", (settings) => {
852
- settings.skills = paths;
853
- });
854
- }
855
- getPromptTemplatePaths() {
856
- return [...(this.settings.prompts ?? [])];
857
- }
858
- setPromptTemplatePaths(paths) {
859
- this.globalSettings.prompts = paths;
860
- this.markModified("prompts");
861
- this.save();
862
- }
863
- setProjectPromptTemplatePaths(paths) {
864
- this.updateProjectSettings("prompts", (settings) => {
865
- settings.prompts = paths;
866
- });
867
- }
868
- getThemePaths() {
869
- return [...(this.settings.themes ?? [])];
870
- }
871
- setThemePaths(paths) {
872
- this.globalSettings.themes = paths;
873
- this.markModified("themes");
874
- this.save();
875
- }
876
- setProjectThemePaths(paths) {
877
- this.updateProjectSettings("themes", (settings) => {
878
- settings.themes = paths;
879
- });
880
- }
881
- getEnableSkillCommands() {
882
- return this.settings.enableSkillCommands ?? true;
883
- }
884
- setEnableSkillCommands(enabled) {
885
- this.globalSettings.enableSkillCommands = enabled;
886
- this.markModified("enableSkillCommands");
887
- this.save();
888
- }
889
- getThinkingBudgets() {
890
- return this.settings.thinkingBudgets;
891
- }
892
- getTerminalCapabilityOverrides() {
893
- const terminal = this.settings.terminal;
894
- const images = terminal?.images;
895
- return {
896
- ...(images === "kitty" || images === "iterm2" ? { images } : images === false ? { images: null } : {}),
897
- ...(typeof terminal?.trueColor === "boolean" ? { trueColor: terminal.trueColor } : {}),
898
- ...(typeof terminal?.hyperlinks === "boolean" ? { hyperlinks: terminal.hyperlinks } : {}),
899
- };
900
- }
901
- getShowImages() {
902
- return this.settings.terminal?.showImages ?? true;
903
- }
904
- setShowImages(show) {
905
- if (!this.globalSettings.terminal) {
906
- this.globalSettings.terminal = {};
907
- }
908
- this.globalSettings.terminal.showImages = show;
909
- this.markModified("terminal", "showImages");
910
- this.save();
911
- }
912
- getImageWidthCells() {
913
- const width = this.settings.terminal?.imageWidthCells;
914
- if (typeof width !== "number" || !Number.isFinite(width)) {
915
- return 60;
916
- }
917
- return Math.max(1, Math.floor(width));
918
- }
919
- setImageWidthCells(width) {
920
- if (!this.globalSettings.terminal) {
921
- this.globalSettings.terminal = {};
922
- }
923
- this.globalSettings.terminal.imageWidthCells = Math.max(1, Math.floor(width));
924
- this.markModified("terminal", "imageWidthCells");
925
- this.save();
926
- }
927
- getClearOnShrink() {
928
- // Settings takes precedence, then env var, then default false
929
- if (this.settings.terminal?.clearOnShrink !== undefined) {
930
- return this.settings.terminal.clearOnShrink;
931
- }
932
- return readAppEnv("CLEAR_ON_SHRINK") === "1";
933
- }
934
- setClearOnShrink(enabled) {
935
- if (!this.globalSettings.terminal) {
936
- this.globalSettings.terminal = {};
937
- }
938
- this.globalSettings.terminal.clearOnShrink = enabled;
939
- this.markModified("terminal", "clearOnShrink");
940
- this.save();
941
- }
942
- getShowTerminalProgress() {
943
- return this.settings.terminal?.showTerminalProgress ?? false;
944
- }
945
- setShowTerminalProgress(enabled) {
946
- if (!this.globalSettings.terminal) {
947
- this.globalSettings.terminal = {};
948
- }
949
- this.globalSettings.terminal.showTerminalProgress = enabled;
950
- this.markModified("terminal", "showTerminalProgress");
951
- this.save();
952
- }
953
- getTuiMode() {
954
- return this.settings.tuiMode === "regular" ? "regular" : "fullscreen";
955
- }
956
- setTuiMode(mode) {
957
- this.globalSettings.tuiMode = mode;
958
- this.markModified("tuiMode");
959
- this.save();
960
- }
961
- getFullscreenExitOutput() {
962
- return this.settings.fullscreenExitOutput === "resume-hint" ? "resume-hint" : "transcript";
963
- }
964
- setFullscreenExitOutput(output) {
965
- this.globalSettings.fullscreenExitOutput = output;
966
- this.markModified("fullscreenExitOutput");
967
- this.save();
968
- }
969
- getFullscreenScrollbar() {
970
- const mode = this.settings.fullscreenScrollbar;
971
- return mode === "always" || mode === "hidden" ? mode : "auto";
972
- }
973
- setFullscreenScrollbar(mode) {
974
- this.globalSettings.fullscreenScrollbar = mode;
975
- this.markModified("fullscreenScrollbar");
976
- this.save();
977
- }
978
- getFullscreenCopyOnSelect() {
979
- return this.settings.fullscreenCopyOnSelect ?? true;
980
- }
981
- setFullscreenCopyOnSelect(enabled) {
982
- this.globalSettings.fullscreenCopyOnSelect = enabled;
983
- this.markModified("fullscreenCopyOnSelect");
984
- this.save();
985
- }
986
- getFullscreenWheelScrollLines() {
987
- const lines = this.settings.fullscreenWheelScrollLines;
988
- return typeof lines === "number" && Number.isFinite(lines)
989
- ? Math.max(1, Math.min(100, Math.floor(lines)))
990
- : "auto";
991
- }
992
- setFullscreenWheelScrollLines(lines) {
993
- this.globalSettings.fullscreenWheelScrollLines =
994
- lines === "auto" ? lines : Math.max(1, Math.min(100, Math.floor(lines)));
995
- this.markModified("fullscreenWheelScrollLines");
996
- this.save();
997
- }
998
- getImageAutoResize() {
999
- return this.settings.images?.autoResize ?? true;
1000
- }
1001
- setImageAutoResize(enabled) {
1002
- if (!this.globalSettings.images) {
1003
- this.globalSettings.images = {};
1004
- }
1005
- this.globalSettings.images.autoResize = enabled;
1006
- this.markModified("images", "autoResize");
1007
- this.save();
1008
- }
1009
- getBlockImages() {
1010
- return this.settings.images?.blockImages ?? false;
1011
- }
1012
- setBlockImages(blocked) {
1013
- if (!this.globalSettings.images) {
1014
- this.globalSettings.images = {};
1015
- }
1016
- this.globalSettings.images.blockImages = blocked;
1017
- this.markModified("images", "blockImages");
1018
- this.save();
1019
- }
1020
- getEnabledModels() {
1021
- return this.settings.enabledModels;
1022
- }
1023
- /** The resolved `defaultTools` selection, or undefined when no settings layer sets it. */
1024
- getDefaultTools() {
1025
- const tools = this.settings.defaultTools;
1026
- if (tools === undefined)
1027
- return undefined;
1028
- return resolveDefaultTools(Array.isArray(tools) ? tools.filter((tool) => typeof tool === "string") : []);
1029
- }
1030
- setEnabledModels(patterns) {
1031
- this.globalSettings.enabledModels = patterns;
1032
- this.markModified("enabledModels");
1033
- this.save();
1034
- }
1035
- getDoubleEscapeAction() {
1036
- return this.settings.doubleEscapeAction ?? "tree";
1037
- }
1038
- setDoubleEscapeAction(action) {
1039
- this.globalSettings.doubleEscapeAction = action;
1040
- this.markModified("doubleEscapeAction");
1041
- this.save();
1042
- }
1043
- getTreeFilterMode() {
1044
- const mode = this.settings.treeFilterMode;
1045
- const valid = ["default", "no-tools", "user-only", "labeled-only", "all"];
1046
- return mode && valid.includes(mode) ? mode : "default";
1047
- }
1048
- setTreeFilterMode(mode) {
1049
- this.globalSettings.treeFilterMode = mode;
1050
- this.markModified("treeFilterMode");
1051
- this.save();
1052
- }
1053
- getShowHardwareCursor() {
1054
- return this.settings.showHardwareCursor ?? readAppEnv("HARDWARE_CURSOR") === "1";
1055
- }
1056
- setShowHardwareCursor(enabled) {
1057
- this.globalSettings.showHardwareCursor = enabled;
1058
- this.markModified("showHardwareCursor");
1059
- this.save();
1060
- }
1061
- getEditorPaddingX() {
1062
- return this.settings.editorPaddingX ?? 0;
1063
- }
1064
- setEditorPaddingX(padding) {
1065
- this.globalSettings.editorPaddingX = Math.max(0, Math.min(3, Math.floor(padding)));
1066
- this.markModified("editorPaddingX");
1067
- this.save();
1068
- }
1069
- getOutputPad() {
1070
- return this.settings.outputPad === 0 ? 0 : 1;
1071
- }
1072
- setOutputPad(padding) {
1073
- this.globalSettings.outputPad = padding;
1074
- this.markModified("outputPad");
1075
- this.save();
1076
- }
1077
- getAutocompleteMaxVisible() {
1078
- return this.settings.autocompleteMaxVisible ?? 5;
1079
- }
1080
- setAutocompleteMaxVisible(maxVisible) {
1081
- this.globalSettings.autocompleteMaxVisible = Math.max(3, Math.min(20, Math.floor(maxVisible)));
1082
- this.markModified("autocompleteMaxVisible");
1083
- this.save();
1084
- }
1085
- getCodeBlockIndent() {
1086
- return this.settings.markdown?.codeBlockIndent ?? " ";
1087
- }
1088
- getMermaidRenderingMode() {
1089
- const mode = this.settings.markdown?.mermaid;
1090
- return mode === "off" || mode === "final" ? mode : "streaming";
1091
- }
1092
- setMermaidRenderingMode(mode) {
1093
- this.globalSettings.markdown ??= {};
1094
- this.globalSettings.markdown.mermaid = mode;
1095
- this.markModified("markdown", "mermaid");
1096
- this.save();
1097
- }
1098
- getWarnings() {
1099
- return { ...(this.settings.warnings ?? {}) };
1100
- }
1101
- setWarnings(warnings) {
1102
- this.globalSettings.warnings = { ...warnings };
1103
- this.markModified("warnings");
1104
- this.save();
1105
- }
1106
- }
1107
- //# sourceMappingURL=settings-manager.js.map