@jsonstudio/rcc 0.89.935 → 0.89.1083
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/README.md +1 -42
- package/dist/build-info.js +2 -2
- package/dist/build-info.js.map +1 -1
- package/dist/cli.js +120 -16
- package/dist/cli.js.map +1 -1
- package/dist/commands/quota-daemon.d.ts +2 -0
- package/dist/commands/quota-daemon.js +89 -0
- package/dist/commands/quota-daemon.js.map +1 -0
- package/dist/commands/token-daemon.js +1 -1
- package/dist/commands/token-daemon.js.map +1 -1
- package/dist/docs/daemon-admin-ui.html +958 -0
- package/dist/index.js +54 -4
- package/dist/index.js.map +1 -1
- package/dist/manager/modules/quota/index.d.ts +34 -0
- package/dist/manager/modules/quota/index.js +291 -0
- package/dist/manager/modules/quota/index.js.map +1 -1
- package/dist/manager/modules/token/index.js +14 -3
- package/dist/manager/modules/token/index.js.map +1 -1
- package/dist/manager/quota/provider-quota-center.d.ts +48 -0
- package/dist/manager/quota/provider-quota-center.js +239 -0
- package/dist/manager/quota/provider-quota-center.js.map +1 -0
- package/dist/manager/quota/provider-quota-store.d.ts +17 -0
- package/dist/manager/quota/provider-quota-store.js +88 -0
- package/dist/manager/quota/provider-quota-store.js.map +1 -0
- package/dist/providers/auth/token-scanner/index.js +11 -3
- package/dist/providers/auth/token-scanner/index.js.map +1 -1
- package/dist/providers/core/runtime/http-request-executor.js +24 -7
- package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
- package/dist/providers/core/runtime/http-transport-provider.js +11 -3
- package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
- package/dist/providers/core/runtime/responses-provider.js +9 -3
- package/dist/providers/core/runtime/responses-provider.js.map +1 -1
- package/dist/providers/core/utils/http-client.d.ts +1 -0
- package/dist/providers/core/utils/http-client.js +139 -4
- package/dist/providers/core/utils/http-client.js.map +1 -1
- package/dist/providers/core/utils/snapshot-writer.d.ts +12 -0
- package/dist/providers/core/utils/snapshot-writer.js +99 -18
- package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
- package/dist/providers/mock/mock-provider-runtime.d.ts +3 -0
- package/dist/providers/mock/mock-provider-runtime.js +176 -4
- package/dist/providers/mock/mock-provider-runtime.js.map +1 -1
- package/dist/server/handlers/chat-handler.js +13 -1
- package/dist/server/handlers/chat-handler.js.map +1 -1
- package/dist/server/handlers/handler-utils.js +5 -0
- package/dist/server/handlers/handler-utils.js.map +1 -1
- package/dist/server/handlers/messages-handler.js +13 -1
- package/dist/server/handlers/messages-handler.js.map +1 -1
- package/dist/server/handlers/responses-handler.js +73 -1
- package/dist/server/handlers/responses-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +174 -2
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +519 -0
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
- package/dist/server/runtime/http-server/executor-response.js +6 -0
- package/dist/server/runtime/http-server/executor-response.js.map +1 -1
- package/dist/server/runtime/http-server/index.d.ts +5 -0
- package/dist/server/runtime/http-server/index.js +205 -4
- package/dist/server/runtime/http-server/index.js.map +1 -1
- package/dist/server/runtime/http-server/middleware.d.ts +2 -0
- package/dist/server/runtime/http-server/middleware.js +63 -0
- package/dist/server/runtime/http-server/middleware.js.map +1 -1
- package/dist/server/runtime/http-server/request-executor.d.ts +2 -0
- package/dist/server/runtime/http-server/request-executor.js +57 -10
- package/dist/server/runtime/http-server/request-executor.js.map +1 -1
- package/dist/server/runtime/http-server/routes.js +38 -1
- package/dist/server/runtime/http-server/routes.js.map +1 -1
- package/dist/server/runtime/http-server/stats-manager.d.ts +55 -0
- package/dist/server/runtime/http-server/stats-manager.js +462 -4
- package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
- package/dist/server/runtime/http-server/types.d.ts +1 -0
- package/dist/token-daemon/token-daemon.d.ts +3 -1
- package/dist/token-daemon/token-daemon.js +130 -8
- package/dist/token-daemon/token-daemon.js.map +1 -1
- package/dist/token-daemon/token-utils.d.ts +1 -0
- package/dist/token-daemon/token-utils.js +9 -1
- package/dist/token-daemon/token-utils.js.map +1 -1
- package/dist/tools/semantic-replay.js +29 -0
- package/dist/tools/semantic-replay.js.map +1 -1
- package/dist/utils/snapshot-writer.d.ts +2 -0
- package/dist/utils/snapshot-writer.js +47 -4
- package/dist/utils/snapshot-writer.js.map +1 -1
- package/package.json +2 -3
- package/scripts/analyze-apply-patch-exec-failures.mjs +153 -0
- package/scripts/analyze-apply-patch-samples.mjs +242 -0
- package/scripts/analyze-codex-error-failures.mjs +24 -14
- package/scripts/classify-codex-samples.mjs +0 -35
- package/scripts/copy-modules-config.mjs +17 -1
- package/scripts/generate-snapshot-data.mjs +41 -11
- package/scripts/mock-provider/extract.mjs +254 -21
- package/scripts/mock-provider/run-regressions.mjs +97 -16
- package/scripts/quota-dryrun.mjs +124 -0
- package/scripts/tests/apply-patch-loop.mjs +5 -1
- package/scripts/tests/exec-command-loop.mjs +16 -19
- package/scripts/verify-apply-patch.mjs +335 -5
- package/scripts/verify-e2e-toolcall.mjs +49 -10
- package/scripts/toon-suite.mjs +0 -141
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
|
+
import fsSync from 'node:fs';
|
|
2
3
|
import path from 'node:path';
|
|
3
4
|
import os from 'node:os';
|
|
4
5
|
const DEFAULT_STATS_LOG_PATH = path.join(os.homedir(), '.routecodex', 'logs', 'provider-stats.jsonl');
|
|
5
6
|
export class StatsManager {
|
|
6
7
|
inflight = new Map();
|
|
7
8
|
buckets = new Map();
|
|
9
|
+
toolBuckets = new Map();
|
|
10
|
+
toolBucketsByProvider = new Map();
|
|
11
|
+
toolProviderTotals = new Map();
|
|
12
|
+
totalToolCalls = 0;
|
|
13
|
+
totalToolResponses = 0;
|
|
14
|
+
statsLogPath;
|
|
15
|
+
historicalBuckets = new Map();
|
|
16
|
+
historicalToolAggregate = new Map();
|
|
17
|
+
historicalToolByProvider = new Map();
|
|
18
|
+
historicalSnapshotCount = 0;
|
|
19
|
+
historicalSampleCount = 0;
|
|
20
|
+
historicalLoaded = false;
|
|
21
|
+
constructor() {
|
|
22
|
+
this.statsLogPath = this.resolveLogPath();
|
|
23
|
+
this.loadHistoricalFromDisk(this.statsLogPath, true);
|
|
24
|
+
}
|
|
8
25
|
recordRequestStart(requestId) {
|
|
9
26
|
if (!requestId) {
|
|
10
27
|
return;
|
|
@@ -74,6 +91,71 @@ export class StatsManager {
|
|
|
74
91
|
bucket.totalOutputTokens += usage.total_tokens ?? 0;
|
|
75
92
|
}
|
|
76
93
|
}
|
|
94
|
+
recordToolUsage(meta, payload) {
|
|
95
|
+
const providerKey = typeof meta.providerKey === 'string' && meta.providerKey.trim() ? meta.providerKey.trim() : '';
|
|
96
|
+
if (!providerKey) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const toolCalls = this.extractToolCalls(payload);
|
|
100
|
+
if (!toolCalls.length) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const now = Date.now();
|
|
104
|
+
this.totalToolCalls += toolCalls.length;
|
|
105
|
+
this.totalToolResponses += 1;
|
|
106
|
+
const providerBucketKey = this.composeBucketKey(providerKey, meta.model);
|
|
107
|
+
const providerTotals = this.toolProviderTotals.get(providerBucketKey) ?? {
|
|
108
|
+
providerKey,
|
|
109
|
+
model: meta.model,
|
|
110
|
+
totalCalls: 0,
|
|
111
|
+
totalResponses: 0
|
|
112
|
+
};
|
|
113
|
+
providerTotals.totalCalls += toolCalls.length;
|
|
114
|
+
providerTotals.totalResponses += 1;
|
|
115
|
+
this.toolProviderTotals.set(providerBucketKey, providerTotals);
|
|
116
|
+
const providerTools = this.toolBucketsByProvider.get(providerBucketKey) ?? new Map();
|
|
117
|
+
this.toolBucketsByProvider.set(providerBucketKey, providerTools);
|
|
118
|
+
const uniqueNames = new Set();
|
|
119
|
+
for (const tool of toolCalls) {
|
|
120
|
+
const name = tool.name;
|
|
121
|
+
if (!name) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
uniqueNames.add(name);
|
|
125
|
+
const globalBucket = this.toolBuckets.get(name) ?? {
|
|
126
|
+
toolName: name,
|
|
127
|
+
callCount: 0,
|
|
128
|
+
responseCount: 0,
|
|
129
|
+
firstSeenAt: now,
|
|
130
|
+
lastSeenAt: now
|
|
131
|
+
};
|
|
132
|
+
globalBucket.callCount += 1;
|
|
133
|
+
globalBucket.lastSeenAt = now;
|
|
134
|
+
this.toolBuckets.set(name, globalBucket);
|
|
135
|
+
const providerBucket = providerTools.get(name) ?? {
|
|
136
|
+
toolName: name,
|
|
137
|
+
callCount: 0,
|
|
138
|
+
responseCount: 0,
|
|
139
|
+
firstSeenAt: now,
|
|
140
|
+
lastSeenAt: now
|
|
141
|
+
};
|
|
142
|
+
providerBucket.callCount += 1;
|
|
143
|
+
providerBucket.lastSeenAt = now;
|
|
144
|
+
providerTools.set(name, providerBucket);
|
|
145
|
+
}
|
|
146
|
+
for (const name of uniqueNames) {
|
|
147
|
+
const globalBucket = this.toolBuckets.get(name);
|
|
148
|
+
if (globalBucket) {
|
|
149
|
+
globalBucket.responseCount += 1;
|
|
150
|
+
globalBucket.lastSeenAt = now;
|
|
151
|
+
}
|
|
152
|
+
const providerBucket = providerTools.get(name);
|
|
153
|
+
if (providerBucket) {
|
|
154
|
+
providerBucket.responseCount += 1;
|
|
155
|
+
providerBucket.lastSeenAt = now;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
77
159
|
snapshot(uptimeMs) {
|
|
78
160
|
const totals = Array.from(this.buckets.values()).map(bucket => ({
|
|
79
161
|
...bucket,
|
|
@@ -82,27 +164,35 @@ export class StatsManager {
|
|
|
82
164
|
averageCompletionTokens: bucket.requestCount ? bucket.totalCompletionTokens / bucket.requestCount : 0,
|
|
83
165
|
averageOutputTokens: bucket.requestCount ? bucket.totalOutputTokens / bucket.requestCount : 0
|
|
84
166
|
}));
|
|
167
|
+
const tools = this.snapshotTools();
|
|
85
168
|
return {
|
|
86
169
|
generatedAt: Date.now(),
|
|
87
170
|
uptimeMs,
|
|
88
|
-
totals
|
|
171
|
+
totals,
|
|
172
|
+
...(tools ? { tools } : {})
|
|
89
173
|
};
|
|
90
174
|
}
|
|
91
175
|
logSummary(uptimeMs) {
|
|
176
|
+
this.ensureHistoricalLoaded();
|
|
92
177
|
const snapshot = this.snapshot(uptimeMs);
|
|
93
178
|
if (!snapshot.totals.length) {
|
|
94
179
|
console.log('[Stats] No provider activity recorded');
|
|
95
180
|
return snapshot;
|
|
96
181
|
}
|
|
97
|
-
console.log('[Stats] Provider summary (uptime=%d ms
|
|
182
|
+
console.log('\n[Stats][session] Provider summary (uptime=%d ms · samples=%d)', Math.round(snapshot.uptimeMs), snapshot.totals.reduce((sum, bucket) => sum + bucket.requestCount, 0));
|
|
98
183
|
for (const bucket of snapshot.totals) {
|
|
99
|
-
|
|
184
|
+
const label = this.formatProviderLabel(bucket.providerKey, bucket.model);
|
|
185
|
+
const okCount = bucket.requestCount - bucket.errorCount;
|
|
186
|
+
console.log(' - %s | requests=%d (%d ok / %d err) | avgLatency=%s ms | avgTokens in/out/total=%s/%s/%s', label, bucket.requestCount, okCount, bucket.errorCount, bucket.averageLatencyMs.toFixed(1), bucket.averagePromptTokens.toFixed(1), bucket.averageCompletionTokens.toFixed(1), bucket.averageOutputTokens.toFixed(1));
|
|
187
|
+
console.log(' totals tokens in/out/total=%s/%s/%s', bucket.totalPromptTokens, bucket.totalCompletionTokens, bucket.totalOutputTokens);
|
|
100
188
|
}
|
|
189
|
+
this.logToolSummary(snapshot.tools);
|
|
190
|
+
this.mergeSnapshotIntoHistorical(snapshot);
|
|
101
191
|
return snapshot;
|
|
102
192
|
}
|
|
103
193
|
async persistSnapshot(snapshot, options) {
|
|
104
194
|
try {
|
|
105
|
-
const logPath = this.
|
|
195
|
+
const logPath = this.normalizeLogPath(options?.logPath);
|
|
106
196
|
await fs.mkdir(path.dirname(logPath), { recursive: true });
|
|
107
197
|
const record = {
|
|
108
198
|
...snapshot,
|
|
@@ -115,9 +205,377 @@ export class StatsManager {
|
|
|
115
205
|
console.warn('[Stats] Failed to persist provider stats snapshot', error);
|
|
116
206
|
}
|
|
117
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* 打印历史 provider-stats 聚合(内存中实时维护,异常退出前也能看到历史)。
|
|
210
|
+
*/
|
|
211
|
+
async logHistoricalSummary(options) {
|
|
212
|
+
if (options?.logPath && options.logPath.trim()) {
|
|
213
|
+
this.normalizeLogPath(options.logPath);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
this.ensureHistoricalLoaded();
|
|
217
|
+
}
|
|
218
|
+
this.logHistoricalFromMemory();
|
|
219
|
+
}
|
|
118
220
|
composeBucketKey(providerKey, model) {
|
|
119
221
|
return `${providerKey}|${model ?? '-'}`;
|
|
120
222
|
}
|
|
223
|
+
snapshotTools() {
|
|
224
|
+
if (this.totalToolCalls <= 0 && this.totalToolResponses <= 0) {
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
const byToolName = {};
|
|
228
|
+
for (const [name, bucket] of this.toolBuckets.entries()) {
|
|
229
|
+
byToolName[name] = { ...bucket };
|
|
230
|
+
}
|
|
231
|
+
const byProviderKey = {};
|
|
232
|
+
for (const [providerKey, providerTools] of this.toolBucketsByProvider.entries()) {
|
|
233
|
+
const totals = this.toolProviderTotals.get(providerKey);
|
|
234
|
+
const byTool = {};
|
|
235
|
+
for (const [name, bucket] of providerTools.entries()) {
|
|
236
|
+
byTool[name] = { ...bucket };
|
|
237
|
+
}
|
|
238
|
+
byProviderKey[providerKey] = {
|
|
239
|
+
providerKey: totals?.providerKey ?? providerKey,
|
|
240
|
+
model: totals?.model,
|
|
241
|
+
totalCalls: totals?.totalCalls ?? 0,
|
|
242
|
+
totalResponses: totals?.totalResponses ?? 0,
|
|
243
|
+
byToolName: byTool
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
return {
|
|
247
|
+
totalCalls: this.totalToolCalls,
|
|
248
|
+
totalResponses: this.totalToolResponses,
|
|
249
|
+
byToolName,
|
|
250
|
+
byProviderKey
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
logToolSummary(snapshot) {
|
|
254
|
+
if (!snapshot || snapshot.totalCalls <= 0) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
console.log('\n[Stats] Tools:');
|
|
258
|
+
console.log(' total tool calls : %d (responses with tools=%d)', snapshot.totalCalls, snapshot.totalResponses);
|
|
259
|
+
const sorted = Object.values(snapshot.byToolName)
|
|
260
|
+
.sort((a, b) => b.callCount - a.callCount)
|
|
261
|
+
.slice(0, 10);
|
|
262
|
+
if (sorted.length) {
|
|
263
|
+
console.log(' top tools:');
|
|
264
|
+
for (const bucket of sorted) {
|
|
265
|
+
console.log(' %s → calls=%d responses=%d', bucket.toolName, bucket.callCount, bucket.responseCount);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
const providerEntries = Object.values(snapshot.byProviderKey ?? {});
|
|
269
|
+
if (providerEntries.length) {
|
|
270
|
+
console.log(' by provider:');
|
|
271
|
+
const sortedProviders = providerEntries
|
|
272
|
+
.slice()
|
|
273
|
+
.sort((a, b) => b.totalCalls - a.totalCalls)
|
|
274
|
+
.slice(0, 10);
|
|
275
|
+
for (const provider of sortedProviders) {
|
|
276
|
+
const label = this.formatProviderLabel(provider.providerKey, provider.model);
|
|
277
|
+
console.log(' %s → calls=%d responses=%d', label, provider.totalCalls, provider.totalResponses);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
logHistoricalToolSummary(toolAggregate, toolByProvider) {
|
|
282
|
+
if (toolAggregate.size === 0) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
const totalCalls = Array.from(toolAggregate.values()).reduce((sum, bucket) => sum + bucket.callCount, 0);
|
|
286
|
+
const totalResponses = Array.from(toolAggregate.values()).reduce((sum, bucket) => sum + bucket.responseCount, 0);
|
|
287
|
+
console.log('\n[Stats] Historical tools summary (total calls=%d, responses with tools=%d)', totalCalls, totalResponses);
|
|
288
|
+
const sorted = Array.from(toolAggregate.values())
|
|
289
|
+
.sort((a, b) => b.callCount - a.callCount)
|
|
290
|
+
.slice(0, 10);
|
|
291
|
+
if (sorted.length) {
|
|
292
|
+
console.log(' top tools:');
|
|
293
|
+
for (const bucket of sorted) {
|
|
294
|
+
console.log(' %s → calls=%d responses=%d', bucket.toolName, bucket.callCount, bucket.responseCount);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
if (toolByProvider.size) {
|
|
298
|
+
console.log(' by provider:');
|
|
299
|
+
const entries = Array.from(toolByProvider.entries()).sort((a, b) => a[0].localeCompare(b[0]));
|
|
300
|
+
for (const [, bucket] of entries) {
|
|
301
|
+
const label = this.formatProviderLabel(bucket.providerKey, bucket.model);
|
|
302
|
+
console.log(' %s → calls=%d responses=%d', label, bucket.totalCalls, bucket.totalResponses);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
mergeToolAggregate(toolAggregate, toolByProvider, tools) {
|
|
307
|
+
for (const bucket of Object.values(tools.byToolName ?? {})) {
|
|
308
|
+
if (!bucket || !bucket.toolName) {
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
const existing = toolAggregate.get(bucket.toolName);
|
|
312
|
+
if (!existing) {
|
|
313
|
+
toolAggregate.set(bucket.toolName, { ...bucket });
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
existing.callCount += bucket.callCount;
|
|
317
|
+
existing.responseCount += bucket.responseCount;
|
|
318
|
+
if (bucket.firstSeenAt < existing.firstSeenAt) {
|
|
319
|
+
existing.firstSeenAt = bucket.firstSeenAt;
|
|
320
|
+
}
|
|
321
|
+
if (bucket.lastSeenAt > existing.lastSeenAt) {
|
|
322
|
+
existing.lastSeenAt = bucket.lastSeenAt;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
for (const providerRecord of Object.values(tools.byProviderKey ?? {})) {
|
|
327
|
+
if (!providerRecord || !providerRecord.providerKey) {
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
const providerKey = providerRecord.providerKey;
|
|
331
|
+
const bucketKey = this.composeBucketKey(providerKey, providerRecord.model);
|
|
332
|
+
const entry = toolByProvider.get(bucketKey) ?? {
|
|
333
|
+
providerKey,
|
|
334
|
+
model: providerRecord.model,
|
|
335
|
+
totalCalls: 0,
|
|
336
|
+
totalResponses: 0,
|
|
337
|
+
byToolName: new Map()
|
|
338
|
+
};
|
|
339
|
+
entry.totalCalls += providerRecord.totalCalls ?? 0;
|
|
340
|
+
entry.totalResponses += providerRecord.totalResponses ?? 0;
|
|
341
|
+
for (const toolBucket of Object.values(providerRecord.byToolName ?? {})) {
|
|
342
|
+
if (!toolBucket || !toolBucket.toolName) {
|
|
343
|
+
continue;
|
|
344
|
+
}
|
|
345
|
+
const existing = entry.byToolName.get(toolBucket.toolName);
|
|
346
|
+
if (!existing) {
|
|
347
|
+
entry.byToolName.set(toolBucket.toolName, { ...toolBucket });
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
existing.callCount += toolBucket.callCount;
|
|
351
|
+
existing.responseCount += toolBucket.responseCount;
|
|
352
|
+
if (toolBucket.firstSeenAt < existing.firstSeenAt) {
|
|
353
|
+
existing.firstSeenAt = toolBucket.firstSeenAt;
|
|
354
|
+
}
|
|
355
|
+
if (toolBucket.lastSeenAt > existing.lastSeenAt) {
|
|
356
|
+
existing.lastSeenAt = toolBucket.lastSeenAt;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
toolByProvider.set(bucketKey, entry);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
extractToolCalls(payload) {
|
|
364
|
+
if (!payload || typeof payload !== 'object') {
|
|
365
|
+
return [];
|
|
366
|
+
}
|
|
367
|
+
const record = payload;
|
|
368
|
+
const calls = [];
|
|
369
|
+
const seenIds = new Set();
|
|
370
|
+
const addCall = (nameRaw, idRaw) => {
|
|
371
|
+
const name = typeof nameRaw === 'string' && nameRaw.trim() ? nameRaw.trim() : '';
|
|
372
|
+
if (!name) {
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
const id = typeof idRaw === 'string' && idRaw.trim() ? idRaw.trim() : undefined;
|
|
376
|
+
if (id && seenIds.has(id)) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
if (id) {
|
|
380
|
+
seenIds.add(id);
|
|
381
|
+
}
|
|
382
|
+
calls.push({ name, ...(id ? { id } : {}) });
|
|
383
|
+
};
|
|
384
|
+
const toolCalls = (record.tool_calls ?? record.required_action?.submit_tool_outputs?.tool_calls);
|
|
385
|
+
if (Array.isArray(toolCalls)) {
|
|
386
|
+
for (const toolCall of toolCalls) {
|
|
387
|
+
if (!toolCall || typeof toolCall !== 'object') {
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
390
|
+
const toolRec = toolCall;
|
|
391
|
+
const fn = toolRec.function;
|
|
392
|
+
addCall(fn?.name ?? toolRec.name, toolRec.id ?? toolRec.call_id ?? toolRec.tool_call_id);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
const output = record.output;
|
|
396
|
+
if (Array.isArray(output)) {
|
|
397
|
+
for (const entry of output) {
|
|
398
|
+
if (!entry || typeof entry !== 'object') {
|
|
399
|
+
continue;
|
|
400
|
+
}
|
|
401
|
+
const node = entry;
|
|
402
|
+
const type = typeof node.type === 'string' ? node.type.trim().toLowerCase() : '';
|
|
403
|
+
if (type === 'function_call' || type === 'tool_call' || type === 'function') {
|
|
404
|
+
addCall(node.name ?? node.tool_name ?? node.function?.name, node.call_id ?? node.id);
|
|
405
|
+
}
|
|
406
|
+
if (Array.isArray(node.content)) {
|
|
407
|
+
for (const contentItem of node.content) {
|
|
408
|
+
if (!contentItem || typeof contentItem !== 'object') {
|
|
409
|
+
continue;
|
|
410
|
+
}
|
|
411
|
+
const contentNode = contentItem;
|
|
412
|
+
const contentType = typeof contentNode.type === 'string' ? contentNode.type.trim().toLowerCase() : '';
|
|
413
|
+
if (contentType === 'tool_call' || contentType === 'function_call') {
|
|
414
|
+
addCall(contentNode.name ?? contentNode.tool_name ?? contentNode.function?.name, contentNode.call_id ?? contentNode.id);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
const choices = record.choices;
|
|
421
|
+
if (Array.isArray(choices)) {
|
|
422
|
+
for (const choice of choices) {
|
|
423
|
+
if (!choice || typeof choice !== 'object') {
|
|
424
|
+
continue;
|
|
425
|
+
}
|
|
426
|
+
const message = choice.message;
|
|
427
|
+
if (!message || typeof message !== 'object') {
|
|
428
|
+
continue;
|
|
429
|
+
}
|
|
430
|
+
const toolCallsNode = message.tool_calls;
|
|
431
|
+
if (Array.isArray(toolCallsNode)) {
|
|
432
|
+
for (const toolCall of toolCallsNode) {
|
|
433
|
+
if (!toolCall || typeof toolCall !== 'object') {
|
|
434
|
+
continue;
|
|
435
|
+
}
|
|
436
|
+
const toolRec = toolCall;
|
|
437
|
+
const fn = toolRec.function;
|
|
438
|
+
addCall(fn?.name ?? toolRec.name, toolRec.id ?? toolRec.tool_call_id);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
return calls;
|
|
444
|
+
}
|
|
445
|
+
mergeSnapshotIntoHistorical(snapshot) {
|
|
446
|
+
if (!snapshot) {
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
this.historicalSnapshotCount += 1;
|
|
450
|
+
const totals = Array.isArray(snapshot.totals) ? snapshot.totals : [];
|
|
451
|
+
let snapshotSamples = 0;
|
|
452
|
+
for (const bucket of totals) {
|
|
453
|
+
const key = this.composeBucketKey(bucket.providerKey, bucket.model);
|
|
454
|
+
const existing = this.historicalBuckets.get(key);
|
|
455
|
+
const promptTokens = bucket.totalPromptTokens ?? 0;
|
|
456
|
+
const completionTokens = bucket.totalCompletionTokens ?? 0;
|
|
457
|
+
const outputTokens = bucket.totalOutputTokens ?? 0;
|
|
458
|
+
const latency = bucket.totalLatencyMs ?? 0;
|
|
459
|
+
const firstAt = typeof bucket.firstRequestAt === 'number' ? bucket.firstRequestAt : Date.now();
|
|
460
|
+
const lastAt = typeof bucket.lastRequestAt === 'number' ? bucket.lastRequestAt : Date.now();
|
|
461
|
+
if (!existing) {
|
|
462
|
+
this.historicalBuckets.set(key, {
|
|
463
|
+
providerKey: bucket.providerKey,
|
|
464
|
+
providerType: bucket.providerType,
|
|
465
|
+
model: bucket.model,
|
|
466
|
+
requestCount: bucket.requestCount ?? 0,
|
|
467
|
+
errorCount: bucket.errorCount ?? 0,
|
|
468
|
+
totalLatencyMs: latency,
|
|
469
|
+
totalPromptTokens: promptTokens,
|
|
470
|
+
totalCompletionTokens: completionTokens,
|
|
471
|
+
totalOutputTokens: outputTokens,
|
|
472
|
+
firstRequestAt: firstAt,
|
|
473
|
+
lastRequestAt: lastAt
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
existing.requestCount += bucket.requestCount ?? 0;
|
|
478
|
+
existing.errorCount += bucket.errorCount ?? 0;
|
|
479
|
+
existing.totalLatencyMs += latency;
|
|
480
|
+
existing.totalPromptTokens += promptTokens;
|
|
481
|
+
existing.totalCompletionTokens += completionTokens;
|
|
482
|
+
existing.totalOutputTokens += outputTokens;
|
|
483
|
+
if (firstAt < existing.firstRequestAt) {
|
|
484
|
+
existing.firstRequestAt = firstAt;
|
|
485
|
+
}
|
|
486
|
+
if (lastAt > existing.lastRequestAt) {
|
|
487
|
+
existing.lastRequestAt = lastAt;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
snapshotSamples += bucket.requestCount ?? 0;
|
|
491
|
+
}
|
|
492
|
+
this.historicalSampleCount += snapshotSamples;
|
|
493
|
+
if (snapshot.tools && typeof snapshot.tools === 'object') {
|
|
494
|
+
this.mergeToolAggregate(this.historicalToolAggregate, this.historicalToolByProvider, snapshot.tools);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
logHistoricalFromMemory() {
|
|
498
|
+
if (!this.historicalBuckets.size) {
|
|
499
|
+
console.log('[Stats] No historical provider activity recorded');
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
console.log('\n[Stats][historical] Provider summary (snapshots=%d · samples=%d)', this.historicalSnapshotCount, this.historicalSampleCount);
|
|
503
|
+
const sorted = Array.from(this.historicalBuckets.values()).sort((a, b) => a.providerKey.localeCompare(b.providerKey));
|
|
504
|
+
for (const bucket of sorted) {
|
|
505
|
+
const label = this.formatProviderLabel(bucket.providerKey, bucket.model);
|
|
506
|
+
const okCount = bucket.requestCount - bucket.errorCount;
|
|
507
|
+
const avgLatency = bucket.requestCount ? bucket.totalLatencyMs / bucket.requestCount : 0;
|
|
508
|
+
const avgPrompt = bucket.requestCount ? bucket.totalPromptTokens / bucket.requestCount : 0;
|
|
509
|
+
const avgCompletion = bucket.requestCount ? bucket.totalCompletionTokens / bucket.requestCount : 0;
|
|
510
|
+
const avgTotal = bucket.requestCount ? bucket.totalOutputTokens / bucket.requestCount : 0;
|
|
511
|
+
console.log(' - %s | requests=%d (%d ok / %d err) | avgLatency=%s ms | avgTokens in/out/total=%s/%s/%s', label, bucket.requestCount, okCount, bucket.errorCount, avgLatency.toFixed(1), avgPrompt.toFixed(1), avgCompletion.toFixed(1), avgTotal.toFixed(1));
|
|
512
|
+
console.log(' totals tokens in/out/total=%s/%s/%s | window=%s → %s', bucket.totalPromptTokens, bucket.totalCompletionTokens, bucket.totalOutputTokens, this.formatIso(bucket.firstRequestAt), this.formatIso(bucket.lastRequestAt));
|
|
513
|
+
}
|
|
514
|
+
this.logHistoricalToolSummary(this.historicalToolAggregate, this.historicalToolByProvider);
|
|
515
|
+
}
|
|
516
|
+
ensureHistoricalLoaded() {
|
|
517
|
+
if (this.historicalLoaded) {
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
520
|
+
this.loadHistoricalFromDisk(this.statsLogPath, true);
|
|
521
|
+
}
|
|
522
|
+
loadHistoricalFromDisk(logPath, reset) {
|
|
523
|
+
if (reset) {
|
|
524
|
+
this.historicalBuckets.clear();
|
|
525
|
+
this.historicalToolAggregate.clear();
|
|
526
|
+
this.historicalToolByProvider.clear();
|
|
527
|
+
this.historicalSnapshotCount = 0;
|
|
528
|
+
this.historicalSampleCount = 0;
|
|
529
|
+
}
|
|
530
|
+
try {
|
|
531
|
+
const raw = fsSync.readFileSync(logPath, 'utf-8');
|
|
532
|
+
const lines = raw.split(/\r?\n/).filter(Boolean);
|
|
533
|
+
for (const line of lines) {
|
|
534
|
+
try {
|
|
535
|
+
const record = JSON.parse(line);
|
|
536
|
+
this.mergeSnapshotIntoHistorical(record);
|
|
537
|
+
}
|
|
538
|
+
catch {
|
|
539
|
+
continue;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
catch {
|
|
544
|
+
// File missing or unreadable → treat as empty history.
|
|
545
|
+
}
|
|
546
|
+
this.historicalLoaded = true;
|
|
547
|
+
}
|
|
548
|
+
normalizeLogPath(override) {
|
|
549
|
+
if (override && override.trim()) {
|
|
550
|
+
const normalized = override.trim();
|
|
551
|
+
if (normalized !== this.statsLogPath) {
|
|
552
|
+
this.statsLogPath = normalized;
|
|
553
|
+
this.historicalLoaded = false;
|
|
554
|
+
this.loadHistoricalFromDisk(this.statsLogPath, true);
|
|
555
|
+
}
|
|
556
|
+
return normalized;
|
|
557
|
+
}
|
|
558
|
+
return this.statsLogPath;
|
|
559
|
+
}
|
|
560
|
+
formatProviderLabel(providerKey, model) {
|
|
561
|
+
const key = typeof providerKey === 'string' && providerKey.trim() ? providerKey.trim() : '-';
|
|
562
|
+
const modelId = typeof model === 'string' && model.trim() ? model.trim() : undefined;
|
|
563
|
+
if (modelId) {
|
|
564
|
+
return `${key} / ${modelId}`;
|
|
565
|
+
}
|
|
566
|
+
return key;
|
|
567
|
+
}
|
|
568
|
+
formatIso(value) {
|
|
569
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
|
|
570
|
+
return '-';
|
|
571
|
+
}
|
|
572
|
+
try {
|
|
573
|
+
return new Date(value).toISOString();
|
|
574
|
+
}
|
|
575
|
+
catch {
|
|
576
|
+
return '-';
|
|
577
|
+
}
|
|
578
|
+
}
|
|
121
579
|
resolveLogPath(explicit) {
|
|
122
580
|
if (explicit && explicit.trim()) {
|
|
123
581
|
return explicit.trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-manager.js","sourceRoot":"","sources":["../../../../src/server/runtime/http-server/stats-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stats-manager.js","sourceRoot":"","sources":["../../../../src/server/runtime/http-server/stats-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,9 +11,10 @@ export declare class TokenDaemon {
|
|
|
11
11
|
private timer;
|
|
12
12
|
private lastRefreshAttempt;
|
|
13
13
|
private antigravityMetadataEnsureTimestamps;
|
|
14
|
+
private sessionStatsByProvider;
|
|
14
15
|
constructor(options?: Partial<TokenDaemonOptions>);
|
|
15
16
|
start(): Promise<void>;
|
|
16
|
-
stop(): void
|
|
17
|
+
stop(): Promise<void>;
|
|
17
18
|
private tick;
|
|
18
19
|
private trySilentRefresh;
|
|
19
20
|
private runIflowAutoAuthorization;
|
|
@@ -28,4 +29,5 @@ export declare class TokenDaemon {
|
|
|
28
29
|
private logDebug;
|
|
29
30
|
private ensurePortalEnvironment;
|
|
30
31
|
private recordHistoryEvent;
|
|
32
|
+
private printSessionAndHistorySummary;
|
|
31
33
|
}
|