legion-tty 0.4.36 → 0.4.37
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/CHANGELOG.md +11 -0
- data/lib/legion/tty/screens/chat.rb +27 -4
- data/lib/legion/tty/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: f6aab5b9e38570a9072b676e7573506c5051693e503ff3861c1f7c042e836267
|
|
4
|
+
data.tar.gz: 412cd703adfd6117e87fb0a57820d8d01c60d2701dea9b2b0c6c30c5f0a44f06
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e6164b922a3e05f202cc8ae224ce0a8ebc84cba655ee333bfc74dfaf66f3ab62aeff4dfde49e624d7d40f26e0cb377a3ba36a20b0f03e0806f55f08e9efd43da
|
|
7
|
+
data.tar.gz: 37b23570482bc80906620439d165594bd436d56c87da0f13612729e8e5d06f26ebf786881c88b708236efb9af3d55f71c407e46051680479bd1f6c95940f1d68
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.37] - 2026-03-26
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Token tracking uses `model_id` from RubyLLM::Message response (was incorrectly checking non-existent `model` method)
|
|
7
|
+
- Initialize TokenTracker with actual model from LLM chat session when available
|
|
8
|
+
- Guard against blank `model_id` in `track_response_tokens` — a nil `model_id` no longer overwrites the previously-set model with an empty string
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Daemon path token tracking via `track_daemon_tokens` (reads `meta[:tokens_in]`/`meta[:tokens_out]` from daemon response)
|
|
12
|
+
- Extracted `update_status_bar_tokens` helper to DRY up status bar updates after tracking
|
|
13
|
+
|
|
3
14
|
## [0.4.36] - 2026-03-26
|
|
4
15
|
|
|
5
16
|
### Changed
|
|
@@ -74,7 +74,10 @@ module Legion
|
|
|
74
74
|
@message_stream = Components::MessageStream.new
|
|
75
75
|
@status_bar = Components::StatusBar.new
|
|
76
76
|
@llm_chat = app.respond_to?(:llm_chat) ? app.llm_chat : nil
|
|
77
|
-
@token_tracker = Components::TokenTracker.new(
|
|
77
|
+
@token_tracker = Components::TokenTracker.new(
|
|
78
|
+
provider: detect_provider,
|
|
79
|
+
model: @llm_chat.respond_to?(:model) ? @llm_chat.model.to_s : nil
|
|
80
|
+
)
|
|
78
81
|
@session_store = SessionStore.new
|
|
79
82
|
@session_name = 'default'
|
|
80
83
|
@plan_mode = false
|
|
@@ -251,6 +254,7 @@ module Legion
|
|
|
251
254
|
parser = build_tool_call_parser
|
|
252
255
|
parser.feed(result[:response])
|
|
253
256
|
parser.flush
|
|
257
|
+
track_daemon_tokens(result)
|
|
254
258
|
when :error
|
|
255
259
|
err = result.dig(:error, :message) || 'Unknown error'
|
|
256
260
|
@message_stream.append_streaming("\n[Daemon error: #{err}]")
|
|
@@ -602,12 +606,31 @@ module Legion
|
|
|
602
606
|
def track_response_tokens(response)
|
|
603
607
|
return unless response.respond_to?(:input_tokens)
|
|
604
608
|
|
|
605
|
-
|
|
609
|
+
raw_model = response.respond_to?(:model_id) ? response.model_id.to_s : nil
|
|
610
|
+
model_id = raw_model && !raw_model.empty? ? raw_model : nil
|
|
611
|
+
input_tokens = response.input_tokens.to_i
|
|
612
|
+
output_tokens = response.respond_to?(:output_tokens) ? response.output_tokens.to_i : 0
|
|
606
613
|
@token_tracker.track(
|
|
607
|
-
input_tokens:
|
|
608
|
-
output_tokens:
|
|
614
|
+
input_tokens: input_tokens,
|
|
615
|
+
output_tokens: output_tokens,
|
|
609
616
|
model: model_id
|
|
610
617
|
)
|
|
618
|
+
update_status_bar_tokens
|
|
619
|
+
end
|
|
620
|
+
|
|
621
|
+
def track_daemon_tokens(result)
|
|
622
|
+
meta = result[:meta]
|
|
623
|
+
return unless meta.is_a?(Hash) && (meta[:tokens_in] || meta[:tokens_out])
|
|
624
|
+
|
|
625
|
+
@token_tracker.track(
|
|
626
|
+
input_tokens: meta[:tokens_in].to_i,
|
|
627
|
+
output_tokens: meta[:tokens_out].to_i,
|
|
628
|
+
model: meta[:model]&.to_s
|
|
629
|
+
)
|
|
630
|
+
update_status_bar_tokens
|
|
631
|
+
end
|
|
632
|
+
|
|
633
|
+
def update_status_bar_tokens
|
|
611
634
|
@status_bar.update(
|
|
612
635
|
tokens: @token_tracker.total_input_tokens + @token_tracker.total_output_tokens,
|
|
613
636
|
cost: @token_tracker.total_cost
|
data/lib/legion/tty/version.rb
CHANGED