ace-llm 0.40.0 → 0.41.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48321c690b49c8d136a85e6f131328bbb4a6cfc55e504d1467c56d4d2a554092
4
- data.tar.gz: 0af124c46785c2278cd5b1d10b4e5fee3b7f67ff6e446cd28e9bbe091abea429
3
+ metadata.gz: 2fae0fd9e7709654101b452e68a39a32412c1788948f60ff6b3ea619ca4877d8
4
+ data.tar.gz: c5ecb76fe5e258e27e5c71ddd8d0f760637ca7a0f67766a7239fe2e60acf3dbf
5
5
  SHA512:
6
- metadata.gz: e13d32931c1e249cba948d8113e124fc7412462fbafd2d397f389c38effe2beadc8f7413ce7e196893680e9c27842cae15218bba6da1db5c3f5e9a085ec34aff
7
- data.tar.gz: 73b5a3eab3ffeceab03a5c67631162ab245ff512e01262029b253a04bc7acad610926ce4e13c62944f618c9c03b19964ecf0af2ffd9adfec8d7fce23a5bca9f5
6
+ metadata.gz: a885b5933135a969eb4f91a4e013af1e9a35b1e79450c8f47b8ce2b9afa372226c482c1023bab1033438a04b2fc95fbc6ccf4f8592e5b5ce6b763d0820bfb429
7
+ data.tar.gz: b378d04c4280ede3e36d60b01fbe7ee821f28597ac0c9074745961126d642db7e822af19c44f0362d15eaf5067e3ed6b4ee9cf9a2779abf15652e979f9313114
data/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.41.0] - 2026-09-27
11
+
12
+ ### Changed
13
+
14
+ - Query results now derive the top-level `usage` record from provider metadata token counts (model, input/output/cached/total). Absent counts stay absent; a measured zero cache read is kept so cost models can distinguish "no cache" from "unknown". Sessions no longer report "usage unavailable" when the provider supplied tokens.
15
+
10
16
  ## [0.40.0] - 2026-09-24
11
17
 
12
18
  ### Fixed
@@ -153,7 +153,7 @@ module Ace
153
153
  thinking_level: response.fetch(:execution, {}).fetch(:thinking_level, parse_result.thinking_level),
154
154
  execution: response[:execution],
155
155
  requested_selector: provider_model,
156
- usage: response[:usage],
156
+ usage: build_usage(response[:metadata]),
157
157
  metadata: response[:metadata]
158
158
  }
159
159
 
@@ -182,6 +182,27 @@ module Ace
182
182
 
183
183
  private
184
184
 
185
+ # Derive the measured usage record from client metadata. Providers hand
186
+ # token counts to session recording through metadata keys; absent counts
187
+ # stay absent (never zero) so cost models can tell "no cache" from
188
+ # "unknown". Returns nil when the client reported no token counts at all.
189
+ def self.build_usage(metadata)
190
+ meta = metadata.is_a?(Hash) ? metadata : {}
191
+ input = meta[:input_tokens] || meta["input_tokens"]
192
+ output = meta[:output_tokens] || meta["output_tokens"]
193
+ return nil if input.nil? && output.nil?
194
+
195
+ usage = {model: meta[:model] || meta["model"]}
196
+ usage[:input_tokens] = input unless input.nil?
197
+ usage[:output_tokens] = output unless output.nil?
198
+ cached = meta[:cached_tokens] || meta["cached_tokens"]
199
+ usage[:cached_tokens] = cached unless cached.nil?
200
+ total = meta[:total_tokens] || meta["total_tokens"]
201
+ usage[:total_tokens] = total.nil? ? (input.to_i + output.to_i) : total
202
+ usage
203
+ end
204
+ private_class_method :build_usage
205
+
185
206
  def self.resolve_preset_name(suffix_preset, explicit_preset)
186
207
  suffix = suffix_preset&.to_s&.strip
187
208
  explicit = explicit_preset&.to_s&.strip
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ace
4
4
  module LLM
5
- VERSION = "0.40.0"
5
+ VERSION = "0.41.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.40.0
4
+ version: 0.41.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-09-24 00:00:00.000000000 Z
10
+ date: 2026-09-27 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ace-support-cli