@venturekit-pro/ai 0.0.48 → 0.0.50

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 (147) hide show
  1. package/README.md +192 -0
  2. package/dist/agent-loop/index.d.ts +9 -0
  3. package/dist/agent-loop/index.d.ts.map +1 -0
  4. package/dist/agent-loop/index.js +7 -0
  5. package/dist/agent-loop/index.js.map +1 -0
  6. package/dist/agent-loop/registry.d.ts +85 -0
  7. package/dist/agent-loop/registry.d.ts.map +1 -0
  8. package/dist/agent-loop/registry.js +100 -0
  9. package/dist/agent-loop/registry.js.map +1 -0
  10. package/dist/agent-loop/run-agent.d.ts +37 -0
  11. package/dist/agent-loop/run-agent.d.ts.map +1 -0
  12. package/dist/agent-loop/run-agent.js +405 -0
  13. package/dist/agent-loop/run-agent.js.map +1 -0
  14. package/dist/agent-loop/tools.d.ts +10 -0
  15. package/dist/agent-loop/tools.d.ts.map +1 -0
  16. package/dist/agent-loop/tools.js +28 -0
  17. package/dist/agent-loop/tools.js.map +1 -0
  18. package/dist/agent-loop/types.d.ts +175 -0
  19. package/dist/agent-loop/types.d.ts.map +1 -0
  20. package/dist/agent-loop/types.js +8 -0
  21. package/dist/agent-loop/types.js.map +1 -0
  22. package/dist/chat/types.d.ts +4 -2
  23. package/dist/chat/types.d.ts.map +1 -1
  24. package/dist/cost/types.d.ts +15 -0
  25. package/dist/cost/types.d.ts.map +1 -1
  26. package/dist/cost-ledger/migrations/vk_ai_cost_0004_llm_gateway.sql +69 -0
  27. package/dist/cost-ledger/migrations/vk_ai_cost_0005_harness.sql +99 -0
  28. package/dist/cost-ledger/migrations/vk_ai_cost_0006_cache_write_prices.sql +17 -0
  29. package/dist/cost-ledger/migrations/vk_ai_cost_0007_harness_fan_out.sql +47 -0
  30. package/dist/gateway/errors.d.ts +24 -0
  31. package/dist/gateway/errors.d.ts.map +1 -0
  32. package/dist/gateway/errors.js +29 -0
  33. package/dist/gateway/errors.js.map +1 -0
  34. package/dist/gateway/gateway.d.ts +27 -0
  35. package/dist/gateway/gateway.d.ts.map +1 -0
  36. package/dist/gateway/gateway.js +503 -0
  37. package/dist/gateway/gateway.js.map +1 -0
  38. package/dist/gateway/index.d.ts +13 -0
  39. package/dist/gateway/index.d.ts.map +1 -0
  40. package/dist/gateway/index.js +10 -0
  41. package/dist/gateway/index.js.map +1 -0
  42. package/dist/gateway/policies.d.ts +32 -0
  43. package/dist/gateway/policies.d.ts.map +1 -0
  44. package/dist/gateway/policies.js +45 -0
  45. package/dist/gateway/policies.js.map +1 -0
  46. package/dist/gateway/postgres.d.ts +55 -0
  47. package/dist/gateway/postgres.d.ts.map +1 -0
  48. package/dist/gateway/postgres.js +127 -0
  49. package/dist/gateway/postgres.js.map +1 -0
  50. package/dist/gateway/pricing.d.ts +11 -0
  51. package/dist/gateway/pricing.d.ts.map +1 -0
  52. package/dist/gateway/pricing.js +47 -0
  53. package/dist/gateway/pricing.js.map +1 -0
  54. package/dist/gateway/routing.d.ts +25 -0
  55. package/dist/gateway/routing.d.ts.map +1 -0
  56. package/dist/gateway/routing.js +23 -0
  57. package/dist/gateway/routing.js.map +1 -0
  58. package/dist/gateway/types.d.ts +225 -0
  59. package/dist/gateway/types.d.ts.map +1 -0
  60. package/dist/gateway/types.js +7 -0
  61. package/dist/gateway/types.js.map +1 -0
  62. package/dist/generate/anthropic.d.ts +38 -0
  63. package/dist/generate/anthropic.d.ts.map +1 -0
  64. package/dist/generate/anthropic.js +446 -0
  65. package/dist/generate/anthropic.js.map +1 -0
  66. package/dist/generate/client.d.ts +9 -0
  67. package/dist/generate/client.d.ts.map +1 -0
  68. package/dist/generate/client.js +44 -0
  69. package/dist/generate/client.js.map +1 -0
  70. package/dist/generate/google.d.ts +39 -0
  71. package/dist/generate/google.d.ts.map +1 -0
  72. package/dist/generate/google.js +372 -0
  73. package/dist/generate/google.js.map +1 -0
  74. package/dist/generate/http.d.ts +48 -0
  75. package/dist/generate/http.d.ts.map +1 -0
  76. package/dist/generate/http.js +180 -0
  77. package/dist/generate/http.js.map +1 -0
  78. package/dist/generate/index.d.ts +13 -0
  79. package/dist/generate/index.d.ts.map +1 -0
  80. package/dist/generate/index.js +12 -0
  81. package/dist/generate/index.js.map +1 -0
  82. package/dist/generate/openai.d.ts +29 -0
  83. package/dist/generate/openai.d.ts.map +1 -0
  84. package/dist/generate/openai.js +314 -0
  85. package/dist/generate/openai.js.map +1 -0
  86. package/dist/generate/perplexity.d.ts +27 -0
  87. package/dist/generate/perplexity.d.ts.map +1 -0
  88. package/dist/generate/perplexity.js +208 -0
  89. package/dist/generate/perplexity.js.map +1 -0
  90. package/dist/generate/types.d.ts +253 -0
  91. package/dist/generate/types.d.ts.map +1 -0
  92. package/dist/generate/types.js +19 -0
  93. package/dist/generate/types.js.map +1 -0
  94. package/dist/harness/define.d.ts +15 -0
  95. package/dist/harness/define.d.ts.map +1 -0
  96. package/dist/harness/define.js +38 -0
  97. package/dist/harness/define.js.map +1 -0
  98. package/dist/harness/harness.d.ts +29 -0
  99. package/dist/harness/harness.d.ts.map +1 -0
  100. package/dist/harness/harness.js +1287 -0
  101. package/dist/harness/harness.js.map +1 -0
  102. package/dist/harness/index.d.ts +14 -0
  103. package/dist/harness/index.d.ts.map +1 -0
  104. package/dist/harness/index.js +10 -0
  105. package/dist/harness/index.js.map +1 -0
  106. package/dist/harness/memory-store.d.ts +8 -0
  107. package/dist/harness/memory-store.d.ts.map +1 -0
  108. package/dist/harness/memory-store.js +270 -0
  109. package/dist/harness/memory-store.js.map +1 -0
  110. package/dist/harness/postgres-store.d.ts +12 -0
  111. package/dist/harness/postgres-store.d.ts.map +1 -0
  112. package/dist/harness/postgres-store.js +368 -0
  113. package/dist/harness/postgres-store.js.map +1 -0
  114. package/dist/harness/scheduler.d.ts +12 -0
  115. package/dist/harness/scheduler.d.ts.map +1 -0
  116. package/dist/harness/scheduler.js +23 -0
  117. package/dist/harness/scheduler.js.map +1 -0
  118. package/dist/harness/store.d.ts +172 -0
  119. package/dist/harness/store.d.ts.map +1 -0
  120. package/dist/harness/store.js +21 -0
  121. package/dist/harness/store.js.map +1 -0
  122. package/dist/harness/types.d.ts +312 -0
  123. package/dist/harness/types.d.ts.map +1 -0
  124. package/dist/harness/types.js +11 -0
  125. package/dist/harness/types.js.map +1 -0
  126. package/dist/index.d.ts +12 -0
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +11 -0
  129. package/dist/index.js.map +1 -1
  130. package/dist/model-catalog/crud.d.ts.map +1 -1
  131. package/dist/model-catalog/crud.js +33 -2
  132. package/dist/model-catalog/crud.js.map +1 -1
  133. package/dist/model-catalog/types.d.ts +20 -0
  134. package/dist/model-catalog/types.d.ts.map +1 -1
  135. package/dist/tracing/index.d.ts +68 -0
  136. package/dist/tracing/index.d.ts.map +1 -0
  137. package/dist/tracing/index.js +72 -0
  138. package/dist/tracing/index.js.map +1 -0
  139. package/dist/tracing/recording.d.ts +23 -0
  140. package/dist/tracing/recording.d.ts.map +1 -0
  141. package/dist/tracing/recording.js +49 -0
  142. package/dist/tracing/recording.js.map +1 -0
  143. package/package.json +7 -4
  144. package/src/cost-ledger/migrations/vk_ai_cost_0004_llm_gateway.sql +69 -0
  145. package/src/cost-ledger/migrations/vk_ai_cost_0005_harness.sql +99 -0
  146. package/src/cost-ledger/migrations/vk_ai_cost_0006_cache_write_prices.sql +17 -0
  147. package/src/cost-ledger/migrations/vk_ai_cost_0007_harness_fan_out.sql +47 -0
@@ -0,0 +1,312 @@
1
+ /**
2
+ * Harness types — durable, versioned graphs of nodes.
3
+ *
4
+ * A run executes one node attempt per task (`{ runId, step, attempt }`):
5
+ * lease → run → one atomic compare-and-set commit (run + events +
6
+ * node-run row) → schedule the next task. Gates wait with nothing in
7
+ * flight; map nodes checkpoint each item; retries back off; a sweep
8
+ * re-sends lost tasks and recovers dead workers.
9
+ */
10
+ import type { AgentRunResult, RunAgentOptions } from '../agent-loop/types.js';
11
+ import type { GatewayRequest, GatewayResult, GatewayStreamEvent, LlmGateway, ModelTier } from '../gateway/types.js';
12
+ import type { AiTracer } from '../tracing/index.js';
13
+ import type { HarnessStore } from './store.js';
14
+ export type RunStatus = 'queued' | 'running' | 'waiting' | 'completed' | 'failed' | 'cancelled';
15
+ export interface RunActor {
16
+ type: 'user' | 'system' | 'api';
17
+ id?: string;
18
+ }
19
+ /** Who a run is for — passed to every model call (tenant, actor, target, labels). */
20
+ export interface RunContext {
21
+ tenantId?: string | null;
22
+ actor?: RunActor;
23
+ /** What the run works on (a card, a post). */
24
+ target?: {
25
+ type: string;
26
+ id: string;
27
+ };
28
+ labels?: Record<string, string | number | boolean>;
29
+ }
30
+ export interface RunError {
31
+ message: string;
32
+ code?: string;
33
+ nodeId?: string;
34
+ attempt?: number;
35
+ }
36
+ export interface RunRecord {
37
+ id: string;
38
+ graphKey: string;
39
+ graphVersion: number;
40
+ status: RunStatus;
41
+ context: RunContext;
42
+ input: unknown;
43
+ /** Each completed node's output, by node id (a gate's output is its `GateDecision`). */
44
+ outputs: Record<string, unknown>;
45
+ /** The node running, queued or waiting; `null` once the run ended. */
46
+ currentNode: string | null;
47
+ /** Node executions so far, 1-based: the `step` of the current task. */
48
+ step: number;
49
+ attempt: number;
50
+ /** When a delayed task is due. */
51
+ notBefore: string | null;
52
+ error: RunError | null;
53
+ cancelRequested: boolean;
54
+ /** Model spend through `ctx.generate` / `ctx.runAgent`. */
55
+ costUsd: number;
56
+ createdAt: string;
57
+ updatedAt: string;
58
+ completedAt: string | null;
59
+ }
60
+ /** An append-only event of a run (timeline, live progress, technical drawer). */
61
+ export interface RunEvent {
62
+ runId: string;
63
+ seq: number;
64
+ at: string;
65
+ /**
66
+ * `run.started` · `node.started` · `node.progress` · `node.completed` ·
67
+ * `node.retrying` · `node.failed` · `tool.called` · `gate.waiting` ·
68
+ * `gate.decided` · `run.completed` · `run.failed` · `run.cancelled` ·
69
+ * `run.retried` · or any type a node emits with `ctx.event`.
70
+ */
71
+ type: string;
72
+ nodeId: string | null;
73
+ step: number | null;
74
+ attempt: number | null;
75
+ label: string;
76
+ detail: string | null;
77
+ data: unknown;
78
+ }
79
+ /** One node attempt — the unit a scheduler delivers. */
80
+ export interface RunTask {
81
+ runId: string;
82
+ step: number;
83
+ attempt: number;
84
+ /** One item of a map node fanned out with `dispatch: 'tasks'`. */
85
+ item?: number;
86
+ }
87
+ export interface HarnessScheduler {
88
+ /** Deliver `task` to a worker that calls `harness.execute(task)`, after `delayMs` when given. */
89
+ enqueue(task: RunTask, options?: {
90
+ delayMs?: number;
91
+ }): Promise<void>;
92
+ }
93
+ /** What a gate node outputs when a decision resumes it. */
94
+ export interface GateDecision {
95
+ decision: string;
96
+ data?: unknown;
97
+ actor?: RunActor;
98
+ at: string;
99
+ }
100
+ export type NodeKind = 'llm' | 'agent' | 'tool' | 'check' | 'judge' | 'map' | 'join' | 'gate' | 'emit';
101
+ /** Extra gateway context for one call made by a node. */
102
+ export interface NodeCallOptions {
103
+ /** Ledger `source` for the call. Default `<graph>/<node>`. */
104
+ feature?: string;
105
+ labels?: Record<string, string | number | boolean>;
106
+ }
107
+ export interface NodeContext {
108
+ readonly run: {
109
+ id: string;
110
+ graphKey: string;
111
+ graphVersion: number;
112
+ context: RunContext;
113
+ createdAt: string;
114
+ };
115
+ readonly nodeId: string;
116
+ readonly step: number;
117
+ readonly attempt: number;
118
+ /** Aborts on cancellation and on the node's timeout. */
119
+ readonly signal: AbortSignal;
120
+ /** Spend of this node attempt so far. */
121
+ readonly costUsd: number;
122
+ input<T>(): T;
123
+ /** A completed node's output (`undefined` when it hasn't run). */
124
+ output<T>(nodeId: string): T | undefined;
125
+ /** A completed node's output; a missing one fails the node (no retry). */
126
+ require<T>(nodeId: string): T;
127
+ /** Live progress for the card; coalesced unless `force`. */
128
+ progress(detail: string, data?: unknown, options?: {
129
+ force?: boolean;
130
+ }): Promise<void>;
131
+ /**
132
+ * Live state for the card: a `node.progress` event whose detail is the
133
+ * node's `detail(state)` (e.g. "3 of 8 sources"). Coalesced unless `force`.
134
+ */
135
+ state(state: unknown, options?: {
136
+ force?: boolean;
137
+ }): Promise<void>;
138
+ /** Append a custom event. */
139
+ event(type: string, label: string, data?: unknown, detail?: string): Promise<void>;
140
+ /** One model call through the gateway: cancellable, priced into the run, idempotent per attempt. */
141
+ generate(request: GatewayRequest, options?: NodeCallOptions): Promise<GatewayResult>;
142
+ /**
143
+ * The same call, streamed (drafts that feed the article page). Cancelled
144
+ * between chunks; priced into the run at `done`.
145
+ */
146
+ stream(request: GatewayRequest, options?: NodeCallOptions): AsyncIterable<GatewayStreamEvent>;
147
+ /** A tool loop through the gateway; tool calls become `tool.called` events. */
148
+ runAgent(options: Omit<RunAgentOptions, 'client' | 'signal' | 'idempotencyKey'>, callOptions?: NodeCallOptions): Promise<AgentRunResult>;
149
+ }
150
+ /** Where a node goes next: a node id, `null` to finish, or computed from the output (loops). */
151
+ export type NodeNext = string | null | ((args: {
152
+ output: unknown;
153
+ ctx: NodeContext;
154
+ }) => string | null);
155
+ /**
156
+ * What kind of failure an error is (see `retryCategory`): `rate_limit`
157
+ * (429), `server` (5xx, overloaded), `timeout` (the node's timeout, 408,
158
+ * 504), `network` (connection failures), `schema` (an answer that broke
159
+ * its contract — throw an error with `category: 'schema'`), `other`.
160
+ */
161
+ export type RetryCategory = 'rate_limit' | 'server' | 'timeout' | 'network' | 'schema' | 'other';
162
+ export interface NodeRetry {
163
+ /** Attempts including the first. Default 3. */
164
+ maxAttempts?: number;
165
+ /** First backoff; doubles per attempt. Default: the harness's `retryBackoffMs`. */
166
+ backoffMs?: number;
167
+ /**
168
+ * Which failures retry: categories, or a predicate. Default: every
169
+ * failure that isn't fatal. Fatal errors never retry.
170
+ */
171
+ on?: RetryCategory[] | ((err: unknown, category: RetryCategory) => boolean);
172
+ }
173
+ interface NodeBase {
174
+ id: string;
175
+ label: string;
176
+ next?: NodeNext;
177
+ /** Default 10 minutes. */
178
+ timeoutMs?: number;
179
+ retry?: NodeRetry;
180
+ /** Spend cap for one attempt; calls past it fail the node (no retry). */
181
+ maxCostUsd?: number;
182
+ /**
183
+ * Model tier for the node's calls (`fast` · `balanced` · `best`), added
184
+ * to requests that name none; the gateway's `route` maps it to catalog keys.
185
+ */
186
+ tier?: ModelTier;
187
+ /**
188
+ * The card detail for the node's state (`ctx.state(...)`), e.g.
189
+ * `(s) => \`${s.read} of ${s.planned} sources\``. A fanned-out map gets
190
+ * `{ done, total, item }` after each item (default "3 of 8").
191
+ */
192
+ detail?(state: any): string | null;
193
+ /** App metadata kept with the definition (artifact contracts, tool lists…); the harness ignores it. */
194
+ meta?: Record<string, unknown>;
195
+ }
196
+ export interface RunNodeDefinition<O = unknown> extends NodeBase {
197
+ kind: 'llm' | 'agent' | 'tool' | 'check' | 'judge' | 'join' | 'emit';
198
+ run(ctx: NodeContext): Promise<O> | O;
199
+ }
200
+ export interface MapNodeDefinition<I = unknown, O = unknown> extends NodeBase {
201
+ kind: 'map';
202
+ /** Items in parallel. Default 4. */
203
+ concurrency?: number;
204
+ /**
205
+ * `inline` (default): the items run inside the node attempt. `tasks`:
206
+ * fan-out — one queue message per item (at most `concurrency` in
207
+ * flight), each with its own lease, retries and timeout, joined by a
208
+ * counter row; the item that finishes last commits the node. Items and
209
+ * their outputs must be JSON.
210
+ */
211
+ dispatch?: 'inline' | 'tasks';
212
+ items(ctx: NodeContext): I[] | Promise<I[]>;
213
+ /** Each item's result is checkpointed: a retry only redoes the items that didn't finish. */
214
+ runItem(item: I, index: number, ctx: NodeContext): Promise<O>;
215
+ }
216
+ export interface GateNodeDefinition extends NodeBase {
217
+ kind: 'gate';
218
+ /** Decisions `resume()` accepts. */
219
+ decisions: string[];
220
+ }
221
+ export type NodeDefinition = RunNodeDefinition<any> | MapNodeDefinition<any, any> | GateNodeDefinition;
222
+ export interface GraphDefinition {
223
+ key: string;
224
+ version: number;
225
+ start: string;
226
+ nodes: NodeDefinition[];
227
+ /** Node executions per run (loops included). Default 100. */
228
+ maxSteps?: number;
229
+ /** Spend cap for the whole run. */
230
+ maxCostUsd?: number;
231
+ }
232
+ export type ExecuteOutcome = 'advanced' | 'waiting' | 'completed' | 'retrying' | 'failed' | 'cancelled' | 'stale' | 'busy' | 'deferred'
233
+ /** A `dispatch: 'tasks'` map node sent its items out. */
234
+ | 'fanned_out'
235
+ /** A map item finished; others are still running. */
236
+ | 'item_done';
237
+ export interface ExecuteResult {
238
+ outcome: ExecuteOutcome;
239
+ runId: string;
240
+ }
241
+ export interface StartRunOptions {
242
+ graph: string;
243
+ /** Default: the newest registered version. */
244
+ version?: number;
245
+ input: unknown;
246
+ context?: RunContext;
247
+ /** Delay the first node (an undo window). */
248
+ delayMs?: number;
249
+ }
250
+ export interface Harness {
251
+ start(options: StartRunOptions): Promise<RunRecord>;
252
+ /**
253
+ * Run one node attempt. `maxWaitMs`: how long the worker may wait in
254
+ * place for a task not due yet (else `deferred` — the sweep sends it).
255
+ */
256
+ execute(task: RunTask, options?: {
257
+ maxWaitMs?: number;
258
+ ignoreDelay?: boolean;
259
+ }): Promise<ExecuteResult>;
260
+ /** Answer a run waiting at a gate. */
261
+ resume(runId: string, decision: {
262
+ decision: string;
263
+ data?: unknown;
264
+ actor?: RunActor;
265
+ }): Promise<RunRecord>;
266
+ /** Stop a run; a running node is aborted within `cancelPollMs`. */
267
+ cancel(runId: string, options?: {
268
+ reason?: string;
269
+ actor?: RunActor;
270
+ }): Promise<RunRecord>;
271
+ /** Re-run a failed run from the node that failed, with a fresh attempt budget. */
272
+ retry(runId: string, options?: {
273
+ actor?: RunActor;
274
+ }): Promise<RunRecord>;
275
+ /** Re-send lost or due tasks and recover runs whose worker died. Returns how many runs it touched. */
276
+ sweep(options?: {
277
+ staleAfterMs?: number;
278
+ }): Promise<number>;
279
+ getRun(runId: string): Promise<RunRecord | null>;
280
+ events(runId: string, options?: {
281
+ afterSeq?: number;
282
+ limit?: number;
283
+ }): Promise<RunEvent[]>;
284
+ graphs(): GraphDefinition[];
285
+ }
286
+ export interface HarnessOptions {
287
+ store: HarnessStore;
288
+ scheduler: HarnessScheduler;
289
+ graphs: GraphDefinition[];
290
+ /** Every `ctx.generate` / `ctx.stream` / `ctx.runAgent` goes through it. */
291
+ gateway?: Pick<LlmGateway, 'generate'> & Partial<Pick<LlmGateway, 'client' | 'stream'>>;
292
+ /** OpenTelemetry tracer: one `harness.node` span per node attempt, passed on to agents (see `../tracing`). */
293
+ tracer?: AiTracer;
294
+ /** The `correlationId` of a run's model calls. Default: the run id. */
295
+ correlationId?(run: {
296
+ id: string;
297
+ graphKey: string;
298
+ }): string;
299
+ generateId?(): string;
300
+ /** Minimum gap between recorded `node.progress` events. Default 1 s. */
301
+ progressIntervalMs?: number;
302
+ /** How often a running node checks for cancellation. Default 2 s. */
303
+ cancelPollMs?: number;
304
+ /** Lease a worker holds on a running node; renewed while it runs. Default 60 s. */
305
+ leaseMs?: number;
306
+ /** First retry backoff; doubles per attempt. Default 5 s. */
307
+ retryBackoffMs?: number;
308
+ /** Longest retry backoff. Default 5 minutes. */
309
+ maxRetryBackoffMs?: number;
310
+ }
311
+ export {};
312
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Harness types — durable, versioned graphs of nodes.
3
+ *
4
+ * A run executes one node attempt per task (`{ runId, step, attempt }`):
5
+ * lease → run → one atomic compare-and-set commit (run + events +
6
+ * node-run row) → schedule the next task. Gates wait with nothing in
7
+ * flight; map nodes checkpoint each item; retries back off; a sweep
8
+ * re-sends lost tasks and recovers dead workers.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
package/dist/index.d.ts CHANGED
@@ -32,4 +32,16 @@ export { recordLlmCost, listLlmCosts, costByTarget as llmCostByTarget, costByCor
32
32
  export type { LlmCostInput, LlmCostEvent, LlmCostRollup, ListLlmCostsArgs, CostByTargetArgs as LlmCostByTargetArgs, CostByCorrelationArgs as LlmCostByCorrelationArgs, CostByTenantArgs as LlmCostByTenantArgs, CostByMonthArgs as LlmCostByMonthArgs, MonthlyCostBucket as LlmMonthlyCostBucket, CostWindowKey, CostWindowRange, CostTotals, CostByModelRow, CostBySourceRow, CostRollupResult, RollupCostWindowArgs, } from './cost-ledger/index.js';
33
33
  export { listModels, getModelByKey, createModel, patchModel, isUniqueViolation as isLlmModelUniqueViolation, isForeignKeyViolation as isLlmModelForeignKeyViolation, } from './model-catalog/index.js';
34
34
  export type { LlmModelStatus, LlmModelRow, CreateLlmModelInput, PatchLlmModelInput, } from './model-catalog/index.js';
35
+ export { createGenerateClient, generateWithAnthropic, streamWithAnthropic, generateWithOpenAi, streamWithOpenAi, generateWithGoogle, streamWithGoogle, generateWithPerplexity, streamWithPerplexity, parseJsonText, GenerateAbortedError, THINKING_BUDGET, } from './generate/index.js';
36
+ export type { JsonSchema, TextPart, FilePart, ImagePart, ContentPart, ToolCall, ProviderState, SystemMessage, UserMessage, AssistantMessage, ToolMessage, GenerateMessage, ToolDefinition, ToolChoice, WebSearchOptions, ResponseFormat, CacheOptions, GenerateRequest, Citation, SearchResult, GenerateUsage, GenerateResult, GenerateStreamEvent, GenerateClient, GenerateAdapterConfig, GenerateClientConfig, ReasoningEffort, } from './generate/index.js';
37
+ export { createLlmGateway, requestRecord, GatewayPolicyError, GatewayUnavailableError, budgetPolicy, modelAllowlistPolicy, providerKillSwitchPolicy, tierRoute, priceCall, createPostgresGatewaySinks, purgeExpiredLlmCalls, listLlmCalls, } from './gateway/index.js';
38
+ export type { TierRouteOptions, PostgresGatewaySinksOptions, LlmCallRow, GatewayActor, GatewayContext, ModelTier, GatewayRequest, GatewayPricing, GatewayCost, GatewayCredentialSource, GatewayCredential, GatewayAttemptOutcome, GatewayAttempt, GatewayPolicyDecision, GatewayResult, GatewayStreamEvent, GatewayPolicyCheck, GatewayPolicy, LlmCallStatus, LlmCallRequestRecord, LlmCallResponseRecord, LlmCallRecord, GatewaySinks, GatewayCatalog, LlmGatewayConfig, GatewayClient, LlmGateway, } from './gateway/index.js';
39
+ export { runAgent, AgentRunError, defineAgentTool, toolResult, isToolResult, createToolRegistry, defineRegistryTool, toModelName, } from './agent-loop/index.js';
40
+ export type { ToolPermission, ToolSchema, ToolSchemaOutput, ToolRunContext, RegistryTool, RegistryMcpTool, ToolFilter, ToolRegistry, AgentToolContext, ToolSpend, ToolResult, AgentTool, AgentLimits, AgentLimitHit, AgentStopReason, AgentStepResult, AgentToolCallResult, AgentEvent, RunAgentOptions, AgentRunResult, } from './agent-loop/index.js';
41
+ export { createHarness, HarnessError, retryCategory, defineGraph, defineNode, NodeFatalError, createMemoryHarnessStore, createPostgresHarnessStore, createInlineScheduler, toRunRecord, } from './harness/index.js';
42
+ export type { MemoryHarnessStore, InlineScheduler, HarnessStore, HarnessMapStore, MapItemRow, MapItemStatus, StoredRun, NewRunEvent, NodeRunRow, RunPatch, RunStatus, RunActor, RunContext, RunError, RunRecord, RunEvent, RunTask, HarnessScheduler, GateDecision, NodeKind, NodeCallOptions, NodeContext, NodeNext, NodeRetry, RetryCategory, RunNodeDefinition, MapNodeDefinition, GateNodeDefinition, NodeDefinition, GraphDefinition, ExecuteOutcome, ExecuteResult, StartRunOptions, Harness, HarnessOptions, } from './harness/index.js';
43
+ export { inSpan, attributes as spanAttributes, genAiProvider, otelTracer, SPAN_KIND, SPAN_STATUS, } from './tracing/index.js';
44
+ export type { AiTracer, AiSpan, AiSpanOptions, AiAttributeValue } from './tracing/index.js';
45
+ export { createRecordingTracer } from './tracing/recording.js';
46
+ export type { RecordedSpan } from './tracing/recording.js';
35
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -33,4 +33,15 @@ export { retryWithBackoff, isRetryableError, withFallback, } from './fallback/in
33
33
  export { recordLlmCost, listLlmCosts, costByTarget as llmCostByTarget, costByCorrelation as llmCostByCorrelation, costByTenant as llmCostByTenant, costByMonth as llmCostByMonth, computeWindows, rollupCostWindow, getAiCostMigrationsDir, } from './cost-ledger/index.js';
34
34
  // LLM model catalog (vk_llm_models table CRUD)
35
35
  export { listModels, getModelByKey, createModel, patchModel, isUniqueViolation as isLlmModelUniqueViolation, isForeignKeyViolation as isLlmModelForeignKeyViolation, } from './model-catalog/index.js';
36
+ // generate — tools, native web search, structured output, file inputs, prompt caching, streaming
37
+ export { createGenerateClient, generateWithAnthropic, streamWithAnthropic, generateWithOpenAi, streamWithOpenAi, generateWithGoogle, streamWithGoogle, generateWithPerplexity, streamWithPerplexity, parseJsonText, GenerateAbortedError, THINKING_BUDGET, } from './generate/index.js';
38
+ // LLM gateway — the single call path (route, catalog, policies, credentials, retries + fallback, ledger, audit)
39
+ export { createLlmGateway, requestRecord, GatewayPolicyError, GatewayUnavailableError, budgetPolicy, modelAllowlistPolicy, providerKillSwitchPolicy, tierRoute, priceCall, createPostgresGatewaySinks, purgeExpiredLlmCalls, listLlmCalls, } from './gateway/index.js';
40
+ // Agent loop — bounded tool use on the gateway; a tool registry shared with MCP
41
+ export { runAgent, AgentRunError, defineAgentTool, toolResult, isToolResult, createToolRegistry, defineRegistryTool, toModelName, } from './agent-loop/index.js';
42
+ // Harness — durable, versioned graphs
43
+ export { createHarness, HarnessError, retryCategory, defineGraph, defineNode, NodeFatalError, createMemoryHarnessStore, createPostgresHarnessStore, createInlineScheduler, toRunRecord, } from './harness/index.js';
44
+ // Tracing — OpenTelemetry GenAI spans through any `startActiveSpan` tracer (no dependency)
45
+ export { inSpan, attributes as spanAttributes, genAiProvider, otelTracer, SPAN_KIND, SPAN_STATUS, } from './tracing/index.js';
46
+ export { createRecordingTracer } from './tracing/recording.js';
36
47
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yDAAyD;AACzD,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAG/B,eAAe;AACf,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,MAAM;AACN,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GACV,MAAM,gBAAgB,CAAC;AAGxB,yBAAyB;AACzB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAC;AAG3B,8CAA8C;AAC9C,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAQ9B,0DAA0D;AAC1D,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,MAAM,GACP,MAAM,iBAAiB,CAAC;AAiBzB,8CAA8C;AAC9C,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAY/E,kCAAkC;AAClC,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AASzB,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAO5B,kCAAkC;AAClC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B,iEAAiE;AACjE,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,IAAI,eAAe,EAC/B,iBAAiB,IAAI,oBAAoB,EACzC,YAAY,IAAI,eAAe,EAC/B,WAAW,IAAI,cAAc,EAC7B,cAAc,EACd,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAoBhC,+CAA+C;AAC/C,OAAO,EACL,UAAU,EACV,aAAa,EACb,WAAW,EACX,UAAU,EACV,iBAAiB,IAAI,yBAAyB,EAC9C,qBAAqB,IAAI,6BAA6B,GACvD,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/model-catalog/crud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,4DAA4D;AAC5D,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAIzE;AAED,gEAAgE;AAChE,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAM7B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,WAAW,CAAC,CAgDtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkD7B;AAID,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAK3D"}
1
+ {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/model-catalog/crud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,4DAA4D;AAC5D,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAIzE;AAED,gEAAgE;AAChE,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAM7B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,WAAW,CAAC,CAuEtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAsD7B;AAID,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAK3D"}
@@ -29,6 +29,28 @@ export async function createModel(querier, input) {
29
29
  const status = input.status ?? 'available';
30
30
  const deprecatedAt = status === 'deprecated' ? 'NOW()' : 'NULL';
31
31
  const disabledAt = status === 'disabled' ? 'NOW()' : 'NULL';
32
+ // Gateway prices (vk_ai_cost_0004) are written only when given, so the
33
+ // insert keeps working on a catalog that predates the migration.
34
+ const extraColumns = [];
35
+ const extraParams = [];
36
+ if (input.costPer1kCachedInput !== undefined) {
37
+ extraColumns.push('cost_per_1k_cached_input');
38
+ extraParams.push(input.costPer1kCachedInput);
39
+ }
40
+ if (input.webSearchPer1k !== undefined) {
41
+ extraColumns.push('web_search_per_1k');
42
+ extraParams.push(input.webSearchPer1k);
43
+ }
44
+ if (input.costPer1kCacheWrite !== undefined) {
45
+ extraColumns.push('cost_per_1k_cache_write');
46
+ extraParams.push(input.costPer1kCacheWrite);
47
+ }
48
+ if (input.costPer1kCacheWrite1h !== undefined) {
49
+ extraColumns.push('cost_per_1k_cache_write_1h');
50
+ extraParams.push(input.costPer1kCacheWrite1h);
51
+ }
52
+ const extraCols = extraColumns.map((c) => `, ${c}`).join('');
53
+ const extraVals = extraParams.map((_, i) => `, $${19 + i}`).join('');
32
54
  const rows = await querier(`INSERT INTO vk_llm_models (
33
55
  key, provider, model, display_name, description, status, replacement_key,
34
56
  cost_per_1k_input, cost_per_1k_output,
@@ -36,7 +58,7 @@ export async function createModel(querier, input) {
36
58
  supports_json_mode, supports_image_input,
37
59
  default_max_tokens, default_temperature,
38
60
  tags, notes, default_timeout_ms,
39
- deprecated_at, disabled_at
61
+ deprecated_at, disabled_at${extraCols}
40
62
  ) VALUES (
41
63
  $1, $2, $3, $4, $5, $6::llm_model_status, $7,
42
64
  $8, $9,
@@ -44,7 +66,7 @@ export async function createModel(querier, input) {
44
66
  $12, $13,
45
67
  $14, $15,
46
68
  $16, $17, $18,
47
- ${deprecatedAt}, ${disabledAt}
69
+ ${deprecatedAt}, ${disabledAt}${extraVals}
48
70
  )
49
71
  RETURNING *`, [
50
72
  input.key,
@@ -65,6 +87,7 @@ export async function createModel(querier, input) {
65
87
  input.tags ?? [],
66
88
  input.notes ?? null,
67
89
  input.defaultTimeoutMs ?? null,
90
+ ...extraParams,
68
91
  ]);
69
92
  const row = rows[0];
70
93
  if (!row)
@@ -101,6 +124,14 @@ export async function patchModel(querier, key, input) {
101
124
  setField('cost_per_1k_input', input.costPer1kInput);
102
125
  if (input.costPer1kOutput !== undefined)
103
126
  setField('cost_per_1k_output', input.costPer1kOutput);
127
+ if (input.costPer1kCachedInput !== undefined)
128
+ setField('cost_per_1k_cached_input', input.costPer1kCachedInput);
129
+ if (input.webSearchPer1k !== undefined)
130
+ setField('web_search_per_1k', input.webSearchPer1k);
131
+ if (input.costPer1kCacheWrite !== undefined)
132
+ setField('cost_per_1k_cache_write', input.costPer1kCacheWrite);
133
+ if (input.costPer1kCacheWrite1h !== undefined)
134
+ setField('cost_per_1k_cache_write_1h', input.costPer1kCacheWrite1h);
104
135
  if (input.contextWindow !== undefined)
105
136
  setField('context_window', input.contextWindow);
106
137
  if (input.maxOutputTokens !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../src/model-catalog/crud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../src/model-catalog/crud.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,18 @@ export interface LlmModelRow {
36
36
  costPer1kInput: string | null;
37
37
  /** USD per 1K output tokens. Null for experimental / on-prem models. */
38
38
  costPer1kOutput: string | null;
39
+ /**
40
+ * USD per 1K cached input tokens (migration `vk_ai_cost_0004`). Null =
41
+ * priced at the input rate. Optional: absent on rows read before the
42
+ * migration ran.
43
+ */
44
+ costPer1kCachedInput?: string | null;
45
+ /** USD per 1,000 native web searches (migration `vk_ai_cost_0004`). Null = $0. */
46
+ webSearchPer1k?: string | null;
47
+ /** USD per 1K tokens written to the prompt cache (migration `vk_ai_cost_0006`). Null = the input rate. */
48
+ costPer1kCacheWrite?: string | null;
49
+ /** USD per 1K tokens written with a 1-hour lifetime (migration `vk_ai_cost_0006`). Null = the write rate. */
50
+ costPer1kCacheWrite1h?: string | null;
39
51
  contextWindow: number | null;
40
52
  maxOutputTokens: number | null;
41
53
  supportsJsonMode: boolean;
@@ -67,6 +79,10 @@ export interface CreateLlmModelInput {
67
79
  replacementKey?: string;
68
80
  costPer1kInput?: number;
69
81
  costPer1kOutput?: number;
82
+ costPer1kCachedInput?: number | null;
83
+ webSearchPer1k?: number | null;
84
+ costPer1kCacheWrite?: number | null;
85
+ costPer1kCacheWrite1h?: number | null;
70
86
  contextWindow?: number;
71
87
  maxOutputTokens?: number;
72
88
  supportsJsonMode?: boolean;
@@ -86,6 +102,10 @@ export interface PatchLlmModelInput {
86
102
  replacementKey?: string | null;
87
103
  costPer1kInput?: number | null;
88
104
  costPer1kOutput?: number | null;
105
+ costPer1kCachedInput?: number | null;
106
+ webSearchPer1k?: number | null;
107
+ costPer1kCacheWrite?: number | null;
108
+ costPer1kCacheWrite1h?: number | null;
89
109
  contextWindow?: number | null;
90
110
  maxOutputTokens?: number | null;
91
111
  supportsJsonMode?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model-catalog/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model-catalog/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * OpenTelemetry GenAI spans without a dependency: pass any tracer with
3
+ * `startActiveSpan` — an `@opentelemetry/api` `Tracer`
4
+ * (`trace.getTracer('venturekit-ai')`) fits as is — to the gateway, the
5
+ * agent loop or the harness.
6
+ *
7
+ * harness.node <graph>/<node> one per node attempt (run, step, attempt, outcome, cost)
8
+ * invoke_agent <name> one per `runAgent`
9
+ * execute_tool <tool> one per tool call
10
+ * chat <model> one per gateway call (retries and fallbacks inside)
11
+ *
12
+ * Model-call attributes follow the GenAI semantic conventions
13
+ * (`gen_ai.provider.name`, `gen_ai.request.model`, `gen_ai.usage.*` with
14
+ * cache reads and writes, `gen_ai.response.finish_reasons`,
15
+ * `gen_ai.response.time_to_first_chunk`); VentureKit's own (cost, call id,
16
+ * tenant, feature, fallback) are under `vk.ai.*` / `vk.harness.*`. Spans
17
+ * nest through the tracer's active context, so the exporter (CloudWatch /
18
+ * X-Ray, OTLP…) is whatever the app configured.
19
+ */
20
+ import type { ChatProvider } from '../chat/types.js';
21
+ export type AiAttributeValue = string | number | boolean | string[] | number[] | boolean[];
22
+ export interface AiSpan {
23
+ setAttribute(key: string, value: AiAttributeValue): unknown;
24
+ setAttributes(attributes: Record<string, AiAttributeValue>): unknown;
25
+ recordException(exception: Error | string): void;
26
+ setStatus(status: {
27
+ code: number;
28
+ message?: string;
29
+ }): unknown;
30
+ end(): void;
31
+ }
32
+ export interface AiSpanOptions {
33
+ /** OpenTelemetry `SpanKind`: 0 internal, 2 client. */
34
+ kind?: number;
35
+ attributes?: Record<string, AiAttributeValue>;
36
+ }
37
+ export interface AiTracer {
38
+ startActiveSpan<F extends (span: AiSpan) => unknown>(name: string, options: AiSpanOptions, fn: F): ReturnType<F>;
39
+ }
40
+ /**
41
+ * The tracer of the OpenTelemetry SDK registered in this process (the AWS
42
+ * Lambda Layer for OpenTelemetry registers one before the handler loads —
43
+ * `lambda.otel` in the VentureKit config), or `undefined` when none is.
44
+ *
45
+ * Reads the global registry `@opentelemetry/api` v1 keeps on `globalThis`
46
+ * rather than importing the package: nothing to install, and it works in
47
+ * Lambda bundles where the layer's packages can't be `import()`ed.
48
+ */
49
+ export declare function otelTracer(name?: string, version?: string): AiTracer | undefined;
50
+ export declare const SPAN_KIND: {
51
+ readonly INTERNAL: 0;
52
+ readonly CLIENT: 2;
53
+ };
54
+ export declare const SPAN_STATUS: {
55
+ readonly OK: 1;
56
+ readonly ERROR: 2;
57
+ };
58
+ /** GenAI `gen_ai.provider.name` for a VentureKit provider. */
59
+ export declare function genAiProvider(provider: ChatProvider): string;
60
+ /** Attributes without the undefined / null values (OpenTelemetry drops them anyway). */
61
+ export declare function attributes(values: Record<string, AiAttributeValue | null | undefined>): Record<string, AiAttributeValue>;
62
+ /**
63
+ * Run `fn` in an active span when a tracer is set (`span` is `null`
64
+ * otherwise). A thrown error is recorded and marks the span as failed;
65
+ * the span always ends.
66
+ */
67
+ export declare function inSpan<T>(tracer: AiTracer | undefined, name: string, options: AiSpanOptions, fn: (span: AiSpan | null) => Promise<T>): Promise<T>;
68
+ //# sourceMappingURL=index.d.ts.map