@kaitranntt/ccs 7.76.0-dev.1 → 7.76.0-dev.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.
- package/dist/web-server/usage/codex-native-usage-collector.d.ts +2 -0
- package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -1
- package/dist/web-server/usage/codex-native-usage-collector.js +99 -1
- package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,8 @@ interface CodexNativeUsageCollectorOptions {
|
|
|
5
5
|
env?: NodeJS.ProcessEnv;
|
|
6
6
|
homeDir?: string;
|
|
7
7
|
includeCliproxySessions?: boolean;
|
|
8
|
+
cacheDir?: string;
|
|
9
|
+
disableCache?: boolean;
|
|
8
10
|
}
|
|
9
11
|
export declare function scanCodexNativeUsageEntries(options?: CodexNativeUsageCollectorOptions): Promise<RawUsageEntry[]>;
|
|
10
12
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-native-usage-collector.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/codex-native-usage-collector.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"codex-native-usage-collector.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/codex-native-usage-collector.ts"],"names":[],"mappings":";;AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,UAAU,gCAAgC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA2QD,wBAAsB,2BAA2B,CAC/C,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,aAAa,EAAE,CAAC,CA+C1B"}
|
|
@@ -27,7 +27,9 @@ exports.scanCodexNativeUsageEntries = void 0;
|
|
|
27
27
|
const fs = __importStar(require("fs"));
|
|
28
28
|
const path = __importStar(require("path"));
|
|
29
29
|
const readline = __importStar(require("readline"));
|
|
30
|
+
const config_manager_1 = require("../../utils/config-manager");
|
|
30
31
|
const codex_dashboard_service_1 = require("../services/codex-dashboard-service");
|
|
32
|
+
const CODEX_NATIVE_USAGE_CACHE_VERSION = 1;
|
|
31
33
|
function isCliProxyBackedProvider(value) {
|
|
32
34
|
return value === 'cliproxy' || value === 'ccs_runtime';
|
|
33
35
|
}
|
|
@@ -80,6 +82,72 @@ async function collectRolloutFiles(dir) {
|
|
|
80
82
|
}
|
|
81
83
|
return files.sort();
|
|
82
84
|
}
|
|
85
|
+
function getDefaultCacheDir() {
|
|
86
|
+
return path.join((0, config_manager_1.getCcsDir)(), 'cache');
|
|
87
|
+
}
|
|
88
|
+
function getCacheFilePath(cacheDir, includeCliproxySessions) {
|
|
89
|
+
return path.join(cacheDir, includeCliproxySessions
|
|
90
|
+
? 'codex-native-usage-with-cliproxy-v1.json'
|
|
91
|
+
: 'codex-native-usage-v1.json');
|
|
92
|
+
}
|
|
93
|
+
function isCachedRolloutFile(value) {
|
|
94
|
+
if (!isObject(value))
|
|
95
|
+
return false;
|
|
96
|
+
return (typeof value.path === 'string' &&
|
|
97
|
+
typeof value.size === 'number' &&
|
|
98
|
+
typeof value.mtimeMs === 'number' &&
|
|
99
|
+
Array.isArray(value.entries));
|
|
100
|
+
}
|
|
101
|
+
function isCodexNativeUsageCache(value) {
|
|
102
|
+
if (!isObject(value))
|
|
103
|
+
return false;
|
|
104
|
+
if (value.version !== CODEX_NATIVE_USAGE_CACHE_VERSION)
|
|
105
|
+
return false;
|
|
106
|
+
if (typeof value.includeCliproxySessions !== 'boolean')
|
|
107
|
+
return false;
|
|
108
|
+
if (typeof value.generatedAt !== 'number')
|
|
109
|
+
return false;
|
|
110
|
+
if (!isObject(value.files))
|
|
111
|
+
return false;
|
|
112
|
+
return Object.values(value.files).every(isCachedRolloutFile);
|
|
113
|
+
}
|
|
114
|
+
function readUsageCache(cacheDir, includeCliproxySessions) {
|
|
115
|
+
try {
|
|
116
|
+
const cachePath = getCacheFilePath(cacheDir, includeCliproxySessions);
|
|
117
|
+
if (!fs.existsSync(cachePath))
|
|
118
|
+
return null;
|
|
119
|
+
const parsed = JSON.parse(fs.readFileSync(cachePath, 'utf8'));
|
|
120
|
+
if (!isCodexNativeUsageCache(parsed))
|
|
121
|
+
return null;
|
|
122
|
+
if (parsed.includeCliproxySessions !== includeCliproxySessions)
|
|
123
|
+
return null;
|
|
124
|
+
return parsed;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function writeUsageCache(cacheDir, cache) {
|
|
131
|
+
try {
|
|
132
|
+
fs.mkdirSync(cacheDir, { recursive: true });
|
|
133
|
+
const cachePath = getCacheFilePath(cacheDir, cache.includeCliproxySessions);
|
|
134
|
+
const tempPath = `${cachePath}.${process.pid}.tmp`;
|
|
135
|
+
fs.writeFileSync(tempPath, JSON.stringify(cache), 'utf8');
|
|
136
|
+
fs.renameSync(tempPath, cachePath);
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Best-effort only.
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function getMtimeMsFingerprint(stats) {
|
|
143
|
+
return stats.mtimeMs;
|
|
144
|
+
}
|
|
145
|
+
function hasMatchingFingerprint(cached, filePath, stats) {
|
|
146
|
+
return (!!cached &&
|
|
147
|
+
cached.path === filePath &&
|
|
148
|
+
cached.size === stats.size &&
|
|
149
|
+
cached.mtimeMs === getMtimeMsFingerprint(stats));
|
|
150
|
+
}
|
|
83
151
|
async function parseRolloutFile(filePath, includeCliproxySessions) {
|
|
84
152
|
const entries = [];
|
|
85
153
|
let sessionId = '';
|
|
@@ -162,15 +230,45 @@ async function parseRolloutFile(filePath, includeCliproxySessions) {
|
|
|
162
230
|
return entries;
|
|
163
231
|
}
|
|
164
232
|
async function scanCodexNativeUsageEntries(options = {}) {
|
|
233
|
+
const includeCliproxySessions = options.includeCliproxySessions === true;
|
|
165
234
|
const { baseDir } = (0, codex_dashboard_service_1.resolveCodexConfigPaths)({
|
|
166
235
|
env: options.env,
|
|
167
236
|
homeDir: options.homeDir,
|
|
168
237
|
});
|
|
169
238
|
const rolloutFiles = await collectRolloutFiles(path.join(baseDir, 'sessions'));
|
|
170
239
|
const entries = [];
|
|
240
|
+
if (options.disableCache === true) {
|
|
241
|
+
for (const filePath of rolloutFiles) {
|
|
242
|
+
entries.push(...(await parseRolloutFile(filePath, includeCliproxySessions)));
|
|
243
|
+
}
|
|
244
|
+
return entries;
|
|
245
|
+
}
|
|
246
|
+
const cacheDir = options.cacheDir ?? getDefaultCacheDir();
|
|
247
|
+
const previousCache = readUsageCache(cacheDir, includeCliproxySessions);
|
|
248
|
+
const nextCache = {
|
|
249
|
+
version: CODEX_NATIVE_USAGE_CACHE_VERSION,
|
|
250
|
+
includeCliproxySessions,
|
|
251
|
+
generatedAt: Date.now(),
|
|
252
|
+
files: {},
|
|
253
|
+
};
|
|
171
254
|
for (const filePath of rolloutFiles) {
|
|
172
|
-
|
|
255
|
+
const stats = await fs.promises.stat(filePath);
|
|
256
|
+
const cached = previousCache?.files[filePath];
|
|
257
|
+
if (hasMatchingFingerprint(cached, filePath, stats)) {
|
|
258
|
+
entries.push(...cached.entries);
|
|
259
|
+
nextCache.files[filePath] = cached;
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
const fileEntries = await parseRolloutFile(filePath, includeCliproxySessions);
|
|
263
|
+
entries.push(...fileEntries);
|
|
264
|
+
nextCache.files[filePath] = {
|
|
265
|
+
path: filePath,
|
|
266
|
+
size: stats.size,
|
|
267
|
+
mtimeMs: getMtimeMsFingerprint(stats),
|
|
268
|
+
entries: fileEntries,
|
|
269
|
+
};
|
|
173
270
|
}
|
|
271
|
+
writeUsageCache(cacheDir, nextCache);
|
|
174
272
|
return entries;
|
|
175
273
|
}
|
|
176
274
|
exports.scanCodexNativeUsageEntries = scanCodexNativeUsageEntries;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-native-usage-collector.js","sourceRoot":"","sources":["../../../src/web-server/usage/codex-native-usage-collector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAqC;
|
|
1
|
+
{"version":3,"file":"codex-native-usage-collector.js","sourceRoot":"","sources":["../../../src/web-server/usage/codex-native-usage-collector.ts"],"names":[],"mappings":"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"}
|