Documentation
¶
Overview ¶
Package opencode registers MCP tools that delegate work to an opencode server.
Index ¶
- func Register(s *mcp.Server, client *Client, mgr *Manager)
- type Agent
- type AgentsResult
- type Client
- func (c *Client) Agents(ctx context.Context, loc Location) ([]Agent, error)
- func (c *Client) BaseURL() string
- func (c *Client) Context(ctx context.Context, _ Location, sessionID string) (json.RawMessage, error)
- func (c *Client) CreateSession(ctx context.Context, loc Location, req CreateSessionRequest) (Session, error)
- func (c *Client) Health(ctx context.Context) (json.RawMessage, error)
- func (c *Client) Messages(ctx context.Context, _ Location, sessionID string) (json.RawMessage, error)
- func (c *Client) PermissionReply(ctx context.Context, _ Location, sessionID, requestID, reply, message string) (json.RawMessage, error)
- func (c *Client) Permissions(ctx context.Context, loc Location, _ string) (json.RawMessage, error)
- func (c *Client) Prompt(ctx context.Context, loc Location, sessionID string, req PromptRequest) (json.RawMessage, error)
- func (c *Client) ProvidersAndModels(ctx context.Context, loc Location) (ModelsResult, error)
- func (c *Client) QuestionReply(ctx context.Context, _ Location, sessionID, requestID string, reject bool, ...) (json.RawMessage, error)
- func (c *Client) Questions(ctx context.Context, loc Location, _ string) (json.RawMessage, error)
- func (c *Client) SessionPermissionRequests(ctx context.Context, _ Location, sessionID string) ([]map[string]any, error)
- func (c *Client) SessionQuestionRequests(ctx context.Context, loc Location, sessionID string) ([]map[string]any, error)
- func (c *Client) Sessions(ctx context.Context, req SessionsRequest) (SessionsResult, error)
- func (c *Client) SyncTimeout() time.Duration
- func (c *Client) Wait(ctx context.Context, _ Location, sessionID string) error
- type Config
- type CreateSessionRequest
- type CreateSessionResult
- type HandoffCheckResult
- type HandoffFireResult
- type HealthResult
- type Job
- type JobStatus
- type Location
- type Manager
- type ManagerOptions
- type MessageSummary
- type ModelSummary
- type ModelsResult
- type PermissionReplyResult
- type PromptPayload
- type PromptRequest
- type ProviderSummary
- type QuestionReplyResult
- type RequestSummary
- type RequestsResult
- type Session
- type SessionsRequest
- type SessionsResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AgentsResult ¶
type AgentsResult struct {
Agents []Agent `json:"agents"`
}
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client calls opencode HTTP API endpoints via the generated client.
func (*Client) CreateSession ¶
func (*Client) Messages ¶
func (c *Client) Messages(ctx context.Context, _ Location, sessionID string) (json.RawMessage, error)
Messages returns the raw message array for a session using the v1 GET /session/{id}/message endpoint. The v2 /api/session/{id}/message endpoint returns only event stream items (e.g. agent-switched) and does not include user/assistant message text.
func (*Client) PermissionReply ¶
func (*Client) Permissions ¶
func (*Client) Prompt ¶
func (c *Client) Prompt(ctx context.Context, loc Location, sessionID string, req PromptRequest) (json.RawMessage, error)
func (*Client) ProvidersAndModels ¶
func (*Client) QuestionReply ¶
func (*Client) SessionPermissionRequests ¶
func (*Client) SessionQuestionRequests ¶
func (*Client) Sessions ¶
func (c *Client) Sessions(ctx context.Context, req SessionsRequest) (SessionsResult, error)
func (*Client) SyncTimeout ¶
type Config ¶
type Config struct {
BaseURL string
Username string
Password string
DefaultDirectory string
// SyncTimeout is the timeout for blocking prompt calls (session message POST).
// If zero, the general request timeout is used.
SyncTimeout time.Duration
// APILogger, when non-nil, logs every HTTP request and response body at
// debug level. Useful for debugging opencode API calls.
APILogger *slog.Logger
}
Config contains connection settings for an opencode HTTP server.
type CreateSessionRequest ¶
type CreateSessionResult ¶
type HandoffCheckResult ¶
type HandoffCheckResult struct {
SessionID string `json:"session_id"`
Status string `json:"status,omitempty"`
FinalText string `json:"final_text,omitempty"`
PendingPermissions []RequestSummary `json:"pending_permissions,omitempty"`
PendingQuestions []RequestSummary `json:"pending_questions,omitempty"`
JobError string `json:"job_error,omitempty"`
Errors []string `json:"errors,omitempty"`
Messages []MessageSummary `json:"messages,omitempty"`
}
type HandoffFireResult ¶
type HandoffFireResult struct {
SessionID string `json:"session_id"`
PromptMessageID string `json:"prompt_message_id,omitempty"`
Message string `json:"message,omitempty"`
PendingPermissions []RequestSummary `json:"pending_permissions,omitempty"`
PendingQuestions []RequestSummary `json:"pending_questions,omitempty"`
Errors []string `json:"errors,omitempty"`
}
type HealthResult ¶
type HealthResult struct {
OK bool `json:"ok"`
BaseURL string `json:"base_url"`
Data json.RawMessage `json:"-"`
Message string `json:"message,omitempty"`
}
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func NewManager(ctx context.Context, client *Client, opts ManagerOptions) *Manager
type ManagerOptions ¶
type MessageSummary ¶
type ModelSummary ¶
type ModelsResult ¶
type ModelsResult struct {
Providers []ProviderSummary `json:"providers,omitempty"`
Models []ModelSummary `json:"models,omitempty"`
}
type PermissionReplyResult ¶
type PermissionReplyResult struct {
OK bool `json:"ok"`
Data json.RawMessage `json:"-"`
PendingPermissions []RequestSummary `json:"pending_permissions,omitempty"`
PendingQuestions []RequestSummary `json:"pending_questions,omitempty"`
Errors []string `json:"errors,omitempty"`
}
type PromptPayload ¶
type PromptPayload struct {
Text string `json:"text"`
}
type PromptRequest ¶
type PromptRequest struct {
Prompt PromptPayload `json:"prompt"`
Agent string `json:"agent,omitempty"`
}
type ProviderSummary ¶
type QuestionReplyResult ¶
type QuestionReplyResult struct {
OK bool `json:"ok"`
Data json.RawMessage `json:"-"`
PendingPermissions []RequestSummary `json:"pending_permissions,omitempty"`
PendingQuestions []RequestSummary `json:"pending_questions,omitempty"`
Errors []string `json:"errors,omitempty"`
}
type RequestSummary ¶
type RequestsResult ¶
type RequestsResult struct {
Requests []RequestSummary `json:"requests"`
Count int `json:"count"`
}
type SessionsRequest ¶
type SessionsRequest struct {
Location
}
type SessionsResult ¶
type SessionsResult struct {
Sessions []Session `json:"sessions"`
}
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Code generated by ogen, DO NOT EDIT.
|
Code generated by ogen, DO NOT EDIT. |
Click to show internal directories.
Click to hide internal directories.