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.
26 lines
660 B
Go
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
|
|
}
|