@kaitranntt/ccs 8.10.0-dev.6 → 8.10.0-dev.8
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.
- package/dist/cliproxy/model-catalog.js +3 -3
- package/dist/cliproxy/model-catalog.js.map +1 -1
- package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/settings-flow.js +3 -1
- package/dist/dispatcher/flows/settings-flow.js.map +1 -1
- package/dist/ui/assets/{Trans-CGnOhST_.js → Trans-xqk2XD39.js} +1 -1
- package/dist/ui/assets/{accounts-EzUxi_nb.js → accounts-BlRAkYAk.js} +1 -1
- package/dist/ui/assets/{alert-dialog-B8DLhTHu.js → alert-dialog-CcUeUYdg.js} +1 -1
- package/dist/ui/assets/{api-BxdwejU4.js → api-DhPNQljt.js} +1 -1
- package/dist/ui/assets/{auth-section-C3gnKH98.js → auth-section-C_iyNDq5.js} +1 -1
- package/dist/ui/assets/{backups-section-ysJe3hyz.js → backups-section-C1-oCcY5.js} +1 -1
- package/dist/ui/assets/{channels-B9NWl6fI.js → channels-Cd5H18u0.js} +1 -1
- package/dist/ui/assets/{checkbox-Dn33fxA2.js → checkbox-C8n0aFaa.js} +1 -1
- package/dist/ui/assets/{claude-extension-BLJ2-jOC.js → claude-extension-B-5VnJRC.js} +1 -1
- package/dist/ui/assets/{cliproxy-OyBpbqud.js → cliproxy-CZ8tSogS.js} +1 -1
- package/dist/ui/assets/{cliproxy-ai-providers-D_IjDRe2.js → cliproxy-ai-providers-B-hYIiu3.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-5C0_vnAr.js → cliproxy-control-panel-CfDoejqf.js} +1 -1
- package/dist/ui/assets/{codex-BaEuhJ3i.js → codex--S3Cvw0c.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-CVMiAMls.js → confirm-dialog-BwnBmAl6.js} +1 -1
- package/dist/ui/assets/{copilot-DY7q7vsg.js → copilot-DVlAGiRd.js} +1 -1
- package/dist/ui/assets/{cursor-vbfvu0qi.js → cursor-CmxPgdan.js} +1 -1
- package/dist/ui/assets/{droid-DWricpYw.js → droid-jWGgUjda.js} +1 -1
- package/dist/ui/assets/{globalenv-section-DYelCtK4.js → globalenv-section-DOYFOppa.js} +1 -1
- package/dist/ui/assets/{health-COliT3Ib.js → health-jYSmfBRk.js} +1 -1
- package/dist/ui/assets/{index-B_LdwIHs.js → index-9WkoYsht.js} +1 -1
- package/dist/ui/assets/{index-qzNip7SS.js → index-BLTGC5pm.js} +1 -1
- package/dist/ui/assets/{index-SXMyauQZ.js → index-C3B7rTv-.js} +1 -1
- package/dist/ui/assets/{index-CJxkDieI.js → index-CFkHtxyR.js} +1 -1
- package/dist/ui/assets/{index-ByKMFb5S.js → index-CHgrn1Ho.js} +1 -1
- package/dist/ui/assets/{index-BFwJElVR.js → index-Ct0P3utn.js} +2 -2
- package/dist/ui/assets/{index-C6r3KFWo.js → index-D2YFM7Y_.js} +1 -1
- package/dist/ui/assets/{logs-DbTkz4NK.js → logs-C4RaKgfS.js} +1 -1
- package/dist/ui/assets/{masked-input-DK2W99EZ.js → masked-input-iFuJsKLA.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-CY8C5RfG.js → proxy-status-widget-DNKaYr3b.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-CLflAaZG.js → raw-json-settings-editor-panel-BfyXAaAb.js} +1 -1
- package/dist/ui/assets/{searchable-select-C-kb4Qfj.js → searchable-select-CN5pxfc9.js} +1 -1
- package/dist/ui/assets/{separator-ClOIK-BS.js → separator-CQyYsq4C.js} +1 -1
- package/dist/ui/assets/{shared-BbalNvwM.js → shared-DsI6Zxot.js} +1 -1
- package/dist/ui/assets/{table-Ce6VOiHM.js → table-D89Qn9vl.js} +1 -1
- package/dist/ui/assets/{updates-DS3ZgMst.js → updates-C_sclBwV.js} +1 -1
- package/dist/ui/assets/{use-accounts-WNtTqblM.js → use-accounts-Ck9maHL2.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/openai-compat-launch-settings.d.ts +11 -1
- package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -1
- package/dist/utils/openai-compat-launch-settings.js +55 -5
- package/dist/utils/openai-compat-launch-settings.js.map +1 -1
- package/package.json +1 -1
|
@@ -27,6 +27,8 @@ exports.createOpenAICompatLaunchSettings = void 0;
|
|
|
27
27
|
const fs = __importStar(require("fs"));
|
|
28
28
|
const os = __importStar(require("os"));
|
|
29
29
|
const path = __importStar(require("path"));
|
|
30
|
+
const crypto_1 = require("crypto");
|
|
31
|
+
const config_manager_1 = require("./config-manager");
|
|
30
32
|
const shell_executor_1 = require("./shell-executor");
|
|
31
33
|
// SIBLING HELPER: src/cliproxy/executor/launch-settings.ts (prepareLaunchSettings)
|
|
32
34
|
// solves the same problem by OVERLAYING resolved routing values instead of
|
|
@@ -34,9 +36,7 @@ const shell_executor_1 = require("./shell-executor");
|
|
|
34
36
|
// delete a routing key (e.g. ANTHROPIC_API_KEY in settings-flow) and need it
|
|
35
37
|
// ABSENT from the launch settings. Do not unify without an explicit force-absent
|
|
36
38
|
// key list — see issue #1609.
|
|
37
|
-
function createOpenAICompatLaunchSettings(settingsPath, settings) {
|
|
38
|
-
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'ccs-openai-compat-settings-'));
|
|
39
|
-
fs.chmodSync(tempDir, 0o700);
|
|
39
|
+
function createOpenAICompatLaunchSettings(settingsPath, settings, options) {
|
|
40
40
|
const launchSettings = JSON.parse(JSON.stringify(settings));
|
|
41
41
|
const sanitizedEnv = Object.fromEntries(Object.entries((0, shell_executor_1.stripAnthropicRoutingEnv)({ ...(launchSettings.env ?? {}) })).filter((entry) => typeof entry[1] === 'string'));
|
|
42
42
|
if (Object.keys(sanitizedEnv).length > 0) {
|
|
@@ -45,8 +45,53 @@ function createOpenAICompatLaunchSettings(settingsPath, settings) {
|
|
|
45
45
|
else {
|
|
46
46
|
delete launchSettings.env;
|
|
47
47
|
}
|
|
48
|
+
const contentStr = JSON.stringify(launchSettings, null, 2) + '\n';
|
|
49
|
+
if (options?.durable) {
|
|
50
|
+
// Durable mode: key one private directory per canonical settings path so each
|
|
51
|
+
// profile has exactly one snapshot, atomically replaced on content updates.
|
|
52
|
+
// Do not fall back to $TMPDIR: failure here must fail the launch early rather than
|
|
53
|
+
// causing a deferred background fleet respawn crash (Issue #1734).
|
|
54
|
+
const pathHash = (0, crypto_1.createHash)('sha256')
|
|
55
|
+
.update(path.resolve(settingsPath))
|
|
56
|
+
.digest('hex')
|
|
57
|
+
.slice(0, 16);
|
|
58
|
+
const durableDir = path.join((0, config_manager_1.getCcsDir)(), 'cache', 'isolated-settings', pathHash);
|
|
59
|
+
fs.mkdirSync(durableDir, { recursive: true, mode: 0o700 });
|
|
60
|
+
fs.chmodSync(durableDir, 0o700);
|
|
61
|
+
const launchSettingsPath = path.join(durableDir, path.basename(settingsPath));
|
|
62
|
+
const tempFile = path.join(durableDir, `.${path.basename(settingsPath)}.${(0, crypto_1.randomUUID)()}.tmp`);
|
|
63
|
+
let renamed = false;
|
|
64
|
+
try {
|
|
65
|
+
fs.writeFileSync(tempFile, contentStr, {
|
|
66
|
+
encoding: 'utf8',
|
|
67
|
+
mode: 0o600,
|
|
68
|
+
flag: 'wx',
|
|
69
|
+
});
|
|
70
|
+
fs.renameSync(tempFile, launchSettingsPath);
|
|
71
|
+
renamed = true;
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
if (!renamed) {
|
|
75
|
+
try {
|
|
76
|
+
fs.unlinkSync(tempFile);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// best-effort cleanup on failure
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
settingsPath: launchSettingsPath,
|
|
85
|
+
cleanup: () => {
|
|
86
|
+
// No-op in durable mode: snapshot persists for background fleet daemon respawns.
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// Ephemeral mode (default / headless): create isolated tempdir in os.tmpdir() and purge on cleanup.
|
|
91
|
+
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'ccs-openai-compat-settings-'));
|
|
92
|
+
fs.chmodSync(tempDir, 0o700);
|
|
48
93
|
const launchSettingsPath = path.join(tempDir, path.basename(settingsPath));
|
|
49
|
-
fs.writeFileSync(launchSettingsPath,
|
|
94
|
+
fs.writeFileSync(launchSettingsPath, contentStr, {
|
|
50
95
|
encoding: 'utf8',
|
|
51
96
|
mode: 0o600,
|
|
52
97
|
});
|
|
@@ -56,7 +101,12 @@ function createOpenAICompatLaunchSettings(settingsPath, settings) {
|
|
|
56
101
|
return;
|
|
57
102
|
}
|
|
58
103
|
cleanedUp = true;
|
|
59
|
-
|
|
104
|
+
try {
|
|
105
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// best-effort cleanup
|
|
109
|
+
}
|
|
60
110
|
};
|
|
61
111
|
return {
|
|
62
112
|
settingsPath: launchSettingsPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-compat-launch-settings.js","sourceRoot":"","sources":["../../src/utils/openai-compat-launch-settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;
|
|
1
|
+
{"version":3,"file":"openai-compat-launch-settings.js","sourceRoot":"","sources":["../../src/utils/openai-compat-launch-settings.ts"],"names":[],"mappings":"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"}
|