@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.
Files changed (47) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/instance-manager.d.ts +4 -0
  3. package/dist/agent/instance-manager.d.ts.map +1 -1
  4. package/dist/agent/instance-manager.js +3 -0
  5. package/dist/agent/instance-manager.js.map +1 -1
  6. package/dist/client.d.ts +111 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +142 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/config.d.ts +1 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +2 -2
  13. package/dist/config.js.map +1 -1
  14. package/dist/create-core.d.ts +9 -0
  15. package/dist/create-core.d.ts.map +1 -1
  16. package/dist/create-core.js +6 -0
  17. package/dist/create-core.js.map +1 -1
  18. package/dist/index.cjs +110 -10
  19. package/dist/index.cjs.map +13 -12
  20. package/dist/index.d.ts +56 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +110 -10
  23. package/dist/index.js.map +13 -12
  24. package/dist/lifecycle.d.ts +15 -0
  25. package/dist/lifecycle.d.ts.map +1 -1
  26. package/dist/lifecycle.js +15 -0
  27. package/dist/lifecycle.js.map +1 -1
  28. package/dist/tracing/span.d.ts +9 -0
  29. package/dist/tracing/span.d.ts.map +1 -1
  30. package/dist/tracing/span.js +6 -0
  31. package/dist/tracing/span.js.map +1 -1
  32. package/dist/tracing/with-span.d.ts +15 -0
  33. package/dist/tracing/with-span.d.ts.map +1 -1
  34. package/dist/tracing/with-span.js +3 -0
  35. package/dist/tracing/with-span.js.map +1 -1
  36. package/dist/transport/http/agent-instance-client.d.ts +12 -2
  37. package/dist/transport/http/agent-instance-client.d.ts.map +1 -1
  38. package/dist/transport/http/agent-instance-client.js +6 -6
  39. package/dist/transport/http/agent-instance-client.js.map +1 -1
  40. package/dist/transport/http/agent-span-client.d.ts +3 -0
  41. package/dist/transport/http/agent-span-client.d.ts.map +1 -1
  42. package/dist/transport/http/agent-span-client.js.map +1 -1
  43. package/dist/transport/http.d.ts +12 -0
  44. package/dist/transport/http.d.ts.map +1 -1
  45. package/dist/transport/http.js +3 -0
  46. package/dist/transport/http.js.map +1 -1
  47. package/package.json +1 -1
package/README.md CHANGED
@@ -38,7 +38,7 @@ import {
38
38
  const config = createConfig({
39
39
  transportType: 'http',
40
40
  httpConfig: {
41
- apiUrl: 'https://api.prefactor.ai',
41
+ apiUrl: 'https://app.prefactorai.com',
42
42
  apiToken: 'your-token',
43
43
  },
44
44
  });
@@ -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,3 +1,6 @@
1
+ /**
2
+ * Coordinates agent instance lifecycle and schema registration for a transport.
3
+ */
1
4
  export class AgentInstanceManager {
2
5
  transport;
3
6
  options;
@@ -1 +1 @@
1
- {"version":3,"file":"instance-manager.js","sourceRoot":"","sources":["../../src/agent/instance-manager.ts"],"names":[],"mappings":"AAQA,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"}
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"}
@@ -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://api.prefactor.ai',
82
+ * apiUrl: 'https://app.prefactorai.com',
83
83
  * apiToken: process.env.PREFACTOR_API_TOKEN!,
84
84
  * }
85
85
  * });
@@ -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,CAyB9D"}
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://api.prefactor.ai',
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 ?? process.env.PREFACTOR_TRANSPORT ?? 'http',
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',
@@ -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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"}
@@ -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;IACf,YAAY,EAAE,oBAAoB,CAAC;IACnC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAiCtD"}
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"}
@@ -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');
@@ -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;AAQpD,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"}
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
- AgentInstanceManager: () => AgentInstanceManager
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 ?? process.env.PREFACTOR_TRANSPORT ?? "http",
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
- async start(agentInstanceId) {
581
- await this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {
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
- async finish(agentInstanceId) {
587
- await this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {
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=DD09F9B0FBD2D90664756E2164756E21
1280
+ //# debugId=2826E9E8646402EF64756E2164756E21