swarm_memory 2.1.4 → 2.1.6

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 (184) hide show
  1. checksums.yaml +4 -4
  2. data/lib/swarm_memory/version.rb +1 -1
  3. data/lib/swarm_memory.rb +7 -2
  4. metadata +6 -185
  5. data/lib/claude_swarm/base_executor.rb +0 -133
  6. data/lib/claude_swarm/claude_code_executor.rb +0 -349
  7. data/lib/claude_swarm/claude_mcp_server.rb +0 -78
  8. data/lib/claude_swarm/cli.rb +0 -697
  9. data/lib/claude_swarm/commands/ps.rb +0 -215
  10. data/lib/claude_swarm/commands/show.rb +0 -139
  11. data/lib/claude_swarm/configuration.rb +0 -373
  12. data/lib/claude_swarm/hooks/session_start_hook.rb +0 -42
  13. data/lib/claude_swarm/json_handler.rb +0 -91
  14. data/lib/claude_swarm/mcp_generator.rb +0 -243
  15. data/lib/claude_swarm/openai/chat_completion.rb +0 -256
  16. data/lib/claude_swarm/openai/executor.rb +0 -256
  17. data/lib/claude_swarm/openai/responses.rb +0 -319
  18. data/lib/claude_swarm/orchestrator.rb +0 -878
  19. data/lib/claude_swarm/process_tracker.rb +0 -78
  20. data/lib/claude_swarm/session_cost_calculator.rb +0 -209
  21. data/lib/claude_swarm/session_path.rb +0 -42
  22. data/lib/claude_swarm/settings_generator.rb +0 -77
  23. data/lib/claude_swarm/system_utils.rb +0 -46
  24. data/lib/claude_swarm/templates/generation_prompt.md.erb +0 -230
  25. data/lib/claude_swarm/tools/reset_session_tool.rb +0 -24
  26. data/lib/claude_swarm/tools/session_info_tool.rb +0 -24
  27. data/lib/claude_swarm/tools/task_tool.rb +0 -63
  28. data/lib/claude_swarm/version.rb +0 -5
  29. data/lib/claude_swarm/worktree_manager.rb +0 -475
  30. data/lib/claude_swarm/yaml_loader.rb +0 -22
  31. data/lib/claude_swarm.rb +0 -67
  32. data/lib/swarm_cli/cli.rb +0 -201
  33. data/lib/swarm_cli/command_registry.rb +0 -61
  34. data/lib/swarm_cli/commands/mcp_serve.rb +0 -130
  35. data/lib/swarm_cli/commands/mcp_tools.rb +0 -148
  36. data/lib/swarm_cli/commands/migrate.rb +0 -55
  37. data/lib/swarm_cli/commands/run.rb +0 -173
  38. data/lib/swarm_cli/config_loader.rb +0 -98
  39. data/lib/swarm_cli/formatters/human_formatter.rb +0 -781
  40. data/lib/swarm_cli/formatters/json_formatter.rb +0 -51
  41. data/lib/swarm_cli/interactive_repl.rb +0 -924
  42. data/lib/swarm_cli/mcp_serve_options.rb +0 -44
  43. data/lib/swarm_cli/mcp_tools_options.rb +0 -59
  44. data/lib/swarm_cli/migrate_options.rb +0 -54
  45. data/lib/swarm_cli/migrator.rb +0 -132
  46. data/lib/swarm_cli/options.rb +0 -151
  47. data/lib/swarm_cli/ui/components/agent_badge.rb +0 -33
  48. data/lib/swarm_cli/ui/components/content_block.rb +0 -120
  49. data/lib/swarm_cli/ui/components/divider.rb +0 -57
  50. data/lib/swarm_cli/ui/components/panel.rb +0 -62
  51. data/lib/swarm_cli/ui/components/usage_stats.rb +0 -70
  52. data/lib/swarm_cli/ui/formatters/cost.rb +0 -49
  53. data/lib/swarm_cli/ui/formatters/number.rb +0 -58
  54. data/lib/swarm_cli/ui/formatters/text.rb +0 -77
  55. data/lib/swarm_cli/ui/formatters/time.rb +0 -73
  56. data/lib/swarm_cli/ui/icons.rb +0 -36
  57. data/lib/swarm_cli/ui/renderers/event_renderer.rb +0 -188
  58. data/lib/swarm_cli/ui/state/agent_color_cache.rb +0 -45
  59. data/lib/swarm_cli/ui/state/depth_tracker.rb +0 -40
  60. data/lib/swarm_cli/ui/state/spinner_manager.rb +0 -170
  61. data/lib/swarm_cli/ui/state/usage_tracker.rb +0 -62
  62. data/lib/swarm_cli/version.rb +0 -5
  63. data/lib/swarm_cli.rb +0 -46
  64. data/lib/swarm_sdk/agent/RETRY_LOGIC.md +0 -127
  65. data/lib/swarm_sdk/agent/builder.rb +0 -552
  66. data/lib/swarm_sdk/agent/chat.rb +0 -774
  67. data/lib/swarm_sdk/agent/chat_helpers/context_tracker.rb +0 -268
  68. data/lib/swarm_sdk/agent/chat_helpers/event_emitter.rb +0 -204
  69. data/lib/swarm_sdk/agent/chat_helpers/hook_integration.rb +0 -480
  70. data/lib/swarm_sdk/agent/chat_helpers/instrumentation.rb +0 -78
  71. data/lib/swarm_sdk/agent/chat_helpers/llm_configuration.rb +0 -233
  72. data/lib/swarm_sdk/agent/chat_helpers/logging_helpers.rb +0 -116
  73. data/lib/swarm_sdk/agent/chat_helpers/serialization.rb +0 -83
  74. data/lib/swarm_sdk/agent/chat_helpers/system_reminder_injector.rb +0 -136
  75. data/lib/swarm_sdk/agent/chat_helpers/system_reminders.rb +0 -79
  76. data/lib/swarm_sdk/agent/chat_helpers/token_tracking.rb +0 -98
  77. data/lib/swarm_sdk/agent/context.rb +0 -116
  78. data/lib/swarm_sdk/agent/context_manager.rb +0 -315
  79. data/lib/swarm_sdk/agent/definition.rb +0 -477
  80. data/lib/swarm_sdk/agent/llm_instrumentation_middleware.rb +0 -182
  81. data/lib/swarm_sdk/agent/system_prompt_builder.rb +0 -161
  82. data/lib/swarm_sdk/builders/base_builder.rb +0 -409
  83. data/lib/swarm_sdk/claude_code_agent_adapter.rb +0 -205
  84. data/lib/swarm_sdk/concerns/cleanupable.rb +0 -39
  85. data/lib/swarm_sdk/concerns/snapshotable.rb +0 -67
  86. data/lib/swarm_sdk/concerns/validatable.rb +0 -55
  87. data/lib/swarm_sdk/configuration/parser.rb +0 -353
  88. data/lib/swarm_sdk/configuration/translator.rb +0 -255
  89. data/lib/swarm_sdk/configuration.rb +0 -135
  90. data/lib/swarm_sdk/context_compactor/metrics.rb +0 -147
  91. data/lib/swarm_sdk/context_compactor/token_counter.rb +0 -106
  92. data/lib/swarm_sdk/context_compactor.rb +0 -335
  93. data/lib/swarm_sdk/context_management/builder.rb +0 -128
  94. data/lib/swarm_sdk/context_management/context.rb +0 -328
  95. data/lib/swarm_sdk/defaults.rb +0 -196
  96. data/lib/swarm_sdk/events_to_messages.rb +0 -199
  97. data/lib/swarm_sdk/hooks/adapter.rb +0 -359
  98. data/lib/swarm_sdk/hooks/context.rb +0 -197
  99. data/lib/swarm_sdk/hooks/definition.rb +0 -80
  100. data/lib/swarm_sdk/hooks/error.rb +0 -29
  101. data/lib/swarm_sdk/hooks/executor.rb +0 -146
  102. data/lib/swarm_sdk/hooks/registry.rb +0 -147
  103. data/lib/swarm_sdk/hooks/result.rb +0 -150
  104. data/lib/swarm_sdk/hooks/shell_executor.rb +0 -255
  105. data/lib/swarm_sdk/hooks/tool_call.rb +0 -35
  106. data/lib/swarm_sdk/hooks/tool_result.rb +0 -62
  107. data/lib/swarm_sdk/log_collector.rb +0 -227
  108. data/lib/swarm_sdk/log_stream.rb +0 -127
  109. data/lib/swarm_sdk/markdown_parser.rb +0 -75
  110. data/lib/swarm_sdk/model_aliases.json +0 -8
  111. data/lib/swarm_sdk/models.json +0 -1
  112. data/lib/swarm_sdk/models.rb +0 -120
  113. data/lib/swarm_sdk/node_context.rb +0 -245
  114. data/lib/swarm_sdk/observer/builder.rb +0 -81
  115. data/lib/swarm_sdk/observer/config.rb +0 -45
  116. data/lib/swarm_sdk/observer/manager.rb +0 -236
  117. data/lib/swarm_sdk/patterns/agent_observer.rb +0 -160
  118. data/lib/swarm_sdk/permissions/config.rb +0 -239
  119. data/lib/swarm_sdk/permissions/error_formatter.rb +0 -121
  120. data/lib/swarm_sdk/permissions/path_matcher.rb +0 -35
  121. data/lib/swarm_sdk/permissions/validator.rb +0 -173
  122. data/lib/swarm_sdk/permissions_builder.rb +0 -122
  123. data/lib/swarm_sdk/plugin.rb +0 -309
  124. data/lib/swarm_sdk/plugin_registry.rb +0 -101
  125. data/lib/swarm_sdk/proc_helpers.rb +0 -53
  126. data/lib/swarm_sdk/prompts/base_system_prompt.md.erb +0 -117
  127. data/lib/swarm_sdk/restore_result.rb +0 -65
  128. data/lib/swarm_sdk/result.rb +0 -123
  129. data/lib/swarm_sdk/snapshot.rb +0 -156
  130. data/lib/swarm_sdk/snapshot_from_events.rb +0 -397
  131. data/lib/swarm_sdk/state_restorer.rb +0 -476
  132. data/lib/swarm_sdk/state_snapshot.rb +0 -334
  133. data/lib/swarm_sdk/swarm/agent_initializer.rb +0 -683
  134. data/lib/swarm_sdk/swarm/all_agents_builder.rb +0 -167
  135. data/lib/swarm_sdk/swarm/builder.rb +0 -249
  136. data/lib/swarm_sdk/swarm/executor.rb +0 -213
  137. data/lib/swarm_sdk/swarm/hook_triggers.rb +0 -150
  138. data/lib/swarm_sdk/swarm/logging_callbacks.rb +0 -340
  139. data/lib/swarm_sdk/swarm/mcp_configurator.rb +0 -154
  140. data/lib/swarm_sdk/swarm/swarm_registry_builder.rb +0 -67
  141. data/lib/swarm_sdk/swarm/tool_configurator.rb +0 -358
  142. data/lib/swarm_sdk/swarm.rb +0 -717
  143. data/lib/swarm_sdk/swarm_loader.rb +0 -145
  144. data/lib/swarm_sdk/swarm_registry.rb +0 -136
  145. data/lib/swarm_sdk/tools/bash.rb +0 -282
  146. data/lib/swarm_sdk/tools/clock.rb +0 -44
  147. data/lib/swarm_sdk/tools/delegate.rb +0 -267
  148. data/lib/swarm_sdk/tools/document_converters/base_converter.rb +0 -83
  149. data/lib/swarm_sdk/tools/document_converters/docx_converter.rb +0 -99
  150. data/lib/swarm_sdk/tools/document_converters/html_converter.rb +0 -101
  151. data/lib/swarm_sdk/tools/document_converters/pdf_converter.rb +0 -78
  152. data/lib/swarm_sdk/tools/document_converters/xlsx_converter.rb +0 -194
  153. data/lib/swarm_sdk/tools/edit.rb +0 -145
  154. data/lib/swarm_sdk/tools/glob.rb +0 -166
  155. data/lib/swarm_sdk/tools/grep.rb +0 -235
  156. data/lib/swarm_sdk/tools/image_extractors/docx_image_extractor.rb +0 -43
  157. data/lib/swarm_sdk/tools/image_extractors/pdf_image_extractor.rb +0 -163
  158. data/lib/swarm_sdk/tools/image_formats/tiff_builder.rb +0 -65
  159. data/lib/swarm_sdk/tools/multi_edit.rb +0 -236
  160. data/lib/swarm_sdk/tools/path_resolver.rb +0 -92
  161. data/lib/swarm_sdk/tools/read.rb +0 -261
  162. data/lib/swarm_sdk/tools/registry.rb +0 -205
  163. data/lib/swarm_sdk/tools/scratchpad/scratchpad_list.rb +0 -117
  164. data/lib/swarm_sdk/tools/scratchpad/scratchpad_read.rb +0 -97
  165. data/lib/swarm_sdk/tools/scratchpad/scratchpad_write.rb +0 -108
  166. data/lib/swarm_sdk/tools/stores/read_tracker.rb +0 -96
  167. data/lib/swarm_sdk/tools/stores/scratchpad_storage.rb +0 -272
  168. data/lib/swarm_sdk/tools/stores/storage.rb +0 -142
  169. data/lib/swarm_sdk/tools/stores/todo_manager.rb +0 -65
  170. data/lib/swarm_sdk/tools/think.rb +0 -98
  171. data/lib/swarm_sdk/tools/todo_write.rb +0 -235
  172. data/lib/swarm_sdk/tools/web_fetch.rb +0 -262
  173. data/lib/swarm_sdk/tools/write.rb +0 -112
  174. data/lib/swarm_sdk/utils.rb +0 -68
  175. data/lib/swarm_sdk/validation_result.rb +0 -33
  176. data/lib/swarm_sdk/version.rb +0 -5
  177. data/lib/swarm_sdk/workflow/agent_config.rb +0 -79
  178. data/lib/swarm_sdk/workflow/builder.rb +0 -143
  179. data/lib/swarm_sdk/workflow/executor.rb +0 -497
  180. data/lib/swarm_sdk/workflow/node_builder.rb +0 -555
  181. data/lib/swarm_sdk/workflow/transformer_executor.rb +0 -249
  182. data/lib/swarm_sdk/workflow.rb +0 -554
  183. data/lib/swarm_sdk.rb +0 -524
  184. /data/lib/swarm_memory/{errors.rb → error.rb} +0 -0
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SwarmSDK
4
- # Internal result object for validation phase during snapshot restore
5
- #
6
- # Used during restore to track which agents can be restored and which
7
- # need to be skipped due to configuration mismatches.
8
- #
9
- # @api private
10
- class ValidationResult
11
- attr_reader :warnings,
12
- :skipped_agents,
13
- :restorable_agents,
14
- :skipped_delegations,
15
- :restorable_delegations
16
-
17
- # Initialize validation result
18
- #
19
- # @param warnings [Array<Hash>] Warning messages with details
20
- # @param skipped_agents [Array<Symbol>] Names of agents that can't be restored
21
- # @param restorable_agents [Array<Symbol>] Names of agents that can be restored
22
- # @param skipped_delegations [Array<String>] Names of delegations that can't be restored
23
- # @param restorable_delegations [Array<String>] Names of delegations that can be restored
24
- def initialize(warnings:, skipped_agents:, restorable_agents:,
25
- skipped_delegations:, restorable_delegations:)
26
- @warnings = warnings
27
- @skipped_agents = skipped_agents
28
- @restorable_agents = restorable_agents
29
- @skipped_delegations = skipped_delegations
30
- @restorable_delegations = restorable_delegations
31
- end
32
- end
33
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SwarmSDK
4
- VERSION = "2.3.0"
5
- end
@@ -1,79 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SwarmSDK
4
- class Workflow
5
- # AgentConfig provides fluent API for configuring agents within a node
6
- #
7
- # This class enables the chainable syntax:
8
- # agent(:backend).delegates_to(:tester, :database)
9
- # agent(:backend, reset_context: false) # Preserve context across nodes
10
- # agent(:backend).tools(:Read, :Edit) # Override tools for this node
11
- #
12
- # @example Basic delegation
13
- # agent(:backend).delegates_to(:tester)
14
- #
15
- # @example No delegation (solo agent)
16
- # agent(:planner)
17
- #
18
- # @example Preserve agent context
19
- # agent(:architect, reset_context: false)
20
- #
21
- # @example Override tools for this node
22
- # agent(:backend).tools(:Read, :Think)
23
- #
24
- # @example Combine delegation and tool override
25
- # agent(:backend).delegates_to(:tester).tools(:Read, :Edit, :Write)
26
- class AgentConfig
27
- attr_reader :agent_name
28
-
29
- def initialize(agent_name, node_builder, reset_context: true)
30
- @agent_name = agent_name
31
- @node_builder = node_builder
32
- @delegates_to = []
33
- @reset_context = reset_context
34
- @tools = nil # nil means use global agent definition tools
35
- @finalized = false
36
- end
37
-
38
- # Set delegation targets for this agent
39
- #
40
- # @param agent_names [Array<Symbol>] Names of agents to delegate to
41
- # @return [self] For method chaining
42
- def delegates_to(*agent_names)
43
- @delegates_to = agent_names.map(&:to_sym)
44
- update_registration
45
- self
46
- end
47
-
48
- # Override tools for this agent in this node
49
- #
50
- # @param tool_names [Array<Symbol>] Tool names to use (overrides global agent definition)
51
- # @return [self] For method chaining
52
- #
53
- # @example
54
- # agent(:backend).tools(:Read, :Edit)
55
- def tools(*tool_names)
56
- @tools = tool_names.map(&:to_sym)
57
- update_registration
58
- self
59
- end
60
-
61
- # Update agent registration (called after each fluent method)
62
- #
63
- # Always updates the registration with current state.
64
- # This allows chaining: .delegates_to(...).tools(...)
65
- #
66
- # @return [void]
67
- def update_registration
68
- @node_builder.register_agent(@agent_name, @delegates_to, @reset_context, @tools)
69
- end
70
-
71
- # Finalize agent configuration (backward compatibility)
72
- #
73
- # @return [void]
74
- def finalize
75
- update_registration
76
- end
77
- end
78
- end
79
- end
@@ -1,143 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SwarmSDK
4
- class Workflow
5
- # Builder provides DSL for building multi-node workflows
6
- # This is the top-level builder accessed via SwarmSDK.workflow
7
- #
8
- # The DSL enables:
9
- # - Node-based workflow configuration
10
- # - Agent delegation per node
11
- # - Input/output transformers for data flow
12
- # - Context preservation across nodes
13
- #
14
- # @example Multi-stage workflow
15
- # workflow = SwarmSDK.workflow do
16
- # name "Build Pipeline"
17
- # start_node :planning
18
- #
19
- # agent :architect do
20
- # model "gpt-5"
21
- # prompt "You design systems"
22
- # end
23
- #
24
- # agent :coder do
25
- # model "gpt-4"
26
- # prompt "You implement code"
27
- # end
28
- #
29
- # node :planning do
30
- # agent(:architect)
31
- # end
32
- #
33
- # node :implementation do
34
- # agent(:coder)
35
- # depends_on :planning
36
- # end
37
- # end
38
- #
39
- # workflow.execute("Build auth system")
40
- class Builder < Builders::BaseBuilder
41
- # Main entry point for DSL
42
- #
43
- # @example
44
- # workflow = SwarmSDK.workflow do
45
- # name "Pipeline"
46
- # start_node :planning
47
- # node(:planning) { agent(:architect) }
48
- # end
49
- class << self
50
- def build(allow_filesystem_tools: nil, &block)
51
- builder = new(allow_filesystem_tools: allow_filesystem_tools)
52
- builder.instance_eval(&block)
53
- builder.build_swarm
54
- end
55
- end
56
-
57
- def initialize(allow_filesystem_tools: nil)
58
- super
59
- @nodes = {}
60
- @start_node = nil
61
- end
62
-
63
- # Define a node (mini-swarm execution stage)
64
- #
65
- # Nodes enable multi-stage workflows where different agent teams
66
- # collaborate in sequence. Each node is an independent swarm execution.
67
- #
68
- # @param name [Symbol] Node name
69
- # @yield Block for node configuration
70
- # @return [void]
71
- #
72
- # @example Solo agent node
73
- # node :planning do
74
- # agent(:architect)
75
- # end
76
- #
77
- # @example Multi-agent node with delegation
78
- # node :implementation do
79
- # agent(:backend).delegates_to(:tester, :database)
80
- # agent(:tester).delegates_to(:database)
81
- # agent(:database)
82
- # depends_on :planning
83
- # end
84
- def node(name, &block)
85
- builder = Workflow::NodeBuilder.new(name)
86
- builder.instance_eval(&block)
87
- @nodes[name] = builder
88
- end
89
-
90
- # Set the starting node for workflow execution
91
- #
92
- # Required when nodes are defined. Specifies which node to execute first.
93
- #
94
- # @param name [Symbol] Name of starting node
95
- # @return [void]
96
- #
97
- # @example
98
- # start_node :planning
99
- def start_node(name)
100
- @start_node = name.to_sym
101
- end
102
-
103
- # Build the actual Workflow instance
104
- def build_swarm # Returns Workflow despite method name
105
- raise ConfigurationError, "Workflow name not set. Use: name 'My Workflow'" unless @swarm_name
106
- raise ConfigurationError, "No nodes defined. Use: node :name { ... }" if @nodes.empty?
107
- raise ConfigurationError, "start_node not set. Use: start_node :name" unless @start_node
108
-
109
- # Validate filesystem tools BEFORE building
110
- validate_all_agents_filesystem_tools if @all_agents_config
111
- validate_agent_filesystem_tools
112
-
113
- build_workflow
114
- end
115
-
116
- private
117
-
118
- # Build a node-based workflow
119
- #
120
- # @return [Workflow] Configured workflow instance
121
- def build_workflow
122
- # Build agent definitions
123
- agent_definitions = build_agent_definitions
124
-
125
- # Create workflow
126
- workflow = Workflow.new(
127
- swarm_name: @swarm_name,
128
- swarm_id: @swarm_id,
129
- agent_definitions: agent_definitions,
130
- nodes: @nodes,
131
- start_node: @start_node,
132
- scratchpad: @scratchpad,
133
- allow_filesystem_tools: @allow_filesystem_tools,
134
- )
135
-
136
- # Pass swarm registry config to workflow if external swarms registered
137
- workflow.swarm_registry_config = @swarm_registry_config if @swarm_registry_config.any?
138
-
139
- workflow
140
- end
141
- end
142
- end
143
- end