@prefactor/core 0.2.9 → 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/README.md +1 -1
- package/dist/agent/instance-manager.d.ts +4 -0
- package/dist/agent/instance-manager.d.ts.map +1 -1
- package/dist/agent/instance-manager.js +3 -0
- package/dist/agent/instance-manager.js.map +1 -1
- package/dist/client.d.ts +111 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +142 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/create-core.d.ts +9 -0
- package/dist/create-core.d.ts.map +1 -1
- package/dist/create-core.js +6 -0
- package/dist/create-core.js.map +1 -1
- package/dist/index.cjs +121 -8
- package/dist/index.cjs.map +14 -12
- package/dist/index.d.ts +54 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +121 -8
- package/dist/index.js.map +14 -12
- package/dist/lifecycle.d.ts +15 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +15 -0
- package/dist/lifecycle.js.map +1 -1
- package/dist/tracing/span.d.ts +9 -0
- package/dist/tracing/span.d.ts.map +1 -1
- package/dist/tracing/span.js +6 -0
- package/dist/tracing/span.js.map +1 -1
- package/dist/tracing/with-span.d.ts +15 -0
- package/dist/tracing/with-span.d.ts.map +1 -1
- package/dist/tracing/with-span.js +3 -0
- package/dist/tracing/with-span.js.map +1 -1
- 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/dist/transport/http.d.ts +12 -0
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +3 -0
- package/dist/transport/http.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { AgentInstanceOptions, Transport } from '../transport/http.js';
|
|
2
2
|
export type AgentInstanceManagerOptions = {
|
|
3
|
+
/** Allows starting instances before a schema has been registered. */
|
|
3
4
|
allowUnregisteredSchema?: boolean;
|
|
4
5
|
};
|
|
5
6
|
type AgentInstanceStartOptions = AgentInstanceOptions;
|
|
7
|
+
/**
|
|
8
|
+
* Coordinates agent instance lifecycle and schema registration for a transport.
|
|
9
|
+
*/
|
|
6
10
|
export declare class AgentInstanceManager {
|
|
7
11
|
private transport;
|
|
8
12
|
private options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-manager.d.ts","sourceRoot":"","sources":["../../src/agent/instance-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,MAAM,2BAA2B,GAAG;IACxC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,KAAK,yBAAyB,GAAG,oBAAoB,CAAC;AAEtD,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,gBAAgB,CAAwC;gBAGtD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,2BAA2B;IAG9C,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgBrD,aAAa,CAAC,OAAO,GAAE,yBAA8B,GAAG,IAAI;IAS5D,cAAc,IAAI,IAAI;CAGvB"}
|
|
1
|
+
{"version":3,"file":"instance-manager.d.ts","sourceRoot":"","sources":["../../src/agent/instance-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,MAAM,2BAA2B,GAAG;IACxC,qEAAqE;IACrE,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,KAAK,yBAAyB,GAAG,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,gBAAgB,CAAwC;gBAGtD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,2BAA2B;IAG9C,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgBrD,aAAa,CAAC,OAAO,GAAE,yBAA8B,GAAG,IAAI;IAS5D,cAAc,IAAI,IAAI;CAGvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-manager.js","sourceRoot":"","sources":["../../src/agent/instance-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instance-manager.js","sourceRoot":"","sources":["../../src/agent/instance-manager.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAIrB;IACA;IAJF,gBAAgB,GAAmC,IAAI,CAAC;IAEhE,YACU,SAAoB,EACpB,OAAoC;QADpC,cAAS,GAAT,SAAS,CAAW;QACpB,YAAO,GAAP,OAAO,CAA6B;IAC3C,CAAC;IAEJ,cAAc,CAAC,MAA+B;QAC5C,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9D,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CACV,iFAAiF,CAClF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,aAAa,CAAC,UAAqC,EAAE;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;IACvC,CAAC;CACF;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,KAAgC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { AgentInstanceManager } from './agent/instance-manager.js';
|
|
2
|
+
import type { Config } from './config.js';
|
|
3
|
+
import type { CoreRuntime } from './create-core.js';
|
|
4
|
+
import type { Tracer } from './tracing/tracer.js';
|
|
5
|
+
/**
|
|
6
|
+
* Options for creating a manual span around custom code.
|
|
7
|
+
*/
|
|
8
|
+
export interface ManualSpanOptions {
|
|
9
|
+
/** Human-readable span name. */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Provider-specific span type identifier. */
|
|
12
|
+
spanType: string;
|
|
13
|
+
/** Captured input payload for the span. */
|
|
14
|
+
inputs: Record<string, unknown>;
|
|
15
|
+
/** Optional metadata associated with the span. */
|
|
16
|
+
metadata?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Provider middleware value exposed by integrations.
|
|
20
|
+
*/
|
|
21
|
+
export type MiddlewareLike = unknown;
|
|
22
|
+
/**
|
|
23
|
+
* Provider integration contract for Prefactor SDK clients.
|
|
24
|
+
*/
|
|
25
|
+
export interface PrefactorProvider {
|
|
26
|
+
/**
|
|
27
|
+
* Creates provider middleware bound to the core runtime services.
|
|
28
|
+
*
|
|
29
|
+
* @param tracer - Runtime tracer used for span creation.
|
|
30
|
+
* @param agentManager - Runtime agent instance manager.
|
|
31
|
+
* @param config - Resolved SDK configuration.
|
|
32
|
+
* @returns Provider middleware consumed by upstream frameworks.
|
|
33
|
+
*/
|
|
34
|
+
createMiddleware(tracer: Tracer, agentManager: AgentInstanceManager, config: Config): MiddlewareLike;
|
|
35
|
+
/**
|
|
36
|
+
* Optional provider-level cleanup hook invoked during client shutdown.
|
|
37
|
+
*/
|
|
38
|
+
shutdown?: () => void | Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Provides a default agent schema when a user does not supply one.
|
|
41
|
+
*
|
|
42
|
+
* @returns Agent schema object, or `undefined` when no default is available.
|
|
43
|
+
*/
|
|
44
|
+
getDefaultAgentSchema?: () => Record<string, unknown> | undefined;
|
|
45
|
+
}
|
|
46
|
+
export declare class PrefactorClient {
|
|
47
|
+
private readonly core;
|
|
48
|
+
private readonly middleware;
|
|
49
|
+
private readonly provider;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a Prefactor client bound to a runtime and provider middleware.
|
|
52
|
+
*
|
|
53
|
+
* @param core - Initialized core runtime.
|
|
54
|
+
* @param middleware - Provider middleware returned by the integration.
|
|
55
|
+
* @param provider - Provider used to construct the client.
|
|
56
|
+
*/
|
|
57
|
+
constructor(core: CoreRuntime, middleware: MiddlewareLike, provider: PrefactorProvider);
|
|
58
|
+
/**
|
|
59
|
+
* Returns the runtime tracer used by this client.
|
|
60
|
+
*
|
|
61
|
+
* @returns Active tracer instance.
|
|
62
|
+
*/
|
|
63
|
+
getTracer(): Tracer;
|
|
64
|
+
/**
|
|
65
|
+
* Returns provider middleware created during initialization.
|
|
66
|
+
*
|
|
67
|
+
* @returns Provider middleware object.
|
|
68
|
+
*/
|
|
69
|
+
getMiddleware(): MiddlewareLike;
|
|
70
|
+
/**
|
|
71
|
+
* Runs a function within a manually-created span.
|
|
72
|
+
*
|
|
73
|
+
* @param options - Manual span options.
|
|
74
|
+
* @param fn - Function executed inside the created span.
|
|
75
|
+
* @returns Result of `fn` as a promise.
|
|
76
|
+
*/
|
|
77
|
+
withSpan<T>(options: ManualSpanOptions, fn: () => T | Promise<T>): Promise<T>;
|
|
78
|
+
/**
|
|
79
|
+
* Flushes pending telemetry and releases the global singleton reference.
|
|
80
|
+
*
|
|
81
|
+
* The global client reference is always cleared, even if shutdown fails.
|
|
82
|
+
*
|
|
83
|
+
* @returns Promise that resolves when shutdown completes.
|
|
84
|
+
*/
|
|
85
|
+
shutdown(): Promise<void>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Options for initializing the global Prefactor client.
|
|
89
|
+
*/
|
|
90
|
+
export interface PrefactorOptions {
|
|
91
|
+
/** Provider integration used to create middleware and defaults. */
|
|
92
|
+
provider: PrefactorProvider;
|
|
93
|
+
/** Optional HTTP configuration overrides for the runtime config. */
|
|
94
|
+
httpConfig?: Config['httpConfig'];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Initializes and returns the process-wide Prefactor client singleton.
|
|
98
|
+
*
|
|
99
|
+
* Repeated calls return the same client instance until it is shut down.
|
|
100
|
+
*
|
|
101
|
+
* @param options - Initialization options.
|
|
102
|
+
* @returns Global Prefactor client instance.
|
|
103
|
+
*/
|
|
104
|
+
export declare function init(options: PrefactorOptions): PrefactorClient;
|
|
105
|
+
/**
|
|
106
|
+
* Returns the currently initialized global Prefactor client, if any.
|
|
107
|
+
*
|
|
108
|
+
* @returns Active global client or `null`.
|
|
109
|
+
*/
|
|
110
|
+
export declare function getClient(): PrefactorClient | null;
|
|
111
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,oBAAoB,EAClC,MAAM,EAAE,MAAM,GACb,cAAc,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACnE;AAKD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAE7C;;;;;;OAMG;gBACS,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB;IAMtF;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAInB;;;;OAIG;IACH,aAAa,IAAI,cAAc;IAI/B;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAa7E;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAShC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CA2C/D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,eAAe,GAAG,IAAI,CAElD"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { createConfig } from './config.js';
|
|
2
|
+
import { createCore } from './create-core.js';
|
|
3
|
+
import { withSpan as coreWithSpan } from './tracing/with-span.js';
|
|
4
|
+
import { configureLogging } from './utils/logging.js';
|
|
5
|
+
let prefactorClient = null;
|
|
6
|
+
let prefactorInitKey = null;
|
|
7
|
+
export class PrefactorClient {
|
|
8
|
+
core;
|
|
9
|
+
middleware;
|
|
10
|
+
provider;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a Prefactor client bound to a runtime and provider middleware.
|
|
13
|
+
*
|
|
14
|
+
* @param core - Initialized core runtime.
|
|
15
|
+
* @param middleware - Provider middleware returned by the integration.
|
|
16
|
+
* @param provider - Provider used to construct the client.
|
|
17
|
+
*/
|
|
18
|
+
constructor(core, middleware, provider) {
|
|
19
|
+
this.core = core;
|
|
20
|
+
this.middleware = middleware;
|
|
21
|
+
this.provider = provider;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns the runtime tracer used by this client.
|
|
25
|
+
*
|
|
26
|
+
* @returns Active tracer instance.
|
|
27
|
+
*/
|
|
28
|
+
getTracer() {
|
|
29
|
+
return this.core.tracer;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Returns provider middleware created during initialization.
|
|
33
|
+
*
|
|
34
|
+
* @returns Provider middleware object.
|
|
35
|
+
*/
|
|
36
|
+
getMiddleware() {
|
|
37
|
+
return this.middleware;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Runs a function within a manually-created span.
|
|
41
|
+
*
|
|
42
|
+
* @param options - Manual span options.
|
|
43
|
+
* @param fn - Function executed inside the created span.
|
|
44
|
+
* @returns Result of `fn` as a promise.
|
|
45
|
+
*/
|
|
46
|
+
withSpan(options, fn) {
|
|
47
|
+
return coreWithSpan(this.core.tracer, {
|
|
48
|
+
name: options.name,
|
|
49
|
+
spanType: options.spanType,
|
|
50
|
+
inputs: options.inputs,
|
|
51
|
+
metadata: options.metadata,
|
|
52
|
+
}, fn);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Flushes pending telemetry and releases the global singleton reference.
|
|
56
|
+
*
|
|
57
|
+
* The global client reference is always cleared, even if shutdown fails.
|
|
58
|
+
*
|
|
59
|
+
* @returns Promise that resolves when shutdown completes.
|
|
60
|
+
*/
|
|
61
|
+
async shutdown() {
|
|
62
|
+
try {
|
|
63
|
+
await this.provider.shutdown?.();
|
|
64
|
+
await this.core.shutdown();
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
prefactorClient = null;
|
|
68
|
+
prefactorInitKey = null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Initializes and returns the process-wide Prefactor client singleton.
|
|
74
|
+
*
|
|
75
|
+
* Repeated calls return the same client instance until it is shut down.
|
|
76
|
+
*
|
|
77
|
+
* @param options - Initialization options.
|
|
78
|
+
* @returns Global Prefactor client instance.
|
|
79
|
+
*/
|
|
80
|
+
export function init(options) {
|
|
81
|
+
const nextInitKey = buildInitKey(options);
|
|
82
|
+
if (prefactorClient) {
|
|
83
|
+
if (prefactorInitKey !== nextInitKey) {
|
|
84
|
+
throw new Error('Prefactor is already initialized with a different provider or configuration. ' +
|
|
85
|
+
'Call shutdown() before re-initializing with different options.');
|
|
86
|
+
}
|
|
87
|
+
return prefactorClient;
|
|
88
|
+
}
|
|
89
|
+
configureLogging();
|
|
90
|
+
const config = options.httpConfig ? { httpConfig: options.httpConfig } : {};
|
|
91
|
+
let finalConfig = createConfig(config);
|
|
92
|
+
const providerSchema = options.provider.getDefaultAgentSchema?.();
|
|
93
|
+
if (!finalConfig.httpConfig?.agentSchema && providerSchema && finalConfig.httpConfig) {
|
|
94
|
+
finalConfig = {
|
|
95
|
+
...finalConfig,
|
|
96
|
+
httpConfig: {
|
|
97
|
+
...finalConfig.httpConfig,
|
|
98
|
+
agentSchema: providerSchema,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const core = createCore(finalConfig);
|
|
103
|
+
const httpConfig = finalConfig.httpConfig;
|
|
104
|
+
if (httpConfig?.agentSchema) {
|
|
105
|
+
core.agentManager.registerSchema(httpConfig.agentSchema);
|
|
106
|
+
}
|
|
107
|
+
const middleware = options.provider.createMiddleware(core.tracer, core.agentManager, finalConfig);
|
|
108
|
+
prefactorClient = new PrefactorClient(core, middleware, options.provider);
|
|
109
|
+
prefactorInitKey = nextInitKey;
|
|
110
|
+
return prefactorClient;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Returns the currently initialized global Prefactor client, if any.
|
|
114
|
+
*
|
|
115
|
+
* @returns Active global client or `null`.
|
|
116
|
+
*/
|
|
117
|
+
export function getClient() {
|
|
118
|
+
return prefactorClient;
|
|
119
|
+
}
|
|
120
|
+
function buildInitKey(options) {
|
|
121
|
+
const providerType = options.provider.constructor?.name ?? 'anonymous-provider';
|
|
122
|
+
return `${providerType}:${stableStringify(options.httpConfig ?? null)}`;
|
|
123
|
+
}
|
|
124
|
+
function stableStringify(value) {
|
|
125
|
+
return JSON.stringify(normalizeValue(value));
|
|
126
|
+
}
|
|
127
|
+
function normalizeValue(value) {
|
|
128
|
+
if (Array.isArray(value)) {
|
|
129
|
+
return value.map((entry) => normalizeValue(entry));
|
|
130
|
+
}
|
|
131
|
+
if (value && typeof value === 'object') {
|
|
132
|
+
const normalized = {};
|
|
133
|
+
const objectValue = value;
|
|
134
|
+
const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));
|
|
135
|
+
for (const key of keys) {
|
|
136
|
+
normalized[key] = normalizeValue(objectValue[key]);
|
|
137
|
+
}
|
|
138
|
+
return normalized;
|
|
139
|
+
}
|
|
140
|
+
return value;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -79,7 +79,7 @@ export type Config = z.infer<typeof ConfigSchema>;
|
|
|
79
79
|
* const config = createConfig({
|
|
80
80
|
* transportType: 'http',
|
|
81
81
|
* httpConfig: {
|
|
82
|
-
* apiUrl: 'https://
|
|
82
|
+
* apiUrl: 'https://app.prefactorai.com',
|
|
83
83
|
* apiToken: process.env.PREFACTOR_API_TOKEN!,
|
|
84
84
|
* }
|
|
85
85
|
* });
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;iBAuCpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAclC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;iBAqBvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;iBAuCpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAclC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;iBAqBvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAwB9D"}
|
package/dist/config.js
CHANGED
|
@@ -85,7 +85,7 @@ export const ConfigSchema = z.object({
|
|
|
85
85
|
* const config = createConfig({
|
|
86
86
|
* transportType: 'http',
|
|
87
87
|
* httpConfig: {
|
|
88
|
-
* apiUrl: 'https://
|
|
88
|
+
* apiUrl: 'https://app.prefactorai.com',
|
|
89
89
|
* apiToken: process.env.PREFACTOR_API_TOKEN!,
|
|
90
90
|
* }
|
|
91
91
|
* });
|
|
@@ -94,7 +94,7 @@ export const ConfigSchema = z.object({
|
|
|
94
94
|
export function createConfig(options) {
|
|
95
95
|
const retryOnStatusCodesFromEnv = parseRetryOnStatusCodesEnv(process.env.PREFACTOR_RETRY_ON_STATUS_CODES);
|
|
96
96
|
const config = {
|
|
97
|
-
transportType: options?.transportType ??
|
|
97
|
+
transportType: options?.transportType ?? 'http',
|
|
98
98
|
sampleRate: options?.sampleRate ?? parseFloat(process.env.PREFACTOR_SAMPLE_RATE ?? '1.0'),
|
|
99
99
|
captureInputs: options?.captureInputs ?? process.env.PREFACTOR_CAPTURE_INPUTS !== 'false',
|
|
100
100
|
captureOutputs: options?.captureOutputs ?? process.env.PREFACTOR_CAPTURE_OUTPUTS !== 'false',
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/create-core.d.ts
CHANGED
|
@@ -2,9 +2,18 @@ import { AgentInstanceManager } from './agent/instance-manager.js';
|
|
|
2
2
|
import type { Config } from './config.js';
|
|
3
3
|
import { Tracer } from './tracing/tracer.js';
|
|
4
4
|
export type CoreRuntime = {
|
|
5
|
+
/** Active tracer used to create and finish spans. */
|
|
5
6
|
tracer: Tracer;
|
|
7
|
+
/** Agent instance lifecycle manager bound to the configured transport. */
|
|
6
8
|
agentManager: AgentInstanceManager;
|
|
9
|
+
/** Gracefully shuts down the runtime and flushes transport work. */
|
|
7
10
|
shutdown: () => Promise<void>;
|
|
8
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Creates a fully initialized core runtime from validated SDK configuration.
|
|
14
|
+
*
|
|
15
|
+
* @param config - Resolved SDK configuration.
|
|
16
|
+
* @returns Runtime containing tracer, agent manager, and shutdown function.
|
|
17
|
+
*/
|
|
9
18
|
export declare function createCore(config: Config): CoreRuntime;
|
|
10
19
|
//# sourceMappingURL=create-core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-core.d.ts","sourceRoot":"","sources":["../src/create-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"create-core.d.ts","sourceRoot":"","sources":["../src/create-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,MAAM,MAAM,WAAW,GAAG;IACxB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IAEf,0EAA0E;IAC1E,YAAY,EAAE,oBAAoB,CAAC;IAEnC,oEAAoE;IACpE,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAiCtD"}
|
package/dist/create-core.js
CHANGED
|
@@ -5,6 +5,12 @@ import { setActiveCoreRuntime } from './lifecycle.js';
|
|
|
5
5
|
import { clearActiveTracer, setActiveTracer } from './tracing/active-tracer.js';
|
|
6
6
|
import { Tracer } from './tracing/tracer.js';
|
|
7
7
|
import { HttpTransport } from './transport/http.js';
|
|
8
|
+
/**
|
|
9
|
+
* Creates a fully initialized core runtime from validated SDK configuration.
|
|
10
|
+
*
|
|
11
|
+
* @param config - Resolved SDK configuration.
|
|
12
|
+
* @returns Runtime containing tracer, agent manager, and shutdown function.
|
|
13
|
+
*/
|
|
8
14
|
export function createCore(config) {
|
|
9
15
|
if (!config.httpConfig) {
|
|
10
16
|
throw new Error('HTTP transport requires httpConfig to be provided in configuration');
|
package/dist/create-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-core.js","sourceRoot":"","sources":["../src/create-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-core.js","sourceRoot":"","sources":["../src/create-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAapD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;IAEhD,IAAI,SAAgC,CAAC;IACrC,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,SAAS,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChD,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC,SAAS,EAAE;QACvD,uBAAuB;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,OAAO,GAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IAChE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -34,7 +34,9 @@ __export(exports_src, {
|
|
|
34
34
|
shutdown: () => shutdown,
|
|
35
35
|
serializeValue: () => serializeValue,
|
|
36
36
|
registerShutdownHandler: () => registerShutdownHandler,
|
|
37
|
+
init: () => init,
|
|
37
38
|
getLogger: () => getLogger,
|
|
39
|
+
getClient: () => getClient,
|
|
38
40
|
createSpanTypePrefixer: () => createSpanTypePrefixer,
|
|
39
41
|
createCore: () => createCore,
|
|
40
42
|
createConfig: () => createConfig,
|
|
@@ -43,12 +45,12 @@ __export(exports_src, {
|
|
|
43
45
|
SpanType: () => SpanType,
|
|
44
46
|
SpanStatus: () => SpanStatus,
|
|
45
47
|
SpanContext: () => SpanContext,
|
|
48
|
+
PrefactorClient: () => PrefactorClient,
|
|
46
49
|
PartialHttpConfigSchema: () => PartialHttpConfigSchema,
|
|
47
50
|
HttpTransportConfigSchema: () => HttpTransportConfigSchema,
|
|
48
51
|
HttpTransport: () => HttpTransport,
|
|
49
52
|
HttpClientError: () => HttpClientError,
|
|
50
53
|
HttpClient: () => HttpClient,
|
|
51
|
-
HTTPClient: () => HttpClient,
|
|
52
54
|
ConfigSchema: () => ConfigSchema,
|
|
53
55
|
AgentSpanClient: () => AgentSpanClient,
|
|
54
56
|
AgentInstanceManager: () => AgentInstanceManager,
|
|
@@ -155,7 +157,7 @@ var ConfigSchema = import_zod.z.object({
|
|
|
155
157
|
function createConfig(options) {
|
|
156
158
|
const retryOnStatusCodesFromEnv = parseRetryOnStatusCodesEnv(process.env.PREFACTOR_RETRY_ON_STATUS_CODES);
|
|
157
159
|
const config = {
|
|
158
|
-
transportType: options?.transportType ??
|
|
160
|
+
transportType: options?.transportType ?? "http",
|
|
159
161
|
sampleRate: options?.sampleRate ?? parseFloat(process.env.PREFACTOR_SAMPLE_RATE ?? "1.0"),
|
|
160
162
|
captureInputs: options?.captureInputs ?? process.env.PREFACTOR_CAPTURE_INPUTS !== "false",
|
|
161
163
|
captureOutputs: options?.captureOutputs ?? process.env.PREFACTOR_CAPTURE_OUTPUTS !== "false",
|
|
@@ -175,6 +177,7 @@ function parseRetryOnStatusCodesEnv(value) {
|
|
|
175
177
|
const parsedCodes = value.split(",").map((status) => status.trim()).filter((status) => /^\d{3}$/.test(status)).map((status) => Number(status)).filter((status) => status >= 100 && status <= 599);
|
|
176
178
|
return parsedCodes.length > 0 ? parsedCodes : undefined;
|
|
177
179
|
}
|
|
180
|
+
|
|
178
181
|
// packages/core/src/create-core.ts
|
|
179
182
|
var import_pfid2 = require("@prefactor/pfid");
|
|
180
183
|
|
|
@@ -567,6 +570,18 @@ function configureLogging() {
|
|
|
567
570
|
}
|
|
568
571
|
}
|
|
569
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
|
+
|
|
570
585
|
// packages/core/src/transport/http/agent-instance-client.ts
|
|
571
586
|
class AgentInstanceClient {
|
|
572
587
|
httpClient;
|
|
@@ -576,19 +591,21 @@ class AgentInstanceClient {
|
|
|
576
591
|
register(payload) {
|
|
577
592
|
return this.httpClient.request("/api/v1/agent_instance/register", {
|
|
578
593
|
method: "POST",
|
|
579
|
-
body: payload
|
|
594
|
+
body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) }
|
|
580
595
|
});
|
|
581
596
|
}
|
|
582
597
|
start(agentInstanceId, options) {
|
|
598
|
+
const opts = options ?? {};
|
|
583
599
|
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {
|
|
584
600
|
method: "POST",
|
|
585
|
-
body:
|
|
601
|
+
body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) }
|
|
586
602
|
});
|
|
587
603
|
}
|
|
588
604
|
finish(agentInstanceId, options) {
|
|
605
|
+
const opts = options ?? {};
|
|
589
606
|
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {
|
|
590
607
|
method: "POST",
|
|
591
|
-
body:
|
|
608
|
+
body: { ...opts, idempotency_key: ensureIdempotencyKey(opts.idempotency_key) }
|
|
592
609
|
});
|
|
593
610
|
}
|
|
594
611
|
}
|
|
@@ -735,7 +752,7 @@ class AgentSpanClient {
|
|
|
735
752
|
create(payload) {
|
|
736
753
|
return this.httpClient.request("/api/v1/agent_spans", {
|
|
737
754
|
method: "POST",
|
|
738
|
-
body: payload
|
|
755
|
+
body: { ...payload, idempotency_key: ensureIdempotencyKey(payload.idempotency_key) }
|
|
739
756
|
});
|
|
740
757
|
}
|
|
741
758
|
async finish(spanId, timestamp, options = {}) {
|
|
@@ -744,7 +761,8 @@ class AgentSpanClient {
|
|
|
744
761
|
method: "POST",
|
|
745
762
|
body: {
|
|
746
763
|
timestamp,
|
|
747
|
-
...options
|
|
764
|
+
...options,
|
|
765
|
+
idempotency_key: ensureIdempotencyKey(options.idempotency_key)
|
|
748
766
|
}
|
|
749
767
|
});
|
|
750
768
|
} catch (error) {
|
|
@@ -1097,6 +1115,7 @@ function createCore(config) {
|
|
|
1097
1115
|
setActiveCoreRuntime(runtime);
|
|
1098
1116
|
return runtime;
|
|
1099
1117
|
}
|
|
1118
|
+
|
|
1100
1119
|
// packages/core/src/tracing/with-span.ts
|
|
1101
1120
|
async function withSpan(tracerOrOptions, optionsOrFn, maybeFn) {
|
|
1102
1121
|
const { tracer, options, fn } = resolveArgs(tracerOrOptions, optionsOrFn, maybeFn);
|
|
@@ -1145,6 +1164,100 @@ function resolveArgs(tracerOrOptions, optionsOrFn, maybeFn) {
|
|
|
1145
1164
|
fn: optionsOrFn
|
|
1146
1165
|
};
|
|
1147
1166
|
}
|
|
1167
|
+
|
|
1168
|
+
// packages/core/src/client.ts
|
|
1169
|
+
var prefactorClient = null;
|
|
1170
|
+
var prefactorInitKey = null;
|
|
1171
|
+
|
|
1172
|
+
class PrefactorClient {
|
|
1173
|
+
core;
|
|
1174
|
+
middleware;
|
|
1175
|
+
provider;
|
|
1176
|
+
constructor(core, middleware, provider) {
|
|
1177
|
+
this.core = core;
|
|
1178
|
+
this.middleware = middleware;
|
|
1179
|
+
this.provider = provider;
|
|
1180
|
+
}
|
|
1181
|
+
getTracer() {
|
|
1182
|
+
return this.core.tracer;
|
|
1183
|
+
}
|
|
1184
|
+
getMiddleware() {
|
|
1185
|
+
return this.middleware;
|
|
1186
|
+
}
|
|
1187
|
+
withSpan(options, fn) {
|
|
1188
|
+
return withSpan(this.core.tracer, {
|
|
1189
|
+
name: options.name,
|
|
1190
|
+
spanType: options.spanType,
|
|
1191
|
+
inputs: options.inputs,
|
|
1192
|
+
metadata: options.metadata
|
|
1193
|
+
}, fn);
|
|
1194
|
+
}
|
|
1195
|
+
async shutdown() {
|
|
1196
|
+
try {
|
|
1197
|
+
await this.provider.shutdown?.();
|
|
1198
|
+
await this.core.shutdown();
|
|
1199
|
+
} finally {
|
|
1200
|
+
prefactorClient = null;
|
|
1201
|
+
prefactorInitKey = null;
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
function init(options) {
|
|
1206
|
+
const nextInitKey = buildInitKey(options);
|
|
1207
|
+
if (prefactorClient) {
|
|
1208
|
+
if (prefactorInitKey !== nextInitKey) {
|
|
1209
|
+
throw new Error("Prefactor is already initialized with a different provider or configuration. " + "Call shutdown() before re-initializing with different options.");
|
|
1210
|
+
}
|
|
1211
|
+
return prefactorClient;
|
|
1212
|
+
}
|
|
1213
|
+
configureLogging();
|
|
1214
|
+
const config = options.httpConfig ? { httpConfig: options.httpConfig } : {};
|
|
1215
|
+
let finalConfig = createConfig(config);
|
|
1216
|
+
const providerSchema = options.provider.getDefaultAgentSchema?.();
|
|
1217
|
+
if (!finalConfig.httpConfig?.agentSchema && providerSchema && finalConfig.httpConfig) {
|
|
1218
|
+
finalConfig = {
|
|
1219
|
+
...finalConfig,
|
|
1220
|
+
httpConfig: {
|
|
1221
|
+
...finalConfig.httpConfig,
|
|
1222
|
+
agentSchema: providerSchema
|
|
1223
|
+
}
|
|
1224
|
+
};
|
|
1225
|
+
}
|
|
1226
|
+
const core = createCore(finalConfig);
|
|
1227
|
+
const httpConfig = finalConfig.httpConfig;
|
|
1228
|
+
if (httpConfig?.agentSchema) {
|
|
1229
|
+
core.agentManager.registerSchema(httpConfig.agentSchema);
|
|
1230
|
+
}
|
|
1231
|
+
const middleware = options.provider.createMiddleware(core.tracer, core.agentManager, finalConfig);
|
|
1232
|
+
prefactorClient = new PrefactorClient(core, middleware, options.provider);
|
|
1233
|
+
prefactorInitKey = nextInitKey;
|
|
1234
|
+
return prefactorClient;
|
|
1235
|
+
}
|
|
1236
|
+
function getClient() {
|
|
1237
|
+
return prefactorClient;
|
|
1238
|
+
}
|
|
1239
|
+
function buildInitKey(options) {
|
|
1240
|
+
const providerType = options.provider.constructor?.name ?? "anonymous-provider";
|
|
1241
|
+
return `${providerType}:${stableStringify2(options.httpConfig ?? null)}`;
|
|
1242
|
+
}
|
|
1243
|
+
function stableStringify2(value) {
|
|
1244
|
+
return JSON.stringify(normalizeValue2(value));
|
|
1245
|
+
}
|
|
1246
|
+
function normalizeValue2(value) {
|
|
1247
|
+
if (Array.isArray(value)) {
|
|
1248
|
+
return value.map((entry) => normalizeValue2(entry));
|
|
1249
|
+
}
|
|
1250
|
+
if (value && typeof value === "object") {
|
|
1251
|
+
const normalized = {};
|
|
1252
|
+
const objectValue = value;
|
|
1253
|
+
const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));
|
|
1254
|
+
for (const key of keys) {
|
|
1255
|
+
normalized[key] = normalizeValue2(objectValue[key]);
|
|
1256
|
+
}
|
|
1257
|
+
return normalized;
|
|
1258
|
+
}
|
|
1259
|
+
return value;
|
|
1260
|
+
}
|
|
1148
1261
|
// packages/core/src/utils/serialization.ts
|
|
1149
1262
|
function truncateString(value, maxLength) {
|
|
1150
1263
|
if (value.length <= maxLength) {
|
|
@@ -1179,4 +1292,4 @@ function serializeValue(value, maxLength = 1e4) {
|
|
|
1179
1292
|
}
|
|
1180
1293
|
}
|
|
1181
1294
|
|
|
1182
|
-
//# debugId=
|
|
1295
|
+
//# debugId=4C0DC6DB86519AD564756E2164756E21
|