agenttest

package
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssertAgentRPCError

func AssertAgentRPCError(t testing.TB, err error, code rpc.Code)

func CollectAllEvents

func CollectAllEvents(t testing.TB, recv agentapi.EventReceiver) []agentapi.AgentEvent

func DrainReceiver

func DrainReceiver(t testing.TB, recv agentapi.EventReceiver)

func GenerateAgentMessageRecord

func GenerateAgentMessageRecord(t *rapid.T, turn int) agentapi.AgentMessageRecord

func GenerateConversationLog

func GenerateConversationLog(t *rapid.T, maxLen int) []agentapi.AgentMessageRecord

func NewDriverFactory

func NewDriverFactory(resolve func(driverName string, cfg agent.DriverConfig) (*MockAgentDriver, error)) func(string, agent.DriverConfig) (agent.AgentDriver, error)

NewDriverFactory returns a name-aware factory for service.SetDriverFactory.

func WaitForReceiverEOF

func WaitForReceiverEOF(recv agentapi.EventReceiver, timeout time.Duration) error

Types

type AgentTestStack

type AgentTestStack struct {
	Service       *agent.AgentLoopService
	RPCServer     *rpcserver.AgentRPCServer
	Client        *rpcclient.AgentServiceClient
	Publisher     *MockEventPublisher
	DriverFactory *MockDriverFactory

	Provider string
	Model    string
	// contains filtered or unexported fields
}

AgentTestStack wires AgentLoopService + AgentRPCServer + AgentServiceClient.

func NewAgentTestStack

func NewAgentTestStack(t testing.TB, opts ...agent.ServiceOption) *AgentTestStack

func (*AgentTestStack) BaseConfig

func (s *AgentTestStack) BaseConfig(sessionID string) agentapi.SessionConfig

func (*AgentTestStack) Close

func (s *AgentTestStack) Close() error

func (*AgentTestStack) CreateAgentSession

func (s *AgentTestStack) CreateAgentSession(ctx context.Context, sessionID string) (*agentapi.CreateAgentSessionResponse, error)

type MockAgentDriver

type MockAgentDriver struct {
	TurnScript     []agent.AgentEvent
	TurnDelay      time.Duration
	ToolCallScript []ToolCallEntry
	BlockOnStart   chan struct{}
	PanicOnStart   bool
	// contains filtered or unexported fields
}

MockAgentDriver implements agent.AgentDriver for AgentLoopService tests.

func (*MockAgentDriver) Resume

func (d *MockAgentDriver) Resume(ctx context.Context, sess *agent.Session) error

func (*MockAgentDriver) SetResumeError

func (d *MockAgentDriver) SetResumeError(err error)

func (*MockAgentDriver) SetStartError

func (d *MockAgentDriver) SetStartError(err error)

func (*MockAgentDriver) Start

func (d *MockAgentDriver) Start(ctx context.Context, sess *agent.Session, prompt string) error

func (*MockAgentDriver) StartCount

func (d *MockAgentDriver) StartCount() int

func (*MockAgentDriver) Stop

func (d *MockAgentDriver) Stop(ctx context.Context) error

func (*MockAgentDriver) StopCount

func (d *MockAgentDriver) StopCount() int

func (*MockAgentDriver) Subscribe

func (d *MockAgentDriver) Subscribe(fn func(agent.AgentEvent)) func()

type MockDriverFactory

type MockDriverFactory struct {
	// contains filtered or unexported fields
}

MockDriverFactory routes session IDs to configurable MockAgentDrivers.

func NewMockDriverFactory

func NewMockDriverFactory() *MockDriverFactory

func (*MockDriverFactory) Create

func (*MockDriverFactory) SetDriver

func (f *MockDriverFactory) SetDriver(sessionID string, driver *MockAgentDriver)

type MockEventPublisher

type MockEventPublisher struct {
	// contains filtered or unexported fields
}

MockEventPublisher records all published events by session.

func (*MockEventPublisher) EventsForSession

func (p *MockEventPublisher) EventsForSession(sessionID string) []agent.AgentEvent

func (*MockEventPublisher) Publish

func (p *MockEventPublisher) Publish(sessionID string, evt agent.AgentEvent)

type ToolCallEntry

type ToolCallEntry struct {
	ToolName  string
	Arguments map[string]any
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL