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 +4 -4
- data/lib/posthog/mcp/instrumentation.rb +9 -1
- data/lib/posthog/mcp.rb +13 -5
- data/lib/posthog/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 99d26dfa2a9c824a2e55fe38433743c259165eb5aaea63f5948b93d0e58c2e82
|
|
4
|
+
data.tar.gz: f8441884a384bbe4fda2f25593fa876fdf8890ba1d262ad2400a7fd53963a347
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
data/lib/posthog/version.rb
CHANGED