@prefactor/core 0.2.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +110 -10
- package/dist/index.cjs.map +13 -12
- package/dist/index.d.ts +56 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -10
- package/dist/index.js.map +13 -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 +12 -2
- package/dist/transport/http/agent-instance-client.d.ts.map +1 -1
- package/dist/transport/http/agent-instance-client.js +6 -6
- package/dist/transport/http/agent-instance-client.js.map +1 -1
- package/dist/transport/http/agent-span-client.d.ts +3 -0
- package/dist/transport/http/agent-span-client.d.ts.map +1 -1
- package/dist/transport/http/agent-span-client.js.map +1 -1
- 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":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAkDtD,IAAI,eAAe,GAA2B,IAAI,CAAC;AACnD,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAE3C,MAAM,OAAO,eAAe;IACT,IAAI,CAAc;IAClB,UAAU,CAAiB;IAC3B,QAAQ,CAAoB;IAE7C;;;;;;OAMG;IACH,YAAY,IAAiB,EAAE,UAA0B,EAAE,QAA2B;QACpF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAI,OAA0B,EAAE,EAAwB;QAC9D,OAAO,YAAY,CACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAA0D;YAC5E,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,EACD,EAAE,CACW,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,eAAe,GAAG,IAAI,CAAC;YACvB,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,OAAyB;IAC5C,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,+EAA+E;gBAC7E,gEAAgE,CACnE,CAAC;QACJ,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,gBAAgB,EAAE,CAAC;IAEnB,MAAM,MAAM,GAAoB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7F,IAAI,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,CAAC;IAClE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,IAAI,cAAc,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QACrF,WAAW,GAAG;YACZ,GAAG,WAAW;YACd,UAAU,EAAE;gBACV,GAAG,WAAW,CAAC,UAAU;gBACzB,WAAW,EAAE,cAAc;aAC5B;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAErC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAC1C,IAAI,UAAU,EAAE,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAElG,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,gBAAgB,GAAG,WAAW,CAAC;IAE/B,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,OAAyB;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,IAAI,oBAAoB,CAAC;IAChF,OAAO,GAAG,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,CAAC;AAC1E,CAAC;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/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,14 +45,16 @@ __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,
|
|
56
|
+
AgentInstanceManager: () => AgentInstanceManager,
|
|
57
|
+
AgentInstanceClient: () => AgentInstanceClient
|
|
54
58
|
});
|
|
55
59
|
module.exports = __toCommonJS(exports_src);
|
|
56
60
|
|
|
@@ -153,7 +157,7 @@ var ConfigSchema = import_zod.z.object({
|
|
|
153
157
|
function createConfig(options) {
|
|
154
158
|
const retryOnStatusCodesFromEnv = parseRetryOnStatusCodesEnv(process.env.PREFACTOR_RETRY_ON_STATUS_CODES);
|
|
155
159
|
const config = {
|
|
156
|
-
transportType: options?.transportType ??
|
|
160
|
+
transportType: options?.transportType ?? "http",
|
|
157
161
|
sampleRate: options?.sampleRate ?? parseFloat(process.env.PREFACTOR_SAMPLE_RATE ?? "1.0"),
|
|
158
162
|
captureInputs: options?.captureInputs ?? process.env.PREFACTOR_CAPTURE_INPUTS !== "false",
|
|
159
163
|
captureOutputs: options?.captureOutputs ?? process.env.PREFACTOR_CAPTURE_OUTPUTS !== "false",
|
|
@@ -173,6 +177,7 @@ function parseRetryOnStatusCodesEnv(value) {
|
|
|
173
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);
|
|
174
178
|
return parsedCodes.length > 0 ? parsedCodes : undefined;
|
|
175
179
|
}
|
|
180
|
+
|
|
176
181
|
// packages/core/src/create-core.ts
|
|
177
182
|
var import_pfid2 = require("@prefactor/pfid");
|
|
178
183
|
|
|
@@ -577,16 +582,16 @@ class AgentInstanceClient {
|
|
|
577
582
|
body: payload
|
|
578
583
|
});
|
|
579
584
|
}
|
|
580
|
-
|
|
581
|
-
|
|
585
|
+
start(agentInstanceId, options) {
|
|
586
|
+
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {
|
|
582
587
|
method: "POST",
|
|
583
|
-
body: {}
|
|
588
|
+
body: options ?? {}
|
|
584
589
|
});
|
|
585
590
|
}
|
|
586
|
-
|
|
587
|
-
|
|
591
|
+
finish(agentInstanceId, options) {
|
|
592
|
+
return this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {
|
|
588
593
|
method: "POST",
|
|
589
|
-
body: {}
|
|
594
|
+
body: options ?? {}
|
|
590
595
|
});
|
|
591
596
|
}
|
|
592
597
|
}
|
|
@@ -1095,6 +1100,7 @@ function createCore(config) {
|
|
|
1095
1100
|
setActiveCoreRuntime(runtime);
|
|
1096
1101
|
return runtime;
|
|
1097
1102
|
}
|
|
1103
|
+
|
|
1098
1104
|
// packages/core/src/tracing/with-span.ts
|
|
1099
1105
|
async function withSpan(tracerOrOptions, optionsOrFn, maybeFn) {
|
|
1100
1106
|
const { tracer, options, fn } = resolveArgs(tracerOrOptions, optionsOrFn, maybeFn);
|
|
@@ -1143,6 +1149,100 @@ function resolveArgs(tracerOrOptions, optionsOrFn, maybeFn) {
|
|
|
1143
1149
|
fn: optionsOrFn
|
|
1144
1150
|
};
|
|
1145
1151
|
}
|
|
1152
|
+
|
|
1153
|
+
// packages/core/src/client.ts
|
|
1154
|
+
var prefactorClient = null;
|
|
1155
|
+
var prefactorInitKey = null;
|
|
1156
|
+
|
|
1157
|
+
class PrefactorClient {
|
|
1158
|
+
core;
|
|
1159
|
+
middleware;
|
|
1160
|
+
provider;
|
|
1161
|
+
constructor(core, middleware, provider) {
|
|
1162
|
+
this.core = core;
|
|
1163
|
+
this.middleware = middleware;
|
|
1164
|
+
this.provider = provider;
|
|
1165
|
+
}
|
|
1166
|
+
getTracer() {
|
|
1167
|
+
return this.core.tracer;
|
|
1168
|
+
}
|
|
1169
|
+
getMiddleware() {
|
|
1170
|
+
return this.middleware;
|
|
1171
|
+
}
|
|
1172
|
+
withSpan(options, fn) {
|
|
1173
|
+
return withSpan(this.core.tracer, {
|
|
1174
|
+
name: options.name,
|
|
1175
|
+
spanType: options.spanType,
|
|
1176
|
+
inputs: options.inputs,
|
|
1177
|
+
metadata: options.metadata
|
|
1178
|
+
}, fn);
|
|
1179
|
+
}
|
|
1180
|
+
async shutdown() {
|
|
1181
|
+
try {
|
|
1182
|
+
await this.provider.shutdown?.();
|
|
1183
|
+
await this.core.shutdown();
|
|
1184
|
+
} finally {
|
|
1185
|
+
prefactorClient = null;
|
|
1186
|
+
prefactorInitKey = null;
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
function init(options) {
|
|
1191
|
+
const nextInitKey = buildInitKey(options);
|
|
1192
|
+
if (prefactorClient) {
|
|
1193
|
+
if (prefactorInitKey !== nextInitKey) {
|
|
1194
|
+
throw new Error("Prefactor is already initialized with a different provider or configuration. " + "Call shutdown() before re-initializing with different options.");
|
|
1195
|
+
}
|
|
1196
|
+
return prefactorClient;
|
|
1197
|
+
}
|
|
1198
|
+
configureLogging();
|
|
1199
|
+
const config = options.httpConfig ? { httpConfig: options.httpConfig } : {};
|
|
1200
|
+
let finalConfig = createConfig(config);
|
|
1201
|
+
const providerSchema = options.provider.getDefaultAgentSchema?.();
|
|
1202
|
+
if (!finalConfig.httpConfig?.agentSchema && providerSchema && finalConfig.httpConfig) {
|
|
1203
|
+
finalConfig = {
|
|
1204
|
+
...finalConfig,
|
|
1205
|
+
httpConfig: {
|
|
1206
|
+
...finalConfig.httpConfig,
|
|
1207
|
+
agentSchema: providerSchema
|
|
1208
|
+
}
|
|
1209
|
+
};
|
|
1210
|
+
}
|
|
1211
|
+
const core = createCore(finalConfig);
|
|
1212
|
+
const httpConfig = finalConfig.httpConfig;
|
|
1213
|
+
if (httpConfig?.agentSchema) {
|
|
1214
|
+
core.agentManager.registerSchema(httpConfig.agentSchema);
|
|
1215
|
+
}
|
|
1216
|
+
const middleware = options.provider.createMiddleware(core.tracer, core.agentManager, finalConfig);
|
|
1217
|
+
prefactorClient = new PrefactorClient(core, middleware, options.provider);
|
|
1218
|
+
prefactorInitKey = nextInitKey;
|
|
1219
|
+
return prefactorClient;
|
|
1220
|
+
}
|
|
1221
|
+
function getClient() {
|
|
1222
|
+
return prefactorClient;
|
|
1223
|
+
}
|
|
1224
|
+
function buildInitKey(options) {
|
|
1225
|
+
const providerType = options.provider.constructor?.name ?? "anonymous-provider";
|
|
1226
|
+
return `${providerType}:${stableStringify2(options.httpConfig ?? null)}`;
|
|
1227
|
+
}
|
|
1228
|
+
function stableStringify2(value) {
|
|
1229
|
+
return JSON.stringify(normalizeValue2(value));
|
|
1230
|
+
}
|
|
1231
|
+
function normalizeValue2(value) {
|
|
1232
|
+
if (Array.isArray(value)) {
|
|
1233
|
+
return value.map((entry) => normalizeValue2(entry));
|
|
1234
|
+
}
|
|
1235
|
+
if (value && typeof value === "object") {
|
|
1236
|
+
const normalized = {};
|
|
1237
|
+
const objectValue = value;
|
|
1238
|
+
const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));
|
|
1239
|
+
for (const key of keys) {
|
|
1240
|
+
normalized[key] = normalizeValue2(objectValue[key]);
|
|
1241
|
+
}
|
|
1242
|
+
return normalized;
|
|
1243
|
+
}
|
|
1244
|
+
return value;
|
|
1245
|
+
}
|
|
1146
1246
|
// packages/core/src/utils/serialization.ts
|
|
1147
1247
|
function truncateString(value, maxLength) {
|
|
1148
1248
|
if (value.length <= maxLength) {
|
|
@@ -1177,4 +1277,4 @@ function serializeValue(value, maxLength = 1e4) {
|
|
|
1177
1277
|
}
|
|
1178
1278
|
}
|
|
1179
1279
|
|
|
1180
|
-
//# debugId=
|
|
1280
|
+
//# debugId=2826E9E8646402EF64756E2164756E21
|