@kaitranntt/ccs 8.8.1-dev.7 → 8.8.1-dev.9
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/accounts/registry.d.ts.map +1 -1
- package/dist/cliproxy/accounts/registry.js +14 -16
- package/dist/cliproxy/accounts/registry.js.map +1 -1
- package/dist/cliproxy/session-tracker.d.ts.map +1 -1
- package/dist/cliproxy/session-tracker.js +4 -18
- package/dist/cliproxy/session-tracker.js.map +1 -1
- package/dist/ui/assets/{Trans-DyC1EWRP.js → Trans-dQ5QXCeL.js} +1 -1
- package/dist/ui/assets/{accounts-BSVZC-KI.js → accounts-DMMNI7g4.js} +1 -1
- package/dist/ui/assets/{alert-dialog-DWPzl8A1.js → alert-dialog-BIWuuEiP.js} +1 -1
- package/dist/ui/assets/{api-BBm5CWoY.js → api-BKTghVxS.js} +1 -1
- package/dist/ui/assets/{auth-section-DeqNK-ch.js → auth-section-BKDcPs0P.js} +1 -1
- package/dist/ui/assets/{backups-section-BolahPIa.js → backups-section-DB1N4X1P.js} +1 -1
- package/dist/ui/assets/{channels-BYX1d9Z6.js → channels-dhk_rRcA.js} +1 -1
- package/dist/ui/assets/{checkbox-CW-fpi5h.js → checkbox-h1pwW_6m.js} +1 -1
- package/dist/ui/assets/{claude-extension-BB-0P3qc.js → claude-extension-WLOGl6eK.js} +1 -1
- package/dist/ui/assets/{cliproxy-Cy7kbnPf.js → cliproxy-CE_mZIGU.js} +1 -1
- package/dist/ui/assets/{cliproxy-ai-providers-8b6Zoc8m.js → cliproxy-ai-providers-DVkAmHVF.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-BzgucDsn.js → cliproxy-control-panel-D25OT5u5.js} +1 -1
- package/dist/ui/assets/{codex-CmPoGNv4.js → codex-Bqc25al7.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-BSkHclmx.js → confirm-dialog-BnAIV9ZB.js} +1 -1
- package/dist/ui/assets/{copilot-DWBJzYLk.js → copilot-BdjZjuRs.js} +1 -1
- package/dist/ui/assets/{cursor-CtdYSwsN.js → cursor-DTbIQ-d7.js} +1 -1
- package/dist/ui/assets/{droid-DsUYUH-M.js → droid-DAjrpAjP.js} +1 -1
- package/dist/ui/assets/{globalenv-section-CbBM6KTM.js → globalenv-section-BzirfKtN.js} +1 -1
- package/dist/ui/assets/{health-CTZf4c23.js → health-CDCop1Et.js} +1 -1
- package/dist/ui/assets/index-B4yjQknk.js +56 -0
- package/dist/ui/assets/{index-5-aibNbk.js → index-BF4hYrQf.js} +1 -1
- package/dist/ui/assets/{index-C1oWisZk.js → index-BhGdNER3.js} +1 -1
- package/dist/ui/assets/{index-DVM0kiG6.js → index-DMGiMF5C.js} +1 -1
- package/dist/ui/assets/{index-BNqDON9P.js → index-Dkee4NQG.js} +1 -1
- package/dist/ui/assets/{index-DvayJyuY.js → index-bC8F80OC.js} +1 -1
- package/dist/ui/assets/{index-Dj9PXSQr.js → index-vdkPayvk.js} +1 -1
- package/dist/ui/assets/{logs-Cj17Lhu2.js → logs-Bb1BaiFq.js} +1 -1
- package/dist/ui/assets/{masked-input-B2D_ldLH.js → masked-input-DxWhb6sQ.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-BDVjB0ct.js → proxy-status-widget-Dj_46CdP.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-B1sF7zPa.js → raw-json-settings-editor-panel-BeZJbsnO.js} +1 -1
- package/dist/ui/assets/{searchable-select-DusewQep.js → searchable-select-CcXdAHJm.js} +1 -1
- package/dist/ui/assets/{separator-z6IFMfy4.js → separator-O1g2RdCE.js} +1 -1
- package/dist/ui/assets/{shared-CtOob0xF.js → shared-Ct6UqE0N.js} +1 -1
- package/dist/ui/assets/{table-D-v3gFZ8.js → table-D4ZJKsoh.js} +1 -1
- package/dist/ui/assets/{updates-B5srLiEJ.js → updates-jnNBispr.js} +1 -1
- package/dist/ui/assets/{use-accounts-BOp64lWx.js → use-accounts-DXwh5f2t.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/sync-lock-retry.d.ts +9 -0
- package/dist/utils/sync-lock-retry.d.ts.map +1 -0
- package/dist/utils/sync-lock-retry.js +107 -0
- package/dist/utils/sync-lock-retry.js.map +1 -0
- package/package.json +1 -1
- package/dist/ui/assets/index-VIQNQ3HO.js +0 -56
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.withSyncLockRetry = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const perf_hooks_1 = require("perf_hooks");
|
|
29
|
+
const lockfile = __importStar(require("proper-lockfile"));
|
|
30
|
+
const DEFAULT_STALE_MS = 10000;
|
|
31
|
+
const DEFAULT_RETRY_DELAY_MS = 200;
|
|
32
|
+
const DEFAULT_RETRY_TIMEOUT_MS = 10000;
|
|
33
|
+
function withSyncLockRetry(lockTarget, callback, options) {
|
|
34
|
+
const staleMs = options.staleMs ?? DEFAULT_STALE_MS;
|
|
35
|
+
const retryDelayMs = options.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;
|
|
36
|
+
const retryTimeoutMs = options.retryTimeoutMs ?? DEFAULT_RETRY_TIMEOUT_MS;
|
|
37
|
+
const startedAt = perf_hooks_1.performance.now();
|
|
38
|
+
let release;
|
|
39
|
+
let contendedLockPath;
|
|
40
|
+
let lastContentionError;
|
|
41
|
+
for (;;) {
|
|
42
|
+
if (contendedLockPath && fs.existsSync(contendedLockPath)) {
|
|
43
|
+
sleepBeforeRetry(startedAt, retryDelayMs, retryTimeoutMs, options.description, lastContentionError);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (contendedLockPath && perf_hooks_1.performance.now() - startedAt >= retryTimeoutMs) {
|
|
47
|
+
throw buildLockTimeoutError(options.description, retryTimeoutMs, lastContentionError);
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
release = lockfile.lockSync(lockTarget, { stale: staleMs });
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (!isLockContentionError(error)) {
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
contendedLockPath ?? (contendedLockPath = `${fs.realpathSync(lockTarget)}.lock`);
|
|
58
|
+
lastContentionError = error;
|
|
59
|
+
sleepBeforeRetry(startedAt, retryDelayMs, retryTimeoutMs, options.description, error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
return callback();
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
try {
|
|
67
|
+
release();
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Best-effort release.
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.withSyncLockRetry = withSyncLockRetry;
|
|
75
|
+
function isLockContentionError(error) {
|
|
76
|
+
const code = error?.code;
|
|
77
|
+
return code === 'ELOCKED' || code === 'ENOTACQUIRED';
|
|
78
|
+
}
|
|
79
|
+
function sleepSync(ms) {
|
|
80
|
+
if (ms <= 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
const deadline = perf_hooks_1.performance.now() + ms;
|
|
88
|
+
while (perf_hooks_1.performance.now() < deadline) {
|
|
89
|
+
// Fall back for runtimes without Atomics.wait.
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function sleepBeforeRetry(startedAt, retryDelayMs, retryTimeoutMs, description, cause) {
|
|
94
|
+
const elapsedMs = perf_hooks_1.performance.now() - startedAt;
|
|
95
|
+
if (elapsedMs >= retryTimeoutMs) {
|
|
96
|
+
throw buildLockTimeoutError(description, retryTimeoutMs, cause);
|
|
97
|
+
}
|
|
98
|
+
sleepSync(Math.min(retryDelayMs, retryTimeoutMs - elapsedMs));
|
|
99
|
+
}
|
|
100
|
+
function buildLockTimeoutError(description, timeoutMs, cause) {
|
|
101
|
+
const causeCode = cause?.code;
|
|
102
|
+
const error = new Error(`Failed to acquire ${description} after ${timeoutMs}ms; another CCS process may still be updating CLIProxy state. Wait for it to finish, then retry.`);
|
|
103
|
+
error.code = causeCode === 'ENOTACQUIRED' ? 'ENOTACQUIRED' : 'ELOCKED';
|
|
104
|
+
error.cause = cause;
|
|
105
|
+
return error;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=sync-lock-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-lock-retry.js","sourceRoot":"","sources":["../../src/utils/sync-lock-retry.ts"],"names":[],"mappings":"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"}
|