ask-tools 0.2.4 → 0.2.6

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: 64725aa47eaed11e7de4b85a5528a455b1b10a9a797996946493aa2ac073c41a
4
- data.tar.gz: 5c78e6f9a12ddb924d819ec02b5fdd4ea56e0f64015309124d12334e92da6231
3
+ metadata.gz: 10504b125a562dba192ed5c432608b54e3140ea5f38822e5e045a1f8546f7609
4
+ data.tar.gz: afd13e8a2a242e095ac71bc7c9f02cac14931e3966664dd6e3a88995869f6840
5
5
  SHA512:
6
- metadata.gz: e95172991eb97d51c563d664df58d4e4324e7ccbd23e9b943675d318913d39c43079b652b960f16868bd9729a4b9d914538b51a1e6dd89ed64f5f359e62fbde9
7
- data.tar.gz: 9cb01533c354a491370a7917aa3055b46471ac2f010000ec8a3a9a8c502dbda369f46779d0b5a20d74c5f5cb3c30e5cf1b954febe83b67efa26db8a20af21a2c
6
+ metadata.gz: 1bdeed01d810365cb450ec8548ee6815718e51df479de5f8ef9ea6105cfd97ce31e872eaec98b93e4be36ac67368dcaf726b96b343fa7d393d42dcb73cb5c9cd
7
+ data.tar.gz: b9ed6b94f72cd3ec96a18faac67ae85e9f4593859069f216632d8a8f78111b432680ca8bbc19f736f4ed5c0976b913d9b2afdeb6ec2ed46e88516e859db9b57e
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "json"
3
4
  require "ask-schema"
4
5
 
5
6
  module Ask
@@ -137,7 +138,8 @@ module Ask
137
138
  validation = validate(normalized)
138
139
  return Ask::Result.failure(validation) if validation
139
140
  normalized[:_abort_controller] = abort_controller if abort_controller
140
- execute(**normalized)
141
+ execute_kwargs = normalized.reject { |k, _| k == :_abort_controller || k == :abort_controller }
142
+ execute(**execute_kwargs)
141
143
  rescue Halt => e
142
144
  Ask::Result.ok(data: e.content, metadata: { halted: true })
143
145
  rescue StandardError => e
@@ -210,6 +212,13 @@ module Ask
210
212
 
211
213
  def normalize_args(args)
212
214
  return {} if args.nil?
215
+ return {} if args.respond_to?(:empty?) && args.empty?
216
+
217
+ # Parse JSON strings sent by LLMs (tool call arguments arrive as JSON)
218
+ if args.is_a?(String)
219
+ args = JSON.parse(args) rescue (return {})
220
+ end
221
+
213
222
  args.respond_to?(:transform_keys) ? args.transform_keys(&:to_sym) : {}
214
223
  end
215
224
 
data/lib/ask/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ask
4
4
  module Tools
5
- VERSION = "0.2.4"
5
+ VERSION = "0.2.6"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ask-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaka Ruto