roast-ai 0.4.0 → 0.4.1
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/.github/workflows/ci.yaml +2 -2
- data/CHANGELOG.md +65 -0
- data/CLAUDE.md +55 -9
- data/Gemfile +1 -0
- data/Gemfile.lock +8 -1
- data/README.md +69 -3
- data/bin/console +1 -0
- data/docs/AGENT_STEPS.md +33 -9
- data/docs/VALIDATION.md +178 -0
- data/examples/agent_continue/add_documentation/prompt.md +5 -0
- data/examples/agent_continue/add_error_handling/prompt.md +5 -0
- data/examples/agent_continue/analyze_codebase/prompt.md +7 -0
- data/examples/agent_continue/combined_workflow.yml +24 -0
- data/examples/agent_continue/continue_adding_features/prompt.md +4 -0
- data/examples/agent_continue/create_integration_tests/prompt.md +3 -0
- data/examples/agent_continue/document_with_context/prompt.md +5 -0
- data/examples/agent_continue/explore_api/prompt.md +6 -0
- data/examples/agent_continue/implement_client/prompt.md +6 -0
- data/examples/agent_continue/inline_workflow.yml +20 -0
- data/examples/agent_continue/refactor_code/prompt.md +2 -0
- data/examples/agent_continue/verify_changes/prompt.md +6 -0
- data/examples/agent_continue/workflow.yml +27 -0
- data/examples/agent_workflow/workflow.png +0 -0
- data/examples/api_workflow/workflow.png +0 -0
- data/examples/apply_diff_demo/README.md +58 -0
- data/examples/apply_diff_demo/apply_simple_change/prompt.md +13 -0
- data/examples/apply_diff_demo/create_sample_file/prompt.md +11 -0
- data/examples/apply_diff_demo/workflow.yml +24 -0
- data/examples/available_tools_demo/workflow.png +0 -0
- data/examples/bash_prototyping/api_testing.png +0 -0
- data/examples/bash_prototyping/system_analysis.png +0 -0
- data/examples/case_when/workflow.png +0 -0
- data/examples/cmd/basic_workflow.png +0 -0
- data/examples/cmd/dev_workflow.png +0 -0
- data/examples/cmd/explorer_workflow.png +0 -0
- data/examples/conditional/simple_workflow.png +0 -0
- data/examples/conditional/workflow.png +0 -0
- data/examples/context_management_demo/README.md +43 -0
- data/examples/context_management_demo/workflow.yml +42 -0
- data/examples/direct_coerce_syntax/workflow.png +0 -0
- data/examples/dot_notation/workflow.png +0 -0
- data/examples/exit_on_error/workflow.png +0 -0
- data/examples/grading/workflow.png +0 -0
- data/examples/interpolation/workflow.png +0 -0
- data/examples/interpolation/workflow.yml +1 -1
- data/examples/iteration/workflow.png +0 -0
- data/examples/json_handling/workflow.png +0 -0
- data/examples/mcp/database_workflow.png +0 -0
- data/examples/mcp/env_demo/workflow.png +0 -0
- data/examples/mcp/filesystem_demo/workflow.png +0 -0
- data/examples/mcp/github_workflow.png +0 -0
- data/examples/mcp/multi_mcp_workflow.png +0 -0
- data/examples/mcp/workflow.png +0 -0
- data/examples/no_model_fallback/README.md +17 -0
- data/examples/no_model_fallback/analyze_file/prompt.md +1 -0
- data/examples/no_model_fallback/analyze_patterns/prompt.md +27 -0
- data/examples/no_model_fallback/generate_report_for_md/prompt.md +10 -0
- data/examples/no_model_fallback/generate_report_for_rb/prompt.md +3 -0
- data/examples/no_model_fallback/sample.rb +42 -0
- data/examples/no_model_fallback/workflow.yml +19 -0
- data/examples/openrouter_example/workflow.png +0 -0
- data/examples/pre_post_processing/workflow.png +0 -0
- data/examples/rspec_to_minitest/workflow.png +0 -0
- data/examples/shared_config/example_with_shared_config/workflow.png +0 -0
- data/examples/shared_config/shared.png +0 -0
- data/examples/single_target_prepost/workflow.png +0 -0
- data/examples/smart_coercion_defaults/workflow.png +0 -0
- data/examples/step_configuration/workflow.png +0 -0
- data/examples/swarm_example.yml +25 -0
- data/examples/tool_config_example/workflow.png +0 -0
- data/examples/user_input/funny_name/workflow.png +0 -0
- data/examples/user_input/simple_input_demo/workflow.png +0 -0
- data/examples/user_input/survey_workflow.png +0 -0
- data/examples/user_input/workflow.png +0 -0
- data/examples/workflow_generator/workflow.png +0 -0
- data/lib/roast/helpers/timeout_handler.rb +91 -0
- data/lib/roast/services/context_threshold_checker.rb +42 -0
- data/lib/roast/services/token_counting_service.rb +44 -0
- data/lib/roast/tools/apply_diff.rb +128 -0
- data/lib/roast/tools/bash.rb +15 -9
- data/lib/roast/tools/cmd.rb +32 -12
- data/lib/roast/tools/coding_agent.rb +64 -9
- data/lib/roast/tools/context_summarizer.rb +108 -0
- data/lib/roast/tools/swarm.rb +124 -0
- data/lib/roast/version.rb +1 -1
- data/lib/roast/workflow/agent_step.rb +9 -2
- data/lib/roast/workflow/base_iteration_step.rb +3 -2
- data/lib/roast/workflow/base_workflow.rb +41 -2
- data/lib/roast/workflow/configuration.rb +2 -1
- data/lib/roast/workflow/configuration_loader.rb +63 -1
- data/lib/roast/workflow/context_manager.rb +89 -0
- data/lib/roast/workflow/each_step.rb +1 -1
- data/lib/roast/workflow/output_handler.rb +1 -1
- data/lib/roast/workflow/repeat_step.rb +1 -1
- data/lib/roast/workflow/replay_handler.rb +1 -1
- data/lib/roast/workflow/sqlite_state_repository.rb +342 -0
- data/lib/roast/workflow/state_manager.rb +2 -2
- data/lib/roast/workflow/state_repository_factory.rb +36 -0
- data/lib/roast/workflow/step_completion_reporter.rb +27 -0
- data/lib/roast/workflow/step_executor_coordinator.rb +19 -18
- data/lib/roast/workflow/step_executor_with_reporting.rb +68 -0
- data/lib/roast/workflow/step_loader.rb +1 -1
- data/lib/roast/workflow/step_name_extractor.rb +84 -0
- data/lib/roast/workflow/validation_command.rb +197 -0
- data/lib/roast/workflow/validators/base_validator.rb +44 -0
- data/lib/roast/workflow/validators/dependency_validator.rb +223 -0
- data/lib/roast/workflow/validators/linting_validator.rb +113 -0
- data/lib/roast/workflow/validators/schema_validator.rb +90 -0
- data/lib/roast/workflow/validators/step_collector.rb +57 -0
- data/lib/roast/workflow/validators/validation_orchestrator.rb +52 -0
- data/lib/roast/workflow/workflow_executor.rb +11 -4
- data/lib/roast/workflow/workflow_runner.rb +6 -0
- data/lib/roast/workflow_diagram_generator.rb +298 -0
- data/lib/roast.rb +157 -0
- data/roast.gemspec +2 -1
- data/schema/workflow.json +77 -1
- metadata +101 -1
data/schema/workflow.json
CHANGED
@@ -8,7 +8,46 @@
|
|
8
8
|
"tools": {
|
9
9
|
"type": "array",
|
10
10
|
"items": {
|
11
|
-
"
|
11
|
+
"oneOf": [
|
12
|
+
{
|
13
|
+
"type": "string"
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"type": "object",
|
17
|
+
"additionalProperties": {
|
18
|
+
"type": "object",
|
19
|
+
"properties": {
|
20
|
+
"url": {
|
21
|
+
"type": "string"
|
22
|
+
},
|
23
|
+
"command": {
|
24
|
+
"type": "string"
|
25
|
+
},
|
26
|
+
"args": {
|
27
|
+
"type": "array",
|
28
|
+
"items": {
|
29
|
+
"type": "string"
|
30
|
+
}
|
31
|
+
},
|
32
|
+
"env": {
|
33
|
+
"type": "object"
|
34
|
+
},
|
35
|
+
"only": {
|
36
|
+
"type": "array",
|
37
|
+
"items": {
|
38
|
+
"type": "string"
|
39
|
+
}
|
40
|
+
},
|
41
|
+
"except": {
|
42
|
+
"type": "array",
|
43
|
+
"items": {
|
44
|
+
"type": "string"
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
]
|
12
51
|
}
|
13
52
|
},
|
14
53
|
"target": {
|
@@ -23,6 +62,43 @@
|
|
23
62
|
"type": "string",
|
24
63
|
"description": "Default AI model to use for all steps in the workflow"
|
25
64
|
},
|
65
|
+
"context_management": {
|
66
|
+
"type": "object",
|
67
|
+
"description": "Configuration for automatic context management and compaction",
|
68
|
+
"properties": {
|
69
|
+
"enabled": {
|
70
|
+
"type": "boolean",
|
71
|
+
"description": "Whether to enable context management",
|
72
|
+
"default": true
|
73
|
+
},
|
74
|
+
"strategy": {
|
75
|
+
"type": "string",
|
76
|
+
"description": "Compaction strategy to use when threshold is exceeded",
|
77
|
+
"enum": ["auto", "summarize", "prune", "none"],
|
78
|
+
"default": "auto"
|
79
|
+
},
|
80
|
+
"threshold": {
|
81
|
+
"type": "number",
|
82
|
+
"description": "Percentage of context window to trigger compaction (0.0 to 1.0)",
|
83
|
+
"minimum": 0.0,
|
84
|
+
"maximum": 1.0,
|
85
|
+
"default": 0.8
|
86
|
+
},
|
87
|
+
"max_tokens": {
|
88
|
+
"type": "integer",
|
89
|
+
"description": "Maximum number of tokens allowed in context (defaults to model's limit)",
|
90
|
+
"minimum": 1000
|
91
|
+
},
|
92
|
+
"retain_steps": {
|
93
|
+
"type": "array",
|
94
|
+
"description": "Step names to always keep in full when compacting",
|
95
|
+
"items": {
|
96
|
+
"type": "string"
|
97
|
+
}
|
98
|
+
}
|
99
|
+
},
|
100
|
+
"additionalProperties": false
|
101
|
+
},
|
26
102
|
"inputs": {
|
27
103
|
"type": "array",
|
28
104
|
"items": {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roast-ai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
@@ -107,6 +107,20 @@ dependencies:
|
|
107
107
|
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '1.0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: ruby-graphviz
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '1.2'
|
117
|
+
type: :runtime
|
118
|
+
prerelease: false
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '1.2'
|
110
124
|
- !ruby/object:Gem::Dependency
|
111
125
|
name: thor
|
112
126
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,55 +180,89 @@ files:
|
|
166
180
|
- docs/AGENT_STEPS.md
|
167
181
|
- docs/INSTRUMENTATION.md
|
168
182
|
- docs/ITERATION_SYNTAX.md
|
183
|
+
- docs/VALIDATION.md
|
184
|
+
- examples/agent_continue/add_documentation/prompt.md
|
185
|
+
- examples/agent_continue/add_error_handling/prompt.md
|
186
|
+
- examples/agent_continue/analyze_codebase/prompt.md
|
187
|
+
- examples/agent_continue/combined_workflow.yml
|
188
|
+
- examples/agent_continue/continue_adding_features/prompt.md
|
189
|
+
- examples/agent_continue/create_integration_tests/prompt.md
|
190
|
+
- examples/agent_continue/document_with_context/prompt.md
|
191
|
+
- examples/agent_continue/explore_api/prompt.md
|
192
|
+
- examples/agent_continue/implement_client/prompt.md
|
193
|
+
- examples/agent_continue/inline_workflow.yml
|
194
|
+
- examples/agent_continue/refactor_code/prompt.md
|
195
|
+
- examples/agent_continue/verify_changes/prompt.md
|
196
|
+
- examples/agent_continue/workflow.yml
|
169
197
|
- examples/agent_workflow/README.md
|
170
198
|
- examples/agent_workflow/apply_refactorings/prompt.md
|
171
199
|
- examples/agent_workflow/identify_code_smells/prompt.md
|
172
200
|
- examples/agent_workflow/summarize_improvements/prompt.md
|
201
|
+
- examples/agent_workflow/workflow.png
|
173
202
|
- examples/agent_workflow/workflow.yml
|
174
203
|
- examples/api_workflow/README.md
|
175
204
|
- examples/api_workflow/fetch_api_data/prompt.md
|
176
205
|
- examples/api_workflow/generate_report/prompt.md
|
177
206
|
- examples/api_workflow/prompt.md
|
178
207
|
- examples/api_workflow/transform_data/prompt.md
|
208
|
+
- examples/api_workflow/workflow.png
|
179
209
|
- examples/api_workflow/workflow.yml
|
210
|
+
- examples/apply_diff_demo/README.md
|
211
|
+
- examples/apply_diff_demo/apply_simple_change/prompt.md
|
212
|
+
- examples/apply_diff_demo/create_sample_file/prompt.md
|
213
|
+
- examples/apply_diff_demo/workflow.yml
|
180
214
|
- examples/available_tools_demo/README.md
|
181
215
|
- examples/available_tools_demo/analyze_files/prompt.md
|
182
216
|
- examples/available_tools_demo/explore_directory/prompt.md
|
217
|
+
- examples/available_tools_demo/workflow.png
|
183
218
|
- examples/available_tools_demo/workflow.yml
|
184
219
|
- examples/available_tools_demo/write_summary/prompt.md
|
185
220
|
- examples/bash_prototyping/README.md
|
186
221
|
- examples/bash_prototyping/analyze_network/prompt.md
|
187
222
|
- examples/bash_prototyping/analyze_system/prompt.md
|
223
|
+
- examples/bash_prototyping/api_testing.png
|
188
224
|
- examples/bash_prototyping/api_testing.yml
|
189
225
|
- examples/bash_prototyping/check_processes/prompt.md
|
190
226
|
- examples/bash_prototyping/generate_report/prompt.md
|
191
227
|
- examples/bash_prototyping/process_json_response/prompt.md
|
228
|
+
- examples/bash_prototyping/system_analysis.png
|
192
229
|
- examples/bash_prototyping/system_analysis.yml
|
193
230
|
- examples/bash_prototyping/test_public_api/prompt.md
|
194
231
|
- examples/case_when/README.md
|
195
232
|
- examples/case_when/detect_language/prompt.md
|
233
|
+
- examples/case_when/workflow.png
|
196
234
|
- examples/case_when/workflow.yml
|
197
235
|
- examples/cmd/README.md
|
198
236
|
- examples/cmd/analyze_project/prompt.md
|
199
237
|
- examples/cmd/basic_demo/prompt.md
|
238
|
+
- examples/cmd/basic_workflow.png
|
200
239
|
- examples/cmd/basic_workflow.yml
|
201
240
|
- examples/cmd/check_repository/prompt.md
|
202
241
|
- examples/cmd/create_and_verify/prompt.md
|
242
|
+
- examples/cmd/dev_workflow.png
|
203
243
|
- examples/cmd/dev_workflow.yml
|
204
244
|
- examples/cmd/explore_project/prompt.md
|
245
|
+
- examples/cmd/explorer_workflow.png
|
205
246
|
- examples/cmd/explorer_workflow.yml
|
206
247
|
- examples/cmd/smart_tool_selection/prompt.md
|
207
248
|
- examples/conditional/README.md
|
208
249
|
- examples/conditional/check_condition/prompt.md
|
250
|
+
- examples/conditional/simple_workflow.png
|
209
251
|
- examples/conditional/simple_workflow.yml
|
252
|
+
- examples/conditional/workflow.png
|
210
253
|
- examples/conditional/workflow.yml
|
254
|
+
- examples/context_management_demo/README.md
|
255
|
+
- examples/context_management_demo/workflow.yml
|
211
256
|
- examples/direct_coerce_syntax/README.md
|
257
|
+
- examples/direct_coerce_syntax/workflow.png
|
212
258
|
- examples/direct_coerce_syntax/workflow.yml
|
213
259
|
- examples/dot_notation/README.md
|
260
|
+
- examples/dot_notation/workflow.png
|
214
261
|
- examples/dot_notation/workflow.yml
|
215
262
|
- examples/exit_on_error/README.md
|
216
263
|
- examples/exit_on_error/analyze_lint_output/prompt.md
|
217
264
|
- examples/exit_on_error/apply_fixes/prompt.md
|
265
|
+
- examples/exit_on_error/workflow.png
|
218
266
|
- examples/exit_on_error/workflow.yml
|
219
267
|
- examples/grading/README.md
|
220
268
|
- examples/grading/analyze_coverage/prompt.md
|
@@ -230,6 +278,7 @@ files:
|
|
230
278
|
- examples/grading/verify_mocks_and_stubs/prompt.md
|
231
279
|
- examples/grading/verify_test_helpers/prompt.md
|
232
280
|
- examples/grading/workflow.md
|
281
|
+
- examples/grading/workflow.png
|
233
282
|
- examples/grading/workflow.rb.md
|
234
283
|
- examples/grading/workflow.ts+tsx.md
|
235
284
|
- examples/grading/workflow.yml
|
@@ -242,6 +291,7 @@ files:
|
|
242
291
|
- examples/interpolation/sample.js
|
243
292
|
- examples/interpolation/sample.rb
|
244
293
|
- examples/interpolation/workflow.md
|
294
|
+
- examples/interpolation/workflow.png
|
245
295
|
- examples/interpolation/workflow.yml
|
246
296
|
- examples/iteration/IMPLEMENTATION.md
|
247
297
|
- examples/iteration/README.md
|
@@ -260,8 +310,10 @@ files:
|
|
260
310
|
- examples/iteration/simple_workflow.yml
|
261
311
|
- examples/iteration/update_fix_count/prompt.md
|
262
312
|
- examples/iteration/verify_fix/prompt.md
|
313
|
+
- examples/iteration/workflow.png
|
263
314
|
- examples/iteration/workflow.yml
|
264
315
|
- examples/json_handling/README.md
|
316
|
+
- examples/json_handling/workflow.png
|
265
317
|
- examples/json_handling/workflow.yml
|
266
318
|
- examples/mcp/README.md
|
267
319
|
- examples/mcp/analyze_changes/prompt.md
|
@@ -270,17 +322,22 @@ files:
|
|
270
322
|
- examples/mcp/check_data_quality/prompt.md
|
271
323
|
- examples/mcp/check_documentation/prompt.md
|
272
324
|
- examples/mcp/create_recommendations/prompt.md
|
325
|
+
- examples/mcp/database_workflow.png
|
273
326
|
- examples/mcp/database_workflow.yml
|
327
|
+
- examples/mcp/env_demo/workflow.png
|
274
328
|
- examples/mcp/env_demo/workflow.yml
|
275
329
|
- examples/mcp/fetch_pr_context/prompt.md
|
276
330
|
- examples/mcp/filesystem_demo/create_test_file/prompt.md
|
277
331
|
- examples/mcp/filesystem_demo/list_files/prompt.md
|
278
332
|
- examples/mcp/filesystem_demo/read_with_mcp/prompt.md
|
333
|
+
- examples/mcp/filesystem_demo/workflow.png
|
279
334
|
- examples/mcp/filesystem_demo/workflow.yml
|
280
335
|
- examples/mcp/generate_insights/prompt.md
|
281
336
|
- examples/mcp/generate_report/prompt.md
|
282
337
|
- examples/mcp/generate_review/prompt.md
|
338
|
+
- examples/mcp/github_workflow.png
|
283
339
|
- examples/mcp/github_workflow.yml
|
340
|
+
- examples/mcp/multi_mcp_workflow.png
|
284
341
|
- examples/mcp/multi_mcp_workflow.yml
|
285
342
|
- examples/mcp/post_review/prompt.md
|
286
343
|
- examples/mcp/save_report/prompt.md
|
@@ -289,10 +346,19 @@ files:
|
|
289
346
|
- examples/mcp/test_filesystem/prompt.md
|
290
347
|
- examples/mcp/test_github/prompt.md
|
291
348
|
- examples/mcp/test_read/prompt.md
|
349
|
+
- examples/mcp/workflow.png
|
292
350
|
- examples/mcp/workflow.yml
|
351
|
+
- examples/no_model_fallback/README.md
|
352
|
+
- examples/no_model_fallback/analyze_file/prompt.md
|
353
|
+
- examples/no_model_fallback/analyze_patterns/prompt.md
|
354
|
+
- examples/no_model_fallback/generate_report_for_md/prompt.md
|
355
|
+
- examples/no_model_fallback/generate_report_for_rb/prompt.md
|
356
|
+
- examples/no_model_fallback/sample.rb
|
357
|
+
- examples/no_model_fallback/workflow.yml
|
293
358
|
- examples/openrouter_example/README.md
|
294
359
|
- examples/openrouter_example/analyze_input/prompt.md
|
295
360
|
- examples/openrouter_example/generate_response/prompt.md
|
361
|
+
- examples/openrouter_example/workflow.png
|
296
362
|
- examples/openrouter_example/workflow.yml
|
297
363
|
- examples/pre_post_processing/README.md
|
298
364
|
- examples/pre_post_processing/analyze_test_file/prompt.md
|
@@ -305,40 +371,54 @@ files:
|
|
305
371
|
- examples/pre_post_processing/pre_processing/gather_baseline_metrics/prompt.md
|
306
372
|
- examples/pre_post_processing/pre_processing/setup_test_environment/prompt.md
|
307
373
|
- examples/pre_post_processing/validate_changes/prompt.md
|
374
|
+
- examples/pre_post_processing/workflow.png
|
308
375
|
- examples/pre_post_processing/workflow.yml
|
309
376
|
- examples/rspec_to_minitest/README.md
|
310
377
|
- examples/rspec_to_minitest/analyze_spec/prompt.md
|
311
378
|
- examples/rspec_to_minitest/create_minitest/prompt.md
|
312
379
|
- examples/rspec_to_minitest/run_and_improve/prompt.md
|
313
380
|
- examples/rspec_to_minitest/workflow.md
|
381
|
+
- examples/rspec_to_minitest/workflow.png
|
314
382
|
- examples/rspec_to_minitest/workflow.yml
|
315
383
|
- examples/shared_config/README.md
|
384
|
+
- examples/shared_config/example_with_shared_config/workflow.png
|
316
385
|
- examples/shared_config/example_with_shared_config/workflow.yml
|
386
|
+
- examples/shared_config/shared.png
|
317
387
|
- examples/shared_config/shared.yml
|
318
388
|
- examples/single_target_prepost/README.md
|
319
389
|
- examples/single_target_prepost/post_processing/output.txt
|
320
390
|
- examples/single_target_prepost/pre_processing/gather_dependencies/prompt.md
|
391
|
+
- examples/single_target_prepost/workflow.png
|
321
392
|
- examples/single_target_prepost/workflow.yml
|
322
393
|
- examples/smart_coercion_defaults/README.md
|
394
|
+
- examples/smart_coercion_defaults/workflow.png
|
323
395
|
- examples/smart_coercion_defaults/workflow.yml
|
324
396
|
- examples/step_configuration/README.md
|
397
|
+
- examples/step_configuration/workflow.png
|
325
398
|
- examples/step_configuration/workflow.yml
|
399
|
+
- examples/swarm_example.yml
|
326
400
|
- examples/tool_config_example/README.md
|
327
401
|
- examples/tool_config_example/example_step/prompt.md
|
402
|
+
- examples/tool_config_example/workflow.png
|
328
403
|
- examples/tool_config_example/workflow.yml
|
329
404
|
- examples/user_input/README.md
|
330
405
|
- examples/user_input/funny_name/create_backstory/prompt.md
|
406
|
+
- examples/user_input/funny_name/workflow.png
|
331
407
|
- examples/user_input/funny_name/workflow.yml
|
332
408
|
- examples/user_input/generate_summary/prompt.md
|
409
|
+
- examples/user_input/simple_input_demo/workflow.png
|
333
410
|
- examples/user_input/simple_input_demo/workflow.yml
|
411
|
+
- examples/user_input/survey_workflow.png
|
334
412
|
- examples/user_input/survey_workflow.yml
|
335
413
|
- examples/user_input/welcome_message/prompt.md
|
414
|
+
- examples/user_input/workflow.png
|
336
415
|
- examples/user_input/workflow.yml
|
337
416
|
- examples/workflow_generator/README.md
|
338
417
|
- examples/workflow_generator/analyze_user_request/prompt.md
|
339
418
|
- examples/workflow_generator/create_workflow_files/prompt.md
|
340
419
|
- examples/workflow_generator/get_user_input/prompt.md
|
341
420
|
- examples/workflow_generator/info_from_roast.rb
|
421
|
+
- examples/workflow_generator/workflow.png
|
342
422
|
- examples/workflow_generator/workflow.yml
|
343
423
|
- exe/roast
|
344
424
|
- gemfiles/activesupport7.gemfile
|
@@ -351,6 +431,7 @@ files:
|
|
351
431
|
- lib/roast/helpers/minitest_coverage_runner.rb
|
352
432
|
- lib/roast/helpers/path_resolver.rb
|
353
433
|
- lib/roast/helpers/prompt_loader.rb
|
434
|
+
- lib/roast/helpers/timeout_handler.rb
|
354
435
|
- lib/roast/initializers.rb
|
355
436
|
- lib/roast/resources.rb
|
356
437
|
- lib/roast/resources/api_resource.rb
|
@@ -359,15 +440,20 @@ files:
|
|
359
440
|
- lib/roast/resources/file_resource.rb
|
360
441
|
- lib/roast/resources/none_resource.rb
|
361
442
|
- lib/roast/resources/url_resource.rb
|
443
|
+
- lib/roast/services/context_threshold_checker.rb
|
444
|
+
- lib/roast/services/token_counting_service.rb
|
362
445
|
- lib/roast/tools.rb
|
446
|
+
- lib/roast/tools/apply_diff.rb
|
363
447
|
- lib/roast/tools/ask_user.rb
|
364
448
|
- lib/roast/tools/bash.rb
|
365
449
|
- lib/roast/tools/cmd.rb
|
366
450
|
- lib/roast/tools/coding_agent.rb
|
451
|
+
- lib/roast/tools/context_summarizer.rb
|
367
452
|
- lib/roast/tools/grep.rb
|
368
453
|
- lib/roast/tools/helpers/coding_agent_message_formatter.rb
|
369
454
|
- lib/roast/tools/read_file.rb
|
370
455
|
- lib/roast/tools/search_file.rb
|
456
|
+
- lib/roast/tools/swarm.rb
|
371
457
|
- lib/roast/tools/update_files.rb
|
372
458
|
- lib/roast/tools/write_file.rb
|
373
459
|
- lib/roast/value_objects.rb
|
@@ -390,6 +476,7 @@ files:
|
|
390
476
|
- lib/roast/workflow/configuration.rb
|
391
477
|
- lib/roast/workflow/configuration_loader.rb
|
392
478
|
- lib/roast/workflow/configuration_parser.rb
|
479
|
+
- lib/roast/workflow/context_manager.rb
|
393
480
|
- lib/roast/workflow/context_path_resolver.rb
|
394
481
|
- lib/roast/workflow/dot_access_hash.rb
|
395
482
|
- lib/roast/workflow/each_step.rb
|
@@ -410,11 +497,15 @@ files:
|
|
410
497
|
- lib/roast/workflow/replay_handler.rb
|
411
498
|
- lib/roast/workflow/resource_resolver.rb
|
412
499
|
- lib/roast/workflow/session_manager.rb
|
500
|
+
- lib/roast/workflow/sqlite_state_repository.rb
|
413
501
|
- lib/roast/workflow/state_manager.rb
|
414
502
|
- lib/roast/workflow/state_repository.rb
|
503
|
+
- lib/roast/workflow/state_repository_factory.rb
|
504
|
+
- lib/roast/workflow/step_completion_reporter.rb
|
415
505
|
- lib/roast/workflow/step_executor_coordinator.rb
|
416
506
|
- lib/roast/workflow/step_executor_factory.rb
|
417
507
|
- lib/roast/workflow/step_executor_registry.rb
|
508
|
+
- lib/roast/workflow/step_executor_with_reporting.rb
|
418
509
|
- lib/roast/workflow/step_executors/base_step_executor.rb
|
419
510
|
- lib/roast/workflow/step_executors/hash_step_executor.rb
|
420
511
|
- lib/roast/workflow/step_executors/parallel_step_executor.rb
|
@@ -422,15 +513,24 @@ files:
|
|
422
513
|
- lib/roast/workflow/step_factory.rb
|
423
514
|
- lib/roast/workflow/step_finder.rb
|
424
515
|
- lib/roast/workflow/step_loader.rb
|
516
|
+
- lib/roast/workflow/step_name_extractor.rb
|
425
517
|
- lib/roast/workflow/step_orchestrator.rb
|
426
518
|
- lib/roast/workflow/step_runner.rb
|
427
519
|
- lib/roast/workflow/step_type_resolver.rb
|
520
|
+
- lib/roast/workflow/validation_command.rb
|
428
521
|
- lib/roast/workflow/validator.rb
|
522
|
+
- lib/roast/workflow/validators/base_validator.rb
|
523
|
+
- lib/roast/workflow/validators/dependency_validator.rb
|
524
|
+
- lib/roast/workflow/validators/linting_validator.rb
|
525
|
+
- lib/roast/workflow/validators/schema_validator.rb
|
526
|
+
- lib/roast/workflow/validators/step_collector.rb
|
527
|
+
- lib/roast/workflow/validators/validation_orchestrator.rb
|
429
528
|
- lib/roast/workflow/workflow_context.rb
|
430
529
|
- lib/roast/workflow/workflow_execution_context.rb
|
431
530
|
- lib/roast/workflow/workflow_executor.rb
|
432
531
|
- lib/roast/workflow/workflow_initializer.rb
|
433
532
|
- lib/roast/workflow/workflow_runner.rb
|
533
|
+
- lib/roast/workflow_diagram_generator.rb
|
434
534
|
- package-lock.json
|
435
535
|
- roast.gemspec
|
436
536
|
- schema/workflow.json
|