Skip to content

Commit 4557dae

Browse files
authored
feat: implement ACTS SUT behaviors for the ITK agent with YAML config (a2aproject#1150)
1 parent ea7b075 commit 4557dae

6 files changed

Lines changed: 914 additions & 4 deletions

File tree

‎acts/sut-behaviors.yaml‎

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Which ACTS `tck-*` behaviours this SDK's ITK agent implements (ACTS §11.1).
2+
#
3+
# **This file is the list.** `ActsBehaviors.java` implements the behaviours but
4+
# does not restate their names — it reads the prefix out of the message with a
5+
# greedy regex — so there is nothing here to drift out of step with. The two
6+
# are a claim and its implementation, and the runner checks one against the
7+
# other by running the tests.
8+
#
9+
# A prefix listed here but not implemented makes the test FAIL, not skip:
10+
# deliberately, so lagging support stays visible in the conformance report
11+
# instead of quietly shrinking it. Adding a behaviour means adding a branch in
12+
# `ActsBehaviors.dispatch` and an entry here.
13+
14+
acts_version: "1.0"
15+
16+
behaviors:
17+
- prefix: "tck-complete-task"
18+
description: "Complete the task with a text response message"
19+
response_type: task
20+
terminal_state: TASK_STATE_COMPLETED
21+
22+
- prefix: "tck-input-required"
23+
description: "Return the task in INPUT_REQUIRED"
24+
response_type: task
25+
terminal_state: TASK_STATE_INPUT_REQUIRED
26+
27+
- prefix: "tck-auth-required"
28+
description: "Return the task in AUTH_REQUIRED"
29+
response_type: task
30+
terminal_state: TASK_STATE_AUTH_REQUIRED
31+
32+
- prefix: "tck-reject-task"
33+
description: "Reject the task"
34+
response_type: task
35+
terminal_state: TASK_STATE_REJECTED
36+
37+
- prefix: "tck-task-failure"
38+
description: "Complete with FAILED and an error message"
39+
response_type: task
40+
terminal_state: TASK_STATE_FAILED
41+
42+
- prefix: "tck-message-response"
43+
description: "Return a direct Message, not a Task"
44+
response_type: message
45+
46+
- prefix: "tck-multi-turn"
47+
description: "Stay in INPUT_REQUIRED until the user sends 'done'"
48+
response_type: task
49+
terminal_state: TASK_STATE_COMPLETED
50+
51+
- prefix: "tck-cancel"
52+
description: "Remain in WORKING until canceled"
53+
response_type: task
54+
terminal_state: TASK_STATE_CANCELED
55+
56+
- prefix: "tck-long-running"
57+
description: "Stay in WORKING briefly, then complete"
58+
response_type: task
59+
terminal_state: TASK_STATE_COMPLETED
60+
delay_ms: 1000
61+
62+
- prefix: "tck-artifact-text"
63+
description: "Complete with a text artifact"
64+
response_type: task
65+
terminal_state: TASK_STATE_COMPLETED
66+
artifacts:
67+
- text: "generated text content"
68+
69+
- prefix: "tck-artifact-data"
70+
description: "Complete with a structured data artifact"
71+
response_type: task
72+
terminal_state: TASK_STATE_COMPLETED
73+
artifacts:
74+
- data: {key: "value", count: 1}
75+
76+
- prefix: "tck-artifact-file"
77+
description: "Complete with a file artifact carrying inline bytes"
78+
response_type: task
79+
terminal_state: TASK_STATE_COMPLETED
80+
artifacts:
81+
- file: {name: "document.txt", mediaType: "text/plain"}
82+
83+
- prefix: "tck-artifact-file-url"
84+
description: "Complete with a file artifact carrying a URL"
85+
response_type: task
86+
terminal_state: TASK_STATE_COMPLETED
87+
artifacts:
88+
- fileUrl:
89+
url: "https://example.com/document.txt"
90+
name: "document.txt"
91+
mediaType: "text/plain"
92+
93+
- prefix: "tck-stream-basic"
94+
description: "Stream working -> artifact -> completed"
95+
response_type: task
96+
terminal_state: TASK_STATE_COMPLETED
97+
streaming: true
98+
artifacts:
99+
- text: "streamed content"
100+
101+
- prefix: "tck-stream-chunked"
102+
description: "Stream one artifact across several appended chunks"
103+
response_type: task
104+
terminal_state: TASK_STATE_COMPLETED
105+
streaming: true
106+
artifacts:
107+
- text: "chunk one chunk two chunk three"

‎itk/.gitignore‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
a2a-itk/
2+
a2a-itk
23
logs/
34
raw_results.json
45
itk_java.json
6+
acts-report-*.json
7+
acts_results_*.json

0 commit comments

Comments
 (0)