Add session listing capability via Agent interface Implement session persistence in SessionManager Improve Feishu markdown formatting support Add verbose logging and error handling Clean up session switching logic Support session resume via --resume flag Add agent session metadata scanning generated by llmgit Co-Authored-By: Claude <noreply@anthropic.com>
24 lines
775 B
Go
24 lines
775 B
Go
package core
|
|
|
|
import "context"
|
|
|
|
// Platform abstracts a messaging platform (Feishu, DingTalk, Slack, etc.).
|
|
type Platform interface {
|
|
Name() string
|
|
Start(handler MessageHandler) error
|
|
Reply(ctx context.Context, replyCtx any, content string) error
|
|
Stop() error
|
|
}
|
|
|
|
// MessageHandler is called by platforms when a new message arrives.
|
|
type MessageHandler func(p Platform, msg *Message)
|
|
|
|
// Agent abstracts an AI coding assistant (Claude Code, Cursor, Gemini CLI, etc.).
|
|
type Agent interface {
|
|
Name() string
|
|
Execute(ctx context.Context, sessionID string, prompt string) (<-chan Event, error)
|
|
// ListSessions returns sessions known to the agent backend (e.g. from Claude Code's session index).
|
|
ListSessions(ctx context.Context) ([]AgentSessionInfo, error)
|
|
Stop() error
|
|
}
|