@prefactor/core 0.1.0

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 (43) hide show
  1. package/dist/config.d.ts +259 -0
  2. package/dist/config.d.ts.map +1 -0
  3. package/dist/config.js +110 -0
  4. package/dist/config.js.map +1 -0
  5. package/dist/index.cjs +642 -0
  6. package/dist/index.cjs.map +17 -0
  7. package/dist/index.d.ts +10 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +610 -0
  10. package/dist/index.js.map +17 -0
  11. package/dist/tracing/context.d.ts +53 -0
  12. package/dist/tracing/context.d.ts.map +1 -0
  13. package/dist/tracing/context.js +66 -0
  14. package/dist/tracing/context.js.map +1 -0
  15. package/dist/tracing/span.d.ts +68 -0
  16. package/dist/tracing/span.d.ts.map +1 -0
  17. package/dist/tracing/span.js +21 -0
  18. package/dist/tracing/span.js.map +1 -0
  19. package/dist/tracing/tracer.d.ts +100 -0
  20. package/dist/tracing/tracer.d.ts.map +1 -0
  21. package/dist/tracing/tracer.js +151 -0
  22. package/dist/tracing/tracer.js.map +1 -0
  23. package/dist/transport/base.d.ts +38 -0
  24. package/dist/transport/base.d.ts.map +1 -0
  25. package/dist/transport/base.js +2 -0
  26. package/dist/transport/base.js.map +1 -0
  27. package/dist/transport/http.d.ts +90 -0
  28. package/dist/transport/http.d.ts.map +1 -0
  29. package/dist/transport/http.js +399 -0
  30. package/dist/transport/http.js.map +1 -0
  31. package/dist/transport/stdio.d.ts +48 -0
  32. package/dist/transport/stdio.d.ts.map +1 -0
  33. package/dist/transport/stdio.js +71 -0
  34. package/dist/transport/stdio.js.map +1 -0
  35. package/dist/utils/logging.d.ts +29 -0
  36. package/dist/utils/logging.d.ts.map +1 -0
  37. package/dist/utils/logging.js +71 -0
  38. package/dist/utils/logging.js.map +1 -0
  39. package/dist/utils/serialization.d.ts +24 -0
  40. package/dist/utils/serialization.d.ts.map +1 -0
  41. package/dist/utils/serialization.js +60 -0
  42. package/dist/utils/serialization.js.map +1 -0
  43. package/package.json +36 -0
@@ -0,0 +1,259 @@
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
@@ -0,0 +1 @@
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 ADDED
@@ -0,0 +1,110 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}