@tensorcost/sdk 0.5.0 → 0.6.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 (50) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +5 -1
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +22 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/errors.d.ts +20 -0
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +22 -0
  9. package/dist/errors.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/providers/anthropic.d.ts +2 -1
  14. package/dist/providers/anthropic.d.ts.map +1 -1
  15. package/dist/providers/anthropic.js +104 -12
  16. package/dist/providers/anthropic.js.map +1 -1
  17. package/dist/providers/bedrock.d.ts +1 -1
  18. package/dist/providers/bedrock.d.ts.map +1 -1
  19. package/dist/providers/bedrock.js +19 -3
  20. package/dist/providers/bedrock.js.map +1 -1
  21. package/dist/providers/detect.d.ts.map +1 -1
  22. package/dist/providers/detect.js +17 -2
  23. package/dist/providers/detect.js.map +1 -1
  24. package/dist/providers/index.d.ts +1 -0
  25. package/dist/providers/index.d.ts.map +1 -1
  26. package/dist/providers/index.js +1 -0
  27. package/dist/providers/index.js.map +1 -1
  28. package/dist/providers/openai.d.ts +2 -1
  29. package/dist/providers/openai.d.ts.map +1 -1
  30. package/dist/providers/openai.js +158 -14
  31. package/dist/providers/openai.js.map +1 -1
  32. package/dist/providers/vertex.d.ts +14 -0
  33. package/dist/providers/vertex.d.ts.map +1 -0
  34. package/dist/providers/vertex.js +167 -0
  35. package/dist/providers/vertex.js.map +1 -0
  36. package/dist/proxy-client.d.ts +24 -0
  37. package/dist/proxy-client.d.ts.map +1 -1
  38. package/dist/proxy-client.js +66 -1
  39. package/dist/proxy-client.js.map +1 -1
  40. package/dist/transport.d.ts +3 -0
  41. package/dist/transport.d.ts.map +1 -1
  42. package/dist/transport.js +9 -2
  43. package/dist/transport.js.map +1 -1
  44. package/dist/types.d.ts +108 -2
  45. package/dist/types.d.ts.map +1 -1
  46. package/dist/wrap.d.ts +5 -2
  47. package/dist/wrap.d.ts.map +1 -1
  48. package/dist/wrap.js +20 -6
  49. package/dist/wrap.js.map +1 -1
  50. package/package.json +7 -2
package/dist/wrap.js CHANGED
@@ -17,8 +17,11 @@
17
17
  *
18
18
  * Bedrock (v0.4.0): observe-only. Applied mode is not supported for Bedrock —
19
19
  * wrap(bedrockClient, { appliedMode: true }) throws TensorCostConfigError.
20
- * The Smithy middleware registered on client.middlewareStack intercepts
21
- * every client.send() call transparently.
20
+ *
21
+ * Vertex (v0.6.0): observe-only. Applied mode is not supported for Vertex —
22
+ * wrap(vertexClient, { appliedMode: true }) throws TensorCostConfigError.
23
+ * The method wrappers on client.models intercept generate_content calls
24
+ * transparently.
22
25
  */
23
26
  import { resolveConfig } from "./config.js";
24
27
  import { TensorCostConfigError } from "./config.js";
@@ -28,6 +31,7 @@ import { installAppliedMode } from "./applied.js";
28
31
  import * as openaiProvider from "./providers/openai.js";
29
32
  import * as anthropicProvider from "./providers/anthropic.js";
30
33
  import * as bedrockProvider from "./providers/bedrock.js";
34
+ import * as vertexProvider from "./providers/vertex.js";
31
35
  import { CircuitBreaker } from "./circuit.js";
32
36
  export function wrap(client, options = {}) {
33
37
  // resolveConfig throws MissingConfigError when apiKey is absent, and
@@ -37,6 +41,7 @@ export function wrap(client, options = {}) {
37
41
  const transport = new ObservationTransport({
38
42
  baseUrl: config.baseUrl,
39
43
  apiKey: config.apiKey,
44
+ tenantId: config.tenantId,
40
45
  failOpen: config.failOpen,
41
46
  });
42
47
  const provider = detectProvider(client);
@@ -50,6 +55,12 @@ export function wrap(client, options = {}) {
50
55
  "Bedrock uses SigV4 signing that cannot be intercepted at the proxy layer. " +
51
56
  "Remove { appliedMode: true } or use an OpenAI / Anthropic client instead.");
52
57
  }
58
+ if (provider === "vertex" && config.appliedMode) {
59
+ throw new TensorCostConfigError("TensorCost applied mode is not supported for Google Vertex AI clients. " +
60
+ "Vertex uses Application Default Credentials and Google-managed transport " +
61
+ "that cannot be intercepted at the proxy layer. Remove { appliedMode: true } " +
62
+ "or use an OpenAI / Anthropic client instead.");
63
+ }
53
64
  // Applied mode: redirect the client to the proxy before installing
54
65
  // the observe-only wrappers. Order matters — installAppliedMode mutates
55
66
  // baseURL and defaultHeaders, and the provider wrappers capture the
@@ -71,7 +82,7 @@ export function wrap(client, options = {}) {
71
82
  onLifecycleEvent: config.onLifecycleEvent,
72
83
  failOpenEnabled: config.failOpenEnabled,
73
84
  circuit,
74
- });
85
+ }, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
75
86
  }
76
87
  else if (provider === "anthropic") {
77
88
  anthropicProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, {
@@ -82,11 +93,14 @@ export function wrap(client, options = {}) {
82
93
  onLifecycleEvent: config.onLifecycleEvent,
83
94
  failOpenEnabled: config.failOpenEnabled,
84
95
  circuit,
85
- });
96
+ }, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
97
+ }
98
+ else if (provider === "bedrock") {
99
+ bedrockProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
86
100
  }
87
101
  else {
88
- // provider === "bedrock"
89
- bedrockProvider.install(client, transport, config.tenantId, config.environment, config.connectionId);
102
+ // provider === "vertex"
103
+ vertexProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
90
104
  }
91
105
  return client;
92
106
  }
package/dist/wrap.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tensorcost/sdk",
3
- "version": "0.5.0",
4
- "description": "One-line wrapper SDK for TensorCost — fire-and-forget LLM observability for OpenAI, Anthropic, and AWS Bedrock clients.",
3
+ "version": "0.6.0",
4
+ "description": "One-line wrapper SDK for TensorCost — fire-and-forget LLM observability for OpenAI, Anthropic, AWS Bedrock, and Google Vertex AI clients.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -19,6 +19,9 @@
19
19
  "CHANGELOG.md",
20
20
  "LICENSE"
21
21
  ],
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
22
25
  "engines": {
23
26
  "node": ">=18.0.0"
24
27
  },
@@ -27,6 +30,8 @@
27
30
  "openai",
28
31
  "anthropic",
29
32
  "bedrock",
33
+ "vertex",
34
+ "google",
30
35
  "aws",
31
36
  "observability",
32
37
  "cost",