@frugalco/frugal-sdk-node 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -10
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +130 -4
- package/dist/config.js.map +1 -1
- package/dist/duplicate-filter.d.ts +46 -0
- package/dist/duplicate-filter.d.ts.map +1 -0
- package/dist/duplicate-filter.js +168 -0
- package/dist/duplicate-filter.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/instrument.d.ts +36 -1
- package/dist/instrument.d.ts.map +1 -1
- package/dist/instrument.js +242 -22
- package/dist/instrument.js.map +1 -1
- package/dist/otel.d.ts +2 -0
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +17 -2
- package/dist/otel.js.map +1 -1
- package/dist/prompt-analyzer.d.ts +12 -1
- package/dist/prompt-analyzer.d.ts.map +1 -1
- package/dist/prompt-analyzer.js +185 -14
- package/dist/prompt-analyzer.js.map +1 -1
- package/dist/providers.d.ts +87 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +128 -0
- package/dist/providers.js.map +1 -0
- package/dist/semconv.d.ts +12 -0
- package/dist/semconv.d.ts.map +1 -1
- package/dist/semconv.js +31 -0
- package/dist/semconv.js.map +1 -1
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +15 -2
- package/dist/streams.js.map +1 -1
- package/dist/track.d.ts +32 -4
- package/dist/track.d.ts.map +1 -1
- package/dist/track.js +2 -1
- package/dist/track.js.map +1 -1
- package/dist/wrappers/anthropic.d.ts.map +1 -1
- package/dist/wrappers/anthropic.js +9 -1
- package/dist/wrappers/anthropic.js.map +1 -1
- package/dist/wrappers/batch.d.ts +11 -0
- package/dist/wrappers/batch.d.ts.map +1 -0
- package/dist/wrappers/batch.js +338 -0
- package/dist/wrappers/batch.js.map +1 -0
- package/dist/wrappers/openai.d.ts.map +1 -1
- package/dist/wrappers/openai.js +37 -30
- package/dist/wrappers/openai.js.map +1 -1
- package/dist/wrappers/patching.d.ts +10 -0
- package/dist/wrappers/patching.d.ts.map +1 -0
- package/dist/wrappers/patching.js +38 -0
- package/dist/wrappers/patching.js.map +1 -0
- package/package.json +1 -1
package/dist/semconv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semconv.js","sourceRoot":"","sources":["../src/semconv.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AAEtC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAC9B,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"semconv.js","sourceRoot":"","sources":["../src/semconv.ts"],"names":[],"mappings":"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"}
|
package/dist/streams.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI,CAC5C,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;AAEV,qBAAa,gBAAgB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAKlE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAS;gBAGP,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAGjD,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI,CAC5C,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;AAEV,qBAAa,gBAAgB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAKlE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAS;gBAGP,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAGjD,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;IA0C1C,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,aAAa;CAStB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EACnC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,kBAAkB,GAC1B,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAU5B"}
|
package/dist/streams.js
CHANGED
|
@@ -52,17 +52,30 @@ export class AsyncStreamProxy {
|
|
|
52
52
|
},
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
+
// Finalize runs inside the customer's `for await` loop (next/return/throw),
|
|
56
|
+
// so an emission failure must be swallowed here — there is no wrapper-level
|
|
57
|
+
// safe() on this path.
|
|
55
58
|
finalizeSuccess() {
|
|
56
59
|
if (this.finalized)
|
|
57
60
|
return;
|
|
58
61
|
this.finalized = true;
|
|
59
|
-
|
|
62
|
+
try {
|
|
63
|
+
this.emit.success(this.usage);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// never break the customer's stream iteration
|
|
67
|
+
}
|
|
60
68
|
}
|
|
61
69
|
finalizeError(err) {
|
|
62
70
|
if (this.finalized)
|
|
63
71
|
return;
|
|
64
72
|
this.finalized = true;
|
|
65
|
-
|
|
73
|
+
try {
|
|
74
|
+
this.emit.error(err);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// never break the customer's stream iteration
|
|
78
|
+
}
|
|
66
79
|
}
|
|
67
80
|
}
|
|
68
81
|
/**
|
package/dist/streams.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,qDAAqD;AASrD,MAAM,OAAO,gBAAgB;IAKR;IACA;IACA;IANX,KAAK,GAAgB,EAAE,CAAC;IACxB,SAAS,GAAG,KAAK,CAAC;IAE1B,YACmB,OAAyB,EACzB,IAAiB,EACjB,OAA8B;QAF9B,YAAO,GAAP,OAAO,CAAkB;QACzB,SAAI,GAAJ,IAAI,CAAa;QACjB,YAAO,GAAP,OAAO,CAAuB;IAC9C,CAAC;IAEJ,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,OAAO;YACL,IAAI,EAAE,KAAK,IAAgC,EAAE;gBAC3C,IAAI,MAAyB,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACxB,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAChB,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBACP,4DAA4D;gBAC9D,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,KAAe,EAA8B,EAAE;gBAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACvC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC3C,CAAC;YACD,KAAK,EAAE,KAAK,EAAE,GAAa,EAA8B,EAAE;gBACzD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;SACF,CAAC;IACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"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"}
|
package/dist/track.d.ts
CHANGED
|
@@ -1,12 +1,40 @@
|
|
|
1
1
|
import { type UsageReport } from "./instrument.js";
|
|
2
|
+
import type { GenAiOperation, GenAiSystem } from "./providers.js";
|
|
2
3
|
/** Metadata describing a hand-instrumented AI call. All fields optional. */
|
|
3
4
|
export interface AICallInfo {
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
/**
|
|
6
|
+
* gen_ai.system — a well-known OpenTelemetry provider value (autocompleted via
|
|
7
|
+
* GenAiSystem); any other string is accepted but coerced to "custom" at emit
|
|
8
|
+
* time with a one-time warning. Default "custom".
|
|
9
|
+
*/
|
|
10
|
+
provider?: GenAiSystem | (string & {});
|
|
11
|
+
/**
|
|
12
|
+
* gen_ai.operation.name — a well-known value (autocompleted via GenAiOperation);
|
|
13
|
+
* any other string is coerced to the "other" sentinel (NOT "chat", so a typo
|
|
14
|
+
* can't inflate the real chat series) with a one-time warning. An absent
|
|
15
|
+
* operation defaults to "chat".
|
|
16
|
+
*/
|
|
17
|
+
operation?: GenAiOperation | (string & {});
|
|
8
18
|
/** gen_ai.request.model. Default "<unknown>". */
|
|
9
19
|
model?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Optional caller-defined tag (e.g. a business unit), emitted as the
|
|
22
|
+
* `frugal.custom_label` label on
|
|
23
|
+
* EVERY metric of this call. To keep cardinality bounded the value must match
|
|
24
|
+
* one of the first 20 comma-separated entries of the `FRUGAL_CUSTOM_LABEL`
|
|
25
|
+
* env var — anything else (including when the env var is unset) is coerced to
|
|
26
|
+
* `"other"` with a warn-once diagnostic. Omitted entirely when unset;
|
|
27
|
+
* at runtime `null` is treated as unset and any other non-string coerces to
|
|
28
|
+
* `"other"` (never throws).
|
|
29
|
+
*/
|
|
30
|
+
customLabel?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Marks the call as submitted through a provider batch API — sets the
|
|
33
|
+
* frugal.batched label on every metric of the call. Use this when
|
|
34
|
+
* hand-instrumenting a batch submission or batch-result ingestion the
|
|
35
|
+
* provider wrappers can't see. Default false.
|
|
36
|
+
*/
|
|
37
|
+
batched?: boolean;
|
|
10
38
|
messages?: unknown;
|
|
11
39
|
system?: unknown;
|
|
12
40
|
tools?: unknown;
|
package/dist/track.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAgBA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAgBA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlE,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACvC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC3C,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC;AAElC,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,uCAAuC;IACvC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAmCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,UAAe,GAAG,YAAY,CA4D/D;AAkBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KAAK,CAAC,GAC1C,CAAC,CA2BH"}
|
package/dist/track.js
CHANGED
|
@@ -62,8 +62,9 @@ export function startAICall(info = {}) {
|
|
|
62
62
|
operation: info.operation ?? OP_CHAT,
|
|
63
63
|
requestModel: info.model ?? "<unknown>",
|
|
64
64
|
skipPackageDirs: SKIP_DIRS,
|
|
65
|
-
batched: false,
|
|
65
|
+
batched: info.batched ?? false,
|
|
66
66
|
requestPayload: buildPayload(info),
|
|
67
|
+
customLabel: info.customLabel,
|
|
67
68
|
};
|
|
68
69
|
emit = startCall(config, ctx, { skipFrames: 2 });
|
|
69
70
|
}
|
package/dist/track.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track.js","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,iFAAiF;AACjF,2EAA2E;AAC3E,mDAAmD;AACnD,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,wEAAwE;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,SAAS,GAIV,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"track.js","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/wrappers/anthropic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/wrappers/anthropic.ts"],"names":[],"mappings":"AAoCA,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CA8C7C"}
|
|
@@ -10,7 +10,8 @@ import { startCall, } from "../instrument.js";
|
|
|
10
10
|
import { getInstruments } from "../otel.js";
|
|
11
11
|
import { FRUGAL_CUSTOMER_ID, FRUGAL_PROJECT_ID, OP_CHAT, SYSTEM_ANTHROPIC, SYSTEM_AWS_BEDROCK, SYSTEM_VERTEX_AI, } from "../semconv.js";
|
|
12
12
|
import { wrapStreamObject } from "../streams.js";
|
|
13
|
-
|
|
13
|
+
import { patchAnthropicBatches } from "./batch.js";
|
|
14
|
+
import { FRUGAL_MARK } from "./patching.js";
|
|
14
15
|
export function wrapAnthropic(client) {
|
|
15
16
|
const config = loadConfig();
|
|
16
17
|
if (config === null)
|
|
@@ -38,6 +39,13 @@ export function wrapAnthropic(client) {
|
|
|
38
39
|
catch {
|
|
39
40
|
return client;
|
|
40
41
|
}
|
|
42
|
+
// Message Batches exists on the direct Anthropic API only — Bedrock/Vertex
|
|
43
|
+
// variants are left alone so a stray `messages.batches` attribute on those
|
|
44
|
+
// clients can never mint batched-looking series for channels without the
|
|
45
|
+
// discount.
|
|
46
|
+
if (system === SYSTEM_ANTHROPIC) {
|
|
47
|
+
patchAnthropicBatches(c, { config, system, skipDirs });
|
|
48
|
+
}
|
|
41
49
|
try {
|
|
42
50
|
Object.defineProperty(c, FRUGAL_MARK, {
|
|
43
51
|
value: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/wrappers/anthropic.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,+EAA+E;AAC/E,+DAA+D;AAC/D,iEAAiE;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAe,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,SAAS,GAGV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/wrappers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Config } from "../config.js";
|
|
2
|
+
export interface BatchPatchOptions {
|
|
3
|
+
config: Config;
|
|
4
|
+
system: string;
|
|
5
|
+
skipDirs: readonly string[];
|
|
6
|
+
}
|
|
7
|
+
/** Test-only. */
|
|
8
|
+
export declare function resetBatchCallersForTests(): void;
|
|
9
|
+
export declare function patchOpenAIBatchCreate(client: unknown, opts: BatchPatchOptions): void;
|
|
10
|
+
export declare function patchAnthropicBatches(client: unknown, opts: BatchPatchOptions): void;
|
|
11
|
+
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/wrappers/batch.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAoB3C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAyBD,iBAAiB;AACjB,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAmBD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,iBAAiB,GACtB,IAAI,CAwCN;AAUD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,iBAAiB,GACtB,IAAI,CAKN"}
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
// Provider batch-API instrumentation (OpenAI Batch API, Anthropic Message
|
|
2
|
+
// Batches). Emits the frugal.batched="true" side of the metric contract:
|
|
3
|
+
//
|
|
4
|
+
// - Submission (`batches.create` / `messages.batches.create`): the fanned-out
|
|
5
|
+
// request volume lands on frugal.gen_ai.calls. Anthropic submissions carry
|
|
6
|
+
// the requests array, so counts (and models) are exact per request; OpenAI
|
|
7
|
+
// submissions reference a pre-uploaded JSONL file the SDK never sees, so the
|
|
8
|
+
// count falls back to the server-reported request_counts.total when present,
|
|
9
|
+
// else one point per submission — a deliberate floor, never an overcount.
|
|
10
|
+
// - Results (Anthropic `messages.batches.results()` only): per-entry token
|
|
11
|
+
// usage, attributed to the call site that SUBMITTED the batch when the
|
|
12
|
+
// submission happened in this process (a bounded id → caller map), else to
|
|
13
|
+
// the results call site. OpenAI batch results live in an output file read
|
|
14
|
+
// through the generic files API, which is not intercepted.
|
|
15
|
+
//
|
|
16
|
+
// Submission errors ride the normal CallEmitter error path (calls + errors
|
|
17
|
+
// with batched=true), so a failing batch pipeline is as visible as a failing
|
|
18
|
+
// sync one.
|
|
19
|
+
import { resolveCaller } from "../caller.js";
|
|
20
|
+
import { emitLogOnce } from "../debug.js";
|
|
21
|
+
import { recordBatchedCalls, recordBatchedUsage, startCall, } from "../instrument.js";
|
|
22
|
+
import { getInstruments } from "../otel.js";
|
|
23
|
+
import { FRUGAL_CUSTOMER_ID, FRUGAL_PROJECT_ID, OP_CHAT, OP_EMBEDDINGS, OP_OTHER, OP_TEXT_COMPLETION, } from "../semconv.js";
|
|
24
|
+
import { installWrapped, resolveChain, unwrappedMethod } from "./patching.js";
|
|
25
|
+
// --- submission-site memory --------------------------------------------------
|
|
26
|
+
//
|
|
27
|
+
// Results retrieval usually runs far from the submission (a poll loop, another
|
|
28
|
+
// module), but the spend belongs to the site that decided to batch. Remember
|
|
29
|
+
// the resolved submission caller per batch id, bounded FIFO so a long-lived
|
|
30
|
+
// process submitting many batches cannot grow it without limit. A miss (other
|
|
31
|
+
// process, eviction, restart) falls back to the results call site.
|
|
32
|
+
const MAX_REMEMBERED_BATCHES = 1024;
|
|
33
|
+
const batchCallers = new Map();
|
|
34
|
+
function rememberBatchCaller(batchId, caller) {
|
|
35
|
+
if (batchCallers.size >= MAX_REMEMBERED_BATCHES && !batchCallers.has(batchId)) {
|
|
36
|
+
const oldest = batchCallers.keys().next();
|
|
37
|
+
if (!oldest.done)
|
|
38
|
+
batchCallers.delete(oldest.value);
|
|
39
|
+
}
|
|
40
|
+
batchCallers.set(batchId, caller);
|
|
41
|
+
}
|
|
42
|
+
function lookupBatchCaller(batchId) {
|
|
43
|
+
return batchCallers.get(batchId);
|
|
44
|
+
}
|
|
45
|
+
/** Test-only. */
|
|
46
|
+
export function resetBatchCallersForTests() {
|
|
47
|
+
batchCallers.clear();
|
|
48
|
+
}
|
|
49
|
+
// --- OpenAI -------------------------------------------------------------------
|
|
50
|
+
// The submission names the target endpoint; map it to the operation vocabulary
|
|
51
|
+
// so batched embeddings don't masquerade as chat. Unknown endpoints coerce to
|
|
52
|
+
// the "other" sentinel rather than polluting a real series.
|
|
53
|
+
const OPENAI_ENDPOINT_OPERATIONS = {
|
|
54
|
+
"/v1/chat/completions": OP_CHAT,
|
|
55
|
+
"/v1/completions": OP_TEXT_COMPLETION,
|
|
56
|
+
"/v1/embeddings": OP_EMBEDDINGS,
|
|
57
|
+
"/v1/responses": OP_CHAT,
|
|
58
|
+
};
|
|
59
|
+
function openAIEndpointOperation(endpoint) {
|
|
60
|
+
if (typeof endpoint !== "string")
|
|
61
|
+
return OP_OTHER;
|
|
62
|
+
return OPENAI_ENDPOINT_OPERATIONS[endpoint] ?? OP_OTHER;
|
|
63
|
+
}
|
|
64
|
+
export function patchOpenAIBatchCreate(client, opts) {
|
|
65
|
+
// Older openai clients have no `batches` surface — nothing to do.
|
|
66
|
+
const target = resolveChain(client, ["batches"]);
|
|
67
|
+
if (!target)
|
|
68
|
+
return;
|
|
69
|
+
const original = unwrappedMethod(target, "create");
|
|
70
|
+
if (!original)
|
|
71
|
+
return;
|
|
72
|
+
const bound = original.bind(target);
|
|
73
|
+
const wrapped = function (...args) {
|
|
74
|
+
let emit;
|
|
75
|
+
let operation;
|
|
76
|
+
try {
|
|
77
|
+
const params = (args[0] ?? {});
|
|
78
|
+
operation = openAIEndpointOperation(params.endpoint);
|
|
79
|
+
const ctx = {
|
|
80
|
+
system: opts.system,
|
|
81
|
+
operation,
|
|
82
|
+
// The per-request models live in the uploaded JSONL, not the
|
|
83
|
+
// submission params.
|
|
84
|
+
requestModel: "<unknown>",
|
|
85
|
+
skipPackageDirs: opts.skipDirs,
|
|
86
|
+
batched: true,
|
|
87
|
+
};
|
|
88
|
+
emit = startCall(opts.config, ctx);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
recordInternalError("setup_failed", err, opts.config);
|
|
92
|
+
return bound(...args);
|
|
93
|
+
}
|
|
94
|
+
return finishSubmission(bound, args, emit, (awaited) => {
|
|
95
|
+
const total = openAIRequestTotal(awaited);
|
|
96
|
+
recordBatchedCalls(opts.config, { system: opts.system, operation }, emit.caller, [{ requestModel: "<unknown>", count: total ?? 1 }]);
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
installWrapped(target, "create", wrapped);
|
|
100
|
+
}
|
|
101
|
+
function openAIRequestTotal(response) {
|
|
102
|
+
const counts = attr(response, "request_counts");
|
|
103
|
+
const total = attr(counts, "total");
|
|
104
|
+
return typeof total === "number" && total > 0 ? total : null;
|
|
105
|
+
}
|
|
106
|
+
// --- Anthropic ------------------------------------------------------------------
|
|
107
|
+
export function patchAnthropicBatches(client, opts) {
|
|
108
|
+
const target = resolveChain(client, ["messages", "batches"]);
|
|
109
|
+
if (!target)
|
|
110
|
+
return;
|
|
111
|
+
patchAnthropicBatchCreate(target, opts);
|
|
112
|
+
patchAnthropicBatchResults(target, opts);
|
|
113
|
+
}
|
|
114
|
+
function patchAnthropicBatchCreate(target, opts) {
|
|
115
|
+
const original = unwrappedMethod(target, "create");
|
|
116
|
+
if (!original)
|
|
117
|
+
return;
|
|
118
|
+
const bound = original.bind(target);
|
|
119
|
+
const wrapped = function (...args) {
|
|
120
|
+
let emit;
|
|
121
|
+
let groups;
|
|
122
|
+
try {
|
|
123
|
+
const params = (args[0] ?? {});
|
|
124
|
+
groups = anthropicRequestGroups(params.requests);
|
|
125
|
+
const ctx = {
|
|
126
|
+
system: opts.system,
|
|
127
|
+
operation: OP_CHAT,
|
|
128
|
+
requestModel: groups[0]?.requestModel ?? "<unknown>",
|
|
129
|
+
skipPackageDirs: opts.skipDirs,
|
|
130
|
+
batched: true,
|
|
131
|
+
};
|
|
132
|
+
emit = startCall(opts.config, ctx);
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
recordInternalError("setup_failed", err, opts.config);
|
|
136
|
+
return bound(...args);
|
|
137
|
+
}
|
|
138
|
+
return finishSubmission(bound, args, emit, (awaited) => {
|
|
139
|
+
recordBatchedCalls(opts.config, { system: opts.system, operation: OP_CHAT }, emit.caller, groups);
|
|
140
|
+
const batchId = attr(awaited, "id");
|
|
141
|
+
if (typeof batchId === "string" && batchId) {
|
|
142
|
+
rememberBatchCaller(batchId, emit.caller);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
installWrapped(target, "create", wrapped);
|
|
147
|
+
}
|
|
148
|
+
function anthropicRequestGroups(requests) {
|
|
149
|
+
if (!Array.isArray(requests) || requests.length === 0) {
|
|
150
|
+
return [{ requestModel: "<unknown>", count: 1 }];
|
|
151
|
+
}
|
|
152
|
+
const byModel = new Map();
|
|
153
|
+
for (const request of requests) {
|
|
154
|
+
const model = attr(attr(request, "params"), "model");
|
|
155
|
+
const key = typeof model === "string" && model ? model : "<unknown>";
|
|
156
|
+
byModel.set(key, (byModel.get(key) ?? 0) + 1);
|
|
157
|
+
}
|
|
158
|
+
return [...byModel.entries()].map(([requestModel, count]) => ({
|
|
159
|
+
requestModel,
|
|
160
|
+
count,
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
function patchAnthropicBatchResults(target, opts) {
|
|
164
|
+
const original = unwrappedMethod(target, "results");
|
|
165
|
+
if (!original)
|
|
166
|
+
return;
|
|
167
|
+
const bound = original.bind(target);
|
|
168
|
+
const wrapped = function (...args) {
|
|
169
|
+
// Attribution only — the underlying call must pass through untouched on
|
|
170
|
+
// any internal failure, and results errors are the customer's to handle
|
|
171
|
+
// (no calls were counted here, so nothing needs an error metric).
|
|
172
|
+
let caller = null;
|
|
173
|
+
try {
|
|
174
|
+
const batchId = typeof args[0] === "string" ? args[0] : null;
|
|
175
|
+
caller =
|
|
176
|
+
(batchId ? lookupBatchCaller(batchId) : undefined) ??
|
|
177
|
+
resolveCaller({
|
|
178
|
+
skipPackageDirs: opts.skipDirs,
|
|
179
|
+
blockList: opts.config.pathBlockList,
|
|
180
|
+
repoRoot: opts.config.repoRoot,
|
|
181
|
+
maxCallSites: opts.config.maxCallSites,
|
|
182
|
+
skipFrames: 1,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
caller = null;
|
|
187
|
+
}
|
|
188
|
+
const result = bound(...args);
|
|
189
|
+
if (caller === null)
|
|
190
|
+
return result;
|
|
191
|
+
const resolved = caller;
|
|
192
|
+
if (isPromiseLike(result)) {
|
|
193
|
+
return (async () => {
|
|
194
|
+
const awaited = await result;
|
|
195
|
+
return teeResults(awaited, opts, resolved);
|
|
196
|
+
})();
|
|
197
|
+
}
|
|
198
|
+
return teeResults(result, opts, resolved);
|
|
199
|
+
};
|
|
200
|
+
installWrapped(target, "results", wrapped);
|
|
201
|
+
}
|
|
202
|
+
// Tease off the async iterator of the results decoder and record each
|
|
203
|
+
// succeeded entry's usage as it is consumed — the decoder streams, so this is
|
|
204
|
+
// the only pass over the data. Everything else on the object passes through.
|
|
205
|
+
function teeResults(decoder, opts, caller) {
|
|
206
|
+
try {
|
|
207
|
+
if (decoder === null ||
|
|
208
|
+
typeof decoder !== "object" ||
|
|
209
|
+
typeof decoder[Symbol.asyncIterator] !==
|
|
210
|
+
"function") {
|
|
211
|
+
return decoder;
|
|
212
|
+
}
|
|
213
|
+
const iterable = decoder;
|
|
214
|
+
return new Proxy(iterable, {
|
|
215
|
+
get(proxyTarget, prop, receiver) {
|
|
216
|
+
if (prop === Symbol.asyncIterator) {
|
|
217
|
+
return () => teeIterator(iterable, opts, caller);
|
|
218
|
+
}
|
|
219
|
+
return Reflect.get(proxyTarget, prop, receiver);
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
recordInternalError("stream_proxy_failed", err, opts.config);
|
|
225
|
+
return decoder;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
async function* teeIterator(iterable, opts, caller) {
|
|
229
|
+
for await (const entry of iterable) {
|
|
230
|
+
try {
|
|
231
|
+
recordResultEntry(entry, opts, caller);
|
|
232
|
+
}
|
|
233
|
+
catch (err) {
|
|
234
|
+
recordInternalError("emission", err, opts.config);
|
|
235
|
+
}
|
|
236
|
+
yield entry;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
function recordResultEntry(entry, opts, caller) {
|
|
240
|
+
const result = attr(entry, "result");
|
|
241
|
+
if (attr(result, "type") !== "succeeded")
|
|
242
|
+
return;
|
|
243
|
+
const message = attr(result, "message");
|
|
244
|
+
if (!message)
|
|
245
|
+
return;
|
|
246
|
+
const usage = attr(message, "usage");
|
|
247
|
+
const model = attr(message, "model");
|
|
248
|
+
const requestModel = typeof model === "string" && model ? model : "<unknown>";
|
|
249
|
+
recordBatchedUsage(opts.config, { system: opts.system, operation: OP_CHAT }, caller, requestModel, {
|
|
250
|
+
responseModel: typeof model === "string" ? model : null,
|
|
251
|
+
inputTokens: asNumber(attr(usage, "input_tokens")),
|
|
252
|
+
outputTokens: asNumber(attr(usage, "output_tokens")),
|
|
253
|
+
cacheReadTokens: asNumber(attr(usage, "cache_read_input_tokens")),
|
|
254
|
+
cacheWriteTokens: asNumber(attr(usage, "cache_creation_input_tokens")),
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
// --- shared plumbing ----------------------------------------------------------
|
|
258
|
+
// Run the bound submission call, wiring the emitter's error path and invoking
|
|
259
|
+
// `onSuccess` (guarded) with the awaited response. emit.success is deliberately
|
|
260
|
+
// never called: the submission's request volume is recorded via
|
|
261
|
+
// recordBatchedCalls, and a success() here would double-count one call.
|
|
262
|
+
function finishSubmission(bound, args, emit, onSuccess) {
|
|
263
|
+
let result;
|
|
264
|
+
try {
|
|
265
|
+
result = bound(...args);
|
|
266
|
+
}
|
|
267
|
+
catch (err) {
|
|
268
|
+
safe(() => emit.error(err));
|
|
269
|
+
throw err;
|
|
270
|
+
}
|
|
271
|
+
if (isPromiseLike(result)) {
|
|
272
|
+
return (async () => {
|
|
273
|
+
let awaited;
|
|
274
|
+
try {
|
|
275
|
+
awaited = await result;
|
|
276
|
+
}
|
|
277
|
+
catch (err) {
|
|
278
|
+
safe(() => emit.error(err));
|
|
279
|
+
throw err;
|
|
280
|
+
}
|
|
281
|
+
safe(() => onSuccess(awaited));
|
|
282
|
+
return awaited;
|
|
283
|
+
})();
|
|
284
|
+
}
|
|
285
|
+
safe(() => onSuccess(result));
|
|
286
|
+
return result;
|
|
287
|
+
}
|
|
288
|
+
function safe(fn) {
|
|
289
|
+
try {
|
|
290
|
+
fn();
|
|
291
|
+
}
|
|
292
|
+
catch (err) {
|
|
293
|
+
recordInternalError("emission", err, null);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
function recordInternalError(stage, err, config) {
|
|
297
|
+
if (stage === "setup_failed") {
|
|
298
|
+
emitLogOnce("batch_setup_failed", "error", `batch wrapper setup failed: ${errorName(err)}`);
|
|
299
|
+
}
|
|
300
|
+
try {
|
|
301
|
+
if (!config)
|
|
302
|
+
return;
|
|
303
|
+
const instruments = getInstruments(config);
|
|
304
|
+
instruments.internalErrors.add(1, {
|
|
305
|
+
...(config.customerId ? { [FRUGAL_CUSTOMER_ID]: config.customerId } : {}),
|
|
306
|
+
[FRUGAL_PROJECT_ID]: config.projectId,
|
|
307
|
+
"frugal.internal_error.stage": stage,
|
|
308
|
+
"frugal.internal_error.type": errorName(err),
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
catch {
|
|
312
|
+
// swallow — nothing left to try
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
function errorName(err) {
|
|
316
|
+
if (err && typeof err === "object" && "name" in err && typeof err.name === "string") {
|
|
317
|
+
return err.name;
|
|
318
|
+
}
|
|
319
|
+
if (err instanceof Error)
|
|
320
|
+
return err.constructor.name;
|
|
321
|
+
return "UnknownError";
|
|
322
|
+
}
|
|
323
|
+
function isPromiseLike(value) {
|
|
324
|
+
return (value !== null &&
|
|
325
|
+
typeof value === "object" &&
|
|
326
|
+
typeof value.then === "function");
|
|
327
|
+
}
|
|
328
|
+
function attr(obj, key) {
|
|
329
|
+
if (obj === null || obj === undefined)
|
|
330
|
+
return undefined;
|
|
331
|
+
if (typeof obj !== "object")
|
|
332
|
+
return undefined;
|
|
333
|
+
return obj[key];
|
|
334
|
+
}
|
|
335
|
+
function asNumber(v) {
|
|
336
|
+
return typeof v === "number" ? v : null;
|
|
337
|
+
}
|
|
338
|
+
//# sourceMappingURL=batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/wrappers/batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/wrappers/openai.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/wrappers/openai.ts"],"names":[],"mappings":"AA0CA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CA2D1C"}
|