@bastani/atomic 0.9.29 → 0.9.30-alpha.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 (109) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/builtin/intercom/package.json +1 -1
  3. package/dist/builtin/mcp/package.json +1 -1
  4. package/dist/builtin/subagents/package.json +1 -1
  5. package/dist/builtin/web-access/package.json +1 -1
  6. package/dist/builtin/workflows/package.json +1 -1
  7. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  8. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  9. package/dist/core/extensions/loader-virtual-modules.js +6 -0
  10. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  11. package/dist/core/http-dispatcher.d.ts +1 -1
  12. package/dist/core/http-dispatcher.d.ts.map +1 -1
  13. package/dist/core/http-dispatcher.js +2 -1
  14. package/dist/core/http-dispatcher.js.map +1 -1
  15. package/dist/core/key-id-schema.d.ts +6 -0
  16. package/dist/core/key-id-schema.d.ts.map +1 -0
  17. package/dist/core/key-id-schema.js +16 -0
  18. package/dist/core/key-id-schema.js.map +1 -0
  19. package/dist/core/keybindings-schema.d.ts +4 -0
  20. package/dist/core/keybindings-schema.d.ts.map +1 -0
  21. package/dist/core/keybindings-schema.js +20 -0
  22. package/dist/core/keybindings-schema.js.map +1 -0
  23. package/dist/core/keybindings.d.ts +226 -79
  24. package/dist/core/keybindings.d.ts.map +1 -1
  25. package/dist/core/keybindings.js +25 -20
  26. package/dist/core/keybindings.js.map +1 -1
  27. package/dist/core/model-config.d.ts +685 -164
  28. package/dist/core/model-config.d.ts.map +1 -1
  29. package/dist/core/model-config.js +22 -176
  30. package/dist/core/model-config.js.map +1 -1
  31. package/dist/core/project-trust.d.ts.map +1 -1
  32. package/dist/core/project-trust.js +2 -1
  33. package/dist/core/project-trust.js.map +1 -1
  34. package/dist/core/settings-defaults.d.ts +80 -0
  35. package/dist/core/settings-defaults.d.ts.map +1 -0
  36. package/dist/core/settings-defaults.js +81 -0
  37. package/dist/core/settings-defaults.js.map +1 -0
  38. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  39. package/dist/core/settings-manager-basic-accessors.js +34 -29
  40. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  41. package/dist/core/settings-manager-resource-accessors.d.ts.map +1 -1
  42. package/dist/core/settings-manager-resource-accessors.js +10 -9
  43. package/dist/core/settings-manager-resource-accessors.js.map +1 -1
  44. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  45. package/dist/core/settings-manager-ui-accessors.js +26 -18
  46. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  47. package/dist/core/settings-schema.d.ts +292 -0
  48. package/dist/core/settings-schema.d.ts.map +1 -0
  49. package/dist/core/settings-schema.js +403 -0
  50. package/dist/core/settings-schema.js.map +1 -0
  51. package/dist/core/settings-types.d.ts +2 -181
  52. package/dist/core/settings-types.d.ts.map +1 -1
  53. package/dist/core/settings-types.js.map +1 -1
  54. package/dist/extensions/codemode/index.d.ts.map +1 -1
  55. package/dist/extensions/codemode/index.js +2 -1
  56. package/dist/extensions/codemode/index.js.map +1 -1
  57. package/dist/extensions/codemode/tool.d.ts +1 -1
  58. package/dist/extensions/codemode/tool.d.ts.map +1 -1
  59. package/dist/extensions/codemode/tool.js +2 -1
  60. package/dist/extensions/codemode/tool.js.map +1 -1
  61. package/dist/extensions/herdr/index.d.ts.map +1 -1
  62. package/dist/extensions/herdr/index.js +4 -1
  63. package/dist/extensions/herdr/index.js.map +1 -1
  64. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  65. package/dist/modes/interactive/components/settings-selector-items.js +2 -4
  66. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  67. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  68. package/dist/modes/interactive/components/settings-selector-submenus.js +2 -1
  69. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  70. package/dist/modes/interactive/theme/catppuccin-frappe.json +1 -1
  71. package/dist/modes/interactive/theme/catppuccin-latte.json +1 -1
  72. package/dist/modes/interactive/theme/catppuccin-macchiato.json +1 -1
  73. package/dist/modes/interactive/theme/catppuccin-mocha.json +1 -1
  74. package/dist/modes/interactive/theme/dark.json +1 -1
  75. package/dist/modes/interactive/theme/light.json +1 -1
  76. package/dist/modes/interactive/theme/theme-class.d.ts +3 -12
  77. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  78. package/dist/modes/interactive/theme/theme-class.js +2 -9
  79. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  80. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  81. package/dist/modes/interactive/theme/theme-loading.js +3 -21
  82. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  83. package/dist/modes/interactive/theme/theme-parse.d.ts.map +1 -1
  84. package/dist/modes/interactive/theme/theme-parse.js +3 -0
  85. package/dist/modes/interactive/theme/theme-parse.js.map +1 -1
  86. package/dist/modes/interactive/theme/theme-schema.d.ts +5 -224
  87. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  88. package/dist/modes/interactive/theme/theme-schema.js +47 -72
  89. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  90. package/dist/modes/interactive/theme/theme-tokens.d.ts +262 -0
  91. package/dist/modes/interactive/theme/theme-tokens.d.ts.map +1 -0
  92. package/dist/modes/interactive/theme/theme-tokens.js +126 -0
  93. package/dist/modes/interactive/theme/theme-tokens.js.map +1 -0
  94. package/docs/compaction/reference.md +1 -1
  95. package/docs/compaction.md +2 -2
  96. package/docs/keybindings.md +2 -0
  97. package/docs/models.md +2 -0
  98. package/docs/providers.md +1 -1
  99. package/docs/settings.md +2 -0
  100. package/docs/themes/reference.md +2 -2
  101. package/docs/themes.md +3 -1
  102. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  103. package/npm-shrinkwrap.json +32 -32
  104. package/package.json +5 -3
  105. package/schemas/keybindings.schema.json +413 -0
  106. package/schemas/models.schema.json +1178 -0
  107. package/schemas/settings.schema.json +940 -0
  108. package/schemas/theme.schema.json +369 -0
  109. package/dist/modes/interactive/theme/theme-schema.json +0 -361
@@ -1,9 +1,10 @@
1
1
  import { ENV_CLEAR_ON_SHRINK, ENV_HARDWARE_CURSOR, getEnvValue } from "../config.js";
2
+ import { SETTINGS_DEFAULTS } from "./settings-defaults.js";
2
3
  import { SettingsManager } from "./settings-manager-core.js";
3
4
  import { settingsInternals } from "./settings-manager-internals.js";
4
5
  const uiAccessors = {
5
6
  getShowImages() {
6
- return settingsInternals(this).settings.terminal?.showImages ?? true;
7
+ return settingsInternals(this).settings.terminal?.showImages ?? SETTINGS_DEFAULTS.terminal.showImages;
7
8
  },
8
9
  setShowImages(show) {
9
10
  const state = settingsInternals(this);
@@ -17,7 +18,7 @@ const uiAccessors = {
17
18
  getImageWidthCells() {
18
19
  const width = settingsInternals(this).settings.terminal?.imageWidthCells;
19
20
  if (typeof width !== "number" || !Number.isFinite(width)) {
20
- return 60;
21
+ return SETTINGS_DEFAULTS.terminal.imageWidthCells;
21
22
  }
22
23
  return Math.max(1, Math.floor(width));
23
24
  },
@@ -36,7 +37,9 @@ const uiAccessors = {
36
37
  if (terminal?.clearOnShrink !== undefined) {
37
38
  return terminal.clearOnShrink;
38
39
  }
39
- return getEnvValue(ENV_CLEAR_ON_SHRINK) === "1";
40
+ if (getEnvValue(ENV_CLEAR_ON_SHRINK) === "1")
41
+ return true;
42
+ return SETTINGS_DEFAULTS.terminal.clearOnShrink;
40
43
  },
41
44
  setClearOnShrink(enabled) {
42
45
  const state = settingsInternals(this);
@@ -48,7 +51,8 @@ const uiAccessors = {
48
51
  state.save();
49
52
  },
50
53
  getShowTerminalProgress() {
51
- return settingsInternals(this).settings.terminal?.showTerminalProgress ?? false;
54
+ return (settingsInternals(this).settings.terminal?.showTerminalProgress ??
55
+ SETTINGS_DEFAULTS.terminal.showTerminalProgress);
52
56
  },
53
57
  setShowTerminalProgress(enabled) {
54
58
  const state = settingsInternals(this);
@@ -60,7 +64,7 @@ const uiAccessors = {
60
64
  state.save();
61
65
  },
62
66
  getImageAutoResize() {
63
- return settingsInternals(this).settings.images?.autoResize ?? true;
67
+ return settingsInternals(this).settings.images?.autoResize ?? SETTINGS_DEFAULTS.images.autoResize;
64
68
  },
65
69
  setImageAutoResize(enabled) {
66
70
  const state = settingsInternals(this);
@@ -72,7 +76,7 @@ const uiAccessors = {
72
76
  state.save();
73
77
  },
74
78
  getBlockImages() {
75
- return settingsInternals(this).settings.images?.blockImages ?? false;
79
+ return settingsInternals(this).settings.images?.blockImages ?? SETTINGS_DEFAULTS.images.blockImages;
76
80
  },
77
81
  setBlockImages(blocked) {
78
82
  const state = settingsInternals(this);
@@ -93,7 +97,7 @@ const uiAccessors = {
93
97
  state.save();
94
98
  },
95
99
  getDoubleEscapeAction() {
96
- return settingsInternals(this).settings.doubleEscapeAction ?? "tree";
100
+ return settingsInternals(this).settings.doubleEscapeAction ?? SETTINGS_DEFAULTS.doubleEscapeAction;
97
101
  },
98
102
  setDoubleEscapeAction(action) {
99
103
  const state = settingsInternals(this);
@@ -104,7 +108,7 @@ const uiAccessors = {
104
108
  getTreeFilterMode() {
105
109
  const mode = settingsInternals(this).settings.treeFilterMode;
106
110
  const valid = ["default", "no-tools", "user-only", "labeled-only", "all"];
107
- return mode && valid.includes(mode) ? mode : "default";
111
+ return mode && valid.includes(mode) ? mode : SETTINGS_DEFAULTS.treeFilterMode;
108
112
  },
109
113
  setTreeFilterMode(mode) {
110
114
  const state = settingsInternals(this);
@@ -123,7 +127,7 @@ const uiAccessors = {
123
127
  },
124
128
  getFullscreenScrollbar() {
125
129
  const mode = settingsInternals(this).settings.fullscreenScrollbar;
126
- return mode === "always" || mode === "hidden" ? mode : "auto";
130
+ return mode === "always" || mode === "hidden" ? mode : SETTINGS_DEFAULTS.fullscreenScrollbar;
127
131
  },
128
132
  setFullscreenScrollbar(mode) {
129
133
  const state = settingsInternals(this);
@@ -132,7 +136,9 @@ const uiAccessors = {
132
136
  state.save();
133
137
  },
134
138
  getFullscreenExitOutput() {
135
- return settingsInternals(this).settings.fullscreenExitOutput === "resume-hint" ? "resume-hint" : "transcript";
139
+ return settingsInternals(this).settings.fullscreenExitOutput === "resume-hint"
140
+ ? "resume-hint"
141
+ : SETTINGS_DEFAULTS.fullscreenExitOutput;
136
142
  },
137
143
  setFullscreenExitOutput(output) {
138
144
  const state = settingsInternals(this);
@@ -141,7 +147,8 @@ const uiAccessors = {
141
147
  state.save();
142
148
  },
143
149
  getFullscreenCopyOnSelect() {
144
- return settingsInternals(this).settings.fullscreenCopyOnSelect !== false;
150
+ const copyOnSelect = settingsInternals(this).settings.fullscreenCopyOnSelect;
151
+ return typeof copyOnSelect === "boolean" ? copyOnSelect : SETTINGS_DEFAULTS.fullscreenCopyOnSelect;
145
152
  },
146
153
  setFullscreenCopyOnSelect(enabled) {
147
154
  const state = settingsInternals(this);
@@ -153,7 +160,7 @@ const uiAccessors = {
153
160
  const lines = settingsInternals(this).settings.fullscreenWheelScrollLines;
154
161
  return typeof lines === "number" && Number.isFinite(lines)
155
162
  ? Math.max(1, Math.min(100, Math.floor(lines)))
156
- : "auto";
163
+ : SETTINGS_DEFAULTS.fullscreenWheelScrollLines;
157
164
  },
158
165
  setFullscreenWheelScrollLines(lines) {
159
166
  const state = settingsInternals(this);
@@ -176,7 +183,7 @@ const uiAccessors = {
176
183
  return overrides;
177
184
  },
178
185
  getEditorPaddingX() {
179
- return settingsInternals(this).settings.editorPaddingX ?? 0;
186
+ return settingsInternals(this).settings.editorPaddingX ?? SETTINGS_DEFAULTS.editorPaddingX;
180
187
  },
181
188
  setEditorPaddingX(padding) {
182
189
  const state = settingsInternals(this);
@@ -185,7 +192,7 @@ const uiAccessors = {
185
192
  state.save();
186
193
  },
187
194
  getOutputPad() {
188
- return settingsInternals(this).settings.outputPad === 0 ? 0 : 1;
195
+ return settingsInternals(this).settings.outputPad === 0 ? 0 : SETTINGS_DEFAULTS.outputPad;
189
196
  },
190
197
  setOutputPad(padding) {
191
198
  const state = settingsInternals(this);
@@ -194,7 +201,7 @@ const uiAccessors = {
194
201
  state.save();
195
202
  },
196
203
  getAutocompleteMaxVisible() {
197
- return settingsInternals(this).settings.autocompleteMaxVisible ?? 5;
204
+ return settingsInternals(this).settings.autocompleteMaxVisible ?? SETTINGS_DEFAULTS.autocompleteMaxVisible;
198
205
  },
199
206
  setAutocompleteMaxVisible(maxVisible) {
200
207
  const state = settingsInternals(this);
@@ -203,11 +210,11 @@ const uiAccessors = {
203
210
  state.save();
204
211
  },
205
212
  getCodeBlockIndent() {
206
- return settingsInternals(this).settings.markdown?.codeBlockIndent ?? " ";
213
+ return settingsInternals(this).settings.markdown?.codeBlockIndent ?? SETTINGS_DEFAULTS.markdown.codeBlockIndent;
207
214
  },
208
215
  getMermaidRenderingMode() {
209
216
  const mode = settingsInternals(this).settings.markdown?.mermaid;
210
- return mode === "off" || mode === "final" ? mode : "streaming";
217
+ return mode === "off" || mode === "final" ? mode : SETTINGS_DEFAULTS.markdown.mermaid;
211
218
  },
212
219
  setMermaidRenderingMode(mode) {
213
220
  const state = settingsInternals(this);
@@ -217,7 +224,8 @@ const uiAccessors = {
217
224
  state.save();
218
225
  },
219
226
  getLatexRenderingEnabled() {
220
- return settingsInternals(this).settings.markdown?.latex !== false;
227
+ const latex = settingsInternals(this).settings.markdown?.latex;
228
+ return typeof latex === "boolean" ? latex : SETTINGS_DEFAULTS.markdown.latex;
221
229
  },
222
230
  setLatexRenderingEnabled(enabled) {
223
231
  const state = settingsInternals(this);
@@ -1 +1 @@
1
- {"version":3,"file":"settings-manager-ui-accessors.js","sourceRoot":"","sources":["../../src/core/settings-manager-ui-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ScrollViewScrollbar, TerminalCapabilities, WheelScrollLines } from \"@earendil-works/pi-tui\";\nimport { ENV_CLEAR_ON_SHRINK, ENV_HARDWARE_CURSOR, getEnvValue } from \"../config.js\";\nimport { SettingsManager } from \"./settings-manager-core.ts\";\nimport { settingsInternals } from \"./settings-manager-internals.ts\";\nimport type { FullscreenExitOutput, MermaidRenderingMode, WarningSettings } from \"./settings-types.ts\";\n\ninterface SettingsManagerUiAccessors {\n\tgetShowImages(): boolean;\n\tsetShowImages(show: boolean): void;\n\tgetImageWidthCells(): number;\n\tsetImageWidthCells(width: number): void;\n\tgetClearOnShrink(): boolean;\n\tsetClearOnShrink(enabled: boolean): void;\n\tgetShowTerminalProgress(): boolean;\n\tsetShowTerminalProgress(enabled: boolean): void;\n\tgetImageAutoResize(): boolean;\n\tsetImageAutoResize(enabled: boolean): void;\n\tgetBlockImages(): boolean;\n\tsetBlockImages(blocked: boolean): void;\n\tgetEnabledModels(): string[] | undefined;\n\tsetEnabledModels(patterns: string[] | undefined): void;\n\tgetDoubleEscapeAction(): \"fork\" | \"tree\" | \"none\";\n\tsetDoubleEscapeAction(action: \"fork\" | \"tree\" | \"none\"): void;\n\tgetTreeFilterMode(): \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\tsetTreeFilterMode(mode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\"): void;\n\tgetShowHardwareCursor(): boolean;\n\tsetShowHardwareCursor(enabled: boolean): void;\n\tgetEditorPaddingX(): number;\n\tsetEditorPaddingX(padding: number): void;\n\tgetOutputPad(): 0 | 1;\n\tsetOutputPad(padding: 0 | 1): void;\n\tgetAutocompleteMaxVisible(): number;\n\tsetAutocompleteMaxVisible(maxVisible: number): void;\n\tgetCodeBlockIndent(): string;\n\tgetMermaidRenderingMode(): MermaidRenderingMode;\n\tsetMermaidRenderingMode(mode: MermaidRenderingMode): void;\n\tgetLatexRenderingEnabled(): boolean;\n\tsetLatexRenderingEnabled(enabled: boolean): void;\n\tgetWarnings(): WarningSettings;\n\tsetWarnings(warnings: WarningSettings): void;\n\tgetFullscreenScrollbar(): ScrollViewScrollbar;\n\tsetFullscreenScrollbar(mode: ScrollViewScrollbar): void;\n\tgetFullscreenExitOutput(): FullscreenExitOutput;\n\tsetFullscreenExitOutput(output: FullscreenExitOutput): void;\n\tgetFullscreenCopyOnSelect(): boolean;\n\tsetFullscreenCopyOnSelect(enabled: boolean): void;\n\tgetFullscreenWheelScrollLines(): WheelScrollLines;\n\tsetFullscreenWheelScrollLines(lines: WheelScrollLines): void;\n\tgetTerminalCapabilityOverrides(): Partial<TerminalCapabilities>;\n}\n\ndeclare module \"./settings-manager-core.ts\" {\n\tinterface SettingsManager extends SettingsManagerUiAccessors {}\n}\n\nconst uiAccessors: SettingsManagerUiAccessors = {\n\tgetShowImages() {\n\t\treturn settingsInternals(this).settings.terminal?.showImages ?? true;\n\t},\n\n\tsetShowImages(show) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.terminal) {\n\t\t\tstate.globalSettings.terminal = {};\n\t\t}\n\t\tstate.globalSettings.terminal.showImages = show;\n\t\tstate.markModified(\"terminal\", \"showImages\");\n\t\tstate.save();\n\t},\n\n\tgetImageWidthCells() {\n\t\tconst width = settingsInternals(this).settings.terminal?.imageWidthCells;\n\t\tif (typeof width !== \"number\" || !Number.isFinite(width)) {\n\t\t\treturn 60;\n\t\t}\n\t\treturn Math.max(1, Math.floor(width));\n\t},\n\n\tsetImageWidthCells(width) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.terminal) {\n\t\t\tstate.globalSettings.terminal = {};\n\t\t}\n\t\tstate.globalSettings.terminal.imageWidthCells = Math.max(1, Math.floor(width));\n\t\tstate.markModified(\"terminal\", \"imageWidthCells\");\n\t\tstate.save();\n\t},\n\n\tgetClearOnShrink() {\n\t\t// Settings takes precedence, then env var, then default false\n\t\tconst terminal = settingsInternals(this).settings.terminal;\n\t\tif (terminal?.clearOnShrink !== undefined) {\n\t\t\treturn terminal.clearOnShrink;\n\t\t}\n\t\treturn getEnvValue(ENV_CLEAR_ON_SHRINK) === \"1\";\n\t},\n\n\tsetClearOnShrink(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.terminal) {\n\t\t\tstate.globalSettings.terminal = {};\n\t\t}\n\t\tstate.globalSettings.terminal.clearOnShrink = enabled;\n\t\tstate.markModified(\"terminal\", \"clearOnShrink\");\n\t\tstate.save();\n\t},\n\n\tgetShowTerminalProgress() {\n\t\treturn settingsInternals(this).settings.terminal?.showTerminalProgress ?? false;\n\t},\n\n\tsetShowTerminalProgress(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.terminal) {\n\t\t\tstate.globalSettings.terminal = {};\n\t\t}\n\t\tstate.globalSettings.terminal.showTerminalProgress = enabled;\n\t\tstate.markModified(\"terminal\", \"showTerminalProgress\");\n\t\tstate.save();\n\t},\n\n\tgetImageAutoResize() {\n\t\treturn settingsInternals(this).settings.images?.autoResize ?? true;\n\t},\n\n\tsetImageAutoResize(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.images) {\n\t\t\tstate.globalSettings.images = {};\n\t\t}\n\t\tstate.globalSettings.images.autoResize = enabled;\n\t\tstate.markModified(\"images\", \"autoResize\");\n\t\tstate.save();\n\t},\n\n\tgetBlockImages() {\n\t\treturn settingsInternals(this).settings.images?.blockImages ?? false;\n\t},\n\n\tsetBlockImages(blocked) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.images) {\n\t\t\tstate.globalSettings.images = {};\n\t\t}\n\t\tstate.globalSettings.images.blockImages = blocked;\n\t\tstate.markModified(\"images\", \"blockImages\");\n\t\tstate.save();\n\t},\n\n\tgetEnabledModels() {\n\t\treturn settingsInternals(this).settings.enabledModels;\n\t},\n\n\tsetEnabledModels(patterns) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.enabledModels = patterns;\n\t\tstate.markModified(\"enabledModels\");\n\t\tstate.save();\n\t},\n\n\tgetDoubleEscapeAction() {\n\t\treturn settingsInternals(this).settings.doubleEscapeAction ?? \"tree\";\n\t},\n\n\tsetDoubleEscapeAction(action) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.doubleEscapeAction = action;\n\t\tstate.markModified(\"doubleEscapeAction\");\n\t\tstate.save();\n\t},\n\n\tgetTreeFilterMode() {\n\t\tconst mode = settingsInternals(this).settings.treeFilterMode;\n\t\tconst valid = [\"default\", \"no-tools\", \"user-only\", \"labeled-only\", \"all\"];\n\t\treturn mode && valid.includes(mode) ? mode : \"default\";\n\t},\n\n\tsetTreeFilterMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.treeFilterMode = mode;\n\t\tstate.markModified(\"treeFilterMode\");\n\t\tstate.save();\n\t},\n\n\tgetShowHardwareCursor() {\n\t\treturn settingsInternals(this).settings.showHardwareCursor ?? getEnvValue(ENV_HARDWARE_CURSOR) === \"1\";\n\t},\n\n\tsetShowHardwareCursor(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.showHardwareCursor = enabled;\n\t\tstate.markModified(\"showHardwareCursor\");\n\t\tstate.save();\n\t},\n\n\tgetFullscreenScrollbar() {\n\t\tconst mode = settingsInternals(this).settings.fullscreenScrollbar;\n\t\treturn mode === \"always\" || mode === \"hidden\" ? mode : \"auto\";\n\t},\n\n\tsetFullscreenScrollbar(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.fullscreenScrollbar = mode;\n\t\tstate.markModified(\"fullscreenScrollbar\");\n\t\tstate.save();\n\t},\n\n\tgetFullscreenExitOutput() {\n\t\treturn settingsInternals(this).settings.fullscreenExitOutput === \"resume-hint\" ? \"resume-hint\" : \"transcript\";\n\t},\n\n\tsetFullscreenExitOutput(output) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.fullscreenExitOutput = output;\n\t\tstate.markModified(\"fullscreenExitOutput\");\n\t\tstate.save();\n\t},\n\n\tgetFullscreenCopyOnSelect() {\n\t\treturn settingsInternals(this).settings.fullscreenCopyOnSelect !== false;\n\t},\n\n\tsetFullscreenCopyOnSelect(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.fullscreenCopyOnSelect = enabled;\n\t\tstate.markModified(\"fullscreenCopyOnSelect\");\n\t\tstate.save();\n\t},\n\n\tgetFullscreenWheelScrollLines() {\n\t\tconst lines = settingsInternals(this).settings.fullscreenWheelScrollLines;\n\t\treturn typeof lines === \"number\" && Number.isFinite(lines)\n\t\t\t? Math.max(1, Math.min(100, Math.floor(lines)))\n\t\t\t: \"auto\";\n\t},\n\tsetFullscreenWheelScrollLines(lines) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.fullscreenWheelScrollLines =\n\t\t\tlines === \"auto\" ? lines : Math.max(1, Math.min(100, Math.floor(lines)));\n\t\tstate.markModified(\"fullscreenWheelScrollLines\");\n\t\tstate.save();\n\t},\n\n\tgetTerminalCapabilityOverrides() {\n\t\tconst terminal = settingsInternals(this).settings.terminal;\n\t\tconst overrides: Partial<TerminalCapabilities> = {};\n\t\tif (typeof terminal?.hyperlinks === \"boolean\") overrides.hyperlinks = terminal.hyperlinks;\n\t\tif (terminal?.images === \"kitty\" || terminal?.images === \"iterm2\") overrides.images = terminal.images;\n\t\telse if (terminal?.images === false) overrides.images = null;\n\t\tif (typeof terminal?.trueColor === \"boolean\") overrides.trueColor = terminal.trueColor;\n\t\treturn overrides;\n\t},\n\n\tgetEditorPaddingX() {\n\t\treturn settingsInternals(this).settings.editorPaddingX ?? 0;\n\t},\n\n\tsetEditorPaddingX(padding) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.editorPaddingX = Math.max(0, Math.min(3, Math.floor(padding)));\n\t\tstate.markModified(\"editorPaddingX\");\n\t\tstate.save();\n\t},\n\n\tgetOutputPad() {\n\t\treturn settingsInternals(this).settings.outputPad === 0 ? 0 : 1;\n\t},\n\n\tsetOutputPad(padding) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.outputPad = padding;\n\t\tstate.markModified(\"outputPad\");\n\t\tstate.save();\n\t},\n\n\tgetAutocompleteMaxVisible() {\n\t\treturn settingsInternals(this).settings.autocompleteMaxVisible ?? 5;\n\t},\n\n\tsetAutocompleteMaxVisible(maxVisible) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.autocompleteMaxVisible = Math.max(3, Math.min(20, Math.floor(maxVisible)));\n\t\tstate.markModified(\"autocompleteMaxVisible\");\n\t\tstate.save();\n\t},\n\n\tgetCodeBlockIndent() {\n\t\treturn settingsInternals(this).settings.markdown?.codeBlockIndent ?? \" \";\n\t},\n\n\tgetMermaidRenderingMode() {\n\t\tconst mode = settingsInternals(this).settings.markdown?.mermaid;\n\t\treturn mode === \"off\" || mode === \"final\" ? mode : \"streaming\";\n\t},\n\n\tsetMermaidRenderingMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.markdown ??= {};\n\t\tstate.globalSettings.markdown.mermaid = mode;\n\t\tstate.markModified(\"markdown\", \"mermaid\");\n\t\tstate.save();\n\t},\n\n\tgetLatexRenderingEnabled() {\n\t\treturn settingsInternals(this).settings.markdown?.latex !== false;\n\t},\n\n\tsetLatexRenderingEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.markdown ??= {};\n\t\tstate.globalSettings.markdown.latex = enabled;\n\t\tstate.markModified(\"markdown\", \"latex\");\n\t\tstate.save();\n\t},\n\n\tgetWarnings() {\n\t\treturn { ...(settingsInternals(this).settings.warnings ?? {}) };\n\t},\n\n\tsetWarnings(warnings) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.warnings = { ...warnings };\n\t\tstate.markModified(\"warnings\");\n\t\tstate.save();\n\t},\n};\n\nObject.assign(SettingsManager.prototype, uiAccessors);\n"]}
1
+ {"version":3,"file":"settings-manager-ui-accessors.js","sourceRoot":"","sources":["../../src/core/settings-manager-ui-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ScrollViewScrollbar, TerminalCapabilities, WheelScrollLines } from \"@earendil-works/pi-tui\";\nimport { ENV_CLEAR_ON_SHRINK, ENV_HARDWARE_CURSOR, getEnvValue } from \"../config.js\";\nimport { SETTINGS_DEFAULTS } from \"./settings-defaults.ts\";\nimport { SettingsManager } from \"./settings-manager-core.ts\";\nimport { settingsInternals } from \"./settings-manager-internals.ts\";\nimport type { FullscreenExitOutput, MermaidRenderingMode, WarningSettings } from \"./settings-types.ts\";\n\ninterface SettingsManagerUiAccessors {\n\tgetShowImages(): boolean;\n\tsetShowImages(show: boolean): void;\n\tgetImageWidthCells(): number;\n\tsetImageWidthCells(width: number): void;\n\tgetClearOnShrink(): boolean;\n\tsetClearOnShrink(enabled: boolean): void;\n\tgetShowTerminalProgress(): boolean;\n\tsetShowTerminalProgress(enabled: boolean): void;\n\tgetImageAutoResize(): boolean;\n\tsetImageAutoResize(enabled: boolean): void;\n\tgetBlockImages(): boolean;\n\tsetBlockImages(blocked: boolean): void;\n\tgetEnabledModels(): string[] | undefined;\n\tsetEnabledModels(patterns: string[] | undefined): void;\n\tgetDoubleEscapeAction(): \"fork\" | \"tree\" | \"none\";\n\tsetDoubleEscapeAction(action: \"fork\" | \"tree\" | \"none\"): void;\n\tgetTreeFilterMode(): \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\tsetTreeFilterMode(mode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\"): void;\n\tgetShowHardwareCursor(): boolean;\n\tsetShowHardwareCursor(enabled: boolean): void;\n\tgetEditorPaddingX(): number;\n\tsetEditorPaddingX(padding: number): void;\n\tgetOutputPad(): 0 | 1;\n\tsetOutputPad(padding: 0 | 1): void;\n\tgetAutocompleteMaxVisible(): number;\n\tsetAutocompleteMaxVisible(maxVisible: number): void;\n\tgetCodeBlockIndent(): string;\n\tgetMermaidRenderingMode(): MermaidRenderingMode;\n\tsetMermaidRenderingMode(mode: MermaidRenderingMode): void;\n\tgetLatexRenderingEnabled(): boolean;\n\tsetLatexRenderingEnabled(enabled: boolean): void;\n\tgetWarnings(): WarningSettings;\n\tsetWarnings(warnings: WarningSettings): void;\n\tgetFullscreenScrollbar(): ScrollViewScrollbar;\n\tsetFullscreenScrollbar(mode: ScrollViewScrollbar): void;\n\tgetFullscreenExitOutput(): FullscreenExitOutput;\n\tsetFullscreenExitOutput(output: FullscreenExitOutput): void;\n\tgetFullscreenCopyOnSelect(): boolean;\n\tsetFullscreenCopyOnSelect(enabled: boolean): void;\n\tgetFullscreenWheelScrollLines(): WheelScrollLines;\n\tsetFullscreenWheelScrollLines(lines: WheelScrollLines): void;\n\tgetTerminalCapabilityOverrides(): Partial<TerminalCapabilities>;\n}\n\ndeclare module \"./settings-manager-core.ts\" {\n\tinterface SettingsManager extends SettingsManagerUiAccessors {}\n}\n\nconst uiAccessors: SettingsManagerUiAccessors = {\n\tgetShowImages() {\n\t\treturn settingsInternals(this).settings.terminal?.showImages ?? SETTINGS_DEFAULTS.terminal.showImages;\n\t},\n\n\tsetShowImages(show) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.terminal) {\n\t\t\tstate.globalSettings.terminal = {};\n\t\t}\n\t\tstate.globalSettings.terminal.showImages = show;\n\t\tstate.markModified(\"terminal\", \"showImages\");\n\t\tstate.save();\n\t},\n\n\tgetImageWidthCells() {\n\t\tconst width = settingsInternals(this).settings.terminal?.imageWidthCells;\n\t\tif (typeof width !== \"number\" || !Number.isFinite(width)) {\n\t\t\treturn SETTINGS_DEFAULTS.terminal.imageWidthCells;\n\t\t}\n\t\treturn Math.max(1, Math.floor(width));\n\t},\n\n\tsetImageWidthCells(width) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.terminal) {\n\t\t\tstate.globalSettings.terminal = {};\n\t\t}\n\t\tstate.globalSettings.terminal.imageWidthCells = Math.max(1, Math.floor(width));\n\t\tstate.markModified(\"terminal\", \"imageWidthCells\");\n\t\tstate.save();\n\t},\n\n\tgetClearOnShrink() {\n\t\t// Settings takes precedence, then env var, then default false\n\t\tconst terminal = settingsInternals(this).settings.terminal;\n\t\tif (terminal?.clearOnShrink !== undefined) {\n\t\t\treturn terminal.clearOnShrink;\n\t\t}\n\t\tif (getEnvValue(ENV_CLEAR_ON_SHRINK) === \"1\") return true;\n\t\treturn SETTINGS_DEFAULTS.terminal.clearOnShrink;\n\t},\n\n\tsetClearOnShrink(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.terminal) {\n\t\t\tstate.globalSettings.terminal = {};\n\t\t}\n\t\tstate.globalSettings.terminal.clearOnShrink = enabled;\n\t\tstate.markModified(\"terminal\", \"clearOnShrink\");\n\t\tstate.save();\n\t},\n\n\tgetShowTerminalProgress() {\n\t\treturn (\n\t\t\tsettingsInternals(this).settings.terminal?.showTerminalProgress ??\n\t\t\tSETTINGS_DEFAULTS.terminal.showTerminalProgress\n\t\t);\n\t},\n\n\tsetShowTerminalProgress(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.terminal) {\n\t\t\tstate.globalSettings.terminal = {};\n\t\t}\n\t\tstate.globalSettings.terminal.showTerminalProgress = enabled;\n\t\tstate.markModified(\"terminal\", \"showTerminalProgress\");\n\t\tstate.save();\n\t},\n\n\tgetImageAutoResize() {\n\t\treturn settingsInternals(this).settings.images?.autoResize ?? SETTINGS_DEFAULTS.images.autoResize;\n\t},\n\n\tsetImageAutoResize(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.images) {\n\t\t\tstate.globalSettings.images = {};\n\t\t}\n\t\tstate.globalSettings.images.autoResize = enabled;\n\t\tstate.markModified(\"images\", \"autoResize\");\n\t\tstate.save();\n\t},\n\n\tgetBlockImages() {\n\t\treturn settingsInternals(this).settings.images?.blockImages ?? SETTINGS_DEFAULTS.images.blockImages;\n\t},\n\n\tsetBlockImages(blocked) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.images) {\n\t\t\tstate.globalSettings.images = {};\n\t\t}\n\t\tstate.globalSettings.images.blockImages = blocked;\n\t\tstate.markModified(\"images\", \"blockImages\");\n\t\tstate.save();\n\t},\n\n\tgetEnabledModels() {\n\t\treturn settingsInternals(this).settings.enabledModels;\n\t},\n\n\tsetEnabledModels(patterns) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.enabledModels = patterns;\n\t\tstate.markModified(\"enabledModels\");\n\t\tstate.save();\n\t},\n\n\tgetDoubleEscapeAction() {\n\t\treturn settingsInternals(this).settings.doubleEscapeAction ?? SETTINGS_DEFAULTS.doubleEscapeAction;\n\t},\n\n\tsetDoubleEscapeAction(action) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.doubleEscapeAction = action;\n\t\tstate.markModified(\"doubleEscapeAction\");\n\t\tstate.save();\n\t},\n\n\tgetTreeFilterMode() {\n\t\tconst mode = settingsInternals(this).settings.treeFilterMode;\n\t\tconst valid = [\"default\", \"no-tools\", \"user-only\", \"labeled-only\", \"all\"];\n\t\treturn mode && valid.includes(mode) ? mode : SETTINGS_DEFAULTS.treeFilterMode;\n\t},\n\n\tsetTreeFilterMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.treeFilterMode = mode;\n\t\tstate.markModified(\"treeFilterMode\");\n\t\tstate.save();\n\t},\n\n\tgetShowHardwareCursor() {\n\t\treturn settingsInternals(this).settings.showHardwareCursor ?? getEnvValue(ENV_HARDWARE_CURSOR) === \"1\";\n\t},\n\n\tsetShowHardwareCursor(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.showHardwareCursor = enabled;\n\t\tstate.markModified(\"showHardwareCursor\");\n\t\tstate.save();\n\t},\n\n\tgetFullscreenScrollbar() {\n\t\tconst mode = settingsInternals(this).settings.fullscreenScrollbar;\n\t\treturn mode === \"always\" || mode === \"hidden\" ? mode : SETTINGS_DEFAULTS.fullscreenScrollbar;\n\t},\n\n\tsetFullscreenScrollbar(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.fullscreenScrollbar = mode;\n\t\tstate.markModified(\"fullscreenScrollbar\");\n\t\tstate.save();\n\t},\n\n\tgetFullscreenExitOutput() {\n\t\treturn settingsInternals(this).settings.fullscreenExitOutput === \"resume-hint\"\n\t\t\t? \"resume-hint\"\n\t\t\t: SETTINGS_DEFAULTS.fullscreenExitOutput;\n\t},\n\n\tsetFullscreenExitOutput(output) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.fullscreenExitOutput = output;\n\t\tstate.markModified(\"fullscreenExitOutput\");\n\t\tstate.save();\n\t},\n\n\tgetFullscreenCopyOnSelect() {\n\t\tconst copyOnSelect = settingsInternals(this).settings.fullscreenCopyOnSelect;\n\t\treturn typeof copyOnSelect === \"boolean\" ? copyOnSelect : SETTINGS_DEFAULTS.fullscreenCopyOnSelect;\n\t},\n\n\tsetFullscreenCopyOnSelect(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.fullscreenCopyOnSelect = enabled;\n\t\tstate.markModified(\"fullscreenCopyOnSelect\");\n\t\tstate.save();\n\t},\n\n\tgetFullscreenWheelScrollLines() {\n\t\tconst lines = settingsInternals(this).settings.fullscreenWheelScrollLines;\n\t\treturn typeof lines === \"number\" && Number.isFinite(lines)\n\t\t\t? Math.max(1, Math.min(100, Math.floor(lines)))\n\t\t\t: SETTINGS_DEFAULTS.fullscreenWheelScrollLines;\n\t},\n\tsetFullscreenWheelScrollLines(lines) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.fullscreenWheelScrollLines =\n\t\t\tlines === \"auto\" ? lines : Math.max(1, Math.min(100, Math.floor(lines)));\n\t\tstate.markModified(\"fullscreenWheelScrollLines\");\n\t\tstate.save();\n\t},\n\n\tgetTerminalCapabilityOverrides() {\n\t\tconst terminal = settingsInternals(this).settings.terminal;\n\t\tconst overrides: Partial<TerminalCapabilities> = {};\n\t\tif (typeof terminal?.hyperlinks === \"boolean\") overrides.hyperlinks = terminal.hyperlinks;\n\t\tif (terminal?.images === \"kitty\" || terminal?.images === \"iterm2\") overrides.images = terminal.images;\n\t\telse if (terminal?.images === false) overrides.images = null;\n\t\tif (typeof terminal?.trueColor === \"boolean\") overrides.trueColor = terminal.trueColor;\n\t\treturn overrides;\n\t},\n\n\tgetEditorPaddingX() {\n\t\treturn settingsInternals(this).settings.editorPaddingX ?? SETTINGS_DEFAULTS.editorPaddingX;\n\t},\n\n\tsetEditorPaddingX(padding) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.editorPaddingX = Math.max(0, Math.min(3, Math.floor(padding)));\n\t\tstate.markModified(\"editorPaddingX\");\n\t\tstate.save();\n\t},\n\n\tgetOutputPad() {\n\t\treturn settingsInternals(this).settings.outputPad === 0 ? 0 : SETTINGS_DEFAULTS.outputPad;\n\t},\n\n\tsetOutputPad(padding) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.outputPad = padding;\n\t\tstate.markModified(\"outputPad\");\n\t\tstate.save();\n\t},\n\n\tgetAutocompleteMaxVisible() {\n\t\treturn settingsInternals(this).settings.autocompleteMaxVisible ?? SETTINGS_DEFAULTS.autocompleteMaxVisible;\n\t},\n\n\tsetAutocompleteMaxVisible(maxVisible) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.autocompleteMaxVisible = Math.max(3, Math.min(20, Math.floor(maxVisible)));\n\t\tstate.markModified(\"autocompleteMaxVisible\");\n\t\tstate.save();\n\t},\n\n\tgetCodeBlockIndent() {\n\t\treturn settingsInternals(this).settings.markdown?.codeBlockIndent ?? SETTINGS_DEFAULTS.markdown.codeBlockIndent;\n\t},\n\n\tgetMermaidRenderingMode() {\n\t\tconst mode = settingsInternals(this).settings.markdown?.mermaid;\n\t\treturn mode === \"off\" || mode === \"final\" ? mode : SETTINGS_DEFAULTS.markdown.mermaid;\n\t},\n\n\tsetMermaidRenderingMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.markdown ??= {};\n\t\tstate.globalSettings.markdown.mermaid = mode;\n\t\tstate.markModified(\"markdown\", \"mermaid\");\n\t\tstate.save();\n\t},\n\n\tgetLatexRenderingEnabled() {\n\t\tconst latex = settingsInternals(this).settings.markdown?.latex;\n\t\treturn typeof latex === \"boolean\" ? latex : SETTINGS_DEFAULTS.markdown.latex;\n\t},\n\n\tsetLatexRenderingEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.markdown ??= {};\n\t\tstate.globalSettings.markdown.latex = enabled;\n\t\tstate.markModified(\"markdown\", \"latex\");\n\t\tstate.save();\n\t},\n\n\tgetWarnings() {\n\t\treturn { ...(settingsInternals(this).settings.warnings ?? {}) };\n\t},\n\n\tsetWarnings(warnings) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.warnings = { ...warnings };\n\t\tstate.markModified(\"warnings\");\n\t\tstate.save();\n\t},\n};\n\nObject.assign(SettingsManager.prototype, uiAccessors);\n"]}
@@ -0,0 +1,292 @@
1
+ import { type Static, Type } from "typebox";
2
+ declare const CompactionModelOverrideSchema: Type.TObject<{
3
+ reserveTokens: Type.TOptional<Type.TInteger>;
4
+ preserve_recent: Type.TOptional<Type.TInteger>;
5
+ }>;
6
+ declare const CompactionSettingsSchema: Type.TObject<{
7
+ enabled: Type.TOptional<Type.TBoolean>;
8
+ reserveTokens: Type.TOptional<Type.TInteger>;
9
+ compression_ratio: Type.TOptional<Type.TNumber>;
10
+ preserve_recent: Type.TOptional<Type.TInteger>;
11
+ query: Type.TOptional<Type.TString>;
12
+ modelOverrides: Type.TOptional<Type.TRecord<"^.*$", Type.TObject<{
13
+ reserveTokens: Type.TOptional<Type.TInteger>;
14
+ preserve_recent: Type.TOptional<Type.TInteger>;
15
+ }>>>;
16
+ }>;
17
+ declare const BranchSummarySettingsSchema: Type.TObject<{
18
+ reserveTokens: Type.TOptional<Type.TNumber>;
19
+ skipPrompt: Type.TOptional<Type.TBoolean>;
20
+ }>;
21
+ declare const SessionSummarySettingsSchema: Type.TObject<{
22
+ enabled: Type.TOptional<Type.TBoolean>;
23
+ }>;
24
+ declare const ProviderRetrySettingsSchema: Type.TObject<{
25
+ timeoutMs: Type.TOptional<Type.TNumber>;
26
+ maxRetries: Type.TOptional<Type.TNumber>;
27
+ maxRetryDelayMs: Type.TOptional<Type.TNumber>;
28
+ }>;
29
+ declare const RetrySettingsSchema: Type.TObject<{
30
+ enabled: Type.TOptional<Type.TBoolean>;
31
+ maxRetries: Type.TOptional<Type.TNumber>;
32
+ baseDelayMs: Type.TOptional<Type.TNumber>;
33
+ maxAgentDelayMs: Type.TOptional<Type.TNumber>;
34
+ provider: Type.TOptional<Type.TObject<{
35
+ timeoutMs: Type.TOptional<Type.TNumber>;
36
+ maxRetries: Type.TOptional<Type.TNumber>;
37
+ maxRetryDelayMs: Type.TOptional<Type.TNumber>;
38
+ }>>;
39
+ maxDelayMs: Type.TOptional<Type.TNumber>;
40
+ }>;
41
+ declare const TerminalSettingsSchema: Type.TObject<{
42
+ showImages: Type.TOptional<Type.TBoolean>;
43
+ imageWidthCells: Type.TOptional<Type.TNumber>;
44
+ clearOnShrink: Type.TOptional<Type.TBoolean>;
45
+ showTerminalProgress: Type.TOptional<Type.TBoolean>;
46
+ hyperlinks: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TLiteral<"auto">]>>;
47
+ images: Type.TOptional<Type.TUnion<[Type.TLiteral<"kitty">, Type.TLiteral<"iterm2">, Type.TLiteral<"auto">, Type.TLiteral<false>]>>;
48
+ trueColor: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TLiteral<"auto">]>>;
49
+ }>;
50
+ declare const ImageSettingsSchema: Type.TObject<{
51
+ autoResize: Type.TOptional<Type.TBoolean>;
52
+ blockImages: Type.TOptional<Type.TBoolean>;
53
+ }>;
54
+ declare const SearchSettingsSchema: Type.TObject<{
55
+ contextBefore: Type.TOptional<Type.TNumber>;
56
+ contextAfter: Type.TOptional<Type.TNumber>;
57
+ }>;
58
+ declare const BashInterceptorSettingsSchema: Type.TObject<{
59
+ enabled: Type.TOptional<Type.TBoolean>;
60
+ }>;
61
+ declare const ModelRoutingSettingsSchema: Type.TObject<{
62
+ allowedProviders: Type.TOptional<Type.TArray<Type.TString>>;
63
+ excludedProviders: Type.TOptional<Type.TArray<Type.TString>>;
64
+ allowedModels: Type.TOptional<Type.TArray<Type.TString>>;
65
+ excludedModels: Type.TOptional<Type.TArray<Type.TString>>;
66
+ }>;
67
+ declare const ThinkingBudgetsSettingsSchema: Type.TObject<{
68
+ minimal: Type.TOptional<Type.TNumber>;
69
+ low: Type.TOptional<Type.TNumber>;
70
+ medium: Type.TOptional<Type.TNumber>;
71
+ high: Type.TOptional<Type.TNumber>;
72
+ }>;
73
+ declare const MarkdownSettingsSchema: Type.TObject<{
74
+ codeBlockIndent: Type.TOptional<Type.TString>;
75
+ mermaid: Type.TOptional<Type.TUnion<[Type.TLiteral<"off">, Type.TLiteral<"final">, Type.TLiteral<"streaming">]>>;
76
+ latex: Type.TOptional<Type.TBoolean>;
77
+ }>;
78
+ declare const WarningSettingsSchema: Type.TObject<{
79
+ anthropicExtraUsage: Type.TOptional<Type.TBoolean>;
80
+ }>;
81
+ declare const CodemodeModeSchema: Type.TUnion<[Type.TLiteral<"on">, Type.TLiteral<"only">]>;
82
+ declare const CodemodeSettingsSchema: Type.TObject<{
83
+ mode: Type.TOptional<Type.TUnion<[Type.TLiteral<"on">, Type.TLiteral<"only">]>>;
84
+ inlineBudget: Type.TOptional<Type.TNumber>;
85
+ }>;
86
+ declare const PackageSourceSchema: Type.TUnion<[Type.TString, Type.TObject<{
87
+ source: Type.TString;
88
+ autoload: Type.TOptional<Type.TBoolean>;
89
+ extensions: Type.TOptional<Type.TArray<Type.TString>>;
90
+ skills: Type.TOptional<Type.TArray<Type.TString>>;
91
+ prompts: Type.TOptional<Type.TArray<Type.TString>>;
92
+ themes: Type.TOptional<Type.TArray<Type.TString>>;
93
+ workflows: Type.TOptional<Type.TArray<Type.TString>>;
94
+ mcpServers: Type.TOptional<Type.TArray<Type.TString>>;
95
+ }>]>;
96
+ export declare const SettingsSchema: Type.TObject<{
97
+ $schema: Type.TOptional<Type.TString>;
98
+ lastChangelogVersion: Type.TOptional<Type.TString>;
99
+ firstRunOnboardingStartedVersion: Type.TOptional<Type.TString>;
100
+ onboardedVersion: Type.TOptional<Type.TString>;
101
+ defaultProvider: Type.TOptional<Type.TString>;
102
+ defaultModel: Type.TOptional<Type.TString>;
103
+ routerModel: Type.TOptional<Type.TString>;
104
+ compactionModel: Type.TOptional<Type.TString>;
105
+ modelRouting: Type.TOptional<Type.TObject<{
106
+ allowedProviders: Type.TOptional<Type.TArray<Type.TString>>;
107
+ excludedProviders: Type.TOptional<Type.TArray<Type.TString>>;
108
+ allowedModels: Type.TOptional<Type.TArray<Type.TString>>;
109
+ excludedModels: Type.TOptional<Type.TArray<Type.TString>>;
110
+ }>>;
111
+ defaultThinkingLevel: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
112
+ modelThinkingLevels: Type.TOptional<Type.TRecord<"^.*$", Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>>;
113
+ fallbackModels: Type.TOptional<Type.TArray<Type.TString>>;
114
+ transport: Type.TOptional<Type.TUnion<[Type.TLiteral<"auto">, Type.TLiteral<"sse">, Type.TLiteral<"websocket">, Type.TLiteral<"websocket-cached">]>>;
115
+ steeringMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"all">, Type.TLiteral<"one-at-a-time">]>>;
116
+ followUpMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"all">, Type.TLiteral<"one-at-a-time">]>>;
117
+ theme: Type.TOptional<Type.TString>;
118
+ enableAnalytics: Type.TOptional<Type.TBoolean>;
119
+ trackingId: Type.TOptional<Type.TString>;
120
+ deviceId: Type.TOptional<Type.TString>;
121
+ showCacheMissNotices: Type.TOptional<Type.TBoolean>;
122
+ compaction: Type.TOptional<Type.TObject<{
123
+ enabled: Type.TOptional<Type.TBoolean>;
124
+ reserveTokens: Type.TOptional<Type.TInteger>;
125
+ compression_ratio: Type.TOptional<Type.TNumber>;
126
+ preserve_recent: Type.TOptional<Type.TInteger>;
127
+ query: Type.TOptional<Type.TString>;
128
+ modelOverrides: Type.TOptional<Type.TRecord<"^.*$", Type.TObject<{
129
+ reserveTokens: Type.TOptional<Type.TInteger>;
130
+ preserve_recent: Type.TOptional<Type.TInteger>;
131
+ }>>>;
132
+ }>>;
133
+ branchSummary: Type.TOptional<Type.TObject<{
134
+ reserveTokens: Type.TOptional<Type.TNumber>;
135
+ skipPrompt: Type.TOptional<Type.TBoolean>;
136
+ }>>;
137
+ sessionSummary: Type.TOptional<Type.TObject<{
138
+ enabled: Type.TOptional<Type.TBoolean>;
139
+ }>>;
140
+ retry: Type.TOptional<Type.TObject<{
141
+ enabled: Type.TOptional<Type.TBoolean>;
142
+ maxRetries: Type.TOptional<Type.TNumber>;
143
+ baseDelayMs: Type.TOptional<Type.TNumber>;
144
+ maxAgentDelayMs: Type.TOptional<Type.TNumber>;
145
+ provider: Type.TOptional<Type.TObject<{
146
+ timeoutMs: Type.TOptional<Type.TNumber>;
147
+ maxRetries: Type.TOptional<Type.TNumber>;
148
+ maxRetryDelayMs: Type.TOptional<Type.TNumber>;
149
+ }>>;
150
+ maxDelayMs: Type.TOptional<Type.TNumber>;
151
+ }>>;
152
+ hideThinkingBlock: Type.TOptional<Type.TBoolean>;
153
+ externalEditor: Type.TOptional<Type.TString>;
154
+ shellPath: Type.TOptional<Type.TString>;
155
+ quietStartup: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TLiteral<"header">]>>;
156
+ defaultProjectTrust: Type.TOptional<Type.TUnion<[Type.TLiteral<"ask">, Type.TLiteral<"always">, Type.TLiteral<"never">]>>;
157
+ shellCommandPrefix: Type.TOptional<Type.TString>;
158
+ bashInterceptor: Type.TOptional<Type.TObject<{
159
+ enabled: Type.TOptional<Type.TBoolean>;
160
+ }>>;
161
+ search: Type.TOptional<Type.TObject<{
162
+ contextBefore: Type.TOptional<Type.TNumber>;
163
+ contextAfter: Type.TOptional<Type.TNumber>;
164
+ }>>;
165
+ npmCommand: Type.TOptional<Type.TArray<Type.TString>>;
166
+ collapseChangelog: Type.TOptional<Type.TBoolean>;
167
+ enableInstallTelemetry: Type.TOptional<Type.TBoolean>;
168
+ packages: Type.TOptional<Type.TArray<Type.TUnion<[Type.TString, Type.TObject<{
169
+ source: Type.TString;
170
+ autoload: Type.TOptional<Type.TBoolean>;
171
+ extensions: Type.TOptional<Type.TArray<Type.TString>>;
172
+ skills: Type.TOptional<Type.TArray<Type.TString>>;
173
+ prompts: Type.TOptional<Type.TArray<Type.TString>>;
174
+ themes: Type.TOptional<Type.TArray<Type.TString>>;
175
+ workflows: Type.TOptional<Type.TArray<Type.TString>>;
176
+ mcpServers: Type.TOptional<Type.TArray<Type.TString>>;
177
+ }>]>>>;
178
+ extensions: Type.TOptional<Type.TArray<Type.TString>>;
179
+ skills: Type.TOptional<Type.TUnion<[Type.TArray<Type.TString>, Type.TObject<{
180
+ enableSkillCommands: Type.TOptional<Type.TBoolean>;
181
+ customDirectories: Type.TOptional<Type.TArray<Type.TString>>;
182
+ }>]>>;
183
+ prompts: Type.TOptional<Type.TArray<Type.TString>>;
184
+ themes: Type.TOptional<Type.TArray<Type.TString>>;
185
+ workflows: Type.TOptional<Type.TUnion<[Type.TArray<Type.TString>, Type.TObject<{
186
+ paths: Type.TOptional<Type.TArray<Type.TString>>;
187
+ durability: Type.TOptional<Type.TObject<{
188
+ systemDatabaseUrl: Type.TOptional<Type.TString>;
189
+ systemDatabaseUrlFile: Type.TOptional<Type.TString>;
190
+ }>>;
191
+ }>]>>;
192
+ enableSkillCommands: Type.TOptional<Type.TBoolean>;
193
+ terminal: Type.TOptional<Type.TObject<{
194
+ showImages: Type.TOptional<Type.TBoolean>;
195
+ imageWidthCells: Type.TOptional<Type.TNumber>;
196
+ clearOnShrink: Type.TOptional<Type.TBoolean>;
197
+ showTerminalProgress: Type.TOptional<Type.TBoolean>;
198
+ hyperlinks: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TLiteral<"auto">]>>;
199
+ images: Type.TOptional<Type.TUnion<[Type.TLiteral<"kitty">, Type.TLiteral<"iterm2">, Type.TLiteral<"auto">, Type.TLiteral<false>]>>;
200
+ trueColor: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TLiteral<"auto">]>>;
201
+ }>>;
202
+ herdr: Type.TOptional<Type.TObject<{
203
+ enabled: Type.TOptional<Type.TBoolean>;
204
+ }>>;
205
+ images: Type.TOptional<Type.TObject<{
206
+ autoResize: Type.TOptional<Type.TBoolean>;
207
+ blockImages: Type.TOptional<Type.TBoolean>;
208
+ }>>;
209
+ enabledModels: Type.TOptional<Type.TArray<Type.TString>>;
210
+ defaultTools: Type.TOptional<Type.TArray<Type.TString>>;
211
+ doubleEscapeAction: Type.TOptional<Type.TUnion<[Type.TLiteral<"fork">, Type.TLiteral<"tree">, Type.TLiteral<"none">]>>;
212
+ treeFilterMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"default">, Type.TLiteral<"no-tools">, Type.TLiteral<"user-only">, Type.TLiteral<"labeled-only">, Type.TLiteral<"all">]>>;
213
+ thinkingBudgets: Type.TOptional<Type.TObject<{
214
+ minimal: Type.TOptional<Type.TNumber>;
215
+ low: Type.TOptional<Type.TNumber>;
216
+ medium: Type.TOptional<Type.TNumber>;
217
+ high: Type.TOptional<Type.TNumber>;
218
+ }>>;
219
+ editorPaddingX: Type.TOptional<Type.TNumber>;
220
+ outputPad: Type.TOptional<Type.TUnion<[Type.TLiteral<0>, Type.TLiteral<1>]>>;
221
+ autocompleteMaxVisible: Type.TOptional<Type.TNumber>;
222
+ showHardwareCursor: Type.TOptional<Type.TBoolean>;
223
+ fullscreenScrollbar: Type.TOptional<Type.TUnion<[Type.TLiteral<"auto">, Type.TLiteral<"always">, Type.TLiteral<"hidden">]>>;
224
+ fullscreenExitOutput: Type.TOptional<Type.TUnion<[Type.TLiteral<"transcript">, Type.TLiteral<"resume-hint">]>>;
225
+ fullscreenCopyOnSelect: Type.TOptional<Type.TBoolean>;
226
+ fullscreenWheelScrollLines: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TLiteral<"auto">]>>;
227
+ codemode: Type.TOptional<Type.TObject<{
228
+ mode: Type.TOptional<Type.TUnion<[Type.TLiteral<"on">, Type.TLiteral<"only">]>>;
229
+ inlineBudget: Type.TOptional<Type.TNumber>;
230
+ }>>;
231
+ markdown: Type.TOptional<Type.TObject<{
232
+ codeBlockIndent: Type.TOptional<Type.TString>;
233
+ mermaid: Type.TOptional<Type.TUnion<[Type.TLiteral<"off">, Type.TLiteral<"final">, Type.TLiteral<"streaming">]>>;
234
+ latex: Type.TOptional<Type.TBoolean>;
235
+ }>>;
236
+ warnings: Type.TOptional<Type.TObject<{
237
+ anthropicExtraUsage: Type.TOptional<Type.TBoolean>;
238
+ }>>;
239
+ sessionDir: Type.TOptional<Type.TString>;
240
+ httpProxy: Type.TOptional<Type.TString>;
241
+ httpIdleTimeoutMs: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
242
+ cacheWarming: Type.TOptional<Type.TUnion<[Type.TLiteral<"off">, Type.TLiteral<"streaming">, Type.TLiteral<"idle">]>>;
243
+ websocketConnectTimeoutMs: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
244
+ streamDeadlineMs: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
245
+ queueMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"all">, Type.TLiteral<"one-at-a-time">]>>;
246
+ websockets: Type.TOptional<Type.TBoolean>;
247
+ }>;
248
+ type SettingsInput = Static<typeof SettingsSchema>;
249
+ export interface CompactionModelOverride extends Static<typeof CompactionModelOverrideSchema> {
250
+ }
251
+ export interface CompactionSettings extends Static<typeof CompactionSettingsSchema> {
252
+ }
253
+ export interface BranchSummarySettings extends Static<typeof BranchSummarySettingsSchema> {
254
+ }
255
+ export interface SessionSummarySettings extends Static<typeof SessionSummarySettingsSchema> {
256
+ }
257
+ export interface ProviderRetrySettings extends Static<typeof ProviderRetrySettingsSchema> {
258
+ }
259
+ export interface RetrySettings extends Omit<Static<typeof RetrySettingsSchema>, "maxDelayMs"> {
260
+ }
261
+ export interface TerminalSettings extends Static<typeof TerminalSettingsSchema> {
262
+ }
263
+ export interface ImageSettings extends Static<typeof ImageSettingsSchema> {
264
+ }
265
+ export interface SearchSettings extends Static<typeof SearchSettingsSchema> {
266
+ }
267
+ export interface BashInterceptorSettings extends Static<typeof BashInterceptorSettingsSchema> {
268
+ }
269
+ export interface ModelRoutingSettings extends Static<typeof ModelRoutingSettingsSchema> {
270
+ }
271
+ export interface ThinkingBudgetsSettings extends Static<typeof ThinkingBudgetsSettingsSchema> {
272
+ }
273
+ export type MermaidRenderingMode = NonNullable<Static<typeof MarkdownSettingsSchema>["mermaid"]>;
274
+ export interface MarkdownSettings extends Static<typeof MarkdownSettingsSchema> {
275
+ }
276
+ export interface WarningSettings extends Static<typeof WarningSettingsSchema> {
277
+ }
278
+ export type CodemodeMode = Static<typeof CodemodeModeSchema>;
279
+ export interface CodemodeSettings extends Static<typeof CodemodeSettingsSchema> {
280
+ }
281
+ export type DefaultProjectTrust = NonNullable<SettingsInput["defaultProjectTrust"]>;
282
+ export type QuietStartup = NonNullable<SettingsInput["quietStartup"]>;
283
+ export type TransportSetting = NonNullable<SettingsInput["transport"]>;
284
+ export type PackageSource = Static<typeof PackageSourceSchema>;
285
+ export type FullscreenExitOutput = NonNullable<SettingsInput["fullscreenExitOutput"]>;
286
+ export type CacheWarmingMode = NonNullable<SettingsInput["cacheWarming"]>;
287
+ export interface Settings extends Omit<SettingsInput, "queueMode" | "retry" | "skills" | "websockets"> {
288
+ retry?: RetrySettings;
289
+ skills?: string[];
290
+ }
291
+ export {};
292
+ //# sourceMappingURL=settings-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-schema.d.ts","sourceRoot":"","sources":["../../src/core/settings-schema.ts"],"names":[],"mappings":"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"}