Skip to content

Conversation

@tombee
Copy link
Owner

@tombee tombee commented Jan 8, 2026

Summary

  • Add StreamingTool interface for real-time output during long-running operations
  • Implement streaming in shell tool with line-buffered stdout/stderr
  • Add EventToolOutput event type for UI/agent consumption
  • Add sensitive data redaction for AWS keys, tokens, passwords
  • Integrate with agent step context for tool output visibility

Implements SPEC-5.

Test plan

  • Unit tests for StreamingTool interface
  • Unit tests for shell tool streaming
  • Integration tests for multi-second commands
  • Redaction tests for sensitive patterns
  • Memory and concurrency tests
  • All existing tests pass

Files Changed

  • pkg/tools/registry.go - StreamingTool interface, ToolChunk type
  • pkg/tools/builtin/shell.go - ExecuteStream implementation
  • pkg/tools/redact.go - Sensitive data redaction
  • sdk/events.go - EventToolOutput event type
  • sdk/tool.go - SDK streaming support
  • pkg/agent/agent.go - Agent streaming integration

Implements streaming support for tool execution, enabling real-time output
visibility for long-running operations like shell commands.

- Add StreamingTool interface with ExecuteStream method returning ToolChunk channel
- Add EventToolOutput event type for streaming output events
- Implement sensitive data redaction (AWS keys, tokens, passwords, URLs)
- Add shell tool streaming with line-buffered output and 4KB binary fallback
- Update SDK tool adapter to support streaming
- Add agent integration with ToolOutputChunks field in step context
- Add comprehensive unit and integration tests
@tombee tombee merged commit 0905f99 into main Jan 8, 2026
1 of 4 checks passed
@tombee tombee deleted the spec/SPEC-5 branch January 8, 2026 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants