@dexcost/sdk 0.2.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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +210 -0
  3. package/dist/adapters/_netbytes.d.ts +31 -0
  4. package/dist/adapters/_netbytes.d.ts.map +1 -0
  5. package/dist/adapters/_netbytes.js +154 -0
  6. package/dist/adapters/_netbytes.js.map +1 -0
  7. package/dist/adapters/aws-lambda.d.ts +41 -0
  8. package/dist/adapters/aws-lambda.d.ts.map +1 -0
  9. package/dist/adapters/aws-lambda.js +65 -0
  10. package/dist/adapters/aws-lambda.js.map +1 -0
  11. package/dist/adapters/browser.d.ts +52 -0
  12. package/dist/adapters/browser.d.ts.map +1 -0
  13. package/dist/adapters/browser.js +127 -0
  14. package/dist/adapters/browser.js.map +1 -0
  15. package/dist/adapters/compute-wrap.d.ts +33 -0
  16. package/dist/adapters/compute-wrap.d.ts.map +1 -0
  17. package/dist/adapters/compute-wrap.js +188 -0
  18. package/dist/adapters/compute-wrap.js.map +1 -0
  19. package/dist/adapters/data/aws_lambda_pricing.json +61 -0
  20. package/dist/adapters/gpu-wrap.d.ts +31 -0
  21. package/dist/adapters/gpu-wrap.d.ts.map +1 -0
  22. package/dist/adapters/gpu-wrap.js +147 -0
  23. package/dist/adapters/gpu-wrap.js.map +1 -0
  24. package/dist/adapters/http.d.ts +58 -0
  25. package/dist/adapters/http.d.ts.map +1 -0
  26. package/dist/adapters/http.js +769 -0
  27. package/dist/adapters/http.js.map +1 -0
  28. package/dist/adapters/index.d.ts +11 -0
  29. package/dist/adapters/index.d.ts.map +1 -0
  30. package/dist/adapters/index.js +12 -0
  31. package/dist/adapters/index.js.map +1 -0
  32. package/dist/adapters/network-accountant.d.ts +63 -0
  33. package/dist/adapters/network-accountant.d.ts.map +1 -0
  34. package/dist/adapters/network-accountant.js +153 -0
  35. package/dist/adapters/network-accountant.js.map +1 -0
  36. package/dist/cli/index.d.ts +13 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/index.js +225 -0
  39. package/dist/cli/index.js.map +1 -0
  40. package/dist/cli/scanner.d.ts +39 -0
  41. package/dist/cli/scanner.d.ts.map +1 -0
  42. package/dist/cli/scanner.js +480 -0
  43. package/dist/cli/scanner.js.map +1 -0
  44. package/dist/clients.d.ts +54 -0
  45. package/dist/clients.d.ts.map +1 -0
  46. package/dist/clients.js +240 -0
  47. package/dist/clients.js.map +1 -0
  48. package/dist/cloud-detect.d.ts +96 -0
  49. package/dist/cloud-detect.d.ts.map +1 -0
  50. package/dist/cloud-detect.js +545 -0
  51. package/dist/cloud-detect.js.map +1 -0
  52. package/dist/core/auto-task.d.ts +20 -0
  53. package/dist/core/auto-task.d.ts.map +1 -0
  54. package/dist/core/auto-task.js +34 -0
  55. package/dist/core/auto-task.js.map +1 -0
  56. package/dist/core/cgroup-reader.d.ts +45 -0
  57. package/dist/core/cgroup-reader.d.ts.map +1 -0
  58. package/dist/core/cgroup-reader.js +124 -0
  59. package/dist/core/cgroup-reader.js.map +1 -0
  60. package/dist/core/cgroup-walker.d.ts +60 -0
  61. package/dist/core/cgroup-walker.d.ts.map +1 -0
  62. package/dist/core/cgroup-walker.js +166 -0
  63. package/dist/core/cgroup-walker.js.map +1 -0
  64. package/dist/core/compute-accountant.d.ts +51 -0
  65. package/dist/core/compute-accountant.d.ts.map +1 -0
  66. package/dist/core/compute-accountant.js +179 -0
  67. package/dist/core/compute-accountant.js.map +1 -0
  68. package/dist/core/compute-runtime.d.ts +42 -0
  69. package/dist/core/compute-runtime.d.ts.map +1 -0
  70. package/dist/core/compute-runtime.js +80 -0
  71. package/dist/core/compute-runtime.js.map +1 -0
  72. package/dist/core/config.d.ts +44 -0
  73. package/dist/core/config.d.ts.map +1 -0
  74. package/dist/core/config.js +66 -0
  75. package/dist/core/config.js.map +1 -0
  76. package/dist/core/context.d.ts +76 -0
  77. package/dist/core/context.d.ts.map +1 -0
  78. package/dist/core/context.js +91 -0
  79. package/dist/core/context.js.map +1 -0
  80. package/dist/core/fargate-metadata.d.ts +27 -0
  81. package/dist/core/fargate-metadata.d.ts.map +1 -0
  82. package/dist/core/fargate-metadata.js +102 -0
  83. package/dist/core/fargate-metadata.js.map +1 -0
  84. package/dist/core/gpu-accountant.d.ts +104 -0
  85. package/dist/core/gpu-accountant.d.ts.map +1 -0
  86. package/dist/core/gpu-accountant.js +383 -0
  87. package/dist/core/gpu-accountant.js.map +1 -0
  88. package/dist/core/gpu-runtime.d.ts +58 -0
  89. package/dist/core/gpu-runtime.d.ts.map +1 -0
  90. package/dist/core/gpu-runtime.js +131 -0
  91. package/dist/core/gpu-runtime.js.map +1 -0
  92. package/dist/core/heuristics.d.ts +74 -0
  93. package/dist/core/heuristics.d.ts.map +1 -0
  94. package/dist/core/heuristics.js +182 -0
  95. package/dist/core/heuristics.js.map +1 -0
  96. package/dist/core/models.d.ts +149 -0
  97. package/dist/core/models.d.ts.map +1 -0
  98. package/dist/core/models.js +226 -0
  99. package/dist/core/models.js.map +1 -0
  100. package/dist/core/nvml-reader.d.ts +114 -0
  101. package/dist/core/nvml-reader.d.ts.map +1 -0
  102. package/dist/core/nvml-reader.js +323 -0
  103. package/dist/core/nvml-reader.js.map +1 -0
  104. package/dist/core/session.d.ts +48 -0
  105. package/dist/core/session.d.ts.map +1 -0
  106. package/dist/core/session.js +123 -0
  107. package/dist/core/session.js.map +1 -0
  108. package/dist/core/tracker.d.ts +364 -0
  109. package/dist/core/tracker.d.ts.map +1 -0
  110. package/dist/core/tracker.js +1073 -0
  111. package/dist/core/tracker.js.map +1 -0
  112. package/dist/data/compute_prices.json +180 -0
  113. package/dist/data/egress_prices.json +418 -0
  114. package/dist/data/gpu_prices.json +412 -0
  115. package/dist/data/service_prices.json +2595 -0
  116. package/dist/dev-console.d.ts +12 -0
  117. package/dist/dev-console.d.ts.map +1 -0
  118. package/dist/dev-console.js +60 -0
  119. package/dist/dev-console.js.map +1 -0
  120. package/dist/index.d.ts +52 -0
  121. package/dist/index.d.ts.map +1 -0
  122. package/dist/index.js +61 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/instruments/anthropic.d.ts +26 -0
  125. package/dist/instruments/anthropic.d.ts.map +1 -0
  126. package/dist/instruments/anthropic.js +242 -0
  127. package/dist/instruments/anthropic.js.map +1 -0
  128. package/dist/instruments/bedrock.d.ts +29 -0
  129. package/dist/instruments/bedrock.d.ts.map +1 -0
  130. package/dist/instruments/bedrock.js +215 -0
  131. package/dist/instruments/bedrock.js.map +1 -0
  132. package/dist/instruments/cohere.d.ts +29 -0
  133. package/dist/instruments/cohere.d.ts.map +1 -0
  134. package/dist/instruments/cohere.js +237 -0
  135. package/dist/instruments/cohere.js.map +1 -0
  136. package/dist/instruments/gemini.d.ts +30 -0
  137. package/dist/instruments/gemini.d.ts.map +1 -0
  138. package/dist/instruments/gemini.js +247 -0
  139. package/dist/instruments/gemini.js.map +1 -0
  140. package/dist/instruments/index.d.ts +35 -0
  141. package/dist/instruments/index.d.ts.map +1 -0
  142. package/dist/instruments/index.js +54 -0
  143. package/dist/instruments/index.js.map +1 -0
  144. package/dist/instruments/mcp.d.ts +24 -0
  145. package/dist/instruments/mcp.d.ts.map +1 -0
  146. package/dist/instruments/mcp.js +459 -0
  147. package/dist/instruments/mcp.js.map +1 -0
  148. package/dist/instruments/openai.d.ts +26 -0
  149. package/dist/instruments/openai.d.ts.map +1 -0
  150. package/dist/instruments/openai.js +221 -0
  151. package/dist/instruments/openai.js.map +1 -0
  152. package/dist/instruments/vercel-ai.d.ts +28 -0
  153. package/dist/instruments/vercel-ai.d.ts.map +1 -0
  154. package/dist/instruments/vercel-ai.js +192 -0
  155. package/dist/instruments/vercel-ai.js.map +1 -0
  156. package/dist/integrations/langchain.d.ts +65 -0
  157. package/dist/integrations/langchain.d.ts.map +1 -0
  158. package/dist/integrations/langchain.js +165 -0
  159. package/dist/integrations/langchain.js.map +1 -0
  160. package/dist/middleware/express.d.ts +55 -0
  161. package/dist/middleware/express.d.ts.map +1 -0
  162. package/dist/middleware/express.js +101 -0
  163. package/dist/middleware/express.js.map +1 -0
  164. package/dist/middleware/index.d.ts +6 -0
  165. package/dist/middleware/index.d.ts.map +1 -0
  166. package/dist/middleware/index.js +5 -0
  167. package/dist/middleware/index.js.map +1 -0
  168. package/dist/pricing/compute-pricing.d.ts +57 -0
  169. package/dist/pricing/compute-pricing.d.ts.map +1 -0
  170. package/dist/pricing/compute-pricing.js +627 -0
  171. package/dist/pricing/compute-pricing.js.map +1 -0
  172. package/dist/pricing/cost_map.json +37665 -0
  173. package/dist/pricing/egress-pricing.d.ts +55 -0
  174. package/dist/pricing/egress-pricing.d.ts.map +1 -0
  175. package/dist/pricing/egress-pricing.js +226 -0
  176. package/dist/pricing/egress-pricing.js.map +1 -0
  177. package/dist/pricing/engine.d.ts +24 -0
  178. package/dist/pricing/engine.d.ts.map +1 -0
  179. package/dist/pricing/engine.js +148 -0
  180. package/dist/pricing/engine.js.map +1 -0
  181. package/dist/pricing/gpu-pricing.d.ts +63 -0
  182. package/dist/pricing/gpu-pricing.d.ts.map +1 -0
  183. package/dist/pricing/gpu-pricing.js +484 -0
  184. package/dist/pricing/gpu-pricing.js.map +1 -0
  185. package/dist/pricing/rates.d.ts +17 -0
  186. package/dist/pricing/rates.d.ts.map +1 -0
  187. package/dist/pricing/rates.js +102 -0
  188. package/dist/pricing/rates.js.map +1 -0
  189. package/dist/pricing/service-catalog.d.ts +87 -0
  190. package/dist/pricing/service-catalog.d.ts.map +1 -0
  191. package/dist/pricing/service-catalog.js +406 -0
  192. package/dist/pricing/service-catalog.js.map +1 -0
  193. package/dist/schema/dexcost-event.v1.json +111 -0
  194. package/dist/schema/dexcost-task.v1.json +160 -0
  195. package/dist/schema/validate.d.ts +15 -0
  196. package/dist/schema/validate.d.ts.map +1 -0
  197. package/dist/schema/validate.js +87 -0
  198. package/dist/schema/validate.js.map +1 -0
  199. package/dist/security/redaction.d.ts +55 -0
  200. package/dist/security/redaction.d.ts.map +1 -0
  201. package/dist/security/redaction.js +144 -0
  202. package/dist/security/redaction.js.map +1 -0
  203. package/dist/transport/buffer.d.ts +117 -0
  204. package/dist/transport/buffer.d.ts.map +1 -0
  205. package/dist/transport/buffer.js +759 -0
  206. package/dist/transport/buffer.js.map +1 -0
  207. package/dist/transport/pusher.d.ts +89 -0
  208. package/dist/transport/pusher.d.ts.map +1 -0
  209. package/dist/transport/pusher.js +323 -0
  210. package/dist/transport/pusher.js.map +1 -0
  211. package/package.json +93 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nvml-reader.js","sourceRoot":"","sources":["../../src/core/nvml-reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Session-based auto-grouping.
3
+ *
4
+ * Groups LLM + HTTP calls into one task per execution context
5
+ * without requiring explicit tracker.track() wrappers.
6
+ */
7
+ import type { Task } from "./models.js";
8
+ import type { EventBuffer } from "../transport/buffer.js";
9
+ /**
10
+ * SessionManager — creates and reuses session tasks automatically.
11
+ *
12
+ * When no explicit task is set via `tracker.track()`, the session manager
13
+ * creates a session task and binds it to the current AsyncLocalStorage context.
14
+ * Subsequent calls in the same context reuse the same session task.
15
+ */
16
+ export declare class SessionManager {
17
+ private _sessions;
18
+ /**
19
+ * Get the currently-active task, or create a new session task if none exists.
20
+ *
21
+ * If a task is already active in the AsyncLocalStorage context (from an
22
+ * explicit `tracker.track()` call), it is returned as-is.
23
+ *
24
+ * @param callType Label for the type of call (e.g. "http", "llm")
25
+ * @param buffer EventBuffer to persist the new task
26
+ * @returns The active or newly-created Task
27
+ */
28
+ getOrCreateSession(callType: string, buffer: EventBuffer): Task;
29
+ /**
30
+ * Run a function within a session context.
31
+ *
32
+ * Creates a session task if none is active, then runs `fn` within that
33
+ * task's AsyncLocalStorage context.
34
+ */
35
+ runInSession<T>(callType: string, buffer: EventBuffer, fn: () => T): T;
36
+ /**
37
+ * Finalize sessions that have been idle for longer than 30 seconds.
38
+ *
39
+ * Sets their status to "success" and endedAt timestamp. Removes them
40
+ * from the active session map.
41
+ */
42
+ finalizeIdleSessions(): void;
43
+ /** Number of active sessions. */
44
+ get activeSessionCount(): number;
45
+ /** Get a session's task by ID (for testing). */
46
+ getSession(taskId: string): Task | undefined;
47
+ }
48
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAc1D;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAuC;IAExD;;;;;;;;;OASG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAqC/D;;;;;OAKG;IACH,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IA+BtE;;;;;OAKG;IACH,oBAAoB,IAAI,IAAI;IAmB5B,iCAAiC;IACjC,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,gDAAgD;IAChD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAG7C"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Session-based auto-grouping.
3
+ *
4
+ * Groups LLM + HTTP calls into one task per execution context
5
+ * without requiring explicit tracker.track() wrappers.
6
+ */
7
+ import { randomUUID } from "node:crypto";
8
+ import { createTask } from "./models.js";
9
+ import { getCurrentTask, runWithTask, setCurrentTask, getContext } from "./context.js";
10
+ /** Idle threshold in milliseconds (30 seconds). */
11
+ const IDLE_THRESHOLD_MS = 30_000;
12
+ /**
13
+ * SessionManager — creates and reuses session tasks automatically.
14
+ *
15
+ * When no explicit task is set via `tracker.track()`, the session manager
16
+ * creates a session task and binds it to the current AsyncLocalStorage context.
17
+ * Subsequent calls in the same context reuse the same session task.
18
+ */
19
+ export class SessionManager {
20
+ _sessions = new Map();
21
+ /**
22
+ * Get the currently-active task, or create a new session task if none exists.
23
+ *
24
+ * If a task is already active in the AsyncLocalStorage context (from an
25
+ * explicit `tracker.track()` call), it is returned as-is.
26
+ *
27
+ * @param callType Label for the type of call (e.g. "http", "llm")
28
+ * @param buffer EventBuffer to persist the new task
29
+ * @returns The active or newly-created Task
30
+ */
31
+ getOrCreateSession(callType, buffer) {
32
+ const existing = getCurrentTask();
33
+ if (existing !== undefined) {
34
+ // Update last activity for existing session if we are tracking it
35
+ const sessionInfo = this._sessions.get(existing.taskId);
36
+ if (sessionInfo) {
37
+ sessionInfo.lastActivityAt = Date.now();
38
+ }
39
+ return existing;
40
+ }
41
+ // Create a new session task
42
+ const ctx = getContext();
43
+ const taskType = ctx?.agent ?? "agent_session";
44
+ const task = createTask({
45
+ taskId: randomUUID(),
46
+ taskType,
47
+ customerId: ctx?.customerId,
48
+ projectId: ctx?.projectId,
49
+ metadata: { session: true, initiatedBy: callType },
50
+ });
51
+ buffer.upsertTask(task);
52
+ this._sessions.set(task.taskId, {
53
+ task,
54
+ lastActivityAt: Date.now(),
55
+ });
56
+ // Bind the task to the current async context so subsequent calls
57
+ // to getCurrentTask() within this async chain return this task.
58
+ setCurrentTask(task);
59
+ return task;
60
+ }
61
+ /**
62
+ * Run a function within a session context.
63
+ *
64
+ * Creates a session task if none is active, then runs `fn` within that
65
+ * task's AsyncLocalStorage context.
66
+ */
67
+ runInSession(callType, buffer, fn) {
68
+ const existing = getCurrentTask();
69
+ if (existing !== undefined) {
70
+ const sessionInfo = this._sessions.get(existing.taskId);
71
+ if (sessionInfo) {
72
+ sessionInfo.lastActivityAt = Date.now();
73
+ }
74
+ return fn();
75
+ }
76
+ const ctx = getContext();
77
+ const taskType = ctx?.agent ?? "agent_session";
78
+ const task = createTask({
79
+ taskId: randomUUID(),
80
+ taskType,
81
+ customerId: ctx?.customerId,
82
+ projectId: ctx?.projectId,
83
+ metadata: { session: true, initiatedBy: callType },
84
+ });
85
+ buffer.upsertTask(task);
86
+ this._sessions.set(task.taskId, {
87
+ task,
88
+ lastActivityAt: Date.now(),
89
+ });
90
+ return runWithTask(task, fn);
91
+ }
92
+ /**
93
+ * Finalize sessions that have been idle for longer than 30 seconds.
94
+ *
95
+ * Sets their status to "success" and endedAt timestamp. Removes them
96
+ * from the active session map.
97
+ */
98
+ finalizeIdleSessions() {
99
+ const now = Date.now();
100
+ const toRemove = [];
101
+ for (const [taskId, session] of this._sessions) {
102
+ if (now - session.lastActivityAt > IDLE_THRESHOLD_MS) {
103
+ if (session.task.status === "pending") {
104
+ session.task.status = "success";
105
+ session.task.endedAt = new Date();
106
+ }
107
+ toRemove.push(taskId);
108
+ }
109
+ }
110
+ for (const taskId of toRemove) {
111
+ this._sessions.delete(taskId);
112
+ }
113
+ }
114
+ /** Number of active sessions. */
115
+ get activeSessionCount() {
116
+ return this._sessions.size;
117
+ }
118
+ /** Get a session's task by ID (for testing). */
119
+ getSession(taskId) {
120
+ return this._sessions.get(taskId)?.task;
121
+ }
122
+ }
123
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,364 @@
1
+ /**
2
+ * CostTracker — the main entry point for recording AI agent costs.
3
+ *
4
+ * Wraps business logic in tracked tasks, records cost events, and
5
+ * manages background flushing to a remote endpoint.
6
+ */
7
+ import type { Task, CostEvent, EventType, CostConfidence, PricingSource } from "./models.js";
8
+ import { EventBuffer } from "../transport/buffer.js";
9
+ import { ComputePricingEngine } from "../pricing/compute-pricing.js";
10
+ import { GpuPricingEngine } from "../pricing/gpu-pricing.js";
11
+ import { PricingEngine } from "../pricing/engine.js";
12
+ import { RateRegistry } from "../pricing/rates.js";
13
+ import { RetryHeuristicEngine } from "./heuristics.js";
14
+ import type { ResolvedConfig } from "./config.js";
15
+ export declare const DEFAULT_ENDPOINT = "https://api.dexcost.io";
16
+ /**
17
+ * Resolves the Control Layer endpoint from the DEXCOST_ENDPOINT env
18
+ * var. Sprint 1 Theme A / §2.1 (A2): only https:// URLs are accepted.
19
+ * An attacker who controls the env (misconfigured CI runner, hostile
20
+ * container) could otherwise silently exfiltrate cost telemetry to an
21
+ * HTTP collector — we refuse and fall back to the production default
22
+ * with a console.warn.
23
+ *
24
+ * Exported for testability; the CostTracker constructor is the only
25
+ * production caller.
26
+ */
27
+ export declare function resolveEndpoint(): string;
28
+ import "../instruments/openai.js";
29
+ import "../instruments/anthropic.js";
30
+ import "../instruments/vercel-ai.js";
31
+ import "../instruments/gemini.js";
32
+ import "../instruments/bedrock.js";
33
+ import "../instruments/cohere.js";
34
+ import "../instruments/mcp.js";
35
+ export declare function init(options?: TrackerOptions): CostTracker;
36
+ export declare function getTracker(): CostTracker;
37
+ /**
38
+ * Update the SDK's API key and resume sync after auth failure.
39
+ *
40
+ * Sprint 2 Theme D / §3.2.3 (B14). When the Control Layer returns
41
+ * 401/403 the pusher sets `_authFailed=true` and stops; without this
42
+ * function the only recovery is restarting the customer's process.
43
+ *
44
+ * Returns `true` on success, `false` if `init()` has not been called
45
+ * (logs a console warning).
46
+ */
47
+ export declare function setApiKey(newKey: string): boolean;
48
+ export declare function globalTrack<T>(opts: {
49
+ taskType: string;
50
+ customerId?: string;
51
+ projectId?: string;
52
+ metadata?: Record<string, unknown>;
53
+ experimentId?: string;
54
+ variant?: string;
55
+ }, fn: (task: TrackedTask) => Promise<T>): Promise<T>;
56
+ export declare function globalFlush(): Promise<void>;
57
+ export declare function globalClose(): void;
58
+ export declare function globalCloseAsync(): Promise<void>;
59
+ /** Configuration options for a CostTracker instance. */
60
+ export interface TrackerOptions {
61
+ /** API key for authenticating with the remote endpoint. */
62
+ apiKey?: string;
63
+ /** Maximum number of events per batch push. Defaults to 100. */
64
+ batchSize?: number;
65
+ /** Interval in milliseconds between background flushes. Defaults to 30000. */
66
+ flushIntervalMs?: number;
67
+ /** Field names to redact from event details. */
68
+ redactFields?: string[];
69
+ /** Whether to hash customer IDs before storing/sending. */
70
+ hashCustomerId?: boolean;
71
+ /** Which LLM SDKs to auto-instrument. Defaults to all supported. Set to [] to disable. */
72
+ autoInstrument?: string[];
73
+ /**
74
+ * Path to the SQLite database file. Defaults to ~/.dexcost/buffer.db.
75
+ * Override in tests to get per-test isolation.
76
+ */
77
+ dbPath?: string;
78
+ /** Set to "development" to enable dev mode console output and disable cloud push. */
79
+ environment?: string;
80
+ /** Enable automatic retry detection via sliding-window heuristics. */
81
+ enableRetryHeuristics?: boolean;
82
+ /** Sliding window size in seconds for heuristic retry detection. Defaults to 30. */
83
+ retryHeuristicWindow?: number;
84
+ /** Minimum confidence threshold (0–1) to flag a heuristic retry. Defaults to 0.8. */
85
+ retryHeuristicThreshold?: number;
86
+ /**
87
+ * Explicit storage mode. `"local"` forces local-only mode regardless of
88
+ * whether an API key is present; `"cloud"` (the default when a valid key
89
+ * is set) enables background sync.
90
+ */
91
+ storage?: "local" | "cloud";
92
+ /**
93
+ * Automatically track outgoing HTTP calls via the HTTP adapter.
94
+ * Defaults to `true` (matches Python `init(track_http=True)`).
95
+ */
96
+ trackHttp?: boolean;
97
+ /**
98
+ * Optional URL to refresh the HTTP service catalog from on init.
99
+ */
100
+ serviceCatalogUrl?: string;
101
+ /**
102
+ * Sprint 3 Theme F / §4.1.3 (P4): network-event emission knobs,
103
+ * parity with Python `init(network_event_*)`. The HTTP adapter
104
+ * reads these to decide whether a captured call deserves an
105
+ * emitted `network` event (in addition to the always-emitted
106
+ * `external_cost`). Defaults match Python.
107
+ *
108
+ * Emit when combined request+response bytes exceed this.
109
+ * Default 102_400 (100 KiB). Set 0 to disable.
110
+ */
111
+ networkEventThresholdBytes?: number;
112
+ /** Emit on response status >= 400. Default true. */
113
+ networkEventOnError?: boolean;
114
+ /** Emit when call latency exceeds this many ms. Default 0 (off). */
115
+ networkEventLatencyMs?: number;
116
+ /**
117
+ * Per-billing-model dispatch overrides for the compute pricing engine.
118
+ * Currently used to switch Cloud Run from request-based to instance-
119
+ * based billing: `{ cloud_run: "instance" }`. Mirrors the Python
120
+ * `compute_billing_overrides` option.
121
+ */
122
+ computeBillingOverrides?: Record<string, string>;
123
+ /**
124
+ * Enable K8s node-aware pricing. Reserved for follow-up — currently
125
+ * threaded through but unused; the default k8s_pod billing model uses
126
+ * pod-limits × duration × hourly default. Mirrors the Python
127
+ * `k8s_node_aware` option.
128
+ */
129
+ k8sNodeAware?: boolean;
130
+ }
131
+ /**
132
+ * A task that is currently being tracked.
133
+ *
134
+ * Provides methods to record cost events (LLM calls, external costs,
135
+ * retries) against the task.
136
+ */
137
+ export declare class TrackedTask {
138
+ private _task;
139
+ private _buffer;
140
+ private _tracker;
141
+ private _events;
142
+ private _ended;
143
+ constructor(task: Task, buffer: EventBuffer, tracker: CostTracker);
144
+ /** The underlying Task data. */
145
+ get task(): Task;
146
+ /** All events recorded against this task. */
147
+ get events(): ReadonlyArray<CostEvent>;
148
+ /**
149
+ * Record an LLM call event.
150
+ *
151
+ * When `cost` is omitted, the cost is auto-computed via the pricing
152
+ * engine (mirrors Python `tracker.record_llm_call`). Accepts an
153
+ * options object for `error_type`, `details`, `pricingSource`, and
154
+ * `costConfidence`. `error_type` is stored in `details.error_type`.
155
+ */
156
+ recordLlmCall(provider: string, model: string, inputTokens: number, outputTokens: number, cost?: number, cachedTokens?: number, latencyMs?: number, options?: {
157
+ costConfidence?: CostConfidence;
158
+ pricingSource?: PricingSource;
159
+ pricingVersion?: string;
160
+ details?: Record<string, unknown>;
161
+ errorType?: string;
162
+ }): CostEvent;
163
+ /**
164
+ * Record a non-LLM cost event (external API call, compute, etc.).
165
+ *
166
+ * `eventType` must be `"external_cost"` or `"compute_cost"`; any other
167
+ * value throws an Error (mirrors Python `tracker.record_cost`).
168
+ */
169
+ recordCost(service: string, costUsd: number, details?: Record<string, unknown>, eventType?: EventType, costConfidence?: CostConfidence, pricingSource?: PricingSource, pricingVersion?: string): CostEvent;
170
+ /**
171
+ * Record a retry event.
172
+ */
173
+ markRetry(reason: string, cost?: number, retryOf?: string): CostEvent;
174
+ /**
175
+ * Link an external trace (e.g., Langfuse, LangSmith, Datadog) to this task.
176
+ *
177
+ * Stored under `metadata._trace_links` with `{ provider, trace_id }`
178
+ * entries — the same shape the Python SDK uses, so cross-SDK buffers
179
+ * interoperate.
180
+ */
181
+ linkTrace(provider: string, traceId: string): void;
182
+ /**
183
+ * Return all linked traces for this task.
184
+ *
185
+ * Each entry is a `{ provider, trace_id }` object (mirrors Python
186
+ * `TrackedTask.get_trace_links`).
187
+ */
188
+ getTraceLinks(): Array<{
189
+ provider: string;
190
+ trace_id: string;
191
+ }>;
192
+ /**
193
+ * End the task, setting its status and ended_at timestamp.
194
+ */
195
+ end(status?: "success" | "failed"): void;
196
+ /**
197
+ * Compute auto-emission + back-fill at task finalize.
198
+ *
199
+ * Mirrors python tracker.py:_finalize_compute.
200
+ *
201
+ * Step 1: long-running runtime → call snapshotEndAndBuild and insert a
202
+ * compute_cost event with details.cost_pending=true.
203
+ * Step 2: walk all compute_cost events with cost_pending=true, resolve
204
+ * their cost via the pricing engine, then updateEvent to strip
205
+ * the marker + stamp pricing source/confidence/version.
206
+ * Step 3: apply DELTA-based total adjustment — never recompute total_
207
+ * cost_usd from scratch, which would blow away retry_marker
208
+ * and other costs accumulated by the main loop.
209
+ */
210
+ private _finalizeCompute;
211
+ /**
212
+ * GPU auto-emission + back-fill at task finalize.
213
+ *
214
+ * Mirrors python tracker.py:_finalize_gpu. Three steps:
215
+ *
216
+ * 1. Long-running GPU runtimes (AwsEc2Gpu / GcpGceBundled /
217
+ * GcpGceN1Attached / AzureVmGpu / AzureVmVgpu / LambdaLabs /
218
+ * CoreWeave) call accountant.snapshotEndAndBuild(durationMs) and
219
+ * persist a gpu_cost event (cost_pending=true) plus N
220
+ * gpu_utilization_signal events. Serverless GPU runtimes (Modal /
221
+ * RunPod / Replicate) have already emitted via the handler wrap;
222
+ * this step is a no-op for them.
223
+ * 2. Back-fills cost_usd on every gpu_cost event with cost_pending=true:
224
+ * resolves rate via GpuPricingEngine.resolveGpuCost, sets cost_usd,
225
+ * pricing_source, cost_confidence, pricing_version ("gpu:<version>"
226
+ * — distinct from compute / egress prefixes), and strips the
227
+ * internal cost_pending / _cgroup_scope_fallback /
228
+ * _nvml_product_name_lower hints from details before re-persisting.
229
+ * 3. gpu_utilization_signal events are NEVER touched by the back-fill
230
+ * walker — they stay at cost_usd=0 (Decision #3 observability
231
+ * carve-out). Load-bearing convention §1 carve-out — see test
232
+ * gpu-auto-emission.test.ts.
233
+ *
234
+ * Delta-based total adjustment preserves any retry_marker costs already
235
+ * accumulated by the main aggregation loop.
236
+ */
237
+ private _finalizeGpu;
238
+ /**
239
+ * Snapshot the NetworkAccountant onto the task's v1 fields and (if
240
+ * a CloudEnv has been resolved) compute v2 egress dollars + back-fill
241
+ * the cost_pending network events for this task.
242
+ *
243
+ * Caller (end) wraps this in a Tier-5 fail-silent shell.
244
+ */
245
+ private _finalizeNetwork;
246
+ /**
247
+ * Record a usage event priced via the rate registry.
248
+ */
249
+ recordUsage(service: string, units?: number, details?: Record<string, unknown>): CostEvent;
250
+ /**
251
+ * Un-flag a retry event as non-retry, reversing the retry accounting.
252
+ * If eventId is provided, targets that specific event; otherwise targets
253
+ * the most recent retry event.
254
+ */
255
+ markNotRetry(eventId?: string): CostEvent | undefined;
256
+ }
257
+ /**
258
+ * Main cost tracker for recording AI agent unit economics.
259
+ *
260
+ * Manages task lifecycle, event recording, and background push to
261
+ * a remote endpoint.
262
+ */
263
+ export declare class CostTracker {
264
+ private _buffer;
265
+ private _pusher;
266
+ private _options;
267
+ private _pricing;
268
+ private _computePricing;
269
+ private _gpuPricing;
270
+ private _computeBillingOverrides;
271
+ private _k8sNodeAware;
272
+ private _rateRegistry;
273
+ private _heuristicEngine;
274
+ private _instrumented;
275
+ private _config;
276
+ private _httpTracked;
277
+ constructor(options?: TrackerOptions);
278
+ /** The resolved API-key / storage configuration. */
279
+ get config(): ResolvedConfig;
280
+ /**
281
+ * Patch outgoing HTTP transports to auto-record external costs and,
282
+ * when a catalog URL is provided, refresh the service catalog.
283
+ */
284
+ private _enableHttpTracking;
285
+ /** The underlying event buffer. */
286
+ get buffer(): EventBuffer;
287
+ /** The pricing engine used for cost calculations. */
288
+ get pricing(): PricingEngine;
289
+ /** The compute pricing engine — wires through to TrackedTask.end finalize. */
290
+ get computePricing(): ComputePricingEngine;
291
+ /** The GPU pricing engine — wires through to TrackedTask.end finalize. */
292
+ get gpuPricing(): GpuPricingEngine;
293
+ /** Compute billing-model dispatch overrides (e.g. cloud_run=instance). */
294
+ get computeBillingOverrides(): Record<string, string>;
295
+ /** Whether K8s node-aware pricing is enabled (reserved for follow-up). */
296
+ get k8sNodeAware(): boolean;
297
+ /** The rate registry for service-based cost calculations. */
298
+ get rateRegistry(): RateRegistry;
299
+ /** The heuristic retry engine, or null if heuristics are disabled. */
300
+ get heuristicEngine(): RetryHeuristicEngine | null;
301
+ /** Register a per-unit rate for a named service. */
302
+ registerRate(service: string, per: string, costUsd: number): void;
303
+ /** Get the per-unit cost (in USD) for a named service, or undefined if not registered. */
304
+ getRate(service: string): number | undefined;
305
+ /**
306
+ * Activate the named instrument, monkey-patching the provider library.
307
+ */
308
+ instrument(name: string): Promise<void>;
309
+ /**
310
+ * Deactivate the named instrument, restoring the original library methods.
311
+ */
312
+ uninstrument(name: string): void;
313
+ /**
314
+ * Execute `fn` inside a tracked task context.
315
+ *
316
+ * Creates a new task, runs the function within an AsyncLocalStorage
317
+ * context, and ends the task on completion (or failure).
318
+ */
319
+ /**
320
+ * Manually start a task and return a `TrackedTask` handle.
321
+ *
322
+ * Use this when callbacks/context managers don't fit your architecture
323
+ * (e.g. Celery-style workers, multi-process pipelines). The caller
324
+ * **must** call `TrackedTask.end()` when the task is complete.
325
+ * Mirrors the Python SDK's `CostTracker.start_task`.
326
+ */
327
+ startTask(opts?: {
328
+ taskType?: string;
329
+ customerId?: string;
330
+ projectId?: string;
331
+ metadata?: Record<string, unknown>;
332
+ experimentId?: string;
333
+ variant?: string;
334
+ }): TrackedTask;
335
+ track<T>(opts: {
336
+ taskType: string;
337
+ customerId?: string;
338
+ projectId?: string;
339
+ metadata?: Record<string, unknown>;
340
+ experimentId?: string;
341
+ variant?: string;
342
+ }, fn: (task: TrackedTask) => Promise<T>): Promise<T>;
343
+ /**
344
+ * Force an immediate flush of all buffered events to the remote endpoint.
345
+ */
346
+ flush(): Promise<void>;
347
+ /**
348
+ * Update the API key on both pricing engine and pusher. Sprint 2
349
+ * Theme D / §3.2.3 (B14) — entry point for `dexcost.setApiKey`.
350
+ */
351
+ setApiKey(newKey: string): void;
352
+ /**
353
+ * Stop the background pusher and release resources.
354
+ */
355
+ close(): void;
356
+ /** Restore patched HTTP transports if HTTP tracking was enabled. */
357
+ private _disableHttpTracking;
358
+ /**
359
+ * Flush pending events and then stop the background pusher and release resources.
360
+ * Prefer this over close() when you need to guarantee all events are delivered.
361
+ */
362
+ closeAsync(): Promise<void>;
363
+ }
364
+ //# sourceMappingURL=tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/core/tracker.ts"],"names":[],"mappings":"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"}