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.
Files changed (236) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +1 -0
  3. data/.loki +60 -0
  4. data/.quality/reek_baseline.txt +43 -0
  5. data/.rubocop.yml +5 -167
  6. data/CHANGELOG.md +54 -0
  7. data/README.md +185 -64
  8. data/Rakefile +28 -12
  9. data/docs/api/core/index.md +41 -14
  10. data/docs/api/core/memory.md +247 -29
  11. data/docs/api/core/network.md +285 -33
  12. data/docs/api/core/result.md +120 -32
  13. data/docs/api/core/robot.md +636 -60
  14. data/docs/api/core/state.md +87 -197
  15. data/docs/api/core/tool.md +165 -20
  16. data/docs/api/errors.md +152 -14
  17. data/docs/api/hooks.md +469 -0
  18. data/docs/api/index.md +83 -7
  19. data/docs/api/mcp/client.md +129 -35
  20. data/docs/api/mcp/index.md +164 -23
  21. data/docs/api/mcp/server.md +27 -3
  22. data/docs/api/mcp/transports.md +94 -22
  23. data/docs/api/messages/index.md +26 -3
  24. data/docs/api/messages/text-message.md +33 -11
  25. data/docs/api/messages/tool-call-message.md +27 -4
  26. data/docs/api/messages/tool-result-message.md +23 -4
  27. data/docs/api/messages/user-message.md +45 -8
  28. data/docs/api/skills.md +519 -0
  29. data/docs/api/streaming/context.md +28 -5
  30. data/docs/api/streaming/index.md +57 -11
  31. data/docs/api/support.md +846 -0
  32. data/docs/architecture/core-concepts.md +118 -30
  33. data/docs/architecture/index.md +86 -11
  34. data/docs/architecture/message-flow.md +66 -29
  35. data/docs/architecture/network-orchestration.md +153 -38
  36. data/docs/architecture/robot-execution.md +173 -91
  37. data/docs/architecture/state-management.md +31 -12
  38. data/docs/concepts.md +176 -21
  39. data/docs/examples/basic-chat.md +72 -19
  40. data/docs/examples/index.md +117 -31
  41. data/docs/examples/mcp-server.md +154 -45
  42. data/docs/examples/multi-robot-network.md +91 -21
  43. data/docs/examples/tool-usage.md +104 -37
  44. data/docs/getting-started/configuration.md +299 -93
  45. data/docs/getting-started/installation.md +53 -41
  46. data/docs/getting-started/quick-start.md +51 -6
  47. data/docs/guides/building-robots.md +296 -50
  48. data/docs/guides/creating-networks.md +220 -31
  49. data/docs/guides/hooks.md +1084 -0
  50. data/docs/guides/index.md +5 -0
  51. data/docs/guides/knowledge.md +37 -6
  52. data/docs/guides/mcp-integration.md +211 -44
  53. data/docs/guides/memory.md +103 -12
  54. data/docs/guides/observability.md +166 -51
  55. data/docs/guides/streaming.md +184 -125
  56. data/docs/guides/using-tools.md +300 -11
  57. data/docs/index.md +37 -5
  58. data/examples/01_simple_robot.rb +2 -2
  59. data/examples/02_tools.rb +14 -4
  60. data/examples/03_network.rb +23 -9
  61. data/examples/04_mcp.rb +11 -4
  62. data/examples/05_streaming.rb +8 -5
  63. data/examples/06_prompt_templates.rb +13 -9
  64. data/examples/07_network_memory.rb +5 -5
  65. data/examples/08_llm_config.rb +20 -15
  66. data/examples/09_chaining.rb +4 -4
  67. data/examples/11_network_introspection.rb +4 -4
  68. data/examples/12_message_bus.rb +2 -2
  69. data/examples/13_spawn.rb +2 -2
  70. data/examples/14_rusty_circuit/README.md +1 -0
  71. data/examples/14_rusty_circuit/comic.rb +7 -3
  72. data/examples/14_rusty_circuit/display.rb +14 -0
  73. data/examples/14_rusty_circuit/heckler.rb +8 -6
  74. data/examples/14_rusty_circuit/open_mic.rb +17 -6
  75. data/examples/14_rusty_circuit/scout.rb +17 -10
  76. data/examples/15_memory_network_and_bus/editorial_pipeline.rb +14 -10
  77. data/examples/15_memory_network_and_bus/linux_writer.rb +2 -2
  78. data/examples/15_memory_network_and_bus/os_editor.rb +3 -1
  79. data/examples/15_memory_network_and_bus/os_writer.rb +4 -1
  80. data/examples/16_writers_room/writer.rb +22 -22
  81. data/examples/16_writers_room/writers_room.rb +2 -0
  82. data/examples/17_skills.rb +14 -13
  83. data/examples/18_rails/README.md +20 -1
  84. data/examples/18_rails/app/controllers/chat_controller.rb +5 -1
  85. data/examples/18_rails/app/jobs/robot_run_job.rb +11 -5
  86. data/examples/18_rails/app/robots/chat_robot.rb +11 -0
  87. data/examples/18_rails/config/initializers/robot_lab.rb +8 -0
  88. data/examples/19_token_tracking.rb +25 -9
  89. data/examples/20_circuit_breaker.rb +10 -7
  90. data/examples/21_learning_loop.rb +42 -16
  91. data/examples/22_context_compression.rb +23 -23
  92. data/examples/23_convergence.rb +24 -17
  93. data/examples/24_structured_delegation.rb +13 -8
  94. data/examples/25_history_search.rb +12 -8
  95. data/examples/27_incident_response/incident_response.rb +31 -13
  96. data/examples/28_mcp_discovery.rb +17 -13
  97. data/examples/29_ractor_tools.rb +4 -2
  98. data/examples/30_ractor_network.rb +22 -17
  99. data/examples/31_launch_assessment.rb +20 -9
  100. data/examples/32_newsletter_reader.rb +7 -2
  101. data/examples/33_stock_predictor.rb +34 -13
  102. data/examples/34_agentskills.rb +7 -3
  103. data/examples/35_hooks.rb +266 -0
  104. data/examples/README.md +203 -42
  105. data/examples/common.rb +79 -7
  106. data/examples/xyzzy.rb +97 -0
  107. data/lib/robot_lab/agent_skill.rb +5 -4
  108. data/lib/robot_lab/budget/ledger.rb +98 -0
  109. data/lib/robot_lab/capabilities.rb +84 -0
  110. data/lib/robot_lab/config/defaults.yml +10 -0
  111. data/lib/robot_lab/config.rb +14 -9
  112. data/lib/robot_lab/error.rb +34 -4
  113. data/lib/robot_lab/errors.rb +45 -0
  114. data/lib/robot_lab/hook.rb +79 -0
  115. data/lib/robot_lab/hook_context.rb +194 -0
  116. data/lib/robot_lab/hook_registry.rb +55 -0
  117. data/lib/robot_lab/hooks.rb +87 -0
  118. data/lib/robot_lab/mcp/connection_poller.rb +2 -2
  119. data/lib/robot_lab/names.rb +402 -0
  120. data/lib/robot_lab/narrator.rb +87 -0
  121. data/lib/robot_lab/network.rb +77 -20
  122. data/lib/robot_lab/robot/agent_skill_matching.rb +1 -3
  123. data/lib/robot_lab/robot/budget.rb +89 -0
  124. data/lib/robot_lab/robot/bus_messaging.rb +90 -18
  125. data/lib/robot_lab/robot/hooking.rb +56 -0
  126. data/lib/robot_lab/robot/mcp_management.rb +8 -2
  127. data/lib/robot_lab/robot/template_rendering.rb +18 -5
  128. data/lib/robot_lab/robot.rb +233 -89
  129. data/lib/robot_lab/run_config.rb +24 -5
  130. data/lib/robot_lab/runnable.rb +51 -0
  131. data/lib/robot_lab/sandbox/null.rb +13 -0
  132. data/lib/robot_lab/sandbox/seatbelt.rb +104 -0
  133. data/lib/robot_lab/sandbox.rb +52 -0
  134. data/lib/robot_lab/script_tool.rb +60 -2
  135. data/lib/robot_lab/task.rb +26 -20
  136. data/lib/robot_lab/tool.rb +52 -11
  137. data/lib/robot_lab/version.rb +1 -1
  138. data/lib/robot_lab.rb +70 -15
  139. data/mkdocs.yml +7 -1
  140. metadata +41 -99
  141. data/examples/temp.md +0 -51
  142. data/site/404.html +0 -2300
  143. data/site/api/core/index.html +0 -2706
  144. data/site/api/core/memory/index.html +0 -3793
  145. data/site/api/core/network/index.html +0 -3500
  146. data/site/api/core/robot/index.html +0 -4566
  147. data/site/api/core/state/index.html +0 -3390
  148. data/site/api/core/tool/index.html +0 -3843
  149. data/site/api/index.html +0 -2635
  150. data/site/api/mcp/client/index.html +0 -3435
  151. data/site/api/mcp/index.html +0 -2783
  152. data/site/api/mcp/server/index.html +0 -3252
  153. data/site/api/mcp/transports/index.html +0 -3352
  154. data/site/api/messages/index.html +0 -2641
  155. data/site/api/messages/text-message/index.html +0 -3087
  156. data/site/api/messages/tool-call-message/index.html +0 -3159
  157. data/site/api/messages/tool-result-message/index.html +0 -3252
  158. data/site/api/messages/user-message/index.html +0 -3212
  159. data/site/api/streaming/context/index.html +0 -3282
  160. data/site/api/streaming/events/index.html +0 -3347
  161. data/site/api/streaming/index.html +0 -2738
  162. data/site/architecture/core-concepts/index.html +0 -3757
  163. data/site/architecture/index.html +0 -2797
  164. data/site/architecture/message-flow/index.html +0 -3238
  165. data/site/architecture/network-orchestration/index.html +0 -3433
  166. data/site/architecture/robot-execution/index.html +0 -3140
  167. data/site/architecture/state-management/index.html +0 -3498
  168. data/site/assets/css/custom.css +0 -56
  169. data/site/assets/images/favicon.png +0 -0
  170. data/site/assets/images/robot_lab.jpg +0 -0
  171. data/site/assets/javascripts/bundle.79ae519e.min.js +0 -16
  172. data/site/assets/javascripts/bundle.79ae519e.min.js.map +0 -7
  173. data/site/assets/javascripts/lunr/min/lunr.ar.min.js +0 -1
  174. data/site/assets/javascripts/lunr/min/lunr.da.min.js +0 -18
  175. data/site/assets/javascripts/lunr/min/lunr.de.min.js +0 -18
  176. data/site/assets/javascripts/lunr/min/lunr.du.min.js +0 -18
  177. data/site/assets/javascripts/lunr/min/lunr.el.min.js +0 -1
  178. data/site/assets/javascripts/lunr/min/lunr.es.min.js +0 -18
  179. data/site/assets/javascripts/lunr/min/lunr.fi.min.js +0 -18
  180. data/site/assets/javascripts/lunr/min/lunr.fr.min.js +0 -18
  181. data/site/assets/javascripts/lunr/min/lunr.he.min.js +0 -1
  182. data/site/assets/javascripts/lunr/min/lunr.hi.min.js +0 -1
  183. data/site/assets/javascripts/lunr/min/lunr.hu.min.js +0 -18
  184. data/site/assets/javascripts/lunr/min/lunr.hy.min.js +0 -1
  185. data/site/assets/javascripts/lunr/min/lunr.it.min.js +0 -18
  186. data/site/assets/javascripts/lunr/min/lunr.ja.min.js +0 -1
  187. data/site/assets/javascripts/lunr/min/lunr.jp.min.js +0 -1
  188. data/site/assets/javascripts/lunr/min/lunr.kn.min.js +0 -1
  189. data/site/assets/javascripts/lunr/min/lunr.ko.min.js +0 -1
  190. data/site/assets/javascripts/lunr/min/lunr.multi.min.js +0 -1
  191. data/site/assets/javascripts/lunr/min/lunr.nl.min.js +0 -18
  192. data/site/assets/javascripts/lunr/min/lunr.no.min.js +0 -18
  193. data/site/assets/javascripts/lunr/min/lunr.pt.min.js +0 -18
  194. data/site/assets/javascripts/lunr/min/lunr.ro.min.js +0 -18
  195. data/site/assets/javascripts/lunr/min/lunr.ru.min.js +0 -18
  196. data/site/assets/javascripts/lunr/min/lunr.sa.min.js +0 -1
  197. data/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +0 -1
  198. data/site/assets/javascripts/lunr/min/lunr.sv.min.js +0 -18
  199. data/site/assets/javascripts/lunr/min/lunr.ta.min.js +0 -1
  200. data/site/assets/javascripts/lunr/min/lunr.te.min.js +0 -1
  201. data/site/assets/javascripts/lunr/min/lunr.th.min.js +0 -1
  202. data/site/assets/javascripts/lunr/min/lunr.tr.min.js +0 -18
  203. data/site/assets/javascripts/lunr/min/lunr.vi.min.js +0 -1
  204. data/site/assets/javascripts/lunr/min/lunr.zh.min.js +0 -1
  205. data/site/assets/javascripts/lunr/tinyseg.js +0 -206
  206. data/site/assets/javascripts/lunr/wordcut.js +0 -6708
  207. data/site/assets/javascripts/workers/search.2c215733.min.js +0 -42
  208. data/site/assets/javascripts/workers/search.2c215733.min.js.map +0 -7
  209. data/site/assets/stylesheets/main.484c7ddc.min.css +0 -1
  210. data/site/assets/stylesheets/main.484c7ddc.min.css.map +0 -1
  211. data/site/assets/stylesheets/palette.ab4e12ef.min.css +0 -1
  212. data/site/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -1
  213. data/site/concepts/index.html +0 -3455
  214. data/site/examples/basic-chat/index.html +0 -2880
  215. data/site/examples/index.html +0 -2907
  216. data/site/examples/mcp-server/index.html +0 -3018
  217. data/site/examples/multi-robot-network/index.html +0 -3131
  218. data/site/examples/rails-application/index.html +0 -3329
  219. data/site/examples/tool-usage/index.html +0 -3085
  220. data/site/getting-started/configuration/index.html +0 -3745
  221. data/site/getting-started/index.html +0 -2572
  222. data/site/getting-started/installation/index.html +0 -2981
  223. data/site/getting-started/quick-start/index.html +0 -2942
  224. data/site/guides/building-robots/index.html +0 -4290
  225. data/site/guides/creating-networks/index.html +0 -3858
  226. data/site/guides/index.html +0 -2586
  227. data/site/guides/mcp-integration/index.html +0 -3581
  228. data/site/guides/memory/index.html +0 -3586
  229. data/site/guides/rails-integration/index.html +0 -4019
  230. data/site/guides/streaming/index.html +0 -3157
  231. data/site/guides/using-tools/index.html +0 -3802
  232. data/site/index.html +0 -2671
  233. data/site/search/search_index.json +0 -1
  234. data/site/sitemap.xml +0 -183
  235. data/site/sitemap.xml.gz +0 -0
  236. 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.1
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
- - dewayne@vanhoozer.me
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/temp.md
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.11
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.