agent-tank 0.9.0
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/LICENSE +21 -0
- package/README.md +675 -0
- package/bin/agent-tank.js +301 -0
- package/media/www-preview.png +0 -0
- package/package.json +65 -0
- package/src/activity-monitor.js +312 -0
- package/src/agents/api-response-parser.js +255 -0
- package/src/agents/base.js +396 -0
- package/src/agents/claude.js +388 -0
- package/src/agents/codex-pty-helpers.js +226 -0
- package/src/agents/codex-rpc-helpers.js +167 -0
- package/src/agents/codex.js +383 -0
- package/src/agents/gemini.js +302 -0
- package/src/agents/keepalive-helper.js +115 -0
- package/src/agents/oauth-helper.js +210 -0
- package/src/agents/pty-output-parser.js +301 -0
- package/src/auto-refresh-manager.js +246 -0
- package/src/client-auto-refresh-helpers.js +143 -0
- package/src/client-auto-refresh.js +321 -0
- package/src/client-favicon.js +198 -0
- package/src/client-monitor.js +242 -0
- package/src/client-script.js +147 -0
- package/src/discovery.js +128 -0
- package/src/history-store.js +273 -0
- package/src/http-handler.js +182 -0
- package/src/icons.js +67 -0
- package/src/index.js +376 -0
- package/src/json-rpc-client.js +285 -0
- package/src/keepalive-manager.js +163 -0
- package/src/logger.js +213 -0
- package/src/pace-attachment.js +104 -0
- package/src/pace-evaluator.js +269 -0
- package/src/public-status.js +276 -0
- package/src/server.js +144 -0
- package/src/snapshot-metrics.js +79 -0
- package/src/status-page.css +1149 -0
- package/src/status-page.js +128 -0
- package/src/usage-formatters.js +259 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snapshot metrics extraction utilities.
|
|
3
|
+
*
|
|
4
|
+
* Extracts key metrics from agent usage data for snapshot storage.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Extract Claude metrics from usage data.
|
|
9
|
+
* @param {Object} usage - Claude usage data
|
|
10
|
+
* @returns {Object} Extracted metrics
|
|
11
|
+
*/
|
|
12
|
+
function extractClaudeMetrics(usage) {
|
|
13
|
+
return {
|
|
14
|
+
session: usage.session?.percent ?? null,
|
|
15
|
+
weeklyAll: usage.weeklyAll?.percent ?? null,
|
|
16
|
+
weeklySonnet: usage.weeklySonnet?.percent ?? null,
|
|
17
|
+
weekly: usage.weekly?.percent ?? null,
|
|
18
|
+
extraUsage: usage.extraUsage?.percent ?? null
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Extract Gemini metrics from usage data.
|
|
24
|
+
* @param {Object} usage - Gemini usage data
|
|
25
|
+
* @returns {Object|null} Extracted metrics or null
|
|
26
|
+
*/
|
|
27
|
+
function extractGeminiMetrics(usage) {
|
|
28
|
+
if (!usage.models || !Array.isArray(usage.models)) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const models = {};
|
|
32
|
+
for (const model of usage.models) {
|
|
33
|
+
models[model.model] = model.percentUsed ?? null;
|
|
34
|
+
}
|
|
35
|
+
return { models };
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Extract Codex metrics from usage data.
|
|
40
|
+
* @param {Object} usage - Codex usage data
|
|
41
|
+
* @returns {Object} Extracted metrics
|
|
42
|
+
*/
|
|
43
|
+
function extractCodexMetrics(usage) {
|
|
44
|
+
return {
|
|
45
|
+
fiveHour: usage.fiveHour?.percentUsed ?? null,
|
|
46
|
+
weekly: usage.weekly?.percentUsed ?? null,
|
|
47
|
+
modelLimits: usage.modelLimits?.map(ml => ({
|
|
48
|
+
name: ml.name,
|
|
49
|
+
fiveHour: ml.fiveHour?.percentUsed ?? null,
|
|
50
|
+
weekly: ml.weekly?.percentUsed ?? null
|
|
51
|
+
})) ?? null
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Extract key metrics from usage data for snapshot storage.
|
|
57
|
+
* @param {string} agentName - Name of the agent
|
|
58
|
+
* @param {Object} usage - Usage data object
|
|
59
|
+
* @returns {Object|null} Extracted metrics for storage
|
|
60
|
+
*/
|
|
61
|
+
function extractSnapshotMetrics(agentName, usage) {
|
|
62
|
+
switch (agentName) {
|
|
63
|
+
case 'claude':
|
|
64
|
+
return extractClaudeMetrics(usage);
|
|
65
|
+
case 'gemini':
|
|
66
|
+
return extractGeminiMetrics(usage);
|
|
67
|
+
case 'codex':
|
|
68
|
+
return extractCodexMetrics(usage);
|
|
69
|
+
default:
|
|
70
|
+
return usage;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
module.exports = {
|
|
75
|
+
extractSnapshotMetrics,
|
|
76
|
+
extractClaudeMetrics,
|
|
77
|
+
extractGeminiMetrics,
|
|
78
|
+
extractCodexMetrics
|
|
79
|
+
};
|