agent2agent 1.0.0 → 1.0.2
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/config/traces.rb +9 -0
- data/lib/a2a/server/dispatcher.rb +2 -2
- data/lib/a2a/store/processor.rb +1 -1
- data/lib/a2a/store/webhooks.rb +3 -3
- data/lib/a2a/version.rb +1 -1
- data/lib/traces/provider/a2a/bindings/json_rpc.rb +30 -0
- data/lib/traces/provider/a2a/bindings/rest.rb +30 -0
- data/lib/traces/provider/a2a/server/dispatcher.rb +26 -0
- data/lib/traces/provider/a2a/server/triage.rb +20 -0
- data/lib/traces/provider/a2a/server.rb +19 -0
- data/lib/traces/provider/a2a.rb +7 -0
- metadata +10 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 10f9c58ba470a3e5ac7de54ac9bc91cadd66296211551f4908a11a265e37a930
|
|
4
|
+
data.tar.gz: c7ff60b70781b2762a73d4064784eb23edc6c74648f4c1f203c75e403c045bd3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cc8bbdd254a51bc08591662f71b8653020bfcb9d520092879ad0f2a91c714f8af506e1ae2259e2e66d0aaafdaea8cafdb00386d2a9a55e73b2ec42ad64f23709
|
|
7
|
+
data.tar.gz: a88507ec55ea225f8493774747ce4a0e8e9ae9413b210deca40d06d61536b1b9455852d82bbfed14620fcbc58f3666c37aef618ce5002b661367d06c724dc891
|
data/config/traces.rb
ADDED
|
@@ -23,7 +23,7 @@ module A2A
|
|
|
23
23
|
# Register a handler object.
|
|
24
24
|
#
|
|
25
25
|
# The handler must respond to:
|
|
26
|
-
# #operations -> Array
|
|
26
|
+
# #operations -> Array(String) (e.g. ["SendMessage", "GetTask"])
|
|
27
27
|
# #call(env) -> void (sets env["a2a.result"])
|
|
28
28
|
#
|
|
29
29
|
def register(handler)
|
|
@@ -59,7 +59,7 @@ module A2A
|
|
|
59
59
|
begin
|
|
60
60
|
handler.call(env)
|
|
61
61
|
rescue => e
|
|
62
|
-
Console.error(self
|
|
62
|
+
Console.error(self, "Handler #{handler.class.name} raised #{e.class}", e)
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
end
|
data/lib/a2a/store/processor.rb
CHANGED
data/lib/a2a/store/webhooks.rb
CHANGED
|
@@ -28,8 +28,8 @@ module A2A
|
|
|
28
28
|
|
|
29
29
|
# Deliver a payload to all push notification configs for a task.
|
|
30
30
|
#
|
|
31
|
-
# @
|
|
32
|
-
# @
|
|
31
|
+
# @parameter configs [Array(Hash)] push notification configs
|
|
32
|
+
# @parameter payload [Hash] the StreamResponse payload
|
|
33
33
|
#
|
|
34
34
|
def deliver(configs, payload)
|
|
35
35
|
return if configs.nil? || configs.empty?
|
|
@@ -38,7 +38,7 @@ module A2A
|
|
|
38
38
|
Async do
|
|
39
39
|
deliver_single(config, payload)
|
|
40
40
|
rescue => e
|
|
41
|
-
Console.error(self
|
|
41
|
+
Console.error(self, "Webhook delivery failed for #{config["url"]}", e)
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
44
|
end
|
data/lib/a2a/version.rb
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../../../a2a/bindings/json_rpc"
|
|
4
|
+
require "traces/provider"
|
|
5
|
+
|
|
6
|
+
Traces::Provider(A2A::Bindings::JsonRpc) do
|
|
7
|
+
def call(env)
|
|
8
|
+
Traces.trace("a2a.bindings.json_rpc.call") do |span|
|
|
9
|
+
super.tap do |status, headers, body|
|
|
10
|
+
span["http.status_code"] = status
|
|
11
|
+
|
|
12
|
+
if method = env["a2a.json_rpc_method"]
|
|
13
|
+
span["rpc.method"] = method
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
if id = env["a2a.json_rpc_id"]
|
|
17
|
+
span["rpc.jsonrpc.request_id"] = id.to_s
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
if env["a2a.stream"]
|
|
21
|
+
span["a2a.response_type"] = "stream"
|
|
22
|
+
elsif env["a2a.error"]
|
|
23
|
+
span["a2a.response_type"] = "error"
|
|
24
|
+
else
|
|
25
|
+
span["a2a.response_type"] = "result"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../../../a2a/bindings/rest"
|
|
4
|
+
require "traces/provider"
|
|
5
|
+
|
|
6
|
+
Traces::Provider(A2A::Bindings::Rest) do
|
|
7
|
+
def call(env)
|
|
8
|
+
Traces.trace("a2a.bindings.rest.call") do |span|
|
|
9
|
+
super.tap do |status, headers, body|
|
|
10
|
+
span["http.status_code"] = status
|
|
11
|
+
|
|
12
|
+
if verb = env["a2a.verb"]
|
|
13
|
+
span["a2a.verb"] = verb
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
if path = env["a2a.path"]
|
|
17
|
+
span["a2a.path"] = path
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
if env["a2a.stream"]
|
|
21
|
+
span["a2a.response_type"] = "stream"
|
|
22
|
+
elsif env["a2a.error"]
|
|
23
|
+
span["a2a.response_type"] = "error"
|
|
24
|
+
else
|
|
25
|
+
span["a2a.response_type"] = "result"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../../../a2a/server/dispatcher"
|
|
4
|
+
require "traces/provider"
|
|
5
|
+
|
|
6
|
+
Traces::Provider(A2A::Server::Dispatcher) do
|
|
7
|
+
def call(env)
|
|
8
|
+
attributes = {
|
|
9
|
+
"a2a.operation" => env["a2a.operation"],
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
Traces.trace("a2a.server.dispatcher.call", attributes: attributes) do |span|
|
|
13
|
+
super.tap do |status, headers, body|
|
|
14
|
+
span["http.status_code"] = status
|
|
15
|
+
|
|
16
|
+
if env["a2a.stream"]
|
|
17
|
+
span["a2a.response_type"] = "stream"
|
|
18
|
+
elsif env["a2a.error"]
|
|
19
|
+
span["a2a.response_type"] = "error"
|
|
20
|
+
elsif env["a2a.result"]
|
|
21
|
+
span["a2a.response_type"] = "result"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../../../a2a/server/triage"
|
|
4
|
+
require "traces/provider"
|
|
5
|
+
|
|
6
|
+
Traces::Provider(A2A::Server::Triage) do
|
|
7
|
+
def call(env)
|
|
8
|
+
Traces.trace("a2a.server.triage.call") do |span|
|
|
9
|
+
super.tap do
|
|
10
|
+
if op = env["a2a.operation"]
|
|
11
|
+
span["a2a.operation"] = op
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
if proto_op = env["a2a.proto_operation"]
|
|
15
|
+
span["a2a.proto_operation"] = proto_op.name
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../../a2a/server"
|
|
4
|
+
require "traces/provider"
|
|
5
|
+
|
|
6
|
+
Traces::Provider(A2A::Server) do
|
|
7
|
+
def call(env)
|
|
8
|
+
attributes = {
|
|
9
|
+
"http.method" => env["REQUEST_METHOD"],
|
|
10
|
+
"http.path" => env["PATH_INFO"],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
Traces.trace("a2a.server.call", attributes: attributes) do |span|
|
|
14
|
+
super.tap do |status, headers, body|
|
|
15
|
+
span["http.status_code"] = status
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: agent2agent
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- A2A Contributors
|
|
@@ -154,6 +154,7 @@ executables: []
|
|
|
154
154
|
extensions: []
|
|
155
155
|
extra_rdoc_files: []
|
|
156
156
|
files:
|
|
157
|
+
- config/traces.rb
|
|
157
158
|
- data/a2a.json
|
|
158
159
|
- data/a2a.proto
|
|
159
160
|
- data/download-a2a-resources
|
|
@@ -193,9 +194,16 @@ files:
|
|
|
193
194
|
- lib/a2a/store/webhooks.rb
|
|
194
195
|
- lib/a2a/task_store.rb
|
|
195
196
|
- lib/a2a/version.rb
|
|
197
|
+
- lib/traces/provider/a2a.rb
|
|
198
|
+
- lib/traces/provider/a2a/bindings/json_rpc.rb
|
|
199
|
+
- lib/traces/provider/a2a/bindings/rest.rb
|
|
200
|
+
- lib/traces/provider/a2a/server.rb
|
|
201
|
+
- lib/traces/provider/a2a/server/dispatcher.rb
|
|
202
|
+
- lib/traces/provider/a2a/server/triage.rb
|
|
196
203
|
licenses:
|
|
197
204
|
- MIT
|
|
198
|
-
metadata:
|
|
205
|
+
metadata:
|
|
206
|
+
documentation_uri: https://general-intelligence-systems.github.io/agent2agent/
|
|
199
207
|
rdoc_options: []
|
|
200
208
|
require_paths:
|
|
201
209
|
- lib
|