@launchdarkly/server-sdk-ai 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +68 -0
  3. package/dist/LDAIClientImpl.d.ts +11 -0
  4. package/dist/LDAIClientImpl.d.ts.map +1 -0
  5. package/dist/LDAIClientImpl.js +35 -0
  6. package/dist/LDAIClientImpl.js.map +1 -0
  7. package/dist/LDAIConfigTrackerImpl.d.ts +40 -0
  8. package/dist/LDAIConfigTrackerImpl.d.ts.map +1 -0
  9. package/dist/LDAIConfigTrackerImpl.js +79 -0
  10. package/dist/LDAIConfigTrackerImpl.js.map +1 -0
  11. package/dist/LDClientMin.d.ts +10 -0
  12. package/dist/LDClientMin.d.ts.map +1 -0
  13. package/dist/LDClientMin.js +3 -0
  14. package/dist/LDClientMin.js.map +1 -0
  15. package/dist/api/LDAIClient.d.ts +62 -0
  16. package/dist/api/LDAIClient.d.ts.map +1 -0
  17. package/dist/api/LDAIClient.js +3 -0
  18. package/dist/api/LDAIClient.js.map +1 -0
  19. package/dist/api/config/LDAIConfig.d.ts +58 -0
  20. package/dist/api/config/LDAIConfig.d.ts.map +1 -0
  21. package/dist/api/config/LDAIConfig.js +3 -0
  22. package/dist/api/config/LDAIConfig.js.map +1 -0
  23. package/dist/api/config/LDAIConfigTracker.d.ts +71 -0
  24. package/dist/api/config/LDAIConfigTracker.d.ts.map +1 -0
  25. package/dist/api/config/LDAIConfigTracker.js +3 -0
  26. package/dist/api/config/LDAIConfigTracker.js.map +1 -0
  27. package/dist/api/config/index.d.ts +3 -0
  28. package/dist/api/config/index.d.ts.map +1 -0
  29. package/dist/api/config/index.js +18 -0
  30. package/dist/api/config/index.js.map +1 -0
  31. package/dist/api/index.d.ts +4 -0
  32. package/dist/api/index.d.ts.map +1 -0
  33. package/dist/api/index.js +20 -0
  34. package/dist/api/index.js.map +1 -0
  35. package/dist/api/metrics/BedrockTokenUsage.d.ts +7 -0
  36. package/dist/api/metrics/BedrockTokenUsage.d.ts.map +1 -0
  37. package/dist/api/metrics/BedrockTokenUsage.js +12 -0
  38. package/dist/api/metrics/BedrockTokenUsage.js.map +1 -0
  39. package/dist/api/metrics/LDFeedbackKind.d.ts +14 -0
  40. package/dist/api/metrics/LDFeedbackKind.d.ts.map +1 -0
  41. package/dist/api/metrics/LDFeedbackKind.js +18 -0
  42. package/dist/api/metrics/LDFeedbackKind.js.map +1 -0
  43. package/dist/api/metrics/LDTokenUsage.d.ts +18 -0
  44. package/dist/api/metrics/LDTokenUsage.d.ts.map +1 -0
  45. package/dist/api/metrics/LDTokenUsage.js +3 -0
  46. package/dist/api/metrics/LDTokenUsage.js.map +1 -0
  47. package/dist/api/metrics/OpenAiUsage.d.ts +7 -0
  48. package/dist/api/metrics/OpenAiUsage.d.ts.map +1 -0
  49. package/dist/api/metrics/OpenAiUsage.js +13 -0
  50. package/dist/api/metrics/OpenAiUsage.js.map +1 -0
  51. package/dist/api/metrics/UnderScoreTokenUsage.d.ts +3 -0
  52. package/dist/api/metrics/UnderScoreTokenUsage.d.ts.map +1 -0
  53. package/dist/api/metrics/UnderScoreTokenUsage.js +12 -0
  54. package/dist/api/metrics/UnderScoreTokenUsage.js.map +1 -0
  55. package/dist/api/metrics/index.d.ts +5 -0
  56. package/dist/api/metrics/index.d.ts.map +1 -0
  57. package/dist/api/metrics/index.js +21 -0
  58. package/dist/api/metrics/index.js.map +1 -0
  59. package/dist/index.d.ts +10 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +29 -0
  62. package/dist/index.js.map +1 -0
  63. package/docs/.nojekyll +1 -0
  64. package/docs/assets/highlight.css +85 -0
  65. package/docs/assets/icons.js +18 -0
  66. package/docs/assets/icons.svg +1 -0
  67. package/docs/assets/main.js +60 -0
  68. package/docs/assets/navigation.js +1 -0
  69. package/docs/assets/search.js +1 -0
  70. package/docs/assets/style.css +1493 -0
  71. package/docs/enums/LDFeedbackKind.html +6 -0
  72. package/docs/functions/createBedrockTokenUsage.html +1 -0
  73. package/docs/functions/createUnderscoreTokenUsage.html +1 -0
  74. package/docs/functions/initAi.html +4 -0
  75. package/docs/index.html +12 -0
  76. package/docs/interfaces/LDAIClient.html +25 -0
  77. package/docs/interfaces/LDAIConfig.html +8 -0
  78. package/docs/interfaces/LDAIConfigTracker.html +26 -0
  79. package/docs/interfaces/LDGenerationConfig.html +6 -0
  80. package/docs/interfaces/LDMessage.html +6 -0
  81. package/docs/interfaces/LDModelConfig.html +5 -0
  82. package/docs/interfaces/LDTokenUsage.html +8 -0
  83. package/package.json +53 -0
  84. package/src/LDAIClientImpl.ts +68 -0
  85. package/src/LDAIConfigTrackerImpl.ts +102 -0
  86. package/src/LDClientMin.ts +16 -0
  87. package/src/api/LDAIClient.ts +70 -0
  88. package/src/api/config/LDAIConfig.ts +64 -0
  89. package/src/api/config/LDAIConfigTracker.ts +79 -0
  90. package/src/api/config/index.ts +2 -0
  91. package/src/api/index.ts +3 -0
  92. package/src/api/metrics/BedrockTokenUsage.ts +13 -0
  93. package/src/api/metrics/LDFeedbackKind.ts +13 -0
  94. package/src/api/metrics/LDTokenUsage.ts +19 -0
  95. package/src/api/metrics/OpenAiUsage.ts +13 -0
  96. package/src/api/metrics/UnderScoreTokenUsage.ts +9 -0
  97. package/src/api/metrics/index.ts +4 -0
  98. package/src/index.ts +14 -0
  99. package/tsconfig.eslint.json +5 -0
  100. package/tsconfig.json +21 -0
  101. package/tsconfig.ref.json +7 -0
  102. package/typedoc.json +5 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # Changelog
2
+
3
+ ## 0.1.0 (2024-11-06)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add AI SDK for Server-Side JavaScript. ([#619](https://github.com/launchdarkly/js-core/issues/619)) ([18e8c4c](https://github.com/launchdarkly/js-core/commit/18e8c4c9c2189e7629e1e1eb995d85d857c4ae4f))
package/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # LaunchDarkly AI SDK for Server-Side JavaScript
2
+
3
+ # ⛔️⛔️⛔️⛔️
4
+
5
+ > [!CAUTION]
6
+ > This library is a alpha version and should not be considered ready for production use while this message is visible.
7
+
8
+ # ☝️☝️☝️☝️☝️☝️
9
+
10
+ ## LaunchDarkly overview
11
+
12
+ [LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/home/getting-started) using LaunchDarkly today!
13
+
14
+ [![Twitter Follow](https://img.shields.io/twitter/follow/launchdarkly.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/intent/follow?screen_name=launchdarkly)
15
+
16
+ ## Quick Setup
17
+
18
+ This assumes that you have already installed the LaunchDarkly Node.js SDK, or a compatible edge
19
+ SDK.
20
+
21
+ 1. Install this package with `npm` or `yarn`:
22
+
23
+ ```shell
24
+ npm install @launchdarkly/server-sdk-ai --save
25
+ ```
26
+
27
+ 2. Create an AI SDK instance:
28
+
29
+ ```typescript
30
+ // The ldClient instance should be created based on the instructions in the relevant SDK.
31
+ const aiClient = initAi(ldClient);
32
+ ```
33
+
34
+ 3. Evaluate a model configuration:
35
+ ```typescript
36
+ const config = await aiClient.modelConfig(
37
+ aiConfigKey!,
38
+ context,
39
+ { enabled: false },
40
+ { myVariable: 'My User Defined Variable' },
41
+ );
42
+ ```
43
+
44
+ For an example of how to use the config please refer to the examples folder.
45
+
46
+ ## Contributing
47
+
48
+ We encourage pull requests and other contributions from the community. Check out our [contributing guidelines](CONTRIBUTING.md) for instructions on how to contribute to this SDK.
49
+
50
+ ## About LaunchDarkly
51
+
52
+ - LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can:
53
+ - Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases.
54
+ - Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?).
55
+ - Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file.
56
+ - Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan).
57
+ - Disable parts of your application to facilitate maintenance, without taking everything offline.
58
+ - LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Check out [our documentation](https://docs.launchdarkly.com/sdk) for a complete list.
59
+ - Explore LaunchDarkly
60
+ - [launchdarkly.com](https://www.launchdarkly.com/ 'LaunchDarkly Main Website') for more information
61
+ - [docs.launchdarkly.com](https://docs.launchdarkly.com/ 'LaunchDarkly Documentation') for our documentation and SDK reference guides
62
+ - [apidocs.launchdarkly.com](https://apidocs.launchdarkly.com/ 'LaunchDarkly API Documentation') for our API documentation
63
+ - [blog.launchdarkly.com](https://blog.launchdarkly.com/ 'LaunchDarkly Blog Documentation') for the latest product updates
64
+
65
+ [node-otel-ci-badge]: https://github.com/launchdarkly/js-core/actions/workflows/node-otel.yml/badge.svg
66
+ [node-otel-ci]: https://github.com/launchdarkly/js-core/actions/workflows/node-otel.yml
67
+ [node-otel-npm-badge]: https://img.shields.io/npm/v/@launchdarkly/node-server-sdk-otel.svg?style=flat-square
68
+ [node-otel-npm-link]: https://www.npmjs.com/package/@launchdarkly/node-server-sdk-otel
@@ -0,0 +1,11 @@
1
+ import { LDContext } from '@launchdarkly/js-server-sdk-common';
2
+ import { LDAIConfig, LDGenerationConfig } from './api/config';
3
+ import { LDAIClient } from './api/LDAIClient';
4
+ import { LDClientMin } from './LDClientMin';
5
+ export declare class LDAIClientImpl implements LDAIClient {
6
+ private _ldClient;
7
+ constructor(_ldClient: LDClientMin);
8
+ interpolateTemplate(template: string, variables: Record<string, unknown>): string;
9
+ modelConfig<TDefault extends LDGenerationConfig>(key: string, context: LDContext, defaultValue: TDefault, variables?: Record<string, unknown>): Promise<LDAIConfig>;
10
+ }
11
+ //# sourceMappingURL=LDAIClientImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIClientImpl.d.ts","sourceRoot":"","sources":["../src/LDAIClientImpl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAA4B,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAoB5C,qBAAa,cAAe,YAAW,UAAU;IACnC,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,WAAW;IAE1C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAI3E,WAAW,CAAC,QAAQ,SAAS,kBAAkB,EACnD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,QAAQ,EACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,UAAU,CAAC;CA4BvB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LDAIClientImpl = void 0;
4
+ const Mustache = require("mustache");
5
+ const LDAIConfigTrackerImpl_1 = require("./LDAIConfigTrackerImpl");
6
+ class LDAIClientImpl {
7
+ constructor(_ldClient) {
8
+ this._ldClient = _ldClient;
9
+ }
10
+ interpolateTemplate(template, variables) {
11
+ return Mustache.render(template, variables, undefined, { escape: (item) => item });
12
+ }
13
+ async modelConfig(key, context, defaultValue, variables) {
14
+ var _a, _b, _c;
15
+ const value = await this._ldClient.variation(key, context, defaultValue);
16
+ // We are going to modify the contents before returning them, so we make a copy.
17
+ // This isn't a deep copy and the application developer should not modify the returned content.
18
+ const config = Object.assign({}, value);
19
+ const allVariables = Object.assign(Object.assign({}, variables), { ldctx: context });
20
+ if (value.prompt) {
21
+ config.prompt = value.prompt.map((entry) => (Object.assign(Object.assign({}, entry), { content: this.interpolateTemplate(entry.content, allVariables) })));
22
+ }
23
+ return {
24
+ config,
25
+ // eslint-disable-next-line no-underscore-dangle
26
+ tracker: new LDAIConfigTrackerImpl_1.LDAIConfigTrackerImpl(this._ldClient, key,
27
+ // eslint-disable-next-line no-underscore-dangle
28
+ (_b = (_a = value._ldMeta) === null || _a === void 0 ? void 0 : _a.versionKey) !== null && _b !== void 0 ? _b : '', context),
29
+ // eslint-disable-next-line no-underscore-dangle
30
+ enabled: !!((_c = value._ldMeta) === null || _c === void 0 ? void 0 : _c.enabled),
31
+ };
32
+ }
33
+ }
34
+ exports.LDAIClientImpl = LDAIClientImpl;
35
+ //# sourceMappingURL=LDAIClientImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIClientImpl.js","sourceRoot":"","sources":["../src/LDAIClientImpl.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAMrC,mEAAgE;AAqBhE,MAAa,cAAc;IACzB,YAAoB,SAAsB;QAAtB,cAAS,GAAT,SAAS,CAAa;IAAG,CAAC;IAE9C,mBAAmB,CAAC,QAAgB,EAAE,SAAkC;QACtE,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,WAAW,CACf,GAAW,EACX,OAAkB,EAClB,YAAsB,EACtB,SAAmC;;QAEnC,MAAM,KAAK,GAAqB,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC3F,gFAAgF;QAChF,+FAA+F;QAC/F,MAAM,MAAM,qBAA4B,KAAK,CAAE,CAAC;QAChD,MAAM,YAAY,mCAAQ,SAAS,KAAE,KAAK,EAAE,OAAO,GAAE,CAAC;QAEtD,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,iCAC5C,KAAK,KACR,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,IAC9D,CAAC,CAAC;SACL;QAED,OAAO;YACL,MAAM;YACN,gDAAgD;YAChD,OAAO,EAAE,IAAI,6CAAqB,CAChC,IAAI,CAAC,SAAS,EACd,GAAG;YACH,gDAAgD;YAChD,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,UAAU,mCAAI,EAAE,EAC/B,OAAO,CACR;YACD,gDAAgD;YAChD,OAAO,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAA;SAClC,CAAC;IACJ,CAAC;CACF;AAxCD,wCAwCC"}
@@ -0,0 +1,40 @@
1
+ import { LDContext } from '@launchdarkly/js-server-sdk-common';
2
+ import { LDAIConfigTracker } from './api/config';
3
+ import { LDFeedbackKind, LDTokenUsage } from './api/metrics';
4
+ import { LDClientMin } from './LDClientMin';
5
+ export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
6
+ private _ldClient;
7
+ private _configKey;
8
+ private _versionKey;
9
+ private _context;
10
+ constructor(_ldClient: LDClientMin, _configKey: string, _versionKey: string, _context: LDContext);
11
+ private _getTrackData;
12
+ trackDuration(duration: number): void;
13
+ trackDurationOf<TRes>(func: () => Promise<TRes>): Promise<TRes>;
14
+ trackFeedback(feedback: {
15
+ kind: LDFeedbackKind;
16
+ }): void;
17
+ trackSuccess(): void;
18
+ trackOpenAI<TRes extends {
19
+ usage?: {
20
+ total_tokens?: number;
21
+ prompt_tokens?: number;
22
+ completion_tokens?: number;
23
+ };
24
+ }>(func: () => Promise<TRes>): Promise<TRes>;
25
+ trackBedrockConverse<TRes extends {
26
+ $metadata: {
27
+ httpStatusCode?: number;
28
+ };
29
+ metrics?: {
30
+ latencyMs?: number;
31
+ };
32
+ usage?: {
33
+ inputTokens?: number;
34
+ outputTokens?: number;
35
+ totalTokens?: number;
36
+ };
37
+ }>(res: TRes): TRes;
38
+ trackTokens(tokens: LDTokenUsage): void;
39
+ }
40
+ //# sourceMappingURL=LDAIConfigTrackerImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIConfigTrackerImpl.d.ts","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAA2B,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,qBAAsB,YAAW,iBAAiB;IAE3D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;gBAHR,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS;IAG7B,OAAO,CAAC,aAAa;IAOrB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/B,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASrE,aAAa,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI;IAQvD,YAAY,IAAI,IAAI;IAId,WAAW,CACf,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,EACD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,oBAAoB,CAClB,IAAI,SAAS;QACX,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,EACD,GAAG,EAAE,IAAI,GAAG,IAAI;IAelB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;CAYxC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LDAIConfigTrackerImpl = void 0;
4
+ const metrics_1 = require("./api/metrics");
5
+ const OpenAiUsage_1 = require("./api/metrics/OpenAiUsage");
6
+ class LDAIConfigTrackerImpl {
7
+ constructor(_ldClient, _configKey, _versionKey, _context) {
8
+ this._ldClient = _ldClient;
9
+ this._configKey = _configKey;
10
+ this._versionKey = _versionKey;
11
+ this._context = _context;
12
+ }
13
+ _getTrackData() {
14
+ return {
15
+ versionKey: this._versionKey,
16
+ configKey: this._configKey,
17
+ };
18
+ }
19
+ trackDuration(duration) {
20
+ this._ldClient.track('$ld:ai:duration:total', this._context, this._getTrackData(), duration);
21
+ }
22
+ async trackDurationOf(func) {
23
+ const startTime = Date.now();
24
+ const result = await func();
25
+ const endTime = Date.now();
26
+ const duration = endTime - startTime; // duration in milliseconds
27
+ this.trackDuration(duration);
28
+ return result;
29
+ }
30
+ trackFeedback(feedback) {
31
+ if (feedback.kind === metrics_1.LDFeedbackKind.Positive) {
32
+ this._ldClient.track('$ld:ai:feedback:user:positive', this._context, this._getTrackData(), 1);
33
+ }
34
+ else if (feedback.kind === metrics_1.LDFeedbackKind.Negative) {
35
+ this._ldClient.track('$ld:ai:feedback:user:negative', this._context, this._getTrackData(), 1);
36
+ }
37
+ }
38
+ trackSuccess() {
39
+ this._ldClient.track('$ld:ai:generation', this._context, this._getTrackData(), 1);
40
+ }
41
+ async trackOpenAI(func) {
42
+ const result = await this.trackDurationOf(func);
43
+ this.trackSuccess();
44
+ if (result.usage) {
45
+ this.trackTokens((0, OpenAiUsage_1.createOpenAiUsage)(result.usage));
46
+ }
47
+ return result;
48
+ }
49
+ trackBedrockConverse(res) {
50
+ var _a, _b;
51
+ if (((_a = res.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 200) {
52
+ this.trackSuccess();
53
+ }
54
+ else if (((_b = res.$metadata) === null || _b === void 0 ? void 0 : _b.httpStatusCode) && res.$metadata.httpStatusCode >= 400) {
55
+ // Potentially add error tracking in the future.
56
+ }
57
+ if (res.metrics && res.metrics.latencyMs) {
58
+ this.trackDuration(res.metrics.latencyMs);
59
+ }
60
+ if (res.usage) {
61
+ this.trackTokens((0, metrics_1.createBedrockTokenUsage)(res.usage));
62
+ }
63
+ return res;
64
+ }
65
+ trackTokens(tokens) {
66
+ const trackData = this._getTrackData();
67
+ if (tokens.total > 0) {
68
+ this._ldClient.track('$ld:ai:tokens:total', this._context, trackData, tokens.total);
69
+ }
70
+ if (tokens.input > 0) {
71
+ this._ldClient.track('$ld:ai:tokens:input', this._context, trackData, tokens.input);
72
+ }
73
+ if (tokens.output > 0) {
74
+ this._ldClient.track('$ld:ai:tokens:output', this._context, trackData, tokens.output);
75
+ }
76
+ }
77
+ }
78
+ exports.LDAIConfigTrackerImpl = LDAIConfigTrackerImpl;
79
+ //# sourceMappingURL=LDAIConfigTrackerImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIConfigTrackerImpl.js","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { LDContext, LDFlagValue } from '@launchdarkly/js-server-sdk-common';
2
+ /**
3
+ * Interface which represents the required interface components for a sever SDK
4
+ * to work with the AI SDK.
5
+ */
6
+ export interface LDClientMin {
7
+ variation(key: string, context: LDContext, defaultValue: LDFlagValue, callback?: (err: any, res: LDFlagValue) => void): Promise<LDFlagValue>;
8
+ track(key: string, context: LDContext, data?: any, metricValue?: number): void;
9
+ }
10
+ //# sourceMappingURL=LDClientMin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDClientMin.d.ts","sourceRoot":"","sources":["../src/LDClientMin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,CACP,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,WAAW,EACzB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAC9C,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LDClientMin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDClientMin.js","sourceRoot":"","sources":["../src/LDClientMin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ import { LDContext } from '@launchdarkly/js-server-sdk-common';
2
+ import { LDAIConfig, LDGenerationConfig } from './config/LDAIConfig';
3
+ /**
4
+ * Interface for performing AI operations using LaunchDarkly.
5
+ */
6
+ export interface LDAIClient {
7
+ /**
8
+ * Parses and interpolates a template string with the provided variables.
9
+ *
10
+ * @param template - The template string to be parsed and interpolated.
11
+ * @param variables - An object containing the variables to be used for interpolation.
12
+ * @returns The interpolated string.
13
+ */
14
+ interpolateTemplate(template: string, variables: Record<string, unknown>): string;
15
+ /**
16
+ * Retrieves and processes a prompt template based on the provided key, LaunchDarkly context, and
17
+ * variables.
18
+ *
19
+ * @param key - A unique identifier for the prompt template. This key is used to fetch the correct
20
+ * prompt from storage or configuration.
21
+ * @param context - The LaunchDarkly context object that contains relevant information about the
22
+ * current environment, user, or session. This context may influence how the prompt is processed
23
+ * or personalized.
24
+ * @param variables - A map of key-value pairs representing dynamic variables to be injected into
25
+ * the prompt template. The keys correspond to placeholders within the template, and the values
26
+ * are the corresponding replacements.
27
+ * @param defaultValue - A fallback value to be used if the prompt template associated with the
28
+ * key is not found or if any errors occur during processing.
29
+ *
30
+ * @returns The processed prompt after all variables have been substituted in the stored prompt
31
+ * template. If the prompt cannot be retrieved or processed, the `defaultValue` is returned.
32
+ *
33
+ * @example
34
+ * ```
35
+ * const key = "welcome_prompt";
36
+ * const context = {...};
37
+ * const variables = {username: 'john'};
38
+ * const defaultValue = {};
39
+ *
40
+ * const result = modelConfig(key, context, defaultValue, variables);
41
+ * // Output:
42
+ * {
43
+ * modelId: "gpt-4o",
44
+ * temperature: 0.2,
45
+ * maxTokens: 4096,
46
+ * userDefinedKey: "myValue",
47
+ * prompt: [
48
+ * {
49
+ * role: "system",
50
+ * content: "You are an amazing GPT."
51
+ * },
52
+ * {
53
+ * role: "user",
54
+ * content: "Explain how you're an amazing GPT."
55
+ * }
56
+ * ]
57
+ * }
58
+ * ```
59
+ */
60
+ modelConfig<TDefault extends LDGenerationConfig>(key: string, context: LDContext, defaultValue: TDefault, variables?: Record<string, unknown>): Promise<LDAIConfig>;
61
+ }
62
+ //# sourceMappingURL=LDAIClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIClient.d.ts","sourceRoot":"","sources":["../../src/api/LDAIClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAErE;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,WAAW,CAAC,QAAQ,SAAS,kBAAkB,EAC7C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,QAAQ,EACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LDAIClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIClient.js","sourceRoot":"","sources":["../../src/api/LDAIClient.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { LDAIConfigTracker } from './LDAIConfigTracker';
2
+ /**
3
+ * Configuration related to the model.
4
+ */
5
+ export interface LDModelConfig {
6
+ /**
7
+ * The ID of the model.
8
+ */
9
+ modelId?: string;
10
+ /**
11
+ * And additional model specific information.
12
+ */
13
+ [index: string]: unknown;
14
+ }
15
+ /**
16
+ * Information about prompts.
17
+ */
18
+ export interface LDMessage {
19
+ /**
20
+ * The role of the prompt.
21
+ */
22
+ role: 'user' | 'assistant' | 'system';
23
+ /**
24
+ * Content for the prompt.
25
+ */
26
+ content: string;
27
+ }
28
+ /**
29
+ * Configuration which affects generation.
30
+ */
31
+ export interface LDGenerationConfig {
32
+ /**
33
+ * Optional model configuration.
34
+ */
35
+ model?: LDModelConfig;
36
+ /**
37
+ * Optional prompt data.
38
+ */
39
+ prompt?: LDMessage[];
40
+ }
41
+ /**
42
+ * AI Config value and tracker.
43
+ */
44
+ export interface LDAIConfig {
45
+ /**
46
+ * The result of the AI Config customization.
47
+ */
48
+ config: LDGenerationConfig;
49
+ /**
50
+ * A tracker which can be used to generate analytics.
51
+ */
52
+ tracker: LDAIConfigTracker;
53
+ /**
54
+ * Whether the configuration is enabled.
55
+ */
56
+ enabled: boolean;
57
+ }
58
+ //# sourceMappingURL=LDAIConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIConfig.d.ts","sourceRoot":"","sources":["../../../src/api/config/LDAIConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,EAAE,kBAAkB,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LDAIConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIConfig.js","sourceRoot":"","sources":["../../../src/api/config/LDAIConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { LDFeedbackKind, LDTokenUsage } from '../metrics';
2
+ /**
3
+ * The LDAIConfigTracker is used to track various details about AI operations.
4
+ */
5
+ export interface LDAIConfigTracker {
6
+ /**
7
+ * Track the duration of generation.
8
+ *
9
+ * Ideally this would not include overhead time such as network communication.
10
+ *
11
+ * @param durationMs The duration in milliseconds.
12
+ */
13
+ trackDuration(durationMs: number): void;
14
+ /**
15
+ * Track information about token usage.
16
+ *
17
+ * @param tokens Token usage information.
18
+ */
19
+ trackTokens(tokens: LDTokenUsage): void;
20
+ /**
21
+ * Generation was successful.
22
+ */
23
+ trackSuccess(): void;
24
+ /**
25
+ * Track sentiment about the generation.
26
+ *
27
+ * @param feedback Feedback about the generation.
28
+ */
29
+ trackFeedback(feedback: {
30
+ kind: LDFeedbackKind;
31
+ }): void;
32
+ /**
33
+ * Track the duration of execution of the provided function.
34
+ * @param func The function to track the duration of.
35
+ * @returns The result of the function.
36
+ */
37
+ trackDurationOf(func: () => Promise<any>): Promise<any>;
38
+ /**
39
+ * Track an OpenAI operation.
40
+ *
41
+ * @param func Function which executes the operation.
42
+ * @returns The result of the operation.
43
+ */
44
+ trackOpenAI<TRes extends {
45
+ usage?: {
46
+ total_tokens?: number;
47
+ prompt_tokens?: number;
48
+ completion_tokens?: number;
49
+ };
50
+ }>(func: () => Promise<TRes>): Promise<TRes>;
51
+ /**
52
+ * Track an operation which uses Bedrock.
53
+ *
54
+ * @param res The result of the Bedrock operation.
55
+ * @returns The input operation.
56
+ */
57
+ trackBedrockConverse<TRes extends {
58
+ $metadata: {
59
+ httpStatusCode?: number;
60
+ };
61
+ metrics?: {
62
+ latencyMs?: number;
63
+ };
64
+ usage?: {
65
+ inputTokens?: number;
66
+ outputTokens?: number;
67
+ totalTokens?: number;
68
+ };
69
+ }>(res: TRes): TRes;
70
+ }
71
+ //# sourceMappingURL=LDAIConfigTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIConfigTracker.d.ts","sourceRoot":"","sources":["../../../src/api/config/LDAIConfigTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAExD;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAExD;;;;;OAKG;IACH,WAAW,CACT,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,EAED,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,oBAAoB,CAClB,IAAI,SAAS;QACX,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,EAED,GAAG,EAAE,IAAI,GACR,IAAI,CAAC;CACT"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LDAIConfigTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIConfigTracker.js","sourceRoot":"","sources":["../../../src/api/config/LDAIConfigTracker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './LDAIConfig';
2
+ export { LDAIConfigTracker } from './LDAIConfigTracker';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./LDAIConfig"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B"}
@@ -0,0 +1,4 @@
1
+ export * from './config';
2
+ export * from './metrics';
3
+ export * from './LDAIClient';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./config"), exports);
18
+ __exportStar(require("./metrics"), exports);
19
+ __exportStar(require("./LDAIClient"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,+CAA6B"}
@@ -0,0 +1,7 @@
1
+ import { LDTokenUsage } from './LDTokenUsage';
2
+ export declare function createBedrockTokenUsage(data: {
3
+ totalTokens?: number;
4
+ inputTokens?: number;
5
+ outputTokens?: number;
6
+ }): LDTokenUsage;
7
+ //# sourceMappingURL=BedrockTokenUsage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BedrockTokenUsage.d.ts","sourceRoot":"","sources":["../../../src/api/metrics/BedrockTokenUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,YAAY,CAMf"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBedrockTokenUsage = void 0;
4
+ function createBedrockTokenUsage(data) {
5
+ return {
6
+ total: data.totalTokens || 0,
7
+ input: data.inputTokens || 0,
8
+ output: data.outputTokens || 0,
9
+ };
10
+ }
11
+ exports.createBedrockTokenUsage = createBedrockTokenUsage;
12
+ //# sourceMappingURL=BedrockTokenUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BedrockTokenUsage.js","sourceRoot":"","sources":["../../../src/api/metrics/BedrockTokenUsage.ts"],"names":[],"mappings":";;;AAEA,SAAgB,uBAAuB,CAAC,IAIvC;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;QAC5B,KAAK,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;KAC/B,CAAC;AACJ,CAAC;AAVD,0DAUC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Feedback about the generated content.
3
+ */
4
+ export declare enum LDFeedbackKind {
5
+ /**
6
+ * The sentiment was positive.
7
+ */
8
+ Positive = "positive",
9
+ /**
10
+ * The sentiment is negative.
11
+ */
12
+ Negative = "negative"
13
+ }
14
+ //# sourceMappingURL=LDFeedbackKind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDFeedbackKind.d.ts","sourceRoot":"","sources":["../../../src/api/metrics/LDFeedbackKind.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,cAAc;IACxB;;OAEG;IACH,QAAQ,aAAa;IACrB;;OAEG;IACH,QAAQ,aAAa;CACtB"}