@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.
Files changed (100) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/README.md +63 -95
  3. package/dist/adapters/crewai.d.ts +4 -0
  4. package/dist/adapters/crewai.d.ts.map +1 -0
  5. package/dist/adapters/crewai.js +6 -0
  6. package/dist/adapters/crewai.js.map +1 -0
  7. package/dist/adapters/langchain.d.ts +4 -0
  8. package/dist/adapters/langchain.d.ts.map +1 -0
  9. package/dist/adapters/langchain.js +6 -0
  10. package/dist/adapters/langchain.js.map +1 -0
  11. package/dist/adapters/llamaindex.d.ts +4 -0
  12. package/dist/adapters/llamaindex.d.ts.map +1 -0
  13. package/dist/adapters/llamaindex.js +6 -0
  14. package/dist/adapters/llamaindex.js.map +1 -0
  15. package/dist/adapters/vercel-ai.d.ts +4 -0
  16. package/dist/adapters/vercel-ai.d.ts.map +1 -0
  17. package/dist/adapters/vercel-ai.js +6 -0
  18. package/dist/adapters/vercel-ai.js.map +1 -0
  19. package/dist/admit-client.d.ts +39 -0
  20. package/dist/admit-client.d.ts.map +1 -0
  21. package/dist/admit-client.js +93 -0
  22. package/dist/admit-client.js.map +1 -0
  23. package/dist/applied.d.ts +6 -1
  24. package/dist/applied.d.ts.map +1 -1
  25. package/dist/applied.js +13 -1
  26. package/dist/applied.js.map +1 -1
  27. package/dist/circuit-observations.d.ts +12 -0
  28. package/dist/circuit-observations.d.ts.map +1 -0
  29. package/dist/circuit-observations.js +37 -0
  30. package/dist/circuit-observations.js.map +1 -0
  31. package/dist/circuit.d.ts +4 -1
  32. package/dist/circuit.d.ts.map +1 -1
  33. package/dist/circuit.js +13 -7
  34. package/dist/circuit.js.map +1 -1
  35. package/dist/config.d.ts +2 -3
  36. package/dist/config.d.ts.map +1 -1
  37. package/dist/config.js +74 -6
  38. package/dist/config.js.map +1 -1
  39. package/dist/decision.d.ts +11 -0
  40. package/dist/decision.d.ts.map +1 -0
  41. package/dist/decision.js +40 -0
  42. package/dist/decision.js.map +1 -0
  43. package/dist/errors.d.ts +40 -0
  44. package/dist/errors.d.ts.map +1 -1
  45. package/dist/errors.js +46 -0
  46. package/dist/errors.js.map +1 -1
  47. package/dist/index.d.ts +8 -3
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +7 -2
  50. package/dist/index.js.map +1 -1
  51. package/dist/layer.d.ts +27 -0
  52. package/dist/layer.d.ts.map +1 -0
  53. package/dist/layer.js +77 -0
  54. package/dist/layer.js.map +1 -0
  55. package/dist/providers/anthropic.d.ts +11 -1
  56. package/dist/providers/anthropic.d.ts.map +1 -1
  57. package/dist/providers/anthropic.js +196 -18
  58. package/dist/providers/anthropic.js.map +1 -1
  59. package/dist/providers/bedrock.d.ts +1 -1
  60. package/dist/providers/bedrock.d.ts.map +1 -1
  61. package/dist/providers/bedrock.js +21 -3
  62. package/dist/providers/bedrock.js.map +1 -1
  63. package/dist/providers/detect.d.ts.map +1 -1
  64. package/dist/providers/detect.js +17 -2
  65. package/dist/providers/detect.js.map +1 -1
  66. package/dist/providers/index.d.ts +1 -0
  67. package/dist/providers/index.d.ts.map +1 -1
  68. package/dist/providers/index.js +1 -0
  69. package/dist/providers/index.js.map +1 -1
  70. package/dist/providers/openai.d.ts +11 -1
  71. package/dist/providers/openai.d.ts.map +1 -1
  72. package/dist/providers/openai.js +255 -20
  73. package/dist/providers/openai.js.map +1 -1
  74. package/dist/providers/vertex.d.ts +14 -0
  75. package/dist/providers/vertex.d.ts.map +1 -0
  76. package/dist/providers/vertex.js +174 -0
  77. package/dist/providers/vertex.js.map +1 -0
  78. package/dist/proxy-client.d.ts +37 -1
  79. package/dist/proxy-client.d.ts.map +1 -1
  80. package/dist/proxy-client.js +124 -4
  81. package/dist/proxy-client.js.map +1 -1
  82. package/dist/sdk-layer.d.ts +26 -0
  83. package/dist/sdk-layer.d.ts.map +1 -0
  84. package/dist/sdk-layer.js +73 -0
  85. package/dist/sdk-layer.js.map +1 -0
  86. package/dist/transport.d.ts +6 -1
  87. package/dist/transport.d.ts.map +1 -1
  88. package/dist/transport.js +14 -3
  89. package/dist/transport.js.map +1 -1
  90. package/dist/types.d.ts +178 -17
  91. package/dist/types.d.ts.map +1 -1
  92. package/dist/version.d.ts +9 -0
  93. package/dist/version.d.ts.map +1 -0
  94. package/dist/version.js +10 -0
  95. package/dist/version.js.map +1 -0
  96. package/dist/wrap.d.ts +13 -14
  97. package/dist/wrap.d.ts.map +1 -1
  98. package/dist/wrap.js +66 -59
  99. package/dist/wrap.js.map +1 -1
  100. package/package.json +7 -2
@@ -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;AAG5D,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;AAK/C,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,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;CACzB;AA6PD,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,GAClC,IAAI,CAoBN;AAED,eAAO,MAAM,QAAQ;;CAAa,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 { TensorCostProxyError } from "../errors.js";
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
- const SDK_VERSION = "tensorcost-node/0.4.0";
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
- // Applied-mode path.
42
- if (opts.hardening.appliedMode && opts.hardening.proxyUrl) {
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 (!circuitWasOpen) {
132
+ if (shouldTryProxy) {
58
133
  try {
59
134
  const getToken = opts.getToken ?? (() => opts.transport.getToken());
60
135
  const bearerToken = await getToken();
61
- proxyResult = await proxyRequest({
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-only path.
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
- const bound = messages.create.bind(messages);
267
- messages.create = wrapMethod(bound, {
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,GAC1B,IAAI,CAoIN;AAED,eAAO,MAAM,QAAQ;;CAAsB,CAAC"}
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
- const SDK_VERSION = "tensorcost-node/0.4.0";
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 —