- Document that the framework always prepends DEFAULT_SYSTEM_PROMPT before the
component systemPrompt(), and its behavioral implications.
- Correct §7.6: skillBox.codeExecution() is enabled and bound to the conversation
workspace; add the related security note in §7.6 and §10.
- Update §7.4 for container-based DI of skill tools (no-arg ctor is only a
fallback) and native YAML inline-list tools; drop the dead SkillToolManifest
reference and add a troubleshooting row for instantiation failure.
- Add §5.6 covering the AgentSessionFactory SPI for custom persistence backends.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Switch SkillBoxFactory to SkillToolResolver, which resolves tool classes from
the framework container (enabling DI) and falls back to no-arg reflection,
resolving tools per AgentSkill instead of by name.
- Remove the obsolete SkillToolManifest.
- Move ReActAgentComponentTest from liteflow-react-agent-core to
liteflow-testcase-el per the test-placement convention.
- Drop the temporary surefire skipTests=false override in react-agent-core.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The root POM hardcodes skipTests=true in pluginManagement. Override
at module level with ${maven.test.skip} so tests actually execute
when invoked.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add ChatUsageTrackingHook that accumulates ChatUsage from every
PostReasoningEvent within a single process() call, expose it via
ReActAgentContext#getChatUsage(), and emit a per-step usage line in
ReActLoggingHook. The hook is cached on AgentSession and reset at the
start of each process() so the snapshot reflects the full invocation
(not just the last reasoning step).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add DEFAULT_SYSTEM_PROMPT and effectiveSystemPrompt() to ReActAgentComponent
- Block unsupported shell syntax (pipes, redirections, chaining) in ManagedShellCommandTool
- Fix process I/O to prevent hangs when command waits for stdin
- Fix missing sessionId in ReActLoggingHook result log line
- Introduce FakeEchoModel for deterministic local testing
- Add unit tests for ReActAgentComponent, ReActLoggingHook, and shell syntax rejection
- Remove LiveTestSupport credential skip calls from feature tests
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Update all calling sites of truncate() method to pass the max length
parameter as required by the updated method signature.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The truncate method now accepts a maxLen parameter instead of using
the hardcoded MAX_TEXT_LEN constant. This allows different types of
content to use different truncation lengths. Note: calling sites will
need to be updated to pass the maxLen parameter.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass the ReAct agent context workspace directory through SkillBoxFactory
so SkillBox's code execution runs against the conversation workspace
instead of the process default.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Remove the maven-surefire-plugin skipTests=false override in
liteflow-testcase-el-react-agent, leaving the test module to inherit
the parent configuration.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Register liteflow.agent.skills.{enabled,path,strict} and the
openai-compatible / anthropic-compatible credential maps in the
additional-spring-configuration-metadata.json of both Spring Boot
starters so IDEs surface completion and type hints for these keys.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add notes on framework integration prerequisites, event listener
threading, build-time capability methods, session reuse semantics,
built-in tool risks, and two new troubleshooting entries.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add focused feature suites under react-agent test resources for
conversation/agentKey isolation, compatible-custom platform handshake,
managed shell mode, workspace file tools, skills loading, and a live
platform connectivity probe — each with its own EL chain, properties,
and prepare/record components.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Introduce FlowEvent/FlowEventListener/FlowEventPublisher on the Slot so
callers can subscribe via ExecuteOption.eventListener and receive
incremental events while a chain is running. ReActAgentComponent wires
agentscope reasoning/tool_result/summary/result events into this channel
when a listener is registered, keeping the non-listener path as a plain
blocking call.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Reflect the session management refactor from single sessionId to
(conversationId, agentKey) dual-key: update all hook signatures to
parameterless style with ctx(), add curl/wget to shell whitelist,
and remove obsolete SlotAttachmentTest.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>