roast-ai 1.0.2 → 1.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.
- checksums.yaml +4 -4
- data/.claude/commands/docs/write-comments.md +1 -1
- data/.rubocop.yml +12 -1
- data/Gemfile +2 -2
- data/Gemfile.lock +149 -34
- data/README.md +56 -3
- data/examples/agent_with_multiple_prompts.rb +27 -0
- data/examples/custom_logging.rb +4 -2
- data/examples/demo/Gemfile.lock +49 -15
- data/examples/plugin-gem-example/Gemfile.lock +19 -15
- data/examples/simple_chat.rb +1 -1
- data/examples/simple_pi_agent.rb +18 -0
- data/internal/rubocop/cop/roast/no_test_class_nesting.rb +126 -0
- data/internal/rubocop/rubocop-roast.yml +6 -0
- data/internal/workflows/maintenance/branch_docs_impact.rb +97 -0
- data/internal/workflows/maintenance/deprecated_models_docs_updater.rb +78 -0
- data/lib/roast/cog/config.rb +1 -1
- data/lib/roast/cog/output.rb +2 -1
- data/lib/roast/cog/registry.rb +3 -3
- data/lib/roast/cog_input_manager.rb +28 -7
- data/lib/roast/cogs/agent/config.rb +2 -2
- data/lib/roast/cogs/agent/input.rb +20 -22
- data/lib/roast/cogs/agent/providers/claude/claude_invocation.rb +13 -5
- data/lib/roast/cogs/agent/providers/claude/messages/result_message.rb +1 -1
- data/lib/roast/cogs/agent/providers/claude/tool_result.rb +344 -4
- data/lib/roast/cogs/agent/providers/claude/tool_use.rb +356 -1
- data/lib/roast/cogs/agent/providers/claude.rb +16 -3
- data/lib/roast/cogs/agent/providers/pi/messages/tool_call_message.rb +60 -0
- data/lib/roast/cogs/agent/providers/pi/messages/tool_result_message.rb +57 -0
- data/lib/roast/cogs/agent/providers/pi/pi_invocation.rb +352 -0
- data/lib/roast/cogs/agent/providers/pi.rb +41 -0
- data/lib/roast/cogs/agent/stats.rb +29 -0
- data/lib/roast/cogs/agent/usage.rb +22 -0
- data/lib/roast/cogs/agent.rb +5 -6
- data/lib/roast/cogs/chat/config.rb +28 -2
- data/lib/roast/cogs/chat.rb +82 -10
- data/lib/roast/event.rb +1 -0
- data/lib/roast/event_monitor.rb +35 -3
- data/lib/roast/log.rb +21 -0
- data/lib/roast/log_formatter.rb +9 -7
- data/lib/roast/version.rb +1 -1
- data/lib/roast.rb +1 -3
- data/roast-ai.gemspec +2 -1
- data/sorbet/rbi/gems/activesupport@8.0.2.rbi +549 -383
- data/sorbet/rbi/gems/addressable@2.8.7.rbi +46 -44
- data/sorbet/rbi/gems/ast@2.4.3.rbi +7 -6
- data/sorbet/rbi/gems/async@2.34.0.rbi +21 -3
- data/sorbet/rbi/gems/benchmark@0.4.1.rbi +7 -7
- data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +198 -1
- data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +405 -328
- data/sorbet/rbi/gems/console@1.34.2.rbi +2 -2
- data/sorbet/rbi/gems/docile@1.4.1.rbi +30 -30
- data/sorbet/rbi/gems/drb@2.2.3.rbi +25 -25
- data/sorbet/rbi/gems/erubi@1.13.1.rbi +2 -0
- data/sorbet/rbi/gems/faraday-net_http@3.4.2.rbi +2 -77
- data/sorbet/rbi/gems/faraday-retry@2.3.2.rbi +2 -57
- data/sorbet/rbi/gems/faraday@2.14.1.rbi +382 -75
- data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +1 -110
- data/sorbet/rbi/gems/guard-minitest@2.4.6.rbi +0 -139
- data/sorbet/rbi/gems/guard@2.19.1.rbi +38 -38
- data/sorbet/rbi/gems/hashdiff@1.2.0.rbi +3 -3
- data/sorbet/rbi/gems/i18n@1.14.7.rbi +53 -29
- data/sorbet/rbi/gems/io-event@1.14.0.rbi +67 -10
- data/sorbet/rbi/gems/json@2.18.1.rbi +227 -5
- data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +83 -0
- data/sorbet/rbi/gems/listen@3.9.0.rbi +7 -7
- data/sorbet/rbi/gems/logger@1.7.0.rbi +3 -3
- data/sorbet/rbi/gems/lumberjack@1.2.10.rbi +21 -21
- data/sorbet/rbi/gems/marcel@1.1.0.rbi +1 -1
- data/sorbet/rbi/gems/minitest-rg@5.3.0.rbi +0 -96
- data/sorbet/rbi/gems/minitest@5.25.5.rbi +1 -16
- data/sorbet/rbi/gems/net-http@0.9.1.rbi +27 -19
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +18 -0
- data/sorbet/rbi/gems/notiffany@0.1.3.rbi +20 -20
- data/sorbet/rbi/gems/ostruct@0.6.2.rbi +149 -15
- data/sorbet/rbi/gems/parser@3.3.8.0.rbi +141 -139
- data/sorbet/rbi/gems/prism@1.4.0.rbi +922 -864
- data/sorbet/rbi/gems/public_suffix@6.0.2.rbi +56 -35
- data/sorbet/rbi/gems/racc@1.8.1.rbi +10 -2
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +12 -12
- data/sorbet/rbi/gems/rake@13.3.0.rbi +219 -318
- data/sorbet/rbi/gems/{rbi@0.3.6.rbi → rbi@0.3.9.rbi} +612 -2267
- data/sorbet/rbi/gems/{rbs@3.9.4.rbi → rbs@4.0.0.dev.5.rbi} +2013 -680
- data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +151 -113
- data/sorbet/rbi/gems/require-hooks@0.2.3.rbi +110 -0
- data/sorbet/rbi/gems/rexml@3.4.2.rbi +24 -51
- data/sorbet/rbi/gems/rubocop-ast@1.45.1.rbi +506 -815
- data/sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi +16 -16
- data/sorbet/rbi/gems/rubocop@1.77.0.rbi +2692 -2327
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +8 -8
- data/sorbet/rbi/gems/ruby_llm@1.8.2.rbi +38 -23
- data/sorbet/rbi/gems/securerandom@0.4.1.rbi +1 -1
- data/sorbet/rbi/gems/simplecov-html@0.13.2.rbi +2 -131
- data/sorbet/rbi/gems/simplecov@0.22.0.rbi +28 -127
- data/sorbet/rbi/gems/{spoom@1.6.3.rbi → spoom@1.7.11.rbi} +1139 -2246
- data/sorbet/rbi/gems/sqlite3@2.9.0.rbi +91 -1
- data/sorbet/rbi/gems/{tapioca@0.16.11.rbi → tapioca@0.17.10.rbi} +721 -835
- data/sorbet/rbi/gems/thor@1.4.0.rbi +53 -53
- data/sorbet/rbi/gems/tsort@0.2.0.rbi +393 -0
- data/sorbet/rbi/gems/type_toolkit@0.0.5.rbi +49 -0
- data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +144 -143
- data/sorbet/rbi/gems/uri@1.1.1.rbi +7 -7
- data/sorbet/rbi/gems/vcr@6.3.1.rbi +53 -36
- data/sorbet/rbi/gems/webmock@3.25.1.rbi +38 -13
- data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +39 -272
- data/sorbet/rbi/shims/lib/roast/execution_context.rbi +3 -3
- data/tutorial/01_your_first_workflow/README.md +9 -5
- data/tutorial/01_your_first_workflow/configured_chat.rb +1 -1
- data/tutorial/02_chaining_cogs/README.md +2 -2
- data/tutorial/02_chaining_cogs/code_review.rb +1 -1
- data/tutorial/02_chaining_cogs/session_resumption.rb +1 -1
- data/tutorial/03_targets_and_params/README.md +1 -1
- data/tutorial/04_configuration_options/README.md +2 -2
- data/tutorial/08_iterative_workflows/README.md +1 -1
- data/tutorial/README.md +1 -1
- metadata +39 -17
- data/docs/AGENT_STEPS.md +0 -288
- data/docs/INSTRUMENTATION.md +0 -243
- data/docs/ITERATION_SYNTAX.md +0 -147
- data/docs/VALIDATION.md +0 -178
- data/lib/roast/nil_assertions.rb +0 -23
- /data/internal/documentation/{architectural-notes.md → comments/architectural-notes.md} +0 -0
- /data/internal/documentation/{doc-comments-external.md → comments/doc-comments-external.md} +0 -0
- /data/internal/documentation/{doc-comments-internal.md → comments/doc-comments-internal.md} +0 -0
- /data/internal/documentation/{doc-comments.md → comments/doc-comments.md} +0 -0
|
@@ -33,7 +33,7 @@ class RuboCop::Cop::Sorbet::AllowIncompatibleOverride < ::RuboCop::Cop::Base
|
|
|
33
33
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#55
|
|
34
34
|
def on_block(node); end
|
|
35
35
|
|
|
36
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#
|
|
36
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#72
|
|
37
37
|
def on_numblock(node); end
|
|
38
38
|
|
|
39
39
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#49
|
|
@@ -169,7 +169,7 @@ class RuboCop::Cop::Sorbet::BlockMethodDefinition < ::RuboCop::Cop::Base
|
|
|
169
169
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/block_method_definition.rb#80
|
|
170
170
|
def on_block(node); end
|
|
171
171
|
|
|
172
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/block_method_definition.rb#
|
|
172
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/block_method_definition.rb#94
|
|
173
173
|
def on_numblock(node); end
|
|
174
174
|
|
|
175
175
|
private
|
|
@@ -432,7 +432,7 @@ RuboCop::Cop::Sorbet::CheckedTrueInSignature::MESSAGE = T.let(T.unsafe(nil), Str
|
|
|
432
432
|
#
|
|
433
433
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#36
|
|
434
434
|
class RuboCop::Cop::Sorbet::ConstantsFromStrings < ::RuboCop::Cop::Base
|
|
435
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#
|
|
435
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#50
|
|
436
436
|
def on_csend(node); end
|
|
437
437
|
|
|
438
438
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#47
|
|
@@ -990,7 +990,7 @@ class RuboCop::Cop::Sorbet::ForbidMixesInClassMethods < ::RuboCop::Cop::Base
|
|
|
990
990
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb#38
|
|
991
991
|
def mixes_in_class_methods?(param0 = T.unsafe(nil)); end
|
|
992
992
|
|
|
993
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb#
|
|
993
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb#45
|
|
994
994
|
def on_csend(node); end
|
|
995
995
|
|
|
996
996
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb#42
|
|
@@ -1157,7 +1157,7 @@ RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral::MSG = T.let(T.unsafe(nil), S
|
|
|
1157
1157
|
#
|
|
1158
1158
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_absurd.rb#17
|
|
1159
1159
|
class RuboCop::Cop::Sorbet::ForbidTAbsurd < ::RuboCop::Cop::Base
|
|
1160
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_absurd.rb#
|
|
1160
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_absurd.rb#27
|
|
1161
1161
|
def on_csend(node); end
|
|
1162
1162
|
|
|
1163
1163
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_absurd.rb#24
|
|
@@ -1185,7 +1185,7 @@ RuboCop::Cop::Sorbet::ForbidTAbsurd::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Arr
|
|
|
1185
1185
|
#
|
|
1186
1186
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_bind.rb#17
|
|
1187
1187
|
class RuboCop::Cop::Sorbet::ForbidTBind < ::RuboCop::Cop::Base
|
|
1188
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_bind.rb#
|
|
1188
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_bind.rb#27
|
|
1189
1189
|
def on_csend(node); end
|
|
1190
1190
|
|
|
1191
1191
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_bind.rb#24
|
|
@@ -1213,7 +1213,7 @@ RuboCop::Cop::Sorbet::ForbidTBind::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array
|
|
|
1213
1213
|
#
|
|
1214
1214
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_cast.rb#17
|
|
1215
1215
|
class RuboCop::Cop::Sorbet::ForbidTCast < ::RuboCop::Cop::Base
|
|
1216
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_cast.rb#
|
|
1216
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_cast.rb#27
|
|
1217
1217
|
def on_csend(node); end
|
|
1218
1218
|
|
|
1219
1219
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_cast.rb#24
|
|
@@ -1272,7 +1272,7 @@ RuboCop::Cop::Sorbet::ForbidTEnum::MSG = T.let(T.unsafe(nil), String)
|
|
|
1272
1272
|
#
|
|
1273
1273
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_let.rb#17
|
|
1274
1274
|
class RuboCop::Cop::Sorbet::ForbidTLet < ::RuboCop::Cop::Base
|
|
1275
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_let.rb#
|
|
1275
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_let.rb#27
|
|
1276
1276
|
def on_csend(node); end
|
|
1277
1277
|
|
|
1278
1278
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_let.rb#24
|
|
@@ -1300,7 +1300,7 @@ RuboCop::Cop::Sorbet::ForbidTLet::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
|
1300
1300
|
#
|
|
1301
1301
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_must.rb#17
|
|
1302
1302
|
class RuboCop::Cop::Sorbet::ForbidTMust < ::RuboCop::Cop::Base
|
|
1303
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_must.rb#
|
|
1303
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_must.rb#27
|
|
1304
1304
|
def on_csend(node); end
|
|
1305
1305
|
|
|
1306
1306
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_must.rb#24
|
|
@@ -1490,7 +1490,7 @@ class RuboCop::Cop::Sorbet::ForbidTTypeAlias < ::RuboCop::Cop::Base
|
|
|
1490
1490
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_type_alias.rb#23
|
|
1491
1491
|
def on_block(node); end
|
|
1492
1492
|
|
|
1493
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_type_alias.rb#
|
|
1493
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_type_alias.rb#26
|
|
1494
1494
|
def on_numblock(node); end
|
|
1495
1495
|
|
|
1496
1496
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_type_alias.rb#21
|
|
@@ -1512,7 +1512,7 @@ RuboCop::Cop::Sorbet::ForbidTTypeAlias::MSG = T.let(T.unsafe(nil), String)
|
|
|
1512
1512
|
#
|
|
1513
1513
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#17
|
|
1514
1514
|
class RuboCop::Cop::Sorbet::ForbidTUnsafe < ::RuboCop::Cop::Base
|
|
1515
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#
|
|
1515
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#27
|
|
1516
1516
|
def on_csend(node); end
|
|
1517
1517
|
|
|
1518
1518
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#24
|
|
@@ -1577,7 +1577,7 @@ class RuboCop::Cop::Sorbet::ForbidTypeAliasedShapes < ::RuboCop::Cop::Base
|
|
|
1577
1577
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#36
|
|
1578
1578
|
def on_block(node); end
|
|
1579
1579
|
|
|
1580
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#
|
|
1580
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#40
|
|
1581
1581
|
def on_numblock(node); end
|
|
1582
1582
|
|
|
1583
1583
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#28
|
|
@@ -1706,7 +1706,7 @@ class RuboCop::Cop::Sorbet::ImplicitConversionMethod < ::RuboCop::Cop::Base
|
|
|
1706
1706
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#42
|
|
1707
1707
|
def on_def(node); end
|
|
1708
1708
|
|
|
1709
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#
|
|
1709
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#48
|
|
1710
1710
|
def on_defs(node); end
|
|
1711
1711
|
|
|
1712
1712
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#50
|
|
@@ -1942,7 +1942,7 @@ RuboCop::Cop::Sorbet::Refinement::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
|
1942
1942
|
class RuboCop::Cop::Sorbet::SelectByIsA < ::RuboCop::Cop::Base
|
|
1943
1943
|
extend ::RuboCop::Cop::AutoCorrector
|
|
1944
1944
|
|
|
1945
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/select_by_is_a.rb#
|
|
1945
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/select_by_is_a.rb#58
|
|
1946
1946
|
def on_csend(node); end
|
|
1947
1947
|
|
|
1948
1948
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/select_by_is_a.rb#43
|
|
@@ -2014,7 +2014,7 @@ module RuboCop::Cop::Sorbet::SignatureHelp
|
|
|
2014
2014
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#42
|
|
2015
2015
|
def on_block(node); end
|
|
2016
2016
|
|
|
2017
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#
|
|
2017
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#46
|
|
2018
2018
|
def on_numblock(node); end
|
|
2019
2019
|
|
|
2020
2020
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#48
|
|
@@ -2046,7 +2046,7 @@ end
|
|
|
2046
2046
|
class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions < ::RuboCop::Cop::Base
|
|
2047
2047
|
extend ::RuboCop::Cop::AutoCorrector
|
|
2048
2048
|
|
|
2049
|
-
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#
|
|
2049
|
+
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#30
|
|
2050
2050
|
def on_class(node); end
|
|
2051
2051
|
|
|
2052
2052
|
# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#22
|