robot_lab-a2a 0.1.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 +7 -0
- data/.envrc +1 -0
- data/.github/workflows/deploy-github-pages.yml +52 -0
- data/.rubocop.yml +26 -0
- data/CHANGELOG.md +24 -0
- data/COMMITS.md +196 -0
- data/LICENSE.txt +21 -0
- data/README.md +106 -0
- data/Rakefile +104 -0
- data/docs/assets/images/architecture.png +0 -0
- data/docs/assets/images/architecture.svg +258 -0
- data/docs/examples.md +116 -0
- data/docs/getting-started.md +103 -0
- data/docs/index.md +23 -0
- data/docs/interactive-modes.md +104 -0
- data/docs/server-api.md +118 -0
- data/examples/01_sync_robot/client.rb +94 -0
- data/examples/01_sync_robot/server.rb +45 -0
- data/examples/02_interactive_a2a_tool/client.rb +144 -0
- data/examples/02_interactive_a2a_tool/server.rb +78 -0
- data/examples/03_robot_network/client.rb +83 -0
- data/examples/03_robot_network/server.rb +77 -0
- data/examples/04_io_bridge/client.rb +140 -0
- data/examples/04_io_bridge/server.rb +64 -0
- data/examples/05_multi_agent/client.rb +97 -0
- data/examples/05_multi_agent/server.rb +76 -0
- data/examples/06_rack_mount/client.rb +90 -0
- data/examples/06_rack_mount/config.ru +44 -0
- data/examples/06_rack_mount/server.rb +72 -0
- data/examples/common_config.rb +9 -0
- data/examples/run +112 -0
- data/lib/robot_lab/a2a/ask_user_tool.rb +43 -0
- data/lib/robot_lab/a2a/io_bridge.rb +75 -0
- data/lib/robot_lab/a2a/network_adapter.rb +38 -0
- data/lib/robot_lab/a2a/registry.rb +36 -0
- data/lib/robot_lab/a2a/robot_adapter.rb +183 -0
- data/lib/robot_lab/a2a/server.rb +128 -0
- data/lib/robot_lab/a2a/version.rb +7 -0
- data/lib/robot_lab/a2a.rb +39 -0
- data/mkdocs.yml +153 -0
- metadata +128 -0
data/mkdocs.yml
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# MkDocs Configuration for robot_lab-a2a Documentation
|
|
2
|
+
site_name: robot_lab-a2a
|
|
3
|
+
site_description: Agent2Agent (A2A) protocol adapter for RobotLab
|
|
4
|
+
site_author: Dewayne VanHoozer
|
|
5
|
+
site_url: https://madbomber.github.io/robot_lab-a2a
|
|
6
|
+
copyright: Copyright © 2025 Dewayne VanHoozer
|
|
7
|
+
|
|
8
|
+
# Repository information
|
|
9
|
+
repo_name: madbomber/robot_lab-a2a
|
|
10
|
+
repo_url: https://github.com/MadBomber/robot_lab-a2a
|
|
11
|
+
edit_uri: edit/main/docs/
|
|
12
|
+
|
|
13
|
+
# Configuration
|
|
14
|
+
theme:
|
|
15
|
+
name: material
|
|
16
|
+
|
|
17
|
+
# Color scheme
|
|
18
|
+
palette:
|
|
19
|
+
- scheme: default
|
|
20
|
+
primary: deep purple
|
|
21
|
+
accent: amber
|
|
22
|
+
toggle:
|
|
23
|
+
icon: material/brightness-7
|
|
24
|
+
name: Switch to dark mode
|
|
25
|
+
|
|
26
|
+
- scheme: slate
|
|
27
|
+
primary: deep purple
|
|
28
|
+
accent: amber
|
|
29
|
+
toggle:
|
|
30
|
+
icon: material/brightness-4
|
|
31
|
+
name: Switch to light mode
|
|
32
|
+
|
|
33
|
+
# Typography
|
|
34
|
+
font:
|
|
35
|
+
text: Roboto
|
|
36
|
+
code: Roboto Mono
|
|
37
|
+
|
|
38
|
+
# Logo and icon
|
|
39
|
+
icon:
|
|
40
|
+
repo: fontawesome/brands/github
|
|
41
|
+
logo: material/robot
|
|
42
|
+
|
|
43
|
+
# Theme features
|
|
44
|
+
features:
|
|
45
|
+
- navigation.instant
|
|
46
|
+
- navigation.tracking
|
|
47
|
+
- navigation.tabs
|
|
48
|
+
- navigation.tabs.sticky
|
|
49
|
+
- navigation.path
|
|
50
|
+
- navigation.indexes
|
|
51
|
+
- navigation.top
|
|
52
|
+
- navigation.footer
|
|
53
|
+
- toc.follow
|
|
54
|
+
- search.suggest
|
|
55
|
+
- search.highlight
|
|
56
|
+
- search.share
|
|
57
|
+
- header.autohide
|
|
58
|
+
- content.code.copy
|
|
59
|
+
- content.code.annotate
|
|
60
|
+
- content.tabs.link
|
|
61
|
+
- content.tooltips
|
|
62
|
+
- content.action.edit
|
|
63
|
+
- content.action.view
|
|
64
|
+
|
|
65
|
+
# Plugins
|
|
66
|
+
plugins:
|
|
67
|
+
- search:
|
|
68
|
+
separator: '[\s\-,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])'
|
|
69
|
+
- tags
|
|
70
|
+
|
|
71
|
+
# Extensions
|
|
72
|
+
markdown_extensions:
|
|
73
|
+
- abbr
|
|
74
|
+
- admonition
|
|
75
|
+
- attr_list
|
|
76
|
+
- def_list
|
|
77
|
+
- footnotes
|
|
78
|
+
- md_in_html
|
|
79
|
+
- tables
|
|
80
|
+
- toc:
|
|
81
|
+
permalink: true
|
|
82
|
+
title: On this page
|
|
83
|
+
|
|
84
|
+
- pymdownx.arithmatex:
|
|
85
|
+
generic: true
|
|
86
|
+
- pymdownx.betterem:
|
|
87
|
+
smart_enable: all
|
|
88
|
+
- pymdownx.caret
|
|
89
|
+
- pymdownx.critic
|
|
90
|
+
- pymdownx.details
|
|
91
|
+
- pymdownx.emoji:
|
|
92
|
+
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
|
93
|
+
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
|
94
|
+
- pymdownx.highlight:
|
|
95
|
+
anchor_linenums: true
|
|
96
|
+
line_spans: __span
|
|
97
|
+
pygments_lang_class: true
|
|
98
|
+
- pymdownx.inlinehilite
|
|
99
|
+
- pymdownx.keys
|
|
100
|
+
- pymdownx.magiclink:
|
|
101
|
+
repo_url_shorthand: true
|
|
102
|
+
user: madbomber
|
|
103
|
+
repo: robot_lab-a2a
|
|
104
|
+
normalize_issue_symbols: true
|
|
105
|
+
- pymdownx.mark
|
|
106
|
+
- pymdownx.smartsymbols
|
|
107
|
+
- pymdownx.snippets:
|
|
108
|
+
check_paths: true
|
|
109
|
+
- pymdownx.superfences:
|
|
110
|
+
custom_fences:
|
|
111
|
+
- name: mermaid
|
|
112
|
+
class: mermaid
|
|
113
|
+
format: !!python/name:pymdownx.superfences.fence_code_format
|
|
114
|
+
- pymdownx.tabbed:
|
|
115
|
+
alternate_style: true
|
|
116
|
+
- pymdownx.tasklist:
|
|
117
|
+
custom_checkbox: true
|
|
118
|
+
- pymdownx.tilde
|
|
119
|
+
|
|
120
|
+
# Extra CSS
|
|
121
|
+
extra_css:
|
|
122
|
+
- assets/css/custom.css
|
|
123
|
+
|
|
124
|
+
# Social media and extra configuration
|
|
125
|
+
extra:
|
|
126
|
+
social:
|
|
127
|
+
- icon: fontawesome/brands/github
|
|
128
|
+
link: https://github.com/MadBomber/robot_lab-a2a
|
|
129
|
+
name: robot_lab-a2a on GitHub
|
|
130
|
+
- icon: fontawesome/solid/gem
|
|
131
|
+
link: https://rubygems.org/gems/robot_lab-a2a
|
|
132
|
+
name: robot_lab-a2a on RubyGems
|
|
133
|
+
|
|
134
|
+
analytics:
|
|
135
|
+
feedback:
|
|
136
|
+
title: Was this page helpful?
|
|
137
|
+
ratings:
|
|
138
|
+
- icon: material/emoticon-happy-outline
|
|
139
|
+
name: This page was helpful
|
|
140
|
+
data: 1
|
|
141
|
+
note: Thanks for your feedback!
|
|
142
|
+
- icon: material/emoticon-sad-outline
|
|
143
|
+
name: This page could be improved
|
|
144
|
+
data: 0
|
|
145
|
+
note: Thanks for your feedback! Help us improve by creating an issue.
|
|
146
|
+
|
|
147
|
+
# Navigation
|
|
148
|
+
nav:
|
|
149
|
+
- Home: index.md
|
|
150
|
+
- Getting Started: getting-started.md
|
|
151
|
+
- Interactive Modes: interactive-modes.md
|
|
152
|
+
- Server API: server-api.md
|
|
153
|
+
- Examples: examples.md
|
metadata
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: robot_lab-a2a
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Dewayne VanHoozer
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: rack
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: robot_lab
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: simple_a2a
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0.3'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0.3'
|
|
54
|
+
description: Exposes RobotLab robots and networks as A2A agents over HTTP+SSE. Implements
|
|
55
|
+
the Agent2Agent Protocol v1.0 (Linux Foundation) via the simple_a2a gem. Supports
|
|
56
|
+
sync and interactive execution modes, bridging RobotLab's AskUser tool to A2A's
|
|
57
|
+
input_required/resume lifecycle for multi-turn flows without a terminal dependency.
|
|
58
|
+
email:
|
|
59
|
+
- dvanhoozer@gmail.com
|
|
60
|
+
executables: []
|
|
61
|
+
extensions: []
|
|
62
|
+
extra_rdoc_files: []
|
|
63
|
+
files:
|
|
64
|
+
- ".envrc"
|
|
65
|
+
- ".github/workflows/deploy-github-pages.yml"
|
|
66
|
+
- ".rubocop.yml"
|
|
67
|
+
- CHANGELOG.md
|
|
68
|
+
- COMMITS.md
|
|
69
|
+
- LICENSE.txt
|
|
70
|
+
- README.md
|
|
71
|
+
- Rakefile
|
|
72
|
+
- docs/assets/images/architecture.png
|
|
73
|
+
- docs/assets/images/architecture.svg
|
|
74
|
+
- docs/examples.md
|
|
75
|
+
- docs/getting-started.md
|
|
76
|
+
- docs/index.md
|
|
77
|
+
- docs/interactive-modes.md
|
|
78
|
+
- docs/server-api.md
|
|
79
|
+
- examples/01_sync_robot/client.rb
|
|
80
|
+
- examples/01_sync_robot/server.rb
|
|
81
|
+
- examples/02_interactive_a2a_tool/client.rb
|
|
82
|
+
- examples/02_interactive_a2a_tool/server.rb
|
|
83
|
+
- examples/03_robot_network/client.rb
|
|
84
|
+
- examples/03_robot_network/server.rb
|
|
85
|
+
- examples/04_io_bridge/client.rb
|
|
86
|
+
- examples/04_io_bridge/server.rb
|
|
87
|
+
- examples/05_multi_agent/client.rb
|
|
88
|
+
- examples/05_multi_agent/server.rb
|
|
89
|
+
- examples/06_rack_mount/client.rb
|
|
90
|
+
- examples/06_rack_mount/config.ru
|
|
91
|
+
- examples/06_rack_mount/server.rb
|
|
92
|
+
- examples/common_config.rb
|
|
93
|
+
- examples/run
|
|
94
|
+
- lib/robot_lab/a2a.rb
|
|
95
|
+
- lib/robot_lab/a2a/ask_user_tool.rb
|
|
96
|
+
- lib/robot_lab/a2a/io_bridge.rb
|
|
97
|
+
- lib/robot_lab/a2a/network_adapter.rb
|
|
98
|
+
- lib/robot_lab/a2a/registry.rb
|
|
99
|
+
- lib/robot_lab/a2a/robot_adapter.rb
|
|
100
|
+
- lib/robot_lab/a2a/server.rb
|
|
101
|
+
- lib/robot_lab/a2a/version.rb
|
|
102
|
+
- mkdocs.yml
|
|
103
|
+
homepage: https://github.com/MadBomber/robot_lab-a2a
|
|
104
|
+
licenses:
|
|
105
|
+
- MIT
|
|
106
|
+
metadata:
|
|
107
|
+
homepage_uri: https://github.com/MadBomber/robot_lab-a2a
|
|
108
|
+
source_code_uri: https://github.com/MadBomber/robot_lab-a2a
|
|
109
|
+
changelog_uri: https://github.com/MadBomber/robot_lab-a2a/blob/main/CHANGELOG.md
|
|
110
|
+
rubygems_mfa_required: 'true'
|
|
111
|
+
rdoc_options: []
|
|
112
|
+
require_paths:
|
|
113
|
+
- lib
|
|
114
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
|
+
requirements:
|
|
116
|
+
- - ">="
|
|
117
|
+
- !ruby/object:Gem::Version
|
|
118
|
+
version: 3.2.0
|
|
119
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0'
|
|
124
|
+
requirements: []
|
|
125
|
+
rubygems_version: 4.0.11
|
|
126
|
+
specification_version: 4
|
|
127
|
+
summary: Agent2Agent (A2A) protocol adapter for RobotLab
|
|
128
|
+
test_files: []
|