Repository navigation
refactor: decouple ARGI runtime from model SDKs - #152
Conversation
Introduce JDK-only argi-api contracts and four optional ChatClient adapters with Spring Boot auto-configuration. Migrate Graph, ReAct, built-in nodes and Studio to neutral model and tool contracts without legacy builder aliases. Group adapters and starters, verify independent API consumers and enforce SDK isolation across production sources, bytecode and runtime dependency trees. Add gated real-model integration tests and release dependency auditing.
Preserve upstream argument resource limits and local reference validation.\nAdapt the new gate regression tests to the framework-neutral ToolRegistry.
Review: decouple ARGI runtime from model SDKsThanks for this PR — the direction is right and the engineering quality is high. I reviewed the neutral API, all four adapters, the agent-framework runtime rework, serialization, and the build/CI changes against What's done well
Major issues1. Existing checkpoints are silently corrupted after upgrade — no migration path, no warning, no documented statementBase's
The degraded maps then flow into There is no legacy→neutral converter anywhere, and no test reads a legacy payload ( Related: 2. CI workflow: PR-specific trigger and removed repo guard are now shared-config liabilities
Suggest restoring the guard (at least for jobs that execute local actions/scripts) and dropping the 3. Cross-adapter reasoning metadata is inconsistent — the neutral layer is missing the standard it exists to provideSpring AI puts reasoning at message level under 4. Strict "final text must prefix-match streamed deltas" validation is implemented in three layers and is fragile against provider normalization
5. OSV dependency audit is fail-closed with no suppression mechanism, and UNKNOWN severity blocks
6. Dynamic tool-binding snapshots fail closed across process restarts — please document the operational consequence
7. Cross-repo compatibility gates removed;
|
Conflict resolution notes: - ToolCallResponse: kept main's from(ToolCall, ToolResult) factory and merged the duplicated ERROR_STATUS constant into one declaration with the ToolOutcome javadoc. - AgentToolNode: main's agentic-ai-java#152 refactor removed the ToolExecutionExceptionProcessor path entirely (it was the null-status pseudo-success path T38 targeted); the old sync catch blocks and processedFailureResponse helper were dropped in favour of the new neutral ToolResult error contract. - AgentToolNodeFailureMetadataTest: took main's rewritten CompletionException test (already asserts ERROR_STATUS) and added an async symmetric case for the sync/async consistency acceptance criterion. Full regression after merge: only pre-existing Windows failures remain (FileSystemStoreTest x3, ArgiSkillChatClientTest/SkillPromptTemplateTest x3/ PromptTemplateTest x1 reproduce identically on clean origin/main ee72a72).
upgrade.