launchdarkly-server-sdk-ai 0.2.1 → 0.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4828d6db587bacb6185c5cd2d02840d6cd0529cc00ffc959f42cba096ea8a672
4
- data.tar.gz: d88837be2fdc48085ab604d4e13d5f146b46a05d5ae3de7c8cd73435c7ab9f3a
3
+ metadata.gz: 3ed5a6f605ce2c7970cbe5045fbd0b8700ab0cd6c62fe56a78ee49f155042dde
4
+ data.tar.gz: 91ae21b4e9b95bb3d0b87e266c420c7568ea91ad40a77d654eedfa900adc2099
5
5
  SHA512:
6
- metadata.gz: d0dc49a04fb2cd56e039fb9d091ce4d61c4438dbdcc307e176d997740b15e5fe4a14699b04dd3e68399b89b09aa07a30c413ecde749432cb27a45157cf3bc663
7
- data.tar.gz: a97a9126fa820435e661c421959560d4dc8107b9f164d42014f4ee4862460295aad5178e9782bf900787374e1c9d9ffb0e26efc3523e2c38969c0a004eda13a4
6
+ metadata.gz: 176ba55618c6885959240a1900400e14d3d55a2896f7c768319b169ed6c8ff2f762fa2f066d913bac5c3e502775e089d81a4e92a583ace6f714fcb73fc607b4b
7
+ data.tar.gz: a49cde18e9d3d599a2b58a6174b9c3bb0eba1d320b766681b60d6e34651b8b8c86252be1f840a9fb8ad31b62ae4a3b1ccfd2ac953f4ca241f3bc4d3c69b97fea
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.2](https://github.com/launchdarkly/ruby-server-sdk-ai/compare/0.2.1...0.2.2) (2026-02-25)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * Deprecated config method, use completion_config ([#18](https://github.com/launchdarkly/ruby-server-sdk-ai/issues/18)) ([9f7ec17](https://github.com/launchdarkly/ruby-server-sdk-ai/commit/9f7ec178a87e0f1139c4445d4236cb5db296b0fa))
9
+ * Improve usage reporting ([#18](https://github.com/launchdarkly/ruby-server-sdk-ai/issues/18)) ([9f7ec17](https://github.com/launchdarkly/ruby-server-sdk-ai/commit/9f7ec178a87e0f1139c4445d4236cb5db296b0fa))
10
+ * Remove bundler version constraint from gemspec ([#20](https://github.com/launchdarkly/ruby-server-sdk-ai/issues/20)) ([ef18f32](https://github.com/launchdarkly/ruby-server-sdk-ai/commit/ef18f323d604b3b4d3ca8f913b66316def34042b))
11
+
3
12
  ## [0.2.1](https://github.com/launchdarkly/ruby-server-sdk-ai/compare/0.2.0...0.2.1) (2025-08-28)
4
13
 
5
14
 
data/PROVENANCE.md CHANGED
@@ -9,7 +9,7 @@ To verify SLSA provenance attestations, we recommend using [slsa-verifier](https
9
9
  <!-- x-release-please-start-version -->
10
10
  ```
11
11
  # Set the version of the SDK to verify
12
- VERSION=0.2.1
12
+ VERSION=0.2.2
13
13
  ```
14
14
  <!-- x-release-please-end -->
15
15
 
data/README.md CHANGED
@@ -7,6 +7,17 @@ LaunchDarkly Server SDK AI library for Ruby
7
7
  [![RubyDoc](https://img.shields.io/static/v1?label=docs+-+all+versions&message=reference&color=00add8)](https://www.rubydoc.info/gems/launchdarkly-server-sdk-ai)
8
8
  [![GitHub Pages](https://img.shields.io/static/v1?label=docs+-+latest&message=reference&color=00add8)](https://launchdarkly.github.io/ruby-server-sdk-ai)
9
9
 
10
+ > [!CAUTION]
11
+ > This AI SDK is in pre-release and not subject to backwards compatibility guarantees. The API may change based on feedback.
12
+ >
13
+ > Pin to a specific minor version and review the [changelog] before upgrading.
14
+ >
15
+ > Active feature development is ongoing in the [Python][python-ai-sdk] and [Node.js][node-ai-sdk] AI SDKs, so this SDK will receive new features at a slower pace. Refer to those for the latest capabilities.
16
+
17
+ [changelog]: https://github.com/launchdarkly/ruby-server-sdk-ai/blob/main/CHANGELOG.md
18
+ [python-ai-sdk]: https://github.com/launchdarkly/python-server-sdk-ai/tree/main/packages/sdk/server-ai
19
+ [node-ai-sdk]: https://github.com/launchdarkly/js-core/tree/main/packages/sdk/server-ai
20
+
10
21
  LaunchDarkly overview
11
22
  -------------------------
12
23
  [LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves trillions of feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/home/getting-started) using LaunchDarkly today!
@@ -4,6 +4,7 @@ require 'logger'
4
4
  require 'mustache'
5
5
 
6
6
  require 'server/ai/version'
7
+ require 'server/ai/sdk_info'
7
8
  require 'server/ai/client'
8
9
  require 'server/ai/ai_config_tracker'
9
10
 
@@ -3,6 +3,7 @@
3
3
  require 'ldclient-rb'
4
4
  require 'mustache'
5
5
  require_relative 'ai_config_tracker'
6
+ require_relative 'sdk_info'
6
7
 
7
8
  module LaunchDarkly
8
9
  #
@@ -127,6 +128,15 @@ module LaunchDarkly
127
128
  #
128
129
  # The Client class is the main entry point for the LaunchDarkly AI SDK.
129
130
  #
131
+ TRACK_SDK_INFO = '$ld:ai:sdk:info'
132
+ TRACK_USAGE_COMPLETION_CONFIG = '$ld:ai:usage:completion-config'
133
+
134
+ INIT_TRACK_CONTEXT = LaunchDarkly::LDContext.create({
135
+ kind: 'ld_ai',
136
+ key: 'ld-internal-tracking',
137
+ anonymous: true,
138
+ })
139
+
130
140
  class Client
131
141
  attr_reader :logger, :ld_client
132
142
 
@@ -135,6 +145,17 @@ module LaunchDarkly
135
145
 
136
146
  @ld_client = ld_client
137
147
  @logger = LaunchDarkly::Server::AI.default_logger
148
+
149
+ @ld_client.track(
150
+ TRACK_SDK_INFO,
151
+ INIT_TRACK_CONTEXT,
152
+ {
153
+ aiSdkName: LaunchDarkly::Server::AI::SDK_NAME,
154
+ aiSdkVersion: LaunchDarkly::Server::AI::VERSION,
155
+ aiSdkLanguage: LaunchDarkly::Server::AI::SDK_LANGUAGE,
156
+ },
157
+ 1
158
+ )
138
159
  end
139
160
 
140
161
  #
@@ -146,9 +167,21 @@ module LaunchDarkly
146
167
  # @param variables [Hash] Optional variables for rendering messages
147
168
  # @return [AIConfig] An AIConfig instance containing the configuration data
148
169
  #
170
+ def completion_config(config_key, context, default_value = nil, variables = nil)
171
+ @ld_client.track(TRACK_USAGE_COMPLETION_CONFIG, context, config_key, 1)
172
+
173
+ _completion_config(config_key, context, default_value, variables)
174
+ end
175
+
176
+ # @deprecated Use {#completion_config} instead.
149
177
  def config(config_key, context, default_value = nil, variables = nil)
150
- @ld_client.track('$ld:ai:config:function:single', context, config_key, 1)
178
+ warn '[DEPRECATION] `config` is deprecated. Use `completion_config` instead.'
179
+ completion_config(config_key, context, default_value, variables)
180
+ end
181
+
182
+ private
151
183
 
184
+ def _completion_config(config_key, context, default_value = nil, variables = nil)
152
185
  variation = @ld_client.variation(
153
186
  config_key,
154
187
  context,
@@ -158,7 +191,6 @@ module LaunchDarkly
158
191
  all_variables = variables ? variables.dup : {}
159
192
  all_variables[:ldctx] = context.to_h
160
193
 
161
- # Process messages and provider configuration
162
194
  messages = nil
163
195
  if variation[:messages].is_a?(Array) && variation[:messages].all? { |msg| msg.is_a?(Hash) }
164
196
  messages = variation[:messages].map do |message|
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LaunchDarkly
4
+ module Server
5
+ module AI
6
+ SDK_NAME = 'launchdarkly-server-sdk-ai'
7
+ SDK_LANGUAGE = 'ruby'
8
+ end
9
+ end
10
+ end
@@ -3,7 +3,7 @@
3
3
  module LaunchDarkly
4
4
  module Server
5
5
  module AI
6
- VERSION = '0.2.1' # x-release-please-version
6
+ VERSION = '0.2.2' # x-release-please-version
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: launchdarkly-server-sdk-ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - LaunchDarkly
@@ -51,20 +51,6 @@ dependencies:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '1.1'
54
- - !ruby/object:Gem::Dependency
55
- name: bundler
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '2.0'
61
- type: :development
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '2.0'
68
54
  - !ruby/object:Gem::Dependency
69
55
  name: rake
70
56
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +154,7 @@ files:
168
154
  - lib/launchdarkly-server-sdk-ai.rb
169
155
  - lib/server/ai/ai_config_tracker.rb
170
156
  - lib/server/ai/client.rb
157
+ - lib/server/ai/sdk_info.rb
171
158
  - lib/server/ai/version.rb
172
159
  homepage: https://github.com/launchdarkly/ruby-server-sdk-ai
173
160
  licenses: