@evelinka-ai/core 0.3.0 → 0.3.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/dist/agent-lib/llm-semaphore.d.ts.map +1 -1
- package/dist/agent-lib/llm-semaphore.js +1 -33
- package/dist/agent-lib/llm-semaphore.js.map +1 -1
- package/dist/channels/providers.d.ts +3 -0
- package/dist/channels/providers.d.ts.map +1 -1
- package/dist/channels/providers.js +33 -1
- package/dist/channels/providers.js.map +1 -1
- package/dist/channels/usage.d.ts.map +1 -1
- package/dist/channels/usage.js +5 -0
- package/dist/channels/usage.js.map +1 -1
- package/dist/lib/budgets/record-call-usage.d.ts +1 -0
- package/dist/lib/budgets/record-call-usage.d.ts.map +1 -1
- package/dist/lib/budgets/record-call-usage.js +1 -0
- package/dist/lib/budgets/record-call-usage.js.map +1 -1
- package/dist/lib/budgets/token-usage-pg.d.ts +8 -0
- package/dist/lib/budgets/token-usage-pg.d.ts.map +1 -1
- package/dist/lib/budgets/token-usage-pg.js +35 -20
- package/dist/lib/budgets/token-usage-pg.js.map +1 -1
- package/dist/lib/budgets/usage.d.ts +13 -5
- package/dist/lib/budgets/usage.d.ts.map +1 -1
- package/dist/lib/budgets/usage.js +37 -2
- package/dist/lib/budgets/usage.js.map +1 -1
- package/dist/lib/control-plane/ambient-session.d.ts +3 -0
- package/dist/lib/control-plane/ambient-session.d.ts.map +1 -0
- package/dist/lib/control-plane/ambient-session.js +34 -0
- package/dist/lib/control-plane/ambient-session.js.map +1 -0
- package/dist/lib/models/custom-providers.d.ts +6 -0
- package/dist/lib/models/custom-providers.d.ts.map +1 -1
- package/dist/lib/models/custom-providers.js +12 -2
- package/dist/lib/models/custom-providers.js.map +1 -1
- package/dist/lib/observability/model-events.d.ts +54 -0
- package/dist/lib/observability/model-events.d.ts.map +1 -0
- package/dist/lib/observability/model-events.js +153 -0
- package/dist/lib/observability/model-events.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-semaphore.d.ts","sourceRoot":"","sources":["../../src/agent-lib/llm-semaphore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm-semaphore.d.ts","sourceRoot":"","sources":["../../src/agent-lib/llm-semaphore.ts"],"names":[],"mappings":"AA2CA,KAAK,QAAQ,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,CAAC;AAG1D,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAmID,wBAAgB,WAAW,CACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,QAAuB,EACjC,IAAI,GAAE,QAAa,GAClB,OAAO,CAAC,MAAM,CAAC,CAmDjB;AAoBD,wBAAgB,WAAW,CACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,QAAuB,EACjC,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAkBN;AAID,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,iBAAiB,CA2BzF;AAGD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AACD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AACD,wBAAgB,eAAe,IAAI,IAAI,CAiBtC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACxE,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC;CACpD,GAAG,IAAI,CAIP"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readLlmConcurrency, readLlmRamp, readReservedBackground, } from "../lib/models/llm-concurrency.js";
|
|
2
2
|
import { assertTokenBudget } from "../lib/budgets/token-budget.js";
|
|
3
|
+
import { ambientRootId, ambientSessionId } from "../lib/control-plane/ambient-session.js";
|
|
3
4
|
let active = 0;
|
|
4
5
|
let activeInteractive = 0;
|
|
5
6
|
let activeElevated = 0;
|
|
@@ -14,39 +15,6 @@ let rampTimer = null;
|
|
|
14
15
|
let nowFn = () => Date.now();
|
|
15
16
|
let scheduleFn = (cb, ms) => setTimeout(cb, ms);
|
|
16
17
|
let cancelFn = (t) => clearTimeout(t);
|
|
17
|
-
const EVE_CONTEXT_STORAGE_KEY = Symbol.for("eve.context-storage");
|
|
18
|
-
const SESSION_ID_KEY = { name: "eve.sessionId" };
|
|
19
|
-
const PARENT_SESSION_KEY = { name: "eve.parentSession" };
|
|
20
|
-
function ambientContext() {
|
|
21
|
-
const als = globalThis[EVE_CONTEXT_STORAGE_KEY];
|
|
22
|
-
const ctx = als?.getStore?.();
|
|
23
|
-
return ctx && typeof ctx.get === "function" ? ctx : undefined;
|
|
24
|
-
}
|
|
25
|
-
function ambientSessionId() {
|
|
26
|
-
const ctx = ambientContext();
|
|
27
|
-
if (!ctx)
|
|
28
|
-
return undefined;
|
|
29
|
-
try {
|
|
30
|
-
const sid = ctx.get(SESSION_ID_KEY);
|
|
31
|
-
return typeof sid === "string" && sid ? sid : undefined;
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function ambientRootId() {
|
|
38
|
-
const ctx = ambientContext();
|
|
39
|
-
if (!ctx)
|
|
40
|
-
return undefined;
|
|
41
|
-
try {
|
|
42
|
-
const parent = ctx.get(PARENT_SESSION_KEY);
|
|
43
|
-
const root = parent?.rootSessionId;
|
|
44
|
-
return typeof root === "string" && root ? root : undefined;
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
18
|
function effectiveLimit(env, now) {
|
|
51
19
|
const hard = readLlmConcurrency(env);
|
|
52
20
|
const { batch, intervalMs } = readLlmRamp(env);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-semaphore.js","sourceRoot":"","sources":["../../src/agent-lib/llm-semaphore.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-semaphore.js","sourceRoot":"","sources":["../../src/agent-lib/llm-semaphore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CustomModelPrice } from "../lib/models/custom-providers.js";
|
|
1
2
|
import { type ModelProviderSpec } from "./model-providers.js";
|
|
2
3
|
export type ProviderKind = "pool" | "apiKey" | "custom";
|
|
3
4
|
export interface ProviderManifestEntry {
|
|
@@ -13,6 +14,7 @@ export interface ProviderManifestEntry {
|
|
|
13
14
|
source?: "store" | "env" | "none";
|
|
14
15
|
configured?: boolean;
|
|
15
16
|
models?: string[];
|
|
17
|
+
prices?: Record<string, CustomModelPrice>;
|
|
16
18
|
updatedAt?: string | null;
|
|
17
19
|
}
|
|
18
20
|
export interface ProvidersResponse {
|
|
@@ -26,6 +28,7 @@ export interface CustomProviderPostBody {
|
|
|
26
28
|
baseUrl?: unknown;
|
|
27
29
|
apiKey?: unknown;
|
|
28
30
|
models?: unknown;
|
|
31
|
+
prices?: unknown;
|
|
29
32
|
}
|
|
30
33
|
export declare function applyCustomProviderPost(body: CustomProviderPostBody): {
|
|
31
34
|
status: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/channels/providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/channels/providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,gBAAgB,EAStB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,sBAAsB,CAAC;AAmBrF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,qBAAqB;IAEpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IAGnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,KAAK,EAAE,MAAM,CAAC;IAGd,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AA8DD,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,iBAAiB,CA8C9F;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA4BD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,GAAG;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,CAmCA;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;;AAED,wBA8CG"}
|
|
@@ -46,6 +46,7 @@ function customEntry(p) {
|
|
|
46
46
|
masked: p.masked,
|
|
47
47
|
configured: p.masked !== null,
|
|
48
48
|
models: p.models,
|
|
49
|
+
prices: p.prices,
|
|
49
50
|
updatedAt: p.updatedAt,
|
|
50
51
|
};
|
|
51
52
|
}
|
|
@@ -94,6 +95,27 @@ export function buildProvidersManifest(env = process.env) {
|
|
|
94
95
|
generatedAt: new Date().toISOString(),
|
|
95
96
|
};
|
|
96
97
|
}
|
|
98
|
+
function parsePrices(raw, models) {
|
|
99
|
+
if (raw === undefined)
|
|
100
|
+
return { prices: {} };
|
|
101
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
102
|
+
return { error: "prices must be an object keyed by model id" };
|
|
103
|
+
}
|
|
104
|
+
const prices = {};
|
|
105
|
+
for (const [model, value] of Object.entries(raw)) {
|
|
106
|
+
if (!models.includes(model))
|
|
107
|
+
return { error: `prices.${model}: not a picked model` };
|
|
108
|
+
const v = value;
|
|
109
|
+
const inp = v?.inputPerMTok;
|
|
110
|
+
const out = v?.outputPerMTok;
|
|
111
|
+
const ok = (n) => typeof n === "number" && Number.isFinite(n) && n >= 0;
|
|
112
|
+
if (!ok(inp) || !ok(out)) {
|
|
113
|
+
return { error: `prices.${model}: inputPerMTok and outputPerMTok must be numbers ≥ 0` };
|
|
114
|
+
}
|
|
115
|
+
prices[model] = { inputPerMTok: inp, outputPerMTok: out };
|
|
116
|
+
}
|
|
117
|
+
return { prices };
|
|
118
|
+
}
|
|
97
119
|
export function applyCustomProviderPost(body) {
|
|
98
120
|
const label = typeof body.label === "string" ? body.label.trim() : "";
|
|
99
121
|
if (!label)
|
|
@@ -119,7 +141,17 @@ export function applyCustomProviderPost(body) {
|
|
|
119
141
|
const models = body.models.map((m) => m.trim()).filter(Boolean);
|
|
120
142
|
if (models.length === 0)
|
|
121
143
|
return { status: 400, body: { error: "pick at least one model" } };
|
|
122
|
-
|
|
144
|
+
const priced = parsePrices(body.prices, models);
|
|
145
|
+
if ("error" in priced)
|
|
146
|
+
return { status: 400, body: { error: priced.error } };
|
|
147
|
+
writeCustomProvider({
|
|
148
|
+
id,
|
|
149
|
+
label,
|
|
150
|
+
baseUrl,
|
|
151
|
+
apiKey: body.apiKey,
|
|
152
|
+
models,
|
|
153
|
+
prices: priced.prices,
|
|
154
|
+
});
|
|
123
155
|
log.info({ id, baseUrl, models: models.length }, "custom provider saved via console");
|
|
124
156
|
return { status: 200, body: buildProvidersManifest() };
|
|
125
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/channels/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/channels/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,qBAAqB,EAGrB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAA0B,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAiBrF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAkC1D,MAAM,cAAc,GAA2B;IAC7C,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,eAAe;CAC3B,CAAC;AAaF,SAAS,UAAU,CAAC,GAAsB;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,kBAAkB,CAAC;IACnC,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;QACxF,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO,CACL,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QACxB,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAC3B,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAC3B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAiB;IACpC,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,MAAM,EAAE,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC,IAAI;QAC5C,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,UAAU,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI;QAC7B,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,sBAAsB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACzE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC,IAAI,CAAC;IACpD,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACtC,MAAM,KAAK,GAA4B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI,CAAC,EAAE;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE;QAC5B,KAAK;QACL,OAAO,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE;QAC7B,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;KAC9B,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAA4B,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpE,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,QAAQ,EAAE;QACnD,KAAK,EAAE,IAAI;QAGX,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,IAAI,EAAE;KACpE,CAAC,CAAC,CAAC;IACJ,MAAM,IAAI,GAA4B,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO;YACL,EAAE,EAAE,UAAU,IAAI,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI;YACnC,KAAK;YACL,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtD,OAAO;QACL,SAAS,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACnD,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC;AAaD,SAAS,WAAW,CAClB,GAAY,EACZ,MAAgB;IAEhB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,UAAU,KAAK,sBAAsB,EAAE,CAAC;QACrF,MAAM,CAAC,GAAG,KAAmE,CAAC;QAC9E,MAAM,GAAG,GAAG,CAAC,EAAE,YAAY,CAAC;QAC5B,MAAM,GAAG,GAAG,CAAC,EAAE,aAAa,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9F,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,UAAU,KAAK,sDAAsD,EAAE,CAAC;QAC1F,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAGD,MAAM,UAAU,uBAAuB,CAAC,IAA4B;IAIlE,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,CAAC;IACxF,MAAM,EAAE,GACN,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5F,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE;gBACJ,KAAK,EAAE,gFAAgF;aACxF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,CAAC;IACxF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;QACpF,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE,CAAC;IAClF,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,CAAC;IAC5F,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IAC7E,mBAAmB,CAAC;QAClB,EAAE;QACF,KAAK;QACL,OAAO;QACP,MAAM,EAAE,IAAI,CAAC,MAA4B;QACzC,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,mCAAmC,CAAC,CAAC;IACtF,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,CAAC;AACzD,CAAC;AAQD,eAAe,aAAa,CAAC;IAC3B,MAAM,EAAE;QACN,GAAG,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAE7E,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,IAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,MAAM,CAAC,8BAA8B,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAChE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,qCAAqC,CAAC,CAAC;YACxD,OAAO,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC;QAKF,IAAI,CAAC,gCAAgC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACnD,IAAI,IAAe,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAc,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,IAAI,CAAC,OAAO;gBACV,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrF,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC;KACH;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/channels/usage.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/channels/usage.ts"],"names":[],"mappings":";AAkBA,wBAwCG"}
|
package/dist/channels/usage.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineChannel, GET } from "eve/channels";
|
|
2
2
|
import { logger } from "../lib/observability/logger.js";
|
|
3
|
+
import { parseModelEventsQuery, readModelEventsPage } from "../lib/observability/model-events.js";
|
|
3
4
|
import { readRunUsageByModel } from "../lib/budgets/token-usage-pg.js";
|
|
4
5
|
import { buildRunUsage, buildUsage, buildUsageLogs, UsageQueryError, } from "../lib/budgets/usage.js";
|
|
5
6
|
const log = logger.child({ module: "usage" });
|
|
@@ -30,6 +31,10 @@ export default defineChannel({
|
|
|
30
31
|
return Response.json({ error: "failed to build usage logs" }, { status: 500 });
|
|
31
32
|
}
|
|
32
33
|
}),
|
|
34
|
+
GET("/eve/v1/usage/events", async (req) => {
|
|
35
|
+
const page = await readModelEventsPage(parseModelEventsQuery(req.url));
|
|
36
|
+
return Response.json({ ...page, generatedAt: new Date().toISOString() });
|
|
37
|
+
}),
|
|
33
38
|
],
|
|
34
39
|
});
|
|
35
40
|
//# sourceMappingURL=usage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/channels/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAO9C,eAAe,aAAa,CAAC;IAC3B,MAAM,EAAE;QACN,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAEb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAED,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;gBACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC;QAMF,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;QACF,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;gBACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC,CAAC;KACH;CACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/channels/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAO9C,eAAe,aAAa,CAAC;IAC3B,MAAM,EAAE;QACN,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAEb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAED,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;gBACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC;QAMF,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;QACF,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;gBACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC,CAAC;QAIF,GAAG,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC;KACH;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-call-usage.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/record-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAUjE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"record-call-usage.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/record-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAUjE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,EAAE,EAAE,MAAM,GACT,QAAQ,CAiBV;AAMD,wBAAgB,cAAc,CAC5B,KAAK,EACD;IACE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E,GACD,SAAS,GACZ,UAAU,CAOZ;AAQD,wBAAgB,mBAAmB,CACjC,KAAK,EACD;IACE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,GACD,SAAS,GACZ,UAAU,CAYZ;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAGzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-call-usage.js","sourceRoot":"","sources":["../../../src/lib/budgets/record-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"record-call-usage.js","sourceRoot":"","sources":["../../../src/lib/budgets/record-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AA6BjE,MAAM,UAAU,YAAY,CAC1B,IAAmB,EACnB,GAA4B,EAC5B,EAAU;IAEV,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO;QACL,SAAS;QACT,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,EAAE;QACF,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;QAC/B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC;QACrC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC;QACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK;KAC5C,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,cAAc,CAC5B,KAMa;IAEb,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,WAAW;QACzB,MAAM,EAAE,KAAK,EAAE,YAAY;QAC3B,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe;QACpD,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,gBAAgB;KACvD,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,mBAAmB,CACjC,KAOa;IAEb,MAAM,SAAS,GAAG,KAAK,EAAE,uBAAuB,CAAC;IACjD,MAAM,UAAU,GAAG,KAAK,EAAE,2BAA2B,CAAC;IACtD,OAAO;QACL,KAAK,EACH,KAAK,EAAE,YAAY,KAAK,SAAS;YAC/B,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;YAC3D,CAAC,CAAC,SAAS;QACf,MAAM,EAAE,KAAK,EAAE,aAAa;QAC5B,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,KAAK,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Pool } from "pg";
|
|
2
|
+
export declare function getUsagePool(): Pool | undefined;
|
|
1
3
|
export interface UsageRow {
|
|
2
4
|
sessionId: string;
|
|
3
5
|
rootId: string;
|
|
@@ -5,6 +7,7 @@ export interface UsageRow {
|
|
|
5
7
|
model: string;
|
|
6
8
|
turnId: string | null;
|
|
7
9
|
stepIndex: number | null;
|
|
10
|
+
scope?: string | null;
|
|
8
11
|
at: string;
|
|
9
12
|
input: number;
|
|
10
13
|
output: number;
|
|
@@ -12,6 +15,8 @@ export interface UsageRow {
|
|
|
12
15
|
cacheWrite: number;
|
|
13
16
|
instance: string;
|
|
14
17
|
}
|
|
18
|
+
export declare const USAGE_INSERT_SQL = "INSERT INTO token_usage\n (session_id, root_id, flow, model, turn_id, step_index, at,\n input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, instance, scope)\n VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13)";
|
|
19
|
+
export declare function usageInsertValues(r: UsageRow): unknown[];
|
|
15
20
|
type UsageListener = (row: UsageRow) => void;
|
|
16
21
|
export declare function onUsageRecorded(fn: UsageListener): () => void;
|
|
17
22
|
export declare function recordUsage(r: UsageRow): Promise<void>;
|
|
@@ -71,6 +76,7 @@ export interface LogsQuery {
|
|
|
71
76
|
before?: number;
|
|
72
77
|
flow?: string;
|
|
73
78
|
model?: string;
|
|
79
|
+
scope?: string;
|
|
74
80
|
instance?: string;
|
|
75
81
|
}
|
|
76
82
|
export interface UsageLogRow {
|
|
@@ -79,6 +85,8 @@ export interface UsageLogRow {
|
|
|
79
85
|
rootId: string;
|
|
80
86
|
flow: string | null;
|
|
81
87
|
model: string;
|
|
88
|
+
origin: "step" | "call";
|
|
89
|
+
scope: string | null;
|
|
82
90
|
at: string;
|
|
83
91
|
input: number;
|
|
84
92
|
output: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-usage-pg.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/token-usage-pg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token-usage-pg.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/token-usage-pg.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,9 @@ function getPool() {
|
|
|
18
18
|
}
|
|
19
19
|
return pool;
|
|
20
20
|
}
|
|
21
|
+
export function getUsagePool() {
|
|
22
|
+
return getPool();
|
|
23
|
+
}
|
|
21
24
|
const DDL = `CREATE TABLE IF NOT EXISTS token_usage (
|
|
22
25
|
id bigserial PRIMARY KEY,
|
|
23
26
|
session_id text NOT NULL,
|
|
@@ -36,7 +39,8 @@ const DDL = `CREATE TABLE IF NOT EXISTS token_usage (
|
|
|
36
39
|
CREATE INDEX IF NOT EXISTS token_usage_at_idx ON token_usage (at);
|
|
37
40
|
CREATE INDEX IF NOT EXISTS token_usage_root_idx ON token_usage (root_id);
|
|
38
41
|
ALTER TABLE token_usage ADD COLUMN IF NOT EXISTS instance text NOT NULL DEFAULT 'eve';
|
|
39
|
-
CREATE INDEX IF NOT EXISTS token_usage_instance_idx ON token_usage (instance)
|
|
42
|
+
CREATE INDEX IF NOT EXISTS token_usage_instance_idx ON token_usage (instance);
|
|
43
|
+
ALTER TABLE token_usage ADD COLUMN IF NOT EXISTS scope text;`;
|
|
40
44
|
function ensureDdl(p) {
|
|
41
45
|
if (!ddlDone) {
|
|
42
46
|
ddlDone = p
|
|
@@ -51,8 +55,26 @@ function ensureDdl(p) {
|
|
|
51
55
|
}
|
|
52
56
|
const INS = `INSERT INTO token_usage
|
|
53
57
|
(session_id, root_id, flow, model, turn_id, step_index, at,
|
|
54
|
-
input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, instance)
|
|
55
|
-
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)`;
|
|
58
|
+
input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, instance, scope)
|
|
59
|
+
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13)`;
|
|
60
|
+
export const USAGE_INSERT_SQL = INS;
|
|
61
|
+
export function usageInsertValues(r) {
|
|
62
|
+
return [
|
|
63
|
+
r.sessionId,
|
|
64
|
+
r.rootId,
|
|
65
|
+
r.flow,
|
|
66
|
+
r.model,
|
|
67
|
+
r.turnId,
|
|
68
|
+
r.stepIndex,
|
|
69
|
+
r.at,
|
|
70
|
+
r.input,
|
|
71
|
+
r.output,
|
|
72
|
+
r.cacheRead,
|
|
73
|
+
r.cacheWrite,
|
|
74
|
+
r.instance,
|
|
75
|
+
r.scope ?? null,
|
|
76
|
+
];
|
|
77
|
+
}
|
|
56
78
|
const usageListeners = new Set();
|
|
57
79
|
export function onUsageRecorded(fn) {
|
|
58
80
|
usageListeners.add(fn);
|
|
@@ -72,20 +94,7 @@ export async function recordUsage(r) {
|
|
|
72
94
|
return;
|
|
73
95
|
try {
|
|
74
96
|
await ensureDdl(p);
|
|
75
|
-
await p.query(INS,
|
|
76
|
-
r.sessionId,
|
|
77
|
-
r.rootId,
|
|
78
|
-
r.flow,
|
|
79
|
-
r.model,
|
|
80
|
-
r.turnId,
|
|
81
|
-
r.stepIndex,
|
|
82
|
-
r.at,
|
|
83
|
-
r.input,
|
|
84
|
-
r.output,
|
|
85
|
-
r.cacheRead,
|
|
86
|
-
r.cacheWrite,
|
|
87
|
-
r.instance,
|
|
88
|
-
]);
|
|
97
|
+
await p.query(INS, usageInsertValues(r));
|
|
89
98
|
}
|
|
90
99
|
catch (err) {
|
|
91
100
|
log.error({ err }, "token usage write failed — swallowed");
|
|
@@ -268,8 +277,12 @@ export async function readUsageLogsPage(q) {
|
|
|
268
277
|
conds.push(`flow = $${args.length}`);
|
|
269
278
|
}
|
|
270
279
|
if (q.model) {
|
|
271
|
-
args.push(q.model);
|
|
272
|
-
conds.push(`model = $${args.length}`);
|
|
280
|
+
args.push(q.model, `%/${q.model}`);
|
|
281
|
+
conds.push(`(model = $${args.length - 1} OR model LIKE $${args.length})`);
|
|
282
|
+
}
|
|
283
|
+
if (q.scope) {
|
|
284
|
+
args.push(q.scope);
|
|
285
|
+
conds.push(`scope = $${args.length}`);
|
|
273
286
|
}
|
|
274
287
|
if (q.instance) {
|
|
275
288
|
args.push(q.instance);
|
|
@@ -277,7 +290,7 @@ export async function readUsageLogsPage(q) {
|
|
|
277
290
|
}
|
|
278
291
|
const where = conds.length ? `WHERE ${conds.join(" AND ")}` : "";
|
|
279
292
|
args.push(q.limit + 1);
|
|
280
|
-
const res = await p.query(`SELECT id, session_id, root_id, flow, model, at,
|
|
293
|
+
const res = await p.query(`SELECT id, session_id, root_id, flow, model, turn_id, scope, at,
|
|
281
294
|
input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, instance
|
|
282
295
|
FROM token_usage ${where} ORDER BY id DESC LIMIT $${args.length}`, args);
|
|
283
296
|
const all = res.rows.map((r) => ({
|
|
@@ -286,6 +299,8 @@ export async function readUsageLogsPage(q) {
|
|
|
286
299
|
rootId: r.root_id,
|
|
287
300
|
flow: r.flow,
|
|
288
301
|
model: r.model,
|
|
302
|
+
origin: r.turn_id == null ? "call" : "step",
|
|
303
|
+
scope: r.scope ?? null,
|
|
289
304
|
at: new Date(r.at).toISOString(),
|
|
290
305
|
input: r.input_tokens,
|
|
291
306
|
output: r.output_tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-usage-pg.js","sourceRoot":"","sources":["../../../src/lib/budgets/token-usage-pg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAMpD,IAAI,IAAsB,CAAC;AAC3B,IAAI,OAAkC,CAAC;AAEvC,SAAS,OAAO;IAKd,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACtF,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QAGV,IAAI,GAAG,IAAI,IAAI,CAAC;YACd,gBAAgB,EAAE,GAAG;YACrB,GAAG,EAAE,CAAC;YACN,uBAAuB,EAAE,KAAK;YAC9B,aAAa,EAAE,MAAM;YACrB,iBAAiB,EAAE,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,GAAG,GAAG
|
|
1
|
+
{"version":3,"file":"token-usage-pg.js","sourceRoot":"","sources":["../../../src/lib/budgets/token-usage-pg.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,12 +16,23 @@ export interface PricedBreakdown extends UsageBreakdownRow {
|
|
|
16
16
|
costUsd: number;
|
|
17
17
|
costKind: CostKind;
|
|
18
18
|
}
|
|
19
|
+
export declare function mergeModelRows(rows: UsageBreakdownRow[], env?: NodeJS.ProcessEnv): UsageBreakdownRow[];
|
|
20
|
+
export declare function mergeModelSeries<T extends {
|
|
21
|
+
at: string;
|
|
22
|
+
model: string;
|
|
23
|
+
total: number;
|
|
24
|
+
}>(rows: T[], env?: NodeJS.ProcessEnv): T[];
|
|
19
25
|
export declare function priceModels(rows: UsageBreakdownRow[], env?: NodeJS.ProcessEnv): {
|
|
20
26
|
rows: PricedBreakdown[];
|
|
21
27
|
realUsd: number;
|
|
22
28
|
notionalUsd: number;
|
|
23
29
|
};
|
|
24
30
|
export declare function buildUsage(rawUrl: string, now: Date): Promise<{
|
|
31
|
+
seriesByModel: {
|
|
32
|
+
at: string;
|
|
33
|
+
model: string;
|
|
34
|
+
total: number;
|
|
35
|
+
}[];
|
|
25
36
|
byModel: PricedBreakdown[];
|
|
26
37
|
byFlow: (UsageBreakdownRow & {
|
|
27
38
|
costUsd: number;
|
|
@@ -55,11 +66,6 @@ export declare function buildUsage(rawUrl: string, now: Date): Promise<{
|
|
|
55
66
|
cacheRead: number;
|
|
56
67
|
cacheWrite: number;
|
|
57
68
|
}[];
|
|
58
|
-
seriesByModel: {
|
|
59
|
-
at: string;
|
|
60
|
-
model: string;
|
|
61
|
-
total: number;
|
|
62
|
-
}[];
|
|
63
69
|
range: AggregateQuery;
|
|
64
70
|
}>;
|
|
65
71
|
export declare function buildRunUsage(rootId: string, rows: UsageBreakdownRow[], now: Date, env?: NodeJS.ProcessEnv): {
|
|
@@ -89,6 +95,8 @@ export declare function buildUsageLogs(rawUrl: string, now: Date): Promise<{
|
|
|
89
95
|
rootId: string;
|
|
90
96
|
flow: string | null;
|
|
91
97
|
model: string;
|
|
98
|
+
origin: "step" | "call";
|
|
99
|
+
scope: string | null;
|
|
92
100
|
at: string;
|
|
93
101
|
input: number;
|
|
94
102
|
output: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAyC,MAAM,4BAA4B,CAAC;AAElG,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAGd,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAM7B,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAQ7C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,cAAc,CAezE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAyC,MAAM,4BAA4B,CAAC;AAElG,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAGd,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAM7B,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAQ7C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,cAAc,CAezE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAkBxD;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EAAE,EACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACzB,kBAAkB,EAAE,CAYtB;AAQD,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAiBD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,iBAAiB,EAAE,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,iBAAiB,EAAE,CAiBrB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACrF,IAAI,EAAE,CAAC,EAAE,EACT,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,CAAC,EAAE,CAUL;AAKD,wBAAgB,WAAW,CACzB,IAAI,EAAE,iBAAiB,EAAE,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC;IAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAenE;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwBzD;AAOD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EAAE,EACzB,GAAG,EAAE,IAAI,EACT,GAAG,GAAE,MAAM,CAAC,UAAwB;;;eAKzB,MAAM;eACN,MAAM;gBACL,MAAM;mBACH,MAAM;oBACL,MAAM;eACX,MAAM;;;;;;;;;;EAgClB;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;GAW7D"}
|
|
@@ -40,6 +40,7 @@ export function parseLogsQuery(rawUrl) {
|
|
|
40
40
|
before,
|
|
41
41
|
flow: u.searchParams.get("flow") ?? undefined,
|
|
42
42
|
model: u.searchParams.get("model") ?? undefined,
|
|
43
|
+
scope: u.searchParams.get("scope") || undefined,
|
|
43
44
|
instance: u.searchParams.get("instance") || undefined,
|
|
44
45
|
};
|
|
45
46
|
}
|
|
@@ -68,6 +69,39 @@ function catalogId(recorded, env) {
|
|
|
68
69
|
const i = recorded.indexOf("/");
|
|
69
70
|
return i >= 0 ? recorded.slice(i + 1) : recorded;
|
|
70
71
|
}
|
|
72
|
+
export function mergeModelRows(rows, env = process.env) {
|
|
73
|
+
const acc = new Map();
|
|
74
|
+
for (const r of rows) {
|
|
75
|
+
const key = catalogId(r.key ?? "", env);
|
|
76
|
+
const cur = acc.get(key);
|
|
77
|
+
if (!cur) {
|
|
78
|
+
acc.set(key, { ...r, key });
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
cur.input += r.input;
|
|
82
|
+
cur.output += r.output;
|
|
83
|
+
cur.total += r.total;
|
|
84
|
+
cur.requests += r.requests;
|
|
85
|
+
if (r.cacheRead != null)
|
|
86
|
+
cur.cacheRead = (cur.cacheRead ?? 0) + r.cacheRead;
|
|
87
|
+
if (r.cacheWrite != null)
|
|
88
|
+
cur.cacheWrite = (cur.cacheWrite ?? 0) + r.cacheWrite;
|
|
89
|
+
}
|
|
90
|
+
return [...acc.values()].sort((a, b) => b.total - a.total);
|
|
91
|
+
}
|
|
92
|
+
export function mergeModelSeries(rows, env = process.env) {
|
|
93
|
+
const acc = new Map();
|
|
94
|
+
for (const r of rows) {
|
|
95
|
+
const model = catalogId(r.model, env);
|
|
96
|
+
const k = `${r.at}|${model}`;
|
|
97
|
+
const cur = acc.get(k);
|
|
98
|
+
if (cur)
|
|
99
|
+
cur.total += r.total;
|
|
100
|
+
else
|
|
101
|
+
acc.set(k, { ...r, model });
|
|
102
|
+
}
|
|
103
|
+
return [...acc.values()];
|
|
104
|
+
}
|
|
71
105
|
export function priceModels(rows, env = process.env) {
|
|
72
106
|
let realUsd = 0;
|
|
73
107
|
let notionalUsd = 0;
|
|
@@ -89,8 +123,8 @@ export function priceModels(rows, env = process.env) {
|
|
|
89
123
|
export async function buildUsage(rawUrl, now) {
|
|
90
124
|
const q = parseUsageQuery(rawUrl, now);
|
|
91
125
|
const agg = await readUsageAggregate(q);
|
|
92
|
-
const { byRoot, byModel, byFlow, byInstance, ...rest } = agg;
|
|
93
|
-
const priced = priceModels(byModel);
|
|
126
|
+
const { byRoot, byModel, byFlow, byInstance, seriesByModel, ...rest } = agg;
|
|
127
|
+
const priced = priceModels(mergeModelRows(byModel));
|
|
94
128
|
const mixed = (r) => ({
|
|
95
129
|
...r,
|
|
96
130
|
costUsd: 0,
|
|
@@ -99,6 +133,7 @@ export async function buildUsage(rawUrl, now) {
|
|
|
99
133
|
return {
|
|
100
134
|
range: q,
|
|
101
135
|
...rest,
|
|
136
|
+
seriesByModel: mergeModelSeries(seriesByModel),
|
|
102
137
|
byModel: priced.rows,
|
|
103
138
|
byFlow: byFlow.map(mixed),
|
|
104
139
|
byInstance: byInstance.map(mixed),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/lib/budgets/usage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/lib/budgets/usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambient-session.d.ts","sourceRoot":"","sources":["../../../src/lib/control-plane/ambient-session.ts"],"names":[],"mappings":"AAsBA,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CASrD;AAKD,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAUlD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const EVE_CONTEXT_STORAGE_KEY = Symbol.for("eve.context-storage");
|
|
2
|
+
const SESSION_ID_KEY = { name: "eve.sessionId" };
|
|
3
|
+
const PARENT_SESSION_KEY = { name: "eve.parentSession" };
|
|
4
|
+
function ambientContext() {
|
|
5
|
+
const als = globalThis[EVE_CONTEXT_STORAGE_KEY];
|
|
6
|
+
const ctx = als?.getStore?.();
|
|
7
|
+
return ctx && typeof ctx.get === "function" ? ctx : undefined;
|
|
8
|
+
}
|
|
9
|
+
export function ambientSessionId() {
|
|
10
|
+
const ctx = ambientContext();
|
|
11
|
+
if (!ctx)
|
|
12
|
+
return undefined;
|
|
13
|
+
try {
|
|
14
|
+
const sid = ctx.get(SESSION_ID_KEY);
|
|
15
|
+
return typeof sid === "string" && sid ? sid : undefined;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function ambientRootId() {
|
|
22
|
+
const ctx = ambientContext();
|
|
23
|
+
if (!ctx)
|
|
24
|
+
return undefined;
|
|
25
|
+
try {
|
|
26
|
+
const parent = ctx.get(PARENT_SESSION_KEY);
|
|
27
|
+
const root = parent?.rootSessionId;
|
|
28
|
+
return typeof root === "string" && root ? root : undefined;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=ambient-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambient-session.js","sourceRoot":"","sources":["../../../src/lib/control-plane/ambient-session.ts"],"names":[],"mappings":"AASA,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAClE,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;AAEjD,MAAM,kBAAkB,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;AAEzD,SAAS,cAAc;IACrB,MAAM,GAAG,GAAI,UAAsC,CAAC,uBAAuB,CAE9D,CAAC;IACd,MAAM,GAAG,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC9B,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACpC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAA4C,CAAC;QACtF,MAAM,IAAI,GAAG,MAAM,EAAE,aAAa,CAAC;QACnC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -2,11 +2,16 @@ import type { LanguageModel } from "ai";
|
|
|
2
2
|
import type { ModelCatalogMeta } from "./model-catalog.js";
|
|
3
3
|
export declare const CUSTOM_MODEL_PREFIX = "custom:";
|
|
4
4
|
export declare const CUSTOM_PROVIDER_ID_RE: RegExp;
|
|
5
|
+
export interface CustomModelPrice {
|
|
6
|
+
inputPerMTok: number;
|
|
7
|
+
outputPerMTok: number;
|
|
8
|
+
}
|
|
5
9
|
export interface CustomProvider {
|
|
6
10
|
id: string;
|
|
7
11
|
label: string;
|
|
8
12
|
baseUrl: string;
|
|
9
13
|
models: string[];
|
|
14
|
+
prices: Record<string, CustomModelPrice>;
|
|
10
15
|
masked: string | null;
|
|
11
16
|
updatedAt: string;
|
|
12
17
|
}
|
|
@@ -16,6 +21,7 @@ export interface CustomProviderWrite {
|
|
|
16
21
|
baseUrl: string;
|
|
17
22
|
apiKey?: string;
|
|
18
23
|
models: string[];
|
|
24
|
+
prices?: Record<string, CustomModelPrice>;
|
|
19
25
|
}
|
|
20
26
|
export declare function customProvidersPath(env?: NodeJS.ProcessEnv): string;
|
|
21
27
|
export declare function readCustomProviders(file?: string): CustomProvider[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-providers.d.ts","sourceRoot":"","sources":["../../../src/lib/models/custom-providers.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAMxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQ3D,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,qBAAqB,QAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-providers.d.ts","sourceRoot":"","sources":["../../../src/lib/models/custom-providers.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAMxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQ3D,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AAKjE,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEzC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3C;AAeD,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAIhF;AAkCD,wBAAgB,mBAAmB,CAAC,IAAI,SAAwB,GAAG,cAAc,EAAE,CAIlF;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,SAAwB,GAC3B,cAAc,CAyBhB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAwB,GAAG,OAAO,CAOtF;AAGD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAwB,GAAG,MAAM,GAAG,IAAI,CAEhG;AAID,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAM3F;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,SAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAoBhG;AAID,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,WAAW,CAAC,CAoBtB;AAID,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC;AAmBlG,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAG7D;AACD,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AAKD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,GAAG,IAAI,CActB"}
|
|
@@ -34,6 +34,7 @@ function present(id, p) {
|
|
|
34
34
|
label: p.label,
|
|
35
35
|
baseUrl: p.baseUrl,
|
|
36
36
|
models: [...p.models],
|
|
37
|
+
prices: { ...(p.prices ?? {}) },
|
|
37
38
|
masked: p.apiKey ? maskKey(p.apiKey) : null,
|
|
38
39
|
updatedAt: p.updatedAt,
|
|
39
40
|
};
|
|
@@ -71,11 +72,14 @@ export function writeCustomProvider(input, file = customProvidersPath()) {
|
|
|
71
72
|
: input.apiKey.trim()
|
|
72
73
|
? input.apiKey.trim()
|
|
73
74
|
: undefined;
|
|
75
|
+
const models = [...new Set(input.models.map((m) => m.trim()).filter(Boolean))];
|
|
76
|
+
const prices = Object.fromEntries(Object.entries(input.prices ?? {}).filter(([model]) => models.includes(model)));
|
|
74
77
|
const next = {
|
|
75
78
|
label: input.label.trim(),
|
|
76
79
|
baseUrl: input.baseUrl,
|
|
77
|
-
models
|
|
80
|
+
models,
|
|
78
81
|
updatedAt: new Date().toISOString(),
|
|
82
|
+
...(Object.keys(prices).length ? { prices } : {}),
|
|
79
83
|
...(apiKey ? { apiKey } : {}),
|
|
80
84
|
};
|
|
81
85
|
providers[input.id] = next;
|
|
@@ -111,12 +115,18 @@ export function customCatalogMeta(file = customProvidersPath()) {
|
|
|
111
115
|
const out = {};
|
|
112
116
|
for (const [id, p] of Object.entries(readRawStore(file))) {
|
|
113
117
|
for (const model of p.models) {
|
|
118
|
+
const price = p.prices?.[model];
|
|
114
119
|
out[customModelId(id, model)] = {
|
|
115
120
|
label: `${p.label} · ${model}`,
|
|
116
121
|
provider: "openai",
|
|
117
122
|
gateway: `${CUSTOM_MODEL_PREFIX}${id}`,
|
|
118
123
|
efforts: [...CUSTOM_EFFORTS],
|
|
119
|
-
|
|
124
|
+
...(price
|
|
125
|
+
? {
|
|
126
|
+
price: { inputPerMTok: price.inputPerMTok, outputPerMTok: price.outputPerMTok },
|
|
127
|
+
costKind: "real",
|
|
128
|
+
}
|
|
129
|
+
: { costKind: "notional" }),
|
|
120
130
|
};
|
|
121
131
|
}
|
|
122
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-providers.js","sourceRoot":"","sources":["../../../src/lib/models/custom-providers.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAKpD,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-providers.js","sourceRoot":"","sources":["../../../src/lib/models/custom-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export type ModelEventOutcome = "fallback" | "backup" | "exhausted";
|
|
2
|
+
export interface ModelEvent {
|
|
3
|
+
at: string;
|
|
4
|
+
instance: string;
|
|
5
|
+
key: string | null;
|
|
6
|
+
sessionId: string | null;
|
|
7
|
+
rootId: string | null;
|
|
8
|
+
main: string | null;
|
|
9
|
+
errorCode: string | null;
|
|
10
|
+
error: string;
|
|
11
|
+
elapsedMs: number | null;
|
|
12
|
+
outcome: ModelEventOutcome;
|
|
13
|
+
legModel: string | null;
|
|
14
|
+
}
|
|
15
|
+
export interface ErrorLink {
|
|
16
|
+
name?: string;
|
|
17
|
+
message: string;
|
|
18
|
+
code?: string;
|
|
19
|
+
statusCode?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function modelEventFrom(args: {
|
|
22
|
+
key: string | undefined;
|
|
23
|
+
main: string | undefined;
|
|
24
|
+
chain: ErrorLink[];
|
|
25
|
+
elapsedMs: number;
|
|
26
|
+
outcome: ModelEventOutcome;
|
|
27
|
+
legModel?: string;
|
|
28
|
+
}, ids: {
|
|
29
|
+
sessionId?: string;
|
|
30
|
+
rootId?: string;
|
|
31
|
+
} | undefined, env?: NodeJS.ProcessEnv, at?: string): ModelEvent;
|
|
32
|
+
export declare function callerIds(): {
|
|
33
|
+
sessionId?: string;
|
|
34
|
+
rootId?: string;
|
|
35
|
+
} | undefined;
|
|
36
|
+
export declare function recordModelEvent(evt: ModelEvent): void;
|
|
37
|
+
export interface ModelEventRow extends ModelEvent {
|
|
38
|
+
id: number;
|
|
39
|
+
}
|
|
40
|
+
export interface ModelEventsQuery {
|
|
41
|
+
limit: number;
|
|
42
|
+
before?: number;
|
|
43
|
+
key?: string;
|
|
44
|
+
rootId?: string;
|
|
45
|
+
instance?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface ModelEventsPage {
|
|
48
|
+
rows: ModelEventRow[];
|
|
49
|
+
nextCursor: number | null;
|
|
50
|
+
hasMore: boolean;
|
|
51
|
+
}
|
|
52
|
+
export declare function parseModelEventsQuery(rawUrl: string): ModelEventsQuery;
|
|
53
|
+
export declare function readModelEventsPage(q: ModelEventsQuery): Promise<ModelEventsPage>;
|
|
54
|
+
//# sourceMappingURL=model-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-events.d.ts","sourceRoot":"","sources":["../../../src/lib/observability/model-events.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA4CD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE;IACJ,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,GAAG,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACxD,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,EAAE,GAAE,MAAiC,GACpC,UAAU,CAiBZ;AAED,wBAAgB,SAAS,IAAI;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAM/E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAsBtD;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAgBtE;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA4CvF"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { getUsagePool } from "../budgets/token-usage-pg.js";
|
|
2
|
+
import { ambientRootId, ambientSessionId } from "../control-plane/ambient-session.js";
|
|
3
|
+
import { currentCallContext } from "../control-plane/call-context.js";
|
|
4
|
+
import { logger } from "./logger.js";
|
|
5
|
+
const log = logger.child({ module: "model-events" });
|
|
6
|
+
const DDL = `CREATE TABLE IF NOT EXISTS model_events (
|
|
7
|
+
id bigserial PRIMARY KEY,
|
|
8
|
+
at timestamptz NOT NULL,
|
|
9
|
+
instance text NOT NULL DEFAULT 'eve',
|
|
10
|
+
key text,
|
|
11
|
+
session_id text,
|
|
12
|
+
root_id text,
|
|
13
|
+
main text,
|
|
14
|
+
error_code text,
|
|
15
|
+
error text NOT NULL,
|
|
16
|
+
elapsed_ms int,
|
|
17
|
+
outcome text NOT NULL,
|
|
18
|
+
leg_model text
|
|
19
|
+
);
|
|
20
|
+
CREATE INDEX IF NOT EXISTS model_events_at_idx ON model_events (at);
|
|
21
|
+
CREATE INDEX IF NOT EXISTS model_events_root_idx ON model_events (root_id);`;
|
|
22
|
+
const INS = `INSERT INTO model_events
|
|
23
|
+
(at, instance, key, session_id, root_id, main, error_code, error, elapsed_ms, outcome, leg_model)
|
|
24
|
+
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11)`;
|
|
25
|
+
let ddlDone;
|
|
26
|
+
function ensureDdl(p) {
|
|
27
|
+
if (!ddlDone) {
|
|
28
|
+
ddlDone = p
|
|
29
|
+
.query(DDL)
|
|
30
|
+
.then(() => undefined)
|
|
31
|
+
.catch((err) => {
|
|
32
|
+
ddlDone = undefined;
|
|
33
|
+
throw err;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return ddlDone;
|
|
37
|
+
}
|
|
38
|
+
export function modelEventFrom(args, ids, env = process.env, at = new Date().toISOString()) {
|
|
39
|
+
const code = args.chain.find((l) => l.code)?.code;
|
|
40
|
+
const status = args.chain.find((l) => l.statusCode != null)?.statusCode;
|
|
41
|
+
const sessionId = ids?.sessionId ?? null;
|
|
42
|
+
return {
|
|
43
|
+
at,
|
|
44
|
+
instance: env.EVE_INSTANCE ?? "eve",
|
|
45
|
+
key: args.key ?? null,
|
|
46
|
+
sessionId,
|
|
47
|
+
rootId: ids?.rootId ?? sessionId,
|
|
48
|
+
main: args.main ?? null,
|
|
49
|
+
errorCode: code ?? (status != null ? `HTTP_${status}` : null),
|
|
50
|
+
error: (args.chain.map((l) => l.message).join(" ← ") || "unknown error").slice(0, 2000),
|
|
51
|
+
elapsedMs: Math.max(0, Math.round(args.elapsedMs)),
|
|
52
|
+
outcome: args.outcome,
|
|
53
|
+
legModel: args.legModel ?? null,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function callerIds() {
|
|
57
|
+
const ctx = currentCallContext();
|
|
58
|
+
if (ctx)
|
|
59
|
+
return ctx;
|
|
60
|
+
const sessionId = ambientSessionId();
|
|
61
|
+
if (!sessionId)
|
|
62
|
+
return undefined;
|
|
63
|
+
return { sessionId, rootId: ambientRootId() ?? sessionId };
|
|
64
|
+
}
|
|
65
|
+
export function recordModelEvent(evt) {
|
|
66
|
+
const p = getUsagePool();
|
|
67
|
+
if (!p)
|
|
68
|
+
return;
|
|
69
|
+
ensureDdl(p)
|
|
70
|
+
.then(() => p.query(INS, [
|
|
71
|
+
evt.at,
|
|
72
|
+
evt.instance,
|
|
73
|
+
evt.key,
|
|
74
|
+
evt.sessionId,
|
|
75
|
+
evt.rootId,
|
|
76
|
+
evt.main,
|
|
77
|
+
evt.errorCode,
|
|
78
|
+
evt.error,
|
|
79
|
+
evt.elapsedMs,
|
|
80
|
+
evt.outcome,
|
|
81
|
+
evt.legModel,
|
|
82
|
+
]))
|
|
83
|
+
.catch((err) => {
|
|
84
|
+
log.warn({ err: String(err), key: evt.key }, "model event write failed — dropped");
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
export function parseModelEventsQuery(rawUrl) {
|
|
88
|
+
const u = new URL(rawUrl, "http://localhost");
|
|
89
|
+
let limit = 50;
|
|
90
|
+
const l = u.searchParams.get("limit");
|
|
91
|
+
if (l != null) {
|
|
92
|
+
const n = Number(l);
|
|
93
|
+
if (Number.isFinite(n) && n > 0)
|
|
94
|
+
limit = Math.min(n, 200);
|
|
95
|
+
}
|
|
96
|
+
const b = u.searchParams.get("before");
|
|
97
|
+
return {
|
|
98
|
+
limit,
|
|
99
|
+
before: b != null && Number.isFinite(Number(b)) ? Number(b) : undefined,
|
|
100
|
+
key: u.searchParams.get("key") || undefined,
|
|
101
|
+
rootId: u.searchParams.get("rootId") || undefined,
|
|
102
|
+
instance: u.searchParams.get("instance") || undefined,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export async function readModelEventsPage(q) {
|
|
106
|
+
const p = getUsagePool();
|
|
107
|
+
if (!p)
|
|
108
|
+
return { rows: [], nextCursor: null, hasMore: false };
|
|
109
|
+
try {
|
|
110
|
+
await ensureDdl(p);
|
|
111
|
+
const conds = [];
|
|
112
|
+
const args = [];
|
|
113
|
+
const add = (sql, v) => {
|
|
114
|
+
args.push(v);
|
|
115
|
+
conds.push(`${sql} $${args.length}`);
|
|
116
|
+
};
|
|
117
|
+
if (q.before != null)
|
|
118
|
+
add("id <", q.before);
|
|
119
|
+
if (q.key)
|
|
120
|
+
add("key =", q.key);
|
|
121
|
+
if (q.rootId)
|
|
122
|
+
add("root_id =", q.rootId);
|
|
123
|
+
if (q.instance)
|
|
124
|
+
add("instance =", q.instance);
|
|
125
|
+
const where = conds.length ? `WHERE ${conds.join(" AND ")}` : "";
|
|
126
|
+
args.push(q.limit + 1);
|
|
127
|
+
const res = await p.query(`SELECT id, at, instance, key, session_id, root_id, main, error_code, error,
|
|
128
|
+
elapsed_ms, outcome, leg_model
|
|
129
|
+
FROM model_events ${where} ORDER BY id DESC LIMIT $${args.length}`, args);
|
|
130
|
+
const all = res.rows.map((r) => ({
|
|
131
|
+
id: Number(r.id),
|
|
132
|
+
at: new Date(r.at).toISOString(),
|
|
133
|
+
instance: r.instance,
|
|
134
|
+
key: r.key,
|
|
135
|
+
sessionId: r.session_id,
|
|
136
|
+
rootId: r.root_id,
|
|
137
|
+
main: r.main,
|
|
138
|
+
errorCode: r.error_code,
|
|
139
|
+
error: r.error,
|
|
140
|
+
elapsedMs: r.elapsed_ms,
|
|
141
|
+
outcome: r.outcome,
|
|
142
|
+
legModel: r.leg_model,
|
|
143
|
+
}));
|
|
144
|
+
const hasMore = all.length > q.limit;
|
|
145
|
+
const rows = hasMore ? all.slice(0, q.limit) : all;
|
|
146
|
+
return { rows, nextCursor: hasMore ? (rows[rows.length - 1]?.id ?? null) : null, hasMore };
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
log.error({ err: String(err) }, "model events read failed — returning empty");
|
|
150
|
+
return { rows: [], nextCursor: null, hasMore: false };
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=model-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-events.js","sourceRoot":"","sources":["../../../src/lib/observability/model-events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;AA4BrD,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;4EAegE,CAAC;AAE7E,MAAM,GAAG,GAAG;;8CAEkC,CAAC;AAE/C,IAAI,OAAkC,CAAC;AACvC,SAAS,SAAS,CAAC,CAAO;IACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,CAAC;aACR,KAAK,CAAC,GAAG,CAAC;aACV,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACrB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,GAAG,SAAS,CAAC;YACpB,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAgBD,MAAM,UAAU,cAAc,CAC5B,IAOC,EACD,GAAwD,EACxD,MAAyB,OAAO,CAAC,GAAG,EACpC,KAAa,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,UAAU,CAAC;IACxE,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC;IACzC,OAAO;QACL,EAAE;QACF,QAAQ,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK;QACnC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;QACrB,SAAS;QACT,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;QACvF,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,SAAS,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAe;IAC9C,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IACzB,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,SAAS,CAAC,CAAC,CAAC;SACT,IAAI,CAAC,GAAG,EAAE,CACT,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACX,GAAG,CAAC,EAAE;QACN,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,GAAG;QACP,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,IAAI;QACR,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,KAAK;QACT,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,OAAO;QACX,GAAG,CAAC,QAAQ;KACb,CAAC,CACH;SACA,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACP,CAAC;AAoBD,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO;QACL,KAAK;QACL,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACvE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS;QAC3C,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS;QACjD,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS;KACtD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,CAAmB;IAC3D,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IACzB,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,CAAU,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI;YAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,GAAG;YAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,MAAM;YAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,KAAK,CACvB;;2BAEqB,KAAK,4BAA4B,IAAI,CAAC,MAAM,EAAE,EACnE,IAAI,CACL,CAAC;QACF,MAAM,GAAG,GAAoB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,MAAM,EAAE,CAAC,CAAC,OAAO;YACjB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,SAAS;SACtB,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;IAC7F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,4CAA4C,CAAC,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;AACH,CAAC"}
|