@prefactor/core 0.3.0 → 0.3.1
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 +21 -6
- package/dist/index.cjs.map +6 -5
- package/dist/index.js +21 -6
- package/dist/index.js.map +6 -5
- package/dist/transport/http/agent-instance-client.d.ts.map +1 -1
- package/dist/transport/http/agent-instance-client.js +6 -3
- package/dist/transport/http/agent-instance-client.js.map +1 -1
- package/dist/transport/http/agent-span-client.d.ts.map +1 -1
- package/dist/transport/http/agent-span-client.js +3 -1
- package/dist/transport/http/agent-span-client.js.map +1 -1
- package/dist/transport/http/idempotency.d.ts +2 -0
- package/dist/transport/http/idempotency.d.ts.map +1 -0
- package/dist/transport/http/idempotency.js +11 -0
- package/dist/transport/http/idempotency.js.map +1 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -570,6 +570,18 @@ function configureLogging() {
|
|
|
570
570
|
}
|
|
571
571
|
}
|
|
572
572
|
|
|
573
|
+
// packages/core/src/transport/http/idempotency.ts
|
|
574
|
+
var MAX_KEY_LENGTH = 64;
|
|
575
|
+
function ensureIdempotencyKey(key) {
|
|
576
|
+
if (key === undefined) {
|
|
577
|
+
return crypto.randomUUID();
|
|
578
|
+
}
|
|
579
|
+
if (key.length > MAX_KEY_LENGTH) {
|
|
580
|
+
throw new Error(`idempotency_key must be ≤${MAX_KEY_LENGTH} characters, got ${key.length}`);
|
|
581
|
+
}
|
|
582
|
+
return key;
|
|
583
|
+
}
|
|
584
|
+
|
|
573
585
|
// packages/core/src/transport/http/agent-instance-client.ts
|
|
574
586
|
class AgentInstanceClient {
|
|
575
587
|
httpClient;
|
|
@@ -579,19 +591,21 @@ class AgentInstanceClient {
|
|
|
579
591
|
register(payload) {
|
|
580
592
|
return this.httpClient.request("/api/v1/agent_instance/register", {
|
|
581
593
|
method: "POST",
|
|
582
|
-
body: payload
|
|
594
|
+
body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) }
|
|
583
595
|
});
|
|
584
596
|
}
|
|
585
597
|
start(agentInstanceId, options) {
|
|
598
|
+
const opts = options ?? {};
|
|
586
599
|
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {
|
|
587
600
|
method: "POST",
|
|
588
|
-
body:
|
|
601
|
+
body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) }
|
|
589
602
|
});
|
|
590
603
|
}
|
|
591
604
|
finish(agentInstanceId, options) {
|
|
605
|
+
const opts = options ?? {};
|
|
592
606
|
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {
|
|
593
607
|
method: "POST",
|
|
594
|
-
body:
|
|
608
|
+
body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) }
|
|
595
609
|
});
|
|
596
610
|
}
|
|
597
611
|
}
|
|
@@ -738,7 +752,7 @@ class AgentSpanClient {
|
|
|
738
752
|
create(payload) {
|
|
739
753
|
return this.httpClient.request("/api/v1/agent_spans", {
|
|
740
754
|
method: "POST",
|
|
741
|
-
body: payload
|
|
755
|
+
body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) }
|
|
742
756
|
});
|
|
743
757
|
}
|
|
744
758
|
async finish(spanId, timestamp, options = {}) {
|
|
@@ -747,7 +761,8 @@ class AgentSpanClient {
|
|
|
747
761
|
method: "POST",
|
|
748
762
|
body: {
|
|
749
763
|
timestamp,
|
|
750
|
-
...options
|
|
764
|
+
...options,
|
|
765
|
+
idempotency_key: ensureIdempotencyKey(options.idempotency_key)
|
|
751
766
|
}
|
|
752
767
|
});
|
|
753
768
|
} catch (error) {
|
|
@@ -1277,4 +1292,4 @@ function serializeValue(value, maxLength = 1e4) {
|
|
|
1277
1292
|
}
|
|
1278
1293
|
}
|
|
1279
1294
|
|
|
1280
|
-
//# debugId=
|
|
1295
|
+
//# debugId=4C0DC6DB86519AD564756E2164756E21
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/agent/instance-manager.ts", "../src/config.ts", "../src/create-core.ts", "../src/tracing/active-tracer.ts", "../src/lifecycle.ts", "../src/tracing/tracer.ts", "../src/tracing/context.ts", "../src/tracing/result-payload.ts", "../src/tracing/span.ts", "../src/queue/in-memory-queue.ts", "../src/queue/task-executor.ts", "../src/utils/logging.ts", "../src/transport/http/agent-instance-client.ts", "../src/transport/http/retry-policy.ts", "../src/transport/http/http-client.ts", "../src/transport/http/agent-span-client.ts", "../src/transport/http.ts", "../src/tracing/with-span.ts", "../src/client.ts", "../src/utils/serialization.ts"],
|
|
3
|
+
"sources": ["../src/agent/instance-manager.ts", "../src/config.ts", "../src/create-core.ts", "../src/tracing/active-tracer.ts", "../src/lifecycle.ts", "../src/tracing/tracer.ts", "../src/tracing/context.ts", "../src/tracing/result-payload.ts", "../src/tracing/span.ts", "../src/queue/in-memory-queue.ts", "../src/queue/task-executor.ts", "../src/utils/logging.ts", "../src/transport/http/idempotency.ts", "../src/transport/http/agent-instance-client.ts", "../src/transport/http/retry-policy.ts", "../src/transport/http/http-client.ts", "../src/transport/http/agent-span-client.ts", "../src/transport/http.ts", "../src/tracing/with-span.ts", "../src/client.ts", "../src/utils/serialization.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { AgentInstanceOptions, Transport } from '../transport/http.js';\n\nexport type AgentInstanceManagerOptions = {\n /** Allows starting instances before a schema has been registered. */\n allowUnregisteredSchema?: boolean;\n};\n\ntype AgentInstanceStartOptions = AgentInstanceOptions;\n\n/**\n * Coordinates agent instance lifecycle and schema registration for a transport.\n */\nexport class AgentInstanceManager {\n private registeredSchema: Record<string, unknown> | null = null;\n\n constructor(\n private transport: Transport,\n private options: AgentInstanceManagerOptions\n ) {}\n\n registerSchema(schema: Record<string, unknown>): void {\n if (this.registeredSchema === null) {\n this.registeredSchema = schema;\n this.transport.registerSchema(schema);\n return;\n }\n\n const existingSchema = stableStringify(this.registeredSchema);\n const incomingSchema = stableStringify(schema);\n if (existingSchema !== incomingSchema) {\n console.warn(\n 'A different schema was provided after registration; ignoring subsequent schema.'\n );\n }\n }\n\n startInstance(options: AgentInstanceStartOptions = {}): void {\n if (!this.options.allowUnregisteredSchema && this.registeredSchema === null) {\n console.warn('Schema must be registered before starting an agent instance.');\n return;\n }\n\n this.transport.startAgentInstance(options);\n }\n\n finishInstance(): void {\n this.transport.finishAgentInstance();\n }\n}\n\nfunction stableStringify(value: unknown): string {\n return JSON.stringify(normalizeValue(value));\n}\n\nfunction normalizeValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeValue(entry));\n }\n\n if (value && typeof value === 'object') {\n const normalized: Record<string, unknown> = {};\n const objectValue = value as Record<string, unknown>;\n const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));\n for (const key of keys) {\n normalized[key] = normalizeValue(objectValue[key]);\n }\n return normalized;\n }\n\n return value;\n}\n",
|
|
6
6
|
"import { z } from 'zod';\n\nconst DEFAULT_RETRY_ON_STATUS_CODES = [\n 429,\n ...Array.from({ length: 100 }, (_, index) => 500 + index),\n];\nconst HttpStatusCodeSchema = z.number().int().min(100).max(599);\n\n/**\n * Configuration schema for HTTP transport\n */\nexport const HttpTransportConfigSchema = z.object({\n /** API endpoint URL */\n apiUrl: z.string().url(),\n\n /** Authentication token */\n apiToken: z.string().min(1),\n\n /** Optional agent instance identifier (internal ID) */\n agentId: z.string().optional(),\n\n /** Agent identifier (external identifier); defaults to v1.0.0 when omitted */\n agentIdentifier: z.string().default('v1.0.0'),\n\n /** Optional agent name */\n agentName: z.string().optional(),\n\n /** Optional agent description */\n agentDescription: z.string().optional(),\n\n /** Optional agent schema for validation (full schema object) */\n agentSchema: z.record(z.string(), z.unknown()).optional(),\n\n /** Request timeout in milliseconds */\n requestTimeout: z.number().positive().default(30000),\n\n /** Maximum number of retry attempts */\n maxRetries: z.number().int().nonnegative().default(3),\n\n /** Initial delay between retries in milliseconds */\n initialRetryDelay: z.number().positive().default(1000),\n\n /** Maximum delay between retries in milliseconds */\n maxRetryDelay: z.number().positive().default(60000),\n\n /** Multiplier for exponential backoff */\n retryMultiplier: z.number().positive().default(2.0),\n\n /** Status codes that should trigger retries */\n retryOnStatusCodes: z.array(HttpStatusCodeSchema).default([...DEFAULT_RETRY_ON_STATUS_CODES]),\n});\n\nexport type HttpTransportConfig = z.infer<typeof HttpTransportConfigSchema>;\n\n/**\n * Partial HTTP config schema for user input (before defaults are applied)\n */\nexport const PartialHttpConfigSchema = z.object({\n apiUrl: z.string().url(),\n apiToken: z.string().min(1),\n agentId: z.string().optional(),\n agentIdentifier: z.string().optional(),\n agentName: z.string().optional(),\n agentDescription: z.string().optional(),\n agentSchema: z.record(z.string(), z.unknown()).optional(),\n requestTimeout: z.number().positive().optional(),\n maxRetries: z.number().int().nonnegative().optional(),\n initialRetryDelay: z.number().positive().optional(),\n maxRetryDelay: z.number().positive().optional(),\n retryMultiplier: z.number().positive().optional(),\n retryOnStatusCodes: z.array(HttpStatusCodeSchema).optional(),\n});\n\nexport type PartialHttpConfig = z.infer<typeof PartialHttpConfigSchema>;\n\n/**\n * Main SDK configuration schema\n */\nexport const ConfigSchema = z.object({\n /** Transport type to use for span emission */\n transportType: z.enum(['http']).default('http'),\n\n /** Sampling rate (0.0 to 1.0) */\n sampleRate: z.number().min(0).max(1).default(1.0),\n\n /** Whether to capture span inputs */\n captureInputs: z.boolean().default(true),\n\n /** Whether to capture span outputs */\n captureOutputs: z.boolean().default(true),\n\n /** Maximum length for input strings */\n maxInputLength: z.number().int().positive().default(10000),\n\n /** Maximum length for output strings */\n maxOutputLength: z.number().int().positive().default(10000),\n\n /** HTTP transport configuration (required if transportType is 'http') */\n httpConfig: PartialHttpConfigSchema.optional(),\n});\n\nexport type Config = z.infer<typeof ConfigSchema>;\n\n/**\n * Creates a validated configuration object by merging provided options with\n * environment variables and defaults.\n *\n * @param options - Partial configuration options\n * @returns Validated configuration object\n * @throws {z.ZodError} If configuration is invalid\n *\n * @example\n * ```typescript\n * const config = createConfig({\n * transportType: 'http',\n * httpConfig: {\n * apiUrl: 'https://app.prefactorai.com',\n * apiToken: process.env.PREFACTOR_API_TOKEN!,\n * }\n * });\n * ```\n */\nexport function createConfig(options?: Partial<Config>): Config {\n const retryOnStatusCodesFromEnv = parseRetryOnStatusCodesEnv(\n process.env.PREFACTOR_RETRY_ON_STATUS_CODES\n );\n\n const config = {\n transportType: options?.transportType ?? 'http',\n sampleRate: options?.sampleRate ?? parseFloat(process.env.PREFACTOR_SAMPLE_RATE ?? '1.0'),\n captureInputs: options?.captureInputs ?? process.env.PREFACTOR_CAPTURE_INPUTS !== 'false',\n captureOutputs: options?.captureOutputs ?? process.env.PREFACTOR_CAPTURE_OUTPUTS !== 'false',\n maxInputLength:\n options?.maxInputLength ?? parseInt(process.env.PREFACTOR_MAX_INPUT_LENGTH ?? '10000', 10),\n maxOutputLength:\n options?.maxOutputLength ?? parseInt(process.env.PREFACTOR_MAX_OUTPUT_LENGTH ?? '10000', 10),\n httpConfig: options?.httpConfig\n ? {\n ...options.httpConfig,\n retryOnStatusCodes: options.httpConfig.retryOnStatusCodes ?? retryOnStatusCodesFromEnv,\n }\n : undefined,\n };\n\n // Validate and return\n return ConfigSchema.parse(config);\n}\n\nfunction parseRetryOnStatusCodesEnv(value: string | undefined): number[] | undefined {\n if (!value) {\n return undefined;\n }\n\n const parsedCodes = value\n .split(',')\n .map((status) => status.trim())\n .filter((status) => /^\\d{3}$/.test(status))\n .map((status) => Number(status))\n .filter((status) => status >= 100 && status <= 599);\n\n return parsedCodes.length > 0 ? parsedCodes : undefined;\n}\n",
|
|
@@ -14,16 +14,17 @@
|
|
|
14
14
|
"import type { Queue, QueueGetResult } from './base.js';\n\ntype QueueEntry<T> = {\n item: T;\n};\n\nexport class InMemoryQueue<T> implements Queue<T> {\n private items: QueueEntry<T>[] = [];\n private waiters: Array<(result: QueueGetResult<T>) => void> = [];\n private isClosed = false;\n\n async put(item: T): Promise<void> {\n if (this.isClosed) {\n throw new Error('Cannot put item into a closed queue');\n }\n\n const waiter = this.waiters.shift();\n if (waiter) {\n waiter({ done: false, item });\n return;\n }\n\n this.items.push({ item });\n }\n\n async get(): Promise<QueueGetResult<T>> {\n if (this.items.length > 0) {\n const entry = this.items.shift();\n if (entry) {\n return { done: false, item: entry.item };\n }\n }\n\n if (this.isClosed) {\n return { done: true };\n }\n\n return new Promise<QueueGetResult<T>>((resolve) => {\n this.waiters.push(resolve);\n });\n }\n\n close(): void {\n if (this.isClosed) {\n return;\n }\n\n this.isClosed = true;\n while (this.waiters.length > 0) {\n const waiter = this.waiters.shift();\n if (waiter) {\n waiter({ done: true });\n }\n }\n }\n\n size(): number {\n return this.items.length;\n }\n}\n",
|
|
15
15
|
"import type { Queue, TaskExecutorOptions } from './base.js';\n\nconst DEFAULT_WORKER_COUNT = 1;\nconst DEFAULT_MAX_RETRIES = 0;\nconst DEFAULT_RETRY_DELAY_MS = 0;\n\nexport class TaskExecutor<T> {\n private isRunning = false;\n private workerPromises: Promise<void>[] = [];\n private workerCount: number;\n private maxRetries: number;\n private retryDelayMs: number;\n private onError?: (error: unknown, item: T) => void | Promise<void>;\n\n constructor(\n private queue: Queue<T>,\n private handler: (item: T) => Promise<void>,\n options: TaskExecutorOptions<T> = {}\n ) {\n this.workerCount = Math.max(options.workerCount ?? DEFAULT_WORKER_COUNT, 1);\n this.maxRetries = Math.max(options.maxRetries ?? DEFAULT_MAX_RETRIES, 0);\n this.retryDelayMs = Math.max(options.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS, 0);\n this.onError = options.onError;\n }\n\n start(): void {\n if (this.isRunning) {\n return;\n }\n\n this.isRunning = true;\n this.workerPromises = Array.from({ length: this.workerCount }, () => this.runWorker());\n }\n\n async stop(): Promise<void> {\n if (!this.isRunning) {\n return;\n }\n\n this.isRunning = false;\n this.queue.close();\n await Promise.all(this.workerPromises);\n this.workerPromises = [];\n }\n\n private async runWorker(): Promise<void> {\n while (true) {\n const result = await this.queue.get();\n if (result.done) {\n return;\n }\n\n await this.executeWithRetry(result.item);\n }\n }\n\n private async executeWithRetry(item: T): Promise<void> {\n let attempt = 0;\n\n while (attempt <= this.maxRetries) {\n try {\n await this.handler(item);\n return;\n } catch (error) {\n if (attempt >= this.maxRetries) {\n await this.safeOnError(error, item);\n return;\n }\n\n if (this.retryDelayMs > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.retryDelayMs));\n }\n }\n\n attempt += 1;\n }\n }\n\n private async safeOnError(error: unknown, item: T): Promise<void> {\n if (!this.onError) {\n return;\n }\n\n try {\n await this.onError(error, item);\n } catch {\n return;\n }\n }\n}\n",
|
|
16
16
|
"/**\n * Log levels for the SDK\n */\nenum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n}\n\n/**\n * Logger class for the Prefactor SDK\n */\nclass Logger {\n private static level: LogLevel = (() => {\n const level = process.env.PREFACTOR_LOG_LEVEL?.toUpperCase();\n if (level && level in LogLevel) {\n return LogLevel[level as keyof typeof LogLevel];\n }\n return LogLevel.INFO;\n })();\n\n constructor(private namespace: string) {}\n\n debug(message: string, ...args: unknown[]): void {\n if (Logger.level <= LogLevel.DEBUG) {\n console.debug(`[prefactor:${this.namespace}] ${message}`, ...args);\n }\n }\n\n info(message: string, ...args: unknown[]): void {\n if (Logger.level <= LogLevel.INFO) {\n console.info(`[prefactor:${this.namespace}] ${message}`, ...args);\n }\n }\n\n warn(message: string, ...args: unknown[]): void {\n if (Logger.level <= LogLevel.WARN) {\n console.warn(`[prefactor:${this.namespace}] ${message}`, ...args);\n }\n }\n\n error(message: string, ...args: unknown[]): void {\n if (Logger.level <= LogLevel.ERROR) {\n console.error(`[prefactor:${this.namespace}] ${message}`, ...args);\n }\n }\n\n /**\n * Set the global log level\n */\n static setLevel(level: 'debug' | 'info' | 'warn' | 'error'): void {\n const levelMap = {\n debug: LogLevel.DEBUG,\n info: LogLevel.INFO,\n warn: LogLevel.WARN,\n error: LogLevel.ERROR,\n };\n Logger.level = levelMap[level];\n }\n}\n\n/**\n * Get a logger instance for a specific namespace\n *\n * @param namespace - The namespace for this logger\n * @returns Logger instance\n */\nexport function getLogger(namespace: string): Logger {\n return new Logger(namespace);\n}\n\n/**\n * Configure logging based on environment variables\n */\nexport function configureLogging(): void {\n const level = process.env.PREFACTOR_LOG_LEVEL?.toLowerCase() as\n | 'debug'\n | 'info'\n | 'warn'\n | 'error'\n | undefined;\n\n if (level) {\n Logger.setLevel(level);\n }\n}\n",
|
|
17
|
-
"
|
|
17
|
+
"const MAX_KEY_LENGTH = 64;\n\nexport function ensureIdempotencyKey(key?: string): string {\n if (key === undefined) {\n return crypto.randomUUID();\n }\n if (key.length > MAX_KEY_LENGTH) {\n throw new Error(`idempotency_key must be ≤${MAX_KEY_LENGTH} characters, got ${key.length}`);\n }\n return key;\n}\n",
|
|
18
|
+
"import type { HttpRequester } from './http-client.js';\nimport { ensureIdempotencyKey } from './idempotency.js';\n\nexport type AgentInstanceRegisterPayload = {\n agent_id?: string;\n agent_version?: {\n external_identifier: string;\n name: string;\n description: string;\n };\n agent_schema_version?: Record<string, unknown>;\n idempotency_key?: string;\n};\n\nexport type AgentInstanceResponse = {\n details?: {\n id?: string;\n };\n};\n\nexport type AgentInstanceStartOptions = {\n timestamp?: string;\n idempotency_key?: string;\n};\n\nexport type AgentInstanceFinishOptions = {\n status?: 'complete' | 'failed' | 'cancelled';\n timestamp?: string;\n idempotency_key?: string;\n};\n\nexport class AgentInstanceClient {\n constructor(private readonly httpClient: HttpRequester) {}\n\n register(payload: AgentInstanceRegisterPayload): Promise<AgentInstanceResponse> {\n return this.httpClient.request('/api/v1/agent_instance/register', {\n method: 'POST',\n body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) },\n });\n }\n\n start(\n agentInstanceId: string,\n options?: AgentInstanceStartOptions\n ): Promise<AgentInstanceResponse> {\n const opts = options ?? {};\n return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {\n method: 'POST',\n body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) },\n });\n }\n\n finish(\n agentInstanceId: string,\n options?: AgentInstanceFinishOptions\n ): Promise<AgentInstanceResponse> {\n const opts = options ?? {};\n return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {\n method: 'POST',\n body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) },\n });\n }\n}\n",
|
|
18
19
|
"import type { HttpTransportConfig } from '../../config.js';\n\nconst JITTER_MIN = 0.5;\n\nexport function shouldRetryStatusCode(statusCode: number, retryOnStatusCodes: number[]): boolean {\n return retryOnStatusCodes.includes(statusCode);\n}\n\nexport function calculateRetryDelay(\n attempt: number,\n config: Pick<HttpTransportConfig, 'initialRetryDelay' | 'maxRetryDelay' | 'retryMultiplier'>,\n random: () => number = Math.random\n): number {\n const baseDelay = Math.min(\n config.initialRetryDelay * config.retryMultiplier ** attempt,\n config.maxRetryDelay\n );\n const jitterMultiplier = JITTER_MIN + random() * JITTER_MIN;\n return Math.round(baseDelay * jitterMultiplier);\n}\n",
|
|
19
20
|
"import type { HttpTransportConfig } from '../../config.js';\nimport { calculateRetryDelay, shouldRetryStatusCode } from './retry-policy.js';\n\nexport type FetchLike = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;\n\nexport type HttpClientDependencies = {\n fetchFn?: FetchLike;\n sleep?: (delayMs: number) => Promise<void>;\n random?: () => number;\n};\n\nexport type HttpRequestOptions = Omit<RequestInit, 'body' | 'headers' | 'signal'> & {\n body?: unknown;\n headers?: RequestInit['headers'];\n timeoutMs?: number;\n};\n\nexport interface HttpRequester {\n request<TResponse = unknown>(path: string, options?: HttpRequestOptions): Promise<TResponse>;\n}\n\ntype HttpClientErrorOptions = {\n url: string;\n method: string;\n status?: number;\n statusText?: string;\n responseBody?: unknown;\n retryable: boolean;\n cause?: unknown;\n};\n\nexport class HttpClientError extends Error {\n readonly url: string;\n readonly method: string;\n readonly status?: number;\n readonly statusText?: string;\n readonly responseBody?: unknown;\n readonly retryable: boolean;\n\n constructor(message: string, options: HttpClientErrorOptions) {\n super(message, { cause: options.cause });\n this.name = 'HttpClientError';\n this.url = options.url;\n this.method = options.method;\n this.status = options.status;\n this.statusText = options.statusText;\n this.responseBody = options.responseBody;\n this.retryable = options.retryable;\n }\n}\n\nexport class HttpClient {\n private readonly fetchFn: FetchLike;\n private readonly sleep: (delayMs: number) => Promise<void>;\n private readonly random: () => number;\n\n constructor(\n private readonly config: HttpTransportConfig,\n dependencies: HttpClientDependencies = {}\n ) {\n this.fetchFn = dependencies.fetchFn ?? fetch;\n this.sleep =\n dependencies.sleep ?? ((delayMs) => new Promise((resolve) => setTimeout(resolve, delayMs)));\n this.random = dependencies.random ?? Math.random;\n }\n\n async request<TResponse = unknown>(\n path: string,\n options: HttpRequestOptions = {}\n ): Promise<TResponse> {\n const url = new URL(path, this.config.apiUrl).toString();\n const method = options.method ?? 'GET';\n let attempt = 0;\n\n while (true) {\n const headers = new Headers(options.headers);\n headers.set('Authorization', `Bearer ${this.config.apiToken}`);\n if (options.body !== undefined && !headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json');\n }\n\n const requestInit: RequestInit = {\n ...options,\n method,\n headers,\n body: options.body === undefined ? undefined : JSON.stringify(options.body),\n signal: AbortSignal.timeout(options.timeoutMs ?? this.config.requestTimeout),\n };\n\n try {\n const response = await this.fetchFn(url, requestInit);\n if (response.ok) {\n return (await parseResponseBody(response)) as TResponse;\n }\n\n const responseBody = await parseResponseBody(response);\n const canRetry =\n attempt < this.config.maxRetries &&\n shouldRetryStatusCode(response.status, this.config.retryOnStatusCodes);\n\n if (canRetry) {\n const delayMs = calculateRetryDelay(attempt, this.config, this.random);\n await this.sleep(delayMs);\n attempt += 1;\n continue;\n }\n\n throw new HttpClientError(`HTTP request failed with status ${response.status}`, {\n url,\n method,\n status: response.status,\n statusText: response.statusText,\n responseBody,\n retryable: shouldRetryStatusCode(response.status, this.config.retryOnStatusCodes),\n });\n } catch (error) {\n if (error instanceof HttpClientError) {\n throw error;\n }\n\n const canRetry = attempt < this.config.maxRetries && isRetryableNetworkError(error);\n if (canRetry) {\n const delayMs = calculateRetryDelay(attempt, this.config, this.random);\n await this.sleep(delayMs);\n attempt += 1;\n continue;\n }\n\n throw new HttpClientError('HTTP request failed due to network error', {\n url,\n method,\n retryable: false,\n cause: error,\n });\n }\n }\n }\n}\n\nfunction isRetryableNetworkError(error: unknown): boolean {\n if (error instanceof TypeError) {\n return true;\n }\n\n if (\n error instanceof DOMException &&\n (error.name === 'AbortError' || error.name === 'TimeoutError')\n ) {\n return true;\n }\n\n if (error instanceof Error && (error.name === 'AbortError' || error.name === 'TimeoutError')) {\n return true;\n }\n\n return false;\n}\n\nasync function parseResponseBody(response: Response): Promise<unknown> {\n const bodyText = await response.text();\n if (!bodyText) {\n return null;\n }\n\n const contentType = response.headers.get('content-type') ?? '';\n if (contentType.includes('application/json')) {\n try {\n return JSON.parse(bodyText) as unknown;\n } catch {\n return bodyText;\n }\n }\n\n try {\n return JSON.parse(bodyText) as unknown;\n } catch {\n return bodyText;\n }\n}\n",
|
|
20
|
-
"import { HttpClientError, type HttpRequester } from './http-client.js';\n\nexport type AgentSpanStatus = 'active' | 'complete' | 'failed';\n\nexport type AgentSpanFinishStatus = 'complete' | 'failed' | 'cancelled';\n\nexport type AgentSpanFinishOptions = {\n status?: AgentSpanFinishStatus;\n result_payload?: Record<string, unknown>;\n idempotency_key?: string;\n};\n\nexport type AgentSpanCreatePayload = {\n details: {\n agent_instance_id: string | null;\n schema_name: string;\n status: AgentSpanStatus;\n payload: Record<string, unknown>;\n result_payload?: Record<string, unknown>;\n parent_span_id: string | null;\n started_at: string;\n finished_at: string | null;\n };\n idempotency_key?: string;\n};\n\nexport type AgentSpanResponse = {\n details?: {\n id?: string;\n started_at?: string;\n };\n};\n\nexport class AgentSpanClient {\n constructor(private readonly httpClient: HttpRequester) {}\n\n create(payload: AgentSpanCreatePayload): Promise<AgentSpanResponse> {\n return this.httpClient.request('/api/v1/agent_spans', {\n method: 'POST',\n body: payload,\n });\n }\n\n async finish(\n spanId: string,\n timestamp: string,\n options: AgentSpanFinishOptions = {}\n ): Promise<void> {\n try {\n await this.httpClient.request(`/api/v1/agent_spans/${spanId}/finish`, {\n method: 'POST',\n body: {\n timestamp,\n ...options,\n },\n });\n } catch (error) {\n if (\n error instanceof HttpClientError &&\n error.status === 409 &&\n isAlreadyFinishedError(error.responseBody)\n ) {\n return;\n }\n\n throw error;\n }\n }\n}\n\nfunction isAlreadyFinishedError(responseBody: unknown): boolean {\n if (!responseBody || typeof responseBody !== 'object') {\n return false;\n }\n\n const payload = responseBody as Record<string, unknown>;\n return payload.code === 'invalid_action';\n}\n",
|
|
21
|
+
"import { HttpClientError, type HttpRequester } from './http-client.js';\nimport { ensureIdempotencyKey } from './idempotency.js';\n\nexport type AgentSpanStatus = 'active' | 'complete' | 'failed';\n\nexport type AgentSpanFinishStatus = 'complete' | 'failed' | 'cancelled';\n\nexport type AgentSpanFinishOptions = {\n status?: AgentSpanFinishStatus;\n result_payload?: Record<string, unknown>;\n idempotency_key?: string;\n};\n\nexport type AgentSpanCreatePayload = {\n details: {\n agent_instance_id: string | null;\n schema_name: string;\n status: AgentSpanStatus;\n payload: Record<string, unknown>;\n result_payload?: Record<string, unknown>;\n parent_span_id: string | null;\n started_at: string;\n finished_at: string | null;\n };\n idempotency_key?: string;\n};\n\nexport type AgentSpanResponse = {\n details?: {\n id?: string;\n started_at?: string;\n };\n};\n\nexport class AgentSpanClient {\n constructor(private readonly httpClient: HttpRequester) {}\n\n create(payload: AgentSpanCreatePayload): Promise<AgentSpanResponse> {\n return this.httpClient.request('/api/v1/agent_spans', {\n method: 'POST',\n body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) },\n });\n }\n\n async finish(\n spanId: string,\n timestamp: string,\n options: AgentSpanFinishOptions = {}\n ): Promise<void> {\n try {\n await this.httpClient.request(`/api/v1/agent_spans/${spanId}/finish`, {\n method: 'POST',\n body: {\n timestamp,\n ...options,\n idempotency_key: ensureIdempotencyKey(options.idempotency_key),\n },\n });\n } catch (error) {\n if (\n error instanceof HttpClientError &&\n error.status === 409 &&\n isAlreadyFinishedError(error.responseBody)\n ) {\n return;\n }\n\n throw error;\n }\n }\n}\n\nfunction isAlreadyFinishedError(responseBody: unknown): boolean {\n if (!responseBody || typeof responseBody !== 'object') {\n return false;\n }\n\n const payload = responseBody as Record<string, unknown>;\n return payload.code === 'invalid_action';\n}\n",
|
|
21
22
|
"import type { HttpTransportConfig } from '../config.js';\nimport type { TransportAction } from '../queue/actions.js';\nimport { InMemoryQueue } from '../queue/in-memory-queue.js';\nimport { TaskExecutor } from '../queue/task-executor.js';\nimport { buildSpanResultPayload } from '../tracing/result-payload.js';\nimport type { Span } from '../tracing/span.js';\nimport { getLogger } from '../utils/logging.js';\nimport { AgentInstanceClient } from './http/agent-instance-client.js';\nimport {\n AgentSpanClient,\n type AgentSpanCreatePayload,\n type AgentSpanFinishStatus,\n type AgentSpanStatus,\n} from './http/agent-span-client.js';\nimport { HttpClient } from './http/http-client.js';\n\nexport type AgentInstanceOptions = {\n /** Existing backend agent id, when available. */\n agentId?: string;\n /** External agent version identifier. */\n agentIdentifier?: string;\n /** Human-readable agent name. */\n agentName?: string;\n /** Human-readable agent description. */\n agentDescription?: string;\n};\n\n/**\n * Transport contract used by the tracer and runtime.\n */\nexport interface Transport {\n emit(span: Span): void;\n\n finishSpan(spanId: string, endTime: number, options?: FinishSpanOptions): void;\n\n startAgentInstance(options?: AgentInstanceOptions): void;\n\n finishAgentInstance(): void;\n\n registerSchema(schema: Record<string, unknown>): void;\n\n close(): void | Promise<void>;\n}\n\nexport type FinishSpanOptions = {\n /** Final status sent to backend when finishing deferred spans. */\n status?: AgentSpanFinishStatus;\n /** Optional normalized payload included in finish request. */\n resultPayload?: Record<string, unknown>;\n};\n\ntype PendingFinish = {\n endTime: number;\n} & FinishSpanOptions;\n\nconst logger = getLogger('http-transport');\n\n/**\n * HTTP-backed transport that serializes span operations through an internal queue.\n */\nexport class HttpTransport implements Transport {\n private closed = false;\n private readonly actionQueue = new InMemoryQueue<TransportAction>();\n private readonly taskExecutor: TaskExecutor<TransportAction>;\n private readonly agentInstanceClient: AgentInstanceClient;\n private readonly agentSpanClient: AgentSpanClient;\n private previousAgentSchema: string | null = null;\n private requiresNewAgentIdentifier = false;\n private previousAgentIdentifier: string | null = null;\n private agentInstanceId: string | null = null;\n private spanIdMap = new Map<string, string>();\n private pendingFinishes = new Map<string, PendingFinish>();\n private pendingChildren = new Map<string, Span[]>();\n\n constructor(private config: HttpTransportConfig) {\n const httpClient = new HttpClient(config);\n this.agentInstanceClient = new AgentInstanceClient(httpClient);\n this.agentSpanClient = new AgentSpanClient(httpClient);\n this.taskExecutor = new TaskExecutor(this.actionQueue, this.processAction, {\n workerCount: 1,\n onError: async (error) => {\n logger.error('Error processing HTTP action:', error);\n },\n });\n this.taskExecutor.start();\n }\n\n registerSchema(schema: Record<string, unknown>): void {\n this.enqueue({ type: 'schema_register', schema });\n }\n\n startAgentInstance(options?: AgentInstanceOptions): void {\n this.enqueue({ type: 'agent_start', options });\n }\n\n finishAgentInstance(): void {\n this.enqueue({ type: 'agent_finish' });\n }\n\n emit(span: Span): void {\n this.enqueue({ type: 'span_end', span });\n }\n\n finishSpan(spanId: string, endTime: number, options?: FinishSpanOptions): void {\n this.enqueue({\n type: 'span_finish',\n spanId,\n endTime,\n status: options?.status,\n resultPayload: options?.resultPayload,\n });\n }\n\n async close(): Promise<void> {\n this.closed = true;\n await this.taskExecutor.stop();\n if (this.pendingFinishes.size > 0) {\n logger.warn(\n `Transport closed with ${this.pendingFinishes.size} pending span finish(es) that could not be processed`\n );\n this.pendingFinishes.clear();\n }\n\n if (this.pendingChildren.size > 0) {\n logger.warn(\n `Transport closed with ${this.pendingChildren.size} unresolved parent span reference(s)`\n );\n this.pendingChildren.clear();\n }\n }\n\n private enqueue(action: TransportAction): void {\n if (this.closed) {\n return;\n }\n\n this.actionQueue.put(action).catch((error: unknown) => {\n logger.error('Failed to enqueue HTTP action:', error);\n });\n }\n\n private processAction = async (action: TransportAction): Promise<void> => {\n switch (action.type) {\n case 'schema_register': {\n const incomingSchema = JSON.stringify(action.schema);\n if (this.previousAgentSchema !== null && this.previousAgentSchema !== incomingSchema) {\n this.requiresNewAgentIdentifier = true;\n this.previousAgentIdentifier = this.config.agentIdentifier;\n this.agentInstanceId = null;\n }\n this.previousAgentSchema = incomingSchema;\n this.config.agentSchema = action.schema;\n return;\n }\n case 'agent_start': {\n if (this.requiresNewAgentIdentifier) {\n const nextAgentIdentifier = action.options?.agentIdentifier;\n if (\n nextAgentIdentifier === undefined ||\n nextAgentIdentifier === this.previousAgentIdentifier\n ) {\n logger.error('Schema changed; starting an agent requires a new agentIdentifier value.');\n return;\n }\n\n this.requiresNewAgentIdentifier = false;\n this.previousAgentIdentifier = null;\n }\n\n if (action.options?.agentId !== undefined) this.config.agentId = action.options.agentId;\n if (action.options?.agentIdentifier !== undefined) {\n this.config.agentIdentifier = action.options.agentIdentifier;\n }\n if (action.options?.agentName !== undefined)\n this.config.agentName = action.options.agentName;\n if (action.options?.agentDescription !== undefined) {\n this.config.agentDescription = action.options.agentDescription;\n }\n\n await this.startAgentInstanceHttp();\n return;\n }\n case 'agent_finish':\n await this.finishAgentInstanceHttp();\n return;\n case 'span_end':\n if (!this.agentInstanceId) {\n await this.ensureAgentRegistered();\n }\n\n if (action.span.parentSpanId && !this.spanIdMap.has(action.span.parentSpanId)) {\n this.queuePendingChild(action.span.parentSpanId, action.span);\n return;\n }\n\n await this.sendSpan(action.span);\n return;\n case 'span_finish': {\n if (this.spanIdMap.has(action.spanId)) {\n await this.finishSpanHttp(action.spanId, action.endTime, {\n status: action.status,\n resultPayload: action.resultPayload,\n });\n } else {\n this.pendingFinishes.set(action.spanId, {\n endTime: action.endTime,\n status: action.status,\n resultPayload: action.resultPayload,\n });\n }\n return;\n }\n }\n };\n\n private async processPendingFinishes(spanId: string): Promise<void> {\n const pendingFinish = this.pendingFinishes.get(spanId);\n if (pendingFinish === undefined) {\n return;\n }\n\n try {\n await this.finishSpanHttp(spanId, pendingFinish.endTime, {\n status: pendingFinish.status,\n resultPayload: pendingFinish.resultPayload,\n });\n this.pendingFinishes.delete(spanId);\n } catch (error) {\n logger.error('Error processing pending span finish:', error);\n }\n }\n\n private async sendSpan(span: Span): Promise<void> {\n const payload = this.transformSpanToApiFormat(span);\n\n try {\n const response = await this.agentSpanClient.create(payload);\n const backendSpanId = response.details?.id;\n if (!backendSpanId) {\n return;\n }\n\n this.spanIdMap.set(span.spanId, backendSpanId);\n await this.processPendingFinishes(span.spanId);\n await this.processPendingChildren(span.spanId);\n } catch (error) {\n logger.error('Error sending span:', error);\n }\n }\n\n private queuePendingChild(parentSpanId: string, childSpan: Span): void {\n const existingChildren = this.pendingChildren.get(parentSpanId) ?? [];\n existingChildren.push(childSpan);\n this.pendingChildren.set(parentSpanId, existingChildren);\n }\n\n private async processPendingChildren(parentSpanId: string): Promise<void> {\n const waitingChildren = this.pendingChildren.get(parentSpanId);\n if (!waitingChildren || waitingChildren.length === 0) {\n return;\n }\n\n this.pendingChildren.delete(parentSpanId);\n for (const childSpan of waitingChildren) {\n await this.sendSpan(childSpan);\n }\n }\n\n private transformSpanToApiFormat(span: Span): AgentSpanCreatePayload {\n const startedAt = new Date(span.startTime).toISOString();\n const finishedAt = span.endTime ? new Date(span.endTime).toISOString() : null;\n const apiStatus = this.mapStatusForApi(span.status);\n const resultPayload = apiStatus === 'active' ? undefined : buildSpanResultPayload(span);\n\n const payload: Record<string, unknown> = {\n span_id: span.spanId,\n trace_id: span.traceId,\n name: span.name,\n status: apiStatus,\n inputs: span.inputs,\n outputs: span.outputs,\n metadata: span.metadata,\n token_usage: null,\n error: null,\n };\n\n if (span.tokenUsage) {\n payload.token_usage = {\n prompt_tokens: span.tokenUsage.promptTokens,\n completion_tokens: span.tokenUsage.completionTokens,\n total_tokens: span.tokenUsage.totalTokens,\n };\n }\n\n if (span.error) {\n payload.error = {\n error_type: span.error.errorType,\n message: span.error.message,\n stacktrace: span.error.stacktrace,\n };\n }\n\n const parentSpanId = span.parentSpanId ? (this.spanIdMap.get(span.parentSpanId) ?? null) : null;\n\n return {\n details: {\n agent_instance_id: this.agentInstanceId,\n schema_name: span.spanType,\n status: apiStatus,\n payload,\n result_payload: resultPayload,\n parent_span_id: parentSpanId,\n started_at: startedAt,\n finished_at: finishedAt,\n },\n };\n }\n\n private mapStatusForApi(status: Span['status']): AgentSpanStatus {\n switch (status) {\n case 'running':\n return 'active';\n case 'success':\n return 'complete';\n case 'error':\n return 'failed';\n default:\n return 'active';\n }\n }\n\n private async ensureAgentRegistered(): Promise<boolean> {\n if (this.agentInstanceId) {\n return true;\n }\n\n const payload: Record<string, unknown> = {};\n\n if (this.config.agentId) payload.agent_id = this.config.agentId;\n if (this.config.agentIdentifier) {\n payload.agent_version = {\n external_identifier: this.config.agentIdentifier,\n name: this.config.agentName || 'Agent',\n description: this.config.agentDescription || '',\n };\n }\n\n if (this.config.agentSchema) {\n payload.agent_schema_version = this.config.agentSchema;\n }\n\n try {\n const data = await this.agentInstanceClient.register(payload);\n this.agentInstanceId = data.details?.id ?? null;\n } catch (error) {\n logger.error('Error registering agent:', error);\n }\n\n return this.agentInstanceId !== null;\n }\n\n private async startAgentInstanceHttp(): Promise<void> {\n const isRegistered = await this.ensureAgentRegistered();\n if (!isRegistered || !this.agentInstanceId) {\n logger.error('Cannot start agent instance: not registered');\n return;\n }\n\n try {\n await this.agentInstanceClient.start(this.agentInstanceId);\n } catch (error) {\n logger.error('Error starting agent instance:', error);\n }\n }\n\n private async finishAgentInstanceHttp(): Promise<void> {\n if (!this.agentInstanceId) {\n logger.error('Cannot finish agent instance: not registered');\n return;\n }\n\n try {\n await this.agentInstanceClient.finish(this.agentInstanceId);\n } catch (error) {\n logger.error('Error finishing agent instance:', error);\n }\n\n this.agentInstanceId = null;\n }\n\n private async finishSpanHttp(\n spanId: string,\n endTime: number,\n options?: FinishSpanOptions\n ): Promise<void> {\n const backendSpanId = this.spanIdMap.get(spanId);\n if (!backendSpanId) {\n logger.warn(`Cannot finish span ${spanId}: backend ID not found`);\n return;\n }\n\n try {\n await this.agentSpanClient.finish(backendSpanId, new Date(endTime).toISOString(), {\n status: options?.status,\n result_payload: options?.resultPayload ?? {},\n });\n } catch (error) {\n logger.error('Error finishing span:', error);\n }\n }\n}\n",
|
|
22
23
|
"import { getActiveTracer } from './active-tracer.js';\nimport { SpanContext } from './context.js';\nimport type { StartSpanOptions, Tracer } from './tracer.js';\n\n/**\n * Runs work inside a new span using an explicit tracer.\n *\n * @param tracer - Tracer to use for span lifecycle.\n * @param options - Span creation options.\n * @param fn - Work to execute within the span context.\n */\nexport async function withSpan<T>(\n tracer: Tracer,\n options: StartSpanOptions,\n fn: () => Promise<T> | T\n): Promise<T>;\n\n/**\n * Runs work inside a new span using the globally active tracer.\n *\n * Throws when no active tracer exists.\n *\n * @param options - Span creation options.\n * @param fn - Work to execute within the span context.\n */\nexport async function withSpan<T>(options: StartSpanOptions, fn: () => Promise<T> | T): Promise<T>;\n\n/**\n * Wraps sync/async work in a span and automatically captures outputs or errors.\n */\nexport async function withSpan<T>(\n tracerOrOptions: Tracer | StartSpanOptions,\n optionsOrFn: StartSpanOptions | (() => Promise<T> | T),\n maybeFn?: () => Promise<T> | T\n): Promise<T> {\n const { tracer, options, fn } = resolveArgs(tracerOrOptions, optionsOrFn, maybeFn);\n const span = tracer.startSpan(options);\n\n try {\n const result = await SpanContext.runAsync(span, () => Promise.resolve(fn()));\n tracer.endSpan(span, { outputs: toSpanOutputs(result) });\n return result;\n } catch (error) {\n const normalizedError = error instanceof Error ? error : new Error(String(error));\n tracer.endSpan(span, { error: normalizedError });\n throw error;\n }\n}\n\nfunction toSpanOutputs<T>(result: T): Record<string, unknown> {\n if (isRecord(result)) {\n return result;\n }\n\n if (result === undefined) {\n return {};\n }\n\n return { result };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction resolveArgs<T>(\n tracerOrOptions: Tracer | StartSpanOptions,\n optionsOrFn: StartSpanOptions | (() => Promise<T> | T),\n maybeFn?: () => Promise<T> | T\n): {\n tracer: Tracer;\n options: StartSpanOptions;\n fn: () => Promise<T> | T;\n} {\n if (maybeFn) {\n return {\n tracer: tracerOrOptions as Tracer,\n options: optionsOrFn as StartSpanOptions,\n fn: maybeFn,\n };\n }\n\n const tracer = getActiveTracer();\n if (!tracer) {\n throw new Error(\n 'No active tracer found. Initialize Prefactor first or pass a tracer explicitly.'\n );\n }\n\n return {\n tracer,\n options: tracerOrOptions as StartSpanOptions,\n fn: optionsOrFn as () => Promise<T> | T,\n };\n}\n",
|
|
23
24
|
"import type { AgentInstanceManager } from './agent/instance-manager.js';\nimport type { Config } from './config.js';\nimport { createConfig } from './config.js';\nimport type { CoreRuntime } from './create-core.js';\nimport { createCore } from './create-core.js';\nimport type { Tracer } from './tracing/tracer.js';\nimport { withSpan as coreWithSpan } from './tracing/with-span.js';\nimport { configureLogging } from './utils/logging.js';\n\n/**\n * Options for creating a manual span around custom code.\n */\nexport interface ManualSpanOptions {\n /** Human-readable span name. */\n name: string;\n /** Provider-specific span type identifier. */\n spanType: string;\n /** Captured input payload for the span. */\n inputs: Record<string, unknown>;\n /** Optional metadata associated with the span. */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Provider middleware value exposed by integrations.\n */\nexport type MiddlewareLike = unknown;\n\n/**\n * Provider integration contract for Prefactor SDK clients.\n */\nexport interface PrefactorProvider {\n /**\n * Creates provider middleware bound to the core runtime services.\n *\n * @param tracer - Runtime tracer used for span creation.\n * @param agentManager - Runtime agent instance manager.\n * @param config - Resolved SDK configuration.\n * @returns Provider middleware consumed by upstream frameworks.\n */\n createMiddleware(\n tracer: Tracer,\n agentManager: AgentInstanceManager,\n config: Config\n ): MiddlewareLike;\n /**\n * Optional provider-level cleanup hook invoked during client shutdown.\n */\n shutdown?: () => void | Promise<void>;\n /**\n * Provides a default agent schema when a user does not supply one.\n *\n * @returns Agent schema object, or `undefined` when no default is available.\n */\n getDefaultAgentSchema?: () => Record<string, unknown> | undefined;\n}\n\nlet prefactorClient: PrefactorClient | null = null;\nlet prefactorInitKey: string | null = null;\n\nexport class PrefactorClient {\n private readonly core: CoreRuntime;\n private readonly middleware: MiddlewareLike;\n private readonly provider: PrefactorProvider;\n\n /**\n * Creates a Prefactor client bound to a runtime and provider middleware.\n *\n * @param core - Initialized core runtime.\n * @param middleware - Provider middleware returned by the integration.\n * @param provider - Provider used to construct the client.\n */\n constructor(core: CoreRuntime, middleware: MiddlewareLike, provider: PrefactorProvider) {\n this.core = core;\n this.middleware = middleware;\n this.provider = provider;\n }\n\n /**\n * Returns the runtime tracer used by this client.\n *\n * @returns Active tracer instance.\n */\n getTracer(): Tracer {\n return this.core.tracer;\n }\n\n /**\n * Returns provider middleware created during initialization.\n *\n * @returns Provider middleware object.\n */\n getMiddleware(): MiddlewareLike {\n return this.middleware;\n }\n\n /**\n * Runs a function within a manually-created span.\n *\n * @param options - Manual span options.\n * @param fn - Function executed inside the created span.\n * @returns Result of `fn` as a promise.\n */\n withSpan<T>(options: ManualSpanOptions, fn: () => T | Promise<T>): Promise<T> {\n return coreWithSpan(\n this.core.tracer,\n {\n name: options.name,\n spanType: options.spanType as Parameters<typeof coreWithSpan>[0]['spanType'],\n inputs: options.inputs,\n metadata: options.metadata,\n },\n fn\n ) as Promise<T>;\n }\n\n /**\n * Flushes pending telemetry and releases the global singleton reference.\n *\n * The global client reference is always cleared, even if shutdown fails.\n *\n * @returns Promise that resolves when shutdown completes.\n */\n async shutdown(): Promise<void> {\n try {\n await this.provider.shutdown?.();\n await this.core.shutdown();\n } finally {\n prefactorClient = null;\n prefactorInitKey = null;\n }\n }\n}\n\n/**\n * Options for initializing the global Prefactor client.\n */\nexport interface PrefactorOptions {\n /** Provider integration used to create middleware and defaults. */\n provider: PrefactorProvider;\n /** Optional HTTP configuration overrides for the runtime config. */\n httpConfig?: Config['httpConfig'];\n}\n\n/**\n * Initializes and returns the process-wide Prefactor client singleton.\n *\n * Repeated calls return the same client instance until it is shut down.\n *\n * @param options - Initialization options.\n * @returns Global Prefactor client instance.\n */\nexport function init(options: PrefactorOptions): PrefactorClient {\n const nextInitKey = buildInitKey(options);\n\n if (prefactorClient) {\n if (prefactorInitKey !== nextInitKey) {\n throw new Error(\n 'Prefactor is already initialized with a different provider or configuration. ' +\n 'Call shutdown() before re-initializing with different options.'\n );\n }\n\n return prefactorClient;\n }\n\n configureLogging();\n\n const config: Partial<Config> = options.httpConfig ? { httpConfig: options.httpConfig } : {};\n let finalConfig = createConfig(config);\n\n const providerSchema = options.provider.getDefaultAgentSchema?.();\n if (!finalConfig.httpConfig?.agentSchema && providerSchema && finalConfig.httpConfig) {\n finalConfig = {\n ...finalConfig,\n httpConfig: {\n ...finalConfig.httpConfig,\n agentSchema: providerSchema,\n },\n };\n }\n\n const core = createCore(finalConfig);\n\n const httpConfig = finalConfig.httpConfig;\n if (httpConfig?.agentSchema) {\n core.agentManager.registerSchema(httpConfig.agentSchema);\n }\n\n const middleware = options.provider.createMiddleware(core.tracer, core.agentManager, finalConfig);\n\n prefactorClient = new PrefactorClient(core, middleware, options.provider);\n prefactorInitKey = nextInitKey;\n\n return prefactorClient;\n}\n\n/**\n * Returns the currently initialized global Prefactor client, if any.\n *\n * @returns Active global client or `null`.\n */\nexport function getClient(): PrefactorClient | null {\n return prefactorClient;\n}\n\nfunction buildInitKey(options: PrefactorOptions): string {\n const providerType = options.provider.constructor?.name ?? 'anonymous-provider';\n return `${providerType}:${stableStringify(options.httpConfig ?? null)}`;\n}\n\nfunction stableStringify(value: unknown): string {\n return JSON.stringify(normalizeValue(value));\n}\n\nfunction normalizeValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeValue(entry));\n }\n\n if (value && typeof value === 'object') {\n const normalized: Record<string, unknown> = {};\n const objectValue = value as Record<string, unknown>;\n const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));\n for (const key of keys) {\n normalized[key] = normalizeValue(objectValue[key]);\n }\n return normalized;\n }\n\n return value;\n}\n",
|
|
24
25
|
"/**\n * Truncate a string to a maximum length, adding an ellipsis if truncated\n *\n * @param value - The string to truncate\n * @param maxLength - Maximum length\n * @returns Truncated string\n */\nexport function truncateString(value: string, maxLength: number): string {\n if (value.length <= maxLength) {\n return value;\n }\n return `${value.slice(0, maxLength)}... [truncated]`;\n}\n\n/**\n * Serialize a value for JSON output, handling non-serializable types and\n * truncating long strings\n *\n * @param value - Value to serialize\n * @param maxLength - Maximum length for strings (null for no truncation)\n * @returns Serialized value\n *\n * @example\n * ```typescript\n * const serialized = serializeValue({ message: 'Hello'.repeat(1000) }, 100);\n * // Result: { message: 'HelloHelloHello... [truncated]' }\n * ```\n */\nexport function serializeValue(value: unknown, maxLength: number | null = 10000): unknown {\n // Handle primitives that don't need serialization\n if (value === null || value === undefined) {\n return value;\n }\n\n if (typeof value === 'boolean' || typeof value === 'number') {\n return value;\n }\n\n // Handle strings with truncation\n if (typeof value === 'string') {\n return maxLength !== null ? truncateString(value, maxLength) : value;\n }\n\n // Handle arrays\n if (Array.isArray(value)) {\n return value.map((item) => serializeValue(item, maxLength));\n }\n\n // Handle objects\n if (typeof value === 'object') {\n const result: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value)) {\n result[key] = serializeValue(val, maxLength);\n }\n return result;\n }\n\n // Handle other types by converting to string\n try {\n return String(value);\n } catch {\n return `<${typeof value} object>`;\n }\n}\n"
|
|
25
26
|
],
|
|
26
|
-
"mappings": "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",
|
|
27
|
-
"debugId": "
|
|
27
|
+
"mappings": "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",
|
|
28
|
+
"debugId": "4C0DC6DB86519AD564756E2164756E21",
|
|
28
29
|
"names": []
|
|
29
30
|
}
|
package/dist/index.js
CHANGED
|
@@ -510,6 +510,18 @@ function configureLogging() {
|
|
|
510
510
|
}
|
|
511
511
|
}
|
|
512
512
|
|
|
513
|
+
// packages/core/src/transport/http/idempotency.ts
|
|
514
|
+
var MAX_KEY_LENGTH = 64;
|
|
515
|
+
function ensureIdempotencyKey(key) {
|
|
516
|
+
if (key === undefined) {
|
|
517
|
+
return crypto.randomUUID();
|
|
518
|
+
}
|
|
519
|
+
if (key.length > MAX_KEY_LENGTH) {
|
|
520
|
+
throw new Error(`idempotency_key must be ≤${MAX_KEY_LENGTH} characters, got ${key.length}`);
|
|
521
|
+
}
|
|
522
|
+
return key;
|
|
523
|
+
}
|
|
524
|
+
|
|
513
525
|
// packages/core/src/transport/http/agent-instance-client.ts
|
|
514
526
|
class AgentInstanceClient {
|
|
515
527
|
httpClient;
|
|
@@ -519,19 +531,21 @@ class AgentInstanceClient {
|
|
|
519
531
|
register(payload) {
|
|
520
532
|
return this.httpClient.request("/api/v1/agent_instance/register", {
|
|
521
533
|
method: "POST",
|
|
522
|
-
body: payload
|
|
534
|
+
body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) }
|
|
523
535
|
});
|
|
524
536
|
}
|
|
525
537
|
start(agentInstanceId, options) {
|
|
538
|
+
const opts = options ?? {};
|
|
526
539
|
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {
|
|
527
540
|
method: "POST",
|
|
528
|
-
body:
|
|
541
|
+
body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) }
|
|
529
542
|
});
|
|
530
543
|
}
|
|
531
544
|
finish(agentInstanceId, options) {
|
|
545
|
+
const opts = options ?? {};
|
|
532
546
|
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {
|
|
533
547
|
method: "POST",
|
|
534
|
-
body:
|
|
548
|
+
body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) }
|
|
535
549
|
});
|
|
536
550
|
}
|
|
537
551
|
}
|
|
@@ -678,7 +692,7 @@ class AgentSpanClient {
|
|
|
678
692
|
create(payload) {
|
|
679
693
|
return this.httpClient.request("/api/v1/agent_spans", {
|
|
680
694
|
method: "POST",
|
|
681
|
-
body: payload
|
|
695
|
+
body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) }
|
|
682
696
|
});
|
|
683
697
|
}
|
|
684
698
|
async finish(spanId, timestamp, options = {}) {
|
|
@@ -687,7 +701,8 @@ class AgentSpanClient {
|
|
|
687
701
|
method: "POST",
|
|
688
702
|
body: {
|
|
689
703
|
timestamp,
|
|
690
|
-
...options
|
|
704
|
+
...options,
|
|
705
|
+
idempotency_key: ensureIdempotencyKey(options.idempotency_key)
|
|
691
706
|
}
|
|
692
707
|
});
|
|
693
708
|
} catch (error) {
|
|
@@ -1245,4 +1260,4 @@ export {
|
|
|
1245
1260
|
AgentInstanceClient
|
|
1246
1261
|
};
|
|
1247
1262
|
|
|
1248
|
-
//# debugId=
|
|
1263
|
+
//# debugId=4E7D6B116785760064756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/agent/instance-manager.ts", "../src/config.ts", "../src/create-core.ts", "../src/tracing/active-tracer.ts", "../src/lifecycle.ts", "../src/tracing/tracer.ts", "../src/tracing/context.ts", "../src/tracing/result-payload.ts", "../src/tracing/span.ts", "../src/queue/in-memory-queue.ts", "../src/queue/task-executor.ts", "../src/utils/logging.ts", "../src/transport/http/agent-instance-client.ts", "../src/transport/http/retry-policy.ts", "../src/transport/http/http-client.ts", "../src/transport/http/agent-span-client.ts", "../src/transport/http.ts", "../src/tracing/with-span.ts", "../src/client.ts", "../src/utils/serialization.ts"],
|
|
3
|
+
"sources": ["../src/agent/instance-manager.ts", "../src/config.ts", "../src/create-core.ts", "../src/tracing/active-tracer.ts", "../src/lifecycle.ts", "../src/tracing/tracer.ts", "../src/tracing/context.ts", "../src/tracing/result-payload.ts", "../src/tracing/span.ts", "../src/queue/in-memory-queue.ts", "../src/queue/task-executor.ts", "../src/utils/logging.ts", "../src/transport/http/idempotency.ts", "../src/transport/http/agent-instance-client.ts", "../src/transport/http/retry-policy.ts", "../src/transport/http/http-client.ts", "../src/transport/http/agent-span-client.ts", "../src/transport/http.ts", "../src/tracing/with-span.ts", "../src/client.ts", "../src/utils/serialization.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { AgentInstanceOptions, Transport } from '../transport/http.js';\n\nexport type AgentInstanceManagerOptions = {\n /** Allows starting instances before a schema has been registered. */\n allowUnregisteredSchema?: boolean;\n};\n\ntype AgentInstanceStartOptions = AgentInstanceOptions;\n\n/**\n * Coordinates agent instance lifecycle and schema registration for a transport.\n */\nexport class AgentInstanceManager {\n private registeredSchema: Record<string, unknown> | null = null;\n\n constructor(\n private transport: Transport,\n private options: AgentInstanceManagerOptions\n ) {}\n\n registerSchema(schema: Record<string, unknown>): void {\n if (this.registeredSchema === null) {\n this.registeredSchema = schema;\n this.transport.registerSchema(schema);\n return;\n }\n\n const existingSchema = stableStringify(this.registeredSchema);\n const incomingSchema = stableStringify(schema);\n if (existingSchema !== incomingSchema) {\n console.warn(\n 'A different schema was provided after registration; ignoring subsequent schema.'\n );\n }\n }\n\n startInstance(options: AgentInstanceStartOptions = {}): void {\n if (!this.options.allowUnregisteredSchema && this.registeredSchema === null) {\n console.warn('Schema must be registered before starting an agent instance.');\n return;\n }\n\n this.transport.startAgentInstance(options);\n }\n\n finishInstance(): void {\n this.transport.finishAgentInstance();\n }\n}\n\nfunction stableStringify(value: unknown): string {\n return JSON.stringify(normalizeValue(value));\n}\n\nfunction normalizeValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeValue(entry));\n }\n\n if (value && typeof value === 'object') {\n const normalized: Record<string, unknown> = {};\n const objectValue = value as Record<string, unknown>;\n const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));\n for (const key of keys) {\n normalized[key] = normalizeValue(objectValue[key]);\n }\n return normalized;\n }\n\n return value;\n}\n",
|
|
6
6
|
"import { z } from 'zod';\n\nconst DEFAULT_RETRY_ON_STATUS_CODES = [\n 429,\n ...Array.from({ length: 100 }, (_, index) => 500 + index),\n];\nconst HttpStatusCodeSchema = z.number().int().min(100).max(599);\n\n/**\n * Configuration schema for HTTP transport\n */\nexport const HttpTransportConfigSchema = z.object({\n /** API endpoint URL */\n apiUrl: z.string().url(),\n\n /** Authentication token */\n apiToken: z.string().min(1),\n\n /** Optional agent instance identifier (internal ID) */\n agentId: z.string().optional(),\n\n /** Agent identifier (external identifier); defaults to v1.0.0 when omitted */\n agentIdentifier: z.string().default('v1.0.0'),\n\n /** Optional agent name */\n agentName: z.string().optional(),\n\n /** Optional agent description */\n agentDescription: z.string().optional(),\n\n /** Optional agent schema for validation (full schema object) */\n agentSchema: z.record(z.string(), z.unknown()).optional(),\n\n /** Request timeout in milliseconds */\n requestTimeout: z.number().positive().default(30000),\n\n /** Maximum number of retry attempts */\n maxRetries: z.number().int().nonnegative().default(3),\n\n /** Initial delay between retries in milliseconds */\n initialRetryDelay: z.number().positive().default(1000),\n\n /** Maximum delay between retries in milliseconds */\n maxRetryDelay: z.number().positive().default(60000),\n\n /** Multiplier for exponential backoff */\n retryMultiplier: z.number().positive().default(2.0),\n\n /** Status codes that should trigger retries */\n retryOnStatusCodes: z.array(HttpStatusCodeSchema).default([...DEFAULT_RETRY_ON_STATUS_CODES]),\n});\n\nexport type HttpTransportConfig = z.infer<typeof HttpTransportConfigSchema>;\n\n/**\n * Partial HTTP config schema for user input (before defaults are applied)\n */\nexport const PartialHttpConfigSchema = z.object({\n apiUrl: z.string().url(),\n apiToken: z.string().min(1),\n agentId: z.string().optional(),\n agentIdentifier: z.string().optional(),\n agentName: z.string().optional(),\n agentDescription: z.string().optional(),\n agentSchema: z.record(z.string(), z.unknown()).optional(),\n requestTimeout: z.number().positive().optional(),\n maxRetries: z.number().int().nonnegative().optional(),\n initialRetryDelay: z.number().positive().optional(),\n maxRetryDelay: z.number().positive().optional(),\n retryMultiplier: z.number().positive().optional(),\n retryOnStatusCodes: z.array(HttpStatusCodeSchema).optional(),\n});\n\nexport type PartialHttpConfig = z.infer<typeof PartialHttpConfigSchema>;\n\n/**\n * Main SDK configuration schema\n */\nexport const ConfigSchema = z.object({\n /** Transport type to use for span emission */\n transportType: z.enum(['http']).default('http'),\n\n /** Sampling rate (0.0 to 1.0) */\n sampleRate: z.number().min(0).max(1).default(1.0),\n\n /** Whether to capture span inputs */\n captureInputs: z.boolean().default(true),\n\n /** Whether to capture span outputs */\n captureOutputs: z.boolean().default(true),\n\n /** Maximum length for input strings */\n maxInputLength: z.number().int().positive().default(10000),\n\n /** Maximum length for output strings */\n maxOutputLength: z.number().int().positive().default(10000),\n\n /** HTTP transport configuration (required if transportType is 'http') */\n httpConfig: PartialHttpConfigSchema.optional(),\n});\n\nexport type Config = z.infer<typeof ConfigSchema>;\n\n/**\n * Creates a validated configuration object by merging provided options with\n * environment variables and defaults.\n *\n * @param options - Partial configuration options\n * @returns Validated configuration object\n * @throws {z.ZodError} If configuration is invalid\n *\n * @example\n * ```typescript\n * const config = createConfig({\n * transportType: 'http',\n * httpConfig: {\n * apiUrl: 'https://app.prefactorai.com',\n * apiToken: process.env.PREFACTOR_API_TOKEN!,\n * }\n * });\n * ```\n */\nexport function createConfig(options?: Partial<Config>): Config {\n const retryOnStatusCodesFromEnv = parseRetryOnStatusCodesEnv(\n process.env.PREFACTOR_RETRY_ON_STATUS_CODES\n );\n\n const config = {\n transportType: options?.transportType ?? 'http',\n sampleRate: options?.sampleRate ?? parseFloat(process.env.PREFACTOR_SAMPLE_RATE ?? '1.0'),\n captureInputs: options?.captureInputs ?? process.env.PREFACTOR_CAPTURE_INPUTS !== 'false',\n captureOutputs: options?.captureOutputs ?? process.env.PREFACTOR_CAPTURE_OUTPUTS !== 'false',\n maxInputLength:\n options?.maxInputLength ?? parseInt(process.env.PREFACTOR_MAX_INPUT_LENGTH ?? '10000', 10),\n maxOutputLength:\n options?.maxOutputLength ?? parseInt(process.env.PREFACTOR_MAX_OUTPUT_LENGTH ?? '10000', 10),\n httpConfig: options?.httpConfig\n ? {\n ...options.httpConfig,\n retryOnStatusCodes: options.httpConfig.retryOnStatusCodes ?? retryOnStatusCodesFromEnv,\n }\n : undefined,\n };\n\n // Validate and return\n return ConfigSchema.parse(config);\n}\n\nfunction parseRetryOnStatusCodesEnv(value: string | undefined): number[] | undefined {\n if (!value) {\n return undefined;\n }\n\n const parsedCodes = value\n .split(',')\n .map((status) => status.trim())\n .filter((status) => /^\\d{3}$/.test(status))\n .map((status) => Number(status))\n .filter((status) => status >= 100 && status <= 599);\n\n return parsedCodes.length > 0 ? parsedCodes : undefined;\n}\n",
|
|
@@ -14,16 +14,17 @@
|
|
|
14
14
|
"import type { Queue, QueueGetResult } from './base.js';\n\ntype QueueEntry<T> = {\n item: T;\n};\n\nexport class InMemoryQueue<T> implements Queue<T> {\n private items: QueueEntry<T>[] = [];\n private waiters: Array<(result: QueueGetResult<T>) => void> = [];\n private isClosed = false;\n\n async put(item: T): Promise<void> {\n if (this.isClosed) {\n throw new Error('Cannot put item into a closed queue');\n }\n\n const waiter = this.waiters.shift();\n if (waiter) {\n waiter({ done: false, item });\n return;\n }\n\n this.items.push({ item });\n }\n\n async get(): Promise<QueueGetResult<T>> {\n if (this.items.length > 0) {\n const entry = this.items.shift();\n if (entry) {\n return { done: false, item: entry.item };\n }\n }\n\n if (this.isClosed) {\n return { done: true };\n }\n\n return new Promise<QueueGetResult<T>>((resolve) => {\n this.waiters.push(resolve);\n });\n }\n\n close(): void {\n if (this.isClosed) {\n return;\n }\n\n this.isClosed = true;\n while (this.waiters.length > 0) {\n const waiter = this.waiters.shift();\n if (waiter) {\n waiter({ done: true });\n }\n }\n }\n\n size(): number {\n return this.items.length;\n }\n}\n",
|
|
15
15
|
"import type { Queue, TaskExecutorOptions } from './base.js';\n\nconst DEFAULT_WORKER_COUNT = 1;\nconst DEFAULT_MAX_RETRIES = 0;\nconst DEFAULT_RETRY_DELAY_MS = 0;\n\nexport class TaskExecutor<T> {\n private isRunning = false;\n private workerPromises: Promise<void>[] = [];\n private workerCount: number;\n private maxRetries: number;\n private retryDelayMs: number;\n private onError?: (error: unknown, item: T) => void | Promise<void>;\n\n constructor(\n private queue: Queue<T>,\n private handler: (item: T) => Promise<void>,\n options: TaskExecutorOptions<T> = {}\n ) {\n this.workerCount = Math.max(options.workerCount ?? DEFAULT_WORKER_COUNT, 1);\n this.maxRetries = Math.max(options.maxRetries ?? DEFAULT_MAX_RETRIES, 0);\n this.retryDelayMs = Math.max(options.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS, 0);\n this.onError = options.onError;\n }\n\n start(): void {\n if (this.isRunning) {\n return;\n }\n\n this.isRunning = true;\n this.workerPromises = Array.from({ length: this.workerCount }, () => this.runWorker());\n }\n\n async stop(): Promise<void> {\n if (!this.isRunning) {\n return;\n }\n\n this.isRunning = false;\n this.queue.close();\n await Promise.all(this.workerPromises);\n this.workerPromises = [];\n }\n\n private async runWorker(): Promise<void> {\n while (true) {\n const result = await this.queue.get();\n if (result.done) {\n return;\n }\n\n await this.executeWithRetry(result.item);\n }\n }\n\n private async executeWithRetry(item: T): Promise<void> {\n let attempt = 0;\n\n while (attempt <= this.maxRetries) {\n try {\n await this.handler(item);\n return;\n } catch (error) {\n if (attempt >= this.maxRetries) {\n await this.safeOnError(error, item);\n return;\n }\n\n if (this.retryDelayMs > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.retryDelayMs));\n }\n }\n\n attempt += 1;\n }\n }\n\n private async safeOnError(error: unknown, item: T): Promise<void> {\n if (!this.onError) {\n return;\n }\n\n try {\n await this.onError(error, item);\n } catch {\n return;\n }\n }\n}\n",
|
|
16
16
|
"/**\n * Log levels for the SDK\n */\nenum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n}\n\n/**\n * Logger class for the Prefactor SDK\n */\nclass Logger {\n private static level: LogLevel = (() => {\n const level = process.env.PREFACTOR_LOG_LEVEL?.toUpperCase();\n if (level && level in LogLevel) {\n return LogLevel[level as keyof typeof LogLevel];\n }\n return LogLevel.INFO;\n })();\n\n constructor(private namespace: string) {}\n\n debug(message: string, ...args: unknown[]): void {\n if (Logger.level <= LogLevel.DEBUG) {\n console.debug(`[prefactor:${this.namespace}] ${message}`, ...args);\n }\n }\n\n info(message: string, ...args: unknown[]): void {\n if (Logger.level <= LogLevel.INFO) {\n console.info(`[prefactor:${this.namespace}] ${message}`, ...args);\n }\n }\n\n warn(message: string, ...args: unknown[]): void {\n if (Logger.level <= LogLevel.WARN) {\n console.warn(`[prefactor:${this.namespace}] ${message}`, ...args);\n }\n }\n\n error(message: string, ...args: unknown[]): void {\n if (Logger.level <= LogLevel.ERROR) {\n console.error(`[prefactor:${this.namespace}] ${message}`, ...args);\n }\n }\n\n /**\n * Set the global log level\n */\n static setLevel(level: 'debug' | 'info' | 'warn' | 'error'): void {\n const levelMap = {\n debug: LogLevel.DEBUG,\n info: LogLevel.INFO,\n warn: LogLevel.WARN,\n error: LogLevel.ERROR,\n };\n Logger.level = levelMap[level];\n }\n}\n\n/**\n * Get a logger instance for a specific namespace\n *\n * @param namespace - The namespace for this logger\n * @returns Logger instance\n */\nexport function getLogger(namespace: string): Logger {\n return new Logger(namespace);\n}\n\n/**\n * Configure logging based on environment variables\n */\nexport function configureLogging(): void {\n const level = process.env.PREFACTOR_LOG_LEVEL?.toLowerCase() as\n | 'debug'\n | 'info'\n | 'warn'\n | 'error'\n | undefined;\n\n if (level) {\n Logger.setLevel(level);\n }\n}\n",
|
|
17
|
-
"
|
|
17
|
+
"const MAX_KEY_LENGTH = 64;\n\nexport function ensureIdempotencyKey(key?: string): string {\n if (key === undefined) {\n return crypto.randomUUID();\n }\n if (key.length > MAX_KEY_LENGTH) {\n throw new Error(`idempotency_key must be ≤${MAX_KEY_LENGTH} characters, got ${key.length}`);\n }\n return key;\n}\n",
|
|
18
|
+
"import type { HttpRequester } from './http-client.js';\nimport { ensureIdempotencyKey } from './idempotency.js';\n\nexport type AgentInstanceRegisterPayload = {\n agent_id?: string;\n agent_version?: {\n external_identifier: string;\n name: string;\n description: string;\n };\n agent_schema_version?: Record<string, unknown>;\n idempotency_key?: string;\n};\n\nexport type AgentInstanceResponse = {\n details?: {\n id?: string;\n };\n};\n\nexport type AgentInstanceStartOptions = {\n timestamp?: string;\n idempotency_key?: string;\n};\n\nexport type AgentInstanceFinishOptions = {\n status?: 'complete' | 'failed' | 'cancelled';\n timestamp?: string;\n idempotency_key?: string;\n};\n\nexport class AgentInstanceClient {\n constructor(private readonly httpClient: HttpRequester) {}\n\n register(payload: AgentInstanceRegisterPayload): Promise<AgentInstanceResponse> {\n return this.httpClient.request('/api/v1/agent_instance/register', {\n method: 'POST',\n body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) },\n });\n }\n\n start(\n agentInstanceId: string,\n options?: AgentInstanceStartOptions\n ): Promise<AgentInstanceResponse> {\n const opts = options ?? {};\n return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {\n method: 'POST',\n body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) },\n });\n }\n\n finish(\n agentInstanceId: string,\n options?: AgentInstanceFinishOptions\n ): Promise<AgentInstanceResponse> {\n const opts = options ?? {};\n return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {\n method: 'POST',\n body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) },\n });\n }\n}\n",
|
|
18
19
|
"import type { HttpTransportConfig } from '../../config.js';\n\nconst JITTER_MIN = 0.5;\n\nexport function shouldRetryStatusCode(statusCode: number, retryOnStatusCodes: number[]): boolean {\n return retryOnStatusCodes.includes(statusCode);\n}\n\nexport function calculateRetryDelay(\n attempt: number,\n config: Pick<HttpTransportConfig, 'initialRetryDelay' | 'maxRetryDelay' | 'retryMultiplier'>,\n random: () => number = Math.random\n): number {\n const baseDelay = Math.min(\n config.initialRetryDelay * config.retryMultiplier ** attempt,\n config.maxRetryDelay\n );\n const jitterMultiplier = JITTER_MIN + random() * JITTER_MIN;\n return Math.round(baseDelay * jitterMultiplier);\n}\n",
|
|
19
20
|
"import type { HttpTransportConfig } from '../../config.js';\nimport { calculateRetryDelay, shouldRetryStatusCode } from './retry-policy.js';\n\nexport type FetchLike = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;\n\nexport type HttpClientDependencies = {\n fetchFn?: FetchLike;\n sleep?: (delayMs: number) => Promise<void>;\n random?: () => number;\n};\n\nexport type HttpRequestOptions = Omit<RequestInit, 'body' | 'headers' | 'signal'> & {\n body?: unknown;\n headers?: RequestInit['headers'];\n timeoutMs?: number;\n};\n\nexport interface HttpRequester {\n request<TResponse = unknown>(path: string, options?: HttpRequestOptions): Promise<TResponse>;\n}\n\ntype HttpClientErrorOptions = {\n url: string;\n method: string;\n status?: number;\n statusText?: string;\n responseBody?: unknown;\n retryable: boolean;\n cause?: unknown;\n};\n\nexport class HttpClientError extends Error {\n readonly url: string;\n readonly method: string;\n readonly status?: number;\n readonly statusText?: string;\n readonly responseBody?: unknown;\n readonly retryable: boolean;\n\n constructor(message: string, options: HttpClientErrorOptions) {\n super(message, { cause: options.cause });\n this.name = 'HttpClientError';\n this.url = options.url;\n this.method = options.method;\n this.status = options.status;\n this.statusText = options.statusText;\n this.responseBody = options.responseBody;\n this.retryable = options.retryable;\n }\n}\n\nexport class HttpClient {\n private readonly fetchFn: FetchLike;\n private readonly sleep: (delayMs: number) => Promise<void>;\n private readonly random: () => number;\n\n constructor(\n private readonly config: HttpTransportConfig,\n dependencies: HttpClientDependencies = {}\n ) {\n this.fetchFn = dependencies.fetchFn ?? fetch;\n this.sleep =\n dependencies.sleep ?? ((delayMs) => new Promise((resolve) => setTimeout(resolve, delayMs)));\n this.random = dependencies.random ?? Math.random;\n }\n\n async request<TResponse = unknown>(\n path: string,\n options: HttpRequestOptions = {}\n ): Promise<TResponse> {\n const url = new URL(path, this.config.apiUrl).toString();\n const method = options.method ?? 'GET';\n let attempt = 0;\n\n while (true) {\n const headers = new Headers(options.headers);\n headers.set('Authorization', `Bearer ${this.config.apiToken}`);\n if (options.body !== undefined && !headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json');\n }\n\n const requestInit: RequestInit = {\n ...options,\n method,\n headers,\n body: options.body === undefined ? undefined : JSON.stringify(options.body),\n signal: AbortSignal.timeout(options.timeoutMs ?? this.config.requestTimeout),\n };\n\n try {\n const response = await this.fetchFn(url, requestInit);\n if (response.ok) {\n return (await parseResponseBody(response)) as TResponse;\n }\n\n const responseBody = await parseResponseBody(response);\n const canRetry =\n attempt < this.config.maxRetries &&\n shouldRetryStatusCode(response.status, this.config.retryOnStatusCodes);\n\n if (canRetry) {\n const delayMs = calculateRetryDelay(attempt, this.config, this.random);\n await this.sleep(delayMs);\n attempt += 1;\n continue;\n }\n\n throw new HttpClientError(`HTTP request failed with status ${response.status}`, {\n url,\n method,\n status: response.status,\n statusText: response.statusText,\n responseBody,\n retryable: shouldRetryStatusCode(response.status, this.config.retryOnStatusCodes),\n });\n } catch (error) {\n if (error instanceof HttpClientError) {\n throw error;\n }\n\n const canRetry = attempt < this.config.maxRetries && isRetryableNetworkError(error);\n if (canRetry) {\n const delayMs = calculateRetryDelay(attempt, this.config, this.random);\n await this.sleep(delayMs);\n attempt += 1;\n continue;\n }\n\n throw new HttpClientError('HTTP request failed due to network error', {\n url,\n method,\n retryable: false,\n cause: error,\n });\n }\n }\n }\n}\n\nfunction isRetryableNetworkError(error: unknown): boolean {\n if (error instanceof TypeError) {\n return true;\n }\n\n if (\n error instanceof DOMException &&\n (error.name === 'AbortError' || error.name === 'TimeoutError')\n ) {\n return true;\n }\n\n if (error instanceof Error && (error.name === 'AbortError' || error.name === 'TimeoutError')) {\n return true;\n }\n\n return false;\n}\n\nasync function parseResponseBody(response: Response): Promise<unknown> {\n const bodyText = await response.text();\n if (!bodyText) {\n return null;\n }\n\n const contentType = response.headers.get('content-type') ?? '';\n if (contentType.includes('application/json')) {\n try {\n return JSON.parse(bodyText) as unknown;\n } catch {\n return bodyText;\n }\n }\n\n try {\n return JSON.parse(bodyText) as unknown;\n } catch {\n return bodyText;\n }\n}\n",
|
|
20
|
-
"import { HttpClientError, type HttpRequester } from './http-client.js';\n\nexport type AgentSpanStatus = 'active' | 'complete' | 'failed';\n\nexport type AgentSpanFinishStatus = 'complete' | 'failed' | 'cancelled';\n\nexport type AgentSpanFinishOptions = {\n status?: AgentSpanFinishStatus;\n result_payload?: Record<string, unknown>;\n idempotency_key?: string;\n};\n\nexport type AgentSpanCreatePayload = {\n details: {\n agent_instance_id: string | null;\n schema_name: string;\n status: AgentSpanStatus;\n payload: Record<string, unknown>;\n result_payload?: Record<string, unknown>;\n parent_span_id: string | null;\n started_at: string;\n finished_at: string | null;\n };\n idempotency_key?: string;\n};\n\nexport type AgentSpanResponse = {\n details?: {\n id?: string;\n started_at?: string;\n };\n};\n\nexport class AgentSpanClient {\n constructor(private readonly httpClient: HttpRequester) {}\n\n create(payload: AgentSpanCreatePayload): Promise<AgentSpanResponse> {\n return this.httpClient.request('/api/v1/agent_spans', {\n method: 'POST',\n body: payload,\n });\n }\n\n async finish(\n spanId: string,\n timestamp: string,\n options: AgentSpanFinishOptions = {}\n ): Promise<void> {\n try {\n await this.httpClient.request(`/api/v1/agent_spans/${spanId}/finish`, {\n method: 'POST',\n body: {\n timestamp,\n ...options,\n },\n });\n } catch (error) {\n if (\n error instanceof HttpClientError &&\n error.status === 409 &&\n isAlreadyFinishedError(error.responseBody)\n ) {\n return;\n }\n\n throw error;\n }\n }\n}\n\nfunction isAlreadyFinishedError(responseBody: unknown): boolean {\n if (!responseBody || typeof responseBody !== 'object') {\n return false;\n }\n\n const payload = responseBody as Record<string, unknown>;\n return payload.code === 'invalid_action';\n}\n",
|
|
21
|
+
"import { HttpClientError, type HttpRequester } from './http-client.js';\nimport { ensureIdempotencyKey } from './idempotency.js';\n\nexport type AgentSpanStatus = 'active' | 'complete' | 'failed';\n\nexport type AgentSpanFinishStatus = 'complete' | 'failed' | 'cancelled';\n\nexport type AgentSpanFinishOptions = {\n status?: AgentSpanFinishStatus;\n result_payload?: Record<string, unknown>;\n idempotency_key?: string;\n};\n\nexport type AgentSpanCreatePayload = {\n details: {\n agent_instance_id: string | null;\n schema_name: string;\n status: AgentSpanStatus;\n payload: Record<string, unknown>;\n result_payload?: Record<string, unknown>;\n parent_span_id: string | null;\n started_at: string;\n finished_at: string | null;\n };\n idempotency_key?: string;\n};\n\nexport type AgentSpanResponse = {\n details?: {\n id?: string;\n started_at?: string;\n };\n};\n\nexport class AgentSpanClient {\n constructor(private readonly httpClient: HttpRequester) {}\n\n create(payload: AgentSpanCreatePayload): Promise<AgentSpanResponse> {\n return this.httpClient.request('/api/v1/agent_spans', {\n method: 'POST',\n body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) },\n });\n }\n\n async finish(\n spanId: string,\n timestamp: string,\n options: AgentSpanFinishOptions = {}\n ): Promise<void> {\n try {\n await this.httpClient.request(`/api/v1/agent_spans/${spanId}/finish`, {\n method: 'POST',\n body: {\n timestamp,\n ...options,\n idempotency_key: ensureIdempotencyKey(options.idempotency_key),\n },\n });\n } catch (error) {\n if (\n error instanceof HttpClientError &&\n error.status === 409 &&\n isAlreadyFinishedError(error.responseBody)\n ) {\n return;\n }\n\n throw error;\n }\n }\n}\n\nfunction isAlreadyFinishedError(responseBody: unknown): boolean {\n if (!responseBody || typeof responseBody !== 'object') {\n return false;\n }\n\n const payload = responseBody as Record<string, unknown>;\n return payload.code === 'invalid_action';\n}\n",
|
|
21
22
|
"import type { HttpTransportConfig } from '../config.js';\nimport type { TransportAction } from '../queue/actions.js';\nimport { InMemoryQueue } from '../queue/in-memory-queue.js';\nimport { TaskExecutor } from '../queue/task-executor.js';\nimport { buildSpanResultPayload } from '../tracing/result-payload.js';\nimport type { Span } from '../tracing/span.js';\nimport { getLogger } from '../utils/logging.js';\nimport { AgentInstanceClient } from './http/agent-instance-client.js';\nimport {\n AgentSpanClient,\n type AgentSpanCreatePayload,\n type AgentSpanFinishStatus,\n type AgentSpanStatus,\n} from './http/agent-span-client.js';\nimport { HttpClient } from './http/http-client.js';\n\nexport type AgentInstanceOptions = {\n /** Existing backend agent id, when available. */\n agentId?: string;\n /** External agent version identifier. */\n agentIdentifier?: string;\n /** Human-readable agent name. */\n agentName?: string;\n /** Human-readable agent description. */\n agentDescription?: string;\n};\n\n/**\n * Transport contract used by the tracer and runtime.\n */\nexport interface Transport {\n emit(span: Span): void;\n\n finishSpan(spanId: string, endTime: number, options?: FinishSpanOptions): void;\n\n startAgentInstance(options?: AgentInstanceOptions): void;\n\n finishAgentInstance(): void;\n\n registerSchema(schema: Record<string, unknown>): void;\n\n close(): void | Promise<void>;\n}\n\nexport type FinishSpanOptions = {\n /** Final status sent to backend when finishing deferred spans. */\n status?: AgentSpanFinishStatus;\n /** Optional normalized payload included in finish request. */\n resultPayload?: Record<string, unknown>;\n};\n\ntype PendingFinish = {\n endTime: number;\n} & FinishSpanOptions;\n\nconst logger = getLogger('http-transport');\n\n/**\n * HTTP-backed transport that serializes span operations through an internal queue.\n */\nexport class HttpTransport implements Transport {\n private closed = false;\n private readonly actionQueue = new InMemoryQueue<TransportAction>();\n private readonly taskExecutor: TaskExecutor<TransportAction>;\n private readonly agentInstanceClient: AgentInstanceClient;\n private readonly agentSpanClient: AgentSpanClient;\n private previousAgentSchema: string | null = null;\n private requiresNewAgentIdentifier = false;\n private previousAgentIdentifier: string | null = null;\n private agentInstanceId: string | null = null;\n private spanIdMap = new Map<string, string>();\n private pendingFinishes = new Map<string, PendingFinish>();\n private pendingChildren = new Map<string, Span[]>();\n\n constructor(private config: HttpTransportConfig) {\n const httpClient = new HttpClient(config);\n this.agentInstanceClient = new AgentInstanceClient(httpClient);\n this.agentSpanClient = new AgentSpanClient(httpClient);\n this.taskExecutor = new TaskExecutor(this.actionQueue, this.processAction, {\n workerCount: 1,\n onError: async (error) => {\n logger.error('Error processing HTTP action:', error);\n },\n });\n this.taskExecutor.start();\n }\n\n registerSchema(schema: Record<string, unknown>): void {\n this.enqueue({ type: 'schema_register', schema });\n }\n\n startAgentInstance(options?: AgentInstanceOptions): void {\n this.enqueue({ type: 'agent_start', options });\n }\n\n finishAgentInstance(): void {\n this.enqueue({ type: 'agent_finish' });\n }\n\n emit(span: Span): void {\n this.enqueue({ type: 'span_end', span });\n }\n\n finishSpan(spanId: string, endTime: number, options?: FinishSpanOptions): void {\n this.enqueue({\n type: 'span_finish',\n spanId,\n endTime,\n status: options?.status,\n resultPayload: options?.resultPayload,\n });\n }\n\n async close(): Promise<void> {\n this.closed = true;\n await this.taskExecutor.stop();\n if (this.pendingFinishes.size > 0) {\n logger.warn(\n `Transport closed with ${this.pendingFinishes.size} pending span finish(es) that could not be processed`\n );\n this.pendingFinishes.clear();\n }\n\n if (this.pendingChildren.size > 0) {\n logger.warn(\n `Transport closed with ${this.pendingChildren.size} unresolved parent span reference(s)`\n );\n this.pendingChildren.clear();\n }\n }\n\n private enqueue(action: TransportAction): void {\n if (this.closed) {\n return;\n }\n\n this.actionQueue.put(action).catch((error: unknown) => {\n logger.error('Failed to enqueue HTTP action:', error);\n });\n }\n\n private processAction = async (action: TransportAction): Promise<void> => {\n switch (action.type) {\n case 'schema_register': {\n const incomingSchema = JSON.stringify(action.schema);\n if (this.previousAgentSchema !== null && this.previousAgentSchema !== incomingSchema) {\n this.requiresNewAgentIdentifier = true;\n this.previousAgentIdentifier = this.config.agentIdentifier;\n this.agentInstanceId = null;\n }\n this.previousAgentSchema = incomingSchema;\n this.config.agentSchema = action.schema;\n return;\n }\n case 'agent_start': {\n if (this.requiresNewAgentIdentifier) {\n const nextAgentIdentifier = action.options?.agentIdentifier;\n if (\n nextAgentIdentifier === undefined ||\n nextAgentIdentifier === this.previousAgentIdentifier\n ) {\n logger.error('Schema changed; starting an agent requires a new agentIdentifier value.');\n return;\n }\n\n this.requiresNewAgentIdentifier = false;\n this.previousAgentIdentifier = null;\n }\n\n if (action.options?.agentId !== undefined) this.config.agentId = action.options.agentId;\n if (action.options?.agentIdentifier !== undefined) {\n this.config.agentIdentifier = action.options.agentIdentifier;\n }\n if (action.options?.agentName !== undefined)\n this.config.agentName = action.options.agentName;\n if (action.options?.agentDescription !== undefined) {\n this.config.agentDescription = action.options.agentDescription;\n }\n\n await this.startAgentInstanceHttp();\n return;\n }\n case 'agent_finish':\n await this.finishAgentInstanceHttp();\n return;\n case 'span_end':\n if (!this.agentInstanceId) {\n await this.ensureAgentRegistered();\n }\n\n if (action.span.parentSpanId && !this.spanIdMap.has(action.span.parentSpanId)) {\n this.queuePendingChild(action.span.parentSpanId, action.span);\n return;\n }\n\n await this.sendSpan(action.span);\n return;\n case 'span_finish': {\n if (this.spanIdMap.has(action.spanId)) {\n await this.finishSpanHttp(action.spanId, action.endTime, {\n status: action.status,\n resultPayload: action.resultPayload,\n });\n } else {\n this.pendingFinishes.set(action.spanId, {\n endTime: action.endTime,\n status: action.status,\n resultPayload: action.resultPayload,\n });\n }\n return;\n }\n }\n };\n\n private async processPendingFinishes(spanId: string): Promise<void> {\n const pendingFinish = this.pendingFinishes.get(spanId);\n if (pendingFinish === undefined) {\n return;\n }\n\n try {\n await this.finishSpanHttp(spanId, pendingFinish.endTime, {\n status: pendingFinish.status,\n resultPayload: pendingFinish.resultPayload,\n });\n this.pendingFinishes.delete(spanId);\n } catch (error) {\n logger.error('Error processing pending span finish:', error);\n }\n }\n\n private async sendSpan(span: Span): Promise<void> {\n const payload = this.transformSpanToApiFormat(span);\n\n try {\n const response = await this.agentSpanClient.create(payload);\n const backendSpanId = response.details?.id;\n if (!backendSpanId) {\n return;\n }\n\n this.spanIdMap.set(span.spanId, backendSpanId);\n await this.processPendingFinishes(span.spanId);\n await this.processPendingChildren(span.spanId);\n } catch (error) {\n logger.error('Error sending span:', error);\n }\n }\n\n private queuePendingChild(parentSpanId: string, childSpan: Span): void {\n const existingChildren = this.pendingChildren.get(parentSpanId) ?? [];\n existingChildren.push(childSpan);\n this.pendingChildren.set(parentSpanId, existingChildren);\n }\n\n private async processPendingChildren(parentSpanId: string): Promise<void> {\n const waitingChildren = this.pendingChildren.get(parentSpanId);\n if (!waitingChildren || waitingChildren.length === 0) {\n return;\n }\n\n this.pendingChildren.delete(parentSpanId);\n for (const childSpan of waitingChildren) {\n await this.sendSpan(childSpan);\n }\n }\n\n private transformSpanToApiFormat(span: Span): AgentSpanCreatePayload {\n const startedAt = new Date(span.startTime).toISOString();\n const finishedAt = span.endTime ? new Date(span.endTime).toISOString() : null;\n const apiStatus = this.mapStatusForApi(span.status);\n const resultPayload = apiStatus === 'active' ? undefined : buildSpanResultPayload(span);\n\n const payload: Record<string, unknown> = {\n span_id: span.spanId,\n trace_id: span.traceId,\n name: span.name,\n status: apiStatus,\n inputs: span.inputs,\n outputs: span.outputs,\n metadata: span.metadata,\n token_usage: null,\n error: null,\n };\n\n if (span.tokenUsage) {\n payload.token_usage = {\n prompt_tokens: span.tokenUsage.promptTokens,\n completion_tokens: span.tokenUsage.completionTokens,\n total_tokens: span.tokenUsage.totalTokens,\n };\n }\n\n if (span.error) {\n payload.error = {\n error_type: span.error.errorType,\n message: span.error.message,\n stacktrace: span.error.stacktrace,\n };\n }\n\n const parentSpanId = span.parentSpanId ? (this.spanIdMap.get(span.parentSpanId) ?? null) : null;\n\n return {\n details: {\n agent_instance_id: this.agentInstanceId,\n schema_name: span.spanType,\n status: apiStatus,\n payload,\n result_payload: resultPayload,\n parent_span_id: parentSpanId,\n started_at: startedAt,\n finished_at: finishedAt,\n },\n };\n }\n\n private mapStatusForApi(status: Span['status']): AgentSpanStatus {\n switch (status) {\n case 'running':\n return 'active';\n case 'success':\n return 'complete';\n case 'error':\n return 'failed';\n default:\n return 'active';\n }\n }\n\n private async ensureAgentRegistered(): Promise<boolean> {\n if (this.agentInstanceId) {\n return true;\n }\n\n const payload: Record<string, unknown> = {};\n\n if (this.config.agentId) payload.agent_id = this.config.agentId;\n if (this.config.agentIdentifier) {\n payload.agent_version = {\n external_identifier: this.config.agentIdentifier,\n name: this.config.agentName || 'Agent',\n description: this.config.agentDescription || '',\n };\n }\n\n if (this.config.agentSchema) {\n payload.agent_schema_version = this.config.agentSchema;\n }\n\n try {\n const data = await this.agentInstanceClient.register(payload);\n this.agentInstanceId = data.details?.id ?? null;\n } catch (error) {\n logger.error('Error registering agent:', error);\n }\n\n return this.agentInstanceId !== null;\n }\n\n private async startAgentInstanceHttp(): Promise<void> {\n const isRegistered = await this.ensureAgentRegistered();\n if (!isRegistered || !this.agentInstanceId) {\n logger.error('Cannot start agent instance: not registered');\n return;\n }\n\n try {\n await this.agentInstanceClient.start(this.agentInstanceId);\n } catch (error) {\n logger.error('Error starting agent instance:', error);\n }\n }\n\n private async finishAgentInstanceHttp(): Promise<void> {\n if (!this.agentInstanceId) {\n logger.error('Cannot finish agent instance: not registered');\n return;\n }\n\n try {\n await this.agentInstanceClient.finish(this.agentInstanceId);\n } catch (error) {\n logger.error('Error finishing agent instance:', error);\n }\n\n this.agentInstanceId = null;\n }\n\n private async finishSpanHttp(\n spanId: string,\n endTime: number,\n options?: FinishSpanOptions\n ): Promise<void> {\n const backendSpanId = this.spanIdMap.get(spanId);\n if (!backendSpanId) {\n logger.warn(`Cannot finish span ${spanId}: backend ID not found`);\n return;\n }\n\n try {\n await this.agentSpanClient.finish(backendSpanId, new Date(endTime).toISOString(), {\n status: options?.status,\n result_payload: options?.resultPayload ?? {},\n });\n } catch (error) {\n logger.error('Error finishing span:', error);\n }\n }\n}\n",
|
|
22
23
|
"import { getActiveTracer } from './active-tracer.js';\nimport { SpanContext } from './context.js';\nimport type { StartSpanOptions, Tracer } from './tracer.js';\n\n/**\n * Runs work inside a new span using an explicit tracer.\n *\n * @param tracer - Tracer to use for span lifecycle.\n * @param options - Span creation options.\n * @param fn - Work to execute within the span context.\n */\nexport async function withSpan<T>(\n tracer: Tracer,\n options: StartSpanOptions,\n fn: () => Promise<T> | T\n): Promise<T>;\n\n/**\n * Runs work inside a new span using the globally active tracer.\n *\n * Throws when no active tracer exists.\n *\n * @param options - Span creation options.\n * @param fn - Work to execute within the span context.\n */\nexport async function withSpan<T>(options: StartSpanOptions, fn: () => Promise<T> | T): Promise<T>;\n\n/**\n * Wraps sync/async work in a span and automatically captures outputs or errors.\n */\nexport async function withSpan<T>(\n tracerOrOptions: Tracer | StartSpanOptions,\n optionsOrFn: StartSpanOptions | (() => Promise<T> | T),\n maybeFn?: () => Promise<T> | T\n): Promise<T> {\n const { tracer, options, fn } = resolveArgs(tracerOrOptions, optionsOrFn, maybeFn);\n const span = tracer.startSpan(options);\n\n try {\n const result = await SpanContext.runAsync(span, () => Promise.resolve(fn()));\n tracer.endSpan(span, { outputs: toSpanOutputs(result) });\n return result;\n } catch (error) {\n const normalizedError = error instanceof Error ? error : new Error(String(error));\n tracer.endSpan(span, { error: normalizedError });\n throw error;\n }\n}\n\nfunction toSpanOutputs<T>(result: T): Record<string, unknown> {\n if (isRecord(result)) {\n return result;\n }\n\n if (result === undefined) {\n return {};\n }\n\n return { result };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction resolveArgs<T>(\n tracerOrOptions: Tracer | StartSpanOptions,\n optionsOrFn: StartSpanOptions | (() => Promise<T> | T),\n maybeFn?: () => Promise<T> | T\n): {\n tracer: Tracer;\n options: StartSpanOptions;\n fn: () => Promise<T> | T;\n} {\n if (maybeFn) {\n return {\n tracer: tracerOrOptions as Tracer,\n options: optionsOrFn as StartSpanOptions,\n fn: maybeFn,\n };\n }\n\n const tracer = getActiveTracer();\n if (!tracer) {\n throw new Error(\n 'No active tracer found. Initialize Prefactor first or pass a tracer explicitly.'\n );\n }\n\n return {\n tracer,\n options: tracerOrOptions as StartSpanOptions,\n fn: optionsOrFn as () => Promise<T> | T,\n };\n}\n",
|
|
23
24
|
"import type { AgentInstanceManager } from './agent/instance-manager.js';\nimport type { Config } from './config.js';\nimport { createConfig } from './config.js';\nimport type { CoreRuntime } from './create-core.js';\nimport { createCore } from './create-core.js';\nimport type { Tracer } from './tracing/tracer.js';\nimport { withSpan as coreWithSpan } from './tracing/with-span.js';\nimport { configureLogging } from './utils/logging.js';\n\n/**\n * Options for creating a manual span around custom code.\n */\nexport interface ManualSpanOptions {\n /** Human-readable span name. */\n name: string;\n /** Provider-specific span type identifier. */\n spanType: string;\n /** Captured input payload for the span. */\n inputs: Record<string, unknown>;\n /** Optional metadata associated with the span. */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Provider middleware value exposed by integrations.\n */\nexport type MiddlewareLike = unknown;\n\n/**\n * Provider integration contract for Prefactor SDK clients.\n */\nexport interface PrefactorProvider {\n /**\n * Creates provider middleware bound to the core runtime services.\n *\n * @param tracer - Runtime tracer used for span creation.\n * @param agentManager - Runtime agent instance manager.\n * @param config - Resolved SDK configuration.\n * @returns Provider middleware consumed by upstream frameworks.\n */\n createMiddleware(\n tracer: Tracer,\n agentManager: AgentInstanceManager,\n config: Config\n ): MiddlewareLike;\n /**\n * Optional provider-level cleanup hook invoked during client shutdown.\n */\n shutdown?: () => void | Promise<void>;\n /**\n * Provides a default agent schema when a user does not supply one.\n *\n * @returns Agent schema object, or `undefined` when no default is available.\n */\n getDefaultAgentSchema?: () => Record<string, unknown> | undefined;\n}\n\nlet prefactorClient: PrefactorClient | null = null;\nlet prefactorInitKey: string | null = null;\n\nexport class PrefactorClient {\n private readonly core: CoreRuntime;\n private readonly middleware: MiddlewareLike;\n private readonly provider: PrefactorProvider;\n\n /**\n * Creates a Prefactor client bound to a runtime and provider middleware.\n *\n * @param core - Initialized core runtime.\n * @param middleware - Provider middleware returned by the integration.\n * @param provider - Provider used to construct the client.\n */\n constructor(core: CoreRuntime, middleware: MiddlewareLike, provider: PrefactorProvider) {\n this.core = core;\n this.middleware = middleware;\n this.provider = provider;\n }\n\n /**\n * Returns the runtime tracer used by this client.\n *\n * @returns Active tracer instance.\n */\n getTracer(): Tracer {\n return this.core.tracer;\n }\n\n /**\n * Returns provider middleware created during initialization.\n *\n * @returns Provider middleware object.\n */\n getMiddleware(): MiddlewareLike {\n return this.middleware;\n }\n\n /**\n * Runs a function within a manually-created span.\n *\n * @param options - Manual span options.\n * @param fn - Function executed inside the created span.\n * @returns Result of `fn` as a promise.\n */\n withSpan<T>(options: ManualSpanOptions, fn: () => T | Promise<T>): Promise<T> {\n return coreWithSpan(\n this.core.tracer,\n {\n name: options.name,\n spanType: options.spanType as Parameters<typeof coreWithSpan>[0]['spanType'],\n inputs: options.inputs,\n metadata: options.metadata,\n },\n fn\n ) as Promise<T>;\n }\n\n /**\n * Flushes pending telemetry and releases the global singleton reference.\n *\n * The global client reference is always cleared, even if shutdown fails.\n *\n * @returns Promise that resolves when shutdown completes.\n */\n async shutdown(): Promise<void> {\n try {\n await this.provider.shutdown?.();\n await this.core.shutdown();\n } finally {\n prefactorClient = null;\n prefactorInitKey = null;\n }\n }\n}\n\n/**\n * Options for initializing the global Prefactor client.\n */\nexport interface PrefactorOptions {\n /** Provider integration used to create middleware and defaults. */\n provider: PrefactorProvider;\n /** Optional HTTP configuration overrides for the runtime config. */\n httpConfig?: Config['httpConfig'];\n}\n\n/**\n * Initializes and returns the process-wide Prefactor client singleton.\n *\n * Repeated calls return the same client instance until it is shut down.\n *\n * @param options - Initialization options.\n * @returns Global Prefactor client instance.\n */\nexport function init(options: PrefactorOptions): PrefactorClient {\n const nextInitKey = buildInitKey(options);\n\n if (prefactorClient) {\n if (prefactorInitKey !== nextInitKey) {\n throw new Error(\n 'Prefactor is already initialized with a different provider or configuration. ' +\n 'Call shutdown() before re-initializing with different options.'\n );\n }\n\n return prefactorClient;\n }\n\n configureLogging();\n\n const config: Partial<Config> = options.httpConfig ? { httpConfig: options.httpConfig } : {};\n let finalConfig = createConfig(config);\n\n const providerSchema = options.provider.getDefaultAgentSchema?.();\n if (!finalConfig.httpConfig?.agentSchema && providerSchema && finalConfig.httpConfig) {\n finalConfig = {\n ...finalConfig,\n httpConfig: {\n ...finalConfig.httpConfig,\n agentSchema: providerSchema,\n },\n };\n }\n\n const core = createCore(finalConfig);\n\n const httpConfig = finalConfig.httpConfig;\n if (httpConfig?.agentSchema) {\n core.agentManager.registerSchema(httpConfig.agentSchema);\n }\n\n const middleware = options.provider.createMiddleware(core.tracer, core.agentManager, finalConfig);\n\n prefactorClient = new PrefactorClient(core, middleware, options.provider);\n prefactorInitKey = nextInitKey;\n\n return prefactorClient;\n}\n\n/**\n * Returns the currently initialized global Prefactor client, if any.\n *\n * @returns Active global client or `null`.\n */\nexport function getClient(): PrefactorClient | null {\n return prefactorClient;\n}\n\nfunction buildInitKey(options: PrefactorOptions): string {\n const providerType = options.provider.constructor?.name ?? 'anonymous-provider';\n return `${providerType}:${stableStringify(options.httpConfig ?? null)}`;\n}\n\nfunction stableStringify(value: unknown): string {\n return JSON.stringify(normalizeValue(value));\n}\n\nfunction normalizeValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeValue(entry));\n }\n\n if (value && typeof value === 'object') {\n const normalized: Record<string, unknown> = {};\n const objectValue = value as Record<string, unknown>;\n const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));\n for (const key of keys) {\n normalized[key] = normalizeValue(objectValue[key]);\n }\n return normalized;\n }\n\n return value;\n}\n",
|
|
24
25
|
"/**\n * Truncate a string to a maximum length, adding an ellipsis if truncated\n *\n * @param value - The string to truncate\n * @param maxLength - Maximum length\n * @returns Truncated string\n */\nexport function truncateString(value: string, maxLength: number): string {\n if (value.length <= maxLength) {\n return value;\n }\n return `${value.slice(0, maxLength)}... [truncated]`;\n}\n\n/**\n * Serialize a value for JSON output, handling non-serializable types and\n * truncating long strings\n *\n * @param value - Value to serialize\n * @param maxLength - Maximum length for strings (null for no truncation)\n * @returns Serialized value\n *\n * @example\n * ```typescript\n * const serialized = serializeValue({ message: 'Hello'.repeat(1000) }, 100);\n * // Result: { message: 'HelloHelloHello... [truncated]' }\n * ```\n */\nexport function serializeValue(value: unknown, maxLength: number | null = 10000): unknown {\n // Handle primitives that don't need serialization\n if (value === null || value === undefined) {\n return value;\n }\n\n if (typeof value === 'boolean' || typeof value === 'number') {\n return value;\n }\n\n // Handle strings with truncation\n if (typeof value === 'string') {\n return maxLength !== null ? truncateString(value, maxLength) : value;\n }\n\n // Handle arrays\n if (Array.isArray(value)) {\n return value.map((item) => serializeValue(item, maxLength));\n }\n\n // Handle objects\n if (typeof value === 'object') {\n const result: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value)) {\n result[key] = serializeValue(val, maxLength);\n }\n return result;\n }\n\n // Handle other types by converting to string\n try {\n return String(value);\n } catch {\n return `<${typeof value} object>`;\n }\n}\n"
|
|
25
26
|
],
|
|
26
|
-
"mappings": "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",
|
|
27
|
-
"debugId": "
|
|
27
|
+
"mappings": "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",
|
|
28
|
+
"debugId": "4E7D6B116785760064756E2164756E21",
|
|
28
29
|
"names": []
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-instance-client.d.ts","sourceRoot":"","sources":["../../../src/transport/http/agent-instance-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-instance-client.d.ts","sourceRoot":"","sources":["../../../src/transport/http/agent-instance-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE;QACd,mBAAmB,EAAE,MAAM,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,aAAa;IAEtD,QAAQ,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAO/E,KAAK,CACH,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,qBAAqB,CAAC;IAQjC,MAAM,CACJ,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,qBAAqB,CAAC;CAOlC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ensureIdempotencyKey } from './idempotency.js';
|
|
1
2
|
export class AgentInstanceClient {
|
|
2
3
|
httpClient;
|
|
3
4
|
constructor(httpClient) {
|
|
@@ -6,19 +7,21 @@ export class AgentInstanceClient {
|
|
|
6
7
|
register(payload) {
|
|
7
8
|
return this.httpClient.request('/api/v1/agent_instance/register', {
|
|
8
9
|
method: 'POST',
|
|
9
|
-
body: payload,
|
|
10
|
+
body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) },
|
|
10
11
|
});
|
|
11
12
|
}
|
|
12
13
|
start(agentInstanceId, options) {
|
|
14
|
+
const opts = options ?? {};
|
|
13
15
|
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {
|
|
14
16
|
method: 'POST',
|
|
15
|
-
body:
|
|
17
|
+
body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) },
|
|
16
18
|
});
|
|
17
19
|
}
|
|
18
20
|
finish(agentInstanceId, options) {
|
|
21
|
+
const opts = options ?? {};
|
|
19
22
|
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {
|
|
20
23
|
method: 'POST',
|
|
21
|
-
body:
|
|
24
|
+
body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) },
|
|
22
25
|
});
|
|
23
26
|
}
|
|
24
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-instance-client.js","sourceRoot":"","sources":["../../../src/transport/http/agent-instance-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-instance-client.js","sourceRoot":"","sources":["../../../src/transport/http/agent-instance-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AA8BxD,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,UAAyB;QAAzB,eAAU,GAAV,UAAU,CAAe;IAAG,CAAC;IAE1D,QAAQ,CAAC,OAAqC;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iCAAiC,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;SACrF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CACH,eAAuB,EACvB,OAAmC;QAEnC,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,eAAe,QAAQ,EAAE;YAChF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,eAAuB,EACvB,OAAoC;QAEpC,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,eAAe,SAAS,EAAE;YACjF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;SAC/E,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-span-client.d.ts","sourceRoot":"","sources":["../../../src/transport/http/agent-span-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-span-client.d.ts","sourceRoot":"","sources":["../../../src/transport/http/agent-span-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAExE,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE;QACP,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,aAAa;IAEtD,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO7D,MAAM,CACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC;CAsBjB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HttpClientError } from './http-client.js';
|
|
2
|
+
import { ensureIdempotencyKey } from './idempotency.js';
|
|
2
3
|
export class AgentSpanClient {
|
|
3
4
|
httpClient;
|
|
4
5
|
constructor(httpClient) {
|
|
@@ -7,7 +8,7 @@ export class AgentSpanClient {
|
|
|
7
8
|
create(payload) {
|
|
8
9
|
return this.httpClient.request('/api/v1/agent_spans', {
|
|
9
10
|
method: 'POST',
|
|
10
|
-
body: payload,
|
|
11
|
+
body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) },
|
|
11
12
|
});
|
|
12
13
|
}
|
|
13
14
|
async finish(spanId, timestamp, options = {}) {
|
|
@@ -17,6 +18,7 @@ export class AgentSpanClient {
|
|
|
17
18
|
body: {
|
|
18
19
|
timestamp,
|
|
19
20
|
...options,
|
|
21
|
+
idempotency_key: ensureIdempotencyKey(options.idempotency_key),
|
|
20
22
|
},
|
|
21
23
|
});
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-span-client.js","sourceRoot":"","sources":["../../../src/transport/http/agent-span-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-span-client.js","sourceRoot":"","sources":["../../../src/transport/http/agent-span-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAiCxD,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,UAAyB;QAAzB,eAAU,GAAV,UAAU,CAAe;IAAG,CAAC;IAE1D,MAAM,CAAC,OAA+B;QACpC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;SACrF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAc,EACd,SAAiB,EACjB,UAAkC,EAAE;QAEpC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,MAAM,SAAS,EAAE;gBACpE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,SAAS;oBACT,GAAG,OAAO;oBACV,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC;iBAC/D;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK,YAAY,eAAe;gBAChC,KAAK,CAAC,MAAM,KAAK,GAAG;gBACpB,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,EAC1C,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,SAAS,sBAAsB,CAAC,YAAqB;IACnD,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,YAAuC,CAAC;IACxD,OAAO,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../../src/transport/http/idempotency.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAQzD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const MAX_KEY_LENGTH = 64;
|
|
2
|
+
export function ensureIdempotencyKey(key) {
|
|
3
|
+
if (key === undefined) {
|
|
4
|
+
return crypto.randomUUID();
|
|
5
|
+
}
|
|
6
|
+
if (key.length > MAX_KEY_LENGTH) {
|
|
7
|
+
throw new Error(`idempotency_key must be ≤${MAX_KEY_LENGTH} characters, got ${key.length}`);
|
|
8
|
+
}
|
|
9
|
+
return key;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=idempotency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../../src/transport/http/idempotency.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,4BAA4B,cAAc,oBAAoB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|