@hailer/mcp 0.0.1
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/.claude/commands/tool-builder.md +37 -0
- package/.claude/commands/ws-pull.md +44 -0
- package/.claude/settings.json +8 -0
- package/.claude/settings.local.json +49 -0
- package/.claude/skills/activity-api/SKILL.md +96 -0
- package/.claude/skills/activity-api/references/activity-endpoints.md +845 -0
- package/.claude/skills/add-app-member-skill/SKILL.md +977 -0
- package/.claude/skills/agent-building/SKILL.md +243 -0
- package/.claude/skills/agent-building/references/architecture-patterns.md +446 -0
- package/.claude/skills/agent-building/references/code-examples.md +587 -0
- package/.claude/skills/agent-building/references/implementation-guide.md +619 -0
- package/.claude/skills/app-api/SKILL.md +219 -0
- package/.claude/skills/app-api/references/app-endpoints.md +759 -0
- package/.claude/skills/building-hailer-apps-skill/SKILL.md +548 -0
- package/.claude/skills/create-app-skill/SKILL.md +1101 -0
- package/.claude/skills/create-insight-skill/SKILL.md +1317 -0
- package/.claude/skills/get-insight-data-skill/SKILL.md +1053 -0
- package/.claude/skills/hailer-api/SKILL.md +283 -0
- package/.claude/skills/hailer-api/references/activities.md +620 -0
- package/.claude/skills/hailer-api/references/authentication.md +216 -0
- package/.claude/skills/hailer-api/references/datasets.md +437 -0
- package/.claude/skills/hailer-api/references/files.md +301 -0
- package/.claude/skills/hailer-api/references/insights.md +469 -0
- package/.claude/skills/hailer-api/references/workflows.md +720 -0
- package/.claude/skills/hailer-api/references/workspaces-users.md +445 -0
- package/.claude/skills/insight-api/SKILL.md +185 -0
- package/.claude/skills/insight-api/references/insight-endpoints.md +514 -0
- package/.claude/skills/install-workflow-skill/SKILL.md +1056 -0
- package/.claude/skills/list-apps-skill/SKILL.md +1010 -0
- package/.claude/skills/list-workflows-minimal-skill/SKILL.md +992 -0
- package/.claude/skills/local-first-skill/SKILL.md +570 -0
- package/.claude/skills/mcp-tools/SKILL.md +419 -0
- package/.claude/skills/mcp-tools/references/api-endpoints.md +499 -0
- package/.claude/skills/mcp-tools/references/data-structures.md +554 -0
- package/.claude/skills/mcp-tools/references/implementation-patterns.md +717 -0
- package/.claude/skills/preview-insight-skill/SKILL.md +1290 -0
- package/.claude/skills/publish-hailer-app-skill/SKILL.md +453 -0
- package/.claude/skills/remove-app-member-skill/SKILL.md +671 -0
- package/.claude/skills/remove-app-skill/SKILL.md +985 -0
- package/.claude/skills/remove-insight-skill/SKILL.md +1011 -0
- package/.claude/skills/remove-workflow-skill/SKILL.md +920 -0
- package/.claude/skills/scaffold-hailer-app-skill/SKILL.md +1034 -0
- package/.claude/skills/skill-testing/README.md +137 -0
- package/.claude/skills/skill-testing/SKILL.md +348 -0
- package/.claude/skills/skill-testing/references/test-patterns.md +705 -0
- package/.claude/skills/skill-testing/references/testing-guide.md +603 -0
- package/.claude/skills/skill-testing/references/validation-checklist.md +537 -0
- package/.claude/skills/tool-builder/SKILL.md +328 -0
- package/.claude/skills/update-app-skill/SKILL.md +970 -0
- package/.claude/skills/update-workflow-field-skill/SKILL.md +1098 -0
- package/.env.example +81 -0
- package/.mcp.json +13 -0
- package/README.md +297 -0
- package/dist/app.d.ts +4 -0
- package/dist/app.js +74 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +5 -0
- package/dist/client/adaptive-documentation-bot.d.ts +108 -0
- package/dist/client/adaptive-documentation-bot.js +475 -0
- package/dist/client/adaptive-documentation-types.d.ts +66 -0
- package/dist/client/adaptive-documentation-types.js +9 -0
- package/dist/client/agent-activity-bot.d.ts +51 -0
- package/dist/client/agent-activity-bot.js +166 -0
- package/dist/client/agent-tracker.d.ts +499 -0
- package/dist/client/agent-tracker.js +659 -0
- package/dist/client/description-updater.d.ts +56 -0
- package/dist/client/description-updater.js +259 -0
- package/dist/client/log-parser.d.ts +72 -0
- package/dist/client/log-parser.js +387 -0
- package/dist/client/mcp-client.d.ts +50 -0
- package/dist/client/mcp-client.js +532 -0
- package/dist/client/message-processor.d.ts +35 -0
- package/dist/client/message-processor.js +352 -0
- package/dist/client/multi-bot-manager.d.ts +24 -0
- package/dist/client/multi-bot-manager.js +74 -0
- package/dist/client/providers/anthropic-provider.d.ts +19 -0
- package/dist/client/providers/anthropic-provider.js +631 -0
- package/dist/client/providers/llm-provider.d.ts +47 -0
- package/dist/client/providers/llm-provider.js +367 -0
- package/dist/client/providers/openai-provider.d.ts +23 -0
- package/dist/client/providers/openai-provider.js +621 -0
- package/dist/client/simple-llm-caller.d.ts +19 -0
- package/dist/client/simple-llm-caller.js +100 -0
- package/dist/client/skill-generator.d.ts +81 -0
- package/dist/client/skill-generator.js +386 -0
- package/dist/client/test-adaptive-bot.d.ts +9 -0
- package/dist/client/test-adaptive-bot.js +82 -0
- package/dist/client/token-pricing.d.ts +38 -0
- package/dist/client/token-pricing.js +127 -0
- package/dist/client/token-tracker.d.ts +232 -0
- package/dist/client/token-tracker.js +457 -0
- package/dist/client/token-usage-bot.d.ts +53 -0
- package/dist/client/token-usage-bot.js +153 -0
- package/dist/client/tool-executor.d.ts +69 -0
- package/dist/client/tool-executor.js +159 -0
- package/dist/client/tool-schema-loader.d.ts +60 -0
- package/dist/client/tool-schema-loader.js +178 -0
- package/dist/client/types.d.ts +69 -0
- package/dist/client/types.js +7 -0
- package/dist/config.d.ts +162 -0
- package/dist/config.js +296 -0
- package/dist/core.d.ts +26 -0
- package/dist/core.js +147 -0
- package/dist/lib/context-manager.d.ts +111 -0
- package/dist/lib/context-manager.js +431 -0
- package/dist/lib/logger.d.ts +74 -0
- package/dist/lib/logger.js +277 -0
- package/dist/lib/materialize.d.ts +3 -0
- package/dist/lib/materialize.js +101 -0
- package/dist/lib/normalizedName.d.ts +7 -0
- package/dist/lib/normalizedName.js +48 -0
- package/dist/lib/prompt-length-manager.d.ts +81 -0
- package/dist/lib/prompt-length-manager.js +457 -0
- package/dist/lib/terminal-prompt.d.ts +9 -0
- package/dist/lib/terminal-prompt.js +108 -0
- package/dist/mcp/UserContextCache.d.ts +56 -0
- package/dist/mcp/UserContextCache.js +163 -0
- package/dist/mcp/auth.d.ts +2 -0
- package/dist/mcp/auth.js +29 -0
- package/dist/mcp/hailer-clients.d.ts +42 -0
- package/dist/mcp/hailer-clients.js +246 -0
- package/dist/mcp/signal-handler.d.ts +45 -0
- package/dist/mcp/signal-handler.js +317 -0
- package/dist/mcp/tool-registry.d.ts +100 -0
- package/dist/mcp/tool-registry.js +306 -0
- package/dist/mcp/tools/activity.d.ts +15 -0
- package/dist/mcp/tools/activity.js +955 -0
- package/dist/mcp/tools/app.d.ts +20 -0
- package/dist/mcp/tools/app.js +1488 -0
- package/dist/mcp/tools/discussion.d.ts +19 -0
- package/dist/mcp/tools/discussion.js +950 -0
- package/dist/mcp/tools/file.d.ts +15 -0
- package/dist/mcp/tools/file.js +119 -0
- package/dist/mcp/tools/insight.d.ts +17 -0
- package/dist/mcp/tools/insight.js +806 -0
- package/dist/mcp/tools/skill.d.ts +10 -0
- package/dist/mcp/tools/skill.js +279 -0
- package/dist/mcp/tools/user.d.ts +10 -0
- package/dist/mcp/tools/user.js +108 -0
- package/dist/mcp/tools/workflow-template.d.ts +19 -0
- package/dist/mcp/tools/workflow-template.js +822 -0
- package/dist/mcp/tools/workflow.d.ts +18 -0
- package/dist/mcp/tools/workflow.js +1362 -0
- package/dist/mcp/utils/api-errors.d.ts +45 -0
- package/dist/mcp/utils/api-errors.js +160 -0
- package/dist/mcp/utils/data-transformers.d.ts +102 -0
- package/dist/mcp/utils/data-transformers.js +194 -0
- package/dist/mcp/utils/file-upload.d.ts +33 -0
- package/dist/mcp/utils/file-upload.js +148 -0
- package/dist/mcp/utils/hailer-api-client.d.ts +120 -0
- package/dist/mcp/utils/hailer-api-client.js +323 -0
- package/dist/mcp/utils/index.d.ts +13 -0
- package/dist/mcp/utils/index.js +39 -0
- package/dist/mcp/utils/logger.d.ts +42 -0
- package/dist/mcp/utils/logger.js +103 -0
- package/dist/mcp/utils/types.d.ts +286 -0
- package/dist/mcp/utils/types.js +7 -0
- package/dist/mcp/workspace-cache.d.ts +42 -0
- package/dist/mcp/workspace-cache.js +97 -0
- package/dist/mcp-server.d.ts +42 -0
- package/dist/mcp-server.js +280 -0
- package/package.json +56 -0
- package/tsconfig.json +23 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Token Pricing Utility
|
|
4
|
+
*
|
|
5
|
+
* Calculates cost estimates for LLM API usage based on token consumption.
|
|
6
|
+
* Pricing data is accurate as of January 2025 and should be updated periodically.
|
|
7
|
+
*
|
|
8
|
+
* Anthropic pricing: https://www.anthropic.com/pricing
|
|
9
|
+
* OpenAI pricing: https://openai.com/pricing
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.calculateTokenCost = calculateTokenCost;
|
|
13
|
+
/**
|
|
14
|
+
* Pricing table for supported models
|
|
15
|
+
* All prices are per 1 million tokens in USD
|
|
16
|
+
*/
|
|
17
|
+
const MODEL_PRICING = {
|
|
18
|
+
// Anthropic Claude models
|
|
19
|
+
'claude-3-5-sonnet-20241022': {
|
|
20
|
+
input: 3.00,
|
|
21
|
+
output: 15.00,
|
|
22
|
+
cacheWrite: 3.75,
|
|
23
|
+
cacheRead: 0.30,
|
|
24
|
+
},
|
|
25
|
+
'claude-3-5-sonnet-20240620': {
|
|
26
|
+
input: 3.00,
|
|
27
|
+
output: 15.00,
|
|
28
|
+
cacheWrite: 3.75,
|
|
29
|
+
cacheRead: 0.30,
|
|
30
|
+
},
|
|
31
|
+
'claude-sonnet-4-20250514': {
|
|
32
|
+
input: 3.00,
|
|
33
|
+
output: 15.00,
|
|
34
|
+
cacheWrite: 3.75,
|
|
35
|
+
cacheRead: 0.30,
|
|
36
|
+
},
|
|
37
|
+
'claude-3-5-haiku-20241022': {
|
|
38
|
+
input: 0.80,
|
|
39
|
+
output: 4.00,
|
|
40
|
+
cacheWrite: 1.00,
|
|
41
|
+
cacheRead: 0.08,
|
|
42
|
+
},
|
|
43
|
+
'claude-3-opus-20240229': {
|
|
44
|
+
input: 15.00,
|
|
45
|
+
output: 75.00,
|
|
46
|
+
cacheWrite: 18.75,
|
|
47
|
+
cacheRead: 1.50,
|
|
48
|
+
},
|
|
49
|
+
// OpenAI GPT-4 models
|
|
50
|
+
'gpt-4o': {
|
|
51
|
+
input: 2.50,
|
|
52
|
+
output: 10.00,
|
|
53
|
+
},
|
|
54
|
+
'gpt-4o-mini': {
|
|
55
|
+
input: 0.15,
|
|
56
|
+
output: 0.60,
|
|
57
|
+
},
|
|
58
|
+
'gpt-4-turbo': {
|
|
59
|
+
input: 10.00,
|
|
60
|
+
output: 30.00,
|
|
61
|
+
},
|
|
62
|
+
'gpt-4': {
|
|
63
|
+
input: 30.00,
|
|
64
|
+
output: 60.00,
|
|
65
|
+
},
|
|
66
|
+
// Default fallback pricing (conservative estimate)
|
|
67
|
+
'default': {
|
|
68
|
+
input: 3.00,
|
|
69
|
+
output: 15.00,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Normalize model name to match pricing table
|
|
74
|
+
* Handles version suffixes and aliases
|
|
75
|
+
*/
|
|
76
|
+
function normalizeModelName(model) {
|
|
77
|
+
const normalized = model.toLowerCase();
|
|
78
|
+
// Check for exact match first
|
|
79
|
+
if (MODEL_PRICING[normalized]) {
|
|
80
|
+
return normalized;
|
|
81
|
+
}
|
|
82
|
+
// Check for partial matches (e.g., "claude-3-5-sonnet" matches "claude-3-5-sonnet-20241022")
|
|
83
|
+
for (const pricingModel of Object.keys(MODEL_PRICING)) {
|
|
84
|
+
if (normalized.includes(pricingModel) || pricingModel.includes(normalized)) {
|
|
85
|
+
return pricingModel;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return 'default';
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Calculate the cost of token usage for a specific model
|
|
92
|
+
*
|
|
93
|
+
* @param usage - Token usage from API response
|
|
94
|
+
* @param model - Model identifier (e.g., "claude-sonnet-4-20250514")
|
|
95
|
+
* @returns Estimated cost in USD
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const usage = {
|
|
100
|
+
* input_tokens: 24567,
|
|
101
|
+
* output_tokens: 412,
|
|
102
|
+
* cache_read_input_tokens: 22000
|
|
103
|
+
* };
|
|
104
|
+
* const cost = calculateTokenCost(usage, 'claude-sonnet-4-20250514');
|
|
105
|
+
* // Returns: 0.038
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
function calculateTokenCost(usage, model) {
|
|
109
|
+
const modelKey = normalizeModelName(model);
|
|
110
|
+
const pricing = MODEL_PRICING[modelKey];
|
|
111
|
+
// Base input/output costs
|
|
112
|
+
const inputCost = (usage.input_tokens / 1_000_000) * pricing.input;
|
|
113
|
+
const outputCost = (usage.output_tokens / 1_000_000) * pricing.output;
|
|
114
|
+
// Cache costs (if applicable)
|
|
115
|
+
let cacheWriteCost = 0;
|
|
116
|
+
let cacheReadCost = 0;
|
|
117
|
+
if (usage.cache_creation_input_tokens && pricing.cacheWrite) {
|
|
118
|
+
cacheWriteCost = (usage.cache_creation_input_tokens / 1_000_000) * pricing.cacheWrite;
|
|
119
|
+
}
|
|
120
|
+
if (usage.cache_read_input_tokens && pricing.cacheRead) {
|
|
121
|
+
cacheReadCost = (usage.cache_read_input_tokens / 1_000_000) * pricing.cacheRead;
|
|
122
|
+
}
|
|
123
|
+
const totalCost = inputCost + outputCost + cacheWriteCost + cacheReadCost;
|
|
124
|
+
// Round to 4 decimal places (tenth of a cent)
|
|
125
|
+
return Math.round(totalCost * 10000) / 10000;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=token-pricing.js.map
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Usage Tracker
|
|
3
|
+
*
|
|
4
|
+
* Dedicated tracking system for token usage and costs across all bots.
|
|
5
|
+
* Optimized for both human readability and LLM analysis.
|
|
6
|
+
*
|
|
7
|
+
* Use Cases:
|
|
8
|
+
* - Monitor per-bot token budgets
|
|
9
|
+
* - Identify expensive tools/operations
|
|
10
|
+
* - Feed data to optimizer agents
|
|
11
|
+
* - Generate cost reports
|
|
12
|
+
*/
|
|
13
|
+
import { Logger } from '../lib/logger';
|
|
14
|
+
/**
|
|
15
|
+
* Token usage event - raw data point
|
|
16
|
+
*/
|
|
17
|
+
export interface TokenUsageEvent {
|
|
18
|
+
timestamp: string;
|
|
19
|
+
botId: string;
|
|
20
|
+
botName?: string;
|
|
21
|
+
provider: string;
|
|
22
|
+
conversationId: string;
|
|
23
|
+
toolsCalled: string[];
|
|
24
|
+
tokens: {
|
|
25
|
+
input: number;
|
|
26
|
+
output: number;
|
|
27
|
+
total: number;
|
|
28
|
+
cacheCreation?: number;
|
|
29
|
+
cacheRead?: number;
|
|
30
|
+
cost: number;
|
|
31
|
+
};
|
|
32
|
+
duration: number;
|
|
33
|
+
success: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Per-bot usage statistics
|
|
37
|
+
*/
|
|
38
|
+
export interface BotUsageStats {
|
|
39
|
+
botId: string;
|
|
40
|
+
botName?: string;
|
|
41
|
+
totalCost: number;
|
|
42
|
+
totalTokens: number;
|
|
43
|
+
conversations: number;
|
|
44
|
+
averageCostPerConversation: number;
|
|
45
|
+
averageTokensPerConversation: number;
|
|
46
|
+
tools: Record<string, {
|
|
47
|
+
calls: number;
|
|
48
|
+
tokens: number;
|
|
49
|
+
cost: number;
|
|
50
|
+
}>;
|
|
51
|
+
cacheEfficiency?: {
|
|
52
|
+
totalCacheRead: number;
|
|
53
|
+
totalCacheCreation: number;
|
|
54
|
+
savingsPercent: number;
|
|
55
|
+
};
|
|
56
|
+
firstSeen: string;
|
|
57
|
+
lastSeen: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Per-tool usage statistics
|
|
61
|
+
*/
|
|
62
|
+
export interface ToolUsageStats {
|
|
63
|
+
toolName: string;
|
|
64
|
+
totalCost: number;
|
|
65
|
+
totalTokens: number;
|
|
66
|
+
calls: number;
|
|
67
|
+
averageCostPerCall: number;
|
|
68
|
+
averageTokensPerCall: number;
|
|
69
|
+
usedByBots: string[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Daily usage summary
|
|
73
|
+
*/
|
|
74
|
+
export interface DailySummary {
|
|
75
|
+
date: string;
|
|
76
|
+
cost: number;
|
|
77
|
+
tokens: number;
|
|
78
|
+
conversations: number;
|
|
79
|
+
uniqueBots: number;
|
|
80
|
+
topBot: string;
|
|
81
|
+
topTool: string;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Root token usage data structure
|
|
85
|
+
* Optimized for LLM consumption and human readability
|
|
86
|
+
*/
|
|
87
|
+
export interface TokenUsageData {
|
|
88
|
+
/** High-level summary for quick overview */
|
|
89
|
+
summary: {
|
|
90
|
+
totalCost: number;
|
|
91
|
+
totalTokens: number;
|
|
92
|
+
totalConversations: number;
|
|
93
|
+
totalBots: number;
|
|
94
|
+
totalTools: number;
|
|
95
|
+
mostExpensiveBot: string | null;
|
|
96
|
+
mostExpensiveTool: string | null;
|
|
97
|
+
period: {
|
|
98
|
+
start: string;
|
|
99
|
+
end: string;
|
|
100
|
+
};
|
|
101
|
+
lastUpdated: string;
|
|
102
|
+
};
|
|
103
|
+
/** Per-bot detailed statistics */
|
|
104
|
+
bots: Record<string, BotUsageStats>;
|
|
105
|
+
/** Per-tool detailed statistics */
|
|
106
|
+
tools: Record<string, ToolUsageStats>;
|
|
107
|
+
/** Daily rollup summaries for trend analysis */
|
|
108
|
+
dailySummaries: DailySummary[];
|
|
109
|
+
/** Recent events (last 100) for context */
|
|
110
|
+
recentEvents: TokenUsageEvent[];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Token Usage Tracker
|
|
114
|
+
*
|
|
115
|
+
* Tracks token usage across all bots and tools for cost optimization.
|
|
116
|
+
* Data is stored in a structured format for easy analysis by humans and agents.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const tracker = new TokenTracker();
|
|
121
|
+
*
|
|
122
|
+
* // Log bot activity
|
|
123
|
+
* tracker.logUsage({
|
|
124
|
+
* botId: 'bot_sales_789',
|
|
125
|
+
* botName: 'Sales Bot',
|
|
126
|
+
* provider: 'anthropic',
|
|
127
|
+
* conversationId: 'disc_123',
|
|
128
|
+
* toolsCalled: ['list_activities', 'create_activity'],
|
|
129
|
+
* tokens: {
|
|
130
|
+
* input: 24567,
|
|
131
|
+
* output: 412,
|
|
132
|
+
* total: 24979,
|
|
133
|
+
* cacheRead: 22000,
|
|
134
|
+
* cost: 0.038
|
|
135
|
+
* },
|
|
136
|
+
* duration: 2450,
|
|
137
|
+
* success: true
|
|
138
|
+
* });
|
|
139
|
+
*
|
|
140
|
+
* // Query for analyzer agent
|
|
141
|
+
* const botUsage = tracker.getBotUsage('bot_sales_789');
|
|
142
|
+
* const expensiveTools = tracker.getMostExpensiveTools(5);
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare class TokenTracker {
|
|
146
|
+
private logger;
|
|
147
|
+
private dataFilePath;
|
|
148
|
+
private data;
|
|
149
|
+
private maxRecentEvents;
|
|
150
|
+
private maxDailySummaries;
|
|
151
|
+
constructor(logger?: Logger, logDir?: string);
|
|
152
|
+
/**
|
|
153
|
+
* Load existing data or initialize new structure
|
|
154
|
+
*/
|
|
155
|
+
private loadData;
|
|
156
|
+
/**
|
|
157
|
+
* Save data to disk
|
|
158
|
+
*/
|
|
159
|
+
private saveData;
|
|
160
|
+
/**
|
|
161
|
+
* Log a token usage event from a bot interaction
|
|
162
|
+
*/
|
|
163
|
+
logUsage(event: Omit<TokenUsageEvent, 'timestamp'>): void;
|
|
164
|
+
/**
|
|
165
|
+
* Update per-bot statistics
|
|
166
|
+
*/
|
|
167
|
+
private updateBotStats;
|
|
168
|
+
/**
|
|
169
|
+
* Update per-tool statistics
|
|
170
|
+
*/
|
|
171
|
+
private updateToolStats;
|
|
172
|
+
/**
|
|
173
|
+
* Update daily summary
|
|
174
|
+
*/
|
|
175
|
+
private updateDailySummary;
|
|
176
|
+
/**
|
|
177
|
+
* Update global summary statistics
|
|
178
|
+
*/
|
|
179
|
+
private updateGlobalSummary;
|
|
180
|
+
/**
|
|
181
|
+
* Get usage statistics for a specific bot
|
|
182
|
+
* Useful for analyzer agents to investigate specific bots
|
|
183
|
+
*/
|
|
184
|
+
getBotUsage(botId: string): BotUsageStats | null;
|
|
185
|
+
/**
|
|
186
|
+
* Get usage statistics for a specific tool
|
|
187
|
+
*/
|
|
188
|
+
getToolUsage(toolName: string): ToolUsageStats | null;
|
|
189
|
+
/**
|
|
190
|
+
* Get N most expensive bots
|
|
191
|
+
*/
|
|
192
|
+
getMostExpensiveBots(limit?: number): BotUsageStats[];
|
|
193
|
+
/**
|
|
194
|
+
* Get N most expensive tools
|
|
195
|
+
*/
|
|
196
|
+
getMostExpensiveTools(limit?: number): ToolUsageStats[];
|
|
197
|
+
/**
|
|
198
|
+
* Get daily summaries for a date range
|
|
199
|
+
*/
|
|
200
|
+
getDailySummaries(startDate?: string, endDate?: string): DailySummary[];
|
|
201
|
+
/**
|
|
202
|
+
* Get full data dump for analyzer agents
|
|
203
|
+
* This gives the agent complete context
|
|
204
|
+
*/
|
|
205
|
+
getFullData(): TokenUsageData;
|
|
206
|
+
/**
|
|
207
|
+
* Get summary statistics
|
|
208
|
+
*/
|
|
209
|
+
getSummary(): {
|
|
210
|
+
totalCost: number;
|
|
211
|
+
totalTokens: number;
|
|
212
|
+
totalConversations: number;
|
|
213
|
+
totalBots: number;
|
|
214
|
+
totalTools: number;
|
|
215
|
+
mostExpensiveBot: string | null;
|
|
216
|
+
mostExpensiveTool: string | null;
|
|
217
|
+
period: {
|
|
218
|
+
start: string;
|
|
219
|
+
end: string;
|
|
220
|
+
};
|
|
221
|
+
lastUpdated: string;
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Generate human-readable report
|
|
225
|
+
*/
|
|
226
|
+
generateReport(): string;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Factory function to create a new TokenTracker instance
|
|
230
|
+
*/
|
|
231
|
+
export declare function createTokenTracker(logger?: Logger, logDir?: string): TokenTracker;
|
|
232
|
+
//# sourceMappingURL=token-tracker.d.ts.map
|