@prefactor/sdk 0.1.2 → 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.
- package/dist/index.cjs +16 -1237
- package/dist/index.cjs.map +4 -17
- package/dist/index.d.ts +2 -81
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1239
- package/dist/index.js.map +4 -17
- package/package.json +6 -22
- package/LICENSE +0 -14
- package/README.md +0 -313
- package/dist/LICENSE +0 -14
- package/dist/README.md +0 -313
- package/dist/config.d.ts +0 -259
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -110
- package/dist/config.js.map +0 -1
- package/dist/instrumentation/langchain/metadata-extractor.d.ts +0 -20
- package/dist/instrumentation/langchain/metadata-extractor.d.ts.map +0 -1
- package/dist/instrumentation/langchain/metadata-extractor.js +0 -54
- package/dist/instrumentation/langchain/metadata-extractor.js.map +0 -1
- package/dist/instrumentation/langchain/middleware.d.ts +0 -84
- package/dist/instrumentation/langchain/middleware.d.ts.map +0 -1
- package/dist/instrumentation/langchain/middleware.js +0 -181
- package/dist/instrumentation/langchain/middleware.js.map +0 -1
- package/dist/package.json +0 -56
- package/dist/tracing/context.d.ts +0 -53
- package/dist/tracing/context.d.ts.map +0 -1
- package/dist/tracing/context.js +0 -65
- package/dist/tracing/context.js.map +0 -1
- package/dist/tracing/span.d.ts +0 -68
- package/dist/tracing/span.d.ts.map +0 -1
- package/dist/tracing/span.js +0 -21
- package/dist/tracing/span.js.map +0 -1
- package/dist/tracing/tracer.d.ts +0 -100
- package/dist/tracing/tracer.d.ts.map +0 -1
- package/dist/tracing/tracer.js +0 -151
- package/dist/tracing/tracer.js.map +0 -1
- package/dist/transport/base.d.ts +0 -38
- package/dist/transport/base.d.ts.map +0 -1
- package/dist/transport/base.js +0 -2
- package/dist/transport/base.js.map +0 -1
- package/dist/transport/http.d.ts +0 -90
- package/dist/transport/http.d.ts.map +0 -1
- package/dist/transport/http.js +0 -381
- package/dist/transport/http.js.map +0 -1
- package/dist/transport/stdio.d.ts +0 -48
- package/dist/transport/stdio.d.ts.map +0 -1
- package/dist/transport/stdio.js +0 -71
- package/dist/transport/stdio.js.map +0 -1
- package/dist/utils/logging.d.ts +0 -29
- package/dist/utils/logging.d.ts.map +0 -1
- package/dist/utils/logging.js +0 -71
- package/dist/utils/logging.js.map +0 -1
- package/dist/utils/serialization.d.ts +0 -24
- package/dist/utils/serialization.d.ts.map +0 -1
- package/dist/utils/serialization.js +0 -60
- 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
|
package/dist/config.d.ts.map
DELETED
|
@@ -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
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|