@eminent337/aery 0.1.57 → 0.1.58

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 (684) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/README.md +0 -0
  3. package/docs/compaction.md +0 -0
  4. package/docs/custom-provider.md +0 -0
  5. package/docs/development.md +0 -0
  6. package/docs/extensions.md +0 -0
  7. package/docs/images/doom-extension.png +0 -0
  8. package/docs/images/exy.png +0 -0
  9. package/docs/images/interactive-mode.png +0 -0
  10. package/docs/images/tree-view.png +0 -0
  11. package/docs/json.md +0 -0
  12. package/docs/keybindings.md +0 -0
  13. package/docs/models.md +0 -0
  14. package/docs/packages.md +0 -0
  15. package/docs/prompt-templates.md +0 -0
  16. package/docs/providers.md +0 -0
  17. package/docs/rpc.md +0 -0
  18. package/docs/sdk.md +0 -0
  19. package/docs/session.md +0 -0
  20. package/docs/settings.md +0 -0
  21. package/docs/shell-aliases.md +0 -0
  22. package/docs/skills.md +0 -0
  23. package/docs/terminal-setup.md +0 -0
  24. package/docs/termux.md +0 -0
  25. package/docs/themes.md +0 -0
  26. package/docs/tmux.md +0 -0
  27. package/docs/tree.md +0 -0
  28. package/docs/tui.md +0 -0
  29. package/docs/windows.md +0 -0
  30. package/examples/README.md +0 -0
  31. package/examples/extensions/README.md +0 -0
  32. package/examples/extensions/antigravity-image-gen.ts +0 -0
  33. package/examples/extensions/auto-commit-on-exit.ts +0 -0
  34. package/examples/extensions/bash-spawn-hook.ts +0 -0
  35. package/examples/extensions/bookmark.ts +0 -0
  36. package/examples/extensions/built-in-tool-renderer.ts +0 -0
  37. package/examples/extensions/claude-rules.ts +0 -0
  38. package/examples/extensions/commands.ts +0 -0
  39. package/examples/extensions/confirm-destructive.ts +0 -0
  40. package/examples/extensions/custom-compaction.ts +0 -0
  41. package/examples/extensions/custom-footer.ts +0 -0
  42. package/examples/extensions/custom-header.ts +0 -0
  43. package/examples/extensions/custom-provider-anthropic/index.ts +0 -0
  44. package/examples/extensions/custom-provider-anthropic/package-lock.json +0 -0
  45. package/examples/extensions/custom-provider-anthropic/package.json +0 -0
  46. package/examples/extensions/custom-provider-gitlab-duo/index.ts +0 -0
  47. package/examples/extensions/custom-provider-gitlab-duo/package.json +0 -0
  48. package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -0
  49. package/examples/extensions/custom-provider-qwen-cli/index.ts +0 -0
  50. package/examples/extensions/custom-provider-qwen-cli/package.json +0 -0
  51. package/examples/extensions/dirty-repo-guard.ts +0 -0
  52. package/examples/extensions/doom-overlay/README.md +0 -0
  53. package/examples/extensions/doom-overlay/doom/build/doom.js +0 -0
  54. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -0
  55. package/examples/extensions/doom-overlay/doom-component.ts +0 -0
  56. package/examples/extensions/doom-overlay/doom-engine.ts +0 -0
  57. package/examples/extensions/doom-overlay/doom-keys.ts +0 -0
  58. package/examples/extensions/doom-overlay/index.ts +0 -0
  59. package/examples/extensions/doom-overlay/wad-finder.ts +0 -0
  60. package/examples/extensions/dynamic-resources/SKILL.md +0 -0
  61. package/examples/extensions/dynamic-resources/dynamic.json +0 -0
  62. package/examples/extensions/dynamic-resources/dynamic.md +0 -0
  63. package/examples/extensions/dynamic-resources/index.ts +0 -0
  64. package/examples/extensions/dynamic-tools.ts +0 -0
  65. package/examples/extensions/event-bus.ts +0 -0
  66. package/examples/extensions/file-trigger.ts +0 -0
  67. package/examples/extensions/git-checkpoint.ts +0 -0
  68. package/examples/extensions/handoff.ts +0 -0
  69. package/examples/extensions/hello.ts +0 -0
  70. package/examples/extensions/hidden-thinking-label.ts +0 -0
  71. package/examples/extensions/inline-bash.ts +0 -0
  72. package/examples/extensions/input-transform.ts +0 -0
  73. package/examples/extensions/interactive-shell.ts +0 -0
  74. package/examples/extensions/mac-system-theme.ts +0 -0
  75. package/examples/extensions/message-renderer.ts +0 -0
  76. package/examples/extensions/minimal-mode.ts +0 -0
  77. package/examples/extensions/modal-editor.ts +0 -0
  78. package/examples/extensions/model-status.ts +0 -0
  79. package/examples/extensions/notify.ts +0 -0
  80. package/examples/extensions/overlay-qa-tests.ts +0 -0
  81. package/examples/extensions/overlay-test.ts +0 -0
  82. package/examples/extensions/permission-gate.ts +0 -0
  83. package/examples/extensions/pirate.ts +0 -0
  84. package/examples/extensions/plan-mode/README.md +0 -0
  85. package/examples/extensions/plan-mode/index.ts +0 -0
  86. package/examples/extensions/plan-mode/utils.ts +0 -0
  87. package/examples/extensions/preset.ts +0 -0
  88. package/examples/extensions/protected-paths.ts +0 -0
  89. package/examples/extensions/provider-payload.ts +0 -0
  90. package/examples/extensions/qna.ts +0 -0
  91. package/examples/extensions/question.ts +0 -0
  92. package/examples/extensions/questionnaire.ts +0 -0
  93. package/examples/extensions/rainbow-editor.ts +0 -0
  94. package/examples/extensions/reload-runtime.ts +0 -0
  95. package/examples/extensions/rpc-demo.ts +0 -0
  96. package/examples/extensions/sandbox/index.ts +0 -0
  97. package/examples/extensions/sandbox/package-lock.json +0 -0
  98. package/examples/extensions/sandbox/package.json +0 -0
  99. package/examples/extensions/send-user-message.ts +0 -0
  100. package/examples/extensions/session-name.ts +0 -0
  101. package/examples/extensions/shutdown-command.ts +0 -0
  102. package/examples/extensions/snake.ts +0 -0
  103. package/examples/extensions/space-invaders.ts +0 -0
  104. package/examples/extensions/ssh.ts +0 -0
  105. package/examples/extensions/status-line.ts +0 -0
  106. package/examples/extensions/subagent/README.md +0 -0
  107. package/examples/extensions/subagent/agents/planner.md +0 -0
  108. package/examples/extensions/subagent/agents/reviewer.md +0 -0
  109. package/examples/extensions/subagent/agents/scout.md +0 -0
  110. package/examples/extensions/subagent/agents/worker.md +0 -0
  111. package/examples/extensions/subagent/agents.ts +0 -0
  112. package/examples/extensions/subagent/index.ts +0 -0
  113. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -0
  114. package/examples/extensions/subagent/prompts/implement.md +0 -0
  115. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -0
  116. package/examples/extensions/summarize.ts +0 -0
  117. package/examples/extensions/system-prompt-header.ts +0 -0
  118. package/examples/extensions/tic-tac-toe.ts +0 -0
  119. package/examples/extensions/timed-confirm.ts +0 -0
  120. package/examples/extensions/titlebar-spinner.ts +0 -0
  121. package/examples/extensions/todo.ts +0 -0
  122. package/examples/extensions/tool-override.ts +0 -0
  123. package/examples/extensions/tools.ts +0 -0
  124. package/examples/extensions/trigger-compact.ts +0 -0
  125. package/examples/extensions/truncated-tool.ts +0 -0
  126. package/examples/extensions/widget-placement.ts +0 -0
  127. package/examples/extensions/with-deps/index.ts +0 -0
  128. package/examples/extensions/with-deps/package-lock.json +0 -0
  129. package/examples/extensions/with-deps/package.json +0 -0
  130. package/examples/extensions/working-indicator.ts +0 -0
  131. package/examples/rpc-extension-ui.ts +0 -0
  132. package/examples/sdk/01-minimal.ts +0 -0
  133. package/examples/sdk/02-custom-model.ts +0 -0
  134. package/examples/sdk/03-custom-prompt.ts +0 -0
  135. package/examples/sdk/04-skills.ts +0 -0
  136. package/examples/sdk/05-tools.ts +0 -0
  137. package/examples/sdk/06-extensions.ts +0 -0
  138. package/examples/sdk/07-context-files.ts +0 -0
  139. package/examples/sdk/08-prompt-templates.ts +0 -0
  140. package/examples/sdk/09-api-keys-and-oauth.ts +0 -0
  141. package/examples/sdk/10-settings.ts +0 -0
  142. package/examples/sdk/11-sessions.ts +0 -0
  143. package/examples/sdk/12-full-control.ts +0 -0
  144. package/examples/sdk/13-session-runtime.ts +0 -0
  145. package/examples/sdk/README.md +0 -0
  146. package/package.json +3 -3
  147. package/dist/bun/cli.d.ts +0 -3
  148. package/dist/bun/cli.d.ts.map +0 -1
  149. package/dist/bun/cli.js +0 -7
  150. package/dist/bun/cli.js.map +0 -1
  151. package/dist/bun/register-bedrock.d.ts +0 -2
  152. package/dist/bun/register-bedrock.d.ts.map +0 -1
  153. package/dist/bun/register-bedrock.js +0 -4
  154. package/dist/bun/register-bedrock.js.map +0 -1
  155. package/dist/cli/args.d.ts +0 -52
  156. package/dist/cli/args.d.ts.map +0 -1
  157. package/dist/cli/args.js +0 -321
  158. package/dist/cli/args.js.map +0 -1
  159. package/dist/cli/config-selector.d.ts +0 -14
  160. package/dist/cli/config-selector.d.ts.map +0 -1
  161. package/dist/cli/config-selector.js +0 -31
  162. package/dist/cli/config-selector.js.map +0 -1
  163. package/dist/cli/file-processor.d.ts +0 -15
  164. package/dist/cli/file-processor.d.ts.map +0 -1
  165. package/dist/cli/file-processor.js +0 -83
  166. package/dist/cli/file-processor.js.map +0 -1
  167. package/dist/cli/initial-message.d.ts +0 -18
  168. package/dist/cli/initial-message.d.ts.map +0 -1
  169. package/dist/cli/initial-message.js +0 -22
  170. package/dist/cli/initial-message.js.map +0 -1
  171. package/dist/cli/list-models.d.ts +0 -9
  172. package/dist/cli/list-models.d.ts.map +0 -1
  173. package/dist/cli/list-models.js +0 -97
  174. package/dist/cli/list-models.js.map +0 -1
  175. package/dist/cli/session-picker.d.ts +0 -9
  176. package/dist/cli/session-picker.d.ts.map +0 -1
  177. package/dist/cli/session-picker.js +0 -35
  178. package/dist/cli/session-picker.js.map +0 -1
  179. package/dist/cli.d.ts +0 -3
  180. package/dist/cli.d.ts.map +0 -1
  181. package/dist/cli.js +0 -15
  182. package/dist/cli.js.map +0 -1
  183. package/dist/config.d.ts +0 -77
  184. package/dist/config.d.ts.map +0 -1
  185. package/dist/config.js +0 -221
  186. package/dist/config.js.map +0 -1
  187. package/dist/core/agent-session-runtime.d.ts +0 -99
  188. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  189. package/dist/core/agent-session-runtime.js +0 -261
  190. package/dist/core/agent-session-runtime.js.map +0 -1
  191. package/dist/core/agent-session-services.d.ts +0 -85
  192. package/dist/core/agent-session-services.d.ts.map +0 -1
  193. package/dist/core/agent-session-services.js +0 -116
  194. package/dist/core/agent-session-services.js.map +0 -1
  195. package/dist/core/agent-session.d.ts +0 -590
  196. package/dist/core/agent-session.d.ts.map +0 -1
  197. package/dist/core/agent-session.js +0 -2505
  198. package/dist/core/agent-session.js.map +0 -1
  199. package/dist/core/auth-storage.d.ts +0 -132
  200. package/dist/core/auth-storage.d.ts.map +0 -1
  201. package/dist/core/auth-storage.js +0 -422
  202. package/dist/core/auth-storage.js.map +0 -1
  203. package/dist/core/bash-executor.d.ts +0 -32
  204. package/dist/core/bash-executor.d.ts.map +0 -1
  205. package/dist/core/bash-executor.js +0 -108
  206. package/dist/core/bash-executor.js.map +0 -1
  207. package/dist/core/compaction/branch-summarization.d.ts +0 -88
  208. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  209. package/dist/core/compaction/branch-summarization.js +0 -243
  210. package/dist/core/compaction/branch-summarization.js.map +0 -1
  211. package/dist/core/compaction/compaction.d.ts +0 -121
  212. package/dist/core/compaction/compaction.d.ts.map +0 -1
  213. package/dist/core/compaction/compaction.js +0 -615
  214. package/dist/core/compaction/compaction.js.map +0 -1
  215. package/dist/core/compaction/index.d.ts +0 -7
  216. package/dist/core/compaction/index.d.ts.map +0 -1
  217. package/dist/core/compaction/index.js +0 -7
  218. package/dist/core/compaction/index.js.map +0 -1
  219. package/dist/core/compaction/utils.d.ts +0 -38
  220. package/dist/core/compaction/utils.d.ts.map +0 -1
  221. package/dist/core/compaction/utils.js +0 -153
  222. package/dist/core/compaction/utils.js.map +0 -1
  223. package/dist/core/defaults.d.ts +0 -3
  224. package/dist/core/defaults.d.ts.map +0 -1
  225. package/dist/core/defaults.js +0 -2
  226. package/dist/core/defaults.js.map +0 -1
  227. package/dist/core/diagnostics.d.ts +0 -15
  228. package/dist/core/diagnostics.d.ts.map +0 -1
  229. package/dist/core/diagnostics.js +0 -2
  230. package/dist/core/diagnostics.js.map +0 -1
  231. package/dist/core/event-bus.d.ts +0 -9
  232. package/dist/core/event-bus.d.ts.map +0 -1
  233. package/dist/core/event-bus.js +0 -25
  234. package/dist/core/event-bus.js.map +0 -1
  235. package/dist/core/exec.d.ts +0 -29
  236. package/dist/core/exec.d.ts.map +0 -1
  237. package/dist/core/exec.js +0 -75
  238. package/dist/core/exec.js.map +0 -1
  239. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  240. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  241. package/dist/core/export-html/ansi-to-html.js +0 -249
  242. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  243. package/dist/core/export-html/index.d.ts +0 -37
  244. package/dist/core/export-html/index.d.ts.map +0 -1
  245. package/dist/core/export-html/index.js +0 -224
  246. package/dist/core/export-html/index.js.map +0 -1
  247. package/dist/core/export-html/template.css +0 -1017
  248. package/dist/core/export-html/template.html +0 -55
  249. package/dist/core/export-html/template.js +0 -1729
  250. package/dist/core/export-html/tool-renderer.d.ts +0 -40
  251. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  252. package/dist/core/export-html/tool-renderer.js +0 -95
  253. package/dist/core/export-html/tool-renderer.js.map +0 -1
  254. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  255. package/dist/core/export-html/vendor/marked.min.js +0 -6
  256. package/dist/core/extensions/index.d.ts +0 -12
  257. package/dist/core/extensions/index.d.ts.map +0 -1
  258. package/dist/core/extensions/index.js +0 -9
  259. package/dist/core/extensions/index.js.map +0 -1
  260. package/dist/core/extensions/loader.d.ts +0 -25
  261. package/dist/core/extensions/loader.d.ts.map +0 -1
  262. package/dist/core/extensions/loader.js +0 -436
  263. package/dist/core/extensions/loader.js.map +0 -1
  264. package/dist/core/extensions/runner.d.ts +0 -150
  265. package/dist/core/extensions/runner.d.ts.map +0 -1
  266. package/dist/core/extensions/runner.js +0 -706
  267. package/dist/core/extensions/runner.js.map +0 -1
  268. package/dist/core/extensions/types.d.ts +0 -1111
  269. package/dist/core/extensions/types.d.ts.map +0 -1
  270. package/dist/core/extensions/types.js +0 -45
  271. package/dist/core/extensions/types.js.map +0 -1
  272. package/dist/core/extensions/wrapper.d.ts +0 -20
  273. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  274. package/dist/core/extensions/wrapper.js +0 -22
  275. package/dist/core/extensions/wrapper.js.map +0 -1
  276. package/dist/core/footer-data-provider.d.ts +0 -48
  277. package/dist/core/footer-data-provider.d.ts.map +0 -1
  278. package/dist/core/footer-data-provider.js +0 -314
  279. package/dist/core/footer-data-provider.js.map +0 -1
  280. package/dist/core/index.d.ts +0 -12
  281. package/dist/core/index.d.ts.map +0 -1
  282. package/dist/core/index.js +0 -12
  283. package/dist/core/index.js.map +0 -1
  284. package/dist/core/keybindings.d.ts +0 -353
  285. package/dist/core/keybindings.d.ts.map +0 -1
  286. package/dist/core/keybindings.js +0 -295
  287. package/dist/core/keybindings.js.map +0 -1
  288. package/dist/core/messages.d.ts +0 -77
  289. package/dist/core/messages.d.ts.map +0 -1
  290. package/dist/core/messages.js +0 -123
  291. package/dist/core/messages.js.map +0 -1
  292. package/dist/core/model-registry.d.ts +0 -132
  293. package/dist/core/model-registry.d.ts.map +0 -1
  294. package/dist/core/model-registry.js +0 -635
  295. package/dist/core/model-registry.js.map +0 -1
  296. package/dist/core/model-resolver.d.ts +0 -110
  297. package/dist/core/model-resolver.d.ts.map +0 -1
  298. package/dist/core/model-resolver.js +0 -486
  299. package/dist/core/model-resolver.js.map +0 -1
  300. package/dist/core/output-guard.d.ts +0 -6
  301. package/dist/core/output-guard.d.ts.map +0 -1
  302. package/dist/core/output-guard.js +0 -59
  303. package/dist/core/output-guard.js.map +0 -1
  304. package/dist/core/package-manager.d.ts +0 -194
  305. package/dist/core/package-manager.d.ts.map +0 -1
  306. package/dist/core/package-manager.js +0 -1882
  307. package/dist/core/package-manager.js.map +0 -1
  308. package/dist/core/prompt-templates.d.ts +0 -52
  309. package/dist/core/prompt-templates.d.ts.map +0 -1
  310. package/dist/core/prompt-templates.js +0 -250
  311. package/dist/core/prompt-templates.js.map +0 -1
  312. package/dist/core/resolve-config-value.d.ts +0 -23
  313. package/dist/core/resolve-config-value.d.ts.map +0 -1
  314. package/dist/core/resolve-config-value.js +0 -126
  315. package/dist/core/resolve-config-value.js.map +0 -1
  316. package/dist/core/resource-loader.d.ts +0 -194
  317. package/dist/core/resource-loader.d.ts.map +0 -1
  318. package/dist/core/resource-loader.js +0 -726
  319. package/dist/core/resource-loader.js.map +0 -1
  320. package/dist/core/sdk.d.ts +0 -99
  321. package/dist/core/sdk.d.ts.map +0 -1
  322. package/dist/core/sdk.js +0 -261
  323. package/dist/core/sdk.js.map +0 -1
  324. package/dist/core/session-cwd.d.ts +0 -19
  325. package/dist/core/session-cwd.d.ts.map +0 -1
  326. package/dist/core/session-cwd.js +0 -38
  327. package/dist/core/session-cwd.js.map +0 -1
  328. package/dist/core/session-manager.d.ts +0 -333
  329. package/dist/core/session-manager.d.ts.map +0 -1
  330. package/dist/core/session-manager.js +0 -1109
  331. package/dist/core/session-manager.js.map +0 -1
  332. package/dist/core/settings-manager.d.ts +0 -240
  333. package/dist/core/settings-manager.d.ts.map +0 -1
  334. package/dist/core/settings-manager.js +0 -711
  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 -409
  339. package/dist/core/skills.js.map +0 -1
  340. package/dist/core/slash-commands.d.ts +0 -14
  341. package/dist/core/slash-commands.d.ts.map +0 -1
  342. package/dist/core/slash-commands.js +0 -24
  343. package/dist/core/slash-commands.js.map +0 -1
  344. package/dist/core/source-info.d.ts +0 -18
  345. package/dist/core/source-info.d.ts.map +0 -1
  346. package/dist/core/source-info.js +0 -19
  347. package/dist/core/source-info.js.map +0 -1
  348. package/dist/core/system-prompt.d.ts +0 -28
  349. package/dist/core/system-prompt.d.ts.map +0 -1
  350. package/dist/core/system-prompt.js +0 -120
  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 -9
  355. package/dist/core/telemetry.js.map +0 -1
  356. package/dist/core/timings.d.ts +0 -8
  357. package/dist/core/timings.d.ts.map +0 -1
  358. package/dist/core/timings.js +0 -31
  359. package/dist/core/timings.js.map +0 -1
  360. package/dist/core/tools/bash.d.ts +0 -64
  361. package/dist/core/tools/bash.d.ts.map +0 -1
  362. package/dist/core/tools/bash.js +0 -355
  363. package/dist/core/tools/bash.js.map +0 -1
  364. package/dist/core/tools/edit-diff.d.ts +0 -85
  365. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  366. package/dist/core/tools/edit-diff.js +0 -337
  367. package/dist/core/tools/edit-diff.js.map +0 -1
  368. package/dist/core/tools/edit.d.ts +0 -49
  369. package/dist/core/tools/edit.d.ts.map +0 -1
  370. package/dist/core/tools/edit.js +0 -323
  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 -37
  375. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  376. package/dist/core/tools/find.d.ts +0 -35
  377. package/dist/core/tools/find.d.ts.map +0 -1
  378. package/dist/core/tools/find.js +0 -298
  379. package/dist/core/tools/find.js.map +0 -1
  380. package/dist/core/tools/grep.d.ts +0 -37
  381. package/dist/core/tools/grep.d.ts.map +0 -1
  382. package/dist/core/tools/grep.js +0 -304
  383. package/dist/core/tools/grep.js.map +0 -1
  384. package/dist/core/tools/index.d.ts +0 -40
  385. package/dist/core/tools/index.d.ts.map +0 -1
  386. package/dist/core/tools/index.js +0 -112
  387. package/dist/core/tools/index.js.map +0 -1
  388. package/dist/core/tools/ls.d.ts +0 -37
  389. package/dist/core/tools/ls.d.ts.map +0 -1
  390. package/dist/core/tools/ls.js +0 -169
  391. package/dist/core/tools/ls.js.map +0 -1
  392. package/dist/core/tools/path-utils.d.ts +0 -8
  393. package/dist/core/tools/path-utils.d.ts.map +0 -1
  394. package/dist/core/tools/path-utils.js +0 -81
  395. package/dist/core/tools/path-utils.js.map +0 -1
  396. package/dist/core/tools/read.d.ts +0 -35
  397. package/dist/core/tools/read.d.ts.map +0 -1
  398. package/dist/core/tools/read.js +0 -232
  399. package/dist/core/tools/read.js.map +0 -1
  400. package/dist/core/tools/render-utils.d.ts +0 -21
  401. package/dist/core/tools/render-utils.d.ts.map +0 -1
  402. package/dist/core/tools/render-utils.js +0 -49
  403. package/dist/core/tools/render-utils.js.map +0 -1
  404. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  405. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  406. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  407. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  408. package/dist/core/tools/truncate.d.ts +0 -70
  409. package/dist/core/tools/truncate.d.ts.map +0 -1
  410. package/dist/core/tools/truncate.js +0 -205
  411. package/dist/core/tools/truncate.js.map +0 -1
  412. package/dist/core/tools/write.d.ts +0 -26
  413. package/dist/core/tools/write.d.ts.map +0 -1
  414. package/dist/core/tools/write.js +0 -213
  415. package/dist/core/tools/write.js.map +0 -1
  416. package/dist/index.d.ts +0 -28
  417. package/dist/index.d.ts.map +0 -1
  418. package/dist/index.js +0 -41
  419. package/dist/index.js.map +0 -1
  420. package/dist/main.d.ts +0 -12
  421. package/dist/main.d.ts.map +0 -1
  422. package/dist/main.js +0 -589
  423. package/dist/main.js.map +0 -1
  424. package/dist/migrations.d.ts +0 -33
  425. package/dist/migrations.d.ts.map +0 -1
  426. package/dist/migrations.js +0 -281
  427. package/dist/migrations.js.map +0 -1
  428. package/dist/modes/index.d.ts +0 -9
  429. package/dist/modes/index.d.ts.map +0 -1
  430. package/dist/modes/index.js +0 -8
  431. package/dist/modes/index.js.map +0 -1
  432. package/dist/modes/interactive/assets/clankolas.png +0 -0
  433. package/dist/modes/interactive/components/aery-splash.d.ts +0 -18
  434. package/dist/modes/interactive/components/aery-splash.d.ts.map +0 -1
  435. package/dist/modes/interactive/components/aery-splash.js +0 -60
  436. package/dist/modes/interactive/components/aery-splash.js.map +0 -1
  437. package/dist/modes/interactive/components/armin.d.ts +0 -34
  438. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  439. package/dist/modes/interactive/components/armin.js +0 -333
  440. package/dist/modes/interactive/components/armin.js.map +0 -1
  441. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  442. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  443. package/dist/modes/interactive/components/assistant-message.js +0 -121
  444. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  445. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  446. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  447. package/dist/modes/interactive/components/bash-execution.js +0 -175
  448. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  449. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  450. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  451. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  452. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  453. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  454. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  455. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  456. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  457. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  458. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  459. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  460. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  461. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  462. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  463. package/dist/modes/interactive/components/config-selector.js +0 -479
  464. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  465. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  466. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  467. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  468. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  469. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  470. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  471. package/dist/modes/interactive/components/custom-editor.js +0 -70
  472. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  473. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  474. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  475. package/dist/modes/interactive/components/custom-message.js +0 -79
  476. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  477. package/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  478. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  479. package/dist/modes/interactive/components/daxnuts.js +0 -140
  480. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  481. package/dist/modes/interactive/components/diff.d.ts +0 -12
  482. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  483. package/dist/modes/interactive/components/diff.js +0 -133
  484. package/dist/modes/interactive/components/diff.js.map +0 -1
  485. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  486. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  487. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  488. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  489. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  490. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  491. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  492. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  493. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  494. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  495. package/dist/modes/interactive/components/extension-editor.js +0 -111
  496. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  497. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  498. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  499. package/dist/modes/interactive/components/extension-input.js +0 -61
  500. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  501. package/dist/modes/interactive/components/extension-selector.d.ts +0 -24
  502. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  503. package/dist/modes/interactive/components/extension-selector.js +0 -78
  504. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  505. package/dist/modes/interactive/components/footer.d.ts +0 -27
  506. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  507. package/dist/modes/interactive/components/footer.js +0 -201
  508. package/dist/modes/interactive/components/footer.js.map +0 -1
  509. package/dist/modes/interactive/components/index.d.ts +0 -32
  510. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  511. package/dist/modes/interactive/components/index.js +0 -33
  512. package/dist/modes/interactive/components/index.js.map +0 -1
  513. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -8
  514. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  515. package/dist/modes/interactive/components/keybinding-hints.js +0 -22
  516. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  517. package/dist/modes/interactive/components/login-dialog.d.ts +0 -42
  518. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  519. package/dist/modes/interactive/components/login-dialog.js +0 -145
  520. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  521. package/dist/modes/interactive/components/model-selector.d.ts +0 -47
  522. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  523. package/dist/modes/interactive/components/model-selector.js +0 -278
  524. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  525. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -19
  526. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  527. package/dist/modes/interactive/components/oauth-selector.js +0 -97
  528. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  529. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  530. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  531. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  532. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  533. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  534. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  535. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  536. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  537. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  538. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  539. package/dist/modes/interactive/components/session-selector.js +0 -865
  540. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  541. package/dist/modes/interactive/components/settings-selector.d.ts +0 -60
  542. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  543. package/dist/modes/interactive/components/settings-selector.js +0 -311
  544. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  545. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  546. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  547. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  548. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  549. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  550. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  551. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  552. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  553. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  554. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  555. package/dist/modes/interactive/components/theme-selector.js +0 -50
  556. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  557. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  558. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  559. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  560. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  561. package/dist/modes/interactive/components/tool-execution.d.ts +0 -60
  562. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  563. package/dist/modes/interactive/components/tool-execution.js +0 -289
  564. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  565. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  566. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  567. package/dist/modes/interactive/components/tree-selector.js +0 -1092
  568. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  569. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  570. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  571. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  572. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  573. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  574. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  575. package/dist/modes/interactive/components/user-message.js +0 -29
  576. package/dist/modes/interactive/components/user-message.js.map +0 -1
  577. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  578. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  579. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  580. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  581. package/dist/modes/interactive/interactive-mode.d.ts +0 -344
  582. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  583. package/dist/modes/interactive/interactive-mode.js +0 -4352
  584. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  585. package/dist/modes/interactive/theme/aery.json +0 -84
  586. package/dist/modes/interactive/theme/catppuccin-mocha.json +0 -81
  587. package/dist/modes/interactive/theme/dark.json +0 -85
  588. package/dist/modes/interactive/theme/dracula.json +0 -81
  589. package/dist/modes/interactive/theme/light.json +0 -84
  590. package/dist/modes/interactive/theme/nord.json +0 -81
  591. package/dist/modes/interactive/theme/theme-schema.json +0 -335
  592. package/dist/modes/interactive/theme/theme.d.ts +0 -81
  593. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  594. package/dist/modes/interactive/theme/theme.js +0 -983
  595. package/dist/modes/interactive/theme/theme.js.map +0 -1
  596. package/dist/modes/interactive/theme/tokyo-night.json +0 -81
  597. package/dist/modes/print-mode.d.ts +0 -28
  598. package/dist/modes/print-mode.d.ts.map +0 -1
  599. package/dist/modes/print-mode.js +0 -141
  600. package/dist/modes/print-mode.js.map +0 -1
  601. package/dist/modes/rpc/jsonl.d.ts +0 -17
  602. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  603. package/dist/modes/rpc/jsonl.js +0 -49
  604. package/dist/modes/rpc/jsonl.js.map +0 -1
  605. package/dist/modes/rpc/rpc-client.d.ts +0 -224
  606. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  607. package/dist/modes/rpc/rpc-client.js +0 -410
  608. package/dist/modes/rpc/rpc-client.js.map +0 -1
  609. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  610. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  611. package/dist/modes/rpc/rpc-mode.js +0 -601
  612. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  613. package/dist/modes/rpc/rpc-types.d.ts +0 -419
  614. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  615. package/dist/modes/rpc/rpc-types.js +0 -8
  616. package/dist/modes/rpc/rpc-types.js.map +0 -1
  617. package/dist/package-manager-cli.d.ts +0 -4
  618. package/dist/package-manager-cli.d.ts.map +0 -1
  619. package/dist/package-manager-cli.js +0 -234
  620. package/dist/package-manager-cli.js.map +0 -1
  621. package/dist/utils/changelog.d.ts +0 -21
  622. package/dist/utils/changelog.d.ts.map +0 -1
  623. package/dist/utils/changelog.js +0 -87
  624. package/dist/utils/changelog.js.map +0 -1
  625. package/dist/utils/child-process.d.ts +0 -11
  626. package/dist/utils/child-process.d.ts.map +0 -1
  627. package/dist/utils/child-process.js +0 -78
  628. package/dist/utils/child-process.js.map +0 -1
  629. package/dist/utils/clipboard-image.d.ts +0 -11
  630. package/dist/utils/clipboard-image.d.ts.map +0 -1
  631. package/dist/utils/clipboard-image.js +0 -245
  632. package/dist/utils/clipboard-image.js.map +0 -1
  633. package/dist/utils/clipboard-native.d.ts +0 -8
  634. package/dist/utils/clipboard-native.d.ts.map +0 -1
  635. package/dist/utils/clipboard-native.js +0 -14
  636. package/dist/utils/clipboard-native.js.map +0 -1
  637. package/dist/utils/clipboard.d.ts +0 -2
  638. package/dist/utils/clipboard.d.ts.map +0 -1
  639. package/dist/utils/clipboard.js +0 -78
  640. package/dist/utils/clipboard.js.map +0 -1
  641. package/dist/utils/exif-orientation.d.ts +0 -5
  642. package/dist/utils/exif-orientation.d.ts.map +0 -1
  643. package/dist/utils/exif-orientation.js +0 -158
  644. package/dist/utils/exif-orientation.js.map +0 -1
  645. package/dist/utils/frontmatter.d.ts +0 -8
  646. package/dist/utils/frontmatter.d.ts.map +0 -1
  647. package/dist/utils/frontmatter.js +0 -26
  648. package/dist/utils/frontmatter.js.map +0 -1
  649. package/dist/utils/git.d.ts +0 -26
  650. package/dist/utils/git.d.ts.map +0 -1
  651. package/dist/utils/git.js +0 -163
  652. package/dist/utils/git.js.map +0 -1
  653. package/dist/utils/image-convert.d.ts +0 -9
  654. package/dist/utils/image-convert.d.ts.map +0 -1
  655. package/dist/utils/image-convert.js +0 -39
  656. package/dist/utils/image-convert.js.map +0 -1
  657. package/dist/utils/image-resize.d.ts +0 -36
  658. package/dist/utils/image-resize.d.ts.map +0 -1
  659. package/dist/utils/image-resize.js +0 -137
  660. package/dist/utils/image-resize.js.map +0 -1
  661. package/dist/utils/mime.d.ts +0 -2
  662. package/dist/utils/mime.d.ts.map +0 -1
  663. package/dist/utils/mime.js +0 -26
  664. package/dist/utils/mime.js.map +0 -1
  665. package/dist/utils/paths.d.ts +0 -7
  666. package/dist/utils/paths.d.ts.map +0 -1
  667. package/dist/utils/paths.js +0 -19
  668. package/dist/utils/paths.js.map +0 -1
  669. package/dist/utils/photon.d.ts +0 -21
  670. package/dist/utils/photon.d.ts.map +0 -1
  671. package/dist/utils/photon.js +0 -121
  672. package/dist/utils/photon.js.map +0 -1
  673. package/dist/utils/shell.d.ts +0 -29
  674. package/dist/utils/shell.d.ts.map +0 -1
  675. package/dist/utils/shell.js +0 -203
  676. package/dist/utils/shell.js.map +0 -1
  677. package/dist/utils/sleep.d.ts +0 -5
  678. package/dist/utils/sleep.d.ts.map +0 -1
  679. package/dist/utils/sleep.js +0 -17
  680. package/dist/utils/sleep.js.map +0 -1
  681. package/dist/utils/tools-manager.d.ts +0 -3
  682. package/dist/utils/tools-manager.d.ts.map +0 -1
  683. package/dist/utils/tools-manager.js +0 -252
  684. package/dist/utils/tools-manager.js.map +0 -1
@@ -1,711 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
2
- import { dirname, join } from "path";
3
- import lockfile from "proper-lockfile";
4
- import { CONFIG_DIR_NAME, getAgentDir } from "../config.js";
5
- /** Deep merge settings: project/overrides take precedence, nested objects merge recursively */
6
- function deepMergeSettings(base, overrides) {
7
- const result = { ...base };
8
- for (const key of Object.keys(overrides)) {
9
- const overrideValue = overrides[key];
10
- const baseValue = base[key];
11
- if (overrideValue === undefined) {
12
- continue;
13
- }
14
- // For nested objects, merge recursively
15
- if (typeof overrideValue === "object" &&
16
- overrideValue !== null &&
17
- !Array.isArray(overrideValue) &&
18
- typeof baseValue === "object" &&
19
- baseValue !== null &&
20
- !Array.isArray(baseValue)) {
21
- result[key] = { ...baseValue, ...overrideValue };
22
- }
23
- else {
24
- // For primitives and arrays, override value wins
25
- result[key] = overrideValue;
26
- }
27
- }
28
- return result;
29
- }
30
- export class FileSettingsStorage {
31
- globalSettingsPath;
32
- projectSettingsPath;
33
- constructor(cwd, agentDir) {
34
- this.globalSettingsPath = join(agentDir, "settings.json");
35
- this.projectSettingsPath = join(cwd, CONFIG_DIR_NAME, "settings.json");
36
- }
37
- acquireLockSyncWithRetry(path) {
38
- const maxAttempts = 10;
39
- const delayMs = 20;
40
- let lastError;
41
- for (let attempt = 1; attempt <= maxAttempts; attempt++) {
42
- try {
43
- return lockfile.lockSync(path, { realpath: false });
44
- }
45
- catch (error) {
46
- const code = typeof error === "object" && error !== null && "code" in error
47
- ? String(error.code)
48
- : undefined;
49
- if (code !== "ELOCKED" || attempt === maxAttempts) {
50
- throw error;
51
- }
52
- lastError = error;
53
- const start = Date.now();
54
- while (Date.now() - start < delayMs) {
55
- // Sleep synchronously to avoid changing callers to async.
56
- }
57
- }
58
- }
59
- throw lastError ?? new Error("Failed to acquire settings lock");
60
- }
61
- withLock(scope, fn) {
62
- const path = scope === "global" ? this.globalSettingsPath : this.projectSettingsPath;
63
- const dir = dirname(path);
64
- let release;
65
- try {
66
- // Only create directory and lock if file exists or we need to write
67
- const fileExists = existsSync(path);
68
- if (fileExists) {
69
- release = this.acquireLockSyncWithRetry(path);
70
- }
71
- const current = fileExists ? readFileSync(path, "utf-8") : undefined;
72
- const next = fn(current);
73
- if (next !== undefined) {
74
- // Only create directory when we actually need to write
75
- if (!existsSync(dir)) {
76
- mkdirSync(dir, { recursive: true });
77
- }
78
- if (!release) {
79
- release = this.acquireLockSyncWithRetry(path);
80
- }
81
- writeFileSync(path, next, "utf-8");
82
- }
83
- }
84
- finally {
85
- if (release) {
86
- release();
87
- }
88
- }
89
- }
90
- }
91
- export class InMemorySettingsStorage {
92
- global;
93
- project;
94
- withLock(scope, fn) {
95
- const current = scope === "global" ? this.global : this.project;
96
- const next = fn(current);
97
- if (next !== undefined) {
98
- if (scope === "global") {
99
- this.global = next;
100
- }
101
- else {
102
- this.project = next;
103
- }
104
- }
105
- }
106
- }
107
- export class SettingsManager {
108
- storage;
109
- globalSettings;
110
- projectSettings;
111
- settings;
112
- modifiedFields = new Set(); // Track global fields modified during session
113
- modifiedNestedFields = new Map(); // Track global nested field modifications
114
- modifiedProjectFields = new Set(); // Track project fields modified during session
115
- modifiedProjectNestedFields = new Map(); // Track project nested field modifications
116
- globalSettingsLoadError = null; // Track if global settings file had parse errors
117
- projectSettingsLoadError = null; // Track if project settings file had parse errors
118
- writeQueue = Promise.resolve();
119
- errors;
120
- constructor(storage, initialGlobal, initialProject, globalLoadError = null, projectLoadError = null, initialErrors = []) {
121
- this.storage = storage;
122
- this.globalSettings = initialGlobal;
123
- this.projectSettings = initialProject;
124
- this.globalSettingsLoadError = globalLoadError;
125
- this.projectSettingsLoadError = projectLoadError;
126
- this.errors = [...initialErrors];
127
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
128
- }
129
- /** Create a SettingsManager that loads from files */
130
- static create(cwd, agentDir = getAgentDir()) {
131
- const storage = new FileSettingsStorage(cwd, agentDir);
132
- return SettingsManager.fromStorage(storage);
133
- }
134
- /** Create a SettingsManager from an arbitrary storage backend */
135
- static fromStorage(storage) {
136
- const globalLoad = SettingsManager.tryLoadFromStorage(storage, "global");
137
- const projectLoad = SettingsManager.tryLoadFromStorage(storage, "project");
138
- const initialErrors = [];
139
- if (globalLoad.error) {
140
- initialErrors.push({ scope: "global", error: globalLoad.error });
141
- }
142
- if (projectLoad.error) {
143
- initialErrors.push({ scope: "project", error: projectLoad.error });
144
- }
145
- return new SettingsManager(storage, globalLoad.settings, projectLoad.settings, globalLoad.error, projectLoad.error, initialErrors);
146
- }
147
- /** Create an in-memory SettingsManager (no file I/O) */
148
- static inMemory(settings = {}) {
149
- const storage = new InMemorySettingsStorage();
150
- return new SettingsManager(storage, settings, {});
151
- }
152
- static loadFromStorage(storage, scope) {
153
- let content;
154
- storage.withLock(scope, (current) => {
155
- content = current;
156
- return undefined;
157
- });
158
- if (!content) {
159
- return {};
160
- }
161
- const settings = JSON.parse(content);
162
- return SettingsManager.migrateSettings(settings);
163
- }
164
- static tryLoadFromStorage(storage, scope) {
165
- try {
166
- return { settings: SettingsManager.loadFromStorage(storage, scope), error: null };
167
- }
168
- catch (error) {
169
- return { settings: {}, error: error };
170
- }
171
- }
172
- /** Migrate old settings format to new format */
173
- static migrateSettings(settings) {
174
- // Migrate queueMode -> steeringMode
175
- if ("queueMode" in settings && !("steeringMode" in settings)) {
176
- settings.steeringMode = settings.queueMode;
177
- delete settings.queueMode;
178
- }
179
- // Migrate legacy websockets boolean -> transport enum
180
- if (!("transport" in settings) && typeof settings.websockets === "boolean") {
181
- settings.transport = settings.websockets ? "websocket" : "sse";
182
- delete settings.websockets;
183
- }
184
- // Migrate old skills object format to new array format
185
- if ("skills" in settings &&
186
- typeof settings.skills === "object" &&
187
- settings.skills !== null &&
188
- !Array.isArray(settings.skills)) {
189
- const skillsSettings = settings.skills;
190
- if (skillsSettings.enableSkillCommands !== undefined && settings.enableSkillCommands === undefined) {
191
- settings.enableSkillCommands = skillsSettings.enableSkillCommands;
192
- }
193
- if (Array.isArray(skillsSettings.customDirectories) && skillsSettings.customDirectories.length > 0) {
194
- settings.skills = skillsSettings.customDirectories;
195
- }
196
- else {
197
- delete settings.skills;
198
- }
199
- }
200
- return settings;
201
- }
202
- getGlobalSettings() {
203
- return structuredClone(this.globalSettings);
204
- }
205
- getProjectSettings() {
206
- return structuredClone(this.projectSettings);
207
- }
208
- async reload() {
209
- await this.writeQueue;
210
- const globalLoad = SettingsManager.tryLoadFromStorage(this.storage, "global");
211
- if (!globalLoad.error) {
212
- this.globalSettings = globalLoad.settings;
213
- this.globalSettingsLoadError = null;
214
- }
215
- else {
216
- this.globalSettingsLoadError = globalLoad.error;
217
- this.recordError("global", globalLoad.error);
218
- }
219
- this.modifiedFields.clear();
220
- this.modifiedNestedFields.clear();
221
- this.modifiedProjectFields.clear();
222
- this.modifiedProjectNestedFields.clear();
223
- const projectLoad = SettingsManager.tryLoadFromStorage(this.storage, "project");
224
- if (!projectLoad.error) {
225
- this.projectSettings = projectLoad.settings;
226
- this.projectSettingsLoadError = null;
227
- }
228
- else {
229
- this.projectSettingsLoadError = projectLoad.error;
230
- this.recordError("project", projectLoad.error);
231
- }
232
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
233
- }
234
- /** Apply additional overrides on top of current settings */
235
- applyOverrides(overrides) {
236
- this.settings = deepMergeSettings(this.settings, overrides);
237
- }
238
- /** Mark a global field as modified during this session */
239
- markModified(field, nestedKey) {
240
- this.modifiedFields.add(field);
241
- if (nestedKey) {
242
- if (!this.modifiedNestedFields.has(field)) {
243
- this.modifiedNestedFields.set(field, new Set());
244
- }
245
- this.modifiedNestedFields.get(field).add(nestedKey);
246
- }
247
- }
248
- /** Mark a project field as modified during this session */
249
- markProjectModified(field, nestedKey) {
250
- this.modifiedProjectFields.add(field);
251
- if (nestedKey) {
252
- if (!this.modifiedProjectNestedFields.has(field)) {
253
- this.modifiedProjectNestedFields.set(field, new Set());
254
- }
255
- this.modifiedProjectNestedFields.get(field).add(nestedKey);
256
- }
257
- }
258
- recordError(scope, error) {
259
- const normalizedError = error instanceof Error ? error : new Error(String(error));
260
- this.errors.push({ scope, error: normalizedError });
261
- }
262
- clearModifiedScope(scope) {
263
- if (scope === "global") {
264
- this.modifiedFields.clear();
265
- this.modifiedNestedFields.clear();
266
- return;
267
- }
268
- this.modifiedProjectFields.clear();
269
- this.modifiedProjectNestedFields.clear();
270
- }
271
- enqueueWrite(scope, task) {
272
- this.writeQueue = this.writeQueue
273
- .then(() => {
274
- task();
275
- this.clearModifiedScope(scope);
276
- })
277
- .catch((error) => {
278
- this.recordError(scope, error);
279
- });
280
- }
281
- cloneModifiedNestedFields(source) {
282
- const snapshot = new Map();
283
- for (const [key, value] of source.entries()) {
284
- snapshot.set(key, new Set(value));
285
- }
286
- return snapshot;
287
- }
288
- persistScopedSettings(scope, snapshotSettings, modifiedFields, modifiedNestedFields) {
289
- this.storage.withLock(scope, (current) => {
290
- const currentFileSettings = current
291
- ? SettingsManager.migrateSettings(JSON.parse(current))
292
- : {};
293
- const mergedSettings = { ...currentFileSettings };
294
- for (const field of modifiedFields) {
295
- const value = snapshotSettings[field];
296
- if (modifiedNestedFields.has(field) && typeof value === "object" && value !== null) {
297
- const nestedModified = modifiedNestedFields.get(field);
298
- const baseNested = currentFileSettings[field] ?? {};
299
- const inMemoryNested = value;
300
- const mergedNested = { ...baseNested };
301
- for (const nestedKey of nestedModified) {
302
- mergedNested[nestedKey] = inMemoryNested[nestedKey];
303
- }
304
- mergedSettings[field] = mergedNested;
305
- }
306
- else {
307
- mergedSettings[field] = value;
308
- }
309
- }
310
- return JSON.stringify(mergedSettings, null, 2);
311
- });
312
- }
313
- save() {
314
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
315
- if (this.globalSettingsLoadError) {
316
- return;
317
- }
318
- const snapshotGlobalSettings = structuredClone(this.globalSettings);
319
- const modifiedFields = new Set(this.modifiedFields);
320
- const modifiedNestedFields = this.cloneModifiedNestedFields(this.modifiedNestedFields);
321
- this.enqueueWrite("global", () => {
322
- this.persistScopedSettings("global", snapshotGlobalSettings, modifiedFields, modifiedNestedFields);
323
- });
324
- }
325
- saveProjectSettings(settings) {
326
- this.projectSettings = structuredClone(settings);
327
- this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
328
- if (this.projectSettingsLoadError) {
329
- return;
330
- }
331
- const snapshotProjectSettings = structuredClone(this.projectSettings);
332
- const modifiedFields = new Set(this.modifiedProjectFields);
333
- const modifiedNestedFields = this.cloneModifiedNestedFields(this.modifiedProjectNestedFields);
334
- this.enqueueWrite("project", () => {
335
- this.persistScopedSettings("project", snapshotProjectSettings, modifiedFields, modifiedNestedFields);
336
- });
337
- }
338
- async flush() {
339
- await this.writeQueue;
340
- }
341
- drainErrors() {
342
- const drained = [...this.errors];
343
- this.errors = [];
344
- return drained;
345
- }
346
- getLastChangelogVersion() {
347
- return this.settings.lastChangelogVersion;
348
- }
349
- setLastChangelogVersion(version) {
350
- this.globalSettings.lastChangelogVersion = version;
351
- this.markModified("lastChangelogVersion");
352
- this.save();
353
- }
354
- getSessionDir() {
355
- return this.settings.sessionDir;
356
- }
357
- getDefaultProvider() {
358
- return this.settings.defaultProvider;
359
- }
360
- getDefaultModel() {
361
- return this.settings.defaultModel;
362
- }
363
- setDefaultProvider(provider) {
364
- this.globalSettings.defaultProvider = provider;
365
- this.markModified("defaultProvider");
366
- this.save();
367
- }
368
- setDefaultModel(modelId) {
369
- this.globalSettings.defaultModel = modelId;
370
- this.markModified("defaultModel");
371
- this.save();
372
- }
373
- setDefaultModelAndProvider(provider, modelId) {
374
- this.globalSettings.defaultProvider = provider;
375
- this.globalSettings.defaultModel = modelId;
376
- this.markModified("defaultProvider");
377
- this.markModified("defaultModel");
378
- this.save();
379
- }
380
- getSteeringMode() {
381
- return this.settings.steeringMode || "one-at-a-time";
382
- }
383
- setSteeringMode(mode) {
384
- this.globalSettings.steeringMode = mode;
385
- this.markModified("steeringMode");
386
- this.save();
387
- }
388
- getFollowUpMode() {
389
- return this.settings.followUpMode || "one-at-a-time";
390
- }
391
- setFollowUpMode(mode) {
392
- this.globalSettings.followUpMode = mode;
393
- this.markModified("followUpMode");
394
- this.save();
395
- }
396
- getTheme() {
397
- return this.settings.theme;
398
- }
399
- setTheme(theme) {
400
- this.globalSettings.theme = theme;
401
- this.markModified("theme");
402
- this.save();
403
- }
404
- getDefaultThinkingLevel() {
405
- return this.settings.defaultThinkingLevel;
406
- }
407
- setDefaultThinkingLevel(level) {
408
- this.globalSettings.defaultThinkingLevel = level;
409
- this.markModified("defaultThinkingLevel");
410
- this.save();
411
- }
412
- getTransport() {
413
- return this.settings.transport ?? "sse";
414
- }
415
- setTransport(transport) {
416
- this.globalSettings.transport = transport;
417
- this.markModified("transport");
418
- this.save();
419
- }
420
- getCompactionEnabled() {
421
- return this.settings.compaction?.enabled ?? true;
422
- }
423
- setCompactionEnabled(enabled) {
424
- if (!this.globalSettings.compaction) {
425
- this.globalSettings.compaction = {};
426
- }
427
- this.globalSettings.compaction.enabled = enabled;
428
- this.markModified("compaction", "enabled");
429
- this.save();
430
- }
431
- getCompactionReserveTokens() {
432
- return this.settings.compaction?.reserveTokens ?? 16384;
433
- }
434
- getCompactionKeepRecentTokens() {
435
- return this.settings.compaction?.keepRecentTokens ?? 20000;
436
- }
437
- getCompactionSettings() {
438
- return {
439
- enabled: this.getCompactionEnabled(),
440
- reserveTokens: this.getCompactionReserveTokens(),
441
- keepRecentTokens: this.getCompactionKeepRecentTokens(),
442
- };
443
- }
444
- getBranchSummarySettings() {
445
- return {
446
- reserveTokens: this.settings.branchSummary?.reserveTokens ?? 16384,
447
- skipPrompt: this.settings.branchSummary?.skipPrompt ?? false,
448
- };
449
- }
450
- getBranchSummarySkipPrompt() {
451
- return this.settings.branchSummary?.skipPrompt ?? false;
452
- }
453
- getRetryEnabled() {
454
- return this.settings.retry?.enabled ?? true;
455
- }
456
- setRetryEnabled(enabled) {
457
- if (!this.globalSettings.retry) {
458
- this.globalSettings.retry = {};
459
- }
460
- this.globalSettings.retry.enabled = enabled;
461
- this.markModified("retry", "enabled");
462
- this.save();
463
- }
464
- getRetrySettings() {
465
- return {
466
- enabled: this.getRetryEnabled(),
467
- maxRetries: this.settings.retry?.maxRetries ?? 3,
468
- baseDelayMs: this.settings.retry?.baseDelayMs ?? 2000,
469
- maxDelayMs: this.settings.retry?.maxDelayMs ?? 60000,
470
- };
471
- }
472
- getHideThinkingBlock() {
473
- return this.settings.hideThinkingBlock ?? false;
474
- }
475
- setHideThinkingBlock(hide) {
476
- this.globalSettings.hideThinkingBlock = hide;
477
- this.markModified("hideThinkingBlock");
478
- this.save();
479
- }
480
- getShellPath() {
481
- return this.settings.shellPath;
482
- }
483
- setShellPath(path) {
484
- this.globalSettings.shellPath = path;
485
- this.markModified("shellPath");
486
- this.save();
487
- }
488
- getQuietStartup() {
489
- return this.settings.quietStartup ?? true;
490
- }
491
- setQuietStartup(quiet) {
492
- this.globalSettings.quietStartup = quiet;
493
- this.markModified("quietStartup");
494
- this.save();
495
- }
496
- getShellCommandPrefix() {
497
- return this.settings.shellCommandPrefix;
498
- }
499
- setShellCommandPrefix(prefix) {
500
- this.globalSettings.shellCommandPrefix = prefix;
501
- this.markModified("shellCommandPrefix");
502
- this.save();
503
- }
504
- getNpmCommand() {
505
- return this.settings.npmCommand ? [...this.settings.npmCommand] : undefined;
506
- }
507
- setNpmCommand(command) {
508
- this.globalSettings.npmCommand = command ? [...command] : undefined;
509
- this.markModified("npmCommand");
510
- this.save();
511
- }
512
- getCollapseChangelog() {
513
- return this.settings.collapseChangelog ?? false;
514
- }
515
- setCollapseChangelog(collapse) {
516
- this.globalSettings.collapseChangelog = collapse;
517
- this.markModified("collapseChangelog");
518
- this.save();
519
- }
520
- getEnableInstallTelemetry() {
521
- return this.settings.enableInstallTelemetry ?? true;
522
- }
523
- setEnableInstallTelemetry(enabled) {
524
- this.globalSettings.enableInstallTelemetry = enabled;
525
- this.markModified("enableInstallTelemetry");
526
- this.save();
527
- }
528
- getPackages() {
529
- return [...(this.settings.packages ?? [])];
530
- }
531
- setPackages(packages) {
532
- this.globalSettings.packages = packages;
533
- this.markModified("packages");
534
- this.save();
535
- }
536
- setProjectPackages(packages) {
537
- const projectSettings = structuredClone(this.projectSettings);
538
- projectSettings.packages = packages;
539
- this.markProjectModified("packages");
540
- this.saveProjectSettings(projectSettings);
541
- }
542
- getExtensionPaths() {
543
- return [...(this.settings.extensions ?? [])];
544
- }
545
- setExtensionPaths(paths) {
546
- this.globalSettings.extensions = paths;
547
- this.markModified("extensions");
548
- this.save();
549
- }
550
- setProjectExtensionPaths(paths) {
551
- const projectSettings = structuredClone(this.projectSettings);
552
- projectSettings.extensions = paths;
553
- this.markProjectModified("extensions");
554
- this.saveProjectSettings(projectSettings);
555
- }
556
- getSkillPaths() {
557
- return [...(this.settings.skills ?? [])];
558
- }
559
- setSkillPaths(paths) {
560
- this.globalSettings.skills = paths;
561
- this.markModified("skills");
562
- this.save();
563
- }
564
- setProjectSkillPaths(paths) {
565
- const projectSettings = structuredClone(this.projectSettings);
566
- projectSettings.skills = paths;
567
- this.markProjectModified("skills");
568
- this.saveProjectSettings(projectSettings);
569
- }
570
- getPromptTemplatePaths() {
571
- return [...(this.settings.prompts ?? [])];
572
- }
573
- setPromptTemplatePaths(paths) {
574
- this.globalSettings.prompts = paths;
575
- this.markModified("prompts");
576
- this.save();
577
- }
578
- setProjectPromptTemplatePaths(paths) {
579
- const projectSettings = structuredClone(this.projectSettings);
580
- projectSettings.prompts = paths;
581
- this.markProjectModified("prompts");
582
- this.saveProjectSettings(projectSettings);
583
- }
584
- getThemePaths() {
585
- return [...(this.settings.themes ?? [])];
586
- }
587
- setThemePaths(paths) {
588
- this.globalSettings.themes = paths;
589
- this.markModified("themes");
590
- this.save();
591
- }
592
- setProjectThemePaths(paths) {
593
- const projectSettings = structuredClone(this.projectSettings);
594
- projectSettings.themes = paths;
595
- this.markProjectModified("themes");
596
- this.saveProjectSettings(projectSettings);
597
- }
598
- getEnableSkillCommands() {
599
- return this.settings.enableSkillCommands ?? true;
600
- }
601
- setEnableSkillCommands(enabled) {
602
- this.globalSettings.enableSkillCommands = enabled;
603
- this.markModified("enableSkillCommands");
604
- this.save();
605
- }
606
- getThinkingBudgets() {
607
- return this.settings.thinkingBudgets;
608
- }
609
- getShowImages() {
610
- return this.settings.terminal?.showImages ?? true;
611
- }
612
- setShowImages(show) {
613
- if (!this.globalSettings.terminal) {
614
- this.globalSettings.terminal = {};
615
- }
616
- this.globalSettings.terminal.showImages = show;
617
- this.markModified("terminal", "showImages");
618
- this.save();
619
- }
620
- getClearOnShrink() {
621
- // Settings takes precedence, then env var, then default false
622
- if (this.settings.terminal?.clearOnShrink !== undefined) {
623
- return this.settings.terminal.clearOnShrink;
624
- }
625
- return process.env.PI_CLEAR_ON_SHRINK === "1";
626
- }
627
- setClearOnShrink(enabled) {
628
- if (!this.globalSettings.terminal) {
629
- this.globalSettings.terminal = {};
630
- }
631
- this.globalSettings.terminal.clearOnShrink = enabled;
632
- this.markModified("terminal", "clearOnShrink");
633
- this.save();
634
- }
635
- getImageAutoResize() {
636
- return this.settings.images?.autoResize ?? true;
637
- }
638
- setImageAutoResize(enabled) {
639
- if (!this.globalSettings.images) {
640
- this.globalSettings.images = {};
641
- }
642
- this.globalSettings.images.autoResize = enabled;
643
- this.markModified("images", "autoResize");
644
- this.save();
645
- }
646
- getBlockImages() {
647
- return this.settings.images?.blockImages ?? false;
648
- }
649
- setBlockImages(blocked) {
650
- if (!this.globalSettings.images) {
651
- this.globalSettings.images = {};
652
- }
653
- this.globalSettings.images.blockImages = blocked;
654
- this.markModified("images", "blockImages");
655
- this.save();
656
- }
657
- getEnabledModels() {
658
- return this.settings.enabledModels;
659
- }
660
- setEnabledModels(patterns) {
661
- this.globalSettings.enabledModels = patterns;
662
- this.markModified("enabledModels");
663
- this.save();
664
- }
665
- getDoubleEscapeAction() {
666
- return this.settings.doubleEscapeAction ?? "tree";
667
- }
668
- setDoubleEscapeAction(action) {
669
- this.globalSettings.doubleEscapeAction = action;
670
- this.markModified("doubleEscapeAction");
671
- this.save();
672
- }
673
- getTreeFilterMode() {
674
- const mode = this.settings.treeFilterMode;
675
- const valid = ["default", "no-tools", "user-only", "labeled-only", "all"];
676
- return mode && valid.includes(mode) ? mode : "default";
677
- }
678
- setTreeFilterMode(mode) {
679
- this.globalSettings.treeFilterMode = mode;
680
- this.markModified("treeFilterMode");
681
- this.save();
682
- }
683
- getShowHardwareCursor() {
684
- return this.settings.showHardwareCursor ?? process.env.PI_HARDWARE_CURSOR === "1";
685
- }
686
- setShowHardwareCursor(enabled) {
687
- this.globalSettings.showHardwareCursor = enabled;
688
- this.markModified("showHardwareCursor");
689
- this.save();
690
- }
691
- getEditorPaddingX() {
692
- return this.settings.editorPaddingX ?? 0;
693
- }
694
- setEditorPaddingX(padding) {
695
- this.globalSettings.editorPaddingX = Math.max(0, Math.min(3, Math.floor(padding)));
696
- this.markModified("editorPaddingX");
697
- this.save();
698
- }
699
- getAutocompleteMaxVisible() {
700
- return this.settings.autocompleteMaxVisible ?? 5;
701
- }
702
- setAutocompleteMaxVisible(maxVisible) {
703
- this.globalSettings.autocompleteMaxVisible = Math.max(3, Math.min(20, Math.floor(maxVisible)));
704
- this.markModified("autocompleteMaxVisible");
705
- this.save();
706
- }
707
- getCodeBlockIndent() {
708
- return this.settings.markdown?.codeBlockIndent ?? " ";
709
- }
710
- }
711
- //# sourceMappingURL=settings-manager.js.map