@bastani/atomic 0.9.29 → 0.9.30-alpha.2

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 (112) hide show
  1. package/CHANGELOG.md +27 -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/resource-loader-context-files.d.ts.map +1 -1
  35. package/dist/core/resource-loader-context-files.js +10 -6
  36. package/dist/core/resource-loader-context-files.js.map +1 -1
  37. package/dist/core/settings-defaults.d.ts +80 -0
  38. package/dist/core/settings-defaults.d.ts.map +1 -0
  39. package/dist/core/settings-defaults.js +81 -0
  40. package/dist/core/settings-defaults.js.map +1 -0
  41. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  42. package/dist/core/settings-manager-basic-accessors.js +34 -29
  43. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  44. package/dist/core/settings-manager-resource-accessors.d.ts.map +1 -1
  45. package/dist/core/settings-manager-resource-accessors.js +10 -9
  46. package/dist/core/settings-manager-resource-accessors.js.map +1 -1
  47. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  48. package/dist/core/settings-manager-ui-accessors.js +26 -18
  49. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  50. package/dist/core/settings-schema.d.ts +292 -0
  51. package/dist/core/settings-schema.d.ts.map +1 -0
  52. package/dist/core/settings-schema.js +403 -0
  53. package/dist/core/settings-schema.js.map +1 -0
  54. package/dist/core/settings-types.d.ts +2 -181
  55. package/dist/core/settings-types.d.ts.map +1 -1
  56. package/dist/core/settings-types.js.map +1 -1
  57. package/dist/extensions/codemode/index.d.ts.map +1 -1
  58. package/dist/extensions/codemode/index.js +2 -1
  59. package/dist/extensions/codemode/index.js.map +1 -1
  60. package/dist/extensions/codemode/tool.d.ts +1 -1
  61. package/dist/extensions/codemode/tool.d.ts.map +1 -1
  62. package/dist/extensions/codemode/tool.js +2 -1
  63. package/dist/extensions/codemode/tool.js.map +1 -1
  64. package/dist/extensions/herdr/index.d.ts.map +1 -1
  65. package/dist/extensions/herdr/index.js +4 -1
  66. package/dist/extensions/herdr/index.js.map +1 -1
  67. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  68. package/dist/modes/interactive/components/settings-selector-items.js +2 -4
  69. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  70. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  71. package/dist/modes/interactive/components/settings-selector-submenus.js +2 -1
  72. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  73. package/dist/modes/interactive/theme/catppuccin-frappe.json +1 -1
  74. package/dist/modes/interactive/theme/catppuccin-latte.json +1 -1
  75. package/dist/modes/interactive/theme/catppuccin-macchiato.json +1 -1
  76. package/dist/modes/interactive/theme/catppuccin-mocha.json +1 -1
  77. package/dist/modes/interactive/theme/dark.json +1 -1
  78. package/dist/modes/interactive/theme/light.json +1 -1
  79. package/dist/modes/interactive/theme/theme-class.d.ts +3 -12
  80. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  81. package/dist/modes/interactive/theme/theme-class.js +2 -9
  82. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  83. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  84. package/dist/modes/interactive/theme/theme-loading.js +3 -21
  85. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  86. package/dist/modes/interactive/theme/theme-parse.d.ts.map +1 -1
  87. package/dist/modes/interactive/theme/theme-parse.js +3 -0
  88. package/dist/modes/interactive/theme/theme-parse.js.map +1 -1
  89. package/dist/modes/interactive/theme/theme-schema.d.ts +5 -224
  90. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  91. package/dist/modes/interactive/theme/theme-schema.js +47 -72
  92. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  93. package/dist/modes/interactive/theme/theme-tokens.d.ts +262 -0
  94. package/dist/modes/interactive/theme/theme-tokens.d.ts.map +1 -0
  95. package/dist/modes/interactive/theme/theme-tokens.js +126 -0
  96. package/dist/modes/interactive/theme/theme-tokens.js.map +1 -0
  97. package/docs/compaction/reference.md +1 -1
  98. package/docs/compaction.md +2 -2
  99. package/docs/keybindings.md +2 -0
  100. package/docs/models.md +2 -0
  101. package/docs/providers.md +1 -1
  102. package/docs/settings.md +2 -0
  103. package/docs/themes/reference.md +2 -2
  104. package/docs/themes.md +3 -1
  105. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  106. package/npm-shrinkwrap.json +36 -36
  107. package/package.json +5 -3
  108. package/schemas/keybindings.schema.json +413 -0
  109. package/schemas/models.schema.json +1178 -0
  110. package/schemas/settings.schema.json +940 -0
  111. package/schemas/theme.schema.json +369 -0
  112. package/dist/modes/interactive/theme/theme-schema.json +0 -361
@@ -0,0 +1,80 @@
1
+ /** Runtime defaults shared by settings accessors and the published JSON Schema. */
2
+ export declare const SETTINGS_DEFAULTS: {
3
+ readonly routerModel: "";
4
+ readonly transport: "auto";
5
+ readonly steeringMode: "one-at-a-time";
6
+ readonly followUpMode: "one-at-a-time";
7
+ readonly compaction: {
8
+ readonly enabled: true;
9
+ readonly reserveTokens: 16384;
10
+ readonly compression_ratio: 0.5;
11
+ readonly preserve_recent: 2;
12
+ };
13
+ readonly branchSummary: {
14
+ readonly reserveTokens: 16384;
15
+ readonly skipPrompt: false;
16
+ };
17
+ readonly sessionSummary: {
18
+ readonly enabled: true;
19
+ };
20
+ readonly retry: {
21
+ readonly enabled: true;
22
+ readonly maxRetries: 3;
23
+ readonly baseDelayMs: 2000;
24
+ readonly maxAgentDelayMs: 60000;
25
+ readonly provider: {
26
+ readonly maxRetryDelayMs: 60000;
27
+ };
28
+ };
29
+ readonly hideThinkingBlock: false;
30
+ readonly showCacheMissNotices: false;
31
+ readonly quietStartup: false;
32
+ readonly defaultProjectTrust: "ask";
33
+ readonly bashInterceptor: {
34
+ readonly enabled: false;
35
+ };
36
+ readonly search: {
37
+ readonly contextBefore: 1;
38
+ readonly contextAfter: 3;
39
+ };
40
+ readonly collapseChangelog: false;
41
+ readonly enableInstallTelemetry: true;
42
+ readonly enableSkillCommands: true;
43
+ readonly herdr: {
44
+ readonly enabled: true;
45
+ };
46
+ readonly terminal: {
47
+ readonly showImages: true;
48
+ readonly imageWidthCells: 60;
49
+ readonly clearOnShrink: false;
50
+ readonly showTerminalProgress: false;
51
+ };
52
+ readonly images: {
53
+ readonly autoResize: true;
54
+ readonly blockImages: false;
55
+ };
56
+ readonly doubleEscapeAction: "tree";
57
+ readonly treeFilterMode: "default";
58
+ readonly editorPaddingX: 0;
59
+ readonly outputPad: 1;
60
+ readonly autocompleteMaxVisible: 5;
61
+ readonly fullscreenScrollbar: "auto";
62
+ readonly fullscreenExitOutput: "transcript";
63
+ readonly fullscreenCopyOnSelect: true;
64
+ readonly fullscreenWheelScrollLines: "auto";
65
+ readonly codemode: {
66
+ readonly mode: "on";
67
+ readonly inlineBudget: 3000;
68
+ };
69
+ readonly markdown: {
70
+ readonly codeBlockIndent: " ";
71
+ readonly mermaid: "streaming";
72
+ readonly latex: true;
73
+ };
74
+ readonly warnings: {
75
+ readonly anthropicExtraUsage: true;
76
+ };
77
+ readonly httpIdleTimeoutMs: 600000;
78
+ readonly cacheWarming: "streaming";
79
+ };
80
+ //# sourceMappingURL=settings-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-defaults.d.ts","sourceRoot":"","sources":["../../src/core/settings-defaults.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,eAAO,MAAM,iBAAiB;aAC7B,WAAW,EAAE,EAAE;aACf,SAAS,EAAE,MAAM;aACjB,YAAY,EAAE,eAAe;aAC7B,YAAY,EAAE,eAAe;aAC7B,UAAU;iBACT,OAAO;iBACP,aAAa,EAAE,KAAK;iBACpB,iBAAiB,EAAE,GAAG;iBACtB,eAAe,EAAE,CAAC;;aAEnB,aAAa;iBACZ,aAAa,EAAE,KAAK;iBACpB,UAAU;;aAEX,cAAc;iBACb,OAAO;;aAER,KAAK;iBACJ,OAAO;iBACP,UAAU,EAAE,CAAC;iBACb,WAAW,EAAE,IAAI;iBACjB,eAAe;iBACf,QAAQ;qBACP,eAAe,EAAE,KAAK;;;aAGxB,iBAAiB;aACjB,oBAAoB;aACpB,YAAY;aACZ,mBAAmB,EAAE,KAAK;aAC1B,eAAe;iBACd,OAAO;;aAER,MAAM;iBACL,aAAa,EAAE,CAAC;iBAChB,YAAY,EAAE,CAAC;;aAEhB,iBAAiB;aACjB,sBAAsB;aACtB,mBAAmB;aACnB,KAAK;iBACJ,OAAO;;aAER,QAAQ;iBACP,UAAU;iBACV,eAAe,EAAE,EAAE;iBACnB,aAAa;iBACb,oBAAoB;;aAErB,MAAM;iBACL,UAAU;iBACV,WAAW;;aAEZ,kBAAkB,EAAE,MAAM;aAC1B,cAAc,EAAE,SAAS;aACzB,cAAc,EAAE,CAAC;aACjB,SAAS,EAAE,CAAC;aACZ,sBAAsB,EAAE,CAAC;aACzB,mBAAmB,EAAE,MAAM;aAC3B,oBAAoB,EAAE,YAAY;aAClC,sBAAsB;aACtB,0BAA0B,EAAE,MAAM;aAClC,QAAQ;iBACP,IAAI,EAAE,IAAI;iBACV,YAAY,EAAE,IAAI;;aAEnB,QAAQ;iBACP,eAAe,EAAE,IAAI;iBACrB,OAAO,EAAE,WAAW;iBACpB,KAAK;;aAEN,QAAQ;iBACP,mBAAmB;;aAEpB,iBAAiB,EAAE,MAAO;aAC1B,YAAY,EAAE,WAAW;CAChB,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { DEFAULT_MAX_AGENT_RETRY_DELAY_MS } from "@bastani/pi-ai/utils/retry";
2
+ /** Runtime defaults shared by settings accessors and the published JSON Schema. */
3
+ export const SETTINGS_DEFAULTS = {
4
+ routerModel: "",
5
+ transport: "auto",
6
+ steeringMode: "one-at-a-time",
7
+ followUpMode: "one-at-a-time",
8
+ compaction: {
9
+ enabled: true,
10
+ reserveTokens: 16384,
11
+ compression_ratio: 0.5,
12
+ preserve_recent: 2,
13
+ },
14
+ branchSummary: {
15
+ reserveTokens: 16384,
16
+ skipPrompt: false,
17
+ },
18
+ sessionSummary: {
19
+ enabled: true,
20
+ },
21
+ retry: {
22
+ enabled: true,
23
+ maxRetries: 3,
24
+ baseDelayMs: 2000,
25
+ maxAgentDelayMs: DEFAULT_MAX_AGENT_RETRY_DELAY_MS,
26
+ provider: {
27
+ maxRetryDelayMs: 60000,
28
+ },
29
+ },
30
+ hideThinkingBlock: false,
31
+ showCacheMissNotices: false,
32
+ quietStartup: false,
33
+ defaultProjectTrust: "ask",
34
+ bashInterceptor: {
35
+ enabled: false,
36
+ },
37
+ search: {
38
+ contextBefore: 1,
39
+ contextAfter: 3,
40
+ },
41
+ collapseChangelog: false,
42
+ enableInstallTelemetry: true,
43
+ enableSkillCommands: true,
44
+ herdr: {
45
+ enabled: true,
46
+ },
47
+ terminal: {
48
+ showImages: true,
49
+ imageWidthCells: 60,
50
+ clearOnShrink: false,
51
+ showTerminalProgress: false,
52
+ },
53
+ images: {
54
+ autoResize: true,
55
+ blockImages: false,
56
+ },
57
+ doubleEscapeAction: "tree",
58
+ treeFilterMode: "default",
59
+ editorPaddingX: 0,
60
+ outputPad: 1,
61
+ autocompleteMaxVisible: 5,
62
+ fullscreenScrollbar: "auto",
63
+ fullscreenExitOutput: "transcript",
64
+ fullscreenCopyOnSelect: true,
65
+ fullscreenWheelScrollLines: "auto",
66
+ codemode: {
67
+ mode: "on",
68
+ inlineBudget: 3000,
69
+ },
70
+ markdown: {
71
+ codeBlockIndent: " ",
72
+ mermaid: "streaming",
73
+ latex: true,
74
+ },
75
+ warnings: {
76
+ anthropicExtraUsage: true,
77
+ },
78
+ httpIdleTimeoutMs: 600_000,
79
+ cacheWarming: "streaming",
80
+ };
81
+ //# sourceMappingURL=settings-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-defaults.js","sourceRoot":"","sources":["../../src/core/settings-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAE9E,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE;QACX,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,GAAG;QACtB,eAAe,EAAE,CAAC;KAClB;IACD,aAAa,EAAE;QACd,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;KACjB;IACD,cAAc,EAAE;QACf,OAAO,EAAE,IAAI;KACb;IACD,KAAK,EAAE;QACN,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,gCAAgC;QACjD,QAAQ,EAAE;YACT,eAAe,EAAE,KAAK;SACtB;KACD;IACD,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,KAAK;IACnB,mBAAmB,EAAE,KAAK;IAC1B,eAAe,EAAE;QAChB,OAAO,EAAE,KAAK;KACd;IACD,MAAM,EAAE;QACP,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;KACf;IACD,iBAAiB,EAAE,KAAK;IACxB,sBAAsB,EAAE,IAAI;IAC5B,mBAAmB,EAAE,IAAI;IACzB,KAAK,EAAE;QACN,OAAO,EAAE,IAAI;KACb;IACD,QAAQ,EAAE;QACT,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,KAAK;QACpB,oBAAoB,EAAE,KAAK;KAC3B;IACD,MAAM,EAAE;QACP,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,KAAK;KAClB;IACD,kBAAkB,EAAE,MAAM;IAC1B,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE,CAAC;IACZ,sBAAsB,EAAE,CAAC;IACzB,mBAAmB,EAAE,MAAM;IAC3B,oBAAoB,EAAE,YAAY;IAClC,sBAAsB,EAAE,IAAI;IAC5B,0BAA0B,EAAE,MAAM;IAClC,QAAQ,EAAE;QACT,IAAI,EAAE,IAAI;QACV,YAAY,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACT,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,IAAI;KACX;IACD,QAAQ,EAAE;QACT,mBAAmB,EAAE,IAAI;KACzB;IACD,iBAAiB,EAAE,OAAO;IAC1B,YAAY,EAAE,WAAW;CAChB,CAAC","sourcesContent":["import { DEFAULT_MAX_AGENT_RETRY_DELAY_MS } from \"@bastani/pi-ai/utils/retry\";\n\n/** Runtime defaults shared by settings accessors and the published JSON Schema. */\nexport const SETTINGS_DEFAULTS = {\n\trouterModel: \"\",\n\ttransport: \"auto\",\n\tsteeringMode: \"one-at-a-time\",\n\tfollowUpMode: \"one-at-a-time\",\n\tcompaction: {\n\t\tenabled: true,\n\t\treserveTokens: 16384,\n\t\tcompression_ratio: 0.5,\n\t\tpreserve_recent: 2,\n\t},\n\tbranchSummary: {\n\t\treserveTokens: 16384,\n\t\tskipPrompt: false,\n\t},\n\tsessionSummary: {\n\t\tenabled: true,\n\t},\n\tretry: {\n\t\tenabled: true,\n\t\tmaxRetries: 3,\n\t\tbaseDelayMs: 2000,\n\t\tmaxAgentDelayMs: DEFAULT_MAX_AGENT_RETRY_DELAY_MS,\n\t\tprovider: {\n\t\t\tmaxRetryDelayMs: 60000,\n\t\t},\n\t},\n\thideThinkingBlock: false,\n\tshowCacheMissNotices: false,\n\tquietStartup: false,\n\tdefaultProjectTrust: \"ask\",\n\tbashInterceptor: {\n\t\tenabled: false,\n\t},\n\tsearch: {\n\t\tcontextBefore: 1,\n\t\tcontextAfter: 3,\n\t},\n\tcollapseChangelog: false,\n\tenableInstallTelemetry: true,\n\tenableSkillCommands: true,\n\therdr: {\n\t\tenabled: true,\n\t},\n\tterminal: {\n\t\tshowImages: true,\n\t\timageWidthCells: 60,\n\t\tclearOnShrink: false,\n\t\tshowTerminalProgress: false,\n\t},\n\timages: {\n\t\tautoResize: true,\n\t\tblockImages: false,\n\t},\n\tdoubleEscapeAction: \"tree\",\n\ttreeFilterMode: \"default\",\n\teditorPaddingX: 0,\n\toutputPad: 1,\n\tautocompleteMaxVisible: 5,\n\tfullscreenScrollbar: \"auto\",\n\tfullscreenExitOutput: \"transcript\",\n\tfullscreenCopyOnSelect: true,\n\tfullscreenWheelScrollLines: \"auto\",\n\tcodemode: {\n\t\tmode: \"on\",\n\t\tinlineBudget: 3000,\n\t},\n\tmarkdown: {\n\t\tcodeBlockIndent: \" \",\n\t\tmermaid: \"streaming\",\n\t\tlatex: true,\n\t},\n\twarnings: {\n\t\tanthropicExtraUsage: true,\n\t},\n\thttpIdleTimeoutMs: 600_000,\n\tcacheWarming: \"streaming\",\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-manager-basic-accessors.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-manager-basic-accessors.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { randomUUID } from "node:crypto";
2
- import { DEFAULT_MAX_AGENT_RETRY_DELAY_MS, normalizeProviderId } from "@bastani/pi-ai";
2
+ import { normalizeProviderId } from "@bastani/pi-ai";
3
3
  import { normalizePath } from "../utils/paths.js";
4
- import { DEFAULT_HTTP_IDLE_TIMEOUT_MS, parseHttpIdleTimeoutMs } from "./http-dispatcher.js";
4
+ import { parseHttpIdleTimeoutMs } from "./http-dispatcher.js";
5
+ import { SETTINGS_DEFAULTS } from "./settings-defaults.js";
5
6
  import { SettingsManager } from "./settings-manager-core.js";
6
7
  import { settingsInternals } from "./settings-manager-internals.js";
7
8
  import { resolveDefaultTools } from "./settings-merge.js";
@@ -28,12 +29,16 @@ function resolveCompactionSetting(compaction, field, model) {
28
29
  if (override !== undefined && (typeof override !== "number" || !Number.isSafeInteger(override) || override < 0)) {
29
30
  throw new Error(`Invalid compaction.modelOverrides["${modelKey}"].${field} setting: ${String(override)}. Expected a non-negative safe integer.`);
30
31
  }
31
- return override ?? ordinary ?? (field === "reserveTokens" ? 16384 : 2);
32
+ return (override ??
33
+ ordinary ??
34
+ (field === "reserveTokens"
35
+ ? SETTINGS_DEFAULTS.compaction.reserveTokens
36
+ : SETTINGS_DEFAULTS.compaction.preserve_recent));
32
37
  }
33
38
  const basicAccessors = {
34
39
  getCacheWarmingMode() {
35
40
  const mode = settingsInternals(this).globalSettings.cacheWarming;
36
- return mode !== undefined && CACHE_WARMING_MODES.includes(mode) ? mode : "streaming";
41
+ return mode !== undefined && CACHE_WARMING_MODES.includes(mode) ? mode : SETTINGS_DEFAULTS.cacheWarming;
37
42
  },
38
43
  setCacheWarmingMode(mode) {
39
44
  const state = settingsInternals(this);
@@ -81,23 +86,19 @@ const basicAccessors = {
81
86
  getRouterModel() {
82
87
  const value = settingsInternals(this).settings.routerModel;
83
88
  if (value === undefined)
84
- return "";
89
+ return SETTINGS_DEFAULTS.routerModel;
85
90
  if (typeof value !== "string" || value.trim() !== value) {
86
91
  throw new Error("Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.");
87
92
  }
88
93
  return value;
89
94
  },
90
95
  getCompactionModel() {
91
- const state = settingsInternals(this);
92
- const value = state.settings.compactionModel;
96
+ const value = settingsInternals(this).settings.compactionModel;
93
97
  if (value === undefined)
94
98
  return "";
95
99
  if (typeof value !== "string" || value.trim() !== value) {
96
100
  throw new Error("Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.");
97
101
  }
98
- if (state.projectSettings.compactionModel === value && value.startsWith("morph/")) {
99
- throw new Error("Invalid compactionModel: project settings may not select morph/*.");
100
- }
101
102
  return value;
102
103
  },
103
104
  setCompactionModel(model, scope = "global") {
@@ -106,8 +107,6 @@ const basicAccessors = {
106
107
  }
107
108
  const state = settingsInternals(this);
108
109
  if (scope === "project") {
109
- if (model.startsWith("morph/"))
110
- throw new Error("Invalid compactionModel: project settings may not select morph/*.");
111
110
  state.markProjectModified("compactionModel");
112
111
  state.saveProjectSettings({ ...state.projectSettings, compactionModel: model });
113
112
  return;
@@ -169,7 +168,7 @@ const basicAccessors = {
169
168
  state.save();
170
169
  },
171
170
  getSteeringMode() {
172
- return settingsInternals(this).settings.steeringMode || "one-at-a-time";
171
+ return settingsInternals(this).settings.steeringMode || SETTINGS_DEFAULTS.steeringMode;
173
172
  },
174
173
  setSteeringMode(mode) {
175
174
  const state = settingsInternals(this);
@@ -178,7 +177,7 @@ const basicAccessors = {
178
177
  state.save();
179
178
  },
180
179
  getFollowUpMode() {
181
- return settingsInternals(this).settings.followUpMode || "one-at-a-time";
180
+ return settingsInternals(this).settings.followUpMode || SETTINGS_DEFAULTS.followUpMode;
182
181
  },
183
182
  setFollowUpMode(mode) {
184
183
  const state = settingsInternals(this);
@@ -228,7 +227,7 @@ const basicAccessors = {
228
227
  return state.globalSettings.deviceId;
229
228
  },
230
229
  getShowCacheMissNotices() {
231
- return settingsInternals(this).settings.showCacheMissNotices ?? false;
230
+ return settingsInternals(this).settings.showCacheMissNotices ?? SETTINGS_DEFAULTS.showCacheMissNotices;
232
231
  },
233
232
  setShowCacheMissNotices(enabled) {
234
233
  const state = settingsInternals(this);
@@ -280,7 +279,9 @@ const basicAccessors = {
280
279
  },
281
280
  getCodemodeInlineBudget() {
282
281
  const budget = settingsInternals(this).settings.codemode?.inlineBudget;
283
- return typeof budget === "number" && Number.isFinite(budget) && budget >= 0 ? Math.floor(budget) : 3000;
282
+ return typeof budget === "number" && Number.isFinite(budget) && budget >= 0
283
+ ? Math.floor(budget)
284
+ : SETTINGS_DEFAULTS.codemode.inlineBudget;
284
285
  },
285
286
  getDefaultTools() {
286
287
  // Settings load unvalidated from disk, so guard the shape here the same
@@ -299,7 +300,7 @@ const basicAccessors = {
299
300
  .filter((model) => model.length > 0);
300
301
  },
301
302
  getTransport() {
302
- return settingsInternals(this).settings.transport ?? "auto";
303
+ return settingsInternals(this).settings.transport ?? SETTINGS_DEFAULTS.transport;
303
304
  },
304
305
  setTransport(transport) {
305
306
  const state = settingsInternals(this);
@@ -308,7 +309,7 @@ const basicAccessors = {
308
309
  state.save();
309
310
  },
310
311
  getCompactionEnabled() {
311
- return settingsInternals(this).settings.compaction?.enabled ?? true;
312
+ return settingsInternals(this).settings.compaction?.enabled ?? SETTINGS_DEFAULTS.compaction.enabled;
312
313
  },
313
314
  setCompactionEnabled(enabled) {
314
315
  const state = settingsInternals(this);
@@ -324,7 +325,9 @@ const basicAccessors = {
324
325
  },
325
326
  getCompactionCompressionRatio() {
326
327
  const value = settingsInternals(this).settings.compaction?.compression_ratio;
327
- return typeof value === "number" && Number.isFinite(value) && value > 0 && value < 1 ? value : 0.5;
328
+ return typeof value === "number" && Number.isFinite(value) && value > 0 && value < 1
329
+ ? value
330
+ : SETTINGS_DEFAULTS.compaction.compression_ratio;
328
331
  },
329
332
  getCompactionPreserveRecent(model) {
330
333
  return resolveCompactionSetting(settingsInternals(this).settings.compaction, "preserve_recent", model);
@@ -345,20 +348,21 @@ const basicAccessors = {
345
348
  },
346
349
  getBranchSummarySettings() {
347
350
  return {
348
- reserveTokens: settingsInternals(this).settings.branchSummary?.reserveTokens ?? 16384,
349
- skipPrompt: settingsInternals(this).settings.branchSummary?.skipPrompt ?? false,
351
+ reserveTokens: settingsInternals(this).settings.branchSummary?.reserveTokens ??
352
+ SETTINGS_DEFAULTS.branchSummary.reserveTokens,
353
+ skipPrompt: settingsInternals(this).settings.branchSummary?.skipPrompt ?? SETTINGS_DEFAULTS.branchSummary.skipPrompt,
350
354
  };
351
355
  },
352
356
  getBranchSummarySkipPrompt() {
353
- return settingsInternals(this).settings.branchSummary?.skipPrompt ?? false;
357
+ return settingsInternals(this).settings.branchSummary?.skipPrompt ?? SETTINGS_DEFAULTS.branchSummary.skipPrompt;
354
358
  },
355
359
  getSessionSummarySettings() {
356
360
  return {
357
- enabled: settingsInternals(this).settings.sessionSummary?.enabled ?? true,
361
+ enabled: settingsInternals(this).settings.sessionSummary?.enabled ?? SETTINGS_DEFAULTS.sessionSummary.enabled,
358
362
  };
359
363
  },
360
364
  getRetryEnabled() {
361
- return settingsInternals(this).settings.retry?.enabled ?? true;
365
+ return settingsInternals(this).settings.retry?.enabled ?? SETTINGS_DEFAULTS.retry.enabled;
362
366
  },
363
367
  setRetryEnabled(enabled) {
364
368
  const state = settingsInternals(this);
@@ -372,9 +376,9 @@ const basicAccessors = {
372
376
  getRetrySettings() {
373
377
  return {
374
378
  enabled: this.getRetryEnabled(),
375
- maxRetries: settingsInternals(this).settings.retry?.maxRetries ?? 3,
376
- baseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? 2000,
377
- maxAgentDelayMs: settingsInternals(this).settings.retry?.maxAgentDelayMs ?? DEFAULT_MAX_AGENT_RETRY_DELAY_MS,
379
+ maxRetries: settingsInternals(this).settings.retry?.maxRetries ?? SETTINGS_DEFAULTS.retry.maxRetries,
380
+ baseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? SETTINGS_DEFAULTS.retry.baseDelayMs,
381
+ maxAgentDelayMs: settingsInternals(this).settings.retry?.maxAgentDelayMs ?? SETTINGS_DEFAULTS.retry.maxAgentDelayMs,
378
382
  };
379
383
  },
380
384
  getHttpProxy() {
@@ -395,7 +399,7 @@ const basicAccessors = {
395
399
  if (value !== undefined) {
396
400
  throw new Error(`Invalid httpIdleTimeoutMs setting: ${String(value)}`);
397
401
  }
398
- return DEFAULT_HTTP_IDLE_TIMEOUT_MS;
402
+ return SETTINGS_DEFAULTS.httpIdleTimeoutMs;
399
403
  },
400
404
  setHttpIdleTimeoutMs(timeoutMs) {
401
405
  const normalizedTimeoutMs = parseHttpIdleTimeoutMs(timeoutMs);
@@ -433,7 +437,8 @@ const basicAccessors = {
433
437
  return {
434
438
  timeoutMs: settingsInternals(this).settings.retry?.provider?.timeoutMs,
435
439
  maxRetries: settingsInternals(this).settings.retry?.provider?.maxRetries,
436
- maxRetryDelayMs: settingsInternals(this).settings.retry?.provider?.maxRetryDelayMs ?? 60000,
440
+ maxRetryDelayMs: settingsInternals(this).settings.retry?.provider?.maxRetryDelayMs ??
441
+ SETTINGS_DEFAULTS.retry.provider.maxRetryDelayMs,
437
442
  };
438
443
  },
439
444
  };
@@ -1 +1 @@
1
- {"version":3,"file":"settings-manager-basic-accessors.js","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gCAAgC,EAAc,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO1D,OAAO,EAAE,mBAAmB,EAAyB,MAAM,qBAAqB,CAAC;AAIjF,MAAM,mBAAmB,GACxB,6OAA6O,CAAC;AAE/O,SAAS,WAAW,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;QAClH,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAiB,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,wBAAwB,CAChC,UAA0C,EAC1C,KAAoC,EACpC,KAAuB;IAEvB,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;QACjH,MAAM,IAAI,KAAK,CACd,sBAAsB,KAAK,aAAa,MAAM,CAAC,QAAQ,CAAC,yCAAyC,CACjG,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC1F,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,KAAK,CACd,sCAAsC,QAAQ,eAAe,MAAM,CAAC,KAAK,CAAC,uBAAuB,CACjG,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;QACjH,MAAM,IAAI,KAAK,CACd,sCAAsC,QAAQ,MAAM,KAAK,aAAa,MAAM,CAAC,QAAQ,CAAC,yCAAyC,CAC/H,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,IAAI,QAAQ,IAAI,CAAC,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAuFD,MAAM,cAAc,GAAkC;IACrD,mBAAmB;QAClB,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC;QACjE,OAAO,IAAI,KAAK,SAAS,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IACtF,CAAC;IACD,mBAAmB,CAAC,IAAI;QACvB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC;QACzC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IACD,uBAAuB;QACtB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC9D,CAAC;IAED,uBAAuB,CAAC,OAAO;QAC9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,oBAAoB,GAAG,OAAO,CAAC;QACpD,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,mCAAmC;QAClC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC1E,CAAC;IAED,mCAAmC,CAAC,OAAO;QAC1C,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,gCAAgC,GAAG,OAAO,CAAC;QAChE,KAAK,CAAC,YAAY,CAAC,kCAAkC,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB;QAClB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC1D,CAAC;IAED,mBAAmB,CAAC,OAAO;QAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChD,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,aAAa;QACZ,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC/D,OAAO,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5D,CAAC;IAED,kBAAkB;QACjB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;IACzD,CAAC;IAED,eAAe;QACd,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;IACtD,CAAC;IAED,cAAc;QACb,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3D,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;QACxG,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,kBAAkB;QACjB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,KAAK,CAAC,eAAe,CAAC,eAAe,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;QAC5G,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACtF,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAC7C,KAAK,CAAC,mBAAmB,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,OAAO;QACR,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7C,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,eAAe;QACd,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5D,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9G,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO;YACN,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC;IACH,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;QACxG,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,eAAe,GAAG,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YACzE,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACzC,KAAK,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAC3C,OAAO;QACR,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC;QACzC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,QAAQ;QAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChD,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,eAAe,CAAC,OAAO;QACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5C,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,0BAA0B,CAAC,QAAQ,EAAE,OAAO;QAC3C,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChD,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5C,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACtC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,eAAe;QACd,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,eAAe,CAAC;IACzE,CAAC;IAED,eAAe,CAAC,IAAI;QACnB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC;QACzC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,eAAe;QACd,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,eAAe,CAAC;IACzE,CAAC;IAED,eAAe,CAAC,IAAI;QACnB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC;QACzC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,eAAe;QACd,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,QAAQ;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,KAAK;QACb,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QACnC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB;QACjB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;IACzD,CAAC;IAED,kBAAkB,CAAC,OAAO;QACzB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/C,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACtC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YACjD,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;YAC/C,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,aAAa;QACZ,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IACpD,CAAC;IAED,mBAAmB;QAClB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YACpC,KAAK,CAAC,cAAc,CAAC,QAAQ,GAAG,UAAU,EAAE,CAAC;YAC7C,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,uBAAuB;QACtB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oBAAoB,IAAI,KAAK,CAAC;IACvE,CAAC;IAED,uBAAuB,CAAC,OAAO;QAC9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,oBAAoB,GAAG,OAAO,CAAC;QACpD,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,uBAAuB;QACtB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC9D,CAAC;IAED,uBAAuB,CAAC,KAAK;QAC5B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClD,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,OAAO;QACtC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,yBAAyB;QACxB,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,IAAI,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK;QAC7C,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,mBAAmB,KAAK,EAAE,CAAC;QAChD,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;QAChG,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,wBAAwB,CAAC,QAAQ,EAAE,OAAO;QACzC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB;YAAE,OAAO;QACtD,OAAO,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QAC/F,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,CAAC;YACrE,OAAO,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;QACjD,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,eAAe;QACd,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC7D,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC;IACD,eAAe,CAAC,IAAI;QACnB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3E,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IACD,uBAAuB;QACtB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;QACvE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzG,CAAC;IAED,eAAe;QACd,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,0BAA0B;QAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5D,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;YACvF,CAAC,CAAC,SAAS,CAAC;IACd,CAAC;IAED,iBAAiB;QAChB,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;aAC5D,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;aAC7D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,YAAY;QACX,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC;IAC7D,CAAC;IAED,YAAY,CAAC,SAAS;QACrB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3C,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,oBAAoB;QACnB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,IAAI,IAAI,CAAC;IACrE,CAAC;IAED,oBAAoB,CAAC,OAAO;QAC3B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YACtC,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;QACtC,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,0BAA0B,CAAC,KAAK;QAC/B,OAAO,wBAAwB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACtG,CAAC;IAED,6BAA6B;QAC5B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;QAC7E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IACpG,CAAC;IAED,2BAA2B,CAAC,KAAK;QAChC,OAAO,wBAAwB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACxG,CAAC;IAED,kBAAkB;QACjB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzE,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,CAAC;IAED,qBAAqB,CAAC,KAAK;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxC,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACpC,aAAa,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;YACrD,iBAAiB,EAAE,IAAI,CAAC,6BAA6B,EAAE;YACvD,eAAe,EAAE,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;YACxD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SACzC,CAAC;IACH,CAAC;IAED,wBAAwB;QACvB,OAAO;YACN,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,IAAI,KAAK;YACrF,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,IAAI,KAAK;SAC/E,CAAC;IACH,CAAC;IAED,0BAA0B;QACzB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,IAAI,KAAK,CAAC;IAC5E,CAAC;IAED,yBAAyB;QACxB,OAAO;YACN,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI;SACzE,CAAC;IACH,CAAC;IAED,eAAe;QACd,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;IAChE,CAAC;IAED,eAAe,CAAC,OAAO;QACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC7C,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,gBAAgB;QACf,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;YAC/B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC;YACnE,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,IAAI,IAAI;YACxE,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,IAAI,gCAAgC;SAC5G,CAAC;IACH,CAAC;IAED,YAAY;QACX,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;IACzD,CAAC;IAED,YAAY,CAAC,KAAK;QACjB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;QACvC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,oBAAoB;QACnB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjE,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,oBAAoB,CAAC,SAAS;QAC7B,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,cAAc,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;QAC7D,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,4BAA4B;QAC3B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACzE,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,mBAAmB;QAClB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChE,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,wBAAwB;QACvB,OAAO;YACN,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS;YACtE,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU;YACxE,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,eAAe,IAAI,KAAK;SAC3F,CAAC;IACH,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { DEFAULT_MAX_AGENT_RETRY_DELAY_MS, type Model, normalizeProviderId } from \"@bastani/pi-ai\";\nimport { normalizePath } from \"../utils/paths.ts\";\nimport { DEFAULT_HTTP_IDLE_TIMEOUT_MS, parseHttpIdleTimeoutMs } from \"./http-dispatcher.ts\";\nimport { SettingsManager } from \"./settings-manager-core.ts\";\nimport { settingsInternals } from \"./settings-manager-internals.ts\";\nimport { resolveDefaultTools } from \"./settings-merge.js\";\nimport type {\n\tCompactionModelOverride,\n\tCompactionSettings,\n\tModelRoutingSettings,\n\tTransportSetting,\n} from \"./settings-types.ts\";\nimport { CACHE_WARMING_MODES, type CacheWarmingMode } from \"./settings-types.ts\";\n\ntype CompactionModel = Pick<Model<string>, \"provider\" | \"id\">;\n\nconst MODEL_ROUTING_ERROR =\n\t'Invalid modelRouting: allowedProviders and excludedProviders must be arrays of provider IDs, such as [\"github-copilot\"], and allowedModels and excludedModels must be arrays of model IDs or glob patterns, such as [\"anthropic/claude-*\"].';\n\nfunction routingList(value: unknown): string[] | undefined {\n\tif (value === undefined) return undefined;\n\tif (!Array.isArray(value) || value.some((item) => typeof item !== \"string\" || !item.trim() || item.trim() !== item))\n\t\tthrow new Error(MODEL_ROUTING_ERROR);\n\treturn [...new Set(value as string[])];\n}\n\nfunction resolveCompactionSetting(\n\tcompaction: CompactionSettings | undefined,\n\tfield: keyof CompactionModelOverride,\n\tmodel?: CompactionModel,\n): number {\n\tconst ordinary = compaction?.[field];\n\tif (ordinary !== undefined && (typeof ordinary !== \"number\" || !Number.isSafeInteger(ordinary) || ordinary < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.${field} setting: ${String(ordinary)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\tconst modelKey = model ? `${model.provider}/${model.id}` : undefined;\n\tconst entry = modelKey === undefined ? undefined : compaction?.modelOverrides?.[modelKey];\n\tif (entry !== undefined && (entry === null || typeof entry !== \"object\" || Array.isArray(entry))) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"] setting: ${String(entry)}. Expected an object.`,\n\t\t);\n\t}\n\tconst override = entry?.[field];\n\tif (override !== undefined && (typeof override !== \"number\" || !Number.isSafeInteger(override) || override < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"].${field} setting: ${String(override)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\treturn override ?? ordinary ?? (field === \"reserveTokens\" ? 16384 : 2);\n}\n\ninterface SettingsManagerBasicAccessors {\n\tgetCacheWarmingMode(): CacheWarmingMode;\n\tsetCacheWarmingMode(mode: CacheWarmingMode): void;\n\tgetLastChangelogVersion(): string | undefined;\n\tsetLastChangelogVersion(version: string): void;\n\tgetFirstRunOnboardingStartedVersion(): string | undefined;\n\tsetFirstRunOnboardingStartedVersion(version: string): void;\n\tgetOnboardedVersion(): string | undefined;\n\tsetOnboardedVersion(version: string): void;\n\tgetSessionDir(): string | undefined;\n\tgetDefaultProvider(): string | undefined;\n\tgetDefaultModel(): string | undefined;\n\tgetRouterModel(): string;\n\tgetModelRouting(): ModelRoutingSettings;\n\tgetCompactionModel(): string;\n\tsetCompactionModel(model: string, scope?: \"global\" | \"project\"): void;\n\tsetRouterModel(model: string, scope?: \"global\" | \"project\"): void;\n\tsetDefaultProvider(provider: string): void;\n\tsetDefaultModel(modelId: string): void;\n\tsetDefaultModelAndProvider(provider: string, modelId: string): void;\n\tgetSteeringMode(): \"all\" | \"one-at-a-time\";\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetFollowUpMode(): \"all\" | \"one-at-a-time\";\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetThemeSetting(): string | undefined;\n\tgetTheme(): string | undefined;\n\tsetTheme(theme: string): void;\n\tgetEnableAnalytics(): boolean | undefined;\n\tsetEnableAnalytics(enabled: boolean): void;\n\tgetTrackingId(): string | undefined;\n\tgetOrCreateDeviceId(): string;\n\tgetShowCacheMissNotices(): boolean;\n\tsetShowCacheMissNotices(enabled: boolean): void;\n\tgetDefaultThinkingLevel(): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tsetDefaultThinkingLevel(level: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\"): void;\n\tgetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tgetAllModelThinkingLevels(): Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tsetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t\tlevel: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\",\n\t): void;\n\tremoveModelThinkingLevel(provider: string, modelId: string): void;\n\tgetDefaultTools(): string[] | undefined;\n\tgetCodemodeMode(): \"on\" | \"only\" | undefined;\n\tsetCodemodeMode(mode: \"on\" | \"only\" | undefined): void;\n\tgetCodemodeInlineBudget(): number;\n\tgetFallbackModels(): string[];\n\tgetTransport(): TransportSetting;\n\tsetTransport(transport: TransportSetting): void;\n\tgetCompactionEnabled(): boolean;\n\tsetCompactionEnabled(enabled: boolean): void;\n\tgetCompactionReserveTokens(model?: CompactionModel): number;\n\tgetCompactionCompressionRatio(): number;\n\tgetCompactionPreserveRecent(model?: CompactionModel): number;\n\tgetCompactionQuery(): string | undefined;\n\tgetCompactionSettings(model?: CompactionModel): {\n\t\tenabled: boolean;\n\t\treserveTokens: number;\n\t\tcompression_ratio: number;\n\t\tpreserve_recent: number;\n\t\tquery?: string;\n\t};\n\tgetBranchSummarySettings(): { reserveTokens: number; skipPrompt: boolean };\n\tgetBranchSummarySkipPrompt(): boolean;\n\tgetSessionSummarySettings(): { enabled: boolean };\n\tgetRetryEnabled(): boolean;\n\tsetRetryEnabled(enabled: boolean): void;\n\tgetRetrySettings(): { enabled: boolean; maxRetries: number; baseDelayMs: number; maxAgentDelayMs: number };\n\tgetHttpProxy(): string | undefined;\n\tsetHttpProxy(proxy: string | undefined): void;\n\tgetHttpIdleTimeoutMs(): number;\n\tsetHttpIdleTimeoutMs(timeoutMs: number): void;\n\tgetWebSocketConnectTimeoutMs(): number | undefined;\n\tgetStreamDeadlineMs(): number | undefined;\n\tgetProviderRetrySettings(): { timeoutMs?: number; maxRetries?: number; maxRetryDelayMs: number };\n}\n\ndeclare module \"./settings-manager-core.ts\" {\n\tinterface SettingsManager extends SettingsManagerBasicAccessors {}\n}\n\nconst basicAccessors: SettingsManagerBasicAccessors = {\n\tgetCacheWarmingMode() {\n\t\tconst mode = settingsInternals(this).globalSettings.cacheWarming;\n\t\treturn mode !== undefined && CACHE_WARMING_MODES.includes(mode) ? mode : \"streaming\";\n\t},\n\tsetCacheWarmingMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.cacheWarming = mode;\n\t\tstate.markModified(\"cacheWarming\");\n\t\tstate.save();\n\t},\n\tgetLastChangelogVersion() {\n\t\treturn settingsInternals(this).settings.lastChangelogVersion;\n\t},\n\n\tsetLastChangelogVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.lastChangelogVersion = version;\n\t\tstate.markModified(\"lastChangelogVersion\");\n\t\tstate.save();\n\t},\n\n\tgetFirstRunOnboardingStartedVersion() {\n\t\treturn settingsInternals(this).settings.firstRunOnboardingStartedVersion;\n\t},\n\n\tsetFirstRunOnboardingStartedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.firstRunOnboardingStartedVersion = version;\n\t\tstate.markModified(\"firstRunOnboardingStartedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetOnboardedVersion() {\n\t\treturn settingsInternals(this).settings.onboardedVersion;\n\t},\n\n\tsetOnboardedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.onboardedVersion = version;\n\t\tstate.markModified(\"onboardedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetSessionDir() {\n\t\tconst sessionDir = settingsInternals(this).settings.sessionDir;\n\t\treturn sessionDir ? normalizePath(sessionDir) : sessionDir;\n\t},\n\n\tgetDefaultProvider() {\n\t\treturn settingsInternals(this).settings.defaultProvider;\n\t},\n\n\tgetDefaultModel() {\n\t\treturn settingsInternals(this).settings.defaultModel;\n\t},\n\n\tgetRouterModel() {\n\t\tconst value = settingsInternals(this).settings.routerModel;\n\t\tif (value === undefined) return \"\";\n\t\tif (typeof value !== \"string\" || value.trim() !== value) {\n\t\t\tthrow new Error(\"Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\treturn value;\n\t},\n\n\tgetCompactionModel() {\n\t\tconst state = settingsInternals(this);\n\t\tconst value = state.settings.compactionModel;\n\t\tif (value === undefined) return \"\";\n\t\tif (typeof value !== \"string\" || value.trim() !== value) {\n\t\t\tthrow new Error(\"Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tif (state.projectSettings.compactionModel === value && value.startsWith(\"morph/\")) {\n\t\t\tthrow new Error(\"Invalid compactionModel: project settings may not select morph/*.\");\n\t\t}\n\t\treturn value;\n\t},\n\n\tsetCompactionModel(model, scope = \"global\") {\n\t\tif (typeof model !== \"string\" || model.trim() !== model) {\n\t\t\tthrow new Error(\"Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tif (scope === \"project\") {\n\t\t\tif (model.startsWith(\"morph/\"))\n\t\t\t\tthrow new Error(\"Invalid compactionModel: project settings may not select morph/*.\");\n\t\t\tstate.markProjectModified(\"compactionModel\");\n\t\t\tstate.saveProjectSettings({ ...state.projectSettings, compactionModel: model });\n\t\t\treturn;\n\t\t}\n\t\tstate.globalSettings.compactionModel = model;\n\t\tstate.markModified(\"compactionModel\");\n\t\tstate.save();\n\t},\n\n\tgetModelRouting() {\n\t\tconst value = settingsInternals(this).settings.modelRouting;\n\t\tif (value === undefined) return {};\n\t\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) throw new Error(MODEL_ROUTING_ERROR);\n\t\tconst allowedProviders = routingList(value.allowedProviders);\n\t\tconst excludedProviders = routingList(value.excludedProviders);\n\t\tconst allowedModels = routingList(value.allowedModels);\n\t\tconst excludedModels = routingList(value.excludedModels);\n\t\treturn {\n\t\t\t...(allowedProviders ? { allowedProviders } : {}),\n\t\t\t...(excludedProviders ? { excludedProviders } : {}),\n\t\t\t...(allowedModels ? { allowedModels } : {}),\n\t\t\t...(excludedModels ? { excludedModels } : {}),\n\t\t};\n\t},\n\n\tsetRouterModel(model, scope = \"global\") {\n\t\tif (typeof model !== \"string\" || model.trim() !== model) {\n\t\t\tthrow new Error(\"Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tif (scope === \"project\") {\n\t\t\tconst projectSettings = { ...state.projectSettings, routerModel: model };\n\t\t\tstate.markProjectModified(\"routerModel\");\n\t\t\tstate.saveProjectSettings(projectSettings);\n\t\t\treturn;\n\t\t}\n\t\tstate.globalSettings.routerModel = model;\n\t\tstate.markModified(\"routerModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultProvider(provider) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModel(modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModelAndProvider(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tgetSteeringMode() {\n\t\treturn settingsInternals(this).settings.steeringMode || \"one-at-a-time\";\n\t},\n\n\tsetSteeringMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.steeringMode = mode;\n\t\tstate.markModified(\"steeringMode\");\n\t\tstate.save();\n\t},\n\n\tgetFollowUpMode() {\n\t\treturn settingsInternals(this).settings.followUpMode || \"one-at-a-time\";\n\t},\n\n\tsetFollowUpMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.followUpMode = mode;\n\t\tstate.markModified(\"followUpMode\");\n\t\tstate.save();\n\t},\n\n\tgetThemeSetting() {\n\t\tconst value = settingsInternals(this).settings.theme;\n\t\tif (typeof value === \"string\") return value;\n\t\treturn undefined;\n\t},\n\n\tgetTheme() {\n\t\tconst theme = this.getThemeSetting();\n\t\treturn theme?.includes(\"/\") ? undefined : theme;\n\t},\n\n\tsetTheme(theme) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.theme = theme;\n\t\tstate.markModified(\"theme\");\n\t\tstate.save();\n\t},\n\n\tgetEnableAnalytics() {\n\t\treturn settingsInternals(this).settings.enableAnalytics;\n\t},\n\n\tsetEnableAnalytics(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.enableAnalytics = enabled;\n\t\tstate.markModified(\"enableAnalytics\");\n\t\tif (enabled && !state.globalSettings.trackingId) {\n\t\t\tstate.globalSettings.trackingId = randomUUID();\n\t\t\tstate.markModified(\"trackingId\");\n\t\t}\n\t\tstate.save();\n\t},\n\n\tgetTrackingId() {\n\t\treturn settingsInternals(this).settings.trackingId;\n\t},\n\n\tgetOrCreateDeviceId() {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.deviceId) {\n\t\t\tstate.globalSettings.deviceId = randomUUID();\n\t\t\tstate.markModified(\"deviceId\");\n\t\t\tstate.save();\n\t\t}\n\t\treturn state.globalSettings.deviceId;\n\t},\n\n\tgetShowCacheMissNotices() {\n\t\treturn settingsInternals(this).settings.showCacheMissNotices ?? false;\n\t},\n\n\tsetShowCacheMissNotices(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.showCacheMissNotices = enabled;\n\t\tstate.markModified(\"showCacheMissNotices\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultThinkingLevel() {\n\t\treturn settingsInternals(this).settings.defaultThinkingLevel;\n\t},\n\n\tsetDefaultThinkingLevel(level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultThinkingLevel = level;\n\t\tstate.markModified(\"defaultThinkingLevel\");\n\t\tstate.save();\n\t},\n\n\tgetModelThinkingLevel(provider, modelId) {\n\t\treturn settingsInternals(this).settings.modelThinkingLevels?.[`${normalizeProviderId(provider)}/${modelId}`];\n\t},\n\n\tgetAllModelThinkingLevels() {\n\t\treturn { ...(settingsInternals(this).settings.modelThinkingLevels ?? {}) };\n\t},\n\n\tsetModelThinkingLevel(provider, modelId, level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.modelThinkingLevels ??= {};\n\t\tstate.globalSettings.modelThinkingLevels[`${normalizeProviderId(provider)}/${modelId}`] = level;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tremoveModelThinkingLevel(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.modelThinkingLevels) return;\n\t\tdelete state.globalSettings.modelThinkingLevels[`${normalizeProviderId(provider)}/${modelId}`];\n\t\tif (Object.keys(state.globalSettings.modelThinkingLevels).length === 0)\n\t\t\tdelete state.globalSettings.modelThinkingLevels;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tgetCodemodeMode() {\n\t\tconst mode = settingsInternals(this).settings.codemode?.mode;\n\t\treturn mode === \"on\" || mode === \"only\" ? mode : undefined;\n\t},\n\tsetCodemodeMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.codemode = { ...state.globalSettings.codemode, mode };\n\t\tstate.markModified(\"codemode\", \"mode\");\n\t\tstate.save();\n\t},\n\tgetCodemodeInlineBudget() {\n\t\tconst budget = settingsInternals(this).settings.codemode?.inlineBudget;\n\t\treturn typeof budget === \"number\" && Number.isFinite(budget) && budget >= 0 ? Math.floor(budget) : 3000;\n\t},\n\n\tgetDefaultTools() {\n\t\t// Settings load unvalidated from disk, so guard the shape here the same\n\t\t// way getFallbackModels() does: a non-array (or null) reads as unset,\n\t\t// and non-string entries are dropped rather than passed through to the\n\t\t// initial tool selection.\n\t\tconst tools = settingsInternals(this).settings.defaultTools;\n\t\treturn Array.isArray(tools)\n\t\t\t? resolveDefaultTools(tools.filter((tool): tool is string => typeof tool === \"string\"))\n\t\t\t: undefined;\n\t},\n\n\tgetFallbackModels() {\n\t\treturn (settingsInternals(this).settings.fallbackModels ?? [])\n\t\t\t.filter((model): model is string => typeof model === \"string\")\n\t\t\t.map((model) => model.trim())\n\t\t\t.filter((model) => model.length > 0);\n\t},\n\n\tgetTransport() {\n\t\treturn settingsInternals(this).settings.transport ?? \"auto\";\n\t},\n\n\tsetTransport(transport) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.transport = transport;\n\t\tstate.markModified(\"transport\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionEnabled() {\n\t\treturn settingsInternals(this).settings.compaction?.enabled ?? true;\n\t},\n\n\tsetCompactionEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.compaction) {\n\t\t\tstate.globalSettings.compaction = {};\n\t\t}\n\t\tstate.globalSettings.compaction.enabled = enabled;\n\t\tstate.markModified(\"compaction\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionReserveTokens(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"reserveTokens\", model);\n\t},\n\n\tgetCompactionCompressionRatio() {\n\t\tconst value = settingsInternals(this).settings.compaction?.compression_ratio;\n\t\treturn typeof value === \"number\" && Number.isFinite(value) && value > 0 && value < 1 ? value : 0.5;\n\t},\n\n\tgetCompactionPreserveRecent(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"preserve_recent\", model);\n\t},\n\n\tgetCompactionQuery() {\n\t\tconst query = settingsInternals(this).settings.compaction?.query?.trim();\n\t\treturn query && query.length > 0 ? query : undefined;\n\t},\n\n\tgetCompactionSettings(model) {\n\t\tconst query = this.getCompactionQuery();\n\t\treturn {\n\t\t\tenabled: this.getCompactionEnabled(),\n\t\t\treserveTokens: this.getCompactionReserveTokens(model),\n\t\t\tcompression_ratio: this.getCompactionCompressionRatio(),\n\t\t\tpreserve_recent: this.getCompactionPreserveRecent(model),\n\t\t\t...(query === undefined ? {} : { query }),\n\t\t};\n\t},\n\n\tgetBranchSummarySettings() {\n\t\treturn {\n\t\t\treserveTokens: settingsInternals(this).settings.branchSummary?.reserveTokens ?? 16384,\n\t\t\tskipPrompt: settingsInternals(this).settings.branchSummary?.skipPrompt ?? false,\n\t\t};\n\t},\n\n\tgetBranchSummarySkipPrompt() {\n\t\treturn settingsInternals(this).settings.branchSummary?.skipPrompt ?? false;\n\t},\n\n\tgetSessionSummarySettings() {\n\t\treturn {\n\t\t\tenabled: settingsInternals(this).settings.sessionSummary?.enabled ?? true,\n\t\t};\n\t},\n\n\tgetRetryEnabled() {\n\t\treturn settingsInternals(this).settings.retry?.enabled ?? true;\n\t},\n\n\tsetRetryEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.retry) {\n\t\t\tstate.globalSettings.retry = {};\n\t\t}\n\t\tstate.globalSettings.retry.enabled = enabled;\n\t\tstate.markModified(\"retry\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetRetrySettings() {\n\t\treturn {\n\t\t\tenabled: this.getRetryEnabled(),\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.maxRetries ?? 3,\n\t\t\tbaseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? 2000,\n\t\t\tmaxAgentDelayMs: settingsInternals(this).settings.retry?.maxAgentDelayMs ?? DEFAULT_MAX_AGENT_RETRY_DELAY_MS,\n\t\t};\n\t},\n\n\tgetHttpProxy() {\n\t\treturn settingsInternals(this).globalSettings.httpProxy;\n\t},\n\n\tsetHttpProxy(proxy) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpProxy = proxy;\n\t\tstate.markModified(\"httpProxy\");\n\t\tstate.save();\n\t},\n\n\tgetHttpIdleTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.httpIdleTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn DEFAULT_HTTP_IDLE_TIMEOUT_MS;\n\t},\n\n\tsetHttpIdleTimeoutMs(timeoutMs) {\n\t\tconst normalizedTimeoutMs = parseHttpIdleTimeoutMs(timeoutMs);\n\t\tif (normalizedTimeoutMs === undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpIdleTimeoutMs = normalizedTimeoutMs;\n\t\tstate.markModified(\"httpIdleTimeoutMs\");\n\t\tstate.save();\n\t},\n\n\tgetWebSocketConnectTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.websocketConnectTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid websocketConnectTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetStreamDeadlineMs() {\n\t\tconst value = settingsInternals(this).settings.streamDeadlineMs;\n\t\tconst deadlineMs = parseHttpIdleTimeoutMs(value);\n\t\tif (deadlineMs !== undefined) {\n\t\t\treturn deadlineMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid streamDeadlineMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetProviderRetrySettings() {\n\t\treturn {\n\t\t\ttimeoutMs: settingsInternals(this).settings.retry?.provider?.timeoutMs,\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.provider?.maxRetries,\n\t\t\tmaxRetryDelayMs: settingsInternals(this).settings.retry?.provider?.maxRetryDelayMs ?? 60000,\n\t\t};\n\t},\n};\n\nObject.assign(SettingsManager.prototype, basicAccessors);\n"]}
1
+ {"version":3,"file":"settings-manager-basic-accessors.js","sourceRoot":"","sources":["../../src/core/settings-manager-basic-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { type Model, normalizeProviderId } from \"@bastani/pi-ai\";\nimport { normalizePath } from \"../utils/paths.ts\";\nimport { parseHttpIdleTimeoutMs } from \"./http-dispatcher.ts\";\nimport { SETTINGS_DEFAULTS } from \"./settings-defaults.ts\";\nimport { SettingsManager } from \"./settings-manager-core.ts\";\nimport { settingsInternals } from \"./settings-manager-internals.ts\";\nimport { resolveDefaultTools } from \"./settings-merge.js\";\nimport type {\n\tCompactionModelOverride,\n\tCompactionSettings,\n\tModelRoutingSettings,\n\tTransportSetting,\n} from \"./settings-types.ts\";\nimport { CACHE_WARMING_MODES, type CacheWarmingMode } from \"./settings-types.ts\";\n\ntype CompactionModel = Pick<Model<string>, \"provider\" | \"id\">;\n\nconst MODEL_ROUTING_ERROR =\n\t'Invalid modelRouting: allowedProviders and excludedProviders must be arrays of provider IDs, such as [\"github-copilot\"], and allowedModels and excludedModels must be arrays of model IDs or glob patterns, such as [\"anthropic/claude-*\"].';\n\nfunction routingList(value: unknown): string[] | undefined {\n\tif (value === undefined) return undefined;\n\tif (!Array.isArray(value) || value.some((item) => typeof item !== \"string\" || !item.trim() || item.trim() !== item))\n\t\tthrow new Error(MODEL_ROUTING_ERROR);\n\treturn [...new Set(value as string[])];\n}\n\nfunction resolveCompactionSetting(\n\tcompaction: CompactionSettings | undefined,\n\tfield: keyof CompactionModelOverride,\n\tmodel?: CompactionModel,\n): number {\n\tconst ordinary = compaction?.[field];\n\tif (ordinary !== undefined && (typeof ordinary !== \"number\" || !Number.isSafeInteger(ordinary) || ordinary < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.${field} setting: ${String(ordinary)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\tconst modelKey = model ? `${model.provider}/${model.id}` : undefined;\n\tconst entry = modelKey === undefined ? undefined : compaction?.modelOverrides?.[modelKey];\n\tif (entry !== undefined && (entry === null || typeof entry !== \"object\" || Array.isArray(entry))) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"] setting: ${String(entry)}. Expected an object.`,\n\t\t);\n\t}\n\tconst override = entry?.[field];\n\tif (override !== undefined && (typeof override !== \"number\" || !Number.isSafeInteger(override) || override < 0)) {\n\t\tthrow new Error(\n\t\t\t`Invalid compaction.modelOverrides[\"${modelKey}\"].${field} setting: ${String(override)}. Expected a non-negative safe integer.`,\n\t\t);\n\t}\n\treturn (\n\t\toverride ??\n\t\tordinary ??\n\t\t(field === \"reserveTokens\"\n\t\t\t? SETTINGS_DEFAULTS.compaction.reserveTokens\n\t\t\t: SETTINGS_DEFAULTS.compaction.preserve_recent)\n\t);\n}\n\ninterface SettingsManagerBasicAccessors {\n\tgetCacheWarmingMode(): CacheWarmingMode;\n\tsetCacheWarmingMode(mode: CacheWarmingMode): void;\n\tgetLastChangelogVersion(): string | undefined;\n\tsetLastChangelogVersion(version: string): void;\n\tgetFirstRunOnboardingStartedVersion(): string | undefined;\n\tsetFirstRunOnboardingStartedVersion(version: string): void;\n\tgetOnboardedVersion(): string | undefined;\n\tsetOnboardedVersion(version: string): void;\n\tgetSessionDir(): string | undefined;\n\tgetDefaultProvider(): string | undefined;\n\tgetDefaultModel(): string | undefined;\n\tgetRouterModel(): string;\n\tgetModelRouting(): ModelRoutingSettings;\n\tgetCompactionModel(): string;\n\tsetCompactionModel(model: string, scope?: \"global\" | \"project\"): void;\n\tsetRouterModel(model: string, scope?: \"global\" | \"project\"): void;\n\tsetDefaultProvider(provider: string): void;\n\tsetDefaultModel(modelId: string): void;\n\tsetDefaultModelAndProvider(provider: string, modelId: string): void;\n\tgetSteeringMode(): \"all\" | \"one-at-a-time\";\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetFollowUpMode(): \"all\" | \"one-at-a-time\";\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tgetThemeSetting(): string | undefined;\n\tgetTheme(): string | undefined;\n\tsetTheme(theme: string): void;\n\tgetEnableAnalytics(): boolean | undefined;\n\tsetEnableAnalytics(enabled: boolean): void;\n\tgetTrackingId(): string | undefined;\n\tgetOrCreateDeviceId(): string;\n\tgetShowCacheMissNotices(): boolean;\n\tsetShowCacheMissNotices(enabled: boolean): void;\n\tgetDefaultThinkingLevel(): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tsetDefaultThinkingLevel(level: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\"): void;\n\tgetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined;\n\tgetAllModelThinkingLevels(): Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tsetModelThinkingLevel(\n\t\tprovider: string,\n\t\tmodelId: string,\n\t\tlevel: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\",\n\t): void;\n\tremoveModelThinkingLevel(provider: string, modelId: string): void;\n\tgetDefaultTools(): string[] | undefined;\n\tgetCodemodeMode(): \"on\" | \"only\" | undefined;\n\tsetCodemodeMode(mode: \"on\" | \"only\" | undefined): void;\n\tgetCodemodeInlineBudget(): number;\n\tgetFallbackModels(): string[];\n\tgetTransport(): TransportSetting;\n\tsetTransport(transport: TransportSetting): void;\n\tgetCompactionEnabled(): boolean;\n\tsetCompactionEnabled(enabled: boolean): void;\n\tgetCompactionReserveTokens(model?: CompactionModel): number;\n\tgetCompactionCompressionRatio(): number;\n\tgetCompactionPreserveRecent(model?: CompactionModel): number;\n\tgetCompactionQuery(): string | undefined;\n\tgetCompactionSettings(model?: CompactionModel): {\n\t\tenabled: boolean;\n\t\treserveTokens: number;\n\t\tcompression_ratio: number;\n\t\tpreserve_recent: number;\n\t\tquery?: string;\n\t};\n\tgetBranchSummarySettings(): { reserveTokens: number; skipPrompt: boolean };\n\tgetBranchSummarySkipPrompt(): boolean;\n\tgetSessionSummarySettings(): { enabled: boolean };\n\tgetRetryEnabled(): boolean;\n\tsetRetryEnabled(enabled: boolean): void;\n\tgetRetrySettings(): { enabled: boolean; maxRetries: number; baseDelayMs: number; maxAgentDelayMs: number };\n\tgetHttpProxy(): string | undefined;\n\tsetHttpProxy(proxy: string | undefined): void;\n\tgetHttpIdleTimeoutMs(): number;\n\tsetHttpIdleTimeoutMs(timeoutMs: number): void;\n\tgetWebSocketConnectTimeoutMs(): number | undefined;\n\tgetStreamDeadlineMs(): number | undefined;\n\tgetProviderRetrySettings(): { timeoutMs?: number; maxRetries?: number; maxRetryDelayMs: number };\n}\n\ndeclare module \"./settings-manager-core.ts\" {\n\tinterface SettingsManager extends SettingsManagerBasicAccessors {}\n}\n\nconst basicAccessors: SettingsManagerBasicAccessors = {\n\tgetCacheWarmingMode() {\n\t\tconst mode = settingsInternals(this).globalSettings.cacheWarming;\n\t\treturn mode !== undefined && CACHE_WARMING_MODES.includes(mode) ? mode : SETTINGS_DEFAULTS.cacheWarming;\n\t},\n\tsetCacheWarmingMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.cacheWarming = mode;\n\t\tstate.markModified(\"cacheWarming\");\n\t\tstate.save();\n\t},\n\tgetLastChangelogVersion() {\n\t\treturn settingsInternals(this).settings.lastChangelogVersion;\n\t},\n\n\tsetLastChangelogVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.lastChangelogVersion = version;\n\t\tstate.markModified(\"lastChangelogVersion\");\n\t\tstate.save();\n\t},\n\n\tgetFirstRunOnboardingStartedVersion() {\n\t\treturn settingsInternals(this).settings.firstRunOnboardingStartedVersion;\n\t},\n\n\tsetFirstRunOnboardingStartedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.firstRunOnboardingStartedVersion = version;\n\t\tstate.markModified(\"firstRunOnboardingStartedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetOnboardedVersion() {\n\t\treturn settingsInternals(this).settings.onboardedVersion;\n\t},\n\n\tsetOnboardedVersion(version) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.onboardedVersion = version;\n\t\tstate.markModified(\"onboardedVersion\");\n\t\tstate.save();\n\t},\n\n\tgetSessionDir() {\n\t\tconst sessionDir = settingsInternals(this).settings.sessionDir;\n\t\treturn sessionDir ? normalizePath(sessionDir) : sessionDir;\n\t},\n\n\tgetDefaultProvider() {\n\t\treturn settingsInternals(this).settings.defaultProvider;\n\t},\n\n\tgetDefaultModel() {\n\t\treturn settingsInternals(this).settings.defaultModel;\n\t},\n\n\tgetRouterModel() {\n\t\tconst value = settingsInternals(this).settings.routerModel;\n\t\tif (value === undefined) return SETTINGS_DEFAULTS.routerModel;\n\t\tif (typeof value !== \"string\" || value.trim() !== value) {\n\t\t\tthrow new Error(\"Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\treturn value;\n\t},\n\n\tgetCompactionModel() {\n\t\tconst value = settingsInternals(this).settings.compactionModel;\n\t\tif (value === undefined) return \"\";\n\t\tif (typeof value !== \"string\" || value.trim() !== value) {\n\t\t\tthrow new Error(\"Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\treturn value;\n\t},\n\n\tsetCompactionModel(model, scope = \"global\") {\n\t\tif (typeof model !== \"string\" || model.trim() !== model) {\n\t\t\tthrow new Error(\"Invalid compactionModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tif (scope === \"project\") {\n\t\t\tstate.markProjectModified(\"compactionModel\");\n\t\t\tstate.saveProjectSettings({ ...state.projectSettings, compactionModel: model });\n\t\t\treturn;\n\t\t}\n\t\tstate.globalSettings.compactionModel = model;\n\t\tstate.markModified(\"compactionModel\");\n\t\tstate.save();\n\t},\n\n\tgetModelRouting() {\n\t\tconst value = settingsInternals(this).settings.modelRouting;\n\t\tif (value === undefined) return {};\n\t\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) throw new Error(MODEL_ROUTING_ERROR);\n\t\tconst allowedProviders = routingList(value.allowedProviders);\n\t\tconst excludedProviders = routingList(value.excludedProviders);\n\t\tconst allowedModels = routingList(value.allowedModels);\n\t\tconst excludedModels = routingList(value.excludedModels);\n\t\treturn {\n\t\t\t...(allowedProviders ? { allowedProviders } : {}),\n\t\t\t...(excludedProviders ? { excludedProviders } : {}),\n\t\t\t...(allowedModels ? { allowedModels } : {}),\n\t\t\t...(excludedModels ? { excludedModels } : {}),\n\t\t};\n\t},\n\n\tsetRouterModel(model, scope = \"global\") {\n\t\tif (typeof model !== \"string\" || model.trim() !== model) {\n\t\t\tthrow new Error(\"Invalid routerModel: expected an exact provider/model ID, auto, or an empty string.\");\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tif (scope === \"project\") {\n\t\t\tconst projectSettings = { ...state.projectSettings, routerModel: model };\n\t\t\tstate.markProjectModified(\"routerModel\");\n\t\t\tstate.saveProjectSettings(projectSettings);\n\t\t\treturn;\n\t\t}\n\t\tstate.globalSettings.routerModel = model;\n\t\tstate.markModified(\"routerModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultProvider(provider) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModel(modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tsetDefaultModelAndProvider(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultProvider = provider;\n\t\tstate.globalSettings.defaultModel = modelId;\n\t\tstate.markModified(\"defaultProvider\");\n\t\tstate.markModified(\"defaultModel\");\n\t\tstate.save();\n\t},\n\n\tgetSteeringMode() {\n\t\treturn settingsInternals(this).settings.steeringMode || SETTINGS_DEFAULTS.steeringMode;\n\t},\n\n\tsetSteeringMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.steeringMode = mode;\n\t\tstate.markModified(\"steeringMode\");\n\t\tstate.save();\n\t},\n\n\tgetFollowUpMode() {\n\t\treturn settingsInternals(this).settings.followUpMode || SETTINGS_DEFAULTS.followUpMode;\n\t},\n\n\tsetFollowUpMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.followUpMode = mode;\n\t\tstate.markModified(\"followUpMode\");\n\t\tstate.save();\n\t},\n\n\tgetThemeSetting() {\n\t\tconst value = settingsInternals(this).settings.theme;\n\t\tif (typeof value === \"string\") return value;\n\t\treturn undefined;\n\t},\n\n\tgetTheme() {\n\t\tconst theme = this.getThemeSetting();\n\t\treturn theme?.includes(\"/\") ? undefined : theme;\n\t},\n\n\tsetTheme(theme) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.theme = theme;\n\t\tstate.markModified(\"theme\");\n\t\tstate.save();\n\t},\n\n\tgetEnableAnalytics() {\n\t\treturn settingsInternals(this).settings.enableAnalytics;\n\t},\n\n\tsetEnableAnalytics(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.enableAnalytics = enabled;\n\t\tstate.markModified(\"enableAnalytics\");\n\t\tif (enabled && !state.globalSettings.trackingId) {\n\t\t\tstate.globalSettings.trackingId = randomUUID();\n\t\t\tstate.markModified(\"trackingId\");\n\t\t}\n\t\tstate.save();\n\t},\n\n\tgetTrackingId() {\n\t\treturn settingsInternals(this).settings.trackingId;\n\t},\n\n\tgetOrCreateDeviceId() {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.deviceId) {\n\t\t\tstate.globalSettings.deviceId = randomUUID();\n\t\t\tstate.markModified(\"deviceId\");\n\t\t\tstate.save();\n\t\t}\n\t\treturn state.globalSettings.deviceId;\n\t},\n\n\tgetShowCacheMissNotices() {\n\t\treturn settingsInternals(this).settings.showCacheMissNotices ?? SETTINGS_DEFAULTS.showCacheMissNotices;\n\t},\n\n\tsetShowCacheMissNotices(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.showCacheMissNotices = enabled;\n\t\tstate.markModified(\"showCacheMissNotices\");\n\t\tstate.save();\n\t},\n\n\tgetDefaultThinkingLevel() {\n\t\treturn settingsInternals(this).settings.defaultThinkingLevel;\n\t},\n\n\tsetDefaultThinkingLevel(level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.defaultThinkingLevel = level;\n\t\tstate.markModified(\"defaultThinkingLevel\");\n\t\tstate.save();\n\t},\n\n\tgetModelThinkingLevel(provider, modelId) {\n\t\treturn settingsInternals(this).settings.modelThinkingLevels?.[`${normalizeProviderId(provider)}/${modelId}`];\n\t},\n\n\tgetAllModelThinkingLevels() {\n\t\treturn { ...(settingsInternals(this).settings.modelThinkingLevels ?? {}) };\n\t},\n\n\tsetModelThinkingLevel(provider, modelId, level) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.modelThinkingLevels ??= {};\n\t\tstate.globalSettings.modelThinkingLevels[`${normalizeProviderId(provider)}/${modelId}`] = level;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tremoveModelThinkingLevel(provider, modelId) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.modelThinkingLevels) return;\n\t\tdelete state.globalSettings.modelThinkingLevels[`${normalizeProviderId(provider)}/${modelId}`];\n\t\tif (Object.keys(state.globalSettings.modelThinkingLevels).length === 0)\n\t\t\tdelete state.globalSettings.modelThinkingLevels;\n\t\tstate.markModified(\"modelThinkingLevels\");\n\t\tstate.save();\n\t},\n\n\tgetCodemodeMode() {\n\t\tconst mode = settingsInternals(this).settings.codemode?.mode;\n\t\treturn mode === \"on\" || mode === \"only\" ? mode : undefined;\n\t},\n\tsetCodemodeMode(mode) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.codemode = { ...state.globalSettings.codemode, mode };\n\t\tstate.markModified(\"codemode\", \"mode\");\n\t\tstate.save();\n\t},\n\tgetCodemodeInlineBudget() {\n\t\tconst budget = settingsInternals(this).settings.codemode?.inlineBudget;\n\t\treturn typeof budget === \"number\" && Number.isFinite(budget) && budget >= 0\n\t\t\t? Math.floor(budget)\n\t\t\t: SETTINGS_DEFAULTS.codemode.inlineBudget;\n\t},\n\n\tgetDefaultTools() {\n\t\t// Settings load unvalidated from disk, so guard the shape here the same\n\t\t// way getFallbackModels() does: a non-array (or null) reads as unset,\n\t\t// and non-string entries are dropped rather than passed through to the\n\t\t// initial tool selection.\n\t\tconst tools = settingsInternals(this).settings.defaultTools;\n\t\treturn Array.isArray(tools)\n\t\t\t? resolveDefaultTools(tools.filter((tool): tool is string => typeof tool === \"string\"))\n\t\t\t: undefined;\n\t},\n\n\tgetFallbackModels() {\n\t\treturn (settingsInternals(this).settings.fallbackModels ?? [])\n\t\t\t.filter((model): model is string => typeof model === \"string\")\n\t\t\t.map((model) => model.trim())\n\t\t\t.filter((model) => model.length > 0);\n\t},\n\n\tgetTransport() {\n\t\treturn settingsInternals(this).settings.transport ?? SETTINGS_DEFAULTS.transport;\n\t},\n\n\tsetTransport(transport) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.transport = transport;\n\t\tstate.markModified(\"transport\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionEnabled() {\n\t\treturn settingsInternals(this).settings.compaction?.enabled ?? SETTINGS_DEFAULTS.compaction.enabled;\n\t},\n\n\tsetCompactionEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.compaction) {\n\t\t\tstate.globalSettings.compaction = {};\n\t\t}\n\t\tstate.globalSettings.compaction.enabled = enabled;\n\t\tstate.markModified(\"compaction\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetCompactionReserveTokens(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"reserveTokens\", model);\n\t},\n\n\tgetCompactionCompressionRatio() {\n\t\tconst value = settingsInternals(this).settings.compaction?.compression_ratio;\n\t\treturn typeof value === \"number\" && Number.isFinite(value) && value > 0 && value < 1\n\t\t\t? value\n\t\t\t: SETTINGS_DEFAULTS.compaction.compression_ratio;\n\t},\n\n\tgetCompactionPreserveRecent(model) {\n\t\treturn resolveCompactionSetting(settingsInternals(this).settings.compaction, \"preserve_recent\", model);\n\t},\n\n\tgetCompactionQuery() {\n\t\tconst query = settingsInternals(this).settings.compaction?.query?.trim();\n\t\treturn query && query.length > 0 ? query : undefined;\n\t},\n\n\tgetCompactionSettings(model) {\n\t\tconst query = this.getCompactionQuery();\n\t\treturn {\n\t\t\tenabled: this.getCompactionEnabled(),\n\t\t\treserveTokens: this.getCompactionReserveTokens(model),\n\t\t\tcompression_ratio: this.getCompactionCompressionRatio(),\n\t\t\tpreserve_recent: this.getCompactionPreserveRecent(model),\n\t\t\t...(query === undefined ? {} : { query }),\n\t\t};\n\t},\n\n\tgetBranchSummarySettings() {\n\t\treturn {\n\t\t\treserveTokens:\n\t\t\t\tsettingsInternals(this).settings.branchSummary?.reserveTokens ??\n\t\t\t\tSETTINGS_DEFAULTS.branchSummary.reserveTokens,\n\t\t\tskipPrompt:\n\t\t\t\tsettingsInternals(this).settings.branchSummary?.skipPrompt ?? SETTINGS_DEFAULTS.branchSummary.skipPrompt,\n\t\t};\n\t},\n\n\tgetBranchSummarySkipPrompt() {\n\t\treturn settingsInternals(this).settings.branchSummary?.skipPrompt ?? SETTINGS_DEFAULTS.branchSummary.skipPrompt;\n\t},\n\n\tgetSessionSummarySettings() {\n\t\treturn {\n\t\t\tenabled: settingsInternals(this).settings.sessionSummary?.enabled ?? SETTINGS_DEFAULTS.sessionSummary.enabled,\n\t\t};\n\t},\n\n\tgetRetryEnabled() {\n\t\treturn settingsInternals(this).settings.retry?.enabled ?? SETTINGS_DEFAULTS.retry.enabled;\n\t},\n\n\tsetRetryEnabled(enabled) {\n\t\tconst state = settingsInternals(this);\n\t\tif (!state.globalSettings.retry) {\n\t\t\tstate.globalSettings.retry = {};\n\t\t}\n\t\tstate.globalSettings.retry.enabled = enabled;\n\t\tstate.markModified(\"retry\", \"enabled\");\n\t\tstate.save();\n\t},\n\n\tgetRetrySettings() {\n\t\treturn {\n\t\t\tenabled: this.getRetryEnabled(),\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.maxRetries ?? SETTINGS_DEFAULTS.retry.maxRetries,\n\t\t\tbaseDelayMs: settingsInternals(this).settings.retry?.baseDelayMs ?? SETTINGS_DEFAULTS.retry.baseDelayMs,\n\t\t\tmaxAgentDelayMs:\n\t\t\t\tsettingsInternals(this).settings.retry?.maxAgentDelayMs ?? SETTINGS_DEFAULTS.retry.maxAgentDelayMs,\n\t\t};\n\t},\n\n\tgetHttpProxy() {\n\t\treturn settingsInternals(this).globalSettings.httpProxy;\n\t},\n\n\tsetHttpProxy(proxy) {\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpProxy = proxy;\n\t\tstate.markModified(\"httpProxy\");\n\t\tstate.save();\n\t},\n\n\tgetHttpIdleTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.httpIdleTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn SETTINGS_DEFAULTS.httpIdleTimeoutMs;\n\t},\n\n\tsetHttpIdleTimeoutMs(timeoutMs) {\n\t\tconst normalizedTimeoutMs = parseHttpIdleTimeoutMs(timeoutMs);\n\t\tif (normalizedTimeoutMs === undefined) {\n\t\t\tthrow new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);\n\t\t}\n\t\tconst state = settingsInternals(this);\n\t\tstate.globalSettings.httpIdleTimeoutMs = normalizedTimeoutMs;\n\t\tstate.markModified(\"httpIdleTimeoutMs\");\n\t\tstate.save();\n\t},\n\n\tgetWebSocketConnectTimeoutMs() {\n\t\tconst value = settingsInternals(this).settings.websocketConnectTimeoutMs;\n\t\tconst timeoutMs = parseHttpIdleTimeoutMs(value);\n\t\tif (timeoutMs !== undefined) {\n\t\t\treturn timeoutMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid websocketConnectTimeoutMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetStreamDeadlineMs() {\n\t\tconst value = settingsInternals(this).settings.streamDeadlineMs;\n\t\tconst deadlineMs = parseHttpIdleTimeoutMs(value);\n\t\tif (deadlineMs !== undefined) {\n\t\t\treturn deadlineMs;\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tthrow new Error(`Invalid streamDeadlineMs setting: ${String(value)}`);\n\t\t}\n\t\treturn undefined;\n\t},\n\n\tgetProviderRetrySettings() {\n\t\treturn {\n\t\t\ttimeoutMs: settingsInternals(this).settings.retry?.provider?.timeoutMs,\n\t\t\tmaxRetries: settingsInternals(this).settings.retry?.provider?.maxRetries,\n\t\t\tmaxRetryDelayMs:\n\t\t\t\tsettingsInternals(this).settings.retry?.provider?.maxRetryDelayMs ??\n\t\t\t\tSETTINGS_DEFAULTS.retry.provider.maxRetryDelayMs,\n\t\t};\n\t},\n};\n\nObject.assign(SettingsManager.prototype, basicAccessors);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-manager-resource-accessors.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager-resource-accessors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAErH,UAAU,gCAAgC;IACzC,oBAAoB,IAAI,OAAO,CAAC;IAChC,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC/C,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1C,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;IACnC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7C,sBAAsB,IAAI,mBAAmB,CAAC;IAC9C,sBAAsB,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvE,eAAe,IAAI,YAAY,CAAC;IAChC,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3C,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACxD,yBAAyB,IAAI,OAAO,CAAC;IACrC,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,sBAAsB,IAAI,MAAM,CAAC;IACjC,qBAAqB,IAAI,MAAM,CAAC;IAChC,aAAa,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACnD,oBAAoB,IAAI,OAAO,CAAC;IAChC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,yBAAyB,IAAI,OAAO,CAAC;IACrC,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,WAAW,IAAI,aAAa,EAAE,CAAC;IAC/B,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC7C,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACpD,iBAAiB,IAAI,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChD,aAAa,IAAI,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,sBAAsB,IAAI,MAAM,EAAE,CAAC;IACnC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrD,aAAa,IAAI,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,gBAAgB,IAAI,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C,sBAAsB,IAAI,OAAO,CAAC;IAClC,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,kBAAkB,IAAI,uBAAuB,GAAG,SAAS,CAAC;CAC1D;AAED,OAAO,QAAQ,4BAA4B,CAAC;IAC3C,UAAU,eAAgB,SAAQ,gCAAgC;KAAG;CACrE"}
1
+ {"version":3,"file":"settings-manager-resource-accessors.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager-resource-accessors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAErH,UAAU,gCAAgC;IACzC,oBAAoB,IAAI,OAAO,CAAC;IAChC,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC/C,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1C,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;IACnC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7C,sBAAsB,IAAI,mBAAmB,CAAC;IAC9C,sBAAsB,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvE,eAAe,IAAI,YAAY,CAAC;IAChC,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3C,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACxD,yBAAyB,IAAI,OAAO,CAAC;IACrC,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,sBAAsB,IAAI,MAAM,CAAC;IACjC,qBAAqB,IAAI,MAAM,CAAC;IAChC,aAAa,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACnD,oBAAoB,IAAI,OAAO,CAAC;IAChC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,yBAAyB,IAAI,OAAO,CAAC;IACrC,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,WAAW,IAAI,aAAa,EAAE,CAAC;IAC/B,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC7C,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACpD,iBAAiB,IAAI,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChD,aAAa,IAAI,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,sBAAsB,IAAI,MAAM,EAAE,CAAC;IACnC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrD,aAAa,IAAI,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,gBAAgB,IAAI,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C,sBAAsB,IAAI,OAAO,CAAC;IAClC,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,kBAAkB,IAAI,uBAAuB,GAAG,SAAS,CAAC;CAC1D;AAED,OAAO,QAAQ,4BAA4B,CAAC;IAC3C,UAAU,eAAgB,SAAQ,gCAAgC;KAAG;CACrE"}