Versions in this module Expand all Collapse all v0 v0.0.3 Mar 26, 2026 v0.0.1 Mar 24, 2026 Changes in this version + const FlowOpenCodeManaged + const FlowOpenCodeRemote + const OpenCodeModeManaged + const OpenCodeModeManagedLauncher + const OpenCodeModeRemote + const ProviderOpenCode + var ErrUnavailable = bridgeError("OpenCode integration is not available") + func BuildDataPartMap(part api.Part) map[string]any + func OpenCodeInstanceID(baseURL, username string) string + func OpenCodeManagedInstanceID(loginID, directory string) string + func OpenCodeManagedLauncherID(loginID string) string + func OpenCodePortalKey(loginID networkid.UserLoginID, instanceID, sessionID string) networkid.PortalKey + func OpenCodeUserID(instanceID string) networkid.UserID + func ParseOpenCodeGhostID(ghostID string) (string, bool) + func ParseOpenCodeIdentifier(identifier string) (string, bool) + type Bridge struct + func NewBridge(host Host) *Bridge + func (b *Bridge) AbortSession(ctx context.Context, instanceID, sessionID string) error + func (b *Bridge) ApprovalHandler() agentremote.ApprovalReactionHandler + func (b *Bridge) CreateSessionChat(ctx context.Context, instanceID, title string, pendingTitle bool) (*bridgev2.CreateChatResponse, error) + func (b *Bridge) DisconnectAll() + func (b *Bridge) DisplayName(instanceID string) string + func (b *Bridge) EnsureGhostDisplayName(ctx context.Context, instanceID string) + func (b *Bridge) FetchMessages(ctx context.Context, params bridgev2.FetchMessagesParams) (*bridgev2.FetchMessagesResponse, error) + func (b *Bridge) HandleMatrixDeleteChat(ctx context.Context, msg *bridgev2.MatrixDeleteChat) error + func (b *Bridge) HandleMatrixMessage(ctx context.Context, msg *bridgev2.MatrixMessage, portal *bridgev2.Portal, ...) (*bridgev2.MatrixMessageResponse, error) + func (b *Bridge) InstanceConfig(instanceID string) *OpenCodeInstance + func (b *Bridge) ReIDPortalToSession(ctx context.Context, portal *bridgev2.Portal, instanceID, sessionID string) (*bridgev2.Portal, error) + func (b *Bridge) RestoreConnections(ctx context.Context) error + type Config struct + Bridge bridgeconfig.BridgeConfig + OpenCode OpenCode + type GhostMetadata struct + type Host interface + BackgroundContext func(ctx context.Context) context.Context + CleanupPortal func(ctx context.Context, portal *bridgev2.Portal, reason string) + DefaultAgentID func() string + DownloadAndEncodeMedia func(ctx context.Context, mediaURL string, file *event.EncryptedFileInfo, maxMB int) (string, string, error) + EmitOpenCodeStreamEvent func(ctx context.Context, portal *bridgev2.Portal, turnID, agentID string, ...) + FinishOpenCodeStream func(turnID string) + GetUserLogin func() *bridgev2.UserLogin + HumanUserID func(loginID networkid.UserLoginID) networkid.UserID + Log func() *zerolog.Logger + OpenCodeInstances func() map[string]*OpenCodeInstance + PortalMeta func(portal *bridgev2.Portal) *PortalMeta + SaveOpenCodeInstances func(ctx context.Context, instances map[string]*OpenCodeInstance) error + SavePortal func(ctx context.Context, portal *bridgev2.Portal) error + SendSystemNotice func(ctx context.Context, portal *bridgev2.Portal, msg string) + SenderForOpenCode func(instanceID string, fromMe bool) bridgev2.EventSender + SetPortalMeta func(portal *bridgev2.Portal, meta *PortalMeta) + SetRoomName func(ctx context.Context, portal *bridgev2.Portal, name string) error + type MessageMetadata struct + Agent string + Cost float64 + ErrorText string + MessageID string + Mode string + ModelID string + ParentMessageID string + ProviderID string + SessionID string + TotalTokens int64 + func (mm *MessageMetadata) CopyFrom(other any) + type MessageMetadataParams struct + Agent string + AgentID string + Body string + CompletedAtMs int64 + CompletionTokens int64 + Cost float64 + ErrorText string + FinishReason string + MessageID string + Mode string + ModelID string + ParentMessageID string + PromptTokens int64 + ProviderID string + ReasoningTokens int64 + Role string + SessionID string + StartedAtMs int64 + TotalTokens int64 + TurnID string + UIMessage map[string]any + type OpenCode struct + Enabled *bool + type OpenCodeClient struct + UserLogin *bridgev2.UserLogin + func (oc *OpenCodeClient) CleanupPortal(ctx context.Context, portal *bridgev2.Portal, reason string) + func (oc *OpenCodeClient) Connect(ctx context.Context) + func (oc *OpenCodeClient) DefaultAgentID() string + func (oc *OpenCodeClient) Disconnect() + func (oc *OpenCodeClient) DownloadAndEncodeMedia(ctx context.Context, mediaURL string, file *event.EncryptedFileInfo, maxMB int) (string, string, error) + func (oc *OpenCodeClient) EmitOpenCodeStreamEvent(ctx context.Context, portal *bridgev2.Portal, turnID, agentID string, ...) + func (oc *OpenCodeClient) FetchMessages(ctx context.Context, params bridgev2.FetchMessagesParams) (*bridgev2.FetchMessagesResponse, error) + func (oc *OpenCodeClient) FinishOpenCodeStream(turnID string) + func (oc *OpenCodeClient) GetApprovalHandler() agentremote.ApprovalReactionHandler + func (oc *OpenCodeClient) GetCapabilities(_ context.Context, _ *bridgev2.Portal) *event.RoomFeatures + func (oc *OpenCodeClient) GetChatInfo(_ context.Context, portal *bridgev2.Portal) (*bridgev2.ChatInfo, error) + func (oc *OpenCodeClient) GetContactList(ctx context.Context) ([]*bridgev2.ResolveIdentifierResponse, error) + func (oc *OpenCodeClient) GetUserInfo(_ context.Context, ghost *bridgev2.Ghost) (*bridgev2.UserInfo, error) + func (oc *OpenCodeClient) GetUserLogin() *bridgev2.UserLogin + func (oc *OpenCodeClient) HandleMatrixDeleteChat(ctx context.Context, msg *bridgev2.MatrixDeleteChat) error + func (oc *OpenCodeClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.MatrixMessage) (*bridgev2.MatrixMessageResponse, error) + func (oc *OpenCodeClient) HumanUserID(loginID networkid.UserLoginID) networkid.UserID + func (oc *OpenCodeClient) Log() *zerolog.Logger + func (oc *OpenCodeClient) LogoutRemote(_ context.Context) + func (oc *OpenCodeClient) OpenCodeInstances() map[string]*OpenCodeInstance + func (oc *OpenCodeClient) PortalMeta(portal *bridgev2.Portal) *PortalMeta + func (oc *OpenCodeClient) ResolveIdentifier(ctx context.Context, identifier string, createChat bool) (*bridgev2.ResolveIdentifierResponse, error) + func (oc *OpenCodeClient) SaveOpenCodeInstances(ctx context.Context, instances map[string]*OpenCodeInstance) error + func (oc *OpenCodeClient) SavePortal(ctx context.Context, portal *bridgev2.Portal) error + func (oc *OpenCodeClient) SearchUsers(ctx context.Context, query string) ([]*bridgev2.ResolveIdentifierResponse, error) + func (oc *OpenCodeClient) SendSystemNotice(ctx context.Context, portal *bridgev2.Portal, msg string) + func (oc *OpenCodeClient) SenderForOpenCode(instanceID string, fromMe bool) bridgev2.EventSender + func (oc *OpenCodeClient) SetPortalMeta(portal *bridgev2.Portal, meta *PortalMeta) + func (oc *OpenCodeClient) SetRoomName(_ context.Context, _ *bridgev2.Portal, _ string) error + func (oc *OpenCodeClient) SetUserLogin(login *bridgev2.UserLogin) + type OpenCodeConnector struct + Config Config + func NewConnector() *OpenCodeConnector + type OpenCodeInstance struct + BinaryPath string + DefaultDirectory string + HasPassword bool + ID string + LauncherID string + Mode string + Password string + URL string + Username string + WorkingDirectory string + type OpenCodeLogin struct + Connector *OpenCodeConnector + FlowID string + User *bridgev2.User + func (ol *OpenCodeLogin) Start(_ context.Context) (*bridgev2.LoginStep, error) + func (ol *OpenCodeLogin) SubmitUserInput(ctx context.Context, input map[string]string) (*bridgev2.LoginStep, error) + type OpenCodeManager struct + func NewOpenCodeManager(bridge *Bridge) *OpenCodeManager + func (m *OpenCodeManager) AbortSession(ctx context.Context, instanceID, sessionID string) error + func (m *OpenCodeManager) Connect(ctx context.Context, baseURL, password, username string) (*openCodeInstance, int, error) + func (m *OpenCodeManager) CreateSession(ctx context.Context, instanceID, title, directory string) (*api.Session, error) + func (m *OpenCodeManager) DeleteSession(ctx context.Context, instanceID, sessionID string) error + func (m *OpenCodeManager) DisconnectAll() + func (m *OpenCodeManager) EnsureManagedInstance(ctx context.Context, launcherID, workingDir string) (*openCodeInstance, error) + func (m *OpenCodeManager) IsConnected(instanceID string) bool + func (m *OpenCodeManager) RestoreConnections(ctx context.Context) error + func (m *OpenCodeManager) SendMessage(ctx context.Context, instanceID, sessionID string, parts []api.PartInput, ...) error + func (m *OpenCodeManager) UpdateSessionTitle(ctx context.Context, instanceID, sessionID, title string) (*api.Session, error) + type PortalMeta struct + AgentID string + AwaitingPath bool + InstanceID string + IsOpenCodeRoom bool + ReadOnly bool + SessionID string + Title string + TitleGenerated bool + TitlePending bool + VerboseLevel string + type PortalMetadata struct + AgentID string + IsOpenCodeRoom bool + OpenCodeAwaitingPath bool + OpenCodeInstanceID string + OpenCodeReadOnly bool + OpenCodeSessionID string + OpenCodeTitlePending bool + SDK bridgesdk.SDKPortalMetadata + Title string + TitleGenerated bool + VerboseLevel string + func (pm *PortalMetadata) GetSDKPortalMetadata() *bridgesdk.SDKPortalMetadata + func (pm *PortalMetadata) SetSDKPortalMetadata(meta *bridgesdk.SDKPortalMetadata) + type UserLoginMetadata struct + OpenCodeInstances map[string]*OpenCodeInstance + Provider string