a3581abf84
Major additions: * :proto (KMP submodule) — in-house stateful protocol replacing AG-UI. Agent owns conversation transcript; Conversation.events(after) is a live, replay-free stream; backfill via Conversation.getMessages(after, offset, limit). Each Event carries an Instant date for client-side resume tracking. Sealed hierarchies (Content/Message/Event/AgentEvent) annotated @Serializable with snake_case @SerialName JSON discriminators so the wire format is decoupled from Kotlin class names. * :server (JVM, Ktor 3.1.3) — REST+SSE facade for Agent. Public entry: Route.agentikAgent(agent, path = "/agentik"). Endpoints: create/list/get/patch/delete conversations, POST messages (202), POST interrupt, GET messages, GET conversation events (SSE), GET agent events (SSE), GET /health. Custom Instant serializer for kotlin.time.Instant registered contextually on agentikJson (ISO-8601, ignoreUnknownKeys=true, explicitNulls=false). * :client (JVM, Ktor HTTP Client + CIO) — mirror of :server returning a pw.binom.agentik.proto.Agent backed by HTTP calls. Custom SSE parser since ktor-client-sse is not on the 3.1.3 client classpath. * standalone — EchoProtoAgent (in-memory Agent for :proto), EchoAgent (existing AG-UI echo), both mounted on the same Netty embedded server on port 8080 (/agui and /agentik); A2A stays on its own CIO engine on 8081. EchoProtoAgent smoke-tested end-to-end against :server: all 11 endpoints, including live SSE delivery of StartResponse/AppendText/End event triplets and Agent-level Created/Deleted events. Design notes pinned in: * agentik/IRC-QUESTIONS.md — closed 13-item checklist for the upcoming :irc-server transport (channel = conversation, CTCP for structural events, draft/chathistory for backfill, ImageStore side-channel, etc). * docs/ARCHITECTURE.md — overall layout snapshot.
93 lines
2.7 KiB
Batchfile
93 lines
2.7 KiB
Batchfile
@rem
|
|
@rem Copyright 2015 the original author or authors.
|
|
@rem
|
|
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
@rem you may not use this file except in compliance with the License.
|
|
@rem You may obtain a copy of the License at
|
|
@rem
|
|
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
@rem
|
|
@rem Unless required by applicable law or agreed to in writing, software
|
|
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
@rem See the License for the specific language governing permissions and
|
|
@rem limitations under the License.
|
|
@rem
|
|
|
|
@if "%DEBUG%"=="" @echo off
|
|
@rem ##########################################################################
|
|
@rem
|
|
@rem Gradle startup script for Windows
|
|
@rem
|
|
@rem ##########################################################################
|
|
|
|
@rem Set local scope for the variables with windows NT shell
|
|
if "%OS%"=="Windows_NT" setlocal
|
|
|
|
set DIRNAME=%~dp0
|
|
if "%DIRNAME%"=="" set DIRNAME=.
|
|
@rem This is normally unused
|
|
set APP_BASE_NAME=%~n0
|
|
set APP_HOME=%DIRNAME%
|
|
|
|
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
|
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
|
|
@rem Find java.exe
|
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
|
|
set JAVA_EXE=java.exe
|
|
%JAVA_EXE% -version >NUL 2>&1
|
|
if %ERRORLEVEL% equ 0 goto execute
|
|
|
|
echo.
|
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
echo.
|
|
echo Please set the JAVA_HOME variable in your environment to match the
|
|
echo location of your Java installation.
|
|
|
|
goto fail
|
|
|
|
:findJavaFromJavaHome
|
|
set JAVA_HOME=%JAVA_HOME:"=%
|
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
|
|
if exist "%JAVA_EXE%" goto execute
|
|
|
|
echo.
|
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
echo.
|
|
echo Please set the JAVA_HOME variable in your environment to match the
|
|
echo location of your Java installation.
|
|
|
|
goto fail
|
|
|
|
:execute
|
|
@rem Setup the command line
|
|
|
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
|
|
|
|
@rem Execute Gradle
|
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
|
|
|
:end
|
|
@rem End local scope for the variables with windows NT shell
|
|
if %ERRORLEVEL% equ 0 goto mainEnd
|
|
|
|
:fail
|
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
rem the _cmd.exe /c_ return code!
|
|
set EXIT_CODE=%ERRORLEVEL%
|
|
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
|
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
|
exit /b %EXIT_CODE%
|
|
|
|
:mainEnd
|
|
if "%OS%"=="Windows_NT" endlocal
|
|
|
|
:omega
|