Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
a474c7e
Allow adjusting context window sizes for Ollama dynamically (#883)
Ololoshechkin Sep 30, 2025
5a05fed
Refactor spring boot starters (#886)
kpavlov Sep 30, 2025
45012a3
fix: Google: use maxTokens from params (#734)
nicolasf Sep 30, 2025
9a50bf0
Updated documentation on functional agents (#881)
innateteniuk Oct 1, 2025
58ba445
Add integration tests for executing tools with primitive types combin…
aozherelyeva Oct 1, 2025
5394f6a
Support tool calling strategy in structured output (#829)
rubencagnie Oct 1, 2025
ce9d463
Fix finishReason nullability (#771)
tiginamaria Oct 1, 2025
3d5ed57
KG-376. Update event names in test after agent events renaming
sdubov Sep 29, 2025
611397f
KG-148. Add LLM Streaming agent events
sdubov Sep 24, 2025
138e947
KG-148. Updated documentation with new LLM Streaming events
sdubov Sep 29, 2025
f241286
Update documentation for agent feature events
sdubov Sep 30, 2025
bf6f54c
Fix compress history integration test (#899)
tiginamaria Oct 1, 2025
d53c886
Fix Ollama tests (#895)
aozherelyeva Oct 1, 2025
0fb2389
add AGENT.md with project guidelines (#185)
devcrocod Oct 1, 2025
572d100
Fix SpringBootStarters initialization and improve RetryingClient (#894)
kpavlov Oct 1, 2025
9116495
[a2a] Add JSON-RPC protocol foundation and module structure
EugeneTheDev Sep 29, 2025
5e16e0f
[a2a] Implement AgentCard and core A2A data models
EugeneTheDev Aug 27, 2025
4c7d84f
[a2a] Add client and server transport abstractions
EugeneTheDev Aug 30, 2025
e044eae
[a2a] Implement HTTP JSON-RPC client transport with tests
EugeneTheDev Aug 31, 2025
52a46cf
[a2a] Implement HTTP JSON-RPC server transport with full protocol sup…
EugeneTheDev Sep 4, 2025
05a902f
Add integration tests for HttpJSONRPCClientTransport and update depen…
kpavlov Sep 9, 2025
9f073d8
[a2a] Implement A2AClient foundation with AgentCardResolver
EugeneTheDev Sep 29, 2025
1f52357
[a2a] Update A2A models for spec compliance and add client methods
EugeneTheDev Sep 10, 2025
b071e85
[a2a] Add comprehensive A2A client test suite with Python test server
EugeneTheDev Sep 10, 2025
dca4e11
[a2a] Improve agent card loading and resolution
EugeneTheDev Sep 12, 2025
f1a8c52
[a2a] Implement A2AServer core with session management and storage
EugeneTheDev Sep 13, 2025
2c4c657
[a2a] Implement session management with push notifications
EugeneTheDev Sep 19, 2025
69259af
[a2a] Add comprehensive documentation for server components
EugeneTheDev Sep 20, 2025
51f85c7
[a2a] Introduce a2a-test module, create BaseA2AProtocolTest
EugeneTheDev Sep 29, 2025
cef7465
[a2a] Fix SessionEventProcessor concurrency and event management
EugeneTheDev Sep 21, 2025
dfc5a79
[a2a] Refine AgentExecutor interface and add test utilities
EugeneTheDev Sep 24, 2025
03e2241
[a2a] Add task locking, add A2A server integration tests
EugeneTheDev Sep 24, 2025
0c95155
[a2a] Implement full TCK compliance with all tests passing
EugeneTheDev Sep 29, 2025
10d5b1b
[a2a] Add CORS configuration
EugeneTheDev Sep 29, 2025
b1d5e2b
[a2a] Add A2A server and A2A client agent features
EugeneTheDev Sep 29, 2025
489b7d3
[a2a] Fix compilation issues and build configuration
EugeneTheDev Sep 30, 2025
b6371be
[a2a] Add module documentation and metadata field support
EugeneTheDev Sep 30, 2025
98643aa
[a2a] Add interactive joke agent example
EugeneTheDev Sep 30, 2025
b7cd3b9
[agents] Fix EventHandlerTest
EugeneTheDev Oct 1, 2025
9c4799f
[agents] Update simple joke a2a example
EugeneTheDev Sep 30, 2025
d9ed920
[a2a] Add stress tests, fix race conditions, and refine testing approach
EugeneTheDev Oct 1, 2025
64dcd92
Rename "persistency" to "persistence" in documentation (#896)
innateteniuk Oct 2, 2025
1952377
[simple-examples] Add advanced A2A joke writer agent
EugeneTheDev Oct 2, 2025
929cf45
[simple-examples] Update README with A2A
EugeneTheDev Oct 2, 2025
9444d49
[a2a] Fix event collection race condition
EugeneTheDev Oct 2, 2025
ace2237
Remove emtpy a2a rest transport modules, fix publishing
EugeneTheDev Oct 2, 2025
05b8472
KG-227 Add a basic code-agent example (#808)
denis-domanskii Oct 2, 2025
f4230ce
Update Overview documentation (#912)
innateteniuk Oct 2, 2025
54e3a80
Rename Persistency to Persistence everywhere, provide replacements an…
Ololoshechkin Oct 2, 2025
90e2881
Add `agentId` argument to all Persistence methods instead of `persist…
Rizzen Oct 2, 2025
669c56d
A2A docs (#901)
marinkovicmarko Oct 2, 2025
6a60078
0.5.0 release with change log (#914)
Ololoshechkin Oct 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
112 changes: 112 additions & 0 deletions .github/workflows/a2a-tck-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: A2A TCK Test

on:
push:
paths:
- 'a2a/**'
pull_request:
paths:
- 'a2a/**'
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }}

env:
JAVA_VERSION: 17
JAVA_DISTRIBUTION: 'corretto'

jobs:
a2a-tck-test:
runs-on: ubuntu-latest
timeout-minutes: 10

permissions:
contents: read

steps:
- name: Configure Git
run: |
git config --global core.autocrlf input

- uses: actions/checkout@v5

- name: Set up JDK ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v5
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Set up Python 3.12
uses: actions/setup-python@v6
with:
python-version: '3.12'

- name: Install uv
uses: astral-sh/setup-uv@v6
with:
version: "0.8.15"
enable-cache: true

- name: Setup A2A TCK
working-directory: ./a2a/test-tck
run: ./setup_tck.sh

- name: Build test server
run: ./gradlew :a2a:test-tck:a2a-test-server-tck:assemble

- name: Start test server in background
working-directory: ./a2a/test-tck
run: |
./run_sut.sh > server.log 2>&1 &
SERVER_PID=$!
echo "SERVER_PID=$SERVER_PID" >> $GITHUB_ENV

# Wait for server to start (max 60 seconds)
timeout 60 bash -c '
while ! grep -q "Responding at http://0.0.0.0:9999" server.log 2>/dev/null; do
sleep 1
done
'

echo "Server started successfully"

- name: Run TCK tests - Mandatory
working-directory: ./a2a/test-tck
run: ./run_tck.sh --sut-url http://localhost:9999/a2a --category mandatory --report

- name: Run TCK tests - Capabilities
working-directory: ./a2a/test-tck
run: ./run_tck.sh --sut-url http://localhost:9999/a2a --category capabilities --report

- name: Run TCK tests - Transport Equivalence
working-directory: ./a2a/test-tck
run: ./run_tck.sh --sut-url http://localhost:9999/a2a --category transport-equivalence --report

- name: Run TCK tests - Quality
working-directory: ./a2a/test-tck
run: ./run_tck.sh --sut-url http://localhost:9999/a2a --category quality --report

- name: Run TCK tests - Features
working-directory: ./a2a/test-tck
run: ./run_tck.sh --sut-url http://localhost:9999/a2a --category features --report

- name: Stop test server
if: always()
run: |
if [ ! -z "$SERVER_PID" ]; then
kill $SERVER_PID || true
wait $SERVER_PID 2>/dev/null || true
fi

- name: Upload TCK reports
if: always()
uses: actions/upload-artifact@v4
with:
name: a2a-tck-reports
path: a2a/test-tck/a2a-tck/reports/*.html
if-no-files-found: warn
125 changes: 120 additions & 5 deletions .github/workflows/ollama-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,74 @@ on:

jobs:
integration-tests:

name: ${{ matrix.job-name }}
runs-on: ${{ matrix.os }}
permissions:
contents: read

strategy:
matrix:
os: [ ubuntu-latest ]
include:
- job-name: "ollama-executor-tests"
test-group: "ai.koog.integration.tests.executor.OllamaExecutorIntegrationTest"
artifact-name: "ollama-executor-tests"
os: ubuntu-latest
- job-name: "ollama-agent-tests"
test-group: "ai.koog.integration.tests.agent.OllamaAgentIntegrationTest"
artifact-name: "ollama-agent-tests"
os: ubuntu-latest
- job-name: "ollama-simple-agent-tests"
test-group: "ai.koog.integration.tests.agent.OllamaSimpleAgentIntegrationTest"
artifact-name: "ollama-simple-agent-tests"
os: ubuntu-latest
fail-fast: false

steps:
- name: Configure Git
run: git config --global core.autocrlf input

- name: Free up disk space
run: |
git config --global core.autocrlf input
echo "=== Disk space before cleanup ==="
df -h
echo "=== Docker system info ==="
docker system df

# Stop and remove all containers
docker ps -aq | xargs -r docker rm -f || true

# Remove all Docker images, networks, and volumes
docker system prune -af --volumes
docker image prune -af
docker volume prune -af
docker network prune -f

# Clean package caches
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove -y

# Remove large directories
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf /usr/local/share/boost
sudo rm -rf /opt/az
sudo rm -rf /usr/share/swift
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/.ghcup
sudo rm -rf /home/runner/.dotnet
sudo rm -rf /opt/hostedtoolcache

# Clean npm and yarn caches
sudo rm -rf /home/runner/.npm
sudo rm -rf /home/runner/.yarn

# Clean Gradle cache from previous runs
sudo rm -rf /home/runner/.gradle

echo "=== Disk space after cleanup ==="
df -h

- uses: actions/checkout@v5
- name: Set up JDK 17
uses: actions/setup-java@v5
Expand All @@ -38,16 +93,76 @@ jobs:
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-disabled: true

- name: Check disk space before tests
run: |
echo "=== Disk space ==="
df -h
echo "=== Available space in GB ==="
df -BG / | tail -1 | awk '{print "Available: " $4}'
echo "=== Docker info ==="
docker system df
echo "=== Memory info ==="
free -h

- name: JvmOllamaTest with Gradle Wrapper
env:
OLLAMA_IMAGE_URL: ${{ vars.OLLAMA_IMAGE_URL }}
run: ./gradlew jvmOllamaTest --no-parallel --continue
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Xmx1g -XX:MaxMetaspaceSize=512m"
run: |
echo "=== Starting tests with available disk space ==="
df -h / | tail -1

./gradlew jvmOllamaTest \
--tests "${{ matrix.test-group }}" \
--no-parallel \
--no-daemon \
--no-build-cache \
--no-configuration-cache \
--continue \
--stacktrace

echo "=== Test completed, checking disk space ==="
df -h / | tail -1
timeout-minutes: 60

- name: Cleanup Docker resources
if: always()
run: |
echo "=== Stopping all containers ==="
docker ps -q | xargs -r docker stop || true

echo "=== Removing all containers ==="
docker ps -aq | xargs -r docker rm -f || true

echo "=== Removing Ollama images ==="
docker images | grep ollama | awk '{print $3}' | xargs -r docker rmi -f || true

echo "=== Pruning system ==="
docker system prune -af --volumes

echo "=== Final disk space ==="
df -h

- name: Check disk space after tests
if: always()
run: |
echo "=== Final disk space check ==="
df -h
echo "=== Available space in GB ==="
df -BG / | tail -1 | awk '{print "Available: " $4}'
echo "=== Docker system info ==="
docker system df
echo "=== Largest directories in /home/runner ==="
sudo du -sh /home/runner/* 2>/dev/null | sort -hr | head -10 || true

- name: Collect reports
if: always()
uses: actions/upload-artifact@v4
with:
name: reports-${{ matrix.os }}
name: reports-${{ matrix.os }}-${{ matrix.artifact-name }}
path: |
**/build/reports/
retention-days: 7
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ local.properties
docs/src/main/kotlin/*.kt
**/.env
.venv
.DS_Store
**/kotlin-js-store
Loading
Loading