claude_swarm 0.1.4 → 0.1.5

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: a4597e6fdc67837e39ae1c175cc9dded454460ec00488d92aa81cab928737b4a
4
- data.tar.gz: 46790b958dc4916a3df066ae7384e753c84c6c4cc624ac62754cab646f2c9102
3
+ metadata.gz: a6fa670f8d967ad8976c05b96fe3d2103125ec17e31e3c343bb38a3002dc5182
4
+ data.tar.gz: e4cb03e288ea20ac810414bd71e5a84c6d1bb9b4c77ee041a29deebb8270d7ee
5
5
  SHA512:
6
- metadata.gz: f876006a8368881b252e675fab2b2999ae5a79574caff9db081ea7ea72402ce172524d7c6a2fe9c4b967502971a1cab83895dfd1f339592a516c58298450426a
7
- data.tar.gz: b55120d481b8605e11a7024f1d6626f5c1fecca18627b6247e4b517c16e29d762166408a1753b1fc1b845c80f820f9701ce30ef2b0edb7e8a58da1b3635d0cc4
6
+ metadata.gz: 06d9f249a5f0c52d13a6dc9d34b1b49d572d9432b0617a616cd9c3d35058b17320b23d63b3db641c55d5a812b810c6ea8fab4ae742555da483f28064360f3326
7
+ data.tar.gz: '082a16da97c25bffa67fcdf831a1b5c612b02f1ba3884a0a952eb77bf78f9cf22d045b728dad351b0cce8b201943dd972df4fd4301396ace0322fb1de0dd711a'
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## [0.1.5]
2
+
3
+ ### Changed
4
+ - **Improved command execution**: Switched from `exec` to `Dir.chdir` + `system` for better process handling and proper directory context
5
+ - Command arguments are now passed as an array instead of a shell string, eliminating the need for manual shell escaping
6
+ - Added default prompt behavior: when no `-p` flag is provided, a default prompt is added to help Claude understand it should start working
7
+
8
+ ### Internal
9
+ - Updated test suite to match new command execution implementation
10
+ - Removed shellwords escaping tests as they're no longer needed with array-based command execution
11
+
1
12
  ## [0.1.4]
2
13
 
3
14
  ### Added
data/README.md CHANGED
@@ -52,7 +52,7 @@ swarm:
52
52
  frontend:
53
53
  description: "Frontend specialist handling UI and user experience"
54
54
  directory: ./frontend
55
- model: sonnet
55
+ model: opus
56
56
  tools:
57
57
  - Edit
58
58
  - Write
@@ -60,7 +60,7 @@ swarm:
60
60
  backend:
61
61
  description: "Backend developer managing APIs and data layer"
62
62
  directory: ./backend
63
- model: sonnet
63
+ model: opus
64
64
  tools:
65
65
  - Edit
66
66
  - Write
@@ -111,14 +111,14 @@ swarm:
111
111
  react_dev:
112
112
  description: "React developer specializing in components and state management"
113
113
  directory: ./web-frontend/src
114
- model: sonnet
114
+ model: opus
115
115
  prompt: "You specialize in React components and state management"
116
116
  tools: [Edit, Write, "Bash(npm:*)"]
117
117
 
118
118
  css_expert:
119
119
  description: "CSS specialist handling styling and responsive design"
120
120
  directory: ./web-frontend/styles
121
- model: sonnet
121
+ model: opus
122
122
  prompt: "You handle all CSS and styling concerns"
123
123
  tools: [Edit, Write, Read]
124
124
 
@@ -133,21 +133,21 @@ swarm:
133
133
  api_dev:
134
134
  description: "API developer building REST endpoints"
135
135
  directory: ./api-server/src
136
- model: sonnet
136
+ model: opus
137
137
  prompt: "You develop REST API endpoints"
138
138
  tools: [Edit, Write, Bash]
139
139
 
140
140
  database_expert:
141
141
  description: "Database specialist managing schemas and migrations"
142
142
  directory: ./api-server/db
143
- model: sonnet
143
+ model: opus
144
144
  prompt: "You handle database schema and migrations"
145
145
  tools: [Edit, Write, "Bash(psql:*, migrate:*)"]
146
146
 
147
147
  mobile_lead:
148
148
  description: "Mobile team lead coordinating cross-platform development"
149
149
  directory: ./mobile-app
150
- model: sonnet
150
+ model: opus
151
151
  connections: [ios_dev, android_dev]
152
152
  prompt: "You coordinate mobile development across platforms"
153
153
  tools: [Read, Edit]
@@ -155,21 +155,21 @@ swarm:
155
155
  ios_dev:
156
156
  description: "iOS developer building native Apple applications"
157
157
  directory: ./mobile-app/ios
158
- model: sonnet
158
+ model: opus
159
159
  prompt: "You develop the iOS application"
160
160
  tools: [Edit, Write, "Bash(xcodebuild:*, pod:*)"]
161
161
 
162
162
  android_dev:
163
163
  description: "Android developer creating native Android apps"
164
164
  directory: ./mobile-app/android
165
- model: sonnet
165
+ model: opus
166
166
  prompt: "You develop the Android application"
167
167
  tools: [Edit, Write, "Bash(gradle:*, adb:*)"]
168
168
 
169
169
  devops:
170
170
  description: "DevOps engineer managing CI/CD and infrastructure"
171
171
  directory: ./infrastructure
172
- model: sonnet
172
+ model: opus
173
173
  prompt: "You handle CI/CD and infrastructure"
174
174
  tools: [Read, Edit, "Bash(docker:*, kubectl:*)"]
175
175
  ```
@@ -305,7 +305,7 @@ swarm:
305
305
  frontend:
306
306
  description: "Frontend developer specializing in React and TypeScript"
307
307
  directory: ./frontend
308
- model: sonnet
308
+ model: opus
309
309
  connections: [architect]
310
310
  prompt: "You specialize in React, TypeScript, and modern frontend development"
311
311
  tools:
@@ -316,7 +316,7 @@ swarm:
316
316
  backend:
317
317
  description: "Backend developer building APIs and services"
318
318
  directory: ./backend
319
- model: sonnet
319
+ model: opus
320
320
  connections: [architect, database]
321
321
  tools:
322
322
  - Edit
@@ -334,7 +334,7 @@ swarm:
334
334
  devops:
335
335
  description: "DevOps engineer handling deployment and infrastructure"
336
336
  directory: .
337
- model: sonnet
337
+ model: opus
338
338
  connections: [architect]
339
339
  tools:
340
340
  - Read
@@ -367,7 +367,7 @@ swarm:
367
367
  data_analyst:
368
368
  description: "Data analyst processing research data and statistics"
369
369
  directory: ~/research/data
370
- model: sonnet
370
+ model: opus
371
371
  tools:
372
372
  - Read
373
373
  - Write
@@ -381,7 +381,7 @@ swarm:
381
381
  writer:
382
382
  description: "Technical writer preparing research documentation"
383
383
  directory: ~/research/papers
384
- model: sonnet
384
+ model: opus
385
385
  tools:
386
386
  - Edit
387
387
  - Write
@@ -51,32 +51,43 @@ module ClaudeSwarm
51
51
  end
52
52
 
53
53
  # Execute the main instance - this will cascade to other instances via MCP
54
- exec(command)
54
+ Dir.chdir(main_instance[:directory]) do
55
+ system(*command)
56
+ end
55
57
  end
56
58
 
57
59
  private
58
60
 
59
61
  def build_main_command(instance)
60
- parts = []
61
- parts << "cd #{Shellwords.escape(instance[:directory])} &&"
62
- parts << "claude"
63
- parts << "--model #{instance[:model]}"
62
+ parts = [
63
+ "claude",
64
+ "--model",
65
+ instance[:model]
66
+ ]
64
67
 
65
68
  if @vibe
66
69
  parts << "--dangerously-skip-permissions"
67
70
  elsif instance[:tools].any?
68
71
  tools_str = instance[:tools].join(",")
69
- parts << "--allowedTools '#{tools_str}'"
72
+ parts << "--allowedTools"
73
+ parts << tools_str
70
74
  end
71
75
 
72
- parts << "--append-system-prompt #{Shellwords.escape(instance[:prompt])}" if instance[:prompt]
76
+ if instance[:prompt]
77
+ parts << "--append-system-prompt"
78
+ parts << instance[:prompt]
79
+ end
73
80
 
74
81
  mcp_config_path = @generator.mcp_config_path(@config.main_instance)
75
- parts << "--mcp-config #{mcp_config_path}"
82
+ parts << "--mcp-config"
83
+ parts << mcp_config_path
76
84
 
77
- parts << "-p #{Shellwords.escape(@prompt)}" if @prompt
78
-
79
- parts.join(" ")
85
+ if @prompt
86
+ parts << "-p"
87
+ parts << @prompt
88
+ else
89
+ parts << "#{instance[:prompt]}\n\nNow just say 'I am ready to start'"
90
+ end
80
91
  end
81
92
  end
82
93
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ClaudeSwarm
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: claude_swarm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Arruda