@agentgazer/server 0.1.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/LICENSE +191 -0
- package/README.md +86 -0
- package/dist/alerts/evaluator.d.ts +9 -0
- package/dist/alerts/evaluator.d.ts.map +1 -0
- package/dist/alerts/evaluator.js +323 -0
- package/dist/alerts/evaluator.js.map +1 -0
- package/dist/db.d.ts +121 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +425 -0
- package/dist/db.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/auth.d.ts +3 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +65 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/rate-limit.d.ts +8 -0
- package/dist/middleware/rate-limit.d.ts.map +1 -0
- package/dist/middleware/rate-limit.js +72 -0
- package/dist/middleware/rate-limit.js.map +1 -0
- package/dist/routes/agents.d.ts +3 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +149 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/alerts.d.ts +3 -0
- package/dist/routes/alerts.d.ts.map +1 -0
- package/dist/routes/alerts.js +286 -0
- package/dist/routes/alerts.js.map +1 -0
- package/dist/routes/auth.d.ts +3 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +20 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/events.d.ts +3 -0
- package/dist/routes/events.d.ts.map +1 -0
- package/dist/routes/events.js +304 -0
- package/dist/routes/events.js.map +1 -0
- package/dist/routes/health.d.ts +3 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +13 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/model-rules.d.ts +3 -0
- package/dist/routes/model-rules.d.ts.map +1 -0
- package/dist/routes/model-rules.js +71 -0
- package/dist/routes/model-rules.js.map +1 -0
- package/dist/routes/rate-limits.d.ts +3 -0
- package/dist/routes/rate-limits.d.ts.map +1 -0
- package/dist/routes/rate-limits.js +58 -0
- package/dist/routes/rate-limits.js.map +1 -0
- package/dist/routes/stats.d.ts +3 -0
- package/dist/routes/stats.d.ts.map +1 -0
- package/dist/routes/stats.js +233 -0
- package/dist/routes/stats.js.map +1 -0
- package/dist/server.d.ts +20 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +155 -0
- package/dist/server.js.map +1 -0
- package/package.json +65 -0
package/dist/db.d.ts
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
export interface DbOptions {
|
|
3
|
+
path: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function initDatabase(options: DbOptions): Database.Database;
|
|
6
|
+
export declare function upsertAgent(db: Database.Database, agentId: string, _isHeartbeat?: boolean): void;
|
|
7
|
+
export interface InsertEventRow {
|
|
8
|
+
agent_id: string;
|
|
9
|
+
event_type: string;
|
|
10
|
+
provider?: string | null;
|
|
11
|
+
model?: string | null;
|
|
12
|
+
requested_model?: string | null;
|
|
13
|
+
tokens_in?: number | null;
|
|
14
|
+
tokens_out?: number | null;
|
|
15
|
+
tokens_total?: number | null;
|
|
16
|
+
cost_usd?: number | null;
|
|
17
|
+
latency_ms?: number | null;
|
|
18
|
+
status_code?: number | null;
|
|
19
|
+
error_message?: string | null;
|
|
20
|
+
tags?: Record<string, unknown>;
|
|
21
|
+
source: string;
|
|
22
|
+
timestamp: string;
|
|
23
|
+
trace_id?: string | null;
|
|
24
|
+
span_id?: string | null;
|
|
25
|
+
parent_span_id?: string | null;
|
|
26
|
+
}
|
|
27
|
+
export declare function insertEvents(db: Database.Database, events: InsertEventRow[]): string[];
|
|
28
|
+
export interface AgentRow {
|
|
29
|
+
id: string;
|
|
30
|
+
agent_id: string;
|
|
31
|
+
name: string | null;
|
|
32
|
+
active: number;
|
|
33
|
+
budget_limit: number | null;
|
|
34
|
+
created_at: string;
|
|
35
|
+
updated_at: string;
|
|
36
|
+
total_tokens: number;
|
|
37
|
+
total_cost: number;
|
|
38
|
+
today_cost: number;
|
|
39
|
+
}
|
|
40
|
+
export declare function getAllAgents(db: Database.Database): AgentRow[];
|
|
41
|
+
export declare function getAgentByAgentId(db: Database.Database, agentId: string): AgentRow | undefined;
|
|
42
|
+
export interface EventQueryOptions {
|
|
43
|
+
agent_id: string;
|
|
44
|
+
from?: string;
|
|
45
|
+
to?: string;
|
|
46
|
+
event_type?: string;
|
|
47
|
+
provider?: string;
|
|
48
|
+
model?: string;
|
|
49
|
+
trace_id?: string;
|
|
50
|
+
search?: string;
|
|
51
|
+
limit?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface EventRow {
|
|
54
|
+
id: string;
|
|
55
|
+
agent_id: string;
|
|
56
|
+
event_type: string;
|
|
57
|
+
provider: string | null;
|
|
58
|
+
model: string | null;
|
|
59
|
+
requested_model: string | null;
|
|
60
|
+
tokens_in: number | null;
|
|
61
|
+
tokens_out: number | null;
|
|
62
|
+
tokens_total: number | null;
|
|
63
|
+
cost_usd: number | null;
|
|
64
|
+
latency_ms: number | null;
|
|
65
|
+
status_code: number | null;
|
|
66
|
+
error_message: string | null;
|
|
67
|
+
tags: string;
|
|
68
|
+
source: string;
|
|
69
|
+
timestamp: string;
|
|
70
|
+
trace_id: string | null;
|
|
71
|
+
span_id: string | null;
|
|
72
|
+
parent_span_id: string | null;
|
|
73
|
+
created_at: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Delete events and alert history older than the given number of days.
|
|
77
|
+
* Returns the number of rows deleted from each table.
|
|
78
|
+
*/
|
|
79
|
+
export declare function purgeOldData(db: Database.Database, retentionDays: number): {
|
|
80
|
+
eventsDeleted: number;
|
|
81
|
+
historyDeleted: number;
|
|
82
|
+
};
|
|
83
|
+
export declare function queryEvents(db: Database.Database, options: EventQueryOptions): EventRow[];
|
|
84
|
+
/**
|
|
85
|
+
* Calculate an agent's total spending for today (server local time).
|
|
86
|
+
*/
|
|
87
|
+
export declare function getDailySpend(db: Database.Database, agentId: string): number;
|
|
88
|
+
export interface AgentPolicy {
|
|
89
|
+
active: boolean;
|
|
90
|
+
budget_limit: number | null;
|
|
91
|
+
allowed_hours_start: number | null;
|
|
92
|
+
allowed_hours_end: number | null;
|
|
93
|
+
}
|
|
94
|
+
export declare function getAgentPolicy(db: Database.Database, agentId: string): AgentPolicy | null;
|
|
95
|
+
export declare function updateAgentPolicy(db: Database.Database, agentId: string, policy: Partial<AgentPolicy>): boolean;
|
|
96
|
+
export interface ModelRuleRow {
|
|
97
|
+
id: string;
|
|
98
|
+
agent_id: string;
|
|
99
|
+
provider: string;
|
|
100
|
+
model_override: string | null;
|
|
101
|
+
created_at: string;
|
|
102
|
+
updated_at: string;
|
|
103
|
+
}
|
|
104
|
+
export declare function getModelRulesForAgent(db: Database.Database, agentId: string): ModelRuleRow[];
|
|
105
|
+
export declare function getModelRule(db: Database.Database, agentId: string, provider: string): ModelRuleRow | undefined;
|
|
106
|
+
export declare function upsertModelRule(db: Database.Database, agentId: string, provider: string, modelOverride: string | null): ModelRuleRow;
|
|
107
|
+
export declare function deleteModelRule(db: Database.Database, agentId: string, provider: string): boolean;
|
|
108
|
+
export declare function getAgentProviders(db: Database.Database, agentId: string): string[];
|
|
109
|
+
export interface RateLimitRow {
|
|
110
|
+
agent_id: string;
|
|
111
|
+
provider: string;
|
|
112
|
+
max_requests: number;
|
|
113
|
+
window_seconds: number;
|
|
114
|
+
updated_at: string;
|
|
115
|
+
}
|
|
116
|
+
export declare function getRateLimitsForAgent(db: Database.Database, agentId: string): RateLimitRow[];
|
|
117
|
+
export declare function getAllRateLimits(db: Database.Database): RateLimitRow[];
|
|
118
|
+
export declare function getRateLimit(db: Database.Database, agentId: string, provider: string): RateLimitRow | undefined;
|
|
119
|
+
export declare function setRateLimit(db: Database.Database, agentId: string, provider: string, maxRequests: number, windowSeconds: number): RateLimitRow;
|
|
120
|
+
export declare function deleteRateLimit(db: Database.Database, agentId: string, provider: string): boolean;
|
|
121
|
+
//# sourceMappingURL=db.d.ts.map
|
package/dist/db.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/db.js
ADDED
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.initDatabase = initDatabase;
|
|
7
|
+
exports.upsertAgent = upsertAgent;
|
|
8
|
+
exports.insertEvents = insertEvents;
|
|
9
|
+
exports.getAllAgents = getAllAgents;
|
|
10
|
+
exports.getAgentByAgentId = getAgentByAgentId;
|
|
11
|
+
exports.purgeOldData = purgeOldData;
|
|
12
|
+
exports.queryEvents = queryEvents;
|
|
13
|
+
exports.getDailySpend = getDailySpend;
|
|
14
|
+
exports.getAgentPolicy = getAgentPolicy;
|
|
15
|
+
exports.updateAgentPolicy = updateAgentPolicy;
|
|
16
|
+
exports.getModelRulesForAgent = getModelRulesForAgent;
|
|
17
|
+
exports.getModelRule = getModelRule;
|
|
18
|
+
exports.upsertModelRule = upsertModelRule;
|
|
19
|
+
exports.deleteModelRule = deleteModelRule;
|
|
20
|
+
exports.getAgentProviders = getAgentProviders;
|
|
21
|
+
exports.getRateLimitsForAgent = getRateLimitsForAgent;
|
|
22
|
+
exports.getAllRateLimits = getAllRateLimits;
|
|
23
|
+
exports.getRateLimit = getRateLimit;
|
|
24
|
+
exports.setRateLimit = setRateLimit;
|
|
25
|
+
exports.deleteRateLimit = deleteRateLimit;
|
|
26
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
27
|
+
const node_crypto_1 = require("node:crypto");
|
|
28
|
+
function initDatabase(options) {
|
|
29
|
+
const db = new better_sqlite3_1.default(options.path);
|
|
30
|
+
// Enable WAL mode for better concurrent read/write performance
|
|
31
|
+
db.pragma("journal_mode = WAL");
|
|
32
|
+
db.pragma("foreign_keys = ON");
|
|
33
|
+
// Create tables if they don't exist
|
|
34
|
+
db.exec(SCHEMA);
|
|
35
|
+
// Run migrations for existing databases
|
|
36
|
+
runMigrations(db);
|
|
37
|
+
return db;
|
|
38
|
+
}
|
|
39
|
+
function runMigrations(db) {
|
|
40
|
+
// Migration: Add policy columns to agents table
|
|
41
|
+
const agentCols = db.prepare("PRAGMA table_info(agents)").all();
|
|
42
|
+
const colNames = agentCols.map((c) => c.name);
|
|
43
|
+
if (!colNames.includes("active")) {
|
|
44
|
+
db.exec("ALTER TABLE agents ADD COLUMN active INTEGER NOT NULL DEFAULT 1");
|
|
45
|
+
}
|
|
46
|
+
if (!colNames.includes("budget_limit")) {
|
|
47
|
+
db.exec("ALTER TABLE agents ADD COLUMN budget_limit REAL");
|
|
48
|
+
}
|
|
49
|
+
if (!colNames.includes("allowed_hours_start")) {
|
|
50
|
+
db.exec("ALTER TABLE agents ADD COLUMN allowed_hours_start INTEGER");
|
|
51
|
+
}
|
|
52
|
+
if (!colNames.includes("allowed_hours_end")) {
|
|
53
|
+
db.exec("ALTER TABLE agents ADD COLUMN allowed_hours_end INTEGER");
|
|
54
|
+
}
|
|
55
|
+
// Migration: Remove deprecated columns from agents table
|
|
56
|
+
if (colNames.includes("status")) {
|
|
57
|
+
db.exec("ALTER TABLE agents DROP COLUMN status");
|
|
58
|
+
}
|
|
59
|
+
if (colNames.includes("last_heartbeat_at")) {
|
|
60
|
+
db.exec("ALTER TABLE agents DROP COLUMN last_heartbeat_at");
|
|
61
|
+
}
|
|
62
|
+
// Migration: Add notification columns to alert_rules table
|
|
63
|
+
const alertCols = db.prepare("PRAGMA table_info(alert_rules)").all();
|
|
64
|
+
const alertColNames = alertCols.map((c) => c.name);
|
|
65
|
+
if (!alertColNames.includes("notification_type")) {
|
|
66
|
+
db.exec("ALTER TABLE alert_rules ADD COLUMN notification_type TEXT NOT NULL DEFAULT 'webhook'");
|
|
67
|
+
}
|
|
68
|
+
if (!alertColNames.includes("smtp_config")) {
|
|
69
|
+
db.exec("ALTER TABLE alert_rules ADD COLUMN smtp_config TEXT");
|
|
70
|
+
}
|
|
71
|
+
if (!alertColNames.includes("telegram_config")) {
|
|
72
|
+
db.exec("ALTER TABLE alert_rules ADD COLUMN telegram_config TEXT");
|
|
73
|
+
}
|
|
74
|
+
// Migration: Add requested_model column to agent_events table
|
|
75
|
+
const eventCols = db.prepare("PRAGMA table_info(agent_events)").all();
|
|
76
|
+
const eventColNames = eventCols.map((c) => c.name);
|
|
77
|
+
if (!eventColNames.includes("requested_model")) {
|
|
78
|
+
db.exec("ALTER TABLE agent_events ADD COLUMN requested_model TEXT");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const SCHEMA = `
|
|
82
|
+
CREATE TABLE IF NOT EXISTS agents (
|
|
83
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
84
|
+
agent_id TEXT NOT NULL UNIQUE,
|
|
85
|
+
name TEXT,
|
|
86
|
+
active INTEGER NOT NULL DEFAULT 1,
|
|
87
|
+
budget_limit REAL,
|
|
88
|
+
allowed_hours_start INTEGER,
|
|
89
|
+
allowed_hours_end INTEGER,
|
|
90
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
91
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
CREATE INDEX IF NOT EXISTS idx_agents_agent_id ON agents(agent_id);
|
|
95
|
+
|
|
96
|
+
CREATE TABLE IF NOT EXISTS agent_events (
|
|
97
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
98
|
+
agent_id TEXT NOT NULL,
|
|
99
|
+
event_type TEXT NOT NULL CHECK (event_type IN ('llm_call', 'completion', 'heartbeat', 'error', 'custom', 'blocked')),
|
|
100
|
+
provider TEXT,
|
|
101
|
+
model TEXT,
|
|
102
|
+
requested_model TEXT,
|
|
103
|
+
tokens_in INTEGER,
|
|
104
|
+
tokens_out INTEGER,
|
|
105
|
+
tokens_total INTEGER,
|
|
106
|
+
cost_usd REAL,
|
|
107
|
+
latency_ms INTEGER,
|
|
108
|
+
status_code INTEGER,
|
|
109
|
+
error_message TEXT,
|
|
110
|
+
tags TEXT DEFAULT '{}',
|
|
111
|
+
source TEXT NOT NULL CHECK (source IN ('sdk', 'proxy')),
|
|
112
|
+
timestamp TEXT NOT NULL,
|
|
113
|
+
trace_id TEXT,
|
|
114
|
+
span_id TEXT,
|
|
115
|
+
parent_span_id TEXT,
|
|
116
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
CREATE INDEX IF NOT EXISTS idx_agent_events_agent_id ON agent_events(agent_id);
|
|
120
|
+
CREATE INDEX IF NOT EXISTS idx_agent_events_timestamp ON agent_events(timestamp);
|
|
121
|
+
CREATE INDEX IF NOT EXISTS idx_agent_events_type ON agent_events(event_type);
|
|
122
|
+
CREATE INDEX IF NOT EXISTS idx_agent_events_trace ON agent_events(trace_id);
|
|
123
|
+
|
|
124
|
+
CREATE TABLE IF NOT EXISTS alert_rules (
|
|
125
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
126
|
+
agent_id TEXT NOT NULL,
|
|
127
|
+
rule_type TEXT NOT NULL CHECK (rule_type IN ('agent_down', 'error_rate', 'budget')),
|
|
128
|
+
config TEXT NOT NULL DEFAULT '{}',
|
|
129
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
130
|
+
notification_type TEXT NOT NULL DEFAULT 'webhook',
|
|
131
|
+
webhook_url TEXT,
|
|
132
|
+
email TEXT,
|
|
133
|
+
smtp_config TEXT,
|
|
134
|
+
telegram_config TEXT,
|
|
135
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
136
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
CREATE INDEX IF NOT EXISTS idx_alert_rules_agent_id ON alert_rules(agent_id);
|
|
140
|
+
|
|
141
|
+
CREATE TABLE IF NOT EXISTS alert_history (
|
|
142
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
143
|
+
alert_rule_id TEXT NOT NULL REFERENCES alert_rules(id) ON DELETE CASCADE,
|
|
144
|
+
agent_id TEXT NOT NULL,
|
|
145
|
+
rule_type TEXT NOT NULL,
|
|
146
|
+
message TEXT NOT NULL,
|
|
147
|
+
delivered_via TEXT NOT NULL,
|
|
148
|
+
delivered_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
CREATE INDEX IF NOT EXISTS idx_alert_history_rule ON alert_history(alert_rule_id);
|
|
152
|
+
|
|
153
|
+
CREATE TABLE IF NOT EXISTS agent_model_rules (
|
|
154
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
155
|
+
agent_id TEXT NOT NULL,
|
|
156
|
+
provider TEXT NOT NULL,
|
|
157
|
+
model_override TEXT,
|
|
158
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
159
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
160
|
+
UNIQUE(agent_id, provider)
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
CREATE INDEX IF NOT EXISTS idx_agent_model_rules_agent ON agent_model_rules(agent_id);
|
|
164
|
+
|
|
165
|
+
CREATE TABLE IF NOT EXISTS agent_rate_limits (
|
|
166
|
+
agent_id TEXT NOT NULL,
|
|
167
|
+
provider TEXT NOT NULL,
|
|
168
|
+
max_requests INTEGER NOT NULL,
|
|
169
|
+
window_seconds INTEGER NOT NULL,
|
|
170
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
171
|
+
PRIMARY KEY (agent_id, provider)
|
|
172
|
+
);
|
|
173
|
+
|
|
174
|
+
CREATE INDEX IF NOT EXISTS idx_agent_rate_limits_agent ON agent_rate_limits(agent_id);
|
|
175
|
+
`;
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
// Query helpers
|
|
178
|
+
// ---------------------------------------------------------------------------
|
|
179
|
+
function upsertAgent(db, agentId, _isHeartbeat) {
|
|
180
|
+
const now = new Date().toISOString();
|
|
181
|
+
const stmt = db.prepare(`
|
|
182
|
+
INSERT INTO agents (id, agent_id, updated_at)
|
|
183
|
+
VALUES (?, ?, ?)
|
|
184
|
+
ON CONFLICT(agent_id) DO UPDATE SET
|
|
185
|
+
updated_at = excluded.updated_at
|
|
186
|
+
`);
|
|
187
|
+
stmt.run((0, node_crypto_1.randomUUID)(), agentId, now);
|
|
188
|
+
}
|
|
189
|
+
function insertEvents(db, events) {
|
|
190
|
+
const stmt = db.prepare(`
|
|
191
|
+
INSERT INTO agent_events (
|
|
192
|
+
id, agent_id, event_type, provider, model, requested_model,
|
|
193
|
+
tokens_in, tokens_out, tokens_total, cost_usd,
|
|
194
|
+
latency_ms, status_code, error_message, tags,
|
|
195
|
+
source, timestamp, trace_id, span_id, parent_span_id
|
|
196
|
+
) VALUES (
|
|
197
|
+
?, ?, ?, ?, ?, ?,
|
|
198
|
+
?, ?, ?, ?,
|
|
199
|
+
?, ?, ?, ?,
|
|
200
|
+
?, ?, ?, ?, ?
|
|
201
|
+
)
|
|
202
|
+
`);
|
|
203
|
+
const ids = [];
|
|
204
|
+
const insertAll = db.transaction(() => {
|
|
205
|
+
for (const e of events) {
|
|
206
|
+
const id = (0, node_crypto_1.randomUUID)();
|
|
207
|
+
stmt.run(id, e.agent_id, e.event_type, e.provider ?? null, e.model ?? null, e.requested_model ?? null, e.tokens_in ?? null, e.tokens_out ?? null, e.tokens_total ?? null, e.cost_usd ?? null, e.latency_ms ?? null, e.status_code ?? null, e.error_message ?? null, JSON.stringify(e.tags ?? {}), e.source, e.timestamp, e.trace_id ?? null, e.span_id ?? null, e.parent_span_id ?? null);
|
|
208
|
+
ids.push(id);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
insertAll();
|
|
212
|
+
return ids;
|
|
213
|
+
}
|
|
214
|
+
function getAllAgents(db) {
|
|
215
|
+
// Get today's UTC midnight for today_cost calculation
|
|
216
|
+
const todayUTC = new Date();
|
|
217
|
+
todayUTC.setUTCHours(0, 0, 0, 0);
|
|
218
|
+
const todayStart = todayUTC.toISOString();
|
|
219
|
+
return db.prepare(`
|
|
220
|
+
SELECT
|
|
221
|
+
a.id, a.agent_id, a.name, a.active, a.budget_limit,
|
|
222
|
+
a.created_at, a.updated_at,
|
|
223
|
+
COALESCE(SUM(e.tokens_total), 0) AS total_tokens,
|
|
224
|
+
COALESCE(SUM(e.cost_usd), 0) AS total_cost,
|
|
225
|
+
COALESCE(SUM(CASE WHEN e.timestamp >= ? THEN e.cost_usd ELSE 0 END), 0) AS today_cost
|
|
226
|
+
FROM agents a
|
|
227
|
+
LEFT JOIN agent_events e ON e.agent_id = a.agent_id
|
|
228
|
+
GROUP BY a.id
|
|
229
|
+
ORDER BY a.updated_at DESC
|
|
230
|
+
`).all(todayStart);
|
|
231
|
+
}
|
|
232
|
+
function getAgentByAgentId(db, agentId) {
|
|
233
|
+
const todayUTC = new Date();
|
|
234
|
+
todayUTC.setUTCHours(0, 0, 0, 0);
|
|
235
|
+
const todayStart = todayUTC.toISOString();
|
|
236
|
+
return db.prepare(`
|
|
237
|
+
SELECT
|
|
238
|
+
a.id, a.agent_id, a.name, a.active, a.budget_limit,
|
|
239
|
+
a.created_at, a.updated_at,
|
|
240
|
+
COALESCE(SUM(e.tokens_total), 0) AS total_tokens,
|
|
241
|
+
COALESCE(SUM(e.cost_usd), 0) AS total_cost,
|
|
242
|
+
COALESCE(SUM(CASE WHEN e.timestamp >= ? THEN e.cost_usd ELSE 0 END), 0) AS today_cost
|
|
243
|
+
FROM agents a
|
|
244
|
+
LEFT JOIN agent_events e ON e.agent_id = a.agent_id
|
|
245
|
+
WHERE a.agent_id = ?
|
|
246
|
+
GROUP BY a.id
|
|
247
|
+
`).get(todayStart, agentId);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Delete events and alert history older than the given number of days.
|
|
251
|
+
* Returns the number of rows deleted from each table.
|
|
252
|
+
*/
|
|
253
|
+
function purgeOldData(db, retentionDays) {
|
|
254
|
+
const cutoff = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000).toISOString();
|
|
255
|
+
const eventsResult = db.prepare("DELETE FROM agent_events WHERE timestamp < ?").run(cutoff);
|
|
256
|
+
const historyResult = db.prepare("DELETE FROM alert_history WHERE delivered_at < ?").run(cutoff);
|
|
257
|
+
return {
|
|
258
|
+
eventsDeleted: eventsResult.changes,
|
|
259
|
+
historyDeleted: historyResult.changes,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
function queryEvents(db, options) {
|
|
263
|
+
const conditions = ["agent_id = ?"];
|
|
264
|
+
const params = [options.agent_id];
|
|
265
|
+
if (options.from) {
|
|
266
|
+
conditions.push("timestamp >= ?");
|
|
267
|
+
params.push(options.from);
|
|
268
|
+
}
|
|
269
|
+
if (options.to) {
|
|
270
|
+
conditions.push("timestamp <= ?");
|
|
271
|
+
params.push(options.to);
|
|
272
|
+
}
|
|
273
|
+
if (options.event_type) {
|
|
274
|
+
conditions.push("event_type = ?");
|
|
275
|
+
params.push(options.event_type);
|
|
276
|
+
}
|
|
277
|
+
if (options.provider) {
|
|
278
|
+
conditions.push("provider = ?");
|
|
279
|
+
params.push(options.provider);
|
|
280
|
+
}
|
|
281
|
+
if (options.model) {
|
|
282
|
+
conditions.push("model = ?");
|
|
283
|
+
params.push(options.model);
|
|
284
|
+
}
|
|
285
|
+
if (options.trace_id) {
|
|
286
|
+
conditions.push("trace_id = ?");
|
|
287
|
+
params.push(options.trace_id);
|
|
288
|
+
}
|
|
289
|
+
if (options.search) {
|
|
290
|
+
conditions.push("(model LIKE ? OR provider LIKE ? OR error_message LIKE ? OR tags LIKE ?)");
|
|
291
|
+
const term = `%${options.search}%`;
|
|
292
|
+
params.push(term, term, term, term);
|
|
293
|
+
}
|
|
294
|
+
const limit = options.limit ?? 1000;
|
|
295
|
+
const sql = `SELECT * FROM agent_events WHERE ${conditions.join(" AND ")} ORDER BY timestamp DESC LIMIT ?`;
|
|
296
|
+
params.push(limit);
|
|
297
|
+
return db.prepare(sql).all(...params);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Calculate an agent's total spending for today (server local time).
|
|
301
|
+
*/
|
|
302
|
+
function getDailySpend(db, agentId) {
|
|
303
|
+
const today = new Date();
|
|
304
|
+
today.setHours(0, 0, 0, 0);
|
|
305
|
+
const startOfDay = today.toISOString();
|
|
306
|
+
const result = db.prepare(`
|
|
307
|
+
SELECT COALESCE(SUM(cost_usd), 0) as total
|
|
308
|
+
FROM agent_events
|
|
309
|
+
WHERE agent_id = ? AND timestamp >= ? AND cost_usd IS NOT NULL
|
|
310
|
+
`).get(agentId, startOfDay);
|
|
311
|
+
return result.total;
|
|
312
|
+
}
|
|
313
|
+
function getAgentPolicy(db, agentId) {
|
|
314
|
+
const row = db.prepare(`
|
|
315
|
+
SELECT active, budget_limit, allowed_hours_start, allowed_hours_end
|
|
316
|
+
FROM agents WHERE agent_id = ?
|
|
317
|
+
`).get(agentId);
|
|
318
|
+
if (!row)
|
|
319
|
+
return null;
|
|
320
|
+
return {
|
|
321
|
+
active: row.active === 1,
|
|
322
|
+
budget_limit: row.budget_limit,
|
|
323
|
+
allowed_hours_start: row.allowed_hours_start,
|
|
324
|
+
allowed_hours_end: row.allowed_hours_end,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
function updateAgentPolicy(db, agentId, policy) {
|
|
328
|
+
const updates = [];
|
|
329
|
+
const params = [];
|
|
330
|
+
if (policy.active !== undefined) {
|
|
331
|
+
updates.push("active = ?");
|
|
332
|
+
params.push(policy.active ? 1 : 0);
|
|
333
|
+
}
|
|
334
|
+
if (policy.budget_limit !== undefined) {
|
|
335
|
+
updates.push("budget_limit = ?");
|
|
336
|
+
params.push(policy.budget_limit);
|
|
337
|
+
}
|
|
338
|
+
if (policy.allowed_hours_start !== undefined) {
|
|
339
|
+
updates.push("allowed_hours_start = ?");
|
|
340
|
+
params.push(policy.allowed_hours_start);
|
|
341
|
+
}
|
|
342
|
+
if (policy.allowed_hours_end !== undefined) {
|
|
343
|
+
updates.push("allowed_hours_end = ?");
|
|
344
|
+
params.push(policy.allowed_hours_end);
|
|
345
|
+
}
|
|
346
|
+
if (updates.length === 0)
|
|
347
|
+
return false;
|
|
348
|
+
updates.push("updated_at = ?");
|
|
349
|
+
params.push(new Date().toISOString());
|
|
350
|
+
params.push(agentId);
|
|
351
|
+
const result = db.prepare(`
|
|
352
|
+
UPDATE agents SET ${updates.join(", ")} WHERE agent_id = ?
|
|
353
|
+
`).run(...params);
|
|
354
|
+
return result.changes > 0;
|
|
355
|
+
}
|
|
356
|
+
function getModelRulesForAgent(db, agentId) {
|
|
357
|
+
return db.prepare(`
|
|
358
|
+
SELECT * FROM agent_model_rules WHERE agent_id = ? ORDER BY provider
|
|
359
|
+
`).all(agentId);
|
|
360
|
+
}
|
|
361
|
+
function getModelRule(db, agentId, provider) {
|
|
362
|
+
return db.prepare(`
|
|
363
|
+
SELECT * FROM agent_model_rules WHERE agent_id = ? AND provider = ?
|
|
364
|
+
`).get(agentId, provider);
|
|
365
|
+
}
|
|
366
|
+
function upsertModelRule(db, agentId, provider, modelOverride) {
|
|
367
|
+
const now = new Date().toISOString();
|
|
368
|
+
const id = (0, node_crypto_1.randomUUID)();
|
|
369
|
+
db.prepare(`
|
|
370
|
+
INSERT INTO agent_model_rules (id, agent_id, provider, model_override, created_at, updated_at)
|
|
371
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
372
|
+
ON CONFLICT(agent_id, provider) DO UPDATE SET
|
|
373
|
+
model_override = excluded.model_override,
|
|
374
|
+
updated_at = excluded.updated_at
|
|
375
|
+
`).run(id, agentId, provider, modelOverride, now, now);
|
|
376
|
+
return getModelRule(db, agentId, provider);
|
|
377
|
+
}
|
|
378
|
+
function deleteModelRule(db, agentId, provider) {
|
|
379
|
+
const result = db.prepare(`
|
|
380
|
+
DELETE FROM agent_model_rules WHERE agent_id = ? AND provider = ?
|
|
381
|
+
`).run(agentId, provider);
|
|
382
|
+
return result.changes > 0;
|
|
383
|
+
}
|
|
384
|
+
function getAgentProviders(db, agentId) {
|
|
385
|
+
const rows = db.prepare(`
|
|
386
|
+
SELECT DISTINCT provider FROM agent_events
|
|
387
|
+
WHERE agent_id = ? AND provider IS NOT NULL
|
|
388
|
+
ORDER BY provider
|
|
389
|
+
`).all(agentId);
|
|
390
|
+
return rows.map(r => r.provider);
|
|
391
|
+
}
|
|
392
|
+
function getRateLimitsForAgent(db, agentId) {
|
|
393
|
+
return db.prepare(`
|
|
394
|
+
SELECT * FROM agent_rate_limits WHERE agent_id = ? ORDER BY provider
|
|
395
|
+
`).all(agentId);
|
|
396
|
+
}
|
|
397
|
+
function getAllRateLimits(db) {
|
|
398
|
+
return db.prepare(`
|
|
399
|
+
SELECT * FROM agent_rate_limits ORDER BY agent_id, provider
|
|
400
|
+
`).all();
|
|
401
|
+
}
|
|
402
|
+
function getRateLimit(db, agentId, provider) {
|
|
403
|
+
return db.prepare(`
|
|
404
|
+
SELECT * FROM agent_rate_limits WHERE agent_id = ? AND provider = ?
|
|
405
|
+
`).get(agentId, provider);
|
|
406
|
+
}
|
|
407
|
+
function setRateLimit(db, agentId, provider, maxRequests, windowSeconds) {
|
|
408
|
+
const now = new Date().toISOString();
|
|
409
|
+
db.prepare(`
|
|
410
|
+
INSERT INTO agent_rate_limits (agent_id, provider, max_requests, window_seconds, updated_at)
|
|
411
|
+
VALUES (?, ?, ?, ?, ?)
|
|
412
|
+
ON CONFLICT(agent_id, provider) DO UPDATE SET
|
|
413
|
+
max_requests = excluded.max_requests,
|
|
414
|
+
window_seconds = excluded.window_seconds,
|
|
415
|
+
updated_at = excluded.updated_at
|
|
416
|
+
`).run(agentId, provider, maxRequests, windowSeconds, now);
|
|
417
|
+
return getRateLimit(db, agentId, provider);
|
|
418
|
+
}
|
|
419
|
+
function deleteRateLimit(db, agentId, provider) {
|
|
420
|
+
const result = db.prepare(`
|
|
421
|
+
DELETE FROM agent_rate_limits WHERE agent_id = ? AND provider = ?
|
|
422
|
+
`).run(agentId, provider);
|
|
423
|
+
return result.changes > 0;
|
|
424
|
+
}
|
|
425
|
+
//# sourceMappingURL=db.js.map
|
package/dist/db.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createServer, startServer } from "./server.js";
|
|
2
|
+
export type { ServerOptions } from "./server.js";
|
|
3
|
+
export { getAgentPolicy, getDailySpend, insertEvents, upsertAgent, getModelRule, getAllRateLimits } from "./db.js";
|
|
4
|
+
export type { AgentPolicy, InsertEventRow, ModelRuleRow, RateLimitRow } from "./db.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACnH,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAllRateLimits = exports.getModelRule = exports.upsertAgent = exports.insertEvents = exports.getDailySpend = exports.getAgentPolicy = exports.startServer = exports.createServer = void 0;
|
|
4
|
+
var server_js_1 = require("./server.js");
|
|
5
|
+
Object.defineProperty(exports, "createServer", { enumerable: true, get: function () { return server_js_1.createServer; } });
|
|
6
|
+
Object.defineProperty(exports, "startServer", { enumerable: true, get: function () { return server_js_1.startServer; } });
|
|
7
|
+
// Re-export DB types and functions needed by proxy for policy enforcement
|
|
8
|
+
var db_js_1 = require("./db.js");
|
|
9
|
+
Object.defineProperty(exports, "getAgentPolicy", { enumerable: true, get: function () { return db_js_1.getAgentPolicy; } });
|
|
10
|
+
Object.defineProperty(exports, "getDailySpend", { enumerable: true, get: function () { return db_js_1.getDailySpend; } });
|
|
11
|
+
Object.defineProperty(exports, "insertEvents", { enumerable: true, get: function () { return db_js_1.insertEvents; } });
|
|
12
|
+
Object.defineProperty(exports, "upsertAgent", { enumerable: true, get: function () { return db_js_1.upsertAgent; } });
|
|
13
|
+
Object.defineProperty(exports, "getModelRule", { enumerable: true, get: function () { return db_js_1.getModelRule; } });
|
|
14
|
+
Object.defineProperty(exports, "getAllRateLimits", { enumerable: true, get: function () { return db_js_1.getAllRateLimits; } });
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwD;AAA/C,yGAAA,YAAY,OAAA;AAAE,wGAAA,WAAW,OAAA;AAGlC,0EAA0E;AAC1E,iCAAmH;AAA1G,uGAAA,cAAc,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,yGAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiB/D,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAuDpF"}
|