swarm_cli 2.1.6 → 2.1.10
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/swarm_cli/formatters/human_formatter.rb +30 -0
- data/lib/swarm_cli/formatters/json_formatter.rb +13 -2
- data/lib/swarm_cli/version.rb +1 -1
- metadata +21 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d0f22309588c6c7f15844d6d9784bb47de0217537465ff0efe5177b97f7e364a
|
|
4
|
+
data.tar.gz: 2c59a5904630a96f9ec7f92446ddd9904152d37007667a9d1fa2a61fc62f93ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 59db047ad65b4d23df67f1c44be4d7a6a7167bc79da3e6a25b73058a8ac9f3e22eb2cc920cf774ca374f92fbac3e7b0f407d360eceafdfe2ccf14e61cfef16bd
|
|
7
|
+
data.tar.gz: 6c7c2f56ac2bda02c30e97b6c1fe84d092ab46f9f9d245e6f91ee48a3f6c3949a74e470296b1e3466719a829f61f23eed3700ffc699cb36f6ef558a97ec6bc37
|
|
@@ -99,6 +99,8 @@ module SwarmCLI
|
|
|
99
99
|
handle_llm_retry_attempt(entry)
|
|
100
100
|
when "llm_retry_exhausted"
|
|
101
101
|
handle_llm_retry_exhausted(entry)
|
|
102
|
+
when "llm_request_failed"
|
|
103
|
+
handle_llm_request_failed(entry)
|
|
102
104
|
end
|
|
103
105
|
end
|
|
104
106
|
|
|
@@ -645,6 +647,34 @@ module SwarmCLI
|
|
|
645
647
|
)
|
|
646
648
|
end
|
|
647
649
|
|
|
650
|
+
def handle_llm_request_failed(entry)
|
|
651
|
+
agent = entry[:agent]
|
|
652
|
+
entry[:error_type]
|
|
653
|
+
error_class = entry[:error_class]
|
|
654
|
+
error_message = entry[:error_message]
|
|
655
|
+
status_code = entry[:status_code]
|
|
656
|
+
|
|
657
|
+
# Stop agent thinking spinner (if active)
|
|
658
|
+
unless @quiet
|
|
659
|
+
spinner_key = "agent_#{agent}".to_sym
|
|
660
|
+
@spinner_manager.stop(spinner_key) if @spinner_manager.active?(spinner_key)
|
|
661
|
+
end
|
|
662
|
+
|
|
663
|
+
status_display = status_code ? " (#{status_code})" : ""
|
|
664
|
+
lines = [
|
|
665
|
+
@pastel.red("LLM request failed#{status_display}"),
|
|
666
|
+
@pastel.dim("Error: #{error_class}: #{error_message}"),
|
|
667
|
+
@pastel.dim("This error cannot be automatically recovered"),
|
|
668
|
+
]
|
|
669
|
+
|
|
670
|
+
@output.puts @panel.render(
|
|
671
|
+
type: :error,
|
|
672
|
+
title: "REQUEST FAILED #{@agent_badge.render(agent)}",
|
|
673
|
+
lines: lines,
|
|
674
|
+
indent: @depth_tracker.get(agent),
|
|
675
|
+
)
|
|
676
|
+
end
|
|
677
|
+
|
|
648
678
|
def display_todo_list(agent, timestamp)
|
|
649
679
|
todos = SwarmSDK::Tools::Stores::TodoManager.get_todos(agent.to_sym)
|
|
650
680
|
indent = @depth_tracker.indent(agent)
|
|
@@ -35,9 +35,20 @@ module SwarmCLI
|
|
|
35
35
|
|
|
36
36
|
# Called when swarm execution fails
|
|
37
37
|
#
|
|
38
|
-
#
|
|
38
|
+
# Emits error information as JSON. If error occurs during execution,
|
|
39
|
+
# SwarmSDK's swarm_stop event will also contain error details.
|
|
40
|
+
# This handles errors that occur before or outside swarm execution.
|
|
39
41
|
def on_error(error:, duration: nil)
|
|
40
|
-
|
|
42
|
+
error_data = {
|
|
43
|
+
type: "error",
|
|
44
|
+
error_class: error.class.name,
|
|
45
|
+
error_message: error.message,
|
|
46
|
+
timestamp: Time.now.utc.iso8601(6),
|
|
47
|
+
}
|
|
48
|
+
error_data[:duration] = duration if duration
|
|
49
|
+
error_data[:backtrace] = error.backtrace if error.respond_to?(:backtrace) && error.backtrace
|
|
50
|
+
|
|
51
|
+
emit(error_data)
|
|
41
52
|
end
|
|
42
53
|
|
|
43
54
|
private
|
data/lib/swarm_cli/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: swarm_cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.1.
|
|
4
|
+
version: 2.1.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Paulo Arruda
|
|
@@ -37,20 +37,34 @@ dependencies:
|
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: '0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: reline
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 0.6.3
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: 0.6.3
|
|
40
54
|
- !ruby/object:Gem::Dependency
|
|
41
55
|
name: swarm_sdk
|
|
42
56
|
requirement: !ruby/object:Gem::Requirement
|
|
43
57
|
requirements:
|
|
44
58
|
- - "~>"
|
|
45
59
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 2.5.
|
|
60
|
+
version: 2.5.5
|
|
47
61
|
type: :runtime
|
|
48
62
|
prerelease: false
|
|
49
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
64
|
requirements:
|
|
51
65
|
- - "~>"
|
|
52
66
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 2.5.
|
|
67
|
+
version: 2.5.5
|
|
54
68
|
- !ruby/object:Gem::Dependency
|
|
55
69
|
name: tty-box
|
|
56
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -234,7 +248,7 @@ dependencies:
|
|
|
234
248
|
- !ruby/object:Gem::Version
|
|
235
249
|
version: 3.0.0
|
|
236
250
|
description: |
|
|
237
|
-
SwarmCLI provides a
|
|
251
|
+
SwarmCLI provides a command-line interface for SwarmSDK, the lightweight multi-agent
|
|
238
252
|
AI orchestration framework. Built with the TTY toolkit, it offers an intuitive and interactive
|
|
239
253
|
way to define, manage, and execute AI agent swarms with progress indicators, formatted output,
|
|
240
254
|
and comprehensive help documentation.
|
|
@@ -278,12 +292,12 @@ files:
|
|
|
278
292
|
- lib/swarm_cli/ui/state/spinner_manager.rb
|
|
279
293
|
- lib/swarm_cli/ui/state/usage_tracker.rb
|
|
280
294
|
- lib/swarm_cli/version.rb
|
|
281
|
-
homepage: https://github.com/parruda/
|
|
295
|
+
homepage: https://github.com/parruda/swarm
|
|
282
296
|
licenses:
|
|
283
297
|
- MIT
|
|
284
298
|
metadata:
|
|
285
|
-
source_code_uri: https://github.com/parruda/
|
|
286
|
-
changelog_uri: https://github.com/parruda/
|
|
299
|
+
source_code_uri: https://github.com/parruda/swarm
|
|
300
|
+
changelog_uri: https://github.com/parruda/swarm/blob/main/docs/v2/CHANGELOG.swarm_cli.md
|
|
287
301
|
rdoc_options: []
|
|
288
302
|
require_paths:
|
|
289
303
|
- lib
|