claude_swarm 0.3.1 → 0.3.3
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 +17 -0
- data/README.md +2 -2
- data/lib/claude_swarm/claude_mcp_server.rb +3 -2
- data/lib/claude_swarm/tools/task_tool.rb +10 -2
- data/lib/claude_swarm/version.rb +1 -1
- data/lib/claude_swarm.rb +1 -0
- 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: df4f13365305ca607131b9976630fd7caebaa4c2f69f2fefc59e9d036aee2033
|
4
|
+
data.tar.gz: b1bf9cc4b672843216ec3107654a6e17d84a69fde87fe54d9846bfb4dca0f7ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf0623fdf1d7ff7f551c32d87ba434d0073d0ffcb5f3254ea42d6b9e6048d350823d7bad2294929d014892728866f59117c9b58ebd5a7b0b1c2f358d8942387e
|
7
|
+
data.tar.gz: 7e575dd61d59a8c2c1e04790ba3024136797373ad585612aee3b365a0d47f22bd3732119ea73ae01ddd67b75900ebe090117993f58af1520deecf4bc57907ca1
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
## [0.3.3]
|
2
|
+
|
3
|
+
### Fixed
|
4
|
+
- **Bundler constant error**: Fixed `uninitialized constant ClaudeSwarm::Orchestrator::Bundler` error by adding missing `require "bundler"` statement
|
5
|
+
- Issue occurred when using `Bundler.with_unbundled_env` without properly requiring the bundler gem
|
6
|
+
- Resolves issue #83 reported by users upgrading to version 0.3.2
|
7
|
+
|
8
|
+
## [0.3.2]
|
9
|
+
|
10
|
+
### Added
|
11
|
+
- **Thinking budget support**: When delegating tasks between instances, orchestrators can now leverage Claude's extended thinking feature
|
12
|
+
- Connected instances automatically support thinking budgets: "think", "think hard", "think harder", "ultrathink"
|
13
|
+
- Orchestrator instances can assign thinking levels programmatically based on task complexity
|
14
|
+
- Example: Complex architectural decisions can be delegated with "think harder" while simple queries use no thinking
|
15
|
+
- Results in better quality outputs for complex tasks and faster responses for simple ones
|
16
|
+
- Works seamlessly with existing swarm configurations - no changes needed to benefit from this feature
|
17
|
+
|
1
18
|
## [0.3.1]
|
2
19
|
|
3
20
|
### Added
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Claude Swarm
|
2
2
|
|
3
|
-
[](https://badge.fury.io/rb/claude_swarm)
|
4
4
|
[](https://github.com/parruda/claude-swarm/actions/workflows/ci.yml)
|
5
5
|
|
6
6
|
Claude Swarm orchestrates multiple Claude Code instances as a collaborative AI development team. It enables running AI agents with specialized roles, tools, and directory contexts, communicating via MCP (Model Context Protocol) in a tree-like hierarchy. Define your swarm topology in simple YAML and let Claude instances delegate tasks through connected instances. Perfect for complex projects requiring specialized AI agents for frontend, backend, testing, DevOps, or research tasks.
|
@@ -42,7 +42,7 @@ gem install claude_swarm
|
|
42
42
|
Or add it to your Gemfile:
|
43
43
|
|
44
44
|
```ruby
|
45
|
-
gem 'claude_swarm'
|
45
|
+
gem 'claude_swarm', "~> 0.3.2"
|
46
46
|
```
|
47
47
|
|
48
48
|
Then run:
|
@@ -63,10 +63,11 @@ module ClaudeSwarm
|
|
63
63
|
)
|
64
64
|
|
65
65
|
# Set dynamic description for TaskTool based on instance config
|
66
|
+
thinking_info = " Thinking budget levels: \"think\" < \"think hard\" < \"think harder\" < \"ultrathink\"."
|
66
67
|
if @instance_config[:description]
|
67
|
-
Tools::TaskTool.description("Execute a task using Agent #{@instance_config[:name]}. #{@instance_config[:description]}")
|
68
|
+
Tools::TaskTool.description("Execute a task using Agent #{@instance_config[:name]}. #{@instance_config[:description]} #{thinking_info}")
|
68
69
|
else
|
69
|
-
Tools::TaskTool.description("Execute a task using Agent #{@instance_config[:name]}")
|
70
|
+
Tools::TaskTool.description("Execute a task using Agent #{@instance_config[:name]}. #{thinking_info}")
|
70
71
|
end
|
71
72
|
|
72
73
|
# Register tool classes (not instances)
|
@@ -12,12 +12,20 @@ module ClaudeSwarm
|
|
12
12
|
optional(:new_session).filled(:bool).description("Start a new session (default: false)")
|
13
13
|
optional(:system_prompt).filled(:string).description("Override the system prompt for this request")
|
14
14
|
optional(:description).filled(:string).description("A description for the request")
|
15
|
+
optional(:thinking_budget).filled(:string).description("Thinking budget: \"think\" < \"think hard\" < \"think harder\" < \"ultrathink\". Each level increases Claude's thinking allocation. Auto-select based on task complexity.")
|
15
16
|
end
|
16
17
|
|
17
|
-
def call(prompt:, new_session: false, system_prompt: nil, description: nil)
|
18
|
+
def call(prompt:, new_session: false, system_prompt: nil, description: nil, thinking_budget: nil)
|
18
19
|
executor = ClaudeMcpServer.executor
|
19
20
|
instance_config = ClaudeMcpServer.instance_config
|
20
21
|
|
22
|
+
# Prepend thinking budget to prompt if provided
|
23
|
+
final_prompt = if thinking_budget
|
24
|
+
"#{thinking_budget}: #{prompt}"
|
25
|
+
else
|
26
|
+
prompt
|
27
|
+
end
|
28
|
+
|
21
29
|
options = {
|
22
30
|
new_session: new_session,
|
23
31
|
system_prompt: system_prompt || instance_config[:prompt],
|
@@ -33,7 +41,7 @@ module ClaudeSwarm
|
|
33
41
|
# Add connections from instance config
|
34
42
|
options[:connections] = instance_config[:connections] if instance_config[:connections]&.any?
|
35
43
|
|
36
|
-
response = executor.execute(
|
44
|
+
response = executor.execute(final_prompt, options)
|
37
45
|
|
38
46
|
# Return just the result text as expected by MCP
|
39
47
|
response["result"]
|
data/lib/claude_swarm/version.rb
CHANGED
data/lib/claude_swarm.rb
CHANGED