@tensorcost/sdk 0.5.0 → 1.0.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/CHANGELOG.md +117 -0
- package/README.md +63 -95
- package/dist/adapters/crewai.d.ts +4 -0
- package/dist/adapters/crewai.d.ts.map +1 -0
- package/dist/adapters/crewai.js +6 -0
- package/dist/adapters/crewai.js.map +1 -0
- package/dist/adapters/langchain.d.ts +4 -0
- package/dist/adapters/langchain.d.ts.map +1 -0
- package/dist/adapters/langchain.js +6 -0
- package/dist/adapters/langchain.js.map +1 -0
- package/dist/adapters/llamaindex.d.ts +4 -0
- package/dist/adapters/llamaindex.d.ts.map +1 -0
- package/dist/adapters/llamaindex.js +6 -0
- package/dist/adapters/llamaindex.js.map +1 -0
- package/dist/adapters/vercel-ai.d.ts +4 -0
- package/dist/adapters/vercel-ai.d.ts.map +1 -0
- package/dist/adapters/vercel-ai.js +6 -0
- package/dist/adapters/vercel-ai.js.map +1 -0
- package/dist/admit-client.d.ts +39 -0
- package/dist/admit-client.d.ts.map +1 -0
- package/dist/admit-client.js +93 -0
- package/dist/admit-client.js.map +1 -0
- package/dist/applied.d.ts +6 -1
- package/dist/applied.d.ts.map +1 -1
- package/dist/applied.js +13 -1
- package/dist/applied.js.map +1 -1
- package/dist/circuit-observations.d.ts +12 -0
- package/dist/circuit-observations.d.ts.map +1 -0
- package/dist/circuit-observations.js +37 -0
- package/dist/circuit-observations.js.map +1 -0
- package/dist/circuit.d.ts +4 -1
- package/dist/circuit.d.ts.map +1 -1
- package/dist/circuit.js +13 -7
- package/dist/circuit.js.map +1 -1
- package/dist/config.d.ts +2 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +74 -6
- package/dist/config.js.map +1 -1
- package/dist/decision.d.ts +11 -0
- package/dist/decision.d.ts.map +1 -0
- package/dist/decision.js +40 -0
- package/dist/decision.js.map +1 -0
- package/dist/errors.d.ts +40 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +46 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/layer.d.ts +27 -0
- package/dist/layer.d.ts.map +1 -0
- package/dist/layer.js +77 -0
- package/dist/layer.js.map +1 -0
- package/dist/providers/anthropic.d.ts +11 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +196 -18
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +21 -3
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/providers/detect.d.ts.map +1 -1
- package/dist/providers/detect.js +17 -2
- package/dist/providers/detect.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +11 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +255 -20
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/vertex.d.ts +14 -0
- package/dist/providers/vertex.d.ts.map +1 -0
- package/dist/providers/vertex.js +174 -0
- package/dist/providers/vertex.js.map +1 -0
- package/dist/proxy-client.d.ts +37 -1
- package/dist/proxy-client.d.ts.map +1 -1
- package/dist/proxy-client.js +124 -4
- package/dist/proxy-client.js.map +1 -1
- package/dist/sdk-layer.d.ts +26 -0
- package/dist/sdk-layer.d.ts.map +1 -0
- package/dist/sdk-layer.js +73 -0
- package/dist/sdk-layer.js.map +1 -0
- package/dist/transport.d.ts +6 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +14 -3
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +178 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +9 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/dist/wrap.d.ts +13 -14
- package/dist/wrap.d.ts.map +1 -1
- package/dist/wrap.js +66 -59
- package/dist/wrap.js.map +1 -1
- package/package.json +7 -2
package/dist/layer.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Control-layer ladder — mirrors @tensorcost/contracts/control-layer for
|
|
3
|
+
* the published SDK (no contracts runtime dependency).
|
|
4
|
+
*/
|
|
5
|
+
export declare const CONTROL_LAYERS: readonly ["off", "observe", "govern", "steer", "route"];
|
|
6
|
+
export type ControlLayer = (typeof CONTROL_LAYERS)[number];
|
|
7
|
+
export declare function layerRank(layer: ControlLayer): number;
|
|
8
|
+
export declare function minLayer(a: ControlLayer, b: ControlLayer): ControlLayer;
|
|
9
|
+
export declare function isControlLayer(value: string): value is ControlLayer;
|
|
10
|
+
/** steer and route require a proxy URL. */
|
|
11
|
+
export declare function needsProxyUrl(layer: ControlLayer): boolean;
|
|
12
|
+
/** govern runs metadata-only admit before the direct provider call. */
|
|
13
|
+
export declare function needsAdmit(layer: ControlLayer): boolean;
|
|
14
|
+
export declare function resolveMaxLayer(options: {
|
|
15
|
+
maxLayer?: ControlLayer;
|
|
16
|
+
appliedMode?: boolean;
|
|
17
|
+
}): ControlLayer;
|
|
18
|
+
export declare const PROXY_OPERATION_PATHS: Record<string, string>;
|
|
19
|
+
export declare function proxyPathForOperation(operation: string): string | null;
|
|
20
|
+
export declare const ADMIT_PATH = "/api/inference-proxy/v1/admit";
|
|
21
|
+
export declare const SDK_LAYER_PATH = "/api/inference-proxy/v1/sdk-layer";
|
|
22
|
+
export declare const SDK_LAYER_CACHE_TTL_MS = 30000;
|
|
23
|
+
export declare const SDK_LAYER_DECAY_MS: number;
|
|
24
|
+
export declare const DATA_GRANTS: readonly ["telemetry", "retain_completions", "retain_prompts", "retain_tools"];
|
|
25
|
+
export type DataGrant = (typeof DATA_GRANTS)[number];
|
|
26
|
+
export declare function intersectGrants(codeMax: readonly DataGrant[] | null | undefined, consoleGrants: readonly DataGrant[]): DataGrant[];
|
|
27
|
+
//# sourceMappingURL=layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc,yDAMjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAU3D,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAErD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAEvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAE1D;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAEvD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,YAAY,CAYf;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMxD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE;AAED,eAAO,MAAM,UAAU,kCAAkC,CAAC;AAC1D,eAAO,MAAM,cAAc,sCAAsC,CAAC;AAClE,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAE7C,eAAO,MAAM,WAAW,gFAKd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,EAChD,aAAa,EAAE,SAAS,SAAS,EAAE,GAClC,SAAS,EAAE,CASb"}
|
package/dist/layer.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Control-layer ladder — mirrors @tensorcost/contracts/control-layer for
|
|
3
|
+
* the published SDK (no contracts runtime dependency).
|
|
4
|
+
*/
|
|
5
|
+
export const CONTROL_LAYERS = [
|
|
6
|
+
"off",
|
|
7
|
+
"observe",
|
|
8
|
+
"govern",
|
|
9
|
+
"steer",
|
|
10
|
+
"route",
|
|
11
|
+
];
|
|
12
|
+
const LAYER_RANK = {
|
|
13
|
+
off: 0,
|
|
14
|
+
observe: 1,
|
|
15
|
+
govern: 2,
|
|
16
|
+
steer: 3,
|
|
17
|
+
route: 4,
|
|
18
|
+
};
|
|
19
|
+
export function layerRank(layer) {
|
|
20
|
+
return LAYER_RANK[layer];
|
|
21
|
+
}
|
|
22
|
+
export function minLayer(a, b) {
|
|
23
|
+
return layerRank(a) <= layerRank(b) ? a : b;
|
|
24
|
+
}
|
|
25
|
+
export function isControlLayer(value) {
|
|
26
|
+
return CONTROL_LAYERS.includes(value);
|
|
27
|
+
}
|
|
28
|
+
/** steer and route require a proxy URL. */
|
|
29
|
+
export function needsProxyUrl(layer) {
|
|
30
|
+
return layerRank(layer) >= layerRank("steer");
|
|
31
|
+
}
|
|
32
|
+
/** govern runs metadata-only admit before the direct provider call. */
|
|
33
|
+
export function needsAdmit(layer) {
|
|
34
|
+
return layerRank(layer) >= layerRank("govern");
|
|
35
|
+
}
|
|
36
|
+
export function resolveMaxLayer(options) {
|
|
37
|
+
if (options.maxLayer !== undefined) {
|
|
38
|
+
return options.maxLayer;
|
|
39
|
+
}
|
|
40
|
+
if (options.appliedMode) {
|
|
41
|
+
// eslint-disable-next-line no-console
|
|
42
|
+
console.warn("tensorcost: appliedMode is deprecated; use maxLayer: 'route' instead");
|
|
43
|
+
return "route";
|
|
44
|
+
}
|
|
45
|
+
return "observe";
|
|
46
|
+
}
|
|
47
|
+
export const PROXY_OPERATION_PATHS = {
|
|
48
|
+
"chat.completions": "/api/inference-proxy/v1/chat/completions",
|
|
49
|
+
messages: "/api/inference-proxy/v1/messages",
|
|
50
|
+
completions: "/api/inference-proxy/v1/completions",
|
|
51
|
+
embeddings: "/api/inference-proxy/v1/embeddings",
|
|
52
|
+
responses: "/api/inference-proxy/v1/responses",
|
|
53
|
+
};
|
|
54
|
+
export function proxyPathForOperation(operation) {
|
|
55
|
+
return PROXY_OPERATION_PATHS[operation] ?? null;
|
|
56
|
+
}
|
|
57
|
+
export const ADMIT_PATH = "/api/inference-proxy/v1/admit";
|
|
58
|
+
export const SDK_LAYER_PATH = "/api/inference-proxy/v1/sdk-layer";
|
|
59
|
+
export const SDK_LAYER_CACHE_TTL_MS = 30_000;
|
|
60
|
+
export const SDK_LAYER_DECAY_MS = 5 * 60_000;
|
|
61
|
+
export const DATA_GRANTS = [
|
|
62
|
+
"telemetry",
|
|
63
|
+
"retain_completions",
|
|
64
|
+
"retain_prompts",
|
|
65
|
+
"retain_tools",
|
|
66
|
+
];
|
|
67
|
+
export function intersectGrants(codeMax, consoleGrants) {
|
|
68
|
+
const consoleSet = new Set(consoleGrants);
|
|
69
|
+
if (codeMax == null) {
|
|
70
|
+
return [...consoleSet];
|
|
71
|
+
}
|
|
72
|
+
if (codeMax.length === 0) {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
return codeMax.filter((g) => consoleSet.has(g));
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer.js","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK;IACL,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;CACC,CAAC;AAIX,MAAM,UAAU,GAAiC;IAC/C,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAmB;IAC3C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAe,EAAE,CAAe;IACvD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAQ,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,aAAa,CAAC,KAAmB;IAC/C,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,UAAU,CAAC,KAAmB;IAC5C,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAG/B;IACC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,sEAAsE,CACvE,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,kBAAkB,EAAE,0CAA0C;IAC9D,QAAQ,EAAE,kCAAkC;IAC5C,WAAW,EAAE,qCAAqC;IAClD,UAAU,EAAE,oCAAoC;IAChD,SAAS,EAAE,mCAAmC;CAC/C,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,OAAO,qBAAqB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW;IACX,oBAAoB;IACpB,gBAAgB;IAChB,cAAc;CACN,CAAC;AAIX,MAAM,UAAU,eAAe,CAC7B,OAAgD,EAChD,aAAmC;IAEnC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -13,17 +13,27 @@ import type { ObservationTransport } from "../transport.js";
|
|
|
13
13
|
import type { CircuitBreaker } from "../circuit.js";
|
|
14
14
|
import type { LifecycleEventCallback } from "../telemetry.js";
|
|
15
15
|
import type { RetryConfig } from "../retry.js";
|
|
16
|
+
import type { ControlLayer } from "../layer.js";
|
|
17
|
+
import type { SdkLayerClient } from "../sdk-layer.js";
|
|
16
18
|
export interface AppliedModeHardeningOpts {
|
|
19
|
+
maxLayer: ControlLayer;
|
|
17
20
|
appliedMode: boolean;
|
|
18
21
|
proxyUrl: string | null;
|
|
22
|
+
baseUrl: string;
|
|
23
|
+
sdkLayer: SdkLayerClient;
|
|
19
24
|
retry: RetryConfig;
|
|
20
25
|
timeoutMs: number;
|
|
21
26
|
onLifecycleEvent: LifecycleEventCallback | undefined;
|
|
22
27
|
failOpenEnabled: boolean;
|
|
23
28
|
circuit: CircuitBreaker;
|
|
29
|
+
application?: string | null;
|
|
30
|
+
tags?: string[];
|
|
31
|
+
customer?: string | null;
|
|
32
|
+
feature?: string | null;
|
|
24
33
|
}
|
|
25
|
-
export declare function install(client: unknown, transport: ObservationTransport, tenantId: string | null, environment: string | null, connectionId: string | null, hardening: AppliedModeHardeningOpts): void;
|
|
34
|
+
export declare function install(client: unknown, transport: ObservationTransport, tenantId: string | null, environment: string | null, connectionId: string | null, hardening: AppliedModeHardeningOpts, deployment?: string | null, promptTemplateId?: string | null, agentId?: string | null, workflowId?: string | null): void;
|
|
26
35
|
export declare const __test__: {
|
|
27
36
|
MARKER: string;
|
|
37
|
+
WITH_META_MARKER: string;
|
|
28
38
|
};
|
|
29
39
|
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAO5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMtD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACrD,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAmZD,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,oBAAoB,EAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,EAAE,wBAAwB,EACnC,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,gBAAgB,GAAE,MAAM,GAAG,IAAW,EACtC,OAAO,GAAE,MAAM,GAAG,IAAW,EAC7B,UAAU,GAAE,MAAM,GAAG,IAAW,GAC/B,IAAI,CA6FN;AAED,eAAO,MAAM,QAAQ;;;CAA+B,CAAC"}
|
|
@@ -10,11 +10,15 @@
|
|
|
10
10
|
* telemetry hooks, and the fail-open circuit breaker.
|
|
11
11
|
*/
|
|
12
12
|
import { randomUUID } from "node:crypto";
|
|
13
|
-
import { proxyRequest } from "../proxy-client.js";
|
|
14
|
-
import {
|
|
13
|
+
import { proxyRequest, shouldFallBackToProvider } from "../proxy-client.js";
|
|
14
|
+
import { admitRequest } from "../admit-client.js";
|
|
15
|
+
import { TensorCostProxyError, TensorCostModelGovernanceDeniedError, } from "../errors.js";
|
|
15
16
|
import { emitEvent } from "../telemetry.js";
|
|
16
|
-
|
|
17
|
+
import { needsProxyUrl } from "../layer.js";
|
|
18
|
+
import { decisionMetadata } from "../decision.js";
|
|
19
|
+
import { SDK_VERSION } from "../version.js";
|
|
17
20
|
const MARKER = "__tensorcost_wrapped__";
|
|
21
|
+
const WITH_META_MARKER = "__tensorcost_with_meta__";
|
|
18
22
|
function nowIso() {
|
|
19
23
|
return new Date().toISOString();
|
|
20
24
|
}
|
|
@@ -31,6 +35,20 @@ function extractUsage(response) {
|
|
|
31
35
|
const output = typeof u.output_tokens === "number" ? u.output_tokens : null;
|
|
32
36
|
return { input, output };
|
|
33
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Build the metadata bag to attach to an observation. Same logic as the
|
|
40
|
+
* OpenAI provider — kept local to avoid a shared-utils dep.
|
|
41
|
+
*/
|
|
42
|
+
function buildMetadata(deployment, promptTemplateId, perCallMeta) {
|
|
43
|
+
const base = {};
|
|
44
|
+
if (deployment !== null)
|
|
45
|
+
base.deployment = deployment;
|
|
46
|
+
if (promptTemplateId !== null)
|
|
47
|
+
base.prompt_template_id = promptTemplateId;
|
|
48
|
+
if (perCallMeta)
|
|
49
|
+
Object.assign(base, perCallMeta);
|
|
50
|
+
return Object.keys(base).length > 0 ? base : undefined;
|
|
51
|
+
}
|
|
34
52
|
function wrapMethod(bound, opts) {
|
|
35
53
|
const wrapped = async function (...args) {
|
|
36
54
|
const requestAt = nowIso();
|
|
@@ -38,8 +56,61 @@ function wrapMethod(bound, opts) {
|
|
|
38
56
|
const model = (firstArg && typeof firstArg === "object" && firstArg.model) ||
|
|
39
57
|
"unknown";
|
|
40
58
|
const correlationId = randomUUID();
|
|
41
|
-
|
|
42
|
-
|
|
59
|
+
const meta = buildMetadata(opts.deployment, opts.promptTemplateId, opts.perCallMeta);
|
|
60
|
+
const metaSpread = meta !== undefined ? { metadata: meta } : {};
|
|
61
|
+
// Per-agent-run attribution. Dedicated top-level fields (NOT the
|
|
62
|
+
// metadata bag — see Observation.agent_id doc in types.ts). Per-call
|
|
63
|
+
// withMeta() override beats the wrap-time default.
|
|
64
|
+
const resolvedAgentId = opts.perCallAgentId ?? opts.agentId ?? undefined;
|
|
65
|
+
const resolvedWorkflowId = opts.perCallWorkflowId ?? opts.workflowId ?? undefined;
|
|
66
|
+
const resolvedCustomer = opts.perCallCustomer ?? opts.hardening.customer ?? undefined;
|
|
67
|
+
const resolvedFeature = opts.perCallFeature ?? opts.hardening.feature ?? undefined;
|
|
68
|
+
const effectiveLayer = await opts.hardening.sdkLayer.effectiveLayer(opts.hardening.maxLayer);
|
|
69
|
+
let decisionMeta;
|
|
70
|
+
if (effectiveLayer === "govern") {
|
|
71
|
+
try {
|
|
72
|
+
const getToken = opts.getToken ?? (() => opts.transport.getToken());
|
|
73
|
+
const bearerToken = await getToken();
|
|
74
|
+
const admit = await admitRequest({
|
|
75
|
+
baseUrl: opts.hardening.baseUrl,
|
|
76
|
+
bearerToken,
|
|
77
|
+
maxLayer: effectiveLayer,
|
|
78
|
+
metadata: {
|
|
79
|
+
provider: "anthropic",
|
|
80
|
+
model: String(model),
|
|
81
|
+
operation: "messages",
|
|
82
|
+
correlation_id: correlationId,
|
|
83
|
+
environment: opts.environment,
|
|
84
|
+
connection_id: opts.connectionId,
|
|
85
|
+
agent_id: resolvedAgentId,
|
|
86
|
+
workflow_id: resolvedWorkflowId,
|
|
87
|
+
customer: resolvedCustomer,
|
|
88
|
+
feature: resolvedFeature,
|
|
89
|
+
application: opts.hardening.application ?? null,
|
|
90
|
+
tags: opts.hardening.tags ?? [],
|
|
91
|
+
},
|
|
92
|
+
transport: opts.transport,
|
|
93
|
+
failOpen: true,
|
|
94
|
+
});
|
|
95
|
+
if (!admit.allowed) {
|
|
96
|
+
throw new TensorCostModelGovernanceDeniedError("tensorcost: request refused at govern layer", "anthropic", String(model), null, { attempt: 1 });
|
|
97
|
+
}
|
|
98
|
+
decisionMeta = decisionMetadata(admit.decisionHeader);
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
if (err instanceof TensorCostModelGovernanceDeniedError)
|
|
102
|
+
throw err;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const decisionSpread = decisionMeta !== undefined
|
|
106
|
+
? {
|
|
107
|
+
metadata: {
|
|
108
|
+
...(meta !== undefined ? meta : {}),
|
|
109
|
+
...decisionMeta,
|
|
110
|
+
},
|
|
111
|
+
}
|
|
112
|
+
: metaSpread;
|
|
113
|
+
if (needsProxyUrl(effectiveLayer) && opts.hardening.proxyUrl) {
|
|
43
114
|
// Read the original provider URL from defaultHeaders (set at installAppliedMode).
|
|
44
115
|
const dh = opts.clientRef && typeof opts.clientRef === "object"
|
|
45
116
|
? opts.clientRef["defaultHeaders"]
|
|
@@ -51,14 +122,18 @@ function wrapMethod(bound, opts) {
|
|
|
51
122
|
model: String(model),
|
|
52
123
|
};
|
|
53
124
|
const circuitWasOpen = opts.hardening.circuit.shouldBypass();
|
|
125
|
+
let shouldTryProxy = !circuitWasOpen;
|
|
126
|
+
if (circuitWasOpen) {
|
|
127
|
+
shouldTryProxy = opts.hardening.circuit.shouldProbe();
|
|
128
|
+
}
|
|
54
129
|
let proxyResult;
|
|
55
130
|
let proxyFailed = false;
|
|
56
131
|
let proxyFailureError = null;
|
|
57
|
-
if (
|
|
132
|
+
if (shouldTryProxy) {
|
|
58
133
|
try {
|
|
59
134
|
const getToken = opts.getToken ?? (() => opts.transport.getToken());
|
|
60
135
|
const bearerToken = await getToken();
|
|
61
|
-
|
|
136
|
+
const proxyResp = await proxyRequest({
|
|
62
137
|
proxyUrl: opts.hardening.proxyUrl,
|
|
63
138
|
bearerToken,
|
|
64
139
|
providerUrl,
|
|
@@ -69,13 +144,28 @@ function wrapMethod(bound, opts) {
|
|
|
69
144
|
operation: "messages",
|
|
70
145
|
correlationId,
|
|
71
146
|
environment: opts.environment,
|
|
147
|
+
application: opts.hardening.application ?? null,
|
|
148
|
+
tags: opts.hardening.tags ?? [],
|
|
149
|
+
agentId: resolvedAgentId,
|
|
150
|
+
workflowId: resolvedWorkflowId,
|
|
151
|
+
customer: resolvedCustomer,
|
|
152
|
+
feature: resolvedFeature,
|
|
72
153
|
retry: opts.hardening.retry,
|
|
73
154
|
timeoutMs: opts.hardening.timeoutMs,
|
|
74
155
|
onLifecycleEvent: opts.hardening.onLifecycleEvent,
|
|
75
156
|
circuit: opts.hardening.circuit,
|
|
157
|
+
maxLayer: effectiveLayer,
|
|
76
158
|
});
|
|
159
|
+
proxyResult = proxyResp.body;
|
|
160
|
+
decisionMeta = decisionMetadata(proxyResp.decisionHeader);
|
|
77
161
|
}
|
|
78
162
|
catch (proxyErr) {
|
|
163
|
+
// A run-budget refusal is a decision, not a failure. Rethrow it
|
|
164
|
+
// immediately so it never reaches the fail-open fallback below —
|
|
165
|
+
// otherwise the cap would be enforced by the proxy and then
|
|
166
|
+
// silently bypassed by us calling Anthropic directly.
|
|
167
|
+
if (!shouldFallBackToProvider(proxyErr))
|
|
168
|
+
throw proxyErr;
|
|
79
169
|
proxyFailed = true;
|
|
80
170
|
proxyFailureError = proxyErr;
|
|
81
171
|
}
|
|
@@ -101,9 +191,13 @@ function wrapMethod(bound, opts) {
|
|
|
101
191
|
status: "error",
|
|
102
192
|
error_message: `${tcErr.name}: ${tcErr.message}`,
|
|
103
193
|
correlation_id: correlationId,
|
|
104
|
-
tenant_id: opts.tenantId,
|
|
105
194
|
...(opts.environment !== null ? { environment: opts.environment } : {}),
|
|
106
195
|
...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
|
|
196
|
+
...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
|
|
197
|
+
...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
|
|
198
|
+
...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
|
|
199
|
+
...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
|
|
200
|
+
...decisionSpread,
|
|
107
201
|
};
|
|
108
202
|
try {
|
|
109
203
|
opts.transport.post(obs);
|
|
@@ -136,9 +230,13 @@ function wrapMethod(bound, opts) {
|
|
|
136
230
|
status: "success",
|
|
137
231
|
error_message: null,
|
|
138
232
|
correlation_id: correlationId,
|
|
139
|
-
tenant_id: opts.tenantId,
|
|
140
233
|
...(opts.environment !== null ? { environment: opts.environment } : {}),
|
|
141
234
|
...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
|
|
235
|
+
...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
|
|
236
|
+
...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
|
|
237
|
+
...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
|
|
238
|
+
...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
|
|
239
|
+
...decisionSpread,
|
|
142
240
|
};
|
|
143
241
|
try {
|
|
144
242
|
opts.transport.post(obs);
|
|
@@ -160,9 +258,13 @@ function wrapMethod(bound, opts) {
|
|
|
160
258
|
status: "error",
|
|
161
259
|
error_message: `${directErr.name}: ${directErr.message}`,
|
|
162
260
|
correlation_id: correlationId,
|
|
163
|
-
tenant_id: opts.tenantId,
|
|
164
261
|
...(opts.environment !== null ? { environment: opts.environment } : {}),
|
|
165
262
|
...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
|
|
263
|
+
...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
|
|
264
|
+
...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
|
|
265
|
+
...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
|
|
266
|
+
...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
|
|
267
|
+
...decisionSpread,
|
|
166
268
|
};
|
|
167
269
|
try {
|
|
168
270
|
opts.transport.post(obs);
|
|
@@ -171,6 +273,14 @@ function wrapMethod(bound, opts) {
|
|
|
171
273
|
throw directErr;
|
|
172
274
|
}
|
|
173
275
|
}
|
|
276
|
+
const proxyDecisionSpread = decisionMeta !== undefined
|
|
277
|
+
? {
|
|
278
|
+
metadata: {
|
|
279
|
+
...(meta !== undefined ? meta : {}),
|
|
280
|
+
...decisionMeta,
|
|
281
|
+
},
|
|
282
|
+
}
|
|
283
|
+
: metaSpread;
|
|
174
284
|
// Proxy success.
|
|
175
285
|
const respBody = proxyResult;
|
|
176
286
|
const usageRaw = respBody?.usage;
|
|
@@ -189,9 +299,13 @@ function wrapMethod(bound, opts) {
|
|
|
189
299
|
status: "success",
|
|
190
300
|
error_message: null,
|
|
191
301
|
correlation_id: correlationId,
|
|
192
|
-
tenant_id: opts.tenantId,
|
|
193
302
|
...(opts.environment !== null ? { environment: opts.environment } : {}),
|
|
194
303
|
...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
|
|
304
|
+
...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
|
|
305
|
+
...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
|
|
306
|
+
...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
|
|
307
|
+
...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
|
|
308
|
+
...proxyDecisionSpread,
|
|
195
309
|
};
|
|
196
310
|
try {
|
|
197
311
|
opts.transport.post(obs);
|
|
@@ -199,7 +313,7 @@ function wrapMethod(bound, opts) {
|
|
|
199
313
|
catch { /* belt-and-suspenders */ }
|
|
200
314
|
return proxyResult;
|
|
201
315
|
}
|
|
202
|
-
// Observe
|
|
316
|
+
// Observe / govern direct path.
|
|
203
317
|
try {
|
|
204
318
|
const response = await bound.apply(this, args);
|
|
205
319
|
const { input, output } = extractUsage(response);
|
|
@@ -216,9 +330,13 @@ function wrapMethod(bound, opts) {
|
|
|
216
330
|
status: "success",
|
|
217
331
|
error_message: null,
|
|
218
332
|
correlation_id: correlationId,
|
|
219
|
-
tenant_id: opts.tenantId,
|
|
220
333
|
...(opts.environment !== null ? { environment: opts.environment } : {}),
|
|
221
334
|
...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
|
|
335
|
+
...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
|
|
336
|
+
...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
|
|
337
|
+
...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
|
|
338
|
+
...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
|
|
339
|
+
...decisionSpread,
|
|
222
340
|
};
|
|
223
341
|
try {
|
|
224
342
|
opts.transport.post(obs);
|
|
@@ -240,9 +358,13 @@ function wrapMethod(bound, opts) {
|
|
|
240
358
|
status: "error",
|
|
241
359
|
error_message: `${err.name}: ${err.message}`,
|
|
242
360
|
correlation_id: correlationId,
|
|
243
|
-
tenant_id: opts.tenantId,
|
|
244
361
|
...(opts.environment !== null ? { environment: opts.environment } : {}),
|
|
245
362
|
...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
|
|
363
|
+
...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
|
|
364
|
+
...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
|
|
365
|
+
...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
|
|
366
|
+
...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
|
|
367
|
+
...decisionSpread,
|
|
246
368
|
};
|
|
247
369
|
try {
|
|
248
370
|
opts.transport.post(obs);
|
|
@@ -254,25 +376,81 @@ function wrapMethod(bound, opts) {
|
|
|
254
376
|
Object.defineProperty(wrapped, MARKER, { value: true, enumerable: false });
|
|
255
377
|
return wrapped;
|
|
256
378
|
}
|
|
257
|
-
export function install(client, transport, tenantId, environment, connectionId, hardening) {
|
|
379
|
+
export function install(client, transport, tenantId, environment, connectionId, hardening, deployment = null, promptTemplateId = null, agentId = null, workflowId = null) {
|
|
258
380
|
if (!client || typeof client !== "object")
|
|
259
381
|
return;
|
|
260
382
|
const c = client;
|
|
261
383
|
const messages = c.messages;
|
|
384
|
+
let originalMessagesBound;
|
|
262
385
|
if (messages &&
|
|
263
386
|
typeof messages === "object" &&
|
|
264
387
|
typeof messages.create === "function" &&
|
|
265
388
|
!messages.create[MARKER]) {
|
|
266
|
-
|
|
267
|
-
messages.create = wrapMethod(
|
|
389
|
+
originalMessagesBound = messages.create.bind(messages);
|
|
390
|
+
messages.create = wrapMethod(originalMessagesBound, {
|
|
268
391
|
transport,
|
|
269
392
|
tenantId,
|
|
270
393
|
environment,
|
|
271
394
|
connectionId,
|
|
272
395
|
hardening,
|
|
273
396
|
clientRef: client,
|
|
397
|
+
deployment,
|
|
398
|
+
promptTemplateId,
|
|
399
|
+
agentId,
|
|
400
|
+
workflowId,
|
|
274
401
|
});
|
|
275
402
|
}
|
|
403
|
+
// withMeta() — builds a fresh wrapMethod against the original (pre-wrap)
|
|
404
|
+
// bound so exactly one observation is emitted per call.
|
|
405
|
+
if (typeof c[WITH_META_MARKER] === "undefined" && originalMessagesBound !== undefined) {
|
|
406
|
+
c[WITH_META_MARKER] = true;
|
|
407
|
+
client["withMeta"] = function (callMeta) {
|
|
408
|
+
const perCallMeta = {};
|
|
409
|
+
if (callMeta.deployment !== undefined)
|
|
410
|
+
perCallMeta.deployment = callMeta.deployment;
|
|
411
|
+
if (callMeta.promptTemplateId !== undefined)
|
|
412
|
+
perCallMeta.prompt_template_id = callMeta.promptTemplateId;
|
|
413
|
+
for (const [k, v] of Object.entries(callMeta)) {
|
|
414
|
+
if (k !== "deployment" &&
|
|
415
|
+
k !== "promptTemplateId" &&
|
|
416
|
+
k !== "agentId" &&
|
|
417
|
+
k !== "workflowId" &&
|
|
418
|
+
k !== "customer" &&
|
|
419
|
+
k !== "feature") {
|
|
420
|
+
perCallMeta[k] = v;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
const perCallAgentId = callMeta.agentId;
|
|
424
|
+
const perCallWorkflowId = callMeta.workflowId;
|
|
425
|
+
const perCallCustomer = callMeta.customer;
|
|
426
|
+
const perCallFeature = callMeta.feature;
|
|
427
|
+
const proxyCreate = originalMessagesBound !== undefined
|
|
428
|
+
? wrapMethod(originalMessagesBound, {
|
|
429
|
+
transport,
|
|
430
|
+
tenantId,
|
|
431
|
+
environment,
|
|
432
|
+
connectionId,
|
|
433
|
+
hardening,
|
|
434
|
+
clientRef: client,
|
|
435
|
+
deployment,
|
|
436
|
+
promptTemplateId,
|
|
437
|
+
agentId,
|
|
438
|
+
workflowId,
|
|
439
|
+
perCallAgentId,
|
|
440
|
+
perCallWorkflowId,
|
|
441
|
+
perCallCustomer,
|
|
442
|
+
perCallFeature,
|
|
443
|
+
perCallMeta,
|
|
444
|
+
})
|
|
445
|
+
: undefined;
|
|
446
|
+
return {
|
|
447
|
+
...c,
|
|
448
|
+
messages: messages !== undefined && proxyCreate !== undefined
|
|
449
|
+
? { ...messages, create: proxyCreate }
|
|
450
|
+
: messages,
|
|
451
|
+
};
|
|
452
|
+
};
|
|
453
|
+
}
|
|
276
454
|
}
|
|
277
|
-
export const __test__ = { MARKER };
|
|
455
|
+
export const __test__ = { MARKER, WITH_META_MARKER };
|
|
278
456
|
//# sourceMappingURL=anthropic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* immediately in wrap.ts (before this module is called).
|
|
42
42
|
*/
|
|
43
43
|
import type { ObservationTransport } from "../transport.js";
|
|
44
|
-
export declare function install(client: unknown, transport: ObservationTransport, tenantId: string | null, environment: string | null, connectionId: string | null): void;
|
|
44
|
+
export declare function install(client: unknown, transport: ObservationTransport, tenantId: string | null, environment: string | null, connectionId: string | null, deployment?: string | null, promptTemplateId?: string | null, agentId?: string | null, workflowId?: string | null, customer?: string | null, feature?: string | null): void;
|
|
45
45
|
export declare const __test__: {
|
|
46
46
|
MIDDLEWARE_NAME: string;
|
|
47
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/providers/bedrock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAgK5D,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,oBAAoB,EAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/providers/bedrock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAgK5D,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,oBAAoB,EAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,gBAAgB,GAAE,MAAM,GAAG,IAAW,EACtC,OAAO,GAAE,MAAM,GAAG,IAAW,EAC7B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,OAAO,GAAE,MAAM,GAAG,IAAW,GAC5B,IAAI,CAqJN;AAED,eAAO,MAAM,QAAQ;;CAAsB,CAAC"}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* immediately in wrap.ts (before this module is called).
|
|
42
42
|
*/
|
|
43
43
|
import { randomUUID } from "node:crypto";
|
|
44
|
-
|
|
44
|
+
import { SDK_VERSION } from "../version.js";
|
|
45
45
|
// Marker placed on the middleware to prevent double-registration when
|
|
46
46
|
// wrap() is called twice on the same client.
|
|
47
47
|
const MIDDLEWARE_NAME = "__tensorcost_bedrock_observe__";
|
|
@@ -139,7 +139,7 @@ function extractConverseTokens(output) {
|
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
141
|
// ── Public install() ──────────────────────────────────────────────────────────
|
|
142
|
-
export function install(client, transport, tenantId, environment, connectionId) {
|
|
142
|
+
export function install(client, transport, tenantId, environment, connectionId, deployment = null, promptTemplateId = null, agentId = null, workflowId = null, customer = null, feature = null) {
|
|
143
143
|
if (!client || typeof client !== "object")
|
|
144
144
|
return;
|
|
145
145
|
const c = client;
|
|
@@ -164,6 +164,20 @@ export function install(client, transport, tenantId, environment, connectionId)
|
|
|
164
164
|
// modelId lives in the command input for both InvokeModel and Converse.
|
|
165
165
|
const modelId = typeof args.input.modelId === "string" ? args.input.modelId : "unknown";
|
|
166
166
|
const { operation, isStreaming } = commandToOperation(context.commandName);
|
|
167
|
+
// Build wrap-time metadata bag (deployment + promptTemplateId).
|
|
168
|
+
const bedrockMeta = {};
|
|
169
|
+
if (deployment !== null)
|
|
170
|
+
bedrockMeta.deployment = deployment;
|
|
171
|
+
if (promptTemplateId !== null)
|
|
172
|
+
bedrockMeta.prompt_template_id = promptTemplateId;
|
|
173
|
+
const metaSpread = Object.keys(bedrockMeta).length > 0 ? { metadata: bedrockMeta } : {};
|
|
174
|
+
// Per-agent-run attribution — wrap-time only. Bedrock has no per-call
|
|
175
|
+
// hook (the Smithy middleware is registered once at wrap() time, and
|
|
176
|
+
// there is no withMeta() proxy for Bedrock clients), so agent_id /
|
|
177
|
+
// workflow_id are constant for the lifetime of this wrapped client.
|
|
178
|
+
// A customer who needs a distinct workflow_id per run must construct
|
|
179
|
+
// a new BedrockRuntimeClient (and re-wrap) per run — see
|
|
180
|
+
// Observation.workflow_id doc in types.ts.
|
|
167
181
|
const commonFields = {
|
|
168
182
|
sdk_version: SDK_VERSION,
|
|
169
183
|
provider: "bedrock",
|
|
@@ -171,9 +185,13 @@ export function install(client, transport, tenantId, environment, connectionId)
|
|
|
171
185
|
operation,
|
|
172
186
|
request_at: requestAt,
|
|
173
187
|
correlation_id: correlationId,
|
|
174
|
-
tenant_id: tenantId,
|
|
175
188
|
...(environment !== null ? { environment } : {}),
|
|
176
189
|
...(connectionId !== null ? { connection_id: connectionId } : {}),
|
|
190
|
+
...(agentId !== null ? { agent_id: agentId } : {}),
|
|
191
|
+
...(workflowId !== null ? { workflow_id: workflowId } : {}),
|
|
192
|
+
...(customer !== null ? { customer } : {}),
|
|
193
|
+
...(feature !== null ? { feature } : {}),
|
|
194
|
+
...metaSpread,
|
|
177
195
|
};
|
|
178
196
|
// Streaming commands: we cannot aggregate tokens across chunks without
|
|
179
197
|
// collecting the full stream. Emit a placeholder observation now —
|