@tensorcost/sdk 0.6.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 (93) hide show
  1. package/CHANGELOG.md +51 -8
  2. package/README.md +63 -99
  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 +52 -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 +20 -0
  44. package/dist/errors.d.ts.map +1 -1
  45. package/dist/errors.js +24 -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 +9 -0
  56. package/dist/providers/anthropic.d.ts.map +1 -1
  57. package/dist/providers/anthropic.js +100 -14
  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 +4 -2
  62. package/dist/providers/bedrock.js.map +1 -1
  63. package/dist/providers/openai.d.ts +9 -0
  64. package/dist/providers/openai.d.ts.map +1 -1
  65. package/dist/providers/openai.js +108 -17
  66. package/dist/providers/openai.js.map +1 -1
  67. package/dist/providers/vertex.d.ts +1 -1
  68. package/dist/providers/vertex.d.ts.map +1 -1
  69. package/dist/providers/vertex.js +9 -2
  70. package/dist/providers/vertex.js.map +1 -1
  71. package/dist/proxy-client.d.ts +18 -6
  72. package/dist/proxy-client.d.ts.map +1 -1
  73. package/dist/proxy-client.js +65 -10
  74. package/dist/proxy-client.js.map +1 -1
  75. package/dist/sdk-layer.d.ts +26 -0
  76. package/dist/sdk-layer.d.ts.map +1 -0
  77. package/dist/sdk-layer.js +73 -0
  78. package/dist/sdk-layer.js.map +1 -0
  79. package/dist/transport.d.ts +3 -1
  80. package/dist/transport.d.ts.map +1 -1
  81. package/dist/transport.js +6 -2
  82. package/dist/transport.js.map +1 -1
  83. package/dist/types.d.ts +70 -15
  84. package/dist/types.d.ts.map +1 -1
  85. package/dist/version.d.ts +9 -0
  86. package/dist/version.d.ts.map +1 -0
  87. package/dist/version.js +10 -0
  88. package/dist/version.js.map +1 -0
  89. package/dist/wrap.d.ts +13 -17
  90. package/dist/wrap.d.ts.map +1 -1
  91. package/dist/wrap.js +62 -69
  92. package/dist/wrap.js.map +1 -1
  93. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-client.js","sourceRoot":"","sources":["../src/proxy-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy-client.js","sourceRoot":"","sources":["../src/proxy-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Fetches the console-published control layer with a 30s cache.
3
+ * Decays to govern when the endpoint is unreachable for SDK_LAYER_DECAY_MS.
4
+ */
5
+ import type { ControlLayer } from "./layer.js";
6
+ import { type DataGrant } from "./layer.js";
7
+ export interface SdkLayerClientOptions {
8
+ baseUrl: string;
9
+ getToken: () => Promise<string>;
10
+ fetchImpl?: typeof fetch;
11
+ }
12
+ export declare class SdkLayerClient {
13
+ private readonly baseUrl;
14
+ private readonly getToken;
15
+ private readonly fetchImpl;
16
+ private cache;
17
+ /** 0 until the first successful fetch — cold start must not skip decay-to-govern. */
18
+ private lastSuccessAt;
19
+ constructor(opts: SdkLayerClientOptions);
20
+ /** effective = min(codeMaxLayer, published). */
21
+ effectiveLayer(codeMaxLayer: ControlLayer): Promise<ControlLayer>;
22
+ /** intersect(codeMaxGrants, console.data_grants). Absent codeMax = all console grants. */
23
+ effectiveGrants(codeMaxGrants?: readonly DataGrant[], codeMaxLayer?: ControlLayer): Promise<DataGrant[]>;
24
+ private fetchPublishedSnapshot;
25
+ }
26
+ //# sourceMappingURL=sdk-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-layer.d.ts","sourceRoot":"","sources":["../src/sdk-layer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC,OAAO,CAAC,KAAK,CAIG;IAChB,qFAAqF;IACrF,OAAO,CAAC,aAAa,CAAK;gBAEd,IAAI,EAAE,qBAAqB;IAMvC,gDAAgD;IAC1C,cAAc,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAKvE,0FAA0F;IACpF,eAAe,CACnB,aAAa,CAAC,EAAE,SAAS,SAAS,EAAE,EACpC,YAAY,GAAE,YAAwB,GACrC,OAAO,CAAC,SAAS,EAAE,CAAC;YAKT,sBAAsB;CA6DrC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Fetches the console-published control layer with a 30s cache.
3
+ * Decays to govern when the endpoint is unreachable for SDK_LAYER_DECAY_MS.
4
+ */
5
+ import { intersectGrants, isControlLayer, minLayer, SDK_LAYER_CACHE_TTL_MS, SDK_LAYER_DECAY_MS, SDK_LAYER_PATH, } from "./layer.js";
6
+ import { SDK_VERSION, sdkCapabilityHeader } from "./version.js";
7
+ export class SdkLayerClient {
8
+ constructor(opts) {
9
+ this.cache = null;
10
+ /** 0 until the first successful fetch — cold start must not skip decay-to-govern. */
11
+ this.lastSuccessAt = 0;
12
+ this.baseUrl = opts.baseUrl.replace(/\/+$/, "");
13
+ this.getToken = opts.getToken;
14
+ this.fetchImpl = opts.fetchImpl ?? globalThis.fetch.bind(globalThis);
15
+ }
16
+ /** effective = min(codeMaxLayer, published). */
17
+ async effectiveLayer(codeMaxLayer) {
18
+ const snap = await this.fetchPublishedSnapshot(codeMaxLayer);
19
+ return minLayer(codeMaxLayer, snap.layer);
20
+ }
21
+ /** intersect(codeMaxGrants, console.data_grants). Absent codeMax = all console grants. */
22
+ async effectiveGrants(codeMaxGrants, codeMaxLayer = "observe") {
23
+ const snap = await this.fetchPublishedSnapshot(codeMaxLayer);
24
+ return intersectGrants(codeMaxGrants, snap.dataGrants);
25
+ }
26
+ async fetchPublishedSnapshot(codeMaxLayer) {
27
+ const now = Date.now();
28
+ if (this.cache && now - this.cache.fetchedAt < SDK_LAYER_CACHE_TTL_MS) {
29
+ return {
30
+ layer: this.cache.layer,
31
+ dataGrants: this.cache.dataGrants,
32
+ };
33
+ }
34
+ try {
35
+ const token = await this.getToken();
36
+ const url = `${this.baseUrl}${SDK_LAYER_PATH}`;
37
+ const resp = await this.fetchImpl(url, {
38
+ method: "GET",
39
+ headers: {
40
+ Authorization: `Bearer ${token}`,
41
+ "x-tc-sdk-version": SDK_VERSION,
42
+ "x-tc-sdk-capabilities": sdkCapabilityHeader(),
43
+ },
44
+ });
45
+ if (!resp.ok) {
46
+ throw new Error(`sdk-layer GET failed status=${resp.status}`);
47
+ }
48
+ const body = (await resp.json());
49
+ const layerRaw = body.published_layer ?? body.layer ?? "observe";
50
+ let layer = isControlLayer(layerRaw) ? layerRaw : "observe";
51
+ if (body.routing_paused) {
52
+ layer = minLayer(layer, "govern");
53
+ }
54
+ const dataGrants = (body.data_grants ?? []).filter((g) => g === "telemetry" ||
55
+ g === "retain_completions" ||
56
+ g === "retain_prompts" ||
57
+ g === "retain_tools");
58
+ this.cache = { layer, dataGrants, fetchedAt: now };
59
+ this.lastSuccessAt = now;
60
+ return { layer, dataGrants };
61
+ }
62
+ catch {
63
+ if (now - this.lastSuccessAt >= SDK_LAYER_DECAY_MS) {
64
+ return { layer: "govern", dataGrants: [] };
65
+ }
66
+ return {
67
+ layer: this.cache?.layer ?? codeMaxLayer,
68
+ dataGrants: this.cache?.dataGrants ?? [],
69
+ };
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=sdk-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-layer.js","sourceRoot":"","sources":["../src/sdk-layer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,eAAe,EACf,cAAc,EACd,QAAQ,EACR,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GAEf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAQhE,MAAM,OAAO,cAAc;IAazB,YAAY,IAA2B;QAR/B,UAAK,GAIF,IAAI,CAAC;QAChB,qFAAqF;QAC7E,kBAAa,GAAG,CAAC,CAAC;QAGxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,cAAc,CAAC,YAA0B;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,eAAe,CACnB,aAAoC,EACpC,eAA6B,SAAS;QAEtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,YAA0B;QAI7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,sBAAsB,EAAE,CAAC;YACtE,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;gBACvB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;aAClC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,cAAc,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBACrC,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,kBAAkB,EAAE,WAAW;oBAC/B,uBAAuB,EAAE,mBAAmB,EAAE;iBAC/C;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAK9B,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;YACjE,IAAI,KAAK,GAAiB,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,CAChD,CAAC,CAAC,EAAkB,EAAE,CACpB,CAAC,KAAK,WAAW;gBACjB,CAAC,KAAK,oBAAoB;gBAC1B,CAAC,KAAK,gBAAgB;gBACtB,CAAC,KAAK,cAAc,CACvB,CAAC;YAEF,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,IAAI,kBAAkB,EAAE,CAAC;gBACnD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC7C,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,YAAY;gBACxC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE;aACzC,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -49,7 +49,9 @@ export declare class ObservationTransport {
49
49
  */
50
50
  post(observation: Observation): void;
51
51
  private deliver;
52
- private getToken;
52
+ /** Exchange or return cached JWT for proxy/admit/sdk-layer calls. */
53
+ getToken(): Promise<string>;
54
+ private fetchToken;
53
55
  private exchangeToken;
54
56
  }
55
57
  export declare const __test__: {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAOD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,UAAU,CAA2B;IAC7C,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAAgC;gBAEzC,IAAI,EAAE,gBAAgB;IASlC;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;YAqBtB,OAAO;YAqCP,QAAQ;YAiBR,aAAa;CA+C5B;AAED,eAAO,MAAM,QAAQ;;;CAGpB,CAAC"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAOD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,UAAU,CAA2B;IAC7C,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAAgC;gBAEzC,IAAI,EAAE,gBAAgB;IASlC;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;YAqBtB,OAAO;IAqCrB,qEAAqE;IAC/D,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;YAInB,UAAU;YAiBV,aAAa;CA+C5B;AAED,eAAO,MAAM,QAAQ;;;CAGpB,CAAC"}
package/dist/transport.js CHANGED
@@ -19,7 +19,7 @@
19
19
  * (the default) and surfaced via console.warn. The customer's call
20
20
  * site never sees an exception.
21
21
  */
22
- const SDK_VERSION = "tensorcost-node/0.6.0";
22
+ import { SDK_VERSION } from "./version.js";
23
23
  const TOKEN_REFRESH_LEEWAY_MS = 60_000;
24
24
  const DEFAULT_TOKEN_LIFETIME_MS = 15 * 60_000;
25
25
  const MAX_QUEUE_DEPTH = 1024;
@@ -62,7 +62,7 @@ export class ObservationTransport {
62
62
  }
63
63
  async deliver(observation) {
64
64
  try {
65
- const token = await this.getToken();
65
+ const token = await this.fetchToken();
66
66
  const url = `${this.baseUrl}/api/inference-proxy/observation`;
67
67
  const controller = new AbortController();
68
68
  const timer = setTimeout(() => controller.abort(), this.timeoutMs);
@@ -94,7 +94,11 @@ export class ObservationTransport {
94
94
  console.warn(`tensorcost: observation delivery failed: ${err.message}`);
95
95
  }
96
96
  }
97
+ /** Exchange or return cached JWT for proxy/admit/sdk-layer calls. */
97
98
  async getToken() {
99
+ return this.fetchToken();
100
+ }
101
+ async fetchToken() {
98
102
  const now = Date.now();
99
103
  if (this.tokenCache &&
100
104
  now < this.tokenCache.expiresAt - TOKEN_REFRESH_LEEWAY_MS) {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,9 +7,12 @@
7
7
  */
8
8
  import type { LifecycleEventCallback } from "./telemetry.js";
9
9
  import type { RetryConfig } from "./retry.js";
10
+ import type { ControlLayer, DataGrant } from "./layer.js";
11
+ export type { ControlLayer, DataGrant } from "./layer.js";
10
12
  export type Provider = "openai" | "anthropic" | "bedrock" | "vertex";
11
13
  export type Operation = "chat.completions" | "completions" | "messages" | "bedrock.invoke_model" | "bedrock.converse" | "bedrock.invoke_model_stream" | "bedrock.converse_stream" | "vertex.generate_content" | "vertex.generate_content_stream";
12
14
  export type ObservationStatus = "success" | "error";
15
+ export type ObservationModality = "text" | "image" | "audio" | "video" | "mixed";
13
16
  /**
14
17
  * Wire shape posted to `POST /api/proxy/observation`. Mirrors the
15
18
  * Python SDK's `Observation` model byte-for-byte so the two SDKs
@@ -20,6 +23,8 @@ export interface Observation {
20
23
  provider: Provider;
21
24
  model: string;
22
25
  operation: Operation;
26
+ /** Defaults to "text" when omitted on the wire. */
27
+ modality?: ObservationModality;
23
28
  request_at: string;
24
29
  response_at: string;
25
30
  input_tokens: number | null;
@@ -95,6 +100,17 @@ export interface Observation {
95
100
  * superseded_at IS NULL` — see ai-service's `agent-runs` module.
96
101
  */
97
102
  workflow_id?: string;
103
+ /**
104
+ * A-04 chargeback — end-customer cohort. Optional. Stamped on every
105
+ * observation when configured via `wrap({ customer })` or per-call
106
+ * `.withMeta({ customer })`. Lands in `ai.ai_spend_events.customer`.
107
+ */
108
+ customer?: string;
109
+ /**
110
+ * A-04 chargeback — product feature. Same plumbing as `customer`,
111
+ * landing in `ai.ai_spend_events.feature`.
112
+ */
113
+ feature?: string;
98
114
  }
99
115
  export interface WrapOptions {
100
116
  /** Long-lived TensorCost API key. Falls back to `TENSORCOST_API_KEY`. */
@@ -139,19 +155,26 @@ export interface WrapOptions {
139
155
  */
140
156
  failOpen?: boolean;
141
157
  /**
142
- * Layer 2 applied mode. When true, the SDK routes every inference
143
- * request through the TensorCost inference-proxy rather than sending
144
- * it directly to the upstream AI provider. The proxy decides
145
- * per-request whether to actually re-route or pass through unchanged.
146
- *
147
- * Defaults to false. Observe-only telemetry continues to fire
148
- * regardless of this setting.
158
+ * Control-layer ceiling for this wrapped client. A layer is a ceiling,
159
+ * not a setting — effective layer is min(code.maxLayer, console published).
149
160
  *
150
- * Requires `proxyUrl` (or `TENSORCOST_PROXY_URL` env var) to be set;
151
- * throws `TensorCostConfigError` at `wrap()` time if neither is present.
161
+ * off — no SDK wiring; client returned unchanged
162
+ * observe — telemetry only (default when maxLayer unset)
163
+ * govern — metadata-only admit before direct provider call
164
+ * steer — proxy in path; proxy may steer without full route
165
+ * route — full applied-mode routing through inference-proxy
152
166
  *
153
- * Not yet supported for AWS Bedrock clients — `wrap()` will throw
154
- * immediately if you enable applied mode with a Bedrock client.
167
+ * Requires `proxyUrl` when maxLayer is steer or route.
168
+ */
169
+ maxLayer?: ControlLayer;
170
+ /**
171
+ * Code-side data-grant ceiling. Effective grants =
172
+ * intersect(maxGrants, console.data_grants). Omit to allow all console grants.
173
+ */
174
+ maxGrants?: readonly DataGrant[];
175
+ /**
176
+ * @deprecated Use `maxLayer: 'route'` instead. When true and maxLayer is
177
+ * unset, resolves to route and emits a console warning.
155
178
  */
156
179
  appliedMode?: boolean;
157
180
  /**
@@ -265,6 +288,28 @@ export interface WrapOptions {
265
288
  * Falls back to `TENSORCOST_WORKFLOW_ID` env var.
266
289
  */
267
290
  workflowId?: string;
291
+ /**
292
+ * Routing-policy application scope. Sent as `x-tc-application` on proxy
293
+ * requests. Falls back to `TC_APPLICATION` / `TENSORCOST_APPLICATION`.
294
+ */
295
+ application?: string;
296
+ /**
297
+ * Routing-policy tags. Sent as comma-separated `x-tc-tags` on proxy
298
+ * requests. Falls back to `TC_TAGS` / `TENSORCOST_TAGS` (comma-separated).
299
+ */
300
+ tags?: string | string[];
301
+ /**
302
+ * A-04 chargeback — end-customer cohort (max 128 chars). Sent on
303
+ * observations and as `x-tc-customer` in applied mode.
304
+ * Falls back to `TENSORCOST_CUSTOMER`.
305
+ */
306
+ customer?: string;
307
+ /**
308
+ * A-04 chargeback — product feature (max 128 chars). Sent on
309
+ * observations and as `x-tc-feature` in applied mode.
310
+ * Falls back to `TENSORCOST_FEATURE`.
311
+ */
312
+ feature?: string;
268
313
  }
269
314
  export interface ResolvedConfig {
270
315
  apiKey: string;
@@ -284,12 +329,12 @@ export interface ResolvedConfig {
284
329
  */
285
330
  connectionId: string | null;
286
331
  failOpen: boolean;
287
- /** Resolved applied-mode flag. */
332
+ /** Resolved control-layer ceiling. */
333
+ maxLayer: ControlLayer;
334
+ /** @deprecated Derived: maxLayer is steer or route. */
288
335
  appliedMode: boolean;
289
336
  /**
290
- * Resolved proxy base URL. Non-null only when `appliedMode=true`.
291
- * Guaranteed by config resolution — `wrap()` throws before returning
292
- * a config with `appliedMode=true` and `proxyUrl=null`.
337
+ * Resolved proxy base URL. Required when maxLayer is steer or route.
293
338
  */
294
339
  proxyUrl: string | null;
295
340
  retry: RetryConfig;
@@ -306,5 +351,15 @@ export interface ResolvedConfig {
306
351
  agentId: string | null;
307
352
  /** Resolved wrap-time workflow (run) id default. `null` when not configured. */
308
353
  workflowId: string | null;
354
+ /** Resolved application scope for routing policies. `null` when unset. */
355
+ application: string | null;
356
+ /** Resolved routing tags (normalized list). Empty when unset. */
357
+ tags: string[];
358
+ /** A-04 — resolved customer cohort. `null` when unset. */
359
+ customer: string | null;
360
+ /** A-04 — resolved product feature. `null` when unset. */
361
+ feature: string | null;
362
+ /** Resolved code-side data grant ceiling. Empty = no ceiling. */
363
+ maxGrants: DataGrant[];
309
364
  }
310
365
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Central SDK identity — wire headers and observation sdk_version.
3
+ */
4
+ export declare const SDK_VERSION = "tensorcost-node/1.0.0";
5
+ /** Advertise only capabilities this build implements. */
6
+ export declare const SDK_CAPABILITIES: readonly ["streaming", "refusal-v1"];
7
+ export type SdkCapability = (typeof SDK_CAPABILITIES)[number];
8
+ export declare function sdkCapabilityHeader(): string;
9
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW,0BAA0B,CAAC;AAEnD,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,sCAAuC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Central SDK identity — wire headers and observation sdk_version.
3
+ */
4
+ export const SDK_VERSION = "tensorcost-node/1.0.0";
5
+ /** Advertise only capabilities this build implements. */
6
+ export const SDK_CAPABILITIES = ["streaming", "refusal-v1"];
7
+ export function sdkCapabilityHeader() {
8
+ return SDK_CAPABILITIES.join(",");
9
+ }
10
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAEnD,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,YAAY,CAAU,CAAC;AAGrE,MAAM,UAAU,mBAAmB;IACjC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC"}
package/dist/wrap.d.ts CHANGED
@@ -5,24 +5,20 @@
5
5
  * ergonomics non-negotiable: customer changes one line, no other code
6
6
  * paths shift.
7
7
  *
8
- * Applied mode (Layer 2): when `options.appliedMode=true`, the client's
9
- * baseURL is permanently redirected to the TensorCost inference-proxy and
10
- * two custom headers (`x-tc-provider-url`, `x-tc-provider-auth`) are
11
- * injected into `client.defaultHeaders`. The proxy handles per-request
12
- * routing decisions. Observe-only telemetry still fires post-call.
13
- *
14
- * Hardening (v0.4.0): applied-mode requests now go through the proxy-client
15
- * module which adds retries, timeouts, typed errors, telemetry hooks, and
16
- * the fail-open circuit breaker.
17
- *
18
- * Bedrock (v0.4.0): observe-only. Applied mode is not supported for Bedrock —
19
- * wrap(bedrockClient, { appliedMode: true }) throws TensorCostConfigError.
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.
8
+ * Control layers:
9
+ * off — client returned unchanged (no transport, no hooks)
10
+ * observe — telemetry only
11
+ * govern — admit (metadata) then direct provider call
12
+ * steer/route — proxy in request path (OpenAI / Anthropic only)
25
13
  */
14
+ import { TensorCostConfigError } from "./config.js";
15
+ import { layerRank } from "./layer.js";
26
16
  import type { WrapOptions } from "./types.js";
17
+ declare function steerRouteUnsupportedError(provider: string, maxLayer: string): TensorCostConfigError;
27
18
  export declare function wrap<T>(client: T, options?: WrapOptions): T;
19
+ export declare const __test__: {
20
+ layerRank: typeof layerRank;
21
+ steerRouteUnsupportedError: typeof steerRouteUnsupportedError;
22
+ };
23
+ export {};
28
24
  //# sourceMappingURL=wrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAYH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,CAAC,CAsH/D"}
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAUpD,OAAO,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,iBAAS,0BAA0B,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,qBAAqB,CAOvB;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,CAAC,CA4H/D;AAED,eAAO,MAAM,QAAQ;;;CAA4C,CAAC"}
package/dist/wrap.js CHANGED
@@ -5,23 +5,11 @@
5
5
  * ergonomics non-negotiable: customer changes one line, no other code
6
6
  * paths shift.
7
7
  *
8
- * Applied mode (Layer 2): when `options.appliedMode=true`, the client's
9
- * baseURL is permanently redirected to the TensorCost inference-proxy and
10
- * two custom headers (`x-tc-provider-url`, `x-tc-provider-auth`) are
11
- * injected into `client.defaultHeaders`. The proxy handles per-request
12
- * routing decisions. Observe-only telemetry still fires post-call.
13
- *
14
- * Hardening (v0.4.0): applied-mode requests now go through the proxy-client
15
- * module which adds retries, timeouts, typed errors, telemetry hooks, and
16
- * the fail-open circuit breaker.
17
- *
18
- * Bedrock (v0.4.0): observe-only. Applied mode is not supported for Bedrock —
19
- * wrap(bedrockClient, { appliedMode: true }) throws TensorCostConfigError.
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.
8
+ * Control layers:
9
+ * off — client returned unchanged (no transport, no hooks)
10
+ * observe — telemetry only
11
+ * govern — admit (metadata) then direct provider call
12
+ * steer/route — proxy in request path (OpenAI / Anthropic only)
25
13
  */
26
14
  import { resolveConfig } from "./config.js";
27
15
  import { TensorCostConfigError } from "./config.js";
@@ -33,75 +21,80 @@ import * as anthropicProvider from "./providers/anthropic.js";
33
21
  import * as bedrockProvider from "./providers/bedrock.js";
34
22
  import * as vertexProvider from "./providers/vertex.js";
35
23
  import { CircuitBreaker } from "./circuit.js";
24
+ import { bindCircuitObservations } from "./circuit-observations.js";
25
+ import { layerRank, needsProxyUrl } from "./layer.js";
26
+ import { SdkLayerClient } from "./sdk-layer.js";
27
+ function steerRouteUnsupportedError(provider, maxLayer) {
28
+ return new TensorCostConfigError(`TensorCost maxLayer '${maxLayer}' is not supported for ${provider} clients. ` +
29
+ "Bedrock and Vertex use provider-native signing that cannot be intercepted at " +
30
+ "the proxy layer. Use maxLayer 'govern' or lower for telemetry, or wrap an " +
31
+ "OpenAI / Anthropic client for steer/route.");
32
+ }
36
33
  export function wrap(client, options = {}) {
37
- // resolveConfig throws MissingConfigError when apiKey is absent, and
38
- // TensorCostConfigError when appliedMode=true with no proxyUrl.
39
- // Both are intentional non-fail-open cases — see config.ts header.
40
34
  const config = resolveConfig(options);
35
+ // L0 off — no transport, no provider hooks.
36
+ if (config.maxLayer === "off") {
37
+ return client;
38
+ }
39
+ const provider = detectProvider(client);
40
+ if (needsProxyUrl(config.maxLayer) &&
41
+ (provider === "bedrock" || provider === "vertex")) {
42
+ throw steerRouteUnsupportedError(provider, config.maxLayer);
43
+ }
41
44
  const transport = new ObservationTransport({
42
45
  baseUrl: config.baseUrl,
43
46
  apiKey: config.apiKey,
44
47
  tenantId: config.tenantId,
45
48
  failOpen: config.failOpen,
46
49
  });
47
- const provider = detectProvider(client);
48
- // Bedrock does not support applied mode. SigV4 signing happens inside
49
- // the AWS SDK before our middleware can intercept the request, and the
50
- // signed URL/headers are region-specific. Fail loudly here rather than
51
- // silently ignoring the option — the customer almost certainly made a
52
- // configuration mistake.
53
- if (provider === "bedrock" && config.appliedMode) {
54
- throw new TensorCostConfigError("TensorCost applied mode is not supported for AWS Bedrock clients. " +
55
- "Bedrock uses SigV4 signing that cannot be intercepted at the proxy layer. " +
56
- "Remove { appliedMode: true } or use an OpenAI / Anthropic client instead.");
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
- }
64
- // Applied mode: redirect the client to the proxy before installing
65
- // the observe-only wrappers. Order matters — installAppliedMode mutates
66
- // baseURL and defaultHeaders, and the provider wrappers capture the
67
- // (now-modified) bound methods, so post-call observations correctly
68
- // attribute the response to the original provider model even though
69
- // the network call went through the proxy.
70
- if (config.appliedMode && config.proxyUrl !== null) {
71
- installAppliedMode(client, config.proxyUrl, provider);
50
+ const sdkLayer = new SdkLayerClient({
51
+ baseUrl: config.baseUrl,
52
+ getToken: () => transport.getToken(),
53
+ });
54
+ if (needsProxyUrl(config.maxLayer) &&
55
+ config.proxyUrl !== null &&
56
+ (provider === "openai" || provider === "anthropic")) {
57
+ installAppliedMode(client, config.proxyUrl, provider, {
58
+ application: config.application,
59
+ tags: config.tags,
60
+ customer: config.customer,
61
+ feature: config.feature,
62
+ });
72
63
  }
73
- // One circuit breaker per wrap() call — shared across all requests
74
- // dispatched through this client instance.
75
- const circuit = new CircuitBreaker();
64
+ const circuit = new CircuitBreaker(undefined, bindCircuitObservations(transport, {
65
+ provider,
66
+ tenantId: config.tenantId,
67
+ environment: config.environment,
68
+ }));
69
+ const hardening = {
70
+ maxLayer: config.maxLayer,
71
+ appliedMode: config.appliedMode,
72
+ proxyUrl: config.proxyUrl,
73
+ baseUrl: config.baseUrl,
74
+ sdkLayer,
75
+ retry: config.retry,
76
+ timeoutMs: config.timeoutMs,
77
+ onLifecycleEvent: config.onLifecycleEvent,
78
+ failOpenEnabled: config.failOpenEnabled,
79
+ circuit,
80
+ application: config.application,
81
+ tags: config.tags,
82
+ customer: config.customer,
83
+ feature: config.feature,
84
+ };
76
85
  if (provider === "openai") {
77
- openaiProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, {
78
- appliedMode: config.appliedMode,
79
- proxyUrl: config.proxyUrl,
80
- retry: config.retry,
81
- timeoutMs: config.timeoutMs,
82
- onLifecycleEvent: config.onLifecycleEvent,
83
- failOpenEnabled: config.failOpenEnabled,
84
- circuit,
85
- }, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
86
+ openaiProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, hardening, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
86
87
  }
87
88
  else if (provider === "anthropic") {
88
- anthropicProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, {
89
- appliedMode: config.appliedMode,
90
- proxyUrl: config.proxyUrl,
91
- retry: config.retry,
92
- timeoutMs: config.timeoutMs,
93
- onLifecycleEvent: config.onLifecycleEvent,
94
- failOpenEnabled: config.failOpenEnabled,
95
- circuit,
96
- }, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
89
+ anthropicProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, hardening, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
97
90
  }
98
91
  else if (provider === "bedrock") {
99
- bedrockProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
92
+ bedrockProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, config.deployment, config.promptTemplateId, config.agentId, config.workflowId, config.customer, config.feature);
100
93
  }
101
94
  else {
102
- // provider === "vertex"
103
- vertexProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
95
+ vertexProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, config.deployment, config.promptTemplateId, config.agentId, config.workflowId, config.customer, config.feature);
104
96
  }
105
97
  return client;
106
98
  }
99
+ export const __test__ = { layerRank, steerRouteUnsupportedError };
107
100
  //# sourceMappingURL=wrap.js.map