Files
gnoma/internal/stream/stream.go
vikingowl 85c643fdca feat: add foundation types, streaming, and provider interface
internal/message/ — Content discriminated union, Message, Usage,
StopReason, Response. 22 tests.

internal/stream/ — Stream pull-based iterator interface, Event types,
Accumulator (assembles Response from events). 8 tests.

internal/provider/ — Provider interface, Request, ToolDefinition,
Registry with factory pattern, ProviderError with HTTP status
classification. errors.AsType[E] for Go 1.26. 13 tests.

43 tests total, all passing.
2026-04-03 10:57:54 +02:00

26 lines
660 B
Go

package stream
// Stream is the unified pull-based iterator over provider events.
// All provider implementations produce this interface.
//
// Usage:
//
// for s.Next() {
// event := s.Current()
// process(event)
// }
// if err := s.Err(); err != nil {
// handle(err)
// }
// s.Close()
type Stream interface {
// Next advances to the next event. Returns false when exhausted or errored.
Next() bool
// Current returns the most recent event. Only valid after Next() returns true.
Current() Event
// Err returns the first error encountered, or nil.
Err() error
// Close releases resources. Must be called after consumption.
Close() error
}