swarm_cli 2.1.7 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c868343c2aa86a4de3f75d63068a781a2d1ed96a82f1564355659f93cb3c544
4
- data.tar.gz: 8c29eb3b332fdbadb1d992cbb3c6c1c0f24d5c47c979f6c2bcf0df227b02035d
3
+ metadata.gz: d0f22309588c6c7f15844d6d9784bb47de0217537465ff0efe5177b97f7e364a
4
+ data.tar.gz: 2c59a5904630a96f9ec7f92446ddd9904152d37007667a9d1fa2a61fc62f93ff
5
5
  SHA512:
6
- metadata.gz: 6a903ebe83d0c36907469bd975552f7b1f9a34c90e6efa1c8993b90542256699f5b96a6c3b0dea2b345b1f0ef5cc5fe1f692f4ad24d4c03d8d84c102acd79504
7
- data.tar.gz: 83d338f62e7400a761bdc0a0c7d6ad337a8ae7bf3ee171768f56d4fa359fafdfe5b0b8032dafc872c7a324224babffb169d3b86871a054c5bb20d5b77358e3d2
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
- # No action needed - SwarmSDK's swarm_stop event already contains error information
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
- # SwarmSDK emits swarm_stop automatically with error information
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SwarmCLI
4
- VERSION = "2.1.7"
4
+ VERSION = "2.1.10"
5
5
  end
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.7
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.1
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.1
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 beautiful command-line interface for SwarmSDK, the lightweight multi-agent
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/claude-swarm
295
+ homepage: https://github.com/parruda/swarm
282
296
  licenses:
283
297
  - MIT
284
298
  metadata:
285
- source_code_uri: https://github.com/parruda/claude-swarm
286
- changelog_uri: https://github.com/parruda/claude-swarm/blob/main/docs/v2/CHANGELOG.swarm_cli.md
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