@kaitranntt/ccs 8.9.0 → 8.10.0-dev.10

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 (200) hide show
  1. package/README.md +14 -3
  2. package/dist/cliproxy/accounts/drain-order.d.ts +9 -1
  3. package/dist/cliproxy/accounts/drain-order.d.ts.map +1 -1
  4. package/dist/cliproxy/accounts/drain-order.js +15 -1
  5. package/dist/cliproxy/accounts/drain-order.js.map +1 -1
  6. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -1
  7. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +10 -8
  8. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -1
  9. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +11 -1
  10. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -1
  11. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +61 -21
  12. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -1
  13. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +1 -1
  14. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -1
  15. package/dist/cliproxy/ai-providers/model-id-normalizer.js +5 -1
  16. package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -1
  17. package/dist/cliproxy/binary/install-lifecycle-lock.d.ts +2 -0
  18. package/dist/cliproxy/binary/install-lifecycle-lock.d.ts.map +1 -0
  19. package/dist/cliproxy/binary/install-lifecycle-lock.js +63 -0
  20. package/dist/cliproxy/binary/install-lifecycle-lock.js.map +1 -0
  21. package/dist/cliproxy/binary/installer.d.ts +13 -1
  22. package/dist/cliproxy/binary/installer.d.ts.map +1 -1
  23. package/dist/cliproxy/binary/installer.js +81 -42
  24. package/dist/cliproxy/binary/installer.js.map +1 -1
  25. package/dist/cliproxy/binary/lifecycle.d.ts +6 -1
  26. package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
  27. package/dist/cliproxy/binary/lifecycle.js +13 -10
  28. package/dist/cliproxy/binary/lifecycle.js.map +1 -1
  29. package/dist/cliproxy/binary/platform-detector.d.ts.map +1 -1
  30. package/dist/cliproxy/binary/platform-detector.js +5 -4
  31. package/dist/cliproxy/binary/platform-detector.js.map +1 -1
  32. package/dist/cliproxy/binary/version-checker.d.ts +2 -0
  33. package/dist/cliproxy/binary/version-checker.d.ts.map +1 -1
  34. package/dist/cliproxy/binary/version-checker.js +5 -1
  35. package/dist/cliproxy/binary/version-checker.js.map +1 -1
  36. package/dist/cliproxy/binary-manager.d.ts +2 -0
  37. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  38. package/dist/cliproxy/binary-manager.js +31 -29
  39. package/dist/cliproxy/binary-manager.js.map +1 -1
  40. package/dist/cliproxy/config/extended-context-config.d.ts.map +1 -1
  41. package/dist/cliproxy/config/extended-context-config.js +38 -1
  42. package/dist/cliproxy/config/extended-context-config.js.map +1 -1
  43. package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
  44. package/dist/cliproxy/config/thinking-config.js +5 -5
  45. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  46. package/dist/cliproxy/executor/env-resolver.js +1 -1
  47. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  48. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  49. package/dist/cliproxy/executor/index.js +2 -1
  50. package/dist/cliproxy/executor/index.js.map +1 -1
  51. package/dist/cliproxy/executor/launch-settings.d.ts.map +1 -1
  52. package/dist/cliproxy/executor/launch-settings.js +9 -2
  53. package/dist/cliproxy/executor/launch-settings.js.map +1 -1
  54. package/dist/cliproxy/model-catalog.d.ts +7 -1
  55. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  56. package/dist/cliproxy/model-catalog.js +140 -11
  57. package/dist/cliproxy/model-catalog.js.map +1 -1
  58. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -1
  59. package/dist/cliproxy/proxy/tool-sanitization-proxy.js +3 -1
  60. package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -1
  61. package/dist/cliproxy/routing/routing-strategy.d.ts +4 -5
  62. package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -1
  63. package/dist/cliproxy/routing/routing-strategy.js +18 -13
  64. package/dist/cliproxy/routing/routing-strategy.js.map +1 -1
  65. package/dist/cliproxy/services/binary-service.d.ts.map +1 -1
  66. package/dist/cliproxy/services/binary-service.js +24 -20
  67. package/dist/cliproxy/services/binary-service.js.map +1 -1
  68. package/dist/cliproxy/services/catalog-cache.d.ts.map +1 -1
  69. package/dist/cliproxy/services/catalog-cache.js +2 -0
  70. package/dist/cliproxy/services/catalog-cache.js.map +1 -1
  71. package/dist/cliproxy/types/binary-types.d.ts +1 -0
  72. package/dist/cliproxy/types/binary-types.d.ts.map +1 -1
  73. package/dist/cliproxy/types/config-types.d.ts +3 -0
  74. package/dist/cliproxy/types/config-types.d.ts.map +1 -1
  75. package/dist/commands/cliproxy/order-subcommand.d.ts.map +1 -1
  76. package/dist/commands/cliproxy/order-subcommand.js +21 -0
  77. package/dist/commands/cliproxy/order-subcommand.js.map +1 -1
  78. package/dist/commands/cliproxy/quota-subcommand/format-helpers.js +1 -1
  79. package/dist/commands/cliproxy/quota-subcommand/handlers.js +1 -1
  80. package/dist/commands/cliproxy/quota-subcommand/handlers.js.map +1 -1
  81. package/dist/commands/cliproxy/quota-subcommand/sections/claude.js +1 -1
  82. package/dist/commands/cliproxy/quota-subcommand/sections/claude.js.map +1 -1
  83. package/dist/commands/cliproxy/quota-subcommand/sections/codex.js +1 -1
  84. package/dist/commands/cliproxy/quota-subcommand/sections/codex.js.map +1 -1
  85. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.js +1 -1
  86. package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.js.map +1 -1
  87. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  88. package/dist/commands/cliproxy/variant-subcommand.js +5 -1
  89. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  90. package/dist/cursor/cursor-daemon.d.ts.map +1 -1
  91. package/dist/cursor/cursor-daemon.js +7 -4
  92. package/dist/cursor/cursor-daemon.js.map +1 -1
  93. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  94. package/dist/delegation/delegation-handler.js +12 -2
  95. package/dist/delegation/delegation-handler.js.map +1 -1
  96. package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -1
  97. package/dist/dispatcher/flows/cliproxy-flow.js +1 -0
  98. package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -1
  99. package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
  100. package/dist/dispatcher/flows/settings-flow.js +3 -1
  101. package/dist/dispatcher/flows/settings-flow.js.map +1 -1
  102. package/dist/management/shared-manager/diverged-file-adopter.d.ts.map +1 -1
  103. package/dist/management/shared-manager/diverged-file-adopter.js +106 -76
  104. package/dist/management/shared-manager/diverged-file-adopter.js.map +1 -1
  105. package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts.map +1 -1
  106. package/dist/management/shared-manager/plugin-metadata-normalizer.js +72 -21
  107. package/dist/management/shared-manager/plugin-metadata-normalizer.js.map +1 -1
  108. package/dist/shared/extended-context-utils.d.ts +17 -1
  109. package/dist/shared/extended-context-utils.d.ts.map +1 -1
  110. package/dist/shared/extended-context-utils.js +37 -3
  111. package/dist/shared/extended-context-utils.js.map +1 -1
  112. package/dist/shared/provider-preset-catalog.d.ts +3 -2
  113. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  114. package/dist/shared/provider-preset-catalog.js +19 -2
  115. package/dist/shared/provider-preset-catalog.js.map +1 -1
  116. package/dist/ui/assets/{Trans-dQ5QXCeL.js → Trans-lb7IJ7fS.js} +1 -1
  117. package/dist/ui/assets/{accounts-DMMNI7g4.js → accounts-BmdjkRdd.js} +1 -1
  118. package/dist/ui/assets/{alert-dialog-BIWuuEiP.js → alert-dialog-QI7ssXmW.js} +1 -1
  119. package/dist/ui/assets/{api-BKTghVxS.js → api-yR-jnOTk.js} +1 -1
  120. package/dist/ui/assets/{auth-section-BKDcPs0P.js → auth-section-UKobnpsa.js} +1 -1
  121. package/dist/ui/assets/{backups-section-DB1N4X1P.js → backups-section-Bje38hdS.js} +1 -1
  122. package/dist/ui/assets/{channels-dhk_rRcA.js → channels-CIcZH84-.js} +1 -1
  123. package/dist/ui/assets/{checkbox-h1pwW_6m.js → checkbox-kTCwj4DC.js} +1 -1
  124. package/dist/ui/assets/{claude-extension-WLOGl6eK.js → claude-extension-DFIM_obP.js} +1 -1
  125. package/dist/ui/assets/cliproxy-CnK8Pxlp.js +4 -0
  126. package/dist/ui/assets/{cliproxy-ai-providers-DVkAmHVF.js → cliproxy-ai-providers-CrszOINU.js} +1 -1
  127. package/dist/ui/assets/{cliproxy-control-panel-D25OT5u5.js → cliproxy-control-panel-DkZ0lSNm.js} +1 -1
  128. package/dist/ui/assets/{codex-Bqc25al7.js → codex-BhDm5zRh.js} +1 -1
  129. package/dist/ui/assets/{confirm-dialog-BnAIV9ZB.js → confirm-dialog-60zCksm4.js} +1 -1
  130. package/dist/ui/assets/{copilot-BdjZjuRs.js → copilot-DYNOTCn0.js} +1 -1
  131. package/dist/ui/assets/{cursor-DTbIQ-d7.js → cursor-Cf9xEm7_.js} +1 -1
  132. package/dist/ui/assets/{droid-DAjrpAjP.js → droid-D-hRvXnW.js} +1 -1
  133. package/dist/ui/assets/{globalenv-section-BzirfKtN.js → globalenv-section-CiMNWxaM.js} +1 -1
  134. package/dist/ui/assets/{health-CDCop1Et.js → health-SNz-VyXt.js} +1 -1
  135. package/dist/ui/assets/{index-vdkPayvk.js → index-B2-0piAo.js} +1 -1
  136. package/dist/ui/assets/{index-B4yjQknk.js → index-BFSwIiWI.js} +36 -36
  137. package/dist/ui/assets/{index-bC8F80OC.js → index-BFVDO-nS.js} +1 -1
  138. package/dist/ui/assets/{index-Dkee4NQG.js → index-CHFm1Cvg.js} +1 -1
  139. package/dist/ui/assets/{index-DMGiMF5C.js → index-D4duw9yj.js} +1 -1
  140. package/dist/ui/assets/{index-BhGdNER3.js → index-OcUP97hO.js} +1 -1
  141. package/dist/ui/assets/{index-BF4hYrQf.js → index-eT0MCNwt.js} +1 -1
  142. package/dist/ui/assets/{logs-Bb1BaiFq.js → logs-CMuCN17Z.js} +1 -1
  143. package/dist/ui/assets/{masked-input-DxWhb6sQ.js → masked-input-BwaApqdO.js} +1 -1
  144. package/dist/ui/assets/proxy-status-widget-BeAaBd0j.js +1 -0
  145. package/dist/ui/assets/{raw-json-settings-editor-panel-BeZJbsnO.js → raw-json-settings-editor-panel-QE0I9KQE.js} +1 -1
  146. package/dist/ui/assets/{searchable-select-CcXdAHJm.js → searchable-select-C_K2MS5j.js} +1 -1
  147. package/dist/ui/assets/{separator-O1g2RdCE.js → separator-D7Dw51fp.js} +1 -1
  148. package/dist/ui/assets/{shared-Ct6UqE0N.js → shared-CaL1210c.js} +1 -1
  149. package/dist/ui/assets/{table-D4ZJKsoh.js → table-BTmymca2.js} +1 -1
  150. package/dist/ui/assets/{updates-jnNBispr.js → updates-QvH7D5Ap.js} +1 -1
  151. package/dist/ui/assets/{use-accounts-DXwh5f2t.js → use-accounts-Cgk1IgNc.js} +1 -1
  152. package/dist/ui/icons/orcarouter.svg +1 -0
  153. package/dist/ui/index.html +1 -1
  154. package/dist/utils/hooks/image-analysis-backend-resolver.d.ts.map +1 -1
  155. package/dist/utils/hooks/image-analysis-backend-resolver.js +6 -0
  156. package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
  157. package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
  158. package/dist/utils/hooks/image-analysis-runtime-status.js +8 -3
  159. package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
  160. package/dist/utils/openai-compat-launch-settings.d.ts +11 -1
  161. package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -1
  162. package/dist/utils/openai-compat-launch-settings.js +55 -5
  163. package/dist/utils/openai-compat-launch-settings.js.map +1 -1
  164. package/dist/utils/package-manager-detector.d.ts.map +1 -1
  165. package/dist/utils/package-manager-detector.js +6 -2
  166. package/dist/utils/package-manager-detector.js.map +1 -1
  167. package/dist/utils/websearch/agy.d.ts +3 -1
  168. package/dist/utils/websearch/agy.d.ts.map +1 -1
  169. package/dist/utils/websearch/agy.js +33 -23
  170. package/dist/utils/websearch/agy.js.map +1 -1
  171. package/dist/utils/websearch/gemini-cli.d.ts +3 -1
  172. package/dist/utils/websearch/gemini-cli.d.ts.map +1 -1
  173. package/dist/utils/websearch/gemini-cli.js +33 -23
  174. package/dist/utils/websearch/gemini-cli.js.map +1 -1
  175. package/dist/utils/websearch/grok-cli.d.ts +3 -1
  176. package/dist/utils/websearch/grok-cli.d.ts.map +1 -1
  177. package/dist/utils/websearch/grok-cli.js +33 -23
  178. package/dist/utils/websearch/grok-cli.js.map +1 -1
  179. package/dist/utils/websearch/opencode-cli.d.ts +3 -1
  180. package/dist/utils/websearch/opencode-cli.d.ts.map +1 -1
  181. package/dist/utils/websearch/opencode-cli.js +33 -23
  182. package/dist/utils/websearch/opencode-cli.js.map +1 -1
  183. package/dist/utils/websearch/status.d.ts +4 -1
  184. package/dist/utils/websearch/status.d.ts.map +1 -1
  185. package/dist/utils/websearch/status.js +47 -25
  186. package/dist/utils/websearch/status.js.map +1 -1
  187. package/dist/web-server/model-pricing.d.ts.map +1 -1
  188. package/dist/web-server/model-pricing.js +126 -11
  189. package/dist/web-server/model-pricing.js.map +1 -1
  190. package/dist/web-server/services/cliproxy-dashboard-install-service.d.ts +5 -0
  191. package/dist/web-server/services/cliproxy-dashboard-install-service.d.ts.map +1 -1
  192. package/dist/web-server/services/cliproxy-dashboard-install-service.js +53 -36
  193. package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
  194. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  195. package/dist/web-server/usage/aggregator.js +36 -2
  196. package/dist/web-server/usage/aggregator.js.map +1 -1
  197. package/package.json +4 -1
  198. package/scripts/dev-release.sh +1 -1
  199. package/dist/ui/assets/cliproxy-CE_mZIGU.js +0 -4
  200. package/dist/ui/assets/proxy-status-widget-Dj_46CdP.js +0 -1
@@ -153,60 +153,74 @@ function validateManagedJson(filePath, content) {
153
153
  return false;
154
154
  }
155
155
  }
156
- function atomicWriteFile(targetPath, content, mode) {
157
- const tempPath = `${targetPath}.ccs-write-${process.pid}-${Date.now()}-${adoptionClaimSequence++}`;
156
+ function canonicalIdentityOf(stats) {
157
+ return { ino: stats.ino, mtimeMs: stats.mtimeMs, size: stats.size };
158
+ }
159
+ function canonicalIdentityMatches(expected, current) {
160
+ if (!expected || !current)
161
+ return expected === current;
162
+ return (expected.ino === current.ino &&
163
+ expected.mtimeMs === current.mtimeMs &&
164
+ expected.size === current.size);
165
+ }
166
+ function tempWritePath(targetPath) {
167
+ return `${targetPath}.ccs-write-${process.pid}-${Date.now()}-${adoptionClaimSequence++}`;
168
+ }
169
+ /**
170
+ * Write content into a fresh temp file and make it durable, so whatever
171
+ * publishes it under its final name publishes complete bytes.
172
+ */
173
+ function writeDurableTempFile(tempPath, content, mode) {
158
174
  let descriptor = null;
159
175
  try {
160
176
  descriptor = fs.openSync(tempPath, 'wx', mode);
161
177
  fs.fchmodSync(descriptor, mode);
162
178
  fs.writeFileSync(descriptor, content);
163
179
  fs.fsyncSync(descriptor);
164
- fs.closeSync(descriptor);
165
- descriptor = null;
166
- fs.linkSync(tempPath, targetPath);
167
- fs.unlinkSync(tempPath);
168
180
  }
169
- catch (err) {
181
+ finally {
170
182
  if (descriptor !== null) {
171
183
  fs.closeSync(descriptor);
172
184
  }
173
- try {
174
- fs.unlinkSync(tempPath);
175
- }
176
- catch {
177
- // The temp file may not have been created or may already have been renamed.
178
- }
179
- throw err;
180
185
  }
181
186
  }
182
- function publishBackupNoReplace(sourcePath, canonicalPath) {
183
- const basePath = `${canonicalPath}.bak-ccs-adopt`;
184
- const content = fs.readFileSync(sourcePath);
185
- const mode = fs.statSync(sourcePath).mode & 0o777;
186
- let sequence = 0;
187
- while (true) {
188
- const backupPath = sequence === 0 ? basePath : `${basePath}-${sequence}`;
189
- try {
190
- atomicWriteFile(backupPath, content, mode);
191
- return backupPath;
192
- }
193
- catch (err) {
194
- if (err.code !== 'EEXIST')
195
- throw err;
196
- sequence++;
197
- }
187
+ function discardTempFile(tempPath) {
188
+ try {
189
+ fs.unlinkSync(tempPath);
190
+ }
191
+ catch {
192
+ // The temp file may not have been created or may already have been renamed.
198
193
  }
199
194
  }
200
- function publishAdoptedRecoveryNoReplace(sourcePath, divergedPath) {
201
- const basePath = `${divergedPath}.ccs-adopted-recovery`;
202
- const content = fs.readFileSync(sourcePath);
203
- const mode = fs.statSync(sourcePath).mode & 0o777;
195
+ /**
196
+ * Create a file only if the path is free, writing the content atomically.
197
+ *
198
+ * link() is an atomic no-replace operation, so concurrent CCS processes
199
+ * cannot overwrite each other's sidecar artifacts.
200
+ */
201
+ function createFileNoReplace(targetPath, content, mode) {
202
+ const tempPath = tempWritePath(targetPath);
203
+ try {
204
+ writeDurableTempFile(tempPath, content, mode);
205
+ fs.linkSync(tempPath, targetPath);
206
+ fs.unlinkSync(tempPath);
207
+ }
208
+ catch (err) {
209
+ discardTempFile(tempPath);
210
+ throw err;
211
+ }
212
+ }
213
+ /**
214
+ * Publish a sidecar next to a managed file, never replacing an existing one.
215
+ * Numbered suffixes keep every concurrent writer's artifact recoverable.
216
+ */
217
+ function publishSidecarNoReplace(basePath, content, mode) {
204
218
  let sequence = 0;
205
219
  while (true) {
206
- const recoveryPath = sequence === 0 ? basePath : `${basePath}-${sequence}`;
220
+ const sidecarPath = sequence === 0 ? basePath : `${basePath}-${sequence}`;
207
221
  try {
208
- atomicWriteFile(recoveryPath, content, mode);
209
- return recoveryPath;
222
+ createFileNoReplace(sidecarPath, content, mode);
223
+ return sidecarPath;
210
224
  }
211
225
  catch (err) {
212
226
  if (err.code !== 'EEXIST')
@@ -215,22 +229,56 @@ function publishAdoptedRecoveryNoReplace(sourcePath, divergedPath) {
215
229
  }
216
230
  }
217
231
  }
218
- function restoreCanonicalClaim(claimPath, writePath, canonicalPath) {
232
+ /**
233
+ * Publish adopted content onto the canonical path by replacement.
234
+ *
235
+ * The canonical path is never emptied: a fully written temp file is renamed
236
+ * over it, so no window exists in which Claude Code or a second `ccs` can
237
+ * observe the path as missing and seed an empty placeholder there.
238
+ *
239
+ * A compare-and-swap guard runs as late as possible - after the temp file is
240
+ * durable, immediately before the rename. When the canonical inode changed
241
+ * since it was read, publication is refused rather than clobbering a writer
242
+ * that got there first; the adopted bytes stay in the sidecars the caller
243
+ * published. A pure chmod is not a content change, so the mode the inode
244
+ * carries at publication time wins.
245
+ *
246
+ * The guard is read-then-act, not atomic: POSIX offers no compare-and-swap
247
+ * rename, so a writer landing between the check and the rename is still
248
+ * overwritten. That is a narrowing, not a guarantee - the window shrinks from
249
+ * the ~100 ms the old claim-and-republish path left open to two adjacent
250
+ * syscalls, and the pre-image sidecar the caller published keeps even that
251
+ * outcome recoverable. Do not build stricter guarantees on top of it.
252
+ */
253
+ function publishCanonicalContent(writePath, content, mode, expected) {
254
+ const tempPath = tempWritePath(writePath);
219
255
  try {
220
- fs.linkSync(claimPath, writePath);
221
- fs.unlinkSync(claimPath);
256
+ writeDurableTempFile(tempPath, content, mode);
257
+ const currentStats = (0, fs_helpers_1.getLstatSync)(writePath);
258
+ const current = currentStats?.isFile() ? canonicalIdentityOf(currentStats) : null;
259
+ if (!canonicalIdentityMatches(expected, current)) {
260
+ // EEXIST is this file's marker for "a race was detected", the same code
261
+ // the reappeared-path and concurrent-replacement guards raise. It does
262
+ // not mean a no-replace link() or open('wx') hit an existing path.
263
+ throw Object.assign(new TypeError(`Canonical file changed during adoption: ${writePath}`), {
264
+ code: 'EEXIST',
265
+ });
266
+ }
267
+ const publishMode = currentStats ? currentStats.mode & 0o777 : mode;
268
+ if (publishMode !== mode) {
269
+ fs.chmodSync(tempPath, publishMode);
270
+ }
271
+ fs.renameSync(tempPath, writePath);
222
272
  }
223
273
  catch (err) {
224
- if (err.code !== 'EEXIST')
225
- throw err;
226
- publishBackupNoReplace(claimPath, canonicalPath);
227
- fs.unlinkSync(claimPath);
274
+ discardTempFile(tempPath);
275
+ throw err;
228
276
  }
229
277
  }
230
278
  function getCanonicalFile(canonicalPath) {
231
279
  const canonicalLstat = (0, fs_helpers_1.getLstatSync)(canonicalPath);
232
280
  if (!canonicalLstat) {
233
- return { content: null, mode: 0o600, mtimeMs: null, writePath: canonicalPath };
281
+ return { content: null, identity: null, mode: 0o600, mtimeMs: null, writePath: canonicalPath };
234
282
  }
235
283
  let writePath = canonicalPath;
236
284
  if (canonicalLstat.isSymbolicLink()) {
@@ -242,8 +290,12 @@ function getCanonicalFile(canonicalPath) {
242
290
  code: 'EINVAL',
243
291
  });
244
292
  }
293
+ // The identity describes the inode as of the stat above, taken before the
294
+ // content read: a write landing in between leaves us holding newer bytes
295
+ // than the identity describes, and publication fails closed.
245
296
  return {
246
- content: fs.readFileSync(canonicalPath),
297
+ content: fs.readFileSync(writePath),
298
+ identity: canonicalIdentityOf(canonicalStats),
247
299
  mode: canonicalStats.mode & 0o777,
248
300
  mtimeMs: canonicalStats.mtimeMs,
249
301
  writePath,
@@ -263,8 +315,6 @@ function adoptDivergedFileContent(divergedPath, canonicalPath) {
263
315
  console.log((0, ui_1.warn)(`Unable to claim diverged ${divergedPath}; preserving original${code ? ` (${code})` : ''}`));
264
316
  throw err;
265
317
  }
266
- let canonicalClaimPath = null;
267
- let canonicalWritePath = null;
268
318
  let divergencePreserved = false;
269
319
  try {
270
320
  const claimedStats = fs.lstatSync(claimPath);
@@ -288,42 +338,26 @@ function adoptDivergedFileContent(divergedPath, canonicalPath) {
288
338
  return 'claimed';
289
339
  }
290
340
  const canonical = getCanonicalFile(canonicalPath);
291
- let current = canonical.content;
292
- let publishMode = canonical.mode;
293
- if (current) {
294
- canonicalWritePath = canonical.writePath;
295
- canonicalClaimPath = `${canonical.writePath}.ccs-canonical-claim-${process.pid}-${Date.now()}-${adoptionClaimSequence++}`;
296
- fs.renameSync(canonical.writePath, canonicalClaimPath);
297
- const currentStats = fs.statSync(canonicalClaimPath);
298
- publishMode = currentStats.mode & 0o777;
299
- current = fs.readFileSync(canonicalClaimPath);
300
- if (diverged.equals(current)) {
301
- restoreCanonicalClaim(canonicalClaimPath, canonical.writePath, canonicalPath);
302
- canonicalClaimPath = null;
341
+ if (canonical.content) {
342
+ if (diverged.equals(canonical.content)) {
303
343
  fs.unlinkSync(claimPath);
304
344
  return 'claimed';
305
345
  }
306
- if (claimedStats.mtimeMs <= currentStats.mtimeMs) {
307
- restoreCanonicalClaim(canonicalClaimPath, canonical.writePath, canonicalPath);
308
- canonicalClaimPath = null;
346
+ if (claimedStats.mtimeMs <= (canonical.mtimeMs ?? 0)) {
309
347
  preserveClaim(claimPath, divergedPath, `Refusing stale or ambiguously-timed divergence at ${divergedPath}`);
310
348
  return 'claimed';
311
349
  }
350
+ // Publish the pre-image before the canonical file is replaced, so an
351
+ // interruption mid-publication still leaves the old content recoverable.
352
+ publishSidecarNoReplace(`${canonicalPath}.bak-ccs-adopt`, canonical.content, canonical.mode);
312
353
  }
313
- if (canonicalClaimPath) {
314
- publishBackupNoReplace(canonicalClaimPath, canonicalPath);
315
- }
316
- publishAdoptedRecoveryNoReplace(claimPath, divergedPath);
317
- atomicWriteFile(canonical.writePath, diverged, publishMode);
354
+ publishSidecarNoReplace(`${divergedPath}.ccs-adopted-recovery`, diverged, claimedStats.mode & 0o777);
355
+ publishCanonicalContent(canonical.writePath, diverged, canonical.mode, canonical.identity);
318
356
  if (!fs.readFileSync(canonicalPath).equals(diverged)) {
319
357
  throw Object.assign(new TypeError(`Canonical adoption postcondition failed: ${canonicalPath}`), {
320
358
  code: 'EAGAIN',
321
359
  });
322
360
  }
323
- if (canonicalClaimPath) {
324
- fs.unlinkSync(canonicalClaimPath);
325
- canonicalClaimPath = null;
326
- }
327
361
  if ((0, fs_helpers_1.getLstatSync)(divergedPath)) {
328
362
  preserveClaim(claimPath, divergedPath, `Concurrent replacement detected at ${divergedPath}`);
329
363
  divergencePreserved = true;
@@ -336,10 +370,6 @@ function adoptDivergedFileContent(divergedPath, canonicalPath) {
336
370
  return 'claimed';
337
371
  }
338
372
  catch (err) {
339
- if (canonicalClaimPath && canonicalWritePath) {
340
- restoreCanonicalClaim(canonicalClaimPath, canonicalWritePath, canonicalPath);
341
- canonicalClaimPath = null;
342
- }
343
373
  if (divergencePreserved) {
344
374
  throw err;
345
375
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diverged-file-adopter.js","sourceRoot":"","sources":["../../../src/management/shared-manager/diverged-file-adopter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diverged-file-adopter.js","sourceRoot":"","sources":["../../../src/management/shared-manager/diverged-file-adopter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-metadata-normalizer.d.ts","sourceRoot":"","sources":["../../../src/management/shared-manager/plugin-metadata-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAQjG;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,mBAAmB,EAC1B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAsBN;AAsID;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB7C;AAUD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,GAChB,IAAI,CA+CN;AAGD,YAAY,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"plugin-metadata-normalizer.d.ts","sourceRoot":"","sources":["../../../src/management/shared-manager/plugin-metadata-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAQjG;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,mBAAmB,EAC1B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAsBN;AAwJD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB7C;AA6BD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,GAChB,IAAI,CAgEN;AAGD,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -137,7 +137,12 @@ function buildMarketplaceRegistryContent(sourcePaths, targetConfigDir) {
137
137
  if (!isMarketplaceRegistryEntry(value)) {
138
138
  continue;
139
139
  }
140
- merged[name] = (0, plugin_path_normalizer_1.normalizePluginMetadataValue)(value, targetConfigDir).normalized;
140
+ if (isDirectorySourceMarketplace(value)) {
141
+ merged[name] = value;
142
+ }
143
+ else {
144
+ merged[name] = (0, plugin_path_normalizer_1.normalizePluginMetadataValue)(value, targetConfigDir).normalized;
145
+ }
141
146
  }
142
147
  }
143
148
  catch (err) {
@@ -150,18 +155,30 @@ function buildMarketplaceRegistryContent(sourcePaths, targetConfigDir) {
150
155
  // excluded: they lack required schema fields that Claude Code enforces.
151
156
  for (const name of Object.keys(merged)) {
152
157
  const entry = merged[name];
153
- if (!(name in discoveredEntries)) {
158
+ if (!isMarketplaceRegistryEntry(entry)) {
154
159
  delete merged[name];
160
+ continue;
155
161
  }
156
- else if (isMarketplaceRegistryEntry(entry)) {
162
+ // Directory-source marketplace takes precedence over discovered clone dirs.
163
+ // A directory-source marketplace lives at its source path and has no clone
164
+ // under plugins/marketplaces/. Even if an empty directory exists under
165
+ // plugins/marketplaces/<name>, preserve the original entry and installLocation.
166
+ if (isDirectorySourceMarketplace(entry)) {
167
+ if (fs.existsSync(entry.source.path)) {
168
+ continue;
169
+ }
170
+ // Prune stale directory source; never resurrect as a clone
171
+ delete merged[name];
172
+ continue;
173
+ }
174
+ if (name in discoveredEntries) {
157
175
  merged[name] = {
158
176
  ...entry,
159
177
  installLocation: discoveredEntries[name].installLocation,
160
178
  };
179
+ continue;
161
180
  }
162
- else {
163
- delete merged[name];
164
- }
181
+ delete merged[name];
165
182
  }
166
183
  return JSON.stringify(merged, null, 2);
167
184
  }
@@ -195,6 +212,22 @@ function isTransientMarketplaceDirectory(name) {
195
212
  function isMarketplaceRegistryEntry(value) {
196
213
  return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
197
214
  }
215
+ function isDirectorySourceMarketplace(entry) {
216
+ if (typeof entry !== 'object' || entry === null || Array.isArray(entry)) {
217
+ return false;
218
+ }
219
+ if (!('source' in entry)) {
220
+ return false;
221
+ }
222
+ const source = entry.source;
223
+ if (typeof source !== 'object' || source === null || Array.isArray(source)) {
224
+ return false;
225
+ }
226
+ if (!('source' in source) || !('path' in source)) {
227
+ return false;
228
+ }
229
+ return source.source === 'directory' && typeof source.path === 'string' && source.path.length > 0;
230
+ }
198
231
  /**
199
232
  * Write a plugin metadata file, creating parent dirs first and skipping
200
233
  * when the content is unchanged.
@@ -220,10 +253,6 @@ function reconcileLocalMarketplaceRegistry(_roots, configDir) {
220
253
  return;
221
254
  }
222
255
  const discoveredEntries = discoverMarketplaceEntries(configDir);
223
- if (Object.keys(discoveredEntries).length === 0) {
224
- (0, fs_helpers_1.removeExistingPath)(registryPath, 'file');
225
- return;
226
- }
227
256
  let parsed = {};
228
257
  try {
229
258
  const raw = JSON.parse(fs.readFileSync(registryPath, 'utf8'));
@@ -234,19 +263,41 @@ function reconcileLocalMarketplaceRegistry(_roots, configDir) {
234
263
  catch {
235
264
  parsed = {};
236
265
  }
237
- const reconciled = Object.fromEntries(Object.entries(discoveredEntries).map(([name, value]) => {
266
+ // Preserve directory-source entries whose path still exists on disk (precedence over discovered)
267
+ const directoryEntries = {};
268
+ for (const [name, entry] of Object.entries(parsed)) {
269
+ if (isMarketplaceRegistryEntry(entry) &&
270
+ isDirectorySourceMarketplace(entry) &&
271
+ fs.existsSync(entry.source.path)) {
272
+ directoryEntries[name] = entry;
273
+ }
274
+ }
275
+ if (Object.keys(discoveredEntries).length === 0 && Object.keys(directoryEntries).length === 0) {
276
+ (0, fs_helpers_1.removeExistingPath)(registryPath, 'file');
277
+ return;
278
+ }
279
+ const reconciled = {
280
+ ...directoryEntries,
281
+ };
282
+ for (const [name, value] of Object.entries(discoveredEntries)) {
283
+ if (name in directoryEntries) {
284
+ continue;
285
+ }
238
286
  const existing = parsed[name];
287
+ if (isDirectorySourceMarketplace(existing)) {
288
+ // Stale directory source must not be resurrected as a clone
289
+ continue;
290
+ }
239
291
  if (existing && typeof existing === 'object' && !Array.isArray(existing)) {
240
- return [
241
- name,
242
- {
243
- ...(0, plugin_path_normalizer_1.normalizePluginMetadataValue)(existing, configDir).normalized,
244
- installLocation: value.installLocation,
245
- },
246
- ];
247
- }
248
- return [name, value];
249
- }));
292
+ reconciled[name] = {
293
+ ...(0, plugin_path_normalizer_1.normalizePluginMetadataValue)(existing, configDir).normalized,
294
+ installLocation: value.installLocation,
295
+ };
296
+ }
297
+ else {
298
+ reconciled[name] = value;
299
+ }
300
+ }
250
301
  writePluginMetadataFile(registryPath, JSON.stringify(reconciled, null, 2), 'Synchronized marketplace registry paths');
251
302
  }
252
303
  exports.reconcileLocalMarketplaceRegistry = reconcileLocalMarketplaceRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-metadata-normalizer.js","sourceRoot":"","sources":["../../../src/management/shared-manager/plugin-metadata-normalizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-metadata-normalizer.js","sourceRoot":"","sources":["../../../src/management/shared-manager/plugin-metadata-normalizer.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,20 @@
5
5
  export declare const EXTENDED_CONTEXT_SUFFIX = "[1m]";
6
6
  export declare const ANTHROPIC_MODEL_ENV_KEYS: readonly ["ANTHROPIC_MODEL", "ANTHROPIC_DEFAULT_OPUS_MODEL", "ANTHROPIC_DEFAULT_SONNET_MODEL", "ANTHROPIC_DEFAULT_HAIKU_MODEL", "ANTHROPIC_DEFAULT_FABLE_MODEL"];
7
7
  export type AnthropicModelEnvKey = (typeof ANTHROPIC_MODEL_ENV_KEYS)[number];
8
+ /**
9
+ * Model env keys outside the Anthropic tier mappings that still carry a plain
10
+ * model id, so the extended-context preference has to cover them too. Kept
11
+ * separate from ANTHROPIC_MODEL_ENV_KEYS, which also drives routing, model-id
12
+ * normalization and profile validation.
13
+ *
14
+ * ANTHROPIC_DEFAULT_MODEL is Claude Code's lowest-priority startup model
15
+ * (after --model, ANTHROPIC_MODEL and the settings `model` field), so it needs
16
+ * the same [1m] treatment whenever a profile carries it.
17
+ */
18
+ export declare const EXTRA_EXTENDED_CONTEXT_MODEL_ENV_KEYS: readonly ["CLAUDE_CODE_SUBAGENT_MODEL", "ANTHROPIC_DEFAULT_MODEL"];
19
+ /** Every model env key the [1m] preference is applied to. */
20
+ export declare const EXTENDED_CONTEXT_MODEL_ENV_KEYS: readonly ["ANTHROPIC_MODEL", "ANTHROPIC_DEFAULT_OPUS_MODEL", "ANTHROPIC_DEFAULT_SONNET_MODEL", "ANTHROPIC_DEFAULT_HAIKU_MODEL", "ANTHROPIC_DEFAULT_FABLE_MODEL", "CLAUDE_CODE_SUBAGENT_MODEL", "ANTHROPIC_DEFAULT_MODEL"];
21
+ export type ExtendedContextModelEnvKey = (typeof EXTENDED_CONTEXT_MODEL_ENV_KEYS)[number];
8
22
  /** Check if model is a native Gemini model (auto-enabled behavior). */
9
23
  export declare function isNativeGeminiModel(modelId: string): boolean;
10
24
  /** Check if model already has [1m] suffix. */
@@ -15,13 +29,15 @@ export declare function applyExtendedContextSuffix(model: string): string;
15
29
  export declare function stripExtendedContextSuffix(model: string): string;
16
30
  /** True when key belongs to Anthropic model mapping state. */
17
31
  export declare function isAnthropicModelEnvKey(key: string): key is AnthropicModelEnvKey;
32
+ /** True when key holds a model id the [1m] preference is applied to. */
33
+ export declare function isExtendedContextModelEnvKey(key: string): key is ExtendedContextModelEnvKey;
18
34
  /** Strip transient config suffixes so model IDs can be checked against catalogs. */
19
35
  export declare function stripModelConfigurationSuffixes(modelId: string): string;
20
36
  /** Whether any saved Anthropic model mapping explicitly requests [1m]. */
21
37
  export declare function hasAnthropicExtendedContextEnabled(env: Partial<Record<string, string | undefined>>): boolean;
22
38
  /** Apply or strip [1m] across Anthropic model mappings while honoring compatibility. */
23
39
  export declare function applyExtendedContextPreferenceToAnthropicModels<T extends Record<string, string | undefined>>(env: T, enabled: boolean, options?: {
24
- supportsExtendedContext?: (modelId: string, key: AnthropicModelEnvKey) => boolean;
40
+ supportsExtendedContext?: (modelId: string, key: ExtendedContextModelEnvKey) => boolean;
25
41
  }): T;
26
42
  /** Detect Claude model identifiers, regardless of transient [1m]/(thinking) suffixes. */
27
43
  export declare function isClaudeModelId(modelId: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"extended-context-utils.d.ts","sourceRoot":"","sources":["../../src/shared/extended-context-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,wBAAwB,kKAM3B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAI7E,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,8CAA8C;AAC9C,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,yDAAyD;AACzD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,2CAA2C;AAC3C,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,oBAAoB,CAE/E;AAED,oFAAoF;AACpF,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,0EAA0E;AAC1E,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAC/C,OAAO,CAKT;AAED,wFAAwF;AACxF,wBAAgB,+CAA+C,CAC7D,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAE5C,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC;CAC9E,GACL,CAAC,CAgBH;AAED,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG5E"}
1
+ {"version":3,"file":"extended-context-utils.d.ts","sourceRoot":"","sources":["../../src/shared/extended-context-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,wBAAwB,kKAM3B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E;;;;;;;;;GASG;AACH,eAAO,MAAM,qCAAqC,oEAGxC,CAAC;AAEX,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B,2NAGlC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AAgB1F,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,8CAA8C;AAC9C,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,yDAAyD;AACzD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,2CAA2C;AAC3C,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,oBAAoB,CAE/E;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,0BAA0B,CAE3F;AAED,oFAAoF;AACpF,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,0EAA0E;AAC1E,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAC/C,OAAO,CAKT;AAED,wFAAwF;AACxF,wBAAgB,+CAA+C,CAC7D,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAE5C,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,0BAA0B,KAAK,OAAO,CAAC;CACpF,GACL,CAAC,CAgBH;AAED,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG5E"}
@@ -3,7 +3,7 @@
3
3
  * Shared extended context helpers used by CLI + UI.
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.likelySupportsClaudeExtendedContext = exports.isClaudeModelId = exports.applyExtendedContextPreferenceToAnthropicModels = exports.hasAnthropicExtendedContextEnabled = exports.stripModelConfigurationSuffixes = exports.isAnthropicModelEnvKey = exports.stripExtendedContextSuffix = exports.applyExtendedContextSuffix = exports.hasExtendedContextSuffix = exports.isNativeGeminiModel = exports.ANTHROPIC_MODEL_ENV_KEYS = exports.EXTENDED_CONTEXT_SUFFIX = void 0;
6
+ exports.likelySupportsClaudeExtendedContext = exports.isClaudeModelId = exports.applyExtendedContextPreferenceToAnthropicModels = exports.hasAnthropicExtendedContextEnabled = exports.stripModelConfigurationSuffixes = exports.isExtendedContextModelEnvKey = exports.isAnthropicModelEnvKey = exports.stripExtendedContextSuffix = exports.applyExtendedContextSuffix = exports.hasExtendedContextSuffix = exports.isNativeGeminiModel = exports.EXTENDED_CONTEXT_MODEL_ENV_KEYS = exports.EXTRA_EXTENDED_CONTEXT_MODEL_ENV_KEYS = exports.ANTHROPIC_MODEL_ENV_KEYS = exports.EXTENDED_CONTEXT_SUFFIX = void 0;
7
7
  /** Extended context suffix recognized by Claude Code. */
8
8
  exports.EXTENDED_CONTEXT_SUFFIX = '[1m]';
9
9
  exports.ANTHROPIC_MODEL_ENV_KEYS = [
@@ -13,7 +13,36 @@ exports.ANTHROPIC_MODEL_ENV_KEYS = [
13
13
  'ANTHROPIC_DEFAULT_HAIKU_MODEL',
14
14
  'ANTHROPIC_DEFAULT_FABLE_MODEL',
15
15
  ];
16
+ /**
17
+ * Model env keys outside the Anthropic tier mappings that still carry a plain
18
+ * model id, so the extended-context preference has to cover them too. Kept
19
+ * separate from ANTHROPIC_MODEL_ENV_KEYS, which also drives routing, model-id
20
+ * normalization and profile validation.
21
+ *
22
+ * ANTHROPIC_DEFAULT_MODEL is Claude Code's lowest-priority startup model
23
+ * (after --model, ANTHROPIC_MODEL and the settings `model` field), so it needs
24
+ * the same [1m] treatment whenever a profile carries it.
25
+ */
26
+ exports.EXTRA_EXTENDED_CONTEXT_MODEL_ENV_KEYS = [
27
+ 'CLAUDE_CODE_SUBAGENT_MODEL',
28
+ 'ANTHROPIC_DEFAULT_MODEL',
29
+ ];
30
+ /** Every model env key the [1m] preference is applied to. */
31
+ exports.EXTENDED_CONTEXT_MODEL_ENV_KEYS = [
32
+ ...exports.ANTHROPIC_MODEL_ENV_KEYS,
33
+ ...exports.EXTRA_EXTENDED_CONTEXT_MODEL_ENV_KEYS,
34
+ ];
16
35
  const ANTHROPIC_MODEL_ENV_KEY_SET = new Set(exports.ANTHROPIC_MODEL_ENV_KEYS);
36
+ const EXTENDED_CONTEXT_MODEL_ENV_KEY_SET = new Set(exports.EXTENDED_CONTEXT_MODEL_ENV_KEYS);
37
+ /*
38
+ * Why every key, including ANTHROPIC_DEFAULT_FABLE_MODEL, carries the suffix:
39
+ * Claude Code only grants a natively-1M model (Fable, Opus 5) its full window
40
+ * without the suffix when ANTHROPIC_BASE_URL is unset or points at
41
+ * api.anthropic.com. Behind any proxy (CLIProxy, headroom, ...) a bare id is
42
+ * clamped to 200k even when the backend advertises 1M, and the fable alias
43
+ * resolver passes the env value through untouched in that case. The [1m]
44
+ * suffix is therefore the only thing that turns the long window on for CCS.
45
+ */
17
46
  /** Check if model is a native Gemini model (auto-enabled behavior). */
18
47
  function isNativeGeminiModel(modelId) {
19
48
  return modelId.toLowerCase().startsWith('gemini-');
@@ -45,6 +74,11 @@ function isAnthropicModelEnvKey(key) {
45
74
  return ANTHROPIC_MODEL_ENV_KEY_SET.has(key);
46
75
  }
47
76
  exports.isAnthropicModelEnvKey = isAnthropicModelEnvKey;
77
+ /** True when key holds a model id the [1m] preference is applied to. */
78
+ function isExtendedContextModelEnvKey(key) {
79
+ return EXTENDED_CONTEXT_MODEL_ENV_KEY_SET.has(key);
80
+ }
81
+ exports.isExtendedContextModelEnvKey = isExtendedContextModelEnvKey;
48
82
  /** Strip transient config suffixes so model IDs can be checked against catalogs. */
49
83
  function stripModelConfigurationSuffixes(modelId) {
50
84
  return stripExtendedContextSuffix(modelId.trim()).replace(/\([^)]+\)$/, '');
@@ -52,7 +86,7 @@ function stripModelConfigurationSuffixes(modelId) {
52
86
  exports.stripModelConfigurationSuffixes = stripModelConfigurationSuffixes;
53
87
  /** Whether any saved Anthropic model mapping explicitly requests [1m]. */
54
88
  function hasAnthropicExtendedContextEnabled(env) {
55
- return exports.ANTHROPIC_MODEL_ENV_KEYS.some((key) => {
89
+ return exports.EXTENDED_CONTEXT_MODEL_ENV_KEYS.some((key) => {
56
90
  const value = env[key];
57
91
  return typeof value === 'string' && hasExtendedContextSuffix(value);
58
92
  });
@@ -61,7 +95,7 @@ exports.hasAnthropicExtendedContextEnabled = hasAnthropicExtendedContextEnabled;
61
95
  /** Apply or strip [1m] across Anthropic model mappings while honoring compatibility. */
62
96
  function applyExtendedContextPreferenceToAnthropicModels(env, enabled, options = {}) {
63
97
  const nextEnv = { ...env };
64
- for (const key of exports.ANTHROPIC_MODEL_ENV_KEYS) {
98
+ for (const key of exports.EXTENDED_CONTEXT_MODEL_ENV_KEYS) {
65
99
  const value = nextEnv[key];
66
100
  if (typeof value !== 'string' || value.trim().length === 0) {
67
101
  continue;