diff options
| author | adamdottv <[email protected]> | 2025-05-28 10:12:08 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-05-28 15:36:35 -0500 |
| commit | 5e738ce7d3b66b88a407a1bcc53a5169d0f4a904 (patch) | |
| tree | 5c7a6ac13ebb60946e7c88f7d0e04df766edf94a /internal/app/interfaces.go | |
| parent | 641e9ff6642ef7b55928ef235f54d53822045baf (diff) | |
| download | opencode-5e738ce7d3b66b88a407a1bcc53a5169d0f4a904.tar.gz opencode-5e738ce7d3b66b88a407a1bcc53a5169d0f4a904.zip | |
wip: refactoring tui
Diffstat (limited to 'internal/app/interfaces.go')
| -rw-r--r-- | internal/app/interfaces.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/internal/app/interfaces.go b/internal/app/interfaces.go new file mode 100644 index 000000000..2f4287078 --- /dev/null +++ b/internal/app/interfaces.go @@ -0,0 +1,42 @@ +package app + +import ( + "context" + "time" + + "github.com/sst/opencode/internal/message" + "github.com/sst/opencode/internal/pubsub" + "github.com/sst/opencode/internal/session" +) + +// SessionService defines the interface for session operations +type SessionService interface { + Create(ctx context.Context, title string) (session.Session, error) + Get(ctx context.Context, id string) (session.Session, error) + List(ctx context.Context) ([]session.Session, error) + Update(ctx context.Context, id, title string) error + Delete(ctx context.Context, id string) error +} + +// MessageService defines the interface for message operations +type MessageService interface { + pubsub.Subscriber[message.Message] + + GetBySession(ctx context.Context, sessionID string) ([]message.Message, error) + List(ctx context.Context, sessionID string) ([]message.Message, error) + Create(ctx context.Context, sessionID string, params message.CreateMessageParams) (message.Message, error) + Update(ctx context.Context, msg message.Message) (message.Message, error) + Delete(ctx context.Context, id string) error + DeleteSessionMessages(ctx context.Context, sessionID string) error + Get(ctx context.Context, id string) (message.Message, error) + ListAfter(ctx context.Context, sessionID string, timestamp time.Time) ([]message.Message, error) +} + +// AgentService defines the interface for agent operations +type AgentService interface { + Run(ctx context.Context, sessionID string, text string, attachments ...message.Attachment) (string, error) + Cancel(sessionID string) error + IsBusy() bool + IsSessionBusy(sessionID string) bool + CompactSession(ctx context.Context, sessionID string, force bool) error +}
\ No newline at end of file |
