@prefactor/sdk 0.1.3 → 0.1.4

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 (56) hide show
  1. package/dist/index.cjs +16 -1253
  2. package/dist/index.cjs.map +4 -17
  3. package/dist/index.d.ts +2 -81
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +4 -1255
  6. package/dist/index.js.map +4 -17
  7. package/package.json +6 -22
  8. package/LICENSE +0 -14
  9. package/README.md +0 -313
  10. package/dist/LICENSE +0 -14
  11. package/dist/README.md +0 -313
  12. package/dist/config.d.ts +0 -259
  13. package/dist/config.d.ts.map +0 -1
  14. package/dist/config.js +0 -110
  15. package/dist/config.js.map +0 -1
  16. package/dist/instrumentation/langchain/metadata-extractor.d.ts +0 -20
  17. package/dist/instrumentation/langchain/metadata-extractor.d.ts.map +0 -1
  18. package/dist/instrumentation/langchain/metadata-extractor.js +0 -54
  19. package/dist/instrumentation/langchain/metadata-extractor.js.map +0 -1
  20. package/dist/instrumentation/langchain/middleware.d.ts +0 -84
  21. package/dist/instrumentation/langchain/middleware.d.ts.map +0 -1
  22. package/dist/instrumentation/langchain/middleware.js +0 -181
  23. package/dist/instrumentation/langchain/middleware.js.map +0 -1
  24. package/dist/package.json +0 -56
  25. package/dist/tracing/context.d.ts +0 -53
  26. package/dist/tracing/context.d.ts.map +0 -1
  27. package/dist/tracing/context.js +0 -65
  28. package/dist/tracing/context.js.map +0 -1
  29. package/dist/tracing/span.d.ts +0 -68
  30. package/dist/tracing/span.d.ts.map +0 -1
  31. package/dist/tracing/span.js +0 -21
  32. package/dist/tracing/span.js.map +0 -1
  33. package/dist/tracing/tracer.d.ts +0 -100
  34. package/dist/tracing/tracer.d.ts.map +0 -1
  35. package/dist/tracing/tracer.js +0 -151
  36. package/dist/tracing/tracer.js.map +0 -1
  37. package/dist/transport/base.d.ts +0 -38
  38. package/dist/transport/base.d.ts.map +0 -1
  39. package/dist/transport/base.js +0 -2
  40. package/dist/transport/base.js.map +0 -1
  41. package/dist/transport/http.d.ts +0 -90
  42. package/dist/transport/http.d.ts.map +0 -1
  43. package/dist/transport/http.js +0 -399
  44. package/dist/transport/http.js.map +0 -1
  45. package/dist/transport/stdio.d.ts +0 -48
  46. package/dist/transport/stdio.d.ts.map +0 -1
  47. package/dist/transport/stdio.js +0 -71
  48. package/dist/transport/stdio.js.map +0 -1
  49. package/dist/utils/logging.d.ts +0 -29
  50. package/dist/utils/logging.d.ts.map +0 -1
  51. package/dist/utils/logging.js +0 -71
  52. package/dist/utils/logging.js.map +0 -1
  53. package/dist/utils/serialization.d.ts +0 -24
  54. package/dist/utils/serialization.d.ts.map +0 -1
  55. package/dist/utils/serialization.js +0 -60
  56. package/dist/utils/serialization.js.map +0 -1
package/dist/README.md DELETED
@@ -1,313 +0,0 @@
1
- # Prefactor SDK for TypeScript
2
-
3
- Automatic observability for LangChain.js agents. Capture distributed traces of LLM calls, tool executions, and agent workflows with minimal integration effort.
4
-
5
- ## Features
6
-
7
- - ✅ Automatic tracing of LLM calls with token usage
8
- - ✅ Tool execution tracking
9
- - ✅ Agent workflow visualization
10
- - ✅ Parent-child span relationships
11
- - ✅ Error tracking and debugging
12
- - ✅ Zero-overhead instrumentation
13
- - ✅ TypeScript type safety
14
- - ✅ Supports stdio and HTTP transports
15
-
16
- ## Installation
17
-
18
- ```bash
19
- npm install @prefactor/sdk
20
- # or
21
- bun add @prefactor/sdk
22
- ```
23
-
24
- ## Quick Start
25
-
26
- ```typescript
27
- import { init } from '@prefactor/sdk';
28
- import { ChatAnthropic } from '@langchain/anthropic';
29
- import { createReactAgent } from '@langchain/langgraph/prebuilt';
30
-
31
- // Initialize Prefactor (defaults to stdio transport)
32
- const middleware = init();
33
-
34
- // Create your agent with middleware
35
- const model = new ChatAnthropic({ model: 'claude-sonnet-4-5-20250929' });
36
- const agent = createReactAgent({
37
- llm: model,
38
- tools: [],
39
- middleware: [middleware],
40
- });
41
-
42
- // All operations are automatically traced!
43
- const result = await agent.invoke({
44
- messages: [{ role: 'user', content: 'What is 2+2?' }],
45
- });
46
-
47
- console.log(result.messages[result.messages.length - 1].content);
48
- ```
49
-
50
- ## Configuration
51
-
52
- ### Environment Variables
53
-
54
- The SDK can be configured using environment variables:
55
-
56
- - `PREFACTOR_TRANSPORT`: `"stdio"` | `"http"` (default: `"stdio"`)
57
- - `PREFACTOR_API_URL`: API endpoint for HTTP transport
58
- - `PREFACTOR_API_TOKEN`: Authentication token for HTTP transport
59
- - `PREFACTOR_SAMPLE_RATE`: Sampling rate 0.0-1.0 (default: `1.0`)
60
- - `PREFACTOR_CAPTURE_INPUTS`: Capture span inputs (default: `true`)
61
- - `PREFACTOR_CAPTURE_OUTPUTS`: Capture span outputs (default: `true`)
62
- - `PREFACTOR_MAX_INPUT_LENGTH`: Max input string length (default: `10000`)
63
- - `PREFACTOR_MAX_OUTPUT_LENGTH`: Max output string length (default: `10000`)
64
- - `PREFACTOR_LOG_LEVEL`: `"debug"` | `"info"` | `"warn"` | `"error"` (default: `"info"`)
65
-
66
- ### Programmatic Configuration
67
-
68
- ```typescript
69
- import { init } from '@prefactor/sdk';
70
-
71
- // HTTP Transport
72
- const middleware = init({
73
- transportType: 'http',
74
- httpConfig: {
75
- apiUrl: 'https://api.prefactor.ai',
76
- apiToken: process.env.PREFACTOR_API_TOKEN!,
77
- agentId: 'my-agent',
78
- agentVersion: '1.0.0',
79
- },
80
- });
81
-
82
- // Custom sampling
83
- const middleware = init({
84
- sampleRate: 0.1, // Sample 10% of traces
85
- maxInputLength: 5000,
86
- maxOutputLength: 5000,
87
- });
88
- ```
89
-
90
- ## Transports
91
-
92
- ### STDIO Transport (Default)
93
-
94
- The STDIO transport writes spans as newline-delimited JSON to stdout. This is useful for local development and piping to other tools.
95
-
96
- ```typescript
97
- import { init } from '@prefactor/sdk';
98
-
99
- const middleware = init(); // Uses stdio by default
100
- ```
101
-
102
- ### HTTP Transport
103
-
104
- The HTTP transport sends spans to a remote API endpoint with retry logic and queue-based processing.
105
-
106
- ```typescript
107
- import { init } from '@prefactor/sdk';
108
-
109
- const middleware = init({
110
- transportType: 'http',
111
- httpConfig: {
112
- apiUrl: 'https://api.prefactor.ai',
113
- apiToken: process.env.PREFACTOR_API_TOKEN!,
114
- agentId: 'my-agent',
115
- agentVersion: '1.0.0',
116
- maxRetries: 3,
117
- requestTimeout: 30000,
118
- },
119
- });
120
- ```
121
-
122
- ## API Reference
123
-
124
- ### `init(config?: Partial<Config>): PrefactorMiddleware`
125
-
126
- Initialize the SDK and return middleware instance.
127
-
128
- **Parameters:**
129
- - `config` - Optional configuration object
130
-
131
- **Returns:**
132
- - `PrefactorMiddleware` - Middleware instance to use with LangChain.js agents
133
-
134
- **Example:**
135
- ```typescript
136
- const middleware = init({
137
- transportType: 'stdio',
138
- sampleRate: 1.0,
139
- });
140
- ```
141
-
142
- ### `shutdown(): Promise<void>`
143
-
144
- Flush pending spans and close connections. Call before application exit.
145
-
146
- **Example:**
147
- ```typescript
148
- import { shutdown } from '@prefactor/sdk';
149
-
150
- process.on('SIGTERM', async () => {
151
- await shutdown();
152
- process.exit(0);
153
- });
154
- ```
155
-
156
- ### `getTracer(): Tracer`
157
-
158
- Get the global tracer instance for manual instrumentation.
159
-
160
- **Returns:**
161
- - `Tracer` - Tracer instance
162
-
163
- **Example:**
164
- ```typescript
165
- import { getTracer, SpanType } from '@prefactor/sdk';
166
-
167
- const tracer = getTracer();
168
- const span = tracer.startSpan({
169
- name: 'custom-operation',
170
- spanType: SpanType.TOOL,
171
- inputs: { data: 'example' },
172
- });
173
-
174
- try {
175
- // ... do work ...
176
- tracer.endSpan(span, { outputs: { result: 'done' } });
177
- } catch (error) {
178
- tracer.endSpan(span, { error });
179
- }
180
- ```
181
-
182
- ## Advanced Usage
183
-
184
- ### Manual Instrumentation
185
-
186
- For operations not automatically traced by the middleware:
187
-
188
- ```typescript
189
- import { getTracer, SpanType } from '@prefactor/sdk';
190
-
191
- const tracer = getTracer();
192
-
193
- const span = tracer.startSpan({
194
- name: 'database-query',
195
- spanType: SpanType.TOOL,
196
- inputs: { query: 'SELECT * FROM users' },
197
- metadata: { database: 'postgres' },
198
- tags: ['database', 'query'],
199
- });
200
-
201
- try {
202
- const result = await db.query('SELECT * FROM users');
203
- tracer.endSpan(span, { outputs: { rowCount: result.rows.length } });
204
- } catch (error) {
205
- tracer.endSpan(span, { error });
206
- }
207
- ```
208
-
209
- ### Context Propagation
210
-
211
- The SDK automatically propagates span context through async operations using Node.js AsyncLocalStorage. Child spans automatically inherit the trace ID and parent span ID from the current context.
212
-
213
- ```typescript
214
- import { SpanContext } from '@prefactor/sdk';
215
-
216
- // Get the current span (if any)
217
- const currentSpan = SpanContext.getCurrent();
218
-
219
- // Child spans automatically use the current span as parent
220
- const child = tracer.startSpan({
221
- name: 'child-operation',
222
- spanType: SpanType.TOOL,
223
- inputs: {},
224
- parentSpanId: currentSpan?.spanId,
225
- traceId: currentSpan?.traceId,
226
- });
227
- ```
228
-
229
- ## TypeScript Support
230
-
231
- The SDK is written in TypeScript and provides full type definitions:
232
-
233
- ```typescript
234
- import type {
235
- Config,
236
- HttpTransportConfig,
237
- Span,
238
- SpanType,
239
- SpanStatus,
240
- TokenUsage,
241
- ErrorInfo
242
- } from '@prefactor/sdk';
243
-
244
- const config: Config = {
245
- transportType: 'stdio',
246
- sampleRate: 1.0,
247
- captureInputs: true,
248
- captureOutputs: true,
249
- };
250
- ```
251
-
252
- ## Examples
253
-
254
- See the `examples/` directory for complete examples:
255
-
256
- - `examples/basic.ts` - Simple LangChain.js agent with stdio transport
257
- - `examples/http-transport.ts` - Using HTTP transport
258
- - `examples/custom-tools.ts` - Tracing custom tools
259
- - `examples/manual-instrumentation.ts` - Manual span creation
260
-
261
- ## Architecture
262
-
263
- The SDK consists of five main layers:
264
-
265
- 1. **Tracing Layer**: Span data models, Tracer for lifecycle management, Context propagation
266
- 2. **Transport Layer**: Pluggable backends (stdio, HTTP) for span emission
267
- 3. **Instrumentation Layer**: LangChain.js middleware integration
268
- 4. **Configuration**: Environment variable support, validation with Zod
269
- 5. **Utilities**: Logging, serialization helpers
270
-
271
- For more details, see `docs/architecture.md`.
272
-
273
- ## Requirements
274
-
275
- - Node.js >= 18.0.0
276
- - TypeScript >= 5.0.0 (for TypeScript projects)
277
- - Bun >= 1.0.0 (optional, for development)
278
-
279
- ## Development
280
-
281
- ```bash
282
- # Install dependencies
283
- bun install
284
-
285
- # Run tests
286
- bun test
287
-
288
- # Type check
289
- bun run typecheck
290
-
291
- # Lint
292
- bun run lint
293
-
294
- # Format
295
- bun run format
296
-
297
- # Build
298
- bun run build
299
- ```
300
-
301
- ## Contributing
302
-
303
- Contributions are welcome! Please see `CONTRIBUTING.md` for guidelines.
304
-
305
- ## License
306
-
307
- MIT
308
-
309
- ## Support
310
-
311
- - Documentation: [https://docs.prefactor.ai](https://docs.prefactor.ai)
312
- - Issues: [GitHub Issues](https://github.com/prefactor/typescript-sdk/issues)
313
- - Email: support@prefactor.ai
package/dist/config.d.ts DELETED
@@ -1,259 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Configuration schema for HTTP transport
4
- */
5
- export declare const HttpTransportConfigSchema: z.ZodObject<{
6
- /** API endpoint URL */
7
- apiUrl: z.ZodString;
8
- /** Authentication token */
9
- apiToken: z.ZodString;
10
- /** Optional agent identifier */
11
- agentId: z.ZodOptional<z.ZodString>;
12
- /** Optional agent version */
13
- agentVersion: z.ZodOptional<z.ZodString>;
14
- /** Optional agent name */
15
- agentName: z.ZodOptional<z.ZodString>;
16
- /** Optional agent description */
17
- agentDescription: z.ZodOptional<z.ZodString>;
18
- /** Optional agent schema for validation (full schema object) */
19
- agentSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
20
- /** Optional agent schema version identifier (string) */
21
- agentSchemaVersion: z.ZodOptional<z.ZodString>;
22
- /** Skip schema validation */
23
- skipSchema: z.ZodDefault<z.ZodBoolean>;
24
- /** Request timeout in milliseconds */
25
- requestTimeout: z.ZodDefault<z.ZodNumber>;
26
- /** Connection timeout in milliseconds */
27
- connectTimeout: z.ZodDefault<z.ZodNumber>;
28
- /** Maximum number of retry attempts */
29
- maxRetries: z.ZodDefault<z.ZodNumber>;
30
- /** Initial delay between retries in milliseconds */
31
- initialRetryDelay: z.ZodDefault<z.ZodNumber>;
32
- /** Maximum delay between retries in milliseconds */
33
- maxRetryDelay: z.ZodDefault<z.ZodNumber>;
34
- /** Multiplier for exponential backoff */
35
- retryMultiplier: z.ZodDefault<z.ZodNumber>;
36
- }, "strip", z.ZodTypeAny, {
37
- apiUrl: string;
38
- apiToken: string;
39
- skipSchema: boolean;
40
- requestTimeout: number;
41
- connectTimeout: number;
42
- maxRetries: number;
43
- initialRetryDelay: number;
44
- maxRetryDelay: number;
45
- retryMultiplier: number;
46
- agentId?: string | undefined;
47
- agentVersion?: string | undefined;
48
- agentName?: string | undefined;
49
- agentDescription?: string | undefined;
50
- agentSchema?: Record<string, unknown> | undefined;
51
- agentSchemaVersion?: string | undefined;
52
- }, {
53
- apiUrl: string;
54
- apiToken: string;
55
- agentId?: string | undefined;
56
- agentVersion?: string | undefined;
57
- agentName?: string | undefined;
58
- agentDescription?: string | undefined;
59
- agentSchema?: Record<string, unknown> | undefined;
60
- agentSchemaVersion?: string | undefined;
61
- skipSchema?: boolean | undefined;
62
- requestTimeout?: number | undefined;
63
- connectTimeout?: number | undefined;
64
- maxRetries?: number | undefined;
65
- initialRetryDelay?: number | undefined;
66
- maxRetryDelay?: number | undefined;
67
- retryMultiplier?: number | undefined;
68
- }>;
69
- export type HttpTransportConfig = z.infer<typeof HttpTransportConfigSchema>;
70
- /**
71
- * Partial HTTP config schema for user input (before defaults are applied)
72
- */
73
- export declare const PartialHttpConfigSchema: z.ZodObject<{
74
- apiUrl: z.ZodString;
75
- apiToken: z.ZodString;
76
- agentId: z.ZodOptional<z.ZodString>;
77
- agentVersion: z.ZodOptional<z.ZodString>;
78
- agentName: z.ZodOptional<z.ZodString>;
79
- agentDescription: z.ZodOptional<z.ZodString>;
80
- agentSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
81
- agentSchemaVersion: z.ZodOptional<z.ZodString>;
82
- skipSchema: z.ZodOptional<z.ZodBoolean>;
83
- requestTimeout: z.ZodOptional<z.ZodNumber>;
84
- connectTimeout: z.ZodOptional<z.ZodNumber>;
85
- maxRetries: z.ZodOptional<z.ZodNumber>;
86
- initialRetryDelay: z.ZodOptional<z.ZodNumber>;
87
- maxRetryDelay: z.ZodOptional<z.ZodNumber>;
88
- retryMultiplier: z.ZodOptional<z.ZodNumber>;
89
- }, "strip", z.ZodTypeAny, {
90
- apiUrl: string;
91
- apiToken: string;
92
- agentId?: string | undefined;
93
- agentVersion?: string | undefined;
94
- agentName?: string | undefined;
95
- agentDescription?: string | undefined;
96
- agentSchema?: Record<string, unknown> | undefined;
97
- agentSchemaVersion?: string | undefined;
98
- skipSchema?: boolean | undefined;
99
- requestTimeout?: number | undefined;
100
- connectTimeout?: number | undefined;
101
- maxRetries?: number | undefined;
102
- initialRetryDelay?: number | undefined;
103
- maxRetryDelay?: number | undefined;
104
- retryMultiplier?: number | undefined;
105
- }, {
106
- apiUrl: string;
107
- apiToken: string;
108
- agentId?: string | undefined;
109
- agentVersion?: string | undefined;
110
- agentName?: string | undefined;
111
- agentDescription?: string | undefined;
112
- agentSchema?: Record<string, unknown> | undefined;
113
- agentSchemaVersion?: string | undefined;
114
- skipSchema?: boolean | undefined;
115
- requestTimeout?: number | undefined;
116
- connectTimeout?: number | undefined;
117
- maxRetries?: number | undefined;
118
- initialRetryDelay?: number | undefined;
119
- maxRetryDelay?: number | undefined;
120
- retryMultiplier?: number | undefined;
121
- }>;
122
- export type PartialHttpConfig = z.infer<typeof PartialHttpConfigSchema>;
123
- /**
124
- * Main SDK configuration schema
125
- */
126
- export declare const ConfigSchema: z.ZodObject<{
127
- /** Transport type to use for span emission */
128
- transportType: z.ZodDefault<z.ZodEnum<["stdio", "http"]>>;
129
- /** Sampling rate (0.0 to 1.0) */
130
- sampleRate: z.ZodDefault<z.ZodNumber>;
131
- /** Whether to capture span inputs */
132
- captureInputs: z.ZodDefault<z.ZodBoolean>;
133
- /** Whether to capture span outputs */
134
- captureOutputs: z.ZodDefault<z.ZodBoolean>;
135
- /** Maximum length for input strings */
136
- maxInputLength: z.ZodDefault<z.ZodNumber>;
137
- /** Maximum length for output strings */
138
- maxOutputLength: z.ZodDefault<z.ZodNumber>;
139
- /** HTTP transport configuration (required if transportType is 'http') */
140
- httpConfig: z.ZodOptional<z.ZodObject<{
141
- apiUrl: z.ZodString;
142
- apiToken: z.ZodString;
143
- agentId: z.ZodOptional<z.ZodString>;
144
- agentVersion: z.ZodOptional<z.ZodString>;
145
- agentName: z.ZodOptional<z.ZodString>;
146
- agentDescription: z.ZodOptional<z.ZodString>;
147
- agentSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
148
- agentSchemaVersion: z.ZodOptional<z.ZodString>;
149
- skipSchema: z.ZodOptional<z.ZodBoolean>;
150
- requestTimeout: z.ZodOptional<z.ZodNumber>;
151
- connectTimeout: z.ZodOptional<z.ZodNumber>;
152
- maxRetries: z.ZodOptional<z.ZodNumber>;
153
- initialRetryDelay: z.ZodOptional<z.ZodNumber>;
154
- maxRetryDelay: z.ZodOptional<z.ZodNumber>;
155
- retryMultiplier: z.ZodOptional<z.ZodNumber>;
156
- }, "strip", z.ZodTypeAny, {
157
- apiUrl: string;
158
- apiToken: string;
159
- agentId?: string | undefined;
160
- agentVersion?: string | undefined;
161
- agentName?: string | undefined;
162
- agentDescription?: string | undefined;
163
- agentSchema?: Record<string, unknown> | undefined;
164
- agentSchemaVersion?: string | undefined;
165
- skipSchema?: boolean | undefined;
166
- requestTimeout?: number | undefined;
167
- connectTimeout?: number | undefined;
168
- maxRetries?: number | undefined;
169
- initialRetryDelay?: number | undefined;
170
- maxRetryDelay?: number | undefined;
171
- retryMultiplier?: number | undefined;
172
- }, {
173
- apiUrl: string;
174
- apiToken: string;
175
- agentId?: string | undefined;
176
- agentVersion?: string | undefined;
177
- agentName?: string | undefined;
178
- agentDescription?: string | undefined;
179
- agentSchema?: Record<string, unknown> | undefined;
180
- agentSchemaVersion?: string | undefined;
181
- skipSchema?: boolean | undefined;
182
- requestTimeout?: number | undefined;
183
- connectTimeout?: number | undefined;
184
- maxRetries?: number | undefined;
185
- initialRetryDelay?: number | undefined;
186
- maxRetryDelay?: number | undefined;
187
- retryMultiplier?: number | undefined;
188
- }>>;
189
- }, "strip", z.ZodTypeAny, {
190
- transportType: "stdio" | "http";
191
- sampleRate: number;
192
- captureInputs: boolean;
193
- captureOutputs: boolean;
194
- maxInputLength: number;
195
- maxOutputLength: number;
196
- httpConfig?: {
197
- apiUrl: string;
198
- apiToken: string;
199
- agentId?: string | undefined;
200
- agentVersion?: string | undefined;
201
- agentName?: string | undefined;
202
- agentDescription?: string | undefined;
203
- agentSchema?: Record<string, unknown> | undefined;
204
- agentSchemaVersion?: string | undefined;
205
- skipSchema?: boolean | undefined;
206
- requestTimeout?: number | undefined;
207
- connectTimeout?: number | undefined;
208
- maxRetries?: number | undefined;
209
- initialRetryDelay?: number | undefined;
210
- maxRetryDelay?: number | undefined;
211
- retryMultiplier?: number | undefined;
212
- } | undefined;
213
- }, {
214
- transportType?: "stdio" | "http" | undefined;
215
- sampleRate?: number | undefined;
216
- captureInputs?: boolean | undefined;
217
- captureOutputs?: boolean | undefined;
218
- maxInputLength?: number | undefined;
219
- maxOutputLength?: number | undefined;
220
- httpConfig?: {
221
- apiUrl: string;
222
- apiToken: string;
223
- agentId?: string | undefined;
224
- agentVersion?: string | undefined;
225
- agentName?: string | undefined;
226
- agentDescription?: string | undefined;
227
- agentSchema?: Record<string, unknown> | undefined;
228
- agentSchemaVersion?: string | undefined;
229
- skipSchema?: boolean | undefined;
230
- requestTimeout?: number | undefined;
231
- connectTimeout?: number | undefined;
232
- maxRetries?: number | undefined;
233
- initialRetryDelay?: number | undefined;
234
- maxRetryDelay?: number | undefined;
235
- retryMultiplier?: number | undefined;
236
- } | undefined;
237
- }>;
238
- export type Config = z.infer<typeof ConfigSchema>;
239
- /**
240
- * Creates a validated configuration object by merging provided options with
241
- * environment variables and defaults.
242
- *
243
- * @param options - Partial configuration options
244
- * @returns Validated configuration object
245
- * @throws {z.ZodError} If configuration is invalid
246
- *
247
- * @example
248
- * ```typescript
249
- * const config = createConfig({
250
- * transportType: 'http',
251
- * httpConfig: {
252
- * apiUrl: 'https://api.prefactor.ai',
253
- * apiToken: process.env.PREFACTOR_API_TOKEN!,
254
- * }
255
- * });
256
- * ```
257
- */
258
- export declare function createConfig(options?: Partial<Config>): Config;
259
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,yBAAyB;IACpC,uBAAuB;;IAGvB,2BAA2B;;IAG3B,gCAAgC;;IAGhC,6BAA6B;;IAG7B,0BAA0B;;IAG1B,iCAAiC;;IAGjC,gEAAgE;;IAGhE,wDAAwD;;IAGxD,6BAA6B;;IAG7B,sCAAsC;;IAGtC,yCAAyC;;IAGzC,uCAAuC;;IAGvC,oDAAoD;;IAGpD,oDAAoD;;IAGpD,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEzC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB,8CAA8C;;IAG9C,iCAAiC;;IAGjC,qCAAqC;;IAGrC,sCAAsC;;IAGtC,uCAAuC;;IAGvC,wCAAwC;;IAGxC,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEzE,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAkB9D"}
package/dist/config.js DELETED
@@ -1,110 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Configuration schema for HTTP transport
4
- */
5
- export const HttpTransportConfigSchema = z.object({
6
- /** API endpoint URL */
7
- apiUrl: z.string().url(),
8
- /** Authentication token */
9
- apiToken: z.string().min(1),
10
- /** Optional agent identifier */
11
- agentId: z.string().optional(),
12
- /** Optional agent version */
13
- agentVersion: z.string().optional(),
14
- /** Optional agent name */
15
- agentName: z.string().optional(),
16
- /** Optional agent description */
17
- agentDescription: z.string().optional(),
18
- /** Optional agent schema for validation (full schema object) */
19
- agentSchema: z.record(z.unknown()).optional(),
20
- /** Optional agent schema version identifier (string) */
21
- agentSchemaVersion: z.string().optional(),
22
- /** Skip schema validation */
23
- skipSchema: z.boolean().default(false),
24
- /** Request timeout in milliseconds */
25
- requestTimeout: z.number().positive().default(30000),
26
- /** Connection timeout in milliseconds */
27
- connectTimeout: z.number().positive().default(10000),
28
- /** Maximum number of retry attempts */
29
- maxRetries: z.number().int().nonnegative().default(3),
30
- /** Initial delay between retries in milliseconds */
31
- initialRetryDelay: z.number().positive().default(1000),
32
- /** Maximum delay between retries in milliseconds */
33
- maxRetryDelay: z.number().positive().default(60000),
34
- /** Multiplier for exponential backoff */
35
- retryMultiplier: z.number().positive().default(2.0),
36
- });
37
- /**
38
- * Partial HTTP config schema for user input (before defaults are applied)
39
- */
40
- export const PartialHttpConfigSchema = z.object({
41
- apiUrl: z.string().url(),
42
- apiToken: z.string().min(1),
43
- agentId: z.string().optional(),
44
- agentVersion: z.string().optional(),
45
- agentName: z.string().optional(),
46
- agentDescription: z.string().optional(),
47
- agentSchema: z.record(z.unknown()).optional(),
48
- agentSchemaVersion: z.string().optional(),
49
- skipSchema: z.boolean().optional(),
50
- requestTimeout: z.number().positive().optional(),
51
- connectTimeout: z.number().positive().optional(),
52
- maxRetries: z.number().int().nonnegative().optional(),
53
- initialRetryDelay: z.number().positive().optional(),
54
- maxRetryDelay: z.number().positive().optional(),
55
- retryMultiplier: z.number().positive().optional(),
56
- });
57
- /**
58
- * Main SDK configuration schema
59
- */
60
- export const ConfigSchema = z.object({
61
- /** Transport type to use for span emission */
62
- transportType: z.enum(['stdio', 'http']).default('stdio'),
63
- /** Sampling rate (0.0 to 1.0) */
64
- sampleRate: z.number().min(0).max(1).default(1.0),
65
- /** Whether to capture span inputs */
66
- captureInputs: z.boolean().default(true),
67
- /** Whether to capture span outputs */
68
- captureOutputs: z.boolean().default(true),
69
- /** Maximum length for input strings */
70
- maxInputLength: z.number().int().positive().default(10000),
71
- /** Maximum length for output strings */
72
- maxOutputLength: z.number().int().positive().default(10000),
73
- /** HTTP transport configuration (required if transportType is 'http') */
74
- httpConfig: PartialHttpConfigSchema.optional(),
75
- });
76
- /**
77
- * Creates a validated configuration object by merging provided options with
78
- * environment variables and defaults.
79
- *
80
- * @param options - Partial configuration options
81
- * @returns Validated configuration object
82
- * @throws {z.ZodError} If configuration is invalid
83
- *
84
- * @example
85
- * ```typescript
86
- * const config = createConfig({
87
- * transportType: 'http',
88
- * httpConfig: {
89
- * apiUrl: 'https://api.prefactor.ai',
90
- * apiToken: process.env.PREFACTOR_API_TOKEN!,
91
- * }
92
- * });
93
- * ```
94
- */
95
- export function createConfig(options) {
96
- const config = {
97
- transportType: options?.transportType ??
98
- process.env.PREFACTOR_TRANSPORT ??
99
- 'stdio',
100
- sampleRate: options?.sampleRate ?? parseFloat(process.env.PREFACTOR_SAMPLE_RATE ?? '1.0'),
101
- captureInputs: options?.captureInputs ?? process.env.PREFACTOR_CAPTURE_INPUTS !== 'false',
102
- captureOutputs: options?.captureOutputs ?? process.env.PREFACTOR_CAPTURE_OUTPUTS !== 'false',
103
- maxInputLength: options?.maxInputLength ?? parseInt(process.env.PREFACTOR_MAX_INPUT_LENGTH ?? '10000', 10),
104
- maxOutputLength: options?.maxOutputLength ?? parseInt(process.env.PREFACTOR_MAX_OUTPUT_LENGTH ?? '10000', 10),
105
- httpConfig: options?.httpConfig,
106
- };
107
- // Validate and return
108
- return ConfigSchema.parse(config);
109
- }
110
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}