@warpmetrics/warp 0.0.17 → 0.0.18
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.
- package/README.md +35 -2
- package/package.json +1 -1
- package/src/index.d.ts +37 -0
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ npm install @warpmetrics/warp
|
|
|
14
14
|
|
|
15
15
|
```js
|
|
16
16
|
import OpenAI from 'openai';
|
|
17
|
-
import { warp, run, group, call, outcome } from '@warpmetrics/warp';
|
|
17
|
+
import { warp, run, group, call, trace, outcome } from '@warpmetrics/warp';
|
|
18
18
|
|
|
19
19
|
const openai = warp(new OpenAI(), { apiKey: 'wm_...' });
|
|
20
20
|
|
|
@@ -90,6 +90,38 @@ call(r, response);
|
|
|
90
90
|
call(g, response, { label: 'extract' }); // with opts
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
+
### `trace(target, data)`
|
|
94
|
+
|
|
95
|
+
Manually record an LLM call for providers not wrapped by `warp()`.
|
|
96
|
+
|
|
97
|
+
```js
|
|
98
|
+
trace(r, {
|
|
99
|
+
provider: 'google',
|
|
100
|
+
model: 'gemini-2.0-flash',
|
|
101
|
+
messages: [{ role: 'user', content: 'Hello' }],
|
|
102
|
+
response: 'Hi there!',
|
|
103
|
+
tokens: { prompt: 10, completion: 5 },
|
|
104
|
+
latency: 230,
|
|
105
|
+
cost: 0.0001,
|
|
106
|
+
});
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
| Field | Type | Required | Description |
|
|
110
|
+
|---|---|---|---|
|
|
111
|
+
| `provider` | `string` | Yes | Provider name (e.g. `"google"`, `"cohere"`) |
|
|
112
|
+
| `model` | `string` | Yes | Model identifier |
|
|
113
|
+
| `messages` | `any` | No | Request messages/input |
|
|
114
|
+
| `response` | `string` | No | Response text |
|
|
115
|
+
| `tools` | `string[]` | No | Tool names available |
|
|
116
|
+
| `toolCalls` | `{ id, name, arguments }[]` | No | Tool calls made |
|
|
117
|
+
| `tokens` | `{ prompt?, completion?, total? }` | No | Token usage |
|
|
118
|
+
| `latency` | `number` | No | Duration in milliseconds |
|
|
119
|
+
| `timestamp` | `string` | No | ISO 8601 timestamp (auto-generated if omitted) |
|
|
120
|
+
| `status` | `string` | No | `"success"` (default) or `"error"` |
|
|
121
|
+
| `error` | `string` | No | Error message |
|
|
122
|
+
| `cost` | `number` | No | Cost in USD |
|
|
123
|
+
| `opts` | `Record<string, any>` | No | Custom metadata |
|
|
124
|
+
|
|
93
125
|
### `outcome(target, name, opts?)`
|
|
94
126
|
|
|
95
127
|
Record an outcome on any tracked target.
|
|
@@ -110,11 +142,12 @@ const r2 = run(a, 'Code Review');
|
|
|
110
142
|
|
|
111
143
|
### `ref(target)`
|
|
112
144
|
|
|
113
|
-
Resolve any target (run, group, or LLM response) to its string ID.
|
|
145
|
+
Resolve any target (run, group, outcome, act, or LLM response) to its string ID. Also accepts raw ID strings (e.g. `"wm_run_..."` loaded from a database) and registers them locally.
|
|
114
146
|
|
|
115
147
|
```js
|
|
116
148
|
ref(r) // 'wm_run_01jkx3ndek0gh4r5tmqp9a3bcv'
|
|
117
149
|
ref(response) // 'wm_call_01jkx3ndef8mn2q7kpvhc4e9ws'
|
|
150
|
+
ref('wm_run_01jkx3ndek0gh4r5tmqp9a3bcv') // adopts and returns the ID
|
|
118
151
|
```
|
|
119
152
|
|
|
120
153
|
### `flush()`
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -47,6 +47,43 @@ export function group(target: Run | Group | string, label: string, opts?: Record
|
|
|
47
47
|
/** Track an LLM call by linking a response to a run or group. */
|
|
48
48
|
export function call(target: Run | Group | string, response: object, opts?: Record<string, any>): void;
|
|
49
49
|
|
|
50
|
+
export interface TraceData {
|
|
51
|
+
/** Provider name (e.g. "google", "cohere"). */
|
|
52
|
+
provider: string;
|
|
53
|
+
/** Model identifier. */
|
|
54
|
+
model: string;
|
|
55
|
+
/** Request messages/input. */
|
|
56
|
+
messages?: any;
|
|
57
|
+
/** Response text. */
|
|
58
|
+
response?: string;
|
|
59
|
+
/** Tool names available. */
|
|
60
|
+
tools?: string[];
|
|
61
|
+
/** Tool calls made. */
|
|
62
|
+
toolCalls?: { id?: string; name: string; arguments?: string }[];
|
|
63
|
+
/** Token usage. */
|
|
64
|
+
tokens?: { prompt?: number; completion?: number; total?: number };
|
|
65
|
+
/** Duration in milliseconds. */
|
|
66
|
+
latency?: number;
|
|
67
|
+
/** ISO 8601 timestamp (auto-generated if omitted). */
|
|
68
|
+
timestamp?: string;
|
|
69
|
+
/** "success" (default) or "error". */
|
|
70
|
+
status?: string;
|
|
71
|
+
/** Error message. */
|
|
72
|
+
error?: string;
|
|
73
|
+
/** Cost in USD. */
|
|
74
|
+
cost?: number;
|
|
75
|
+
/** Custom metadata. */
|
|
76
|
+
opts?: Record<string, any>;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface Call {
|
|
80
|
+
readonly id: string;
|
|
81
|
+
readonly _type: 'call';
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** Manually record an LLM call for providers not wrapped by warp(). */
|
|
85
|
+
export function trace(target: Run | Group | string, data: TraceData): Call | undefined;
|
|
86
|
+
|
|
50
87
|
/** Record an outcome on any tracked target. Returns an Outcome handle for use with act(). */
|
|
51
88
|
export function outcome(
|
|
52
89
|
target: Run | Group | object | string,
|