newcraw 1.0.0

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 (188) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +692 -0
  3. package/README.zh-CN.md +338 -0
  4. package/cli-acp.js +82 -0
  5. package/cli.js +105 -0
  6. package/dist/REPL-74GZVSMY.js +42 -0
  7. package/dist/REPL-74GZVSMY.js.map +7 -0
  8. package/dist/acp-A55ZRIPP.js +1357 -0
  9. package/dist/acp-A55ZRIPP.js.map +7 -0
  10. package/dist/agentsValidate-XWFIEHJ2.js +373 -0
  11. package/dist/agentsValidate-XWFIEHJ2.js.map +7 -0
  12. package/dist/ask-4ACYU23S.js +126 -0
  13. package/dist/ask-4ACYU23S.js.map +7 -0
  14. package/dist/autoUpdater-O2WHHSGP.js +17 -0
  15. package/dist/autoUpdater-O2WHHSGP.js.map +7 -0
  16. package/dist/chunk-2UO3BFZH.js +16 -0
  17. package/dist/chunk-2UO3BFZH.js.map +7 -0
  18. package/dist/chunk-3C73U2IU.js +2970 -0
  19. package/dist/chunk-3C73U2IU.js.map +7 -0
  20. package/dist/chunk-3U5X4VWP.js +2613 -0
  21. package/dist/chunk-3U5X4VWP.js.map +7 -0
  22. package/dist/chunk-755HIAI3.js +95 -0
  23. package/dist/chunk-755HIAI3.js.map +7 -0
  24. package/dist/chunk-7ZFLZNOW.js +21 -0
  25. package/dist/chunk-7ZFLZNOW.js.map +7 -0
  26. package/dist/chunk-A44DGORI.js +49 -0
  27. package/dist/chunk-A44DGORI.js.map +7 -0
  28. package/dist/chunk-AXWJI6N5.js +11 -0
  29. package/dist/chunk-AXWJI6N5.js.map +7 -0
  30. package/dist/chunk-B26ZUMJI.js +515 -0
  31. package/dist/chunk-B26ZUMJI.js.map +7 -0
  32. package/dist/chunk-BHNQGSLO.js +96 -0
  33. package/dist/chunk-BHNQGSLO.js.map +7 -0
  34. package/dist/chunk-BUI6KGVA.js +164 -0
  35. package/dist/chunk-BUI6KGVA.js.map +7 -0
  36. package/dist/chunk-DY5D4SS7.js +936 -0
  37. package/dist/chunk-DY5D4SS7.js.map +7 -0
  38. package/dist/chunk-EENI5HG7.js +498 -0
  39. package/dist/chunk-EENI5HG7.js.map +7 -0
  40. package/dist/chunk-EXPWPWA4.js +654 -0
  41. package/dist/chunk-EXPWPWA4.js.map +7 -0
  42. package/dist/chunk-FHOCKJOW.js +766 -0
  43. package/dist/chunk-FHOCKJOW.js.map +7 -0
  44. package/dist/chunk-GPKVTIYJ.js +191 -0
  45. package/dist/chunk-GPKVTIYJ.js.map +7 -0
  46. package/dist/chunk-H5BCUDEN.js +794 -0
  47. package/dist/chunk-H5BCUDEN.js.map +7 -0
  48. package/dist/chunk-INJSFEKL.js +47 -0
  49. package/dist/chunk-INJSFEKL.js.map +7 -0
  50. package/dist/chunk-JX5ZQYTQ.js +12 -0
  51. package/dist/chunk-JX5ZQYTQ.js.map +7 -0
  52. package/dist/chunk-KQSHIOZK.js +24 -0
  53. package/dist/chunk-KQSHIOZK.js.map +7 -0
  54. package/dist/chunk-L6WKZEK4.js +1609 -0
  55. package/dist/chunk-L6WKZEK4.js.map +7 -0
  56. package/dist/chunk-LC4CL3YJ.js +124 -0
  57. package/dist/chunk-LC4CL3YJ.js.map +7 -0
  58. package/dist/chunk-MXSB7IOZ.js +1097 -0
  59. package/dist/chunk-MXSB7IOZ.js.map +7 -0
  60. package/dist/chunk-N5OHRWG2.js +249 -0
  61. package/dist/chunk-N5OHRWG2.js.map +7 -0
  62. package/dist/chunk-NQE3GGE3.js +19 -0
  63. package/dist/chunk-NQE3GGE3.js.map +7 -0
  64. package/dist/chunk-QF6YDTME.js +139 -0
  65. package/dist/chunk-QF6YDTME.js.map +7 -0
  66. package/dist/chunk-QTX7AJFQ.js +240 -0
  67. package/dist/chunk-QTX7AJFQ.js.map +7 -0
  68. package/dist/chunk-S3ZAJPYZ.js +515 -0
  69. package/dist/chunk-S3ZAJPYZ.js.map +7 -0
  70. package/dist/chunk-S5Y5IF2H.js +735 -0
  71. package/dist/chunk-S5Y5IF2H.js.map +7 -0
  72. package/dist/chunk-SBE6Y327.js +836 -0
  73. package/dist/chunk-SBE6Y327.js.map +7 -0
  74. package/dist/chunk-T25Z3JMG.js +17 -0
  75. package/dist/chunk-T25Z3JMG.js.map +7 -0
  76. package/dist/chunk-T6VKT5FR.js +196 -0
  77. package/dist/chunk-T6VKT5FR.js.map +7 -0
  78. package/dist/chunk-TSGGSPYD.js +151 -0
  79. package/dist/chunk-TSGGSPYD.js.map +7 -0
  80. package/dist/chunk-TY3CCSAT.js +24 -0
  81. package/dist/chunk-TY3CCSAT.js.map +7 -0
  82. package/dist/chunk-U224EQOS.js +34 -0
  83. package/dist/chunk-U224EQOS.js.map +7 -0
  84. package/dist/chunk-U7S4MEYP.js +95 -0
  85. package/dist/chunk-U7S4MEYP.js.map +7 -0
  86. package/dist/chunk-ULVAAZ2U.js +30517 -0
  87. package/dist/chunk-ULVAAZ2U.js.map +7 -0
  88. package/dist/chunk-WWLFALT7.js +128 -0
  89. package/dist/chunk-WWLFALT7.js.map +7 -0
  90. package/dist/chunk-XJQATPV7.js +23 -0
  91. package/dist/chunk-XJQATPV7.js.map +7 -0
  92. package/dist/chunk-XMGUQHMF.js +72 -0
  93. package/dist/chunk-XMGUQHMF.js.map +7 -0
  94. package/dist/chunk-XOMW5QTV.js +472 -0
  95. package/dist/chunk-XOMW5QTV.js.map +7 -0
  96. package/dist/chunk-Y7VZUSIM.js +1256 -0
  97. package/dist/chunk-Y7VZUSIM.js.map +7 -0
  98. package/dist/chunk-YVNBXMIP.js +511 -0
  99. package/dist/chunk-YVNBXMIP.js.map +7 -0
  100. package/dist/chunk-YYPJWXSA.js +145 -0
  101. package/dist/chunk-YYPJWXSA.js.map +7 -0
  102. package/dist/cli-BW34VKCN.js +3917 -0
  103. package/dist/cli-BW34VKCN.js.map +7 -0
  104. package/dist/commands-4CNZZBTE.js +46 -0
  105. package/dist/commands-4CNZZBTE.js.map +7 -0
  106. package/dist/config-XKRCXCSS.js +81 -0
  107. package/dist/config-XKRCXCSS.js.map +7 -0
  108. package/dist/context-T5CR3RP6.js +30 -0
  109. package/dist/context-T5CR3RP6.js.map +7 -0
  110. package/dist/costTracker-2G3ZI2JF.js +19 -0
  111. package/dist/costTracker-2G3ZI2JF.js.map +7 -0
  112. package/dist/customCommands-OCUMXZDN.js +25 -0
  113. package/dist/customCommands-OCUMXZDN.js.map +7 -0
  114. package/dist/env-DYDNFB4D.js +22 -0
  115. package/dist/env-DYDNFB4D.js.map +7 -0
  116. package/dist/index.js +34 -0
  117. package/dist/index.js.map +7 -0
  118. package/dist/kodeAgentSessionId-KTGFX2BE.js +13 -0
  119. package/dist/kodeAgentSessionId-KTGFX2BE.js.map +7 -0
  120. package/dist/kodeAgentSessionLoad-ZKR2VGHO.js +18 -0
  121. package/dist/kodeAgentSessionLoad-ZKR2VGHO.js.map +7 -0
  122. package/dist/kodeAgentSessionResume-NFZCTIBZ.js +16 -0
  123. package/dist/kodeAgentSessionResume-NFZCTIBZ.js.map +7 -0
  124. package/dist/kodeAgentStreamJson-VIXFTYL5.js +13 -0
  125. package/dist/kodeAgentStreamJson-VIXFTYL5.js.map +7 -0
  126. package/dist/kodeAgentStreamJsonSession-6CKTK6AF.js +131 -0
  127. package/dist/kodeAgentStreamJsonSession-6CKTK6AF.js.map +7 -0
  128. package/dist/kodeAgentStructuredStdio-SI5C7AAD.js +10 -0
  129. package/dist/kodeAgentStructuredStdio-SI5C7AAD.js.map +7 -0
  130. package/dist/kodeHooks-5RXJRDCY.js +36 -0
  131. package/dist/kodeHooks-5RXJRDCY.js.map +7 -0
  132. package/dist/llm-QJA3QMXR.js +3118 -0
  133. package/dist/llm-QJA3QMXR.js.map +7 -0
  134. package/dist/llmLazy-VCEV22DK.js +15 -0
  135. package/dist/llmLazy-VCEV22DK.js.map +7 -0
  136. package/dist/loader-CKNYMPCZ.js +28 -0
  137. package/dist/loader-CKNYMPCZ.js.map +7 -0
  138. package/dist/mcp-2SZTOKZX.js +49 -0
  139. package/dist/mcp-2SZTOKZX.js.map +7 -0
  140. package/dist/mentionProcessor-O7NWOH6S.js +211 -0
  141. package/dist/mentionProcessor-O7NWOH6S.js.map +7 -0
  142. package/dist/messages-PRKIHXMK.js +65 -0
  143. package/dist/messages-PRKIHXMK.js.map +7 -0
  144. package/dist/model-WG6RA25G.js +30 -0
  145. package/dist/model-WG6RA25G.js.map +7 -0
  146. package/dist/openai-VQLYFQ6B.js +29 -0
  147. package/dist/openai-VQLYFQ6B.js.map +7 -0
  148. package/dist/outputStyles-VQ57E3B6.js +28 -0
  149. package/dist/outputStyles-VQ57E3B6.js.map +7 -0
  150. package/dist/package.json +4 -0
  151. package/dist/pluginRuntime-NWOLU73K.js +218 -0
  152. package/dist/pluginRuntime-NWOLU73K.js.map +7 -0
  153. package/dist/pluginValidation-R7B6QQ6T.js +17 -0
  154. package/dist/pluginValidation-R7B6QQ6T.js.map +7 -0
  155. package/dist/prompts-W4V4Y67M.js +48 -0
  156. package/dist/prompts-W4V4Y67M.js.map +7 -0
  157. package/dist/query-GFFKKURO.js +50 -0
  158. package/dist/query-GFFKKURO.js.map +7 -0
  159. package/dist/responsesStreaming-2AIT6GHG.js +10 -0
  160. package/dist/responsesStreaming-2AIT6GHG.js.map +7 -0
  161. package/dist/ripgrep-SVBVC46X.js +17 -0
  162. package/dist/ripgrep-SVBVC46X.js.map +7 -0
  163. package/dist/skillMarketplace-5Z7Y6FTD.js +37 -0
  164. package/dist/skillMarketplace-5Z7Y6FTD.js.map +7 -0
  165. package/dist/state-X3R7BV7A.js +16 -0
  166. package/dist/state-X3R7BV7A.js.map +7 -0
  167. package/dist/theme-4VA64EWF.js +14 -0
  168. package/dist/theme-4VA64EWF.js.map +7 -0
  169. package/dist/toolPermissionContext-I3IXPVED.js +17 -0
  170. package/dist/toolPermissionContext-I3IXPVED.js.map +7 -0
  171. package/dist/toolPermissionSettings-35DJQEKG.js +18 -0
  172. package/dist/toolPermissionSettings-35DJQEKG.js.map +7 -0
  173. package/dist/tools-USOBTPOI.js +47 -0
  174. package/dist/tools-USOBTPOI.js.map +7 -0
  175. package/dist/userInput-NID2UYXG.js +312 -0
  176. package/dist/userInput-NID2UYXG.js.map +7 -0
  177. package/dist/uuid-VA3KVASX.js +9 -0
  178. package/dist/uuid-VA3KVASX.js.map +7 -0
  179. package/dist/yoga.wasm +0 -0
  180. package/package.json +135 -0
  181. package/scripts/binary-utils.cjs +61 -0
  182. package/scripts/cli-acp-wrapper.cjs +82 -0
  183. package/scripts/cli-wrapper.cjs +105 -0
  184. package/scripts/postinstall.js +144 -0
  185. package/web/dist/assets/index-COAJqX1Z.css +1 -0
  186. package/web/dist/assets/index-CzS_4LmC.js +179 -0
  187. package/web/dist/index.html +14 -0
  188. package/yoga.wasm +0 -0
@@ -0,0 +1,145 @@
1
+ import { createRequire as __newcrawCreateRequire } from "node:module";
2
+ const require = __newcrawCreateRequire(import.meta.url);
3
+ import {
4
+ getCwd,
5
+ logError
6
+ } from "./chunk-3C73U2IU.js";
7
+
8
+ // src/utils/config/settingsFiles.ts
9
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
10
+ import { homedir } from "os";
11
+ import { dirname, join, resolve } from "path";
12
+ function normalizeOverride(value) {
13
+ if (typeof value !== "string") return null;
14
+ const trimmed = value.trim();
15
+ return trimmed ? resolve(trimmed) : null;
16
+ }
17
+ function dedupeStrings(values) {
18
+ const out = [];
19
+ const seen = /* @__PURE__ */ new Set();
20
+ for (const value of values) {
21
+ if (!value) continue;
22
+ if (seen.has(value)) continue;
23
+ seen.add(value);
24
+ out.push(value);
25
+ }
26
+ return out;
27
+ }
28
+ function getDefaultHomeDir() {
29
+ const envHome = typeof process.env.HOME === "string" ? process.env.HOME : typeof process.env.USERPROFILE === "string" ? process.env.USERPROFILE : "";
30
+ const trimmed = envHome.trim();
31
+ if (trimmed) return trimmed;
32
+ return homedir();
33
+ }
34
+ function getUserKodeBaseDir(options) {
35
+ const respectEnvOverride = options?.respectEnvOverride ?? true;
36
+ if (respectEnvOverride) {
37
+ const override = normalizeOverride(
38
+ process.env.NEWCRAW_CONFIG_DIR ?? process.env.CLAUDE_CONFIG_DIR
39
+ );
40
+ if (override) return override;
41
+ }
42
+ const home = options?.homeDir ?? getDefaultHomeDir();
43
+ return join(home, ".newcraw");
44
+ }
45
+ function getUserLegacyBaseDir(options) {
46
+ const respectEnvOverride = options?.respectEnvOverride ?? true;
47
+ if (respectEnvOverride) {
48
+ const override = normalizeOverride(process.env.CLAUDE_CONFIG_DIR);
49
+ if (override) return override;
50
+ }
51
+ const home = options?.homeDir ?? getDefaultHomeDir();
52
+ return join(home, ".claude");
53
+ }
54
+ function getSettingsFileCandidates(options) {
55
+ const projectDir = options.projectDir ?? getCwd();
56
+ const homeDir = options.homeDir ?? getDefaultHomeDir();
57
+ const respectEnvOverride = options.homeDir === void 0;
58
+ switch (options.destination) {
59
+ case "localSettings": {
60
+ const primary = join(projectDir, ".newcraw", "settings.local.json");
61
+ const legacy = [join(projectDir, ".claude", "settings.local.json")];
62
+ return { primary, legacy };
63
+ }
64
+ case "projectSettings": {
65
+ const primary = join(projectDir, ".newcraw", "settings.json");
66
+ const legacy = [join(projectDir, ".claude", "settings.json")];
67
+ return { primary, legacy };
68
+ }
69
+ case "userSettings": {
70
+ const primary = join(
71
+ getUserKodeBaseDir({ homeDir, respectEnvOverride }),
72
+ "settings.json"
73
+ );
74
+ const legacy = dedupeStrings([
75
+ join(
76
+ getUserLegacyBaseDir({ homeDir, respectEnvOverride }),
77
+ "settings.json"
78
+ ),
79
+ join(homeDir, ".claude", "settings.json")
80
+ ]);
81
+ return { primary, legacy };
82
+ }
83
+ default:
84
+ return null;
85
+ }
86
+ }
87
+ function readSettingsFile(filePath) {
88
+ if (!existsSync(filePath)) return null;
89
+ try {
90
+ const raw = readFileSync(filePath, "utf-8");
91
+ const parsed = JSON.parse(raw);
92
+ if (!parsed || typeof parsed !== "object") return null;
93
+ return parsed;
94
+ } catch (error) {
95
+ logError(error);
96
+ return null;
97
+ }
98
+ }
99
+ function writeSettingsFile(filePath, settings) {
100
+ mkdirSync(dirname(filePath), { recursive: true });
101
+ writeFileSync(filePath, JSON.stringify(settings, null, 2) + "\n", "utf-8");
102
+ }
103
+ function loadSettingsWithLegacyFallback(options) {
104
+ const candidates = getSettingsFileCandidates(options);
105
+ if (!candidates) return { settings: null, usedPath: null };
106
+ const primarySettings = readSettingsFile(candidates.primary);
107
+ if (primarySettings)
108
+ return { settings: primarySettings, usedPath: candidates.primary };
109
+ for (const legacyPath of candidates.legacy) {
110
+ const legacySettings = readSettingsFile(legacyPath);
111
+ if (!legacySettings) continue;
112
+ if (options.migrateToPrimary && legacyPath !== candidates.primary) {
113
+ try {
114
+ if (!existsSync(candidates.primary)) {
115
+ writeSettingsFile(candidates.primary, legacySettings);
116
+ }
117
+ } catch (error) {
118
+ logError(error);
119
+ }
120
+ }
121
+ return { settings: legacySettings, usedPath: legacyPath };
122
+ }
123
+ return { settings: null, usedPath: null };
124
+ }
125
+ function saveSettingsToPrimaryAndSyncLegacy(options) {
126
+ const candidates = getSettingsFileCandidates(options);
127
+ if (!candidates) return;
128
+ writeSettingsFile(candidates.primary, options.settings);
129
+ if (!options.syncLegacyIfExists) return;
130
+ for (const legacyPath of candidates.legacy) {
131
+ if (legacyPath === candidates.primary) continue;
132
+ if (!existsSync(legacyPath)) continue;
133
+ try {
134
+ writeSettingsFile(legacyPath, options.settings);
135
+ } catch (error) {
136
+ logError(error);
137
+ }
138
+ }
139
+ }
140
+
141
+ export {
142
+ getSettingsFileCandidates,
143
+ loadSettingsWithLegacyFallback,
144
+ saveSettingsToPrimaryAndSyncLegacy
145
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/utils/config/settingsFiles.ts"],
4
+ "sourcesContent": ["import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs'\r\nimport { homedir } from 'os'\r\nimport { dirname, join, resolve } from 'path'\r\nimport { getCwd } from '@utils/state'\r\nimport { logError } from '@utils/log'\r\n\r\nexport type SettingsDestination =\r\n | 'localSettings'\r\n | 'projectSettings'\r\n | 'userSettings'\r\n\r\nexport type SettingsFile = {\r\n [key: string]: unknown\r\n}\r\n\r\nfunction normalizeOverride(value: unknown): string | null {\r\n if (typeof value !== 'string') return null\r\n const trimmed = value.trim()\r\n return trimmed ? resolve(trimmed) : null\r\n}\r\n\r\nfunction dedupeStrings(values: string[]): string[] {\r\n const out: string[] = []\r\n const seen = new Set<string>()\r\n for (const value of values) {\r\n if (!value) continue\r\n if (seen.has(value)) continue\r\n seen.add(value)\r\n out.push(value)\r\n }\r\n return out\r\n}\r\n\r\nfunction getDefaultHomeDir(): string {\r\n const envHome =\r\n typeof process.env.HOME === 'string'\r\n ? process.env.HOME\r\n : typeof process.env.USERPROFILE === 'string'\r\n ? process.env.USERPROFILE\r\n : ''\r\n const trimmed = envHome.trim()\r\n if (trimmed) return trimmed\r\n return homedir()\r\n}\r\n\r\nfunction getUserKodeBaseDir(options?: {\r\n homeDir?: string\r\n respectEnvOverride?: boolean\r\n}): string {\r\n const respectEnvOverride = options?.respectEnvOverride ?? true\r\n if (respectEnvOverride) {\r\n const override = normalizeOverride(\r\n process.env.NEWCRAW_CONFIG_DIR ?? process.env.CLAUDE_CONFIG_DIR,\r\n )\r\n if (override) return override\r\n }\r\n const home = options?.homeDir ?? getDefaultHomeDir()\r\n return join(home, '.newcraw')\r\n}\r\n\r\nfunction getUserLegacyBaseDir(options?: {\r\n homeDir?: string\r\n respectEnvOverride?: boolean\r\n}): string {\r\n const respectEnvOverride = options?.respectEnvOverride ?? true\r\n if (respectEnvOverride) {\r\n const override = normalizeOverride(process.env.CLAUDE_CONFIG_DIR)\r\n if (override) return override\r\n }\r\n const home = options?.homeDir ?? getDefaultHomeDir()\r\n return join(home, '.claude')\r\n}\r\n\r\nexport function getSettingsFileCandidates(options: {\r\n destination: SettingsDestination\r\n projectDir?: string\r\n homeDir?: string\r\n}): { primary: string; legacy: string[] } | null {\r\n const projectDir = options.projectDir ?? getCwd()\r\n const homeDir = options.homeDir ?? getDefaultHomeDir()\r\n const respectEnvOverride = options.homeDir === undefined\r\n\r\n switch (options.destination) {\r\n case 'localSettings': {\r\n const primary = join(projectDir, '.newcraw', 'settings.local.json')\r\n const legacy = [join(projectDir, '.claude', 'settings.local.json')]\r\n return { primary, legacy }\r\n }\r\n case 'projectSettings': {\r\n const primary = join(projectDir, '.newcraw', 'settings.json')\r\n const legacy = [join(projectDir, '.claude', 'settings.json')]\r\n return { primary, legacy }\r\n }\r\n case 'userSettings': {\r\n const primary = join(\r\n getUserKodeBaseDir({ homeDir, respectEnvOverride }),\r\n 'settings.json',\r\n )\r\n const legacy = dedupeStrings([\r\n join(\r\n getUserLegacyBaseDir({ homeDir, respectEnvOverride }),\r\n 'settings.json',\r\n ),\r\n join(homeDir, '.claude', 'settings.json'),\r\n ])\r\n return { primary, legacy }\r\n }\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nexport function readSettingsFile(filePath: string): SettingsFile | null {\r\n if (!existsSync(filePath)) return null\r\n try {\r\n const raw = readFileSync(filePath, 'utf-8')\r\n const parsed = JSON.parse(raw)\r\n if (!parsed || typeof parsed !== 'object') return null\r\n return parsed as SettingsFile\r\n } catch (error) {\r\n logError(error)\r\n return null\r\n }\r\n}\r\n\r\nexport function writeSettingsFile(\r\n filePath: string,\r\n settings: SettingsFile,\r\n): void {\r\n mkdirSync(dirname(filePath), { recursive: true })\r\n writeFileSync(filePath, JSON.stringify(settings, null, 2) + '\\n', 'utf-8')\r\n}\r\n\r\nexport function loadSettingsWithLegacyFallback(options: {\r\n destination: SettingsDestination\r\n projectDir?: string\r\n homeDir?: string\r\n migrateToPrimary?: boolean\r\n}): { settings: SettingsFile | null; usedPath: string | null } {\r\n const candidates = getSettingsFileCandidates(options)\r\n if (!candidates) return { settings: null, usedPath: null }\r\n\r\n const primarySettings = readSettingsFile(candidates.primary)\r\n if (primarySettings)\r\n return { settings: primarySettings, usedPath: candidates.primary }\r\n\r\n for (const legacyPath of candidates.legacy) {\r\n const legacySettings = readSettingsFile(legacyPath)\r\n if (!legacySettings) continue\r\n\r\n if (options.migrateToPrimary && legacyPath !== candidates.primary) {\r\n try {\r\n if (!existsSync(candidates.primary)) {\r\n writeSettingsFile(candidates.primary, legacySettings)\r\n }\r\n } catch (error) {\r\n logError(error)\r\n }\r\n }\r\n\r\n return { settings: legacySettings, usedPath: legacyPath }\r\n }\r\n\r\n return { settings: null, usedPath: null }\r\n}\r\n\r\nexport function saveSettingsToPrimaryAndSyncLegacy(options: {\r\n destination: SettingsDestination\r\n settings: SettingsFile\r\n projectDir?: string\r\n homeDir?: string\r\n syncLegacyIfExists?: boolean\r\n}): void {\r\n const candidates = getSettingsFileCandidates(options)\r\n if (!candidates) return\r\n\r\n writeSettingsFile(candidates.primary, options.settings)\r\n\r\n if (!options.syncLegacyIfExists) return\r\n for (const legacyPath of candidates.legacy) {\r\n if (legacyPath === candidates.primary) continue\r\n if (!existsSync(legacyPath)) continue\r\n try {\r\n writeSettingsFile(legacyPath, options.settings)\r\n } catch (error) {\r\n logError(error)\r\n }\r\n }\r\n}\r\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }