posthog-ruby 3.26.1 → 3.26.3

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: 669accebe3e1d0205f2d74494765a7ac02aafc58ba2dc33f253628d8d0adfce0
4
- data.tar.gz: 1a38ec678c23fc04922030b9c546374990d36d18c7e4c0a065b1bbf4b9d57748
3
+ metadata.gz: 99d26dfa2a9c824a2e55fe38433743c259165eb5aaea63f5948b93d0e58c2e82
4
+ data.tar.gz: f8441884a384bbe4fda2f25593fa876fdf8890ba1d262ad2400a7fd53963a347
5
5
  SHA512:
6
- metadata.gz: aea72b91211ee5539434b7a6e3131d75f93ae452c2b67c306ab90f13f6a1e009c0b07c7502391dc702632b177ce435b1f06a620909af8ff47bb33a32014e0eec
7
- data.tar.gz: 2fe6f690c5dbc039543c40b1a8c79e550c0c4c10fffc8bf96a69e5a2ff268a3fd6f2f76b029625c5b742452b480e9cde92d7af88ef7f38984b64fc5bebe031ae
6
+ metadata.gz: 29445f44c0b5daec55669a88f4a84709339cf0833a16c9ebfa54ac54103f5f9568e795ce209cacc915b2a228972acb73e51186506f3f7e9e92f6a44d7a455f9e
7
+ data.tar.gz: e55e044465c3b6e3a1a04909f40ed530a345c51f51de439a38274dcf70663d23ee2bcc4ba64a1c0f3132ceb31a695817440effe1ec997d971a63208dc7c9abfe
@@ -226,11 +226,19 @@ module PostHog
226
226
 
227
227
  safely do
228
228
  session_id = prepare_request(@request)
229
- record_tools_list(session_id, names: names, response: result, empty: empty)
229
+ record_tools_list(session_id, names: names, response: tools_list_envelope(result), empty: empty)
230
230
  end
231
231
  result
232
232
  end
233
233
 
234
+ # `resultType` is a lifecycle discriminator the gem stamps on every modern-wire reply, not envelope data.
235
+ def tools_list_envelope(result)
236
+ return nil unless result.is_a?(Hash)
237
+
238
+ envelope = result.reject { |key, value| %w[tools resultType].include?(key.to_s) || value.nil? }
239
+ envelope unless envelope.empty?
240
+ end
241
+
234
242
  def dispatch_initialize
235
243
  client_info = fetch(@params, :clientInfo)
236
244
  client_name = client_info.is_a?(Hash) ? fetch(client_info, :name) : nil
data/lib/posthog/mcp.rb CHANGED
@@ -84,7 +84,7 @@ module PostHog
84
84
  sink = resolved_client ? Sink.new(resolved_client) : nil
85
85
  data = TrackingData.new(options: opts, sink: sink, server_name: safe_call(server, :name),
86
86
  server_version: safe_call(server, :version))
87
- install_extensions!
87
+ install_extensions!(opts)
88
88
  server.instance_variable_set(:@__posthog_mcp, data)
89
89
  register_missing_capability_tool(server, data)
90
90
  Analytics.new(server)
@@ -193,15 +193,23 @@ module PostHog
193
193
  Log.warn(data.options, "Warning: could not register the #{name} tool - #{e.class}: #{e.message}")
194
194
  end
195
195
 
196
- def install_extensions!
196
+ def install_extensions!(options)
197
197
  return if @extensions_installed
198
198
 
199
199
  ::MCP::Server.prepend(ServerExtension)
200
- if defined?(::MCP::Server::Transports::StreamableHTTPTransport)
201
- ::MCP::Server::Transports::StreamableHTTPTransport.prepend(TransportExtension)
202
- end
200
+ install_transport_extension(options)
203
201
  @extensions_installed = true
204
202
  end
203
+
204
+ # The `mcp` gem autoloads its Streamable HTTP transport and that file raises
205
+ # LoadError without `rack`, which a stdio-only server legitimately lacks.
206
+ def install_transport_extension(options)
207
+ return unless defined?(::MCP::Server::Transports::StreamableHTTPTransport)
208
+
209
+ ::MCP::Server::Transports::StreamableHTTPTransport.prepend(TransportExtension)
210
+ rescue LoadError => e
211
+ Log.debug(options, "Skipping the Streamable HTTP transport extension - #{e.message}")
212
+ end
205
213
  end
206
214
  end
207
215
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PostHog
4
- VERSION = '3.26.1'
4
+ VERSION = '3.26.3'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: posthog-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.26.1
4
+ version: 3.26.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''