roast-ai 0.4.4 → 0.4.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 (232) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +2 -0
  3. data/.github/workflows/ci.yaml +1 -0
  4. data/.gitignore +0 -26
  5. data/.rubocop.yml +13 -0
  6. data/.rubocop_todo.yml +21 -0
  7. data/CHANGELOG.md +37 -0
  8. data/Gemfile +4 -0
  9. data/Gemfile.lock +43 -1
  10. data/bin/rubocop +27 -0
  11. data/bin/spoom +27 -0
  12. data/bin/srb +27 -0
  13. data/bin/srb-rbi +27 -0
  14. data/bin/tapioca +27 -0
  15. data/docs/INSTRUMENTATION.md +3 -3
  16. data/dsl/simple.rb +10 -0
  17. data/examples/retry/workflow.yml +23 -0
  18. data/lib/roast/dsl/executor.rb +26 -0
  19. data/lib/roast/dsl.rb +7 -0
  20. data/lib/roast/errors.rb +1 -0
  21. data/lib/roast/factories/api_provider_factory.rb +1 -0
  22. data/lib/roast/helpers/function_caching_interceptor.rb +3 -0
  23. data/lib/roast/helpers/logger.rb +6 -9
  24. data/lib/roast/helpers/metadata_access.rb +1 -0
  25. data/lib/roast/helpers/minitest_coverage_runner.rb +1 -0
  26. data/lib/roast/helpers/path_resolver.rb +8 -18
  27. data/lib/roast/helpers/prompt_loader.rb +3 -2
  28. data/lib/roast/helpers/timeout_handler.rb +3 -5
  29. data/lib/roast/initializers.rb +1 -0
  30. data/lib/roast/resources/api_resource.rb +4 -3
  31. data/lib/roast/resources/base_resource.rb +1 -0
  32. data/lib/roast/resources/directory_resource.rb +1 -0
  33. data/lib/roast/resources/file_resource.rb +1 -0
  34. data/lib/roast/resources/none_resource.rb +1 -0
  35. data/lib/roast/resources/url_resource.rb +2 -1
  36. data/lib/roast/resources.rb +1 -2
  37. data/lib/roast/services/context_threshold_checker.rb +1 -0
  38. data/lib/roast/services/token_counting_service.rb +1 -0
  39. data/lib/roast/tools/apply_diff.rb +1 -0
  40. data/lib/roast/tools/ask_user.rb +1 -0
  41. data/lib/roast/tools/bash.rb +1 -0
  42. data/lib/roast/tools/cmd.rb +1 -0
  43. data/lib/roast/tools/coding_agent.rb +1 -0
  44. data/lib/roast/tools/context_summarizer.rb +1 -0
  45. data/lib/roast/tools/grep.rb +1 -0
  46. data/lib/roast/tools/helpers/coding_agent_message_formatter.rb +1 -0
  47. data/lib/roast/tools/read_file.rb +1 -0
  48. data/lib/roast/tools/search_file.rb +1 -0
  49. data/lib/roast/tools/swarm.rb +1 -0
  50. data/lib/roast/tools/update_files.rb +1 -0
  51. data/lib/roast/tools/write_file.rb +1 -0
  52. data/lib/roast/tools.rb +2 -0
  53. data/lib/roast/value_objects/api_token.rb +1 -0
  54. data/lib/roast/value_objects/step_name.rb +1 -0
  55. data/lib/roast/value_objects/uri_base.rb +1 -0
  56. data/lib/roast/value_objects/workflow_path.rb +1 -0
  57. data/lib/roast/value_objects.rb +1 -0
  58. data/lib/roast/version.rb +2 -1
  59. data/lib/roast/workflow/agent_step.rb +1 -0
  60. data/lib/roast/workflow/api_configuration.rb +1 -0
  61. data/lib/roast/workflow/base_iteration_step.rb +1 -0
  62. data/lib/roast/workflow/base_step.rb +1 -0
  63. data/lib/roast/workflow/base_workflow.rb +1 -0
  64. data/lib/roast/workflow/case_executor.rb +1 -0
  65. data/lib/roast/workflow/case_step.rb +1 -0
  66. data/lib/roast/workflow/command_executor.rb +1 -0
  67. data/lib/roast/workflow/conditional_executor.rb +1 -0
  68. data/lib/roast/workflow/conditional_step.rb +1 -0
  69. data/lib/roast/workflow/configuration.rb +9 -0
  70. data/lib/roast/workflow/configuration_loader.rb +4 -1
  71. data/lib/roast/workflow/context_manager.rb +1 -0
  72. data/lib/roast/workflow/context_path_resolver.rb +1 -0
  73. data/lib/roast/workflow/dot_access_hash.rb +1 -0
  74. data/lib/roast/workflow/each_step.rb +1 -0
  75. data/lib/roast/workflow/error_handler.rb +39 -3
  76. data/lib/roast/workflow/expression_evaluator.rb +1 -0
  77. data/lib/roast/workflow/expression_utils.rb +1 -0
  78. data/lib/roast/workflow/file_state_repository.rb +2 -1
  79. data/lib/roast/workflow/input_executor.rb +1 -0
  80. data/lib/roast/workflow/input_step.rb +1 -0
  81. data/lib/roast/workflow/interpolator.rb +2 -1
  82. data/lib/roast/workflow/iteration_executor.rb +1 -0
  83. data/lib/roast/workflow/llm_boolean_coercer.rb +1 -0
  84. data/lib/roast/workflow/metadata_manager.rb +1 -0
  85. data/lib/roast/workflow/output_handler.rb +1 -0
  86. data/lib/roast/workflow/output_manager.rb +1 -0
  87. data/lib/roast/workflow/parallel_executor.rb +1 -0
  88. data/lib/roast/workflow/prompt_step.rb +1 -0
  89. data/lib/roast/workflow/repeat_step.rb +1 -0
  90. data/lib/roast/workflow/replay_handler.rb +1 -0
  91. data/lib/roast/workflow/resource_resolver.rb +2 -6
  92. data/lib/roast/workflow/session_manager.rb +1 -0
  93. data/lib/roast/workflow/shell_script_step.rb +1 -0
  94. data/lib/roast/workflow/sqlite_state_repository.rb +1 -0
  95. data/lib/roast/workflow/state_manager.rb +1 -0
  96. data/lib/roast/workflow/state_repository.rb +1 -0
  97. data/lib/roast/workflow/state_repository_factory.rb +4 -2
  98. data/lib/roast/workflow/step_completion_reporter.rb +1 -0
  99. data/lib/roast/workflow/step_executor_coordinator.rb +17 -6
  100. data/lib/roast/workflow/step_executor_factory.rb +1 -0
  101. data/lib/roast/workflow/step_executor_registry.rb +2 -3
  102. data/lib/roast/workflow/step_executor_with_reporting.rb +1 -0
  103. data/lib/roast/workflow/step_executors/base_step_executor.rb +1 -0
  104. data/lib/roast/workflow/step_executors/hash_step_executor.rb +1 -0
  105. data/lib/roast/workflow/step_executors/parallel_step_executor.rb +1 -0
  106. data/lib/roast/workflow/step_executors/string_step_executor.rb +1 -0
  107. data/lib/roast/workflow/step_factory.rb +1 -0
  108. data/lib/roast/workflow/step_finder.rb +1 -0
  109. data/lib/roast/workflow/step_loader.rb +1 -0
  110. data/lib/roast/workflow/step_name_extractor.rb +1 -0
  111. data/lib/roast/workflow/step_runner.rb +1 -0
  112. data/lib/roast/workflow/step_type_resolver.rb +1 -0
  113. data/lib/roast/workflow/validation_command.rb +1 -0
  114. data/lib/roast/workflow/validator.rb +1 -0
  115. data/lib/roast/workflow/validators/base_validator.rb +1 -0
  116. data/lib/roast/workflow/validators/dependency_validator.rb +1 -0
  117. data/lib/roast/workflow/validators/linting_validator.rb +1 -0
  118. data/lib/roast/workflow/validators/schema_validator.rb +1 -0
  119. data/lib/roast/workflow/validators/step_collector.rb +1 -0
  120. data/lib/roast/workflow/validators/validation_orchestrator.rb +1 -0
  121. data/lib/roast/workflow/workflow_context.rb +1 -0
  122. data/lib/roast/workflow/workflow_execution_context.rb +1 -0
  123. data/lib/roast/workflow/workflow_executor.rb +2 -1
  124. data/lib/roast/workflow/workflow_initializer.rb +16 -1
  125. data/lib/roast/workflow/workflow_runner.rb +66 -55
  126. data/lib/roast/workflow.rb +1 -0
  127. data/lib/roast/workflow_diagram_generator.rb +3 -2
  128. data/lib/roast.rb +23 -8
  129. data/sorbet/config +8 -0
  130. data/sorbet/rbi/dsl/.gitattributes +1 -0
  131. data/sorbet/rbi/dsl/active_support/callbacks.rbi +21 -0
  132. data/sorbet/rbi/gems/.gitattributes +1 -0
  133. data/sorbet/rbi/gems/activesupport@8.0.2.rbi +19107 -0
  134. data/sorbet/rbi/gems/addressable@2.8.7.rbi +1994 -0
  135. data/sorbet/rbi/gems/ast@2.4.3.rbi +585 -0
  136. data/sorbet/rbi/gems/base64@0.3.0.rbi +545 -0
  137. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
  138. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +62 -0
  139. data/sorbet/rbi/gems/cgi@0.5.0.rbi +2961 -0
  140. data/sorbet/rbi/gems/claude_swarm@0.1.19.rbi +568 -0
  141. data/sorbet/rbi/gems/cli-kit@5.0.1.rbi +1991 -0
  142. data/sorbet/rbi/gems/cli-ui@2.3.0.rbi +3181 -0
  143. data/sorbet/rbi/gems/coderay@1.1.3.rbi +9 -0
  144. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +11657 -0
  145. data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +9 -0
  146. data/sorbet/rbi/gems/crack@1.0.0.rbi +145 -0
  147. data/sorbet/rbi/gems/diff-lcs@1.6.2.rbi +972 -0
  148. data/sorbet/rbi/gems/dotenv@3.1.8.rbi +295 -0
  149. data/sorbet/rbi/gems/drb@2.2.3.rbi +1661 -0
  150. data/sorbet/rbi/gems/dry-configurable@1.3.0.rbi +672 -0
  151. data/sorbet/rbi/gems/dry-core@1.1.0.rbi +1894 -0
  152. data/sorbet/rbi/gems/dry-inflector@1.2.0.rbi +659 -0
  153. data/sorbet/rbi/gems/dry-initializer@3.2.0.rbi +781 -0
  154. data/sorbet/rbi/gems/dry-logic@1.6.0.rbi +1127 -0
  155. data/sorbet/rbi/gems/dry-schema@1.14.1.rbi +3727 -0
  156. data/sorbet/rbi/gems/dry-types@1.8.3.rbi +3969 -0
  157. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  158. data/sorbet/rbi/gems/event_stream_parser@1.0.0.rbi +49 -0
  159. data/sorbet/rbi/gems/faraday-multipart@1.1.1.rbi +283 -0
  160. data/sorbet/rbi/gems/faraday-net_http@3.4.1.rbi +147 -0
  161. data/sorbet/rbi/gems/faraday-retry@2.3.2.rbi +9 -0
  162. data/sorbet/rbi/gems/faraday@2.13.1.rbi +2977 -0
  163. data/sorbet/rbi/gems/fast-mcp-annotations@1.5.3.rbi +1588 -0
  164. data/sorbet/rbi/gems/ffi@1.17.2.rbi +9 -0
  165. data/sorbet/rbi/gems/formatador@1.1.0.rbi +9 -0
  166. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +102 -0
  167. data/sorbet/rbi/gems/guard-minitest@2.4.6.rbi +402 -0
  168. data/sorbet/rbi/gems/guard@2.19.1.rbi +2283 -0
  169. data/sorbet/rbi/gems/hashdiff@1.2.0.rbi +355 -0
  170. data/sorbet/rbi/gems/i18n@1.14.7.rbi +2359 -0
  171. data/sorbet/rbi/gems/json-schema@5.1.1.rbi +1466 -0
  172. data/sorbet/rbi/gems/json@2.12.2.rbi +2051 -0
  173. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  174. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +9 -0
  175. data/sorbet/rbi/gems/listen@3.9.0.rbi +1206 -0
  176. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  177. data/sorbet/rbi/gems/lumberjack@1.2.10.rbi +1830 -0
  178. data/sorbet/rbi/gems/method_source@1.1.0.rbi +9 -0
  179. data/sorbet/rbi/gems/mime-types-data@3.2025.0617.rbi +136 -0
  180. data/sorbet/rbi/gems/mime-types@3.7.0.rbi +1342 -0
  181. data/sorbet/rbi/gems/minitest-rg@5.3.0.rbi +160 -0
  182. data/sorbet/rbi/gems/minitest@5.25.5.rbi +1640 -0
  183. data/sorbet/rbi/gems/mocha@2.7.1.rbi +12 -0
  184. data/sorbet/rbi/gems/multipart-post@2.4.1.rbi +244 -0
  185. data/sorbet/rbi/gems/nenv@0.3.0.rbi +147 -0
  186. data/sorbet/rbi/gems/net-http@0.6.0.rbi +4247 -0
  187. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  188. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +1079 -0
  189. data/sorbet/rbi/gems/open_router@0.3.3.rbi +230 -0
  190. data/sorbet/rbi/gems/ostruct@0.6.2.rbi +354 -0
  191. data/sorbet/rbi/gems/parallel@1.27.0.rbi +291 -0
  192. data/sorbet/rbi/gems/parser@3.3.8.0.rbi +5535 -0
  193. data/sorbet/rbi/gems/prism@1.4.0.rbi +41732 -0
  194. data/sorbet/rbi/gems/pry@0.15.2.rbi +9 -0
  195. data/sorbet/rbi/gems/public_suffix@6.0.2.rbi +936 -0
  196. data/sorbet/rbi/gems/racc@1.8.1.rbi +158 -0
  197. data/sorbet/rbi/gems/rack@2.2.17.rbi +5659 -0
  198. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +9 -0
  199. data/sorbet/rbi/gems/raix@1.0.2.rbi +1104 -0
  200. data/sorbet/rbi/gems/rake@13.3.0.rbi +3036 -0
  201. data/sorbet/rbi/gems/rb-fsevent@0.11.2.rbi +9 -0
  202. data/sorbet/rbi/gems/rb-inotify@0.11.1.rbi +9 -0
  203. data/sorbet/rbi/gems/rbi@0.3.6.rbi +6893 -0
  204. data/sorbet/rbi/gems/rbs@3.9.4.rbi +6978 -0
  205. data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +9 -0
  206. data/sorbet/rbi/gems/rexml@3.4.1.rbi +5346 -0
  207. data/sorbet/rbi/gems/rubocop-ast@1.45.1.rbi +9 -0
  208. data/sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi +9 -0
  209. data/sorbet/rbi/gems/rubocop@1.77.0.rbi +9 -0
  210. data/sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi +1333 -0
  211. data/sorbet/rbi/gems/ruby-openai@8.1.0.rbi +758 -0
  212. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +9 -0
  213. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  214. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  215. data/sorbet/rbi/gems/shellany@0.0.1.rbi +102 -0
  216. data/sorbet/rbi/gems/spoom@1.6.3.rbi +6985 -0
  217. data/sorbet/rbi/gems/sqlite3@2.7.0.rbi +1900 -0
  218. data/sorbet/rbi/gems/tapioca@0.16.11.rbi +3628 -0
  219. data/sorbet/rbi/gems/thor@1.4.0.rbi +4399 -0
  220. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  221. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +9 -0
  222. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +9 -0
  223. data/sorbet/rbi/gems/uri@1.0.3.rbi +2349 -0
  224. data/sorbet/rbi/gems/vcr@6.3.1.rbi +3040 -0
  225. data/sorbet/rbi/gems/webmock@3.25.1.rbi +1792 -0
  226. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  227. data/sorbet/rbi/gems/yard@0.9.37.rbi +18492 -0
  228. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +1429 -0
  229. data/sorbet/tapioca/config.yml +13 -0
  230. data/sorbet/tapioca/require.rb +36 -0
  231. metadata +114 -2
  232. data/lib/roast/workflow/configuration_parser.rb +0 -54
@@ -0,0 +1,568 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `claude_swarm` gem.
5
+ # Please instead update this file by running `bin/tapioca gem claude_swarm`.
6
+
7
+
8
+ # source://claude_swarm//lib/claude_swarm/version.rb#3
9
+ module ClaudeSwarm; end
10
+
11
+ # source://claude_swarm//lib/claude_swarm/cli.rb#11
12
+ class ClaudeSwarm::CLI < ::Thor
13
+ # source://claude_swarm//lib/claude_swarm/cli.rb#254
14
+ def clean; end
15
+
16
+ # source://claude_swarm//lib/claude_swarm/cli.rb#208
17
+ def generate; end
18
+
19
+ # source://claude_swarm//lib/claude_swarm/cli.rb#140
20
+ def init; end
21
+
22
+ # source://claude_swarm//lib/claude_swarm/cli.rb#318
23
+ def list_sessions; end
24
+
25
+ # source://claude_swarm//lib/claude_swarm/cli.rb#106
26
+ def mcp_serve; end
27
+
28
+ # source://claude_swarm//lib/claude_swarm/cli.rb#240
29
+ def ps; end
30
+
31
+ # source://claude_swarm//lib/claude_swarm/cli.rb#246
32
+ def show(session_id); end
33
+
34
+ # source://claude_swarm//lib/claude_swarm/cli.rb#32
35
+ def start(config_file = T.unsafe(nil)); end
36
+
37
+ # source://claude_swarm//lib/claude_swarm/cli.rb#235
38
+ def version; end
39
+
40
+ # source://claude_swarm//lib/claude_swarm/cli.rb#289
41
+ def watch(session_id); end
42
+
43
+ private
44
+
45
+ # source://claude_swarm//lib/claude_swarm/cli.rb#480
46
+ def build_generation_prompt(readme_content, output_file); end
47
+
48
+ # source://claude_swarm//lib/claude_swarm/cli.rb#392
49
+ def error(message); end
50
+
51
+ # source://claude_swarm//lib/claude_swarm/cli.rb#465
52
+ def find_session_path(session_id); end
53
+
54
+ # source://claude_swarm//lib/claude_swarm/cli.rb#396
55
+ def restore_session(session_id); end
56
+
57
+ class << self
58
+ # @return [Boolean]
59
+ #
60
+ # source://claude_swarm//lib/claude_swarm/cli.rb#12
61
+ def exit_on_failure?; end
62
+ end
63
+ end
64
+
65
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#10
66
+ class ClaudeSwarm::ClaudeCodeExecutor
67
+ # @return [ClaudeCodeExecutor] a new instance of ClaudeCodeExecutor
68
+ #
69
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#13
70
+ def initialize(working_directory: T.unsafe(nil), model: T.unsafe(nil), mcp_config: T.unsafe(nil), vibe: T.unsafe(nil), instance_name: T.unsafe(nil), instance_id: T.unsafe(nil), calling_instance: T.unsafe(nil), calling_instance_id: T.unsafe(nil), claude_session_id: T.unsafe(nil), additional_directories: T.unsafe(nil)); end
71
+
72
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#32
73
+ def execute(prompt, options = T.unsafe(nil)); end
74
+
75
+ # @return [Boolean]
76
+ #
77
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#97
78
+ def has_session?; end
79
+
80
+ # Returns the value of attribute last_response.
81
+ #
82
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#11
83
+ def last_response; end
84
+
85
+ # Returns the value of attribute logger.
86
+ #
87
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#11
88
+ def logger; end
89
+
90
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#92
91
+ def reset_session; end
92
+
93
+ # Returns the value of attribute session_id.
94
+ #
95
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#11
96
+ def session_id; end
97
+
98
+ # Returns the value of attribute session_path.
99
+ #
100
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#11
101
+ def session_path; end
102
+
103
+ # Returns the value of attribute working_directory.
104
+ #
105
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#11
106
+ def working_directory; end
107
+
108
+ private
109
+
110
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#227
111
+ def append_to_session_json(event); end
112
+
113
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#255
114
+ def build_command_array(prompt, options); end
115
+
116
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#198
117
+ def log_assistant_message(msg); end
118
+
119
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#147
120
+ def log_request(prompt); end
121
+
122
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#168
123
+ def log_response(response); end
124
+
125
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#178
126
+ def log_streaming_event(event); end
127
+
128
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#194
129
+ def log_system_message(event); end
130
+
131
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#223
132
+ def log_user_message(content); end
133
+
134
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#124
135
+ def setup_logging; end
136
+
137
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#103
138
+ def write_instance_state; end
139
+ end
140
+
141
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#312
142
+ class ClaudeSwarm::ClaudeCodeExecutor::ExecutionError < ::StandardError; end
143
+
144
+ # source://claude_swarm//lib/claude_swarm/claude_code_executor.rb#313
145
+ class ClaudeSwarm::ClaudeCodeExecutor::ParseError < ::StandardError; end
146
+
147
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#12
148
+ class ClaudeSwarm::ClaudeMcpServer
149
+ # @return [ClaudeMcpServer] a new instance of ClaudeMcpServer
150
+ #
151
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#18
152
+ def initialize(instance_config, calling_instance:, calling_instance_id: T.unsafe(nil)); end
153
+
154
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#44
155
+ def start; end
156
+
157
+ class << self
158
+ # Returns the value of attribute calling_instance.
159
+ #
160
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
161
+ def calling_instance; end
162
+
163
+ # Sets the attribute calling_instance
164
+ #
165
+ # @param value the value to set the attribute calling_instance to.
166
+ #
167
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
168
+ def calling_instance=(_arg0); end
169
+
170
+ # Returns the value of attribute calling_instance_id.
171
+ #
172
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
173
+ def calling_instance_id; end
174
+
175
+ # Sets the attribute calling_instance_id
176
+ #
177
+ # @param value the value to set the attribute calling_instance_id to.
178
+ #
179
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
180
+ def calling_instance_id=(_arg0); end
181
+
182
+ # Returns the value of attribute executor.
183
+ #
184
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
185
+ def executor; end
186
+
187
+ # Sets the attribute executor
188
+ #
189
+ # @param value the value to set the attribute executor to.
190
+ #
191
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
192
+ def executor=(_arg0); end
193
+
194
+ # Returns the value of attribute instance_config.
195
+ #
196
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
197
+ def instance_config; end
198
+
199
+ # Sets the attribute instance_config
200
+ #
201
+ # @param value the value to set the attribute instance_config to.
202
+ #
203
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
204
+ def instance_config=(_arg0); end
205
+
206
+ # Returns the value of attribute logger.
207
+ #
208
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
209
+ def logger; end
210
+
211
+ # Sets the attribute logger
212
+ #
213
+ # @param value the value to set the attribute logger to.
214
+ #
215
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
216
+ def logger=(_arg0); end
217
+
218
+ # Returns the value of attribute session_path.
219
+ #
220
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
221
+ def session_path; end
222
+
223
+ # Sets the attribute session_path
224
+ #
225
+ # @param value the value to set the attribute session_path to.
226
+ #
227
+ # source://claude_swarm//lib/claude_swarm/claude_mcp_server.rb#15
228
+ def session_path=(_arg0); end
229
+ end
230
+ end
231
+
232
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#7
233
+ class ClaudeSwarm::Configuration
234
+ # @return [Configuration] a new instance of Configuration
235
+ #
236
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#10
237
+ def initialize(config_path, base_dir: T.unsafe(nil)); end
238
+
239
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#29
240
+ def before_commands; end
241
+
242
+ # Returns the value of attribute config.
243
+ #
244
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#8
245
+ def config; end
246
+
247
+ # Returns the value of attribute config_path.
248
+ #
249
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#8
250
+ def config_path; end
251
+
252
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#25
253
+ def connections_for(instance_name); end
254
+
255
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#21
256
+ def instance_names; end
257
+
258
+ # Returns the value of attribute instances.
259
+ #
260
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#8
261
+ def instances; end
262
+
263
+ # Returns the value of attribute main_instance.
264
+ #
265
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#8
266
+ def main_instance; end
267
+
268
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#17
269
+ def main_instance_config; end
270
+
271
+ # Returns the value of attribute swarm.
272
+ #
273
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#8
274
+ def swarm; end
275
+
276
+ # Returns the value of attribute swarm_name.
277
+ #
278
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#8
279
+ def swarm_name; end
280
+
281
+ private
282
+
283
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#141
284
+ def detect_circular_dependencies; end
285
+
286
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#149
287
+ def detect_cycle_from(instance_name, visited, path); end
288
+
289
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#193
290
+ def expand_path(path); end
291
+
292
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#35
293
+ def load_and_validate; end
294
+
295
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#182
296
+ def parse_directories(directory_config); end
297
+
298
+ # @raise [Error]
299
+ #
300
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#79
301
+ def parse_instance(name, config); end
302
+
303
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#113
304
+ def parse_mcps(mcps); end
305
+
306
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#67
307
+ def parse_swarm; end
308
+
309
+ # @raise [Error]
310
+ #
311
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#197
312
+ def parse_worktree_value(value); end
313
+
314
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#133
315
+ def validate_connections; end
316
+
317
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#166
318
+ def validate_directories; end
319
+
320
+ # @raise [Error]
321
+ #
322
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#120
323
+ def validate_mcp(mcp); end
324
+
325
+ # @raise [Error]
326
+ #
327
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#53
328
+ def validate_swarm; end
329
+
330
+ # @raise [Error]
331
+ #
332
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#175
333
+ def validate_tool_field(instance_name, config, field_name); end
334
+
335
+ # @raise [Error]
336
+ #
337
+ # source://claude_swarm//lib/claude_swarm/configuration.rb#47
338
+ def validate_version; end
339
+ end
340
+
341
+ # source://claude_swarm//lib/claude_swarm.rb#17
342
+ class ClaudeSwarm::Error < ::StandardError; end
343
+
344
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#10
345
+ class ClaudeSwarm::McpGenerator
346
+ # @return [McpGenerator] a new instance of McpGenerator
347
+ #
348
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#11
349
+ def initialize(configuration, vibe: T.unsafe(nil), restore_session_path: T.unsafe(nil)); end
350
+
351
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#20
352
+ def generate_all; end
353
+
354
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#38
355
+ def mcp_config_path(instance_name); end
356
+
357
+ private
358
+
359
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#98
360
+ def build_instance_mcp_config(name, instance, calling_instance:, calling_instance_id:); end
361
+
362
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#80
363
+ def build_mcp_server_config(mcp); end
364
+
365
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#48
366
+ def ensure_swarm_directory; end
367
+
368
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#54
369
+ def generate_mcp_config(name, instance); end
370
+
371
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#147
372
+ def load_instance_states; end
373
+
374
+ # source://claude_swarm//lib/claude_swarm/mcp_generator.rb#44
375
+ def session_path; end
376
+ end
377
+
378
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#12
379
+ class ClaudeSwarm::Orchestrator
380
+ # @return [Orchestrator] a new instance of Orchestrator
381
+ #
382
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#15
383
+ def initialize(configuration, mcp_generator, vibe: T.unsafe(nil), prompt: T.unsafe(nil), stream_logs: T.unsafe(nil), debug: T.unsafe(nil), restore_session_path: T.unsafe(nil), worktree: T.unsafe(nil)); end
384
+
385
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#36
386
+ def start; end
387
+
388
+ private
389
+
390
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#365
391
+ def build_main_command(instance); end
392
+
393
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#295
394
+ def cleanup_processes; end
395
+
396
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#329
397
+ def cleanup_run_symlink; end
398
+
399
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#302
400
+ def cleanup_worktrees; end
401
+
402
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#310
403
+ def create_run_symlink; end
404
+
405
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#204
406
+ def execute_before_commands(commands); end
407
+
408
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#445
409
+ def restore_worktrees_if_needed(session_path); end
410
+
411
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#259
412
+ def save_swarm_config_path(session_path); end
413
+
414
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#283
415
+ def setup_signal_handlers; end
416
+
417
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#339
418
+ def start_log_streaming; end
419
+ end
420
+
421
+ # source://claude_swarm//lib/claude_swarm/orchestrator.rb#13
422
+ ClaudeSwarm::Orchestrator::RUN_DIR = T.let(T.unsafe(nil), String)
423
+
424
+ # source://claude_swarm//lib/claude_swarm/process_tracker.rb#6
425
+ class ClaudeSwarm::ProcessTracker
426
+ # @return [ProcessTracker] a new instance of ProcessTracker
427
+ #
428
+ # source://claude_swarm//lib/claude_swarm/process_tracker.rb#9
429
+ def initialize(session_path); end
430
+
431
+ # source://claude_swarm//lib/claude_swarm/process_tracker.rb#20
432
+ def cleanup_all; end
433
+
434
+ # source://claude_swarm//lib/claude_swarm/process_tracker.rb#15
435
+ def track_pid(pid, name); end
436
+
437
+ private
438
+
439
+ # source://claude_swarm//lib/claude_swarm/process_tracker.rb#74
440
+ def ensure_pids_directory; end
441
+
442
+ class << self
443
+ # source://claude_swarm//lib/claude_swarm/process_tracker.rb#65
444
+ def cleanup_session(session_path); end
445
+ end
446
+ end
447
+
448
+ # source://claude_swarm//lib/claude_swarm/process_tracker.rb#7
449
+ ClaudeSwarm::ProcessTracker::PIDS_DIR = T.let(T.unsafe(nil), String)
450
+
451
+ # source://claude_swarm//lib/claude_swarm/reset_session_tool.rb#4
452
+ class ClaudeSwarm::ResetSessionTool < ::FastMcp::Tool
453
+ # source://claude_swarm//lib/claude_swarm/reset_session_tool.rb#12
454
+ def call; end
455
+ end
456
+
457
+ # source://claude_swarm//lib/claude_swarm/session_info_tool.rb#4
458
+ class ClaudeSwarm::SessionInfoTool < ::FastMcp::Tool
459
+ # source://claude_swarm//lib/claude_swarm/session_info_tool.rb#12
460
+ def call; end
461
+ end
462
+
463
+ # source://claude_swarm//lib/claude_swarm/session_path.rb#6
464
+ module ClaudeSwarm::SessionPath
465
+ class << self
466
+ # Ensure the session directory exists
467
+ #
468
+ # source://claude_swarm//lib/claude_swarm/session_path.rb#36
469
+ def ensure_directory(session_path); end
470
+
471
+ # Get the session path from environment (required)
472
+ #
473
+ # source://claude_swarm//lib/claude_swarm/session_path.rb#45
474
+ def from_env; end
475
+
476
+ # Generate a full session path for a given directory and timestamp
477
+ #
478
+ # source://claude_swarm//lib/claude_swarm/session_path.rb#30
479
+ def generate(working_dir: T.unsafe(nil), timestamp: T.unsafe(nil)); end
480
+
481
+ # Convert a directory path to a safe folder name using + as separator
482
+ #
483
+ # source://claude_swarm//lib/claude_swarm/session_path.rb#15
484
+ def project_folder_name(working_dir = T.unsafe(nil)); end
485
+
486
+ # source://claude_swarm//lib/claude_swarm/session_path.rb#10
487
+ def swarm_home; end
488
+ end
489
+ end
490
+
491
+ # source://claude_swarm//lib/claude_swarm/session_path.rb#7
492
+ ClaudeSwarm::SessionPath::SESSIONS_DIR = T.let(T.unsafe(nil), String)
493
+
494
+ # source://claude_swarm//lib/claude_swarm/task_tool.rb#4
495
+ class ClaudeSwarm::TaskTool < ::FastMcp::Tool
496
+ # source://claude_swarm//lib/claude_swarm/task_tool.rb#15
497
+ def call(prompt:, new_session: T.unsafe(nil), system_prompt: T.unsafe(nil)); end
498
+ end
499
+
500
+ # source://claude_swarm//lib/claude_swarm/version.rb#4
501
+ ClaudeSwarm::VERSION = T.let(T.unsafe(nil), String)
502
+
503
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#10
504
+ class ClaudeSwarm::WorktreeManager
505
+ # @return [WorktreeManager] a new instance of WorktreeManager
506
+ #
507
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#13
508
+ def initialize(cli_worktree_option = T.unsafe(nil), session_id: T.unsafe(nil)); end
509
+
510
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#112
511
+ def cleanup_worktrees; end
512
+
513
+ # Returns the value of attribute created_worktrees.
514
+ #
515
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#11
516
+ def created_worktrees; end
517
+
518
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#71
519
+ def map_to_worktree_path(original_path, worktree_name); end
520
+
521
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#144
522
+ def session_metadata; end
523
+
524
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#26
525
+ def setup_worktrees(instances); end
526
+
527
+ # Returns the value of attribute shared_worktree_name.
528
+ #
529
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#11
530
+ def shared_worktree_name; end
531
+
532
+ # Deprecated method for backward compatibility
533
+ #
534
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#154
535
+ def worktree_name; end
536
+
537
+ private
538
+
539
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#196
540
+ def collect_worktrees_to_create(instances); end
541
+
542
+ # @raise [Error]
543
+ #
544
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#241
545
+ def create_worktree(repo_root, worktree_name); end
546
+
547
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#171
548
+ def determine_worktree_config(instance); end
549
+
550
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#335
551
+ def find_base_branch(repo_path); end
552
+
553
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#229
554
+ def find_git_root(path); end
555
+
556
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#160
557
+ def generate_worktree_name; end
558
+
559
+ # @return [Boolean]
560
+ #
561
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#285
562
+ def has_uncommitted_changes?(worktree_path); end
563
+
564
+ # @return [Boolean]
565
+ #
566
+ # source://claude_swarm//lib/claude_swarm/worktree_manager.rb#294
567
+ def has_unpushed_commits?(worktree_path); end
568
+ end