Documentation
¶
Index ¶
- Constants
- type CodexClient
- func (cc *CodexClient) Connect(ctx context.Context)
- func (cc *CodexClient) Disconnect()
- func (cc *CodexClient) FetchMessages(ctx context.Context, params bridgev2.FetchMessagesParams) (*bridgev2.FetchMessagesResponse, error)
- func (cc *CodexClient) GetApprovalHandler() agentremote.ApprovalReactionHandler
- func (cc *CodexClient) GetCapabilities(ctx context.Context, portal *bridgev2.Portal) *event.RoomFeatures
- func (cc *CodexClient) GetChatInfo(_ context.Context, portal *bridgev2.Portal) (*bridgev2.ChatInfo, error)
- func (cc *CodexClient) GetContactList(ctx context.Context) ([]*bridgev2.ResolveIdentifierResponse, error)
- func (cc *CodexClient) GetUserInfo(_ context.Context, _ *bridgev2.Ghost) (*bridgev2.UserInfo, error)
- func (cc *CodexClient) GetUserLogin() *bridgev2.UserLogin
- func (cc *CodexClient) HandleMatrixDeleteChat(ctx context.Context, msg *bridgev2.MatrixDeleteChat) error
- func (cc *CodexClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.MatrixMessage) (*bridgev2.MatrixMessageResponse, error)
- func (cc *CodexClient) LogoutRemote(ctx context.Context)
- func (cc *CodexClient) ResolveIdentifier(ctx context.Context, identifier string, createChat bool) (*bridgev2.ResolveIdentifierResponse, error)
- func (cc *CodexClient) SetUserLogin(login *bridgev2.UserLogin)
- type CodexClientInfo
- type CodexConfig
- type CodexConnector
- type CodexLogin
- type Config
- type GhostMetadata
- type MessageMetadata
- type PortalMetadata
- type ToolCallMetadata
- type UserLoginMetadata
Constants ¶
View Source
const ( FlowCodexAPIKey = "codex_api_key" FlowCodexChatGPT = "codex_chatgpt" FlowCodexChatGPTExternalTokens = "codex_chatgpt_external_tokens" )
View Source
const ( CodexAuthSourceManaged = "managed" CodexAuthSourceHost = "host" )
View Source
const AIAuthFailed status.BridgeStateErrorCode = "ai-auth-failed"
View Source
const ProviderCodex = "codex"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CodexClient ¶
type CodexClient struct {
agentremote.ClientBase
UserLogin *bridgev2.UserLogin
// contains filtered or unexported fields
}
func (*CodexClient) Connect ¶
func (cc *CodexClient) Connect(ctx context.Context)
func (*CodexClient) Disconnect ¶
func (cc *CodexClient) Disconnect()
func (*CodexClient) FetchMessages ¶
func (cc *CodexClient) FetchMessages(ctx context.Context, params bridgev2.FetchMessagesParams) (*bridgev2.FetchMessagesResponse, error)
func (*CodexClient) GetApprovalHandler ¶
func (cc *CodexClient) GetApprovalHandler() agentremote.ApprovalReactionHandler
func (*CodexClient) GetCapabilities ¶
func (cc *CodexClient) GetCapabilities(ctx context.Context, portal *bridgev2.Portal) *event.RoomFeatures
func (*CodexClient) GetChatInfo ¶
func (*CodexClient) GetContactList ¶
func (cc *CodexClient) GetContactList(ctx context.Context) ([]*bridgev2.ResolveIdentifierResponse, error)
func (*CodexClient) GetUserInfo ¶
func (*CodexClient) GetUserLogin ¶
func (cc *CodexClient) GetUserLogin() *bridgev2.UserLogin
func (*CodexClient) HandleMatrixDeleteChat ¶
func (cc *CodexClient) HandleMatrixDeleteChat(ctx context.Context, msg *bridgev2.MatrixDeleteChat) error
HandleMatrixDeleteChat best-effort archives the Codex thread and removes the temp cwd. The core bridge handles Matrix-side room cleanup separately.
func (*CodexClient) HandleMatrixMessage ¶
func (cc *CodexClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.MatrixMessage) (*bridgev2.MatrixMessageResponse, error)
func (*CodexClient) LogoutRemote ¶
func (cc *CodexClient) LogoutRemote(ctx context.Context)
func (*CodexClient) ResolveIdentifier ¶
func (cc *CodexClient) ResolveIdentifier(ctx context.Context, identifier string, createChat bool) (*bridgev2.ResolveIdentifierResponse, error)
func (*CodexClient) SetUserLogin ¶
func (cc *CodexClient) SetUserLogin(login *bridgev2.UserLogin)
type CodexClientInfo ¶
type CodexConfig ¶
type CodexConfig struct {
Enabled *bool `yaml:"enabled"`
Command string `yaml:"command"`
Listen string `yaml:"listen"`
HomeBaseDir string `yaml:"home_base_dir"`
DefaultModel string `yaml:"default_model"`
NetworkAccess *bool `yaml:"network_access"`
ClientInfo *CodexClientInfo `yaml:"client_info"`
}
CodexConfig configures the Codex app-server integration.
type CodexConnector ¶
type CodexConnector struct {
*agentremote.ConnectorBase
Config Config
// contains filtered or unexported fields
}
CodexConnector runs the dedicated Codex bridge surface.
func NewConnector ¶
func NewConnector() *CodexConnector
type CodexLogin ¶
type CodexLogin struct {
User *bridgev2.User
Connector *CodexConnector
FlowID string
// contains filtered or unexported fields
}
CodexLogin provisions a provider=codex user login backed by a local `codex app-server` process. Tokens are persisted by Codex itself under an isolated CODEX_HOME per login.
func (*CodexLogin) Cancel ¶
func (cl *CodexLogin) Cancel()
func (*CodexLogin) SubmitUserInput ¶
type Config ¶
type Config struct {
Bridge bridgeconfig.BridgeConfig `yaml:"bridge"`
Codex *CodexConfig `yaml:"codex"`
ModelCacheDuration time.Duration `yaml:"model_cache_duration"`
}
type GhostMetadata ¶
type MessageMetadata ¶
type MessageMetadata struct {
agentremote.BaseMessageMetadata
agentremote.AssistantMessageMetadata
}
func (*MessageMetadata) CopyFrom ¶
func (mm *MessageMetadata) CopyFrom(other any)
type PortalMetadata ¶
type PortalMetadata struct {
Title string `json:"title,omitempty"`
Slug string `json:"slug,omitempty"`
IsCodexRoom bool `json:"is_codex_room,omitempty"`
CodexThreadID string `json:"codex_thread_id,omitempty"`
CodexCwd string `json:"codex_cwd,omitempty"`
ElevatedLevel string `json:"elevated_level,omitempty"`
AwaitingCwdSetup bool `json:"awaiting_cwd_setup,omitempty"`
ManagedImport bool `json:"managed_import,omitempty"`
}
type ToolCallMetadata ¶
type ToolCallMetadata = agentremote.ToolCallMetadata
type UserLoginMetadata ¶
type UserLoginMetadata struct {
Provider string `json:"provider,omitempty"`
CodexHome string `json:"codex_home,omitempty"`
CodexAuthSource string `json:"codex_auth_source,omitempty"`
CodexCommand string `json:"codex_command,omitempty"`
CodexAuthMode string `json:"codex_auth_mode,omitempty"`
CodexAccountEmail string `json:"codex_account_email,omitempty"`
ChatGPTAccountID string `json:"chatgpt_account_id,omitempty"`
ChatGPTPlanType string `json:"chatgpt_plan_type,omitempty"`
ChatsSynced bool `json:"chats_synced,omitempty"`
ManagedPaths []string `json:"managed_paths,omitempty"`
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.