swarm_sdk 2.1.3 → 2.2.0

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/lib/swarm_sdk/agent/builder.rb +33 -0
  3. data/lib/swarm_sdk/agent/chat/context_tracker.rb +33 -0
  4. data/lib/swarm_sdk/agent/chat/hook_integration.rb +41 -0
  5. data/lib/swarm_sdk/agent/chat/system_reminder_injector.rb +11 -27
  6. data/lib/swarm_sdk/agent/chat.rb +198 -51
  7. data/lib/swarm_sdk/agent/context.rb +6 -2
  8. data/lib/swarm_sdk/agent/context_manager.rb +6 -0
  9. data/lib/swarm_sdk/agent/definition.rb +14 -2
  10. data/lib/swarm_sdk/agent/llm_instrumentation_middleware.rb +180 -0
  11. data/lib/swarm_sdk/configuration.rb +387 -94
  12. data/lib/swarm_sdk/events_to_messages.rb +181 -0
  13. data/lib/swarm_sdk/log_collector.rb +31 -5
  14. data/lib/swarm_sdk/log_stream.rb +37 -8
  15. data/lib/swarm_sdk/model_aliases.json +4 -1
  16. data/lib/swarm_sdk/node/agent_config.rb +33 -8
  17. data/lib/swarm_sdk/node/builder.rb +39 -18
  18. data/lib/swarm_sdk/node_orchestrator.rb +293 -26
  19. data/lib/swarm_sdk/proc_helpers.rb +53 -0
  20. data/lib/swarm_sdk/providers/openai_with_responses.rb +22 -15
  21. data/lib/swarm_sdk/restore_result.rb +65 -0
  22. data/lib/swarm_sdk/snapshot.rb +156 -0
  23. data/lib/swarm_sdk/snapshot_from_events.rb +386 -0
  24. data/lib/swarm_sdk/state_restorer.rb +491 -0
  25. data/lib/swarm_sdk/state_snapshot.rb +369 -0
  26. data/lib/swarm_sdk/swarm/agent_initializer.rb +360 -55
  27. data/lib/swarm_sdk/swarm/all_agents_builder.rb +28 -1
  28. data/lib/swarm_sdk/swarm/builder.rb +208 -12
  29. data/lib/swarm_sdk/swarm/swarm_registry_builder.rb +67 -0
  30. data/lib/swarm_sdk/swarm/tool_configurator.rb +46 -11
  31. data/lib/swarm_sdk/swarm.rb +337 -42
  32. data/lib/swarm_sdk/swarm_loader.rb +145 -0
  33. data/lib/swarm_sdk/swarm_registry.rb +136 -0
  34. data/lib/swarm_sdk/tools/delegate.rb +92 -7
  35. data/lib/swarm_sdk/tools/read.rb +17 -5
  36. data/lib/swarm_sdk/tools/stores/read_tracker.rb +47 -12
  37. data/lib/swarm_sdk/tools/stores/scratchpad_storage.rb +45 -0
  38. data/lib/swarm_sdk/utils.rb +18 -0
  39. data/lib/swarm_sdk/validation_result.rb +33 -0
  40. data/lib/swarm_sdk/version.rb +1 -1
  41. data/lib/swarm_sdk.rb +40 -8
  42. metadata +17 -6
  43. data/lib/swarm_sdk/mcp.rb +0 -16
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swarm_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Arruda
@@ -29,28 +29,28 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '1.8'
32
+ version: '1.9'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.8'
39
+ version: '1.9'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: ruby_llm-mcp
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 0.6.3
46
+ version: '0.7'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 0.6.3
53
+ version: '0.7'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: zeitwerk
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -88,11 +88,13 @@ files:
88
88
  - lib/swarm_sdk/agent/context.rb
89
89
  - lib/swarm_sdk/agent/context_manager.rb
90
90
  - lib/swarm_sdk/agent/definition.rb
91
+ - lib/swarm_sdk/agent/llm_instrumentation_middleware.rb
91
92
  - lib/swarm_sdk/claude_code_agent_adapter.rb
92
93
  - lib/swarm_sdk/configuration.rb
93
94
  - lib/swarm_sdk/context_compactor.rb
94
95
  - lib/swarm_sdk/context_compactor/metrics.rb
95
96
  - lib/swarm_sdk/context_compactor/token_counter.rb
97
+ - lib/swarm_sdk/events_to_messages.rb
96
98
  - lib/swarm_sdk/hooks/adapter.rb
97
99
  - lib/swarm_sdk/hooks/context.rb
98
100
  - lib/swarm_sdk/hooks/definition.rb
@@ -106,7 +108,6 @@ files:
106
108
  - lib/swarm_sdk/log_collector.rb
107
109
  - lib/swarm_sdk/log_stream.rb
108
110
  - lib/swarm_sdk/markdown_parser.rb
109
- - lib/swarm_sdk/mcp.rb
110
111
  - lib/swarm_sdk/model_aliases.json
111
112
  - lib/swarm_sdk/models.json
112
113
  - lib/swarm_sdk/models.rb
@@ -122,15 +123,24 @@ files:
122
123
  - lib/swarm_sdk/permissions_builder.rb
123
124
  - lib/swarm_sdk/plugin.rb
124
125
  - lib/swarm_sdk/plugin_registry.rb
126
+ - lib/swarm_sdk/proc_helpers.rb
125
127
  - lib/swarm_sdk/prompts/base_system_prompt.md.erb
126
128
  - lib/swarm_sdk/providers/openai_with_responses.rb
129
+ - lib/swarm_sdk/restore_result.rb
127
130
  - lib/swarm_sdk/result.rb
131
+ - lib/swarm_sdk/snapshot.rb
132
+ - lib/swarm_sdk/snapshot_from_events.rb
133
+ - lib/swarm_sdk/state_restorer.rb
134
+ - lib/swarm_sdk/state_snapshot.rb
128
135
  - lib/swarm_sdk/swarm.rb
129
136
  - lib/swarm_sdk/swarm/agent_initializer.rb
130
137
  - lib/swarm_sdk/swarm/all_agents_builder.rb
131
138
  - lib/swarm_sdk/swarm/builder.rb
132
139
  - lib/swarm_sdk/swarm/mcp_configurator.rb
140
+ - lib/swarm_sdk/swarm/swarm_registry_builder.rb
133
141
  - lib/swarm_sdk/swarm/tool_configurator.rb
142
+ - lib/swarm_sdk/swarm_loader.rb
143
+ - lib/swarm_sdk/swarm_registry.rb
134
144
  - lib/swarm_sdk/tools/bash.rb
135
145
  - lib/swarm_sdk/tools/clock.rb
136
146
  - lib/swarm_sdk/tools/delegate.rb
@@ -161,6 +171,7 @@ files:
161
171
  - lib/swarm_sdk/tools/web_fetch.rb
162
172
  - lib/swarm_sdk/tools/write.rb
163
173
  - lib/swarm_sdk/utils.rb
174
+ - lib/swarm_sdk/validation_result.rb
164
175
  - lib/swarm_sdk/version.rb
165
176
  homepage: https://github.com/parruda/claude-swarm
166
177
  licenses:
data/lib/swarm_sdk/mcp.rb DELETED
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SwarmSDK
4
- module MCP
5
- class << self
6
- # Lazy load ruby_llm-mcp only when MCP servers are used
7
- def lazy_load
8
- return if @loaded
9
-
10
- require "ruby_llm/mcp"
11
-
12
- @loaded = true
13
- end
14
- end
15
- end
16
- end