@shpitdev/convex-cliproxy-observability 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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.1
|
|
4
|
+
|
|
5
|
+
- `fromOpenRouterSpan` adds a BYOK call's `byokInferenceUsageCost` to OpenRouter's charge, so `cost.total` is the call's inference cost instead of OpenRouter's fee alone. A BYOK span without that cost now has `cost.kind: "unknown"`. The structural `OpenRouterSpanInput` accepts `isByok` and `byokInferenceUsageCost`.
|
|
6
|
+
- Native plugin/exporter source, native reported version (0.2.0), capture schema and ABI are unchanged. Updating the npm package does not require a native host upgrade.
|
|
7
|
+
|
|
3
8
|
## 0.3.0
|
|
4
9
|
|
|
5
10
|
- `ModelCallV1` contract change: native CLIProxy calls now carry a derived `providerName`, which was always absent for them before. New optional fields are `providerProvenance` (`observed`, `derived_from_wire_format`, `derived_from_model` or `unavailable`), `costProvenance` (mirrors `cost.kind`) and `cacheCreationInputTokens`. Anthropic Messages `inputTokens` now counts an absent cache read or write as 0 instead of leaving input unknown, and usage measurements name `client_protocol_usage_v2`. Code that constructs `ModelCallV1` needs no new fields.
|
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ Token fields use the OpenRouter names and unit (tokens per call): `inputTokens`,
|
|
|
54
54
|
|
|
55
55
|
Every reported native count also stays in `usage` as a `UsageMeasurement` with its `nativeField`, `finality` and `semanticsVersion: "client_protocol_usage_v2"`.
|
|
56
56
|
|
|
57
|
-
Cost is never estimated. Native calls keep `cost: { kind: "unknown" }` with `costProvenance: "unknown"`, because CLIProxy's client protocols report no price. `fromOpenRouterSpan` keeps OpenRouter's charge as a `proxy_reported` USD cost.
|
|
57
|
+
Cost is never estimated. Native calls keep `cost: { kind: "unknown" }` with `costProvenance: "unknown"`, because CLIProxy's client protocols report no price. `fromOpenRouterSpan` keeps OpenRouter's charge as a `proxy_reported` USD cost. On a BYOK call that charge is only OpenRouter's fee, so the adapter adds `byokInferenceUsageCost`, the inference billed to the caller's own provider key; a BYOK span without it has an `unknown` cost.
|
|
58
58
|
|
|
59
59
|
`providerProvenance` and `costProvenance` are optional in `ModelCallV1`. Summaries projected by 0.3.0 or later store them. For older summaries, `getCall` and `pageRecentSummaries` derive them from the facts those summaries recorded. The same reads apply the current token rule to an older summary's final native counts, which adds `cacheCreationInputTokens` and counts absent Messages cache counts as 0. Stored rows are not rewritten.
|
|
60
60
|
|
|
@@ -65,7 +65,7 @@ Projected summaries of the real recordings measure 1,783 to 2,934 bytes. A strea
|
|
|
65
65
|
- The OpenRouter component stores costs as bare numbers with no currency; `fromOpenRouterSpan` labels them USD. CLIProxy records no cost.
|
|
66
66
|
- Provenance exists only in `ModelCallV1`. The OpenRouter component's own summaries carry neither provider nor cost provenance.
|
|
67
67
|
- OpenRouter's `providerName` is the upstream it routed to, as OpenRouter names it (for example `OpenAI`). CLIProxy's is a lowercase API family or model-name guess. It is not authoritative until the native plugin records the selected auth's provider.
|
|
68
|
-
-
|
|
68
|
+
- OpenRouter component summaries from 0.4.2 carry `cacheCreationInputTokens`, `isByok`, and `byokInferenceUsageCost`; the structural `OpenRouterSpanInput` accepts all three. Older summaries lack them, so their cache writes stay unset and a BYOK call's cost is its fee alone.
|
|
69
69
|
- OpenRouter summaries expose input, output and total tokens; its cached and reasoning counts are only on full spans (`exportFullSpan`).
|
|
70
70
|
|
|
71
71
|
## Parser provenance
|
|
@@ -135,6 +135,9 @@ export type OpenRouterSpanInput = {
|
|
|
135
135
|
receivedAt: number;
|
|
136
136
|
totalCost?: number;
|
|
137
137
|
openrouterUsageCost?: number;
|
|
138
|
+
isByok?: boolean;
|
|
139
|
+
/** What a BYOK call's inference cost on the caller's own provider key, as OpenRouter reports it. */
|
|
140
|
+
byokInferenceUsageCost?: number;
|
|
138
141
|
traceId?: string;
|
|
139
142
|
spanId?: string;
|
|
140
143
|
parentSpanId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model-call/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model-call/index.ts"],"names":[],"mappings":"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"}
|
package/dist/model-call/index.js
CHANGED
|
@@ -74,9 +74,13 @@ export function fromOpenRouterSpan(span) {
|
|
|
74
74
|
semanticsVersion: "stored_openrouter_span_v1",
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
+
const isCost = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
77
78
|
const reported = span.totalCost ?? span.openrouterUsageCost;
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
// A BYOK charge is only OpenRouter's fee: the provider bills the inference to the caller's own
|
|
80
|
+
// key. Without that inference cost the call's cost is unknown, not the fee alone.
|
|
81
|
+
const inference = span.isByok === true ? span.byokInferenceUsageCost : 0;
|
|
82
|
+
const cost = isCost(reported) && isCost(inference)
|
|
83
|
+
? { kind: "proxy_reported", currency: "USD", total: String(reported + inference) }
|
|
80
84
|
: { kind: "unknown" };
|
|
81
85
|
return {
|
|
82
86
|
schemaVersion: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model-call/index.ts"],"names":[],"mappings":"AA8CA,uFAAuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,aAAa;IACb,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,0BAA0B;CAClB,CAAC;AAiFX;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAqC;IACvE,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,QAAQ;IAChB,iBAAiB,EAAE,QAAQ;IAC3B,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,QAAQ;CACtB,CAAC;AACF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAA6C;IAChF,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,UAAU,EAAE,QAAQ,CAAC;CACvB,CAAC;AACF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAGC;IAED,IAAI,KAAK,CAAC,gBAAgB;QACxB,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;IAClF,IACE,KAAK,CAAC,iBAAiB,KAAK,SAAS;QACrC,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,KAAK,CAAC,iBAAiB,CAAC;QAE/D,OAAO;YACL,YAAY,EAAE,uBAAuB,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC9D,kBAAkB,EAAE,0BAA0B;SAC/C,CAAC;IACJ,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAC9D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CACtC,EAAE,CAAC,CAAC,CAAC,CAAC;IACP,OAAO,YAAY;QACjB,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE;QAC5D,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;AACrE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model-call/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shpitdev/convex-cliproxy-observability",
|
|
3
3
|
"description": "Private stock CLIProxy capture, protocol projections, and bounded model-call reads.",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.1",
|
|
5
5
|
"author": "Anand Pant",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": "github:anandpant/convex-components",
|
package/src/model-call/index.ts
CHANGED
|
@@ -190,6 +190,9 @@ export type OpenRouterSpanInput = {
|
|
|
190
190
|
receivedAt: number;
|
|
191
191
|
totalCost?: number;
|
|
192
192
|
openrouterUsageCost?: number;
|
|
193
|
+
isByok?: boolean;
|
|
194
|
+
/** What a BYOK call's inference cost on the caller's own provider key, as OpenRouter reports it. */
|
|
195
|
+
byokInferenceUsageCost?: number;
|
|
193
196
|
traceId?: string;
|
|
194
197
|
spanId?: string;
|
|
195
198
|
parentSpanId?: string;
|
|
@@ -242,10 +245,15 @@ export function fromOpenRouterSpan(span: OpenRouterSpanInput): ModelCallV1 {
|
|
|
242
245
|
semanticsVersion: "stored_openrouter_span_v1",
|
|
243
246
|
});
|
|
244
247
|
}
|
|
248
|
+
const isCost = (value: unknown): value is number =>
|
|
249
|
+
typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
245
250
|
const reported = span.totalCost ?? span.openrouterUsageCost;
|
|
251
|
+
// A BYOK charge is only OpenRouter's fee: the provider bills the inference to the caller's own
|
|
252
|
+
// key. Without that inference cost the call's cost is unknown, not the fee alone.
|
|
253
|
+
const inference = span.isByok === true ? span.byokInferenceUsageCost : 0;
|
|
246
254
|
const cost: ModelCallCost =
|
|
247
|
-
|
|
248
|
-
? { kind: "proxy_reported", currency: "USD", total: String(reported) }
|
|
255
|
+
isCost(reported) && isCost(inference)
|
|
256
|
+
? { kind: "proxy_reported", currency: "USD", total: String(reported + inference) }
|
|
249
257
|
: { kind: "unknown" };
|
|
250
258
|
return {
|
|
251
259
|
schemaVersion: 1,
|