robot_lab 0.2.1 → 0.2.7
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/.envrc +1 -0
- data/.loki +60 -0
- data/.quality/reek_baseline.txt +43 -0
- data/.rubocop.yml +5 -167
- data/CHANGELOG.md +54 -0
- data/README.md +185 -64
- data/Rakefile +28 -12
- data/docs/api/core/index.md +41 -14
- data/docs/api/core/memory.md +247 -29
- data/docs/api/core/network.md +285 -33
- data/docs/api/core/result.md +120 -32
- data/docs/api/core/robot.md +636 -60
- data/docs/api/core/state.md +87 -197
- data/docs/api/core/tool.md +165 -20
- data/docs/api/errors.md +152 -14
- data/docs/api/hooks.md +469 -0
- data/docs/api/index.md +83 -7
- data/docs/api/mcp/client.md +129 -35
- data/docs/api/mcp/index.md +164 -23
- data/docs/api/mcp/server.md +27 -3
- data/docs/api/mcp/transports.md +94 -22
- data/docs/api/messages/index.md +26 -3
- data/docs/api/messages/text-message.md +33 -11
- data/docs/api/messages/tool-call-message.md +27 -4
- data/docs/api/messages/tool-result-message.md +23 -4
- data/docs/api/messages/user-message.md +45 -8
- data/docs/api/skills.md +519 -0
- data/docs/api/streaming/context.md +28 -5
- data/docs/api/streaming/index.md +57 -11
- data/docs/api/support.md +846 -0
- data/docs/architecture/core-concepts.md +118 -30
- data/docs/architecture/index.md +86 -11
- data/docs/architecture/message-flow.md +66 -29
- data/docs/architecture/network-orchestration.md +153 -38
- data/docs/architecture/robot-execution.md +173 -91
- data/docs/architecture/state-management.md +31 -12
- data/docs/concepts.md +176 -21
- data/docs/examples/basic-chat.md +72 -19
- data/docs/examples/index.md +117 -31
- data/docs/examples/mcp-server.md +154 -45
- data/docs/examples/multi-robot-network.md +91 -21
- data/docs/examples/tool-usage.md +104 -37
- data/docs/getting-started/configuration.md +299 -93
- data/docs/getting-started/installation.md +53 -41
- data/docs/getting-started/quick-start.md +51 -6
- data/docs/guides/building-robots.md +296 -50
- data/docs/guides/creating-networks.md +220 -31
- data/docs/guides/hooks.md +1084 -0
- data/docs/guides/index.md +5 -0
- data/docs/guides/knowledge.md +37 -6
- data/docs/guides/mcp-integration.md +211 -44
- data/docs/guides/memory.md +103 -12
- data/docs/guides/observability.md +166 -51
- data/docs/guides/streaming.md +184 -125
- data/docs/guides/using-tools.md +300 -11
- data/docs/index.md +37 -5
- data/examples/01_simple_robot.rb +2 -2
- data/examples/02_tools.rb +14 -4
- data/examples/03_network.rb +23 -9
- data/examples/04_mcp.rb +11 -4
- data/examples/05_streaming.rb +8 -5
- data/examples/06_prompt_templates.rb +13 -9
- data/examples/07_network_memory.rb +5 -5
- data/examples/08_llm_config.rb +20 -15
- data/examples/09_chaining.rb +4 -4
- data/examples/11_network_introspection.rb +4 -4
- data/examples/12_message_bus.rb +2 -2
- data/examples/13_spawn.rb +2 -2
- data/examples/14_rusty_circuit/README.md +1 -0
- data/examples/14_rusty_circuit/comic.rb +7 -3
- data/examples/14_rusty_circuit/display.rb +14 -0
- data/examples/14_rusty_circuit/heckler.rb +8 -6
- data/examples/14_rusty_circuit/open_mic.rb +17 -6
- data/examples/14_rusty_circuit/scout.rb +17 -10
- data/examples/15_memory_network_and_bus/editorial_pipeline.rb +14 -10
- data/examples/15_memory_network_and_bus/linux_writer.rb +2 -2
- data/examples/15_memory_network_and_bus/os_editor.rb +3 -1
- data/examples/15_memory_network_and_bus/os_writer.rb +4 -1
- data/examples/16_writers_room/writer.rb +22 -22
- data/examples/16_writers_room/writers_room.rb +2 -0
- data/examples/17_skills.rb +14 -13
- data/examples/18_rails/README.md +20 -1
- data/examples/18_rails/app/controllers/chat_controller.rb +5 -1
- data/examples/18_rails/app/jobs/robot_run_job.rb +11 -5
- data/examples/18_rails/app/robots/chat_robot.rb +11 -0
- data/examples/18_rails/config/initializers/robot_lab.rb +8 -0
- data/examples/19_token_tracking.rb +25 -9
- data/examples/20_circuit_breaker.rb +10 -7
- data/examples/21_learning_loop.rb +42 -16
- data/examples/22_context_compression.rb +23 -23
- data/examples/23_convergence.rb +24 -17
- data/examples/24_structured_delegation.rb +13 -8
- data/examples/25_history_search.rb +12 -8
- data/examples/27_incident_response/incident_response.rb +31 -13
- data/examples/28_mcp_discovery.rb +17 -13
- data/examples/29_ractor_tools.rb +4 -2
- data/examples/30_ractor_network.rb +22 -17
- data/examples/31_launch_assessment.rb +20 -9
- data/examples/32_newsletter_reader.rb +7 -2
- data/examples/33_stock_predictor.rb +34 -13
- data/examples/34_agentskills.rb +7 -3
- data/examples/35_hooks.rb +266 -0
- data/examples/README.md +203 -42
- data/examples/common.rb +79 -7
- data/examples/xyzzy.rb +97 -0
- data/lib/robot_lab/agent_skill.rb +5 -4
- data/lib/robot_lab/budget/ledger.rb +98 -0
- data/lib/robot_lab/capabilities.rb +84 -0
- data/lib/robot_lab/config/defaults.yml +10 -0
- data/lib/robot_lab/config.rb +14 -9
- data/lib/robot_lab/error.rb +34 -4
- data/lib/robot_lab/errors.rb +45 -0
- data/lib/robot_lab/hook.rb +79 -0
- data/lib/robot_lab/hook_context.rb +194 -0
- data/lib/robot_lab/hook_registry.rb +55 -0
- data/lib/robot_lab/hooks.rb +87 -0
- data/lib/robot_lab/mcp/connection_poller.rb +2 -2
- data/lib/robot_lab/names.rb +402 -0
- data/lib/robot_lab/narrator.rb +87 -0
- data/lib/robot_lab/network.rb +77 -20
- data/lib/robot_lab/robot/agent_skill_matching.rb +1 -3
- data/lib/robot_lab/robot/budget.rb +89 -0
- data/lib/robot_lab/robot/bus_messaging.rb +90 -18
- data/lib/robot_lab/robot/hooking.rb +56 -0
- data/lib/robot_lab/robot/mcp_management.rb +8 -2
- data/lib/robot_lab/robot/template_rendering.rb +18 -5
- data/lib/robot_lab/robot.rb +233 -89
- data/lib/robot_lab/run_config.rb +24 -5
- data/lib/robot_lab/runnable.rb +51 -0
- data/lib/robot_lab/sandbox/null.rb +13 -0
- data/lib/robot_lab/sandbox/seatbelt.rb +104 -0
- data/lib/robot_lab/sandbox.rb +52 -0
- data/lib/robot_lab/script_tool.rb +60 -2
- data/lib/robot_lab/task.rb +26 -20
- data/lib/robot_lab/tool.rb +52 -11
- data/lib/robot_lab/version.rb +1 -1
- data/lib/robot_lab.rb +70 -15
- data/mkdocs.yml +7 -1
- metadata +41 -99
- data/examples/temp.md +0 -51
- data/site/404.html +0 -2300
- data/site/api/core/index.html +0 -2706
- data/site/api/core/memory/index.html +0 -3793
- data/site/api/core/network/index.html +0 -3500
- data/site/api/core/robot/index.html +0 -4566
- data/site/api/core/state/index.html +0 -3390
- data/site/api/core/tool/index.html +0 -3843
- data/site/api/index.html +0 -2635
- data/site/api/mcp/client/index.html +0 -3435
- data/site/api/mcp/index.html +0 -2783
- data/site/api/mcp/server/index.html +0 -3252
- data/site/api/mcp/transports/index.html +0 -3352
- data/site/api/messages/index.html +0 -2641
- data/site/api/messages/text-message/index.html +0 -3087
- data/site/api/messages/tool-call-message/index.html +0 -3159
- data/site/api/messages/tool-result-message/index.html +0 -3252
- data/site/api/messages/user-message/index.html +0 -3212
- data/site/api/streaming/context/index.html +0 -3282
- data/site/api/streaming/events/index.html +0 -3347
- data/site/api/streaming/index.html +0 -2738
- data/site/architecture/core-concepts/index.html +0 -3757
- data/site/architecture/index.html +0 -2797
- data/site/architecture/message-flow/index.html +0 -3238
- data/site/architecture/network-orchestration/index.html +0 -3433
- data/site/architecture/robot-execution/index.html +0 -3140
- data/site/architecture/state-management/index.html +0 -3498
- data/site/assets/css/custom.css +0 -56
- data/site/assets/images/favicon.png +0 -0
- data/site/assets/images/robot_lab.jpg +0 -0
- data/site/assets/javascripts/bundle.79ae519e.min.js +0 -16
- data/site/assets/javascripts/bundle.79ae519e.min.js.map +0 -7
- data/site/assets/javascripts/lunr/min/lunr.ar.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.da.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.de.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.du.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.el.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.es.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.fi.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.fr.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.he.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.hi.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.hu.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.hy.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.it.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.ja.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.jp.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.kn.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.ko.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.multi.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.nl.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.no.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.pt.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.ro.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.ru.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.sa.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.sv.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.ta.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.te.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.th.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.tr.min.js +0 -18
- data/site/assets/javascripts/lunr/min/lunr.vi.min.js +0 -1
- data/site/assets/javascripts/lunr/min/lunr.zh.min.js +0 -1
- data/site/assets/javascripts/lunr/tinyseg.js +0 -206
- data/site/assets/javascripts/lunr/wordcut.js +0 -6708
- data/site/assets/javascripts/workers/search.2c215733.min.js +0 -42
- data/site/assets/javascripts/workers/search.2c215733.min.js.map +0 -7
- data/site/assets/stylesheets/main.484c7ddc.min.css +0 -1
- data/site/assets/stylesheets/main.484c7ddc.min.css.map +0 -1
- data/site/assets/stylesheets/palette.ab4e12ef.min.css +0 -1
- data/site/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -1
- data/site/concepts/index.html +0 -3455
- data/site/examples/basic-chat/index.html +0 -2880
- data/site/examples/index.html +0 -2907
- data/site/examples/mcp-server/index.html +0 -3018
- data/site/examples/multi-robot-network/index.html +0 -3131
- data/site/examples/rails-application/index.html +0 -3329
- data/site/examples/tool-usage/index.html +0 -3085
- data/site/getting-started/configuration/index.html +0 -3745
- data/site/getting-started/index.html +0 -2572
- data/site/getting-started/installation/index.html +0 -2981
- data/site/getting-started/quick-start/index.html +0 -2942
- data/site/guides/building-robots/index.html +0 -4290
- data/site/guides/creating-networks/index.html +0 -3858
- data/site/guides/index.html +0 -2586
- data/site/guides/mcp-integration/index.html +0 -3581
- data/site/guides/memory/index.html +0 -3586
- data/site/guides/rails-integration/index.html +0 -4019
- data/site/guides/streaming/index.html +0 -3157
- data/site/guides/using-tools/index.html +0 -3802
- data/site/index.html +0 -2671
- data/site/search/search_index.json +0 -1
- data/site/sitemap.xml +0 -183
- data/site/sitemap.xml.gz +0 -0
- data/site/tags.json +0 -1
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: robot_lab
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dewayne VanHoozer
|
|
@@ -149,6 +149,20 @@ dependencies:
|
|
|
149
149
|
- - "~>"
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
151
|
version: '0.4'
|
|
152
|
+
- !ruby/object:Gem::Dependency
|
|
153
|
+
name: ractor_queue
|
|
154
|
+
requirement: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - "~>"
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '0.2'
|
|
159
|
+
type: :runtime
|
|
160
|
+
prerelease: false
|
|
161
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
162
|
+
requirements:
|
|
163
|
+
- - "~>"
|
|
164
|
+
- !ruby/object:Gem::Version
|
|
165
|
+
version: '0.2'
|
|
152
166
|
- !ruby/object:Gem::Dependency
|
|
153
167
|
name: async-http
|
|
154
168
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -186,7 +200,7 @@ description: |
|
|
|
186
200
|
durable learning (robot_lab-durable), Ractor concurrency (robot_lab-ractor), and
|
|
187
201
|
document storage (robot_lab-document_store).
|
|
188
202
|
email:
|
|
189
|
-
-
|
|
203
|
+
- dvanhoozer@gmail.com
|
|
190
204
|
executables: []
|
|
191
205
|
extensions: []
|
|
192
206
|
extra_rdoc_files: []
|
|
@@ -201,6 +215,8 @@ files:
|
|
|
201
215
|
- ".envrc"
|
|
202
216
|
- ".github/workflows/deploy-github-pages.yml"
|
|
203
217
|
- ".irbrc"
|
|
218
|
+
- ".loki"
|
|
219
|
+
- ".quality/reek_baseline.txt"
|
|
204
220
|
- ".rubocop.yml"
|
|
205
221
|
- CHANGELOG.md
|
|
206
222
|
- CLAUDE.md
|
|
@@ -219,6 +235,7 @@ files:
|
|
|
219
235
|
- docs/api/core/state.md
|
|
220
236
|
- docs/api/core/tool.md
|
|
221
237
|
- docs/api/errors.md
|
|
238
|
+
- docs/api/hooks.md
|
|
222
239
|
- docs/api/index.md
|
|
223
240
|
- docs/api/mcp/client.md
|
|
224
241
|
- docs/api/mcp/index.md
|
|
@@ -229,9 +246,11 @@ files:
|
|
|
229
246
|
- docs/api/messages/tool-call-message.md
|
|
230
247
|
- docs/api/messages/tool-result-message.md
|
|
231
248
|
- docs/api/messages/user-message.md
|
|
249
|
+
- docs/api/skills.md
|
|
232
250
|
- docs/api/streaming/context.md
|
|
233
251
|
- docs/api/streaming/events.md
|
|
234
252
|
- docs/api/streaming/index.md
|
|
253
|
+
- docs/api/support.md
|
|
235
254
|
- docs/architecture/core-concepts.md
|
|
236
255
|
- docs/architecture/index.md
|
|
237
256
|
- docs/architecture/message-flow.md
|
|
@@ -252,6 +271,7 @@ files:
|
|
|
252
271
|
- docs/getting-started/quick-start.md
|
|
253
272
|
- docs/guides/building-robots.md
|
|
254
273
|
- docs/guides/creating-networks.md
|
|
274
|
+
- docs/guides/hooks.md
|
|
255
275
|
- docs/guides/index.md
|
|
256
276
|
- docs/guides/knowledge.md
|
|
257
277
|
- docs/guides/mcp-integration.md
|
|
@@ -278,6 +298,7 @@ files:
|
|
|
278
298
|
- examples/13_spawn.rb
|
|
279
299
|
- examples/14_rusty_circuit/.envrc
|
|
280
300
|
- examples/14_rusty_circuit/.gitignore
|
|
301
|
+
- examples/14_rusty_circuit/README.md
|
|
281
302
|
- examples/14_rusty_circuit/comic.rb
|
|
282
303
|
- examples/14_rusty_circuit/display.rb
|
|
283
304
|
- examples/14_rusty_circuit/heckler.rb
|
|
@@ -372,6 +393,7 @@ files:
|
|
|
372
393
|
- examples/33_stock_generator.rb
|
|
373
394
|
- examples/33_stock_predictor.rb
|
|
374
395
|
- examples/34_agentskills.rb
|
|
396
|
+
- examples/35_hooks.rb
|
|
375
397
|
- examples/README.md
|
|
376
398
|
- examples/common.rb
|
|
377
399
|
- examples/prompts/assistant.md
|
|
@@ -423,19 +445,26 @@ files:
|
|
|
423
445
|
- examples/prompts/template_with_skills_test.md
|
|
424
446
|
- examples/prompts/triage.md
|
|
425
447
|
- examples/ruboruby.md
|
|
426
|
-
- examples/
|
|
448
|
+
- examples/xyzzy.rb
|
|
427
449
|
- lib/robot_lab.rb
|
|
428
450
|
- lib/robot_lab/agent_skill.rb
|
|
429
451
|
- lib/robot_lab/agent_skill_catalog.rb
|
|
430
452
|
- lib/robot_lab/ask_user.rb
|
|
453
|
+
- lib/robot_lab/budget/ledger.rb
|
|
431
454
|
- lib/robot_lab/bus_poller.rb
|
|
455
|
+
- lib/robot_lab/capabilities.rb
|
|
432
456
|
- lib/robot_lab/config.rb
|
|
433
457
|
- lib/robot_lab/config/defaults.yml
|
|
434
458
|
- lib/robot_lab/convergence.rb
|
|
435
459
|
- lib/robot_lab/delegation_future.rb
|
|
436
460
|
- lib/robot_lab/doom_loop_detector.rb
|
|
437
461
|
- lib/robot_lab/error.rb
|
|
462
|
+
- lib/robot_lab/errors.rb
|
|
438
463
|
- lib/robot_lab/history_compressor.rb
|
|
464
|
+
- lib/robot_lab/hook.rb
|
|
465
|
+
- lib/robot_lab/hook_context.rb
|
|
466
|
+
- lib/robot_lab/hook_registry.rb
|
|
467
|
+
- lib/robot_lab/hooks.rb
|
|
439
468
|
- lib/robot_lab/mcp/client.rb
|
|
440
469
|
- lib/robot_lab/mcp/connection_poller.rb
|
|
441
470
|
- lib/robot_lab/mcp/server.rb
|
|
@@ -448,16 +477,24 @@ files:
|
|
|
448
477
|
- lib/robot_lab/memory.rb
|
|
449
478
|
- lib/robot_lab/memory_change.rb
|
|
450
479
|
- lib/robot_lab/message.rb
|
|
480
|
+
- lib/robot_lab/names.rb
|
|
481
|
+
- lib/robot_lab/narrator.rb
|
|
451
482
|
- lib/robot_lab/network.rb
|
|
452
483
|
- lib/robot_lab/robot.rb
|
|
453
484
|
- lib/robot_lab/robot/agent_skill_matching.rb
|
|
485
|
+
- lib/robot_lab/robot/budget.rb
|
|
454
486
|
- lib/robot_lab/robot/bus_messaging.rb
|
|
455
487
|
- lib/robot_lab/robot/history_search.rb
|
|
488
|
+
- lib/robot_lab/robot/hooking.rb
|
|
456
489
|
- lib/robot_lab/robot/mcp_management.rb
|
|
457
490
|
- lib/robot_lab/robot/template_rendering.rb
|
|
458
491
|
- lib/robot_lab/robot_message.rb
|
|
459
492
|
- lib/robot_lab/robot_result.rb
|
|
460
493
|
- lib/robot_lab/run_config.rb
|
|
494
|
+
- lib/robot_lab/runnable.rb
|
|
495
|
+
- lib/robot_lab/sandbox.rb
|
|
496
|
+
- lib/robot_lab/sandbox/null.rb
|
|
497
|
+
- lib/robot_lab/sandbox/seatbelt.rb
|
|
461
498
|
- lib/robot_lab/script_tool.rb
|
|
462
499
|
- lib/robot_lab/state_proxy.rb
|
|
463
500
|
- lib/robot_lab/streaming/context.rb
|
|
@@ -477,101 +514,6 @@ files:
|
|
|
477
514
|
- robot_concurrency.md
|
|
478
515
|
- sig/robot_lab.rbs
|
|
479
516
|
- simple_acp_review.md
|
|
480
|
-
- site/404.html
|
|
481
|
-
- site/api/core/index.html
|
|
482
|
-
- site/api/core/memory/index.html
|
|
483
|
-
- site/api/core/network/index.html
|
|
484
|
-
- site/api/core/robot/index.html
|
|
485
|
-
- site/api/core/state/index.html
|
|
486
|
-
- site/api/core/tool/index.html
|
|
487
|
-
- site/api/index.html
|
|
488
|
-
- site/api/mcp/client/index.html
|
|
489
|
-
- site/api/mcp/index.html
|
|
490
|
-
- site/api/mcp/server/index.html
|
|
491
|
-
- site/api/mcp/transports/index.html
|
|
492
|
-
- site/api/messages/index.html
|
|
493
|
-
- site/api/messages/text-message/index.html
|
|
494
|
-
- site/api/messages/tool-call-message/index.html
|
|
495
|
-
- site/api/messages/tool-result-message/index.html
|
|
496
|
-
- site/api/messages/user-message/index.html
|
|
497
|
-
- site/api/streaming/context/index.html
|
|
498
|
-
- site/api/streaming/events/index.html
|
|
499
|
-
- site/api/streaming/index.html
|
|
500
|
-
- site/architecture/core-concepts/index.html
|
|
501
|
-
- site/architecture/index.html
|
|
502
|
-
- site/architecture/message-flow/index.html
|
|
503
|
-
- site/architecture/network-orchestration/index.html
|
|
504
|
-
- site/architecture/robot-execution/index.html
|
|
505
|
-
- site/architecture/state-management/index.html
|
|
506
|
-
- site/assets/css/custom.css
|
|
507
|
-
- site/assets/images/favicon.png
|
|
508
|
-
- site/assets/images/robot_lab.jpg
|
|
509
|
-
- site/assets/javascripts/bundle.79ae519e.min.js
|
|
510
|
-
- site/assets/javascripts/bundle.79ae519e.min.js.map
|
|
511
|
-
- site/assets/javascripts/lunr/min/lunr.ar.min.js
|
|
512
|
-
- site/assets/javascripts/lunr/min/lunr.da.min.js
|
|
513
|
-
- site/assets/javascripts/lunr/min/lunr.de.min.js
|
|
514
|
-
- site/assets/javascripts/lunr/min/lunr.du.min.js
|
|
515
|
-
- site/assets/javascripts/lunr/min/lunr.el.min.js
|
|
516
|
-
- site/assets/javascripts/lunr/min/lunr.es.min.js
|
|
517
|
-
- site/assets/javascripts/lunr/min/lunr.fi.min.js
|
|
518
|
-
- site/assets/javascripts/lunr/min/lunr.fr.min.js
|
|
519
|
-
- site/assets/javascripts/lunr/min/lunr.he.min.js
|
|
520
|
-
- site/assets/javascripts/lunr/min/lunr.hi.min.js
|
|
521
|
-
- site/assets/javascripts/lunr/min/lunr.hu.min.js
|
|
522
|
-
- site/assets/javascripts/lunr/min/lunr.hy.min.js
|
|
523
|
-
- site/assets/javascripts/lunr/min/lunr.it.min.js
|
|
524
|
-
- site/assets/javascripts/lunr/min/lunr.ja.min.js
|
|
525
|
-
- site/assets/javascripts/lunr/min/lunr.jp.min.js
|
|
526
|
-
- site/assets/javascripts/lunr/min/lunr.kn.min.js
|
|
527
|
-
- site/assets/javascripts/lunr/min/lunr.ko.min.js
|
|
528
|
-
- site/assets/javascripts/lunr/min/lunr.multi.min.js
|
|
529
|
-
- site/assets/javascripts/lunr/min/lunr.nl.min.js
|
|
530
|
-
- site/assets/javascripts/lunr/min/lunr.no.min.js
|
|
531
|
-
- site/assets/javascripts/lunr/min/lunr.pt.min.js
|
|
532
|
-
- site/assets/javascripts/lunr/min/lunr.ro.min.js
|
|
533
|
-
- site/assets/javascripts/lunr/min/lunr.ru.min.js
|
|
534
|
-
- site/assets/javascripts/lunr/min/lunr.sa.min.js
|
|
535
|
-
- site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js
|
|
536
|
-
- site/assets/javascripts/lunr/min/lunr.sv.min.js
|
|
537
|
-
- site/assets/javascripts/lunr/min/lunr.ta.min.js
|
|
538
|
-
- site/assets/javascripts/lunr/min/lunr.te.min.js
|
|
539
|
-
- site/assets/javascripts/lunr/min/lunr.th.min.js
|
|
540
|
-
- site/assets/javascripts/lunr/min/lunr.tr.min.js
|
|
541
|
-
- site/assets/javascripts/lunr/min/lunr.vi.min.js
|
|
542
|
-
- site/assets/javascripts/lunr/min/lunr.zh.min.js
|
|
543
|
-
- site/assets/javascripts/lunr/tinyseg.js
|
|
544
|
-
- site/assets/javascripts/lunr/wordcut.js
|
|
545
|
-
- site/assets/javascripts/workers/search.2c215733.min.js
|
|
546
|
-
- site/assets/javascripts/workers/search.2c215733.min.js.map
|
|
547
|
-
- site/assets/stylesheets/main.484c7ddc.min.css
|
|
548
|
-
- site/assets/stylesheets/main.484c7ddc.min.css.map
|
|
549
|
-
- site/assets/stylesheets/palette.ab4e12ef.min.css
|
|
550
|
-
- site/assets/stylesheets/palette.ab4e12ef.min.css.map
|
|
551
|
-
- site/concepts/index.html
|
|
552
|
-
- site/examples/basic-chat/index.html
|
|
553
|
-
- site/examples/index.html
|
|
554
|
-
- site/examples/mcp-server/index.html
|
|
555
|
-
- site/examples/multi-robot-network/index.html
|
|
556
|
-
- site/examples/rails-application/index.html
|
|
557
|
-
- site/examples/tool-usage/index.html
|
|
558
|
-
- site/getting-started/configuration/index.html
|
|
559
|
-
- site/getting-started/index.html
|
|
560
|
-
- site/getting-started/installation/index.html
|
|
561
|
-
- site/getting-started/quick-start/index.html
|
|
562
|
-
- site/guides/building-robots/index.html
|
|
563
|
-
- site/guides/creating-networks/index.html
|
|
564
|
-
- site/guides/index.html
|
|
565
|
-
- site/guides/mcp-integration/index.html
|
|
566
|
-
- site/guides/memory/index.html
|
|
567
|
-
- site/guides/rails-integration/index.html
|
|
568
|
-
- site/guides/streaming/index.html
|
|
569
|
-
- site/guides/using-tools/index.html
|
|
570
|
-
- site/index.html
|
|
571
|
-
- site/search/search_index.json
|
|
572
|
-
- site/sitemap.xml
|
|
573
|
-
- site/sitemap.xml.gz
|
|
574
|
-
- site/tags.json
|
|
575
517
|
- temp.md
|
|
576
518
|
- tool_manifest_plan.md
|
|
577
519
|
homepage: https://github.com/MadBomber/robot_lab
|
|
@@ -599,7 +541,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
599
541
|
- !ruby/object:Gem::Version
|
|
600
542
|
version: '0'
|
|
601
543
|
requirements: []
|
|
602
|
-
rubygems_version: 4.0.
|
|
544
|
+
rubygems_version: 4.0.19
|
|
603
545
|
specification_version: 4
|
|
604
546
|
summary: Ruby framework for building and orchestrating multi-robot LLM workflows
|
|
605
547
|
test_files: []
|
data/examples/temp.md
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
## RoboRuby Ruby AI Newsletter Summary – Issue 29 (April 30, 2026)
|
|
2
|
-
|
|
3
|
-
### 🔥 **Headline Story: Ruby's I/O Revolution for AI Workloads**
|
|
4
|
-
|
|
5
|
-
Performance is now the narrative. [Carmine Paolino's work on Solid Queue](https://paolino.me/solid-queue-doesnt-need-a-thread-per-job/) shows fiber-based concurrency nets **12% throughput gains** for LLM streaming tasks—and [Shopify just proved it scales](https://speakerdeck.com/ioquatix/surviving-black-friday-329-billion-requests-with-falcon): 329 billion requests during 2025 Black Friday on Falcon (Samuel Williams' fiber-based server), peaking at 1.5M req/sec with zero drops. The message is clear: threads are legacy; fibers are the future for AI-heavy I/O patterns that spend 99% of their time waiting on tokens and webhooks. Ruby's defaults are catching up to its workloads.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
### **Headline Story #2: Matz Ships a Compiler in a Month (with Claude)**
|
|
10
|
-
|
|
11
|
-
[Spinel](https://github.com/matz/spinel)—Matz's new ahead-of-time Ruby compiler built in ~30 days with Claude as co-author—produces standalone native executables via whole-program type inference and optimized C emission. The kicker: it drops `eval`, `instance_eval`, `class_eval`, `send`, `method_missing`, and `define_method`. Dynamic metaprogramming was always about code compression for humans; with AI writing the alternative on your behalf, static Ruby becomes viable. At RubyKaigi, Matz revealed 1/3 of Ruby core already writes 50% of code with AI; he writes 100% his way. [Sam Ruby's Roundhouse transpiler](https://intertwingly.net/blog/2026/04/28/Round-Trip.html) proves the concept: two `make` commands from a fresh clone yield a real Rails app running on localhost as a single native binary. The door to Spinel-compiled Rails is open.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
### **Headline Story #3: Rails Gets Its First AI-Native Command**
|
|
16
|
-
|
|
17
|
-
[`rails query` shipped in Rails 8.2](https://github.com/basecamp/console1984/pull/154)—a CLI designed for AI agents to safely examine production databases with **structured JSON output** instead of unstructured strings. It prevents destructive commands, returns explicit `columns`, `rows`, and `meta`, provides pagination cursors and generated SQL, and emits auditable `query.rails` notifications. Lewis Buckley also released a [Claude Code skill](https://github.com/lewispb/rails-query-skill) teaching Claude to translate natural questions into `bin/rails query` calls. This is Rails designing agent-native interfaces directly into the runtime—not documentation, not third-party gems.
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
### **Notable Gems & Tools**
|
|
22
|
-
|
|
23
|
-
- **[LLM Cost Tracker](https://github.com/sergey-homenko/llm_cost_tracker)** — Logs every LLM API call with token counts, costs, latency; includes a mountable dashboard and budget guardrails.
|
|
24
|
-
- **[Ragents](https://github.com/activeagents/ragents)** — Ruby AI agent framework using Ractors for isolated parallel execution; near-linear scaling for agent swarms on Ruby 4.x.
|
|
25
|
-
- **[Inkmark](https://github.com/yaroslav/inkmark)** — AI-first Markdown gem (built on Rust's pulldown-cmark) for RAG pipelines with heading-based chunking, block-aware truncation, and structured extraction.
|
|
26
|
-
- **[Kernai](https://github.com/Eth3rnit3/kernai)** — Minimal agentic framework with deterministic loops, progressive skill discovery, and MCP integration for lightweight portability.
|
|
27
|
-
- **[Kreuzcrawl](https://github.com/kreuzberg-dev/kreuzcrawl)** — High-performance Rust web crawler with Ruby bindings, MCP server for agents, and headless browser rendering.
|
|
28
|
-
- **[llm.rb v5.4.0](https://0x1eef.github.io/x/llm.rb/file.CHANGELOG.html)** — Database persistence for contexts, agentic loops, context compaction, and scoped MCP client lifecycle.
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
### **Key Articles & Tutorials**
|
|
33
|
-
|
|
34
|
-
- **[Ruby Concurrency: What Actually Happens](https://paolino.me/ruby-concurrency-what-actually-happens/)** — Carmine's definitive explainer on fibers vs. threads, addressing real questions from the community with corrections from core committer Jean Boussier.
|
|
35
|
-
- **[PII Filtering for RubyLLM with Top Secret](https://thoughtbot.com/blog/ruby-llm-top-secret)** — Steve Polito on filtering sensitive data before sending to LLM providers; integrates cleanly with ActiveRecord chats.
|
|
36
|
-
- **[Claude Code for the Semi-Reluctant Rails Developer](https://robbyonrails.com/claude-code-curious-rails-developers/)** — Robby Russell's practical guide on model selection, testing workflows, debugging, and minimal CLAUDE.md configuration.
|
|
37
|
-
- **[Rails Security Auditor](https://maquina.app/documentation/ai-tools/rails-security-auditor/)** — Claude Code plugin that scans Rails apps across 10 security categories and can auto-fix issues.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
### **Quick Takes**
|
|
42
|
-
|
|
43
|
-
- 🎯 **New Announcements:** [Compound Engineering v3](https://x.com/trevin/status/2047066108763770998) unified the agentic plugin namespace; [Ruby CrewAI](https://github.com/MuhammadIbtisam/ruby-crewai) wraps CrewAI's HTTP API for multi-agent orchestration; [RailsPress](https://railspress.org/) is a mountable Rails 8 blogging engine with AI-agent-friendly REST APIs.
|
|
44
|
-
- 🏗️ **Tools for Agents:** [Stripe Link for Agents](https://x.com/stripe/status/2049529444092838116) lets AI spend on user behalf via scoped merchant tokens; [Cursor's @cursor/sdk](https://cursor.com/blog/typescript-sdk) exposes its own runtime so you can run coding agents from CI/CD; [Cloudflare Artifacts](https://blog.cloudflare.com/artifacts-git-for-agents-beta/) is a Git-compatible versioned filesystem for agent state.
|
|
45
|
-
- 📊 **Model Sizing:** Bojie Li's [Incompressible Knowledge Probes](https://01.me/research/ikp/) calibrate closed LLM sizes—GPT-5.5 at ~9T params, Claude Opus at ~4.7T, Gemini 2.5 Pro at ~1.2T.
|
|
46
|
-
- 🎤 **Conference Alert:** [Rails World 2026](https://rubyonrails.org/2026/4/23/big-rails-world-2026-update-CFP) (Sept 23–24 in Austin) now emphasizes AI-native development; CFP closes May 16th.
|
|
47
|
-
- 📈 **Community Pulse:** [2026 Rails Community Survey](https://blog.planetargon.com/blog/entries/the-2026-ruby-on-rails-community-survey-is-open) now asks about AI tool usage, JS frameworks, and infrastructure—open through July 3rd.
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
**Bottom Line:** Ruby's ecosystem is doubling down on event-driven I/O, native compilation, and agent-native tooling. The era of threads-by-default and human-first interfaces is over. If your Rails app handles long-tail I/O or needs production-safe agent introspection, the framework is building for you now.
|