@goharvest/simforge 0.5.0 → 0.5.2
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/dist/client.d.ts +27 -9
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +81 -43
- package/dist/client.js.map +1 -1
- package/dist/client.test.js +282 -62
- package/dist/client.test.js.map +1 -1
- package/dist/http.d.ts +0 -9
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +0 -7
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/serialize.test.d.ts +8 -0
- package/dist/serialize.test.d.ts.map +1 -0
- package/dist/serialize.test.js +226 -0
- package/dist/serialize.test.js.map +1 -0
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +10 -5
- package/dist/tracing.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -4,6 +4,26 @@
|
|
|
4
4
|
import { type AllowedEnvVars } from "./baml.js";
|
|
5
5
|
import { SimforgeError } from "./http.js";
|
|
6
6
|
import { SimforgeOpenAITracingProcessor } from "./tracing.js";
|
|
7
|
+
/**
|
|
8
|
+
* A handle to the current active span, allowing runtime metadata to be set.
|
|
9
|
+
*/
|
|
10
|
+
export interface CurrentSpan {
|
|
11
|
+
/**
|
|
12
|
+
* Set custom metadata on this span. Merges with any existing metadata
|
|
13
|
+
* (both definition-time and previous runtime calls), with later values
|
|
14
|
+
* taking precedence on conflict.
|
|
15
|
+
*/
|
|
16
|
+
setMetadata(metadata: Record<string, unknown>): void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get a handle to the current active span.
|
|
20
|
+
*
|
|
21
|
+
* Call this from inside a traced function (wrapped with `withSpan`) to get
|
|
22
|
+
* a span handle that allows setting metadata at runtime.
|
|
23
|
+
*
|
|
24
|
+
* Returns `null` if called outside of a span context.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getCurrentSpan(): CurrentSpan | null;
|
|
7
27
|
export interface SimforgeConfig {
|
|
8
28
|
/** The API key for Simforge API authentication */
|
|
9
29
|
apiKey: string;
|
|
@@ -13,14 +33,8 @@ export interface SimforgeConfig {
|
|
|
13
33
|
timeout?: number;
|
|
14
34
|
/** Environment variables for LLM provider API keys (only OPENAI_API_KEY is supported) */
|
|
15
35
|
envVars?: AllowedEnvVars;
|
|
16
|
-
/** Whether to
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
export interface CallResponse<T = unknown> {
|
|
20
|
-
result?: T;
|
|
21
|
-
error?: string;
|
|
22
|
-
url?: string;
|
|
23
|
-
traceId?: string;
|
|
36
|
+
/** Whether the client is enabled. Defaults to true. When false, withSpan returns the original function unwrapped. */
|
|
37
|
+
enabled?: boolean;
|
|
24
38
|
}
|
|
25
39
|
/**
|
|
26
40
|
* Span types matching the backend enum.
|
|
@@ -45,6 +59,10 @@ export interface SpanOptions {
|
|
|
45
59
|
* The type of span. Defaults to "custom" if not specified.
|
|
46
60
|
*/
|
|
47
61
|
type?: SpanType;
|
|
62
|
+
/**
|
|
63
|
+
* Custom metadata to attach to the span. Stored as-is in span_data.
|
|
64
|
+
*/
|
|
65
|
+
metadata?: Record<string, unknown>;
|
|
48
66
|
}
|
|
49
67
|
export { SimforgeError };
|
|
50
68
|
/**
|
|
@@ -55,7 +73,7 @@ export declare class Simforge {
|
|
|
55
73
|
private readonly serviceUrl;
|
|
56
74
|
private readonly timeout;
|
|
57
75
|
private readonly envVars;
|
|
58
|
-
private readonly
|
|
76
|
+
private readonly enabled;
|
|
59
77
|
private readonly httpClient;
|
|
60
78
|
/**
|
|
61
79
|
* Initialize the Simforge client.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,WAAW,CAAA;AAElB,OAAO,EAAc,aAAa,EAAE,MAAM,WAAW,CAAA;AAErD,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5
5
|
import { runFunctionWithBaml, } from "./baml.js";
|
|
6
|
-
import {
|
|
6
|
+
import { DEFAULT_SERVICE_URL } from "./constants.js";
|
|
7
7
|
import { HttpClient, SimforgeError } from "./http.js";
|
|
8
8
|
import { serializeValue } from "./serialize.js";
|
|
9
9
|
import { SimforgeOpenAITracingProcessor } from "./tracing.js";
|
|
@@ -63,6 +63,29 @@ function runWithSpanStack(stack, fn) {
|
|
|
63
63
|
// Fallback (should not reach here if zone.js is loaded)
|
|
64
64
|
return fn();
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Get a handle to the current active span.
|
|
68
|
+
*
|
|
69
|
+
* Call this from inside a traced function (wrapped with `withSpan`) to get
|
|
70
|
+
* a span handle that allows setting metadata at runtime.
|
|
71
|
+
*
|
|
72
|
+
* Returns `null` if called outside of a span context.
|
|
73
|
+
*/
|
|
74
|
+
export function getCurrentSpan() {
|
|
75
|
+
const stack = getSpanStack();
|
|
76
|
+
const current = stack[stack.length - 1];
|
|
77
|
+
if (!current) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
setMetadata(metadata) {
|
|
82
|
+
if (typeof metadata !== "object" || metadata === null) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
current.metadata = { ...current.metadata, ...metadata };
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
66
89
|
// Re-export SimforgeError for backwards compatibility
|
|
67
90
|
export { SimforgeError };
|
|
68
91
|
/**
|
|
@@ -79,7 +102,14 @@ export class Simforge {
|
|
|
79
102
|
this.serviceUrl = config.serviceUrl ?? DEFAULT_SERVICE_URL;
|
|
80
103
|
this.timeout = config.timeout ?? 120000;
|
|
81
104
|
this.envVars = config.envVars ?? {};
|
|
82
|
-
|
|
105
|
+
const enabled = config.enabled ?? true;
|
|
106
|
+
if (enabled && (!config.apiKey || config.apiKey.trim() === "")) {
|
|
107
|
+
console.warn("Simforge: apiKey is empty — tracing is disabled. Provide a valid API key to enable tracing.");
|
|
108
|
+
this.enabled = false;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this.enabled = enabled;
|
|
112
|
+
}
|
|
83
113
|
this.httpClient = new HttpClient({
|
|
84
114
|
apiKey: this.apiKey,
|
|
85
115
|
serviceUrl: this.serviceUrl,
|
|
@@ -114,43 +144,33 @@ export class Simforge {
|
|
|
114
144
|
* @throws {SimforgeError} If service_url is not set, or if an error occurs
|
|
115
145
|
*/
|
|
116
146
|
async call(methodName, inputs = {}) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
147
|
+
try {
|
|
148
|
+
const functionVersion = await this.fetchFunctionVersion(methodName);
|
|
149
|
+
const executionResult = await runFunctionWithBaml(functionVersion.prompt, inputs, functionVersion.providers, this.envVars);
|
|
150
|
+
// Create trace for the local execution
|
|
151
|
+
const resultStr = typeof executionResult.result === "string"
|
|
152
|
+
? executionResult.result
|
|
153
|
+
: JSON.stringify(executionResult.result);
|
|
154
|
+
// Create trace in background so user doesn't have to wait
|
|
155
|
+
this.httpClient.sendInternalTrace(functionVersion.id, {
|
|
156
|
+
result: resultStr,
|
|
157
|
+
source: "typescript-sdk",
|
|
158
|
+
...(Object.keys(inputs).length > 0 && { inputs }),
|
|
159
|
+
...(executionResult.rawCollector != null && {
|
|
160
|
+
rawCollector: executionResult.rawCollector,
|
|
161
|
+
}),
|
|
162
|
+
});
|
|
163
|
+
return executionResult.result;
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
if (error instanceof SimforgeError) {
|
|
167
|
+
throw error;
|
|
136
168
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
throw error;
|
|
140
|
-
}
|
|
141
|
-
if (error instanceof Error) {
|
|
142
|
-
throw new SimforgeError(error.message);
|
|
143
|
-
}
|
|
144
|
-
throw new SimforgeError("Unknown error occurred during local execution");
|
|
169
|
+
if (error instanceof Error) {
|
|
170
|
+
throw new SimforgeError(error.message);
|
|
145
171
|
}
|
|
172
|
+
throw new SimforgeError("Unknown error occurred during local execution");
|
|
146
173
|
}
|
|
147
|
-
// Otherwise, fall back to server-side execution
|
|
148
|
-
const result = await this.httpClient.callFunction({
|
|
149
|
-
name: methodName,
|
|
150
|
-
inputs,
|
|
151
|
-
sdkVersion: __version__,
|
|
152
|
-
});
|
|
153
|
-
return result.result;
|
|
154
174
|
}
|
|
155
175
|
/**
|
|
156
176
|
* Get a tracing processor for OpenAI Agents SDK integration.
|
|
@@ -207,6 +227,10 @@ export class Simforge {
|
|
|
207
227
|
* @returns A wrapped function with the same signature that creates spans for inputs and outputs
|
|
208
228
|
*/
|
|
209
229
|
withSpan(traceFunctionKey, optionsOrFn, maybeFn) {
|
|
230
|
+
if (!this.enabled) {
|
|
231
|
+
const fn = typeof optionsOrFn === "function" ? optionsOrFn : maybeFn;
|
|
232
|
+
return fn;
|
|
233
|
+
}
|
|
210
234
|
// Handle overloaded signature
|
|
211
235
|
const options = typeof optionsOrFn === "function" ? {} : optionsOrFn;
|
|
212
236
|
const fn = typeof optionsOrFn === "function" ? optionsOrFn : maybeFn;
|
|
@@ -237,18 +261,31 @@ export class Simforge {
|
|
|
237
261
|
inputs,
|
|
238
262
|
startedAt,
|
|
239
263
|
spanType: options.type ?? "custom",
|
|
264
|
+
metadata: options.metadata,
|
|
240
265
|
};
|
|
241
|
-
// Helper to send span in background (fire-and-forget)
|
|
266
|
+
// Helper to send span in background (fire-and-forget).
|
|
267
|
+
// Wrapped in try/catch so span errors never crash the host app.
|
|
242
268
|
const sendSpan = (params) => {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
269
|
+
try {
|
|
270
|
+
// Merge runtime metadata (from setSpanMetadata) with definition-time metadata
|
|
271
|
+
const runtimeMetadata = newContext.metadata;
|
|
272
|
+
const mergedMetadata = runtimeMetadata
|
|
273
|
+
? { ...options.metadata, ...runtimeMetadata }
|
|
274
|
+
: options.metadata;
|
|
275
|
+
self.sendWrapperSpan({
|
|
276
|
+
...baseSpanParams,
|
|
277
|
+
...params,
|
|
278
|
+
metadata: mergedMetadata,
|
|
279
|
+
endedAt: new Date().toISOString(),
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
// Silently ignore — user's result/exception takes priority
|
|
284
|
+
}
|
|
248
285
|
};
|
|
249
286
|
// Execute function within new span context
|
|
250
287
|
const executeWithContext = () => {
|
|
251
|
-
const result = fn
|
|
288
|
+
const result = fn(...args);
|
|
252
289
|
// Check if result is a Promise (async function)
|
|
253
290
|
if (result instanceof Promise) {
|
|
254
291
|
return result
|
|
@@ -323,6 +360,7 @@ export class Simforge {
|
|
|
323
360
|
function_name: params.functionName,
|
|
324
361
|
}),
|
|
325
362
|
...(params.error !== undefined && { error: params.error }),
|
|
363
|
+
...(params.metadata !== undefined && { metadata: params.metadata }),
|
|
326
364
|
},
|
|
327
365
|
};
|
|
328
366
|
// Add parent_id for nested spans
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAGL,mBAAmB,GACpB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|