a2a-test-framework 0.4.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/a2a.json +1961 -0
- data/a2a.proto +796 -0
- data/endpoints/grpc/cancel_task.json +10 -0
- data/endpoints/grpc/create_task_push_notification_config.json +10 -0
- data/endpoints/grpc/delete_task_push_notification_config.json +10 -0
- data/endpoints/grpc/get_extended_agent_card.json +10 -0
- data/endpoints/grpc/get_task.json +10 -0
- data/endpoints/grpc/get_task_push_notification_config.json +10 -0
- data/endpoints/grpc/list_task_push_notification_configs.json +10 -0
- data/endpoints/grpc/list_tasks.json +10 -0
- data/endpoints/grpc/send_message.json +10 -0
- data/endpoints/grpc/send_streaming_message.json +10 -0
- data/endpoints/grpc/subscribe_to_task.json +10 -0
- data/endpoints/rest/cancel_task.json +85 -0
- data/endpoints/rest/create_task_push_notification_config.json +104 -0
- data/endpoints/rest/delete_task_push_notification_config.json +46 -0
- data/endpoints/rest/get_extended_agent_card.json +168 -0
- data/endpoints/rest/get_task.json +111 -0
- data/endpoints/rest/get_task_push_notification_config.json +90 -0
- data/endpoints/rest/list_task_push_notification_configs.json +108 -0
- data/endpoints/rest/list_tasks.json +239 -0
- data/endpoints/rest/send_message.json +57 -0
- data/endpoints/rest/send_streaming_message.json +75 -0
- data/endpoints/rest/subscribe_to_task.json +68 -0
- data/exe/a2a-test +6 -0
- data/lib/a2a_test_framework/cli.rb +190 -0
- data/lib/a2a_test_framework/sse_client.rb +104 -0
- data/lib/a2a_test_framework/test_helper.rb +146 -0
- data/lib/a2a_test_framework/version.rb +5 -0
- data/lib/a2a_test_framework.rb +17 -0
- data/tests/grpc/cancel_task_test.rb +69 -0
- data/tests/grpc/create_task_push_notification_config_test.rb +79 -0
- data/tests/grpc/delete_task_push_notification_config_test.rb +54 -0
- data/tests/grpc/error_code_mappings_test.rb +39 -0
- data/tests/grpc/error_handling_test.rb +175 -0
- data/tests/grpc/get_extended_agent_card_test.rb +83 -0
- data/tests/grpc/get_task_push_notification_config_test.rb +39 -0
- data/tests/grpc/get_task_test.rb +76 -0
- data/tests/grpc/grpc_binding_test.rb +74 -0
- data/tests/grpc/list_task_push_notification_configs_test.rb +53 -0
- data/tests/grpc/list_tasks_test.rb +117 -0
- data/tests/grpc/protocol_data_model_test.rb +14 -0
- data/tests/grpc/send_message_test.rb +141 -0
- data/tests/grpc/send_streaming_message_test.rb +122 -0
- data/tests/grpc/streaming_event_delivery_test.rb +48 -0
- data/tests/grpc/subscribe_to_task_test.rb +92 -0
- data/tests/grpc/versioning_test.rb +32 -0
- data/tests/rest/agent_card_caching_test.rb +39 -0
- data/tests/rest/agent_card_signing_test.rb +74 -0
- data/tests/rest/agent_discovery_test.rb +117 -0
- data/tests/rest/authentication_authorization_test.rb +62 -0
- data/tests/rest/cancel_task_test.rb +110 -0
- data/tests/rest/capability_validation_test.rb +78 -0
- data/tests/rest/context_identifier_semantics_test.rb +75 -0
- data/tests/rest/create_task_push_notification_config_test.rb +122 -0
- data/tests/rest/custom_binding_test.rb +96 -0
- data/tests/rest/delete_task_push_notification_config_test.rb +103 -0
- data/tests/rest/error_code_mappings_test.rb +45 -0
- data/tests/rest/error_handling_test.rb +178 -0
- data/tests/rest/extension_versioning_test.rb +44 -0
- data/tests/rest/field_presence_optionality_test.rb +64 -0
- data/tests/rest/functional_equivalence_test.rb +23 -0
- data/tests/rest/get_extended_agent_card_test.rb +67 -0
- data/tests/rest/get_task_push_notification_config_test.rb +75 -0
- data/tests/rest/get_task_test.rb +134 -0
- data/tests/rest/history_length_semantics_test.rb +91 -0
- data/tests/rest/http_rest_binding_test.rb +114 -0
- data/tests/rest/iana_registrations_test.rb +47 -0
- data/tests/rest/idempotency_test.rb +69 -0
- data/tests/rest/in_task_authorization_test.rb +45 -0
- data/tests/rest/json_field_naming_test.rb +89 -0
- data/tests/rest/json_rpc_binding_test.rb +102 -0
- data/tests/rest/list_task_push_notification_configs_test.rb +92 -0
- data/tests/rest/list_tasks_test.rb +162 -0
- data/tests/rest/messages_and_artifacts_test.rb +101 -0
- data/tests/rest/multi_turn_conversation_test.rb +94 -0
- data/tests/rest/protocol_data_model_test.rb +99 -0
- data/tests/rest/protocol_security_test.rb +25 -0
- data/tests/rest/protocol_selection_negotiation_test.rb +24 -0
- data/tests/rest/push_notification_delivery_test.rb +115 -0
- data/tests/rest/security_considerations_test.rb +101 -0
- data/tests/rest/send_message_test.rb +230 -0
- data/tests/rest/send_streaming_message_test.rb +129 -0
- data/tests/rest/service_parameters_test.rb +52 -0
- data/tests/rest/streaming_event_delivery_test.rb +58 -0
- data/tests/rest/subscribe_to_task_test.rb +99 -0
- data/tests/rest/task_identifier_semantics_test.rb +67 -0
- data/tests/rest/timestamps_test.rb +70 -0
- data/tests/rest/versioning_responsibilities_test.rb +46 -0
- data/tests/rest/versioning_test.rb +44 -0
- metadata +159 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocol": "REST (HTTP+JSON)",
|
|
3
|
+
"http_method": "GET",
|
|
4
|
+
"path": "/tasks/{task_id}/pushNotificationConfigs/{id}",
|
|
5
|
+
"tenant_path": "/{tenant}/tasks/{task_id}/pushNotificationConfigs/{id}",
|
|
6
|
+
"description": "Gets a push notification config for a task.",
|
|
7
|
+
"streaming": false,
|
|
8
|
+
"request": {
|
|
9
|
+
"type": "GetTaskPushNotificationConfigRequest",
|
|
10
|
+
"schema": {
|
|
11
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"description": "Represents a request for the `GetTaskPushNotificationConfig` method.",
|
|
14
|
+
"patternProperties": {
|
|
15
|
+
"^(task_id)$": {
|
|
16
|
+
"default": "",
|
|
17
|
+
"description": "The parent task resource ID.",
|
|
18
|
+
"type": "string"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"properties": {
|
|
22
|
+
"id": {
|
|
23
|
+
"default": "",
|
|
24
|
+
"description": "The resource ID of the configuration to retrieve.",
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"taskId": {
|
|
28
|
+
"default": "",
|
|
29
|
+
"description": "The parent task resource ID.",
|
|
30
|
+
"type": "string"
|
|
31
|
+
},
|
|
32
|
+
"tenant": {
|
|
33
|
+
"default": "",
|
|
34
|
+
"description": "Optional. Tenant ID, provided as a path parameter.",
|
|
35
|
+
"type": "string"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"title": "Get Task Push Notification Config Request",
|
|
39
|
+
"type": "object"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"response": {
|
|
43
|
+
"type": "TaskPushNotificationConfig",
|
|
44
|
+
"schema": {
|
|
45
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
46
|
+
"additionalProperties": false,
|
|
47
|
+
"description": "A container associating a push notification configuration with a specific task.",
|
|
48
|
+
"patternProperties": {
|
|
49
|
+
"^(task_id)$": {
|
|
50
|
+
"default": "",
|
|
51
|
+
"description": "The ID of the task this configuration is associated with.",
|
|
52
|
+
"type": "string"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"properties": {
|
|
56
|
+
"authentication": {
|
|
57
|
+
"$ref": "lf.a2a.v1.AuthenticationInfo.jsonschema.json",
|
|
58
|
+
"description": "Authentication information required to send the notification."
|
|
59
|
+
},
|
|
60
|
+
"id": {
|
|
61
|
+
"default": "",
|
|
62
|
+
"description": "The push notification configuration details.\n A unique identifier (e.g. UUID) for this push notification configuration.",
|
|
63
|
+
"type": "string"
|
|
64
|
+
},
|
|
65
|
+
"taskId": {
|
|
66
|
+
"default": "",
|
|
67
|
+
"description": "The ID of the task this configuration is associated with.",
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"tenant": {
|
|
71
|
+
"default": "",
|
|
72
|
+
"description": "Optional. Tenant ID.",
|
|
73
|
+
"type": "string"
|
|
74
|
+
},
|
|
75
|
+
"token": {
|
|
76
|
+
"default": "",
|
|
77
|
+
"description": "A token unique for this task or session.",
|
|
78
|
+
"type": "string"
|
|
79
|
+
},
|
|
80
|
+
"url": {
|
|
81
|
+
"default": "",
|
|
82
|
+
"description": "The URL where the notification should be sent.",
|
|
83
|
+
"type": "string"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"title": "Task Push Notification Config",
|
|
87
|
+
"type": "object"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocol": "REST (HTTP+JSON)",
|
|
3
|
+
"http_method": "GET",
|
|
4
|
+
"path": "/tasks/{task_id}/pushNotificationConfigs",
|
|
5
|
+
"tenant_path": "/{tenant}/tasks/{task_id}/pushNotificationConfigs",
|
|
6
|
+
"description": "Get a list of push notifications configured for a task.",
|
|
7
|
+
"streaming": false,
|
|
8
|
+
"request": {
|
|
9
|
+
"type": "ListTaskPushNotificationConfigsRequest",
|
|
10
|
+
"schema": {
|
|
11
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"description": "Represents a request for the `ListTaskPushNotificationConfigs` method.",
|
|
14
|
+
"patternProperties": {
|
|
15
|
+
"^(page_size)$": {
|
|
16
|
+
"anyOf": [
|
|
17
|
+
{
|
|
18
|
+
"maximum": 2147483647,
|
|
19
|
+
"minimum": -2147483648,
|
|
20
|
+
"type": "integer"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"pattern": "^-?[0-9]+$",
|
|
24
|
+
"type": "string"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"default": 0,
|
|
28
|
+
"description": "The maximum number of configurations to return."
|
|
29
|
+
},
|
|
30
|
+
"^(page_token)$": {
|
|
31
|
+
"default": "",
|
|
32
|
+
"description": "A page token received from a previous `ListTaskPushNotificationConfigsRequest` call.",
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"^(task_id)$": {
|
|
36
|
+
"default": "",
|
|
37
|
+
"description": "The parent task resource ID.",
|
|
38
|
+
"type": "string"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"properties": {
|
|
42
|
+
"pageSize": {
|
|
43
|
+
"anyOf": [
|
|
44
|
+
{
|
|
45
|
+
"maximum": 2147483647,
|
|
46
|
+
"minimum": -2147483648,
|
|
47
|
+
"type": "integer"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"pattern": "^-?[0-9]+$",
|
|
51
|
+
"type": "string"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"default": 0,
|
|
55
|
+
"description": "The maximum number of configurations to return."
|
|
56
|
+
},
|
|
57
|
+
"pageToken": {
|
|
58
|
+
"default": "",
|
|
59
|
+
"description": "A page token received from a previous `ListTaskPushNotificationConfigsRequest` call.",
|
|
60
|
+
"type": "string"
|
|
61
|
+
},
|
|
62
|
+
"taskId": {
|
|
63
|
+
"default": "",
|
|
64
|
+
"description": "The parent task resource ID.",
|
|
65
|
+
"type": "string"
|
|
66
|
+
},
|
|
67
|
+
"tenant": {
|
|
68
|
+
"default": "",
|
|
69
|
+
"description": "Optional. Tenant ID, provided as a path parameter.",
|
|
70
|
+
"type": "string"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"title": "List Task Push Notification Configs Request",
|
|
74
|
+
"type": "object"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"response": {
|
|
78
|
+
"type": "ListTaskPushNotificationConfigsResponse",
|
|
79
|
+
"schema": {
|
|
80
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
81
|
+
"additionalProperties": false,
|
|
82
|
+
"description": "Represents a successful response for the `ListTaskPushNotificationConfigs`\n method.",
|
|
83
|
+
"patternProperties": {
|
|
84
|
+
"^(next_page_token)$": {
|
|
85
|
+
"default": "",
|
|
86
|
+
"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.",
|
|
87
|
+
"type": "string"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"properties": {
|
|
91
|
+
"configs": {
|
|
92
|
+
"description": "The list of push notification configurations.",
|
|
93
|
+
"items": {
|
|
94
|
+
"$ref": "lf.a2a.v1.TaskPushNotificationConfig.jsonschema.json"
|
|
95
|
+
},
|
|
96
|
+
"type": "array"
|
|
97
|
+
},
|
|
98
|
+
"nextPageToken": {
|
|
99
|
+
"default": "",
|
|
100
|
+
"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.",
|
|
101
|
+
"type": "string"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"title": "List Task Push Notification Configs Response",
|
|
105
|
+
"type": "object"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocol": "REST (HTTP+JSON)",
|
|
3
|
+
"http_method": "GET",
|
|
4
|
+
"path": "/tasks",
|
|
5
|
+
"tenant_path": "/{tenant}/tasks",
|
|
6
|
+
"description": "Lists tasks that match the specified filter.",
|
|
7
|
+
"streaming": false,
|
|
8
|
+
"request": {
|
|
9
|
+
"type": "ListTasksRequest",
|
|
10
|
+
"schema": {
|
|
11
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"description": "Parameters for listing tasks with optional filtering criteria.",
|
|
14
|
+
"patternProperties": {
|
|
15
|
+
"^(context_id)$": {
|
|
16
|
+
"default": "",
|
|
17
|
+
"description": "Filter tasks by context ID to get tasks from a specific conversation or session.",
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"^(history_length)$": {
|
|
21
|
+
"anyOf": [
|
|
22
|
+
{
|
|
23
|
+
"maximum": 2147483647,
|
|
24
|
+
"minimum": -2147483648,
|
|
25
|
+
"type": "integer"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"pattern": "^-?[0-9]+$",
|
|
29
|
+
"type": "string"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"description": "The maximum number of messages to include in each task's history."
|
|
33
|
+
},
|
|
34
|
+
"^(include_artifacts)$": {
|
|
35
|
+
"description": "Whether to include artifacts in the returned tasks.\n Defaults to false to reduce payload size.",
|
|
36
|
+
"type": "boolean"
|
|
37
|
+
},
|
|
38
|
+
"^(page_size)$": {
|
|
39
|
+
"anyOf": [
|
|
40
|
+
{
|
|
41
|
+
"maximum": 2147483647,
|
|
42
|
+
"minimum": -2147483648,
|
|
43
|
+
"type": "integer"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"pattern": "^-?[0-9]+$",
|
|
47
|
+
"type": "string"
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"description": "The maximum number of tasks to return. The service may return fewer than this value.\n If unspecified, at most 50 tasks will be returned.\n The minimum value is 1.\n The maximum value is 100."
|
|
51
|
+
},
|
|
52
|
+
"^(page_token)$": {
|
|
53
|
+
"default": "",
|
|
54
|
+
"description": "A page token, received from a previous `ListTasks` call.\n `ListTasksResponse.next_page_token`.\n Provide this to retrieve the subsequent page.",
|
|
55
|
+
"type": "string"
|
|
56
|
+
},
|
|
57
|
+
"^(status_timestamp_after)$": {
|
|
58
|
+
"$ref": "google.protobuf.Timestamp.jsonschema.json",
|
|
59
|
+
"description": "Filter tasks which have a status updated after the provided timestamp in ISO 8601 format (e.g., \"2023-10-27T10:00:00Z\").\n Only tasks with a status timestamp time greater than or equal to this value will be returned."
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"properties": {
|
|
63
|
+
"contextId": {
|
|
64
|
+
"default": "",
|
|
65
|
+
"description": "Filter tasks by context ID to get tasks from a specific conversation or session.",
|
|
66
|
+
"type": "string"
|
|
67
|
+
},
|
|
68
|
+
"historyLength": {
|
|
69
|
+
"anyOf": [
|
|
70
|
+
{
|
|
71
|
+
"maximum": 2147483647,
|
|
72
|
+
"minimum": -2147483648,
|
|
73
|
+
"type": "integer"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"pattern": "^-?[0-9]+$",
|
|
77
|
+
"type": "string"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"description": "The maximum number of messages to include in each task's history."
|
|
81
|
+
},
|
|
82
|
+
"includeArtifacts": {
|
|
83
|
+
"description": "Whether to include artifacts in the returned tasks.\n Defaults to false to reduce payload size.",
|
|
84
|
+
"type": "boolean"
|
|
85
|
+
},
|
|
86
|
+
"pageSize": {
|
|
87
|
+
"anyOf": [
|
|
88
|
+
{
|
|
89
|
+
"maximum": 2147483647,
|
|
90
|
+
"minimum": -2147483648,
|
|
91
|
+
"type": "integer"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"pattern": "^-?[0-9]+$",
|
|
95
|
+
"type": "string"
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"description": "The maximum number of tasks to return. The service may return fewer than this value.\n If unspecified, at most 50 tasks will be returned.\n The minimum value is 1.\n The maximum value is 100."
|
|
99
|
+
},
|
|
100
|
+
"pageToken": {
|
|
101
|
+
"default": "",
|
|
102
|
+
"description": "A page token, received from a previous `ListTasks` call.\n `ListTasksResponse.next_page_token`.\n Provide this to retrieve the subsequent page.",
|
|
103
|
+
"type": "string"
|
|
104
|
+
},
|
|
105
|
+
"status": {
|
|
106
|
+
"anyOf": [
|
|
107
|
+
{
|
|
108
|
+
"pattern": "^TASK_STATE_UNSPECIFIED$",
|
|
109
|
+
"type": "string"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"enum": [
|
|
113
|
+
"TASK_STATE_SUBMITTED",
|
|
114
|
+
"TASK_STATE_WORKING",
|
|
115
|
+
"TASK_STATE_COMPLETED",
|
|
116
|
+
"TASK_STATE_FAILED",
|
|
117
|
+
"TASK_STATE_CANCELED",
|
|
118
|
+
"TASK_STATE_INPUT_REQUIRED",
|
|
119
|
+
"TASK_STATE_REJECTED",
|
|
120
|
+
"TASK_STATE_AUTH_REQUIRED"
|
|
121
|
+
],
|
|
122
|
+
"type": "string"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"maximum": 2147483647,
|
|
126
|
+
"minimum": -2147483648,
|
|
127
|
+
"type": "integer"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"default": 0,
|
|
131
|
+
"description": "Filter tasks by their current status state.",
|
|
132
|
+
"title": "Task State"
|
|
133
|
+
},
|
|
134
|
+
"statusTimestampAfter": {
|
|
135
|
+
"$ref": "google.protobuf.Timestamp.jsonschema.json",
|
|
136
|
+
"description": "Filter tasks which have a status updated after the provided timestamp in ISO 8601 format (e.g., \"2023-10-27T10:00:00Z\").\n Only tasks with a status timestamp time greater than or equal to this value will be returned."
|
|
137
|
+
},
|
|
138
|
+
"tenant": {
|
|
139
|
+
"default": "",
|
|
140
|
+
"description": "Tenant ID, provided as a path parameter.",
|
|
141
|
+
"type": "string"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"title": "List Tasks Request",
|
|
145
|
+
"type": "object"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"response": {
|
|
149
|
+
"type": "ListTasksResponse",
|
|
150
|
+
"schema": {
|
|
151
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
152
|
+
"additionalProperties": false,
|
|
153
|
+
"description": "Result object for `ListTasks` method containing an array of tasks and pagination information.",
|
|
154
|
+
"patternProperties": {
|
|
155
|
+
"^(next_page_token)$": {
|
|
156
|
+
"default": "",
|
|
157
|
+
"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.",
|
|
158
|
+
"type": "string"
|
|
159
|
+
},
|
|
160
|
+
"^(page_size)$": {
|
|
161
|
+
"anyOf": [
|
|
162
|
+
{
|
|
163
|
+
"maximum": 2147483647,
|
|
164
|
+
"minimum": -2147483648,
|
|
165
|
+
"type": "integer"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"pattern": "^-?[0-9]+$",
|
|
169
|
+
"type": "string"
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"default": 0,
|
|
173
|
+
"description": "The page size used for this response."
|
|
174
|
+
},
|
|
175
|
+
"^(total_size)$": {
|
|
176
|
+
"anyOf": [
|
|
177
|
+
{
|
|
178
|
+
"maximum": 2147483647,
|
|
179
|
+
"minimum": -2147483648,
|
|
180
|
+
"type": "integer"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"pattern": "^-?[0-9]+$",
|
|
184
|
+
"type": "string"
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"default": 0,
|
|
188
|
+
"description": "Total number of tasks available (before pagination)."
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"properties": {
|
|
192
|
+
"nextPageToken": {
|
|
193
|
+
"default": "",
|
|
194
|
+
"description": "A token to retrieve the next page of results, or empty if there are no more results in the list.",
|
|
195
|
+
"type": "string"
|
|
196
|
+
},
|
|
197
|
+
"pageSize": {
|
|
198
|
+
"anyOf": [
|
|
199
|
+
{
|
|
200
|
+
"maximum": 2147483647,
|
|
201
|
+
"minimum": -2147483648,
|
|
202
|
+
"type": "integer"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"pattern": "^-?[0-9]+$",
|
|
206
|
+
"type": "string"
|
|
207
|
+
}
|
|
208
|
+
],
|
|
209
|
+
"default": 0,
|
|
210
|
+
"description": "The page size used for this response."
|
|
211
|
+
},
|
|
212
|
+
"tasks": {
|
|
213
|
+
"description": "Array of tasks matching the specified criteria.",
|
|
214
|
+
"items": {
|
|
215
|
+
"$ref": "lf.a2a.v1.Task.jsonschema.json"
|
|
216
|
+
},
|
|
217
|
+
"type": "array"
|
|
218
|
+
},
|
|
219
|
+
"totalSize": {
|
|
220
|
+
"anyOf": [
|
|
221
|
+
{
|
|
222
|
+
"maximum": 2147483647,
|
|
223
|
+
"minimum": -2147483648,
|
|
224
|
+
"type": "integer"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"pattern": "^-?[0-9]+$",
|
|
228
|
+
"type": "string"
|
|
229
|
+
}
|
|
230
|
+
],
|
|
231
|
+
"default": 0,
|
|
232
|
+
"description": "Total number of tasks available (before pagination)."
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"title": "List Tasks Response",
|
|
236
|
+
"type": "object"
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocol": "REST (HTTP+JSON)",
|
|
3
|
+
"http_method": "POST",
|
|
4
|
+
"path": "/message:send",
|
|
5
|
+
"tenant_path": "/{tenant}/message:send",
|
|
6
|
+
"description": "Sends a message to an agent.",
|
|
7
|
+
"streaming": false,
|
|
8
|
+
"request": {
|
|
9
|
+
"type": "SendMessageRequest",
|
|
10
|
+
"schema": {
|
|
11
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"description": "Represents a request for the `SendMessage` method.",
|
|
14
|
+
"properties": {
|
|
15
|
+
"configuration": {
|
|
16
|
+
"$ref": "lf.a2a.v1.SendMessageConfiguration.jsonschema.json",
|
|
17
|
+
"description": "Configuration for the send request."
|
|
18
|
+
},
|
|
19
|
+
"message": {
|
|
20
|
+
"$ref": "lf.a2a.v1.Message.jsonschema.json",
|
|
21
|
+
"description": "The message to send to the agent."
|
|
22
|
+
},
|
|
23
|
+
"metadata": {
|
|
24
|
+
"$ref": "google.protobuf.Struct.jsonschema.json",
|
|
25
|
+
"description": "A flexible key-value map for passing additional context or parameters."
|
|
26
|
+
},
|
|
27
|
+
"tenant": {
|
|
28
|
+
"default": "",
|
|
29
|
+
"description": "Optional. Tenant ID, provided as a path parameter.",
|
|
30
|
+
"type": "string"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"title": "Send Message Request",
|
|
34
|
+
"type": "object"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"response": {
|
|
38
|
+
"type": "SendMessageResponse",
|
|
39
|
+
"schema": {
|
|
40
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"description": "Represents the response for the `SendMessage` method.",
|
|
43
|
+
"properties": {
|
|
44
|
+
"message": {
|
|
45
|
+
"$ref": "lf.a2a.v1.Message.jsonschema.json",
|
|
46
|
+
"description": "A message from the agent."
|
|
47
|
+
},
|
|
48
|
+
"task": {
|
|
49
|
+
"$ref": "lf.a2a.v1.Task.jsonschema.json",
|
|
50
|
+
"description": "The task created or updated by the message."
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"title": "Send Message Response",
|
|
54
|
+
"type": "object"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocol": "REST (HTTP+JSON)",
|
|
3
|
+
"http_method": "POST",
|
|
4
|
+
"path": "/message:stream",
|
|
5
|
+
"tenant_path": "/{tenant}/message:stream",
|
|
6
|
+
"description": "Sends a streaming message to an agent, allowing for real-time interaction and status updates. Streaming version of `SendMessage`",
|
|
7
|
+
"streaming": true,
|
|
8
|
+
"request": {
|
|
9
|
+
"type": "SendMessageRequest",
|
|
10
|
+
"schema": {
|
|
11
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"description": "Represents a request for the `SendMessage` method.",
|
|
14
|
+
"properties": {
|
|
15
|
+
"configuration": {
|
|
16
|
+
"$ref": "lf.a2a.v1.SendMessageConfiguration.jsonschema.json",
|
|
17
|
+
"description": "Configuration for the send request."
|
|
18
|
+
},
|
|
19
|
+
"message": {
|
|
20
|
+
"$ref": "lf.a2a.v1.Message.jsonschema.json",
|
|
21
|
+
"description": "The message to send to the agent."
|
|
22
|
+
},
|
|
23
|
+
"metadata": {
|
|
24
|
+
"$ref": "google.protobuf.Struct.jsonschema.json",
|
|
25
|
+
"description": "A flexible key-value map for passing additional context or parameters."
|
|
26
|
+
},
|
|
27
|
+
"tenant": {
|
|
28
|
+
"default": "",
|
|
29
|
+
"description": "Optional. Tenant ID, provided as a path parameter.",
|
|
30
|
+
"type": "string"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"title": "Send Message Request",
|
|
34
|
+
"type": "object"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"response": {
|
|
38
|
+
"type": "StreamResponse",
|
|
39
|
+
"schema": {
|
|
40
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"description": "A wrapper object used in streaming operations to encapsulate different types of response data.",
|
|
43
|
+
"patternProperties": {
|
|
44
|
+
"^(artifact_update)$": {
|
|
45
|
+
"$ref": "lf.a2a.v1.TaskArtifactUpdateEvent.jsonschema.json",
|
|
46
|
+
"description": "An event indicating a task artifact update."
|
|
47
|
+
},
|
|
48
|
+
"^(status_update)$": {
|
|
49
|
+
"$ref": "lf.a2a.v1.TaskStatusUpdateEvent.jsonschema.json",
|
|
50
|
+
"description": "An event indicating a task status update."
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"properties": {
|
|
54
|
+
"artifactUpdate": {
|
|
55
|
+
"$ref": "lf.a2a.v1.TaskArtifactUpdateEvent.jsonschema.json",
|
|
56
|
+
"description": "An event indicating a task artifact update."
|
|
57
|
+
},
|
|
58
|
+
"message": {
|
|
59
|
+
"$ref": "lf.a2a.v1.Message.jsonschema.json",
|
|
60
|
+
"description": "A Message object containing a message from the agent."
|
|
61
|
+
},
|
|
62
|
+
"statusUpdate": {
|
|
63
|
+
"$ref": "lf.a2a.v1.TaskStatusUpdateEvent.jsonschema.json",
|
|
64
|
+
"description": "An event indicating a task status update."
|
|
65
|
+
},
|
|
66
|
+
"task": {
|
|
67
|
+
"$ref": "lf.a2a.v1.Task.jsonschema.json",
|
|
68
|
+
"description": "A Task object containing the current state of the task."
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"title": "Stream Response",
|
|
72
|
+
"type": "object"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocol": "REST (HTTP+JSON)",
|
|
3
|
+
"http_method": "GET",
|
|
4
|
+
"path": "/tasks/{id}:subscribe",
|
|
5
|
+
"tenant_path": "/{tenant}/tasks/{id}:subscribe",
|
|
6
|
+
"description": "Subscribes to task updates for tasks not in a terminal state. Returns `UnsupportedOperationError` if the task is already in a terminal state (completed, failed, canceled, rejected).",
|
|
7
|
+
"streaming": true,
|
|
8
|
+
"request": {
|
|
9
|
+
"type": "SubscribeToTaskRequest",
|
|
10
|
+
"schema": {
|
|
11
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"description": "Represents a request for the `SubscribeToTask` method.",
|
|
14
|
+
"properties": {
|
|
15
|
+
"id": {
|
|
16
|
+
"default": "",
|
|
17
|
+
"description": "The resource ID of the task to subscribe to.",
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"tenant": {
|
|
21
|
+
"default": "",
|
|
22
|
+
"description": "Optional. Tenant ID, provided as a path parameter.",
|
|
23
|
+
"type": "string"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"title": "Subscribe To Task Request",
|
|
27
|
+
"type": "object"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"response": {
|
|
31
|
+
"type": "StreamResponse",
|
|
32
|
+
"schema": {
|
|
33
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
34
|
+
"additionalProperties": false,
|
|
35
|
+
"description": "A wrapper object used in streaming operations to encapsulate different types of response data.",
|
|
36
|
+
"patternProperties": {
|
|
37
|
+
"^(artifact_update)$": {
|
|
38
|
+
"$ref": "lf.a2a.v1.TaskArtifactUpdateEvent.jsonschema.json",
|
|
39
|
+
"description": "An event indicating a task artifact update."
|
|
40
|
+
},
|
|
41
|
+
"^(status_update)$": {
|
|
42
|
+
"$ref": "lf.a2a.v1.TaskStatusUpdateEvent.jsonschema.json",
|
|
43
|
+
"description": "An event indicating a task status update."
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"properties": {
|
|
47
|
+
"artifactUpdate": {
|
|
48
|
+
"$ref": "lf.a2a.v1.TaskArtifactUpdateEvent.jsonschema.json",
|
|
49
|
+
"description": "An event indicating a task artifact update."
|
|
50
|
+
},
|
|
51
|
+
"message": {
|
|
52
|
+
"$ref": "lf.a2a.v1.Message.jsonschema.json",
|
|
53
|
+
"description": "A Message object containing a message from the agent."
|
|
54
|
+
},
|
|
55
|
+
"statusUpdate": {
|
|
56
|
+
"$ref": "lf.a2a.v1.TaskStatusUpdateEvent.jsonschema.json",
|
|
57
|
+
"description": "An event indicating a task status update."
|
|
58
|
+
},
|
|
59
|
+
"task": {
|
|
60
|
+
"$ref": "lf.a2a.v1.Task.jsonschema.json",
|
|
61
|
+
"description": "A Task object containing the current state of the task."
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"title": "Stream Response",
|
|
65
|
+
"type": "object"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|