Documentation
¶
Index ¶
- Constants
- Variables
- func WithProjectConversationAccessHint(ctx context.Context, hint ProjectConversationAccessHint) context.Context
- type AttachedConversationTerminal
- type ClaudeRuntime
- func (r *ClaudeRuntime) CloseSession(sessionID SessionID) bool
- func (r *ClaudeRuntime) ConfigureSecretResolver(resolver RuntimeEnvironmentResolver)
- func (r *ClaudeRuntime) InterruptTurn(_ context.Context, sessionID SessionID) (RuntimeSessionAnchor, error)
- func (r *ClaudeRuntime) RespondInterrupt(ctx context.Context, input RuntimeInterruptResponseInput) (TurnStream, error)
- func (r *ClaudeRuntime) SessionAnchor(sessionID SessionID) RuntimeSessionAnchor
- func (r *ClaudeRuntime) StartTurn(ctx context.Context, input RuntimeTurnInput) (TurnStream, error)
- func (r *ClaudeRuntime) Supports(providerItem catalogdomain.AgentProvider) bool
- type CodexRuntime
- func (r *CodexRuntime) CloseSession(sessionID SessionID) bool
- func (r *CodexRuntime) ConfigureSecretResolver(resolver RuntimeEnvironmentResolver)
- func (r *CodexRuntime) EnsureSession(ctx context.Context, input RuntimeTurnInput) error
- func (r *CodexRuntime) InterruptTurn(ctx context.Context, sessionID SessionID) (RuntimeSessionAnchor, error)
- func (r *CodexRuntime) RespondInterrupt(ctx context.Context, input RuntimeInterruptResponseInput) (TurnStream, error)
- func (r *CodexRuntime) SessionAnchor(sessionID SessionID) RuntimeSessionAnchor
- func (r *CodexRuntime) StartTurn(ctx context.Context, input RuntimeTurnInput) (TurnStream, error)
- func (r *CodexRuntime) Supports(providerItem catalogdomain.AgentProvider) bool
- type Context
- type ConversationTerminalEvent
- type ConversationTerminalService
- func (s *ConversationTerminalService) AttachSession(userID UserID, conversationID uuid.UUID, sessionID uuid.UUID, ...) (AttachedConversationTerminal, error)
- func (s *ConversationTerminalService) CloseSession(conversationID uuid.UUID, sessionID uuid.UUID) error
- func (s *ConversationTerminalService) CreateSession(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ConversationTerminalSession, error)
- type ConversationTerminalSession
- type GeminiRuntime
- func (r *GeminiRuntime) CloseSession(sessionID SessionID) bool
- func (r *GeminiRuntime) ConfigureSecretResolver(resolver RuntimeEnvironmentResolver)
- func (r *GeminiRuntime) InterruptTurn(_ context.Context, sessionID SessionID) (RuntimeSessionAnchor, error)
- func (r *GeminiRuntime) SessionAnchor(sessionID SessionID) RuntimeSessionAnchor
- func (r *GeminiRuntime) StartTurn(ctx context.Context, input RuntimeTurnInput) (TurnStream, error)
- func (r *GeminiRuntime) Supports(providerItem catalogdomain.AgentProvider) bool
- type ProjectConversationAccessHint
- type ProjectConversationFocus
- type ProjectConversationFocusKind
- type ProjectConversationMachineFocus
- type ProjectConversationMuxEvent
- type ProjectConversationService
- func (s *ProjectConversationService) AppendSystemEntry(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (domain.Entry, error)
- func (s *ProjectConversationService) CheckoutWorkspaceBranch(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceCheckoutResult, error)
- func (s *ProjectConversationService) CloseRuntime(ctx context.Context, userID UserID, conversationID uuid.UUID) error
- func (s *ProjectConversationService) CommitWorkspace(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceCommitResult, error)
- func (s *ProjectConversationService) ConfigureActivityEmitter(emitter projectConversationActivityEmitter)
- func (s *ProjectConversationService) ConfigureGitHubCredentials(resolver githubauthservice.TokenResolver)
- func (s *ProjectConversationService) ConfigurePlatformEnvironment(apiURL string, platform projectConversationAgentPlatform)
- func (s *ProjectConversationService) ConfigureSecretManager(manager projectConversationSecretManager)
- func (s *ProjectConversationService) ConfigureSecretResolver(resolver RuntimeEnvironmentResolver)
- func (s *ProjectConversationService) CreateConversation(ctx context.Context, userID UserID, projectID uuid.UUID, providerID uuid.UUID) (domain.Conversation, error)
- func (s *ProjectConversationService) CreateWorkspaceBranch(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceCreateBranchResult, error)
- func (s *ProjectConversationService) CreateWorkspaceFile(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceFileCreated, error)
- func (s *ProjectConversationService) DeleteConversation(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (domain.DeleteConversationResult, error)
- func (s *ProjectConversationService) DeleteWorkspaceFile(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceFileDeleted, error)
- func (s *ProjectConversationService) DiscardWorkspaceFile(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceDiscardFileResult, error)
- func (s *ProjectConversationService) GetConversation(ctx context.Context, userID UserID, conversationID uuid.UUID) (domain.Conversation, error)
- func (s *ProjectConversationService) GetPrincipal(ctx context.Context, userID UserID, conversationID uuid.UUID) (domain.ProjectConversationPrincipal, error)
- func (s *ProjectConversationService) GetWorkspaceDiff(ctx context.Context, userID UserID, conversationID uuid.UUID) (ProjectConversationWorkspaceDiff, error)
- func (s *ProjectConversationService) GetWorkspaceGitGraph(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceGitGraph, error)
- func (s *ProjectConversationService) GetWorkspaceMetadata(ctx context.Context, userID UserID, conversationID uuid.UUID) (ProjectConversationWorkspaceMetadata, error)
- func (s *ProjectConversationService) GetWorkspaceRepoRefs(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceRepoRefs, error)
- func (s *ProjectConversationService) InterruptTurn(ctx context.Context, userID UserID, conversationID uuid.UUID) error
- func (s *ProjectConversationService) ListConversations(ctx context.Context, userID UserID, projectID uuid.UUID, providerID *uuid.UUID) ([]domain.Conversation, error)
- func (s *ProjectConversationService) ListEntries(ctx context.Context, userID UserID, conversationID uuid.UUID) ([]domain.Entry, error)
- func (s *ProjectConversationService) ListWorkspaceTree(ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath string, ...) (ProjectConversationWorkspaceTree, error)
- func (s *ProjectConversationService) ReadWorkspaceFilePatch(ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath string, ...) (ProjectConversationWorkspaceFilePatch, error)
- func (s *ProjectConversationService) ReadWorkspaceFilePreview(ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath string, ...) (ProjectConversationWorkspaceFilePreview, error)
- func (s *ProjectConversationService) RenameWorkspaceFile(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceFileRenamed, error)
- func (s *ProjectConversationService) RespondInterrupt(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (domain.PendingInterrupt, error)
- func (s *ProjectConversationService) RunRetentionCleanup(ctx context.Context) ([]domain.RetentionCleanupResult, error)
- func (s *ProjectConversationService) RunWorkspaceGitRemoteOp(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceGitRemoteOpResult, error)
- func (s *ProjectConversationService) SaveWorkspaceFile(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceFileSaved, error)
- func (s *ProjectConversationService) SearchWorkspacePaths(ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath string, ...) (ProjectConversationWorkspaceSearch, error)
- func (s *ProjectConversationService) StageWorkspaceAll(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceStageAllResult, error)
- func (s *ProjectConversationService) StageWorkspaceFile(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceStageFileResult, error)
- func (s *ProjectConversationService) StartTurn(ctx context.Context, userID UserID, conversationID uuid.UUID, message string, ...) (domain.Turn, error)
- func (s *ProjectConversationService) StartTurnWithWorkspaceFileDraft(ctx context.Context, userID UserID, conversationID uuid.UUID, message string, ...) (domain.Turn, error)
- func (s *ProjectConversationService) SyncWorkspace(ctx context.Context, userID UserID, conversationID uuid.UUID) (ProjectConversationWorkspaceMetadata, error)
- func (s *ProjectConversationService) UnstageWorkspace(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (ProjectConversationWorkspaceUnstageResult, error)
- func (s *ProjectConversationService) WatchConversation(ctx context.Context, userID UserID, conversationID uuid.UUID) (<-chan StreamEvent, func(), error)
- func (s *ProjectConversationService) WatchProjectConversations(ctx context.Context, userID UserID, projectID uuid.UUID) (<-chan ProjectConversationMuxEvent, func(), error)
- type ProjectConversationSkillFocus
- type ProjectConversationTicketActivity
- type ProjectConversationTicketAssignedAgent
- type ProjectConversationTicketDependency
- type ProjectConversationTicketFocus
- type ProjectConversationTicketHook
- type ProjectConversationTicketRepoScope
- type ProjectConversationTicketRun
- type ProjectConversationTicketTargetMachine
- type ProjectConversationWorkflowFocus
- type ProjectConversationWorkspaceBranchRef
- type ProjectConversationWorkspaceBranchScope
- type ProjectConversationWorkspaceCheckoutInput
- type ProjectConversationWorkspaceCheckoutPreconditionError
- type ProjectConversationWorkspaceCheckoutPreconditionReason
- type ProjectConversationWorkspaceCheckoutResult
- type ProjectConversationWorkspaceCommitInput
- type ProjectConversationWorkspaceCommitResult
- type ProjectConversationWorkspaceCreateBranchInput
- type ProjectConversationWorkspaceCreateBranchResult
- type ProjectConversationWorkspaceCurrentRef
- type ProjectConversationWorkspaceCurrentRefKind
- type ProjectConversationWorkspaceDiff
- type ProjectConversationWorkspaceDiffKind
- type ProjectConversationWorkspaceDiscardFileInput
- type ProjectConversationWorkspaceDiscardFileResult
- type ProjectConversationWorkspaceFileConflictError
- type ProjectConversationWorkspaceFileCreateInput
- type ProjectConversationWorkspaceFileCreated
- type ProjectConversationWorkspaceFileDeleteInput
- type ProjectConversationWorkspaceFileDeleted
- type ProjectConversationWorkspaceFileDiff
- type ProjectConversationWorkspaceFileDraftContext
- type ProjectConversationWorkspaceFilePatch
- type ProjectConversationWorkspaceFilePreview
- type ProjectConversationWorkspaceFileReadOnlyError
- type ProjectConversationWorkspaceFileRenameInput
- type ProjectConversationWorkspaceFileRenamed
- type ProjectConversationWorkspaceFileSaveInput
- type ProjectConversationWorkspaceFileSaved
- type ProjectConversationWorkspaceFileStatus
- type ProjectConversationWorkspaceFocus
- type ProjectConversationWorkspaceGitGraph
- type ProjectConversationWorkspaceGitGraphCommit
- type ProjectConversationWorkspaceGitRefLabel
- type ProjectConversationWorkspaceGitRefLabelScope
- type ProjectConversationWorkspaceGitRemoteOpInput
- type ProjectConversationWorkspaceGitRemoteOpKind
- type ProjectConversationWorkspaceGitRemoteOpResult
- type ProjectConversationWorkspaceMetadata
- type ProjectConversationWorkspaceMissingRepo
- type ProjectConversationWorkspacePreviewKind
- type ProjectConversationWorkspaceReadOnlyReason
- type ProjectConversationWorkspaceRepoDiff
- type ProjectConversationWorkspaceRepoMetadata
- type ProjectConversationWorkspaceRepoRefs
- type ProjectConversationWorkspaceSearch
- type ProjectConversationWorkspaceSearchResult
- type ProjectConversationWorkspaceSelection
- type ProjectConversationWorkspaceStageAllInput
- type ProjectConversationWorkspaceStageAllResult
- type ProjectConversationWorkspaceStageFileInput
- type ProjectConversationWorkspaceStageFileResult
- type ProjectConversationWorkspaceSyncPrompt
- type ProjectConversationWorkspaceSyncReason
- type ProjectConversationWorkspaceSyncRequiredError
- type ProjectConversationWorkspaceTree
- type ProjectConversationWorkspaceTreeEntry
- type ProjectConversationWorkspaceTreeEntryKind
- type ProjectConversationWorkspaceUnstageInput
- type ProjectConversationWorkspaceUnstageResult
- type ProjectConversationWorkspaceWorkingSet
- type RawChatContext
- type RawProjectConversationFocus
- type RawProjectConversationTicketActivity
- type RawProjectConversationTicketAssignedAgent
- type RawProjectConversationTicketDependency
- type RawProjectConversationTicketHook
- type RawProjectConversationTicketRepoScope
- type RawProjectConversationTicketRun
- type RawProjectConversationTicketTargetMachine
- type RawProjectConversationWorkspaceWorkingSet
- type RawStartInput
- type Runtime
- type RuntimeEnvironmentResolveInput
- type RuntimeEnvironmentResolver
- type RuntimeInterruptDecision
- type RuntimeInterruptEvent
- type RuntimeInterruptResponseInput
- type RuntimeSessionAnchor
- type RuntimeTurnInput
- type Service
- type SessionID
- type Source
- type StartInput
- type StreamEvent
- type TurnStream
- type UserID
- type WorkspaceBranchName
- type WorkspaceCheckoutTarget
- type WorkspaceCheckoutTargetKind
- type WorkspaceCommitID
- type WorkspaceCreatableFilePath
- type WorkspaceDeleteableFilePath
- type WorkspaceEncoding
- type WorkspaceFilePath
- type WorkspaceFileRevision
- type WorkspaceGitGraphWindow
- type WorkspaceLineEnding
- type WorkspaceRenamableFilePath
- type WorkspaceRepoPath
- type WorkspaceTextContent
Constants ¶
View Source
const ( DefaultMaxTurns = 10 DefaultMaxBudgetUSD = 2.0 )
View Source
const LocalProjectConversationUserID = InstanceAdminProjectConversationUserID
LocalProjectConversationUserID is kept as a compatibility alias for older call sites; new code should prefer InstanceAdminProjectConversationUserID.
Variables ¶
View Source
var ( ErrConversationTerminalUnsupported = errors.New("project conversation terminal is unsupported") ErrConversationTerminalSessionNotFound = errors.New("project conversation terminal session not found") ErrConversationTerminalAttachForbidden = errors.New("project conversation terminal attach forbidden") ErrConversationTerminalAlreadyAttached = errors.New("project conversation terminal session is already attached") )
View Source
var ( ErrConversationNotFound = chatrepo.ErrNotFound ErrConversationConflict = chatrepo.ErrConflict ErrConversationTurnActive = chatrepo.ErrTurnAlreadyActive ErrConversationTurnNotActive = fmt.Errorf("%w: project conversation does not have an active turn", domain.ErrConflict) ErrConversationInterruptPending = domain.ErrInterruptPending ErrPendingInterruptNotFound = chatrepo.ErrNotFound ErrConversationRuntimeAbsent = fmt.Errorf("chat conversation runtime is unavailable") )
View Source
var ( ErrProjectConversationWorkspaceRepoNotFound = errors.New("project conversation workspace repo not found") ErrProjectConversationWorkspacePathInvalid = errors.New("project conversation workspace path is invalid") ErrProjectConversationWorkspaceEntryNotFound = errors.New("project conversation workspace entry not found") ErrProjectConversationWorkspaceEntryExists = errors.New("project conversation workspace entry already exists") )
View Source
var ( ErrSourceUnsupported = errors.New("chat source is unsupported") ErrProviderNotFound = errors.New("chat-capable provider not found for project") ErrProviderUnsupported = errors.New("chat provider does not support ephemeral chat") ErrSessionNotFound = errors.New("chat session not found") ErrSessionProviderMismatch = errors.New("chat session cannot resume across providers") ErrSessionTurnLimitReached = errors.New("chat session reached the turn limit; please create a ticket for further work") ErrSessionBudgetExceeded = errors.New("chat session reached the budget cap; please create a ticket for further work") )
View Source
var ErrProjectConversationWorkspaceSyncRequired = errors.New("project conversation workspace sync required")
Functions ¶
func WithProjectConversationAccessHint ¶ added in v0.7.0
func WithProjectConversationAccessHint( ctx context.Context, hint ProjectConversationAccessHint, ) context.Context
Types ¶
type AttachedConversationTerminal ¶ added in v0.4.0
type AttachedConversationTerminal struct {
Session ConversationTerminalSession
Events <-chan ConversationTerminalEvent
// contains filtered or unexported fields
}
func (AttachedConversationTerminal) Close ¶ added in v0.4.0
func (a AttachedConversationTerminal) Close() error
func (AttachedConversationTerminal) Detach ¶ added in v0.4.0
func (a AttachedConversationTerminal) Detach() error
func (AttachedConversationTerminal) Resize ¶ added in v0.4.0
func (a AttachedConversationTerminal) Resize(cols int, rows int) error
func (AttachedConversationTerminal) WriteInput ¶ added in v0.4.0
func (a AttachedConversationTerminal) WriteInput(data []byte) error
type ClaudeRuntime ¶
type ClaudeRuntime struct {
// contains filtered or unexported fields
}
func NewClaudeRuntime ¶
func NewClaudeRuntime(adapter provider.ClaudeCodeAdapter) *ClaudeRuntime
func (*ClaudeRuntime) CloseSession ¶
func (r *ClaudeRuntime) CloseSession(sessionID SessionID) bool
func (*ClaudeRuntime) ConfigureSecretResolver ¶ added in v0.3.0
func (r *ClaudeRuntime) ConfigureSecretResolver(resolver RuntimeEnvironmentResolver)
func (*ClaudeRuntime) InterruptTurn ¶ added in v0.4.0
func (r *ClaudeRuntime) InterruptTurn( _ context.Context, sessionID SessionID, ) (RuntimeSessionAnchor, error)
func (*ClaudeRuntime) RespondInterrupt ¶
func (r *ClaudeRuntime) RespondInterrupt( ctx context.Context, input RuntimeInterruptResponseInput, ) (TurnStream, error)
func (*ClaudeRuntime) SessionAnchor ¶
func (r *ClaudeRuntime) SessionAnchor(sessionID SessionID) RuntimeSessionAnchor
func (*ClaudeRuntime) StartTurn ¶
func (r *ClaudeRuntime) StartTurn(ctx context.Context, input RuntimeTurnInput) (TurnStream, error)
func (*ClaudeRuntime) Supports ¶
func (r *ClaudeRuntime) Supports(providerItem catalogdomain.AgentProvider) bool
type CodexRuntime ¶
type CodexRuntime struct {
// contains filtered or unexported fields
}
func NewCodexRuntime ¶
func NewCodexRuntime(adapter *codexadapter.Adapter) *CodexRuntime
func (*CodexRuntime) CloseSession ¶
func (r *CodexRuntime) CloseSession(sessionID SessionID) bool
func (*CodexRuntime) ConfigureSecretResolver ¶ added in v0.3.0
func (r *CodexRuntime) ConfigureSecretResolver(resolver RuntimeEnvironmentResolver)
func (*CodexRuntime) EnsureSession ¶
func (r *CodexRuntime) EnsureSession(ctx context.Context, input RuntimeTurnInput) error
func (*CodexRuntime) InterruptTurn ¶ added in v0.4.0
func (r *CodexRuntime) InterruptTurn( ctx context.Context, sessionID SessionID, ) (RuntimeSessionAnchor, error)
func (*CodexRuntime) RespondInterrupt ¶
func (r *CodexRuntime) RespondInterrupt( ctx context.Context, input RuntimeInterruptResponseInput, ) (TurnStream, error)
func (*CodexRuntime) SessionAnchor ¶
func (r *CodexRuntime) SessionAnchor(sessionID SessionID) RuntimeSessionAnchor
func (*CodexRuntime) StartTurn ¶
func (r *CodexRuntime) StartTurn(ctx context.Context, input RuntimeTurnInput) (TurnStream, error)
func (*CodexRuntime) Supports ¶
func (r *CodexRuntime) Supports(providerItem catalogdomain.AgentProvider) bool
type Context ¶
type Context struct {
ProjectID uuid.UUID
TicketID *uuid.UUID
ProjectFocus *ProjectConversationFocus
}
type ConversationTerminalEvent ¶ added in v0.4.0
type ConversationTerminalService ¶ added in v0.4.0
type ConversationTerminalService struct {
// contains filtered or unexported fields
}
func NewConversationTerminalService ¶ added in v0.4.0
func NewConversationTerminalService( logger *slog.Logger, conversations *ProjectConversationService, ) *ConversationTerminalService
func (*ConversationTerminalService) AttachSession ¶ added in v0.4.0
func (s *ConversationTerminalService) AttachSession( userID UserID, conversationID uuid.UUID, sessionID uuid.UUID, attachToken string, ) (AttachedConversationTerminal, error)
func (*ConversationTerminalService) CloseSession ¶ added in v0.4.0
func (*ConversationTerminalService) CreateSession ¶ added in v0.4.0
func (s *ConversationTerminalService) CreateSession( ctx context.Context, userID UserID, conversationID uuid.UUID, input chatdomain.OpenTerminalSessionInput, ) (ConversationTerminalSession, error)
type ConversationTerminalSession ¶ added in v0.4.0
type GeminiRuntime ¶
type GeminiRuntime struct {
// contains filtered or unexported fields
}
func NewGeminiRuntime ¶
func NewGeminiRuntime(processManager provider.AgentCLIProcessManager) *GeminiRuntime
func (*GeminiRuntime) CloseSession ¶
func (r *GeminiRuntime) CloseSession(sessionID SessionID) bool
func (*GeminiRuntime) ConfigureSecretResolver ¶ added in v0.3.0
func (r *GeminiRuntime) ConfigureSecretResolver(resolver RuntimeEnvironmentResolver)
func (*GeminiRuntime) InterruptTurn ¶ added in v0.4.0
func (r *GeminiRuntime) InterruptTurn( _ context.Context, sessionID SessionID, ) (RuntimeSessionAnchor, error)
func (*GeminiRuntime) SessionAnchor ¶ added in v0.4.0
func (r *GeminiRuntime) SessionAnchor(sessionID SessionID) RuntimeSessionAnchor
func (*GeminiRuntime) StartTurn ¶
func (r *GeminiRuntime) StartTurn(ctx context.Context, input RuntimeTurnInput) (TurnStream, error)
func (*GeminiRuntime) Supports ¶
func (r *GeminiRuntime) Supports(providerItem catalogdomain.AgentProvider) bool
type ProjectConversationAccessHint ¶ added in v0.7.0
type ProjectConversationFocus ¶
type ProjectConversationFocus struct {
Kind ProjectConversationFocusKind
Workflow *ProjectConversationWorkflowFocus
Skill *ProjectConversationSkillFocus
Ticket *ProjectConversationTicketFocus
Machine *ProjectConversationMachineFocus
Workspace *ProjectConversationWorkspaceFocus
}
func ParseProjectConversationFocus ¶
func ParseProjectConversationFocus(raw *RawProjectConversationFocus) (*ProjectConversationFocus, error)
type ProjectConversationFocusKind ¶
type ProjectConversationFocusKind string
const ( ProjectConversationFocusWorkflow ProjectConversationFocusKind = "workflow" ProjectConversationFocusSkill ProjectConversationFocusKind = "skill" ProjectConversationFocusTicket ProjectConversationFocusKind = "ticket" ProjectConversationFocusMachine ProjectConversationFocusKind = "machine" ProjectConversationFocusWorkspace ProjectConversationFocusKind = "workspace_file" )
type ProjectConversationService ¶
type ProjectConversationService struct {
// contains filtered or unexported fields
}
func NewProjectConversationService ¶
func NewProjectConversationService( logger *slog.Logger, stores projectConversationStoreSource, catalog projectConversationCatalog, tickets ticketReader, workflows workflowReader, localProcessManager provider.AgentCLIProcessManager, sshPool *sshinfra.Pool, ) *ProjectConversationService
func (*ProjectConversationService) AppendSystemEntry ¶ added in v0.3.0
func (*ProjectConversationService) CheckoutWorkspaceBranch ¶ added in v0.5.0
func (s *ProjectConversationService) CheckoutWorkspaceBranch( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceCheckoutInput, ) (ProjectConversationWorkspaceCheckoutResult, error)
func (*ProjectConversationService) CloseRuntime ¶
func (*ProjectConversationService) CommitWorkspace ¶ added in v0.5.0
func (s *ProjectConversationService) CommitWorkspace( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceCommitInput, ) (ProjectConversationWorkspaceCommitResult, error)
func (*ProjectConversationService) ConfigureActivityEmitter ¶ added in v0.4.0
func (s *ProjectConversationService) ConfigureActivityEmitter(emitter projectConversationActivityEmitter)
func (*ProjectConversationService) ConfigureGitHubCredentials ¶
func (s *ProjectConversationService) ConfigureGitHubCredentials(resolver githubauthservice.TokenResolver)
func (*ProjectConversationService) ConfigurePlatformEnvironment ¶
func (s *ProjectConversationService) ConfigurePlatformEnvironment( apiURL string, platform projectConversationAgentPlatform, )
func (*ProjectConversationService) ConfigureSecretManager ¶ added in v0.3.0
func (s *ProjectConversationService) ConfigureSecretManager(manager projectConversationSecretManager)
func (*ProjectConversationService) ConfigureSecretResolver ¶ added in v0.3.0
func (s *ProjectConversationService) ConfigureSecretResolver(resolver RuntimeEnvironmentResolver)
func (*ProjectConversationService) CreateConversation ¶
func (*ProjectConversationService) CreateWorkspaceBranch ¶ added in v0.5.0
func (s *ProjectConversationService) CreateWorkspaceBranch( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceCreateBranchInput, ) (ProjectConversationWorkspaceCreateBranchResult, error)
func (*ProjectConversationService) CreateWorkspaceFile ¶ added in v0.5.0
func (s *ProjectConversationService) CreateWorkspaceFile( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceFileCreateInput, ) (ProjectConversationWorkspaceFileCreated, error)
func (*ProjectConversationService) DeleteConversation ¶ added in v0.4.0
func (s *ProjectConversationService) DeleteConversation( ctx context.Context, userID UserID, conversationID uuid.UUID, input domain.DeleteConversationInput, ) (domain.DeleteConversationResult, error)
func (*ProjectConversationService) DeleteWorkspaceFile ¶ added in v0.5.0
func (s *ProjectConversationService) DeleteWorkspaceFile( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceFileDeleteInput, ) (ProjectConversationWorkspaceFileDeleted, error)
func (*ProjectConversationService) DiscardWorkspaceFile ¶ added in v0.5.0
func (s *ProjectConversationService) DiscardWorkspaceFile( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceDiscardFileInput, ) (ProjectConversationWorkspaceDiscardFileResult, error)
func (*ProjectConversationService) GetConversation ¶
func (s *ProjectConversationService) GetConversation(ctx context.Context, userID UserID, conversationID uuid.UUID) (domain.Conversation, error)
func (*ProjectConversationService) GetPrincipal ¶
func (s *ProjectConversationService) GetPrincipal(ctx context.Context, userID UserID, conversationID uuid.UUID) (domain.ProjectConversationPrincipal, error)
func (*ProjectConversationService) GetWorkspaceDiff ¶
func (s *ProjectConversationService) GetWorkspaceDiff( ctx context.Context, userID UserID, conversationID uuid.UUID, ) (ProjectConversationWorkspaceDiff, error)
func (*ProjectConversationService) GetWorkspaceGitGraph ¶ added in v0.5.0
func (s *ProjectConversationService) GetWorkspaceGitGraph( ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath WorkspaceRepoPath, window WorkspaceGitGraphWindow, ) (ProjectConversationWorkspaceGitGraph, error)
func (*ProjectConversationService) GetWorkspaceMetadata ¶ added in v0.4.0
func (s *ProjectConversationService) GetWorkspaceMetadata( ctx context.Context, userID UserID, conversationID uuid.UUID, ) (ProjectConversationWorkspaceMetadata, error)
func (*ProjectConversationService) GetWorkspaceRepoRefs ¶ added in v0.5.0
func (s *ProjectConversationService) GetWorkspaceRepoRefs( ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath WorkspaceRepoPath, ) (ProjectConversationWorkspaceRepoRefs, error)
func (*ProjectConversationService) InterruptTurn ¶ added in v0.4.0
func (*ProjectConversationService) ListConversations ¶
func (*ProjectConversationService) ListEntries ¶
func (*ProjectConversationService) ListWorkspaceTree ¶ added in v0.4.0
func (s *ProjectConversationService) ListWorkspaceTree( ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath string, treePath string, ) (ProjectConversationWorkspaceTree, error)
func (*ProjectConversationService) ReadWorkspaceFilePatch ¶ added in v0.4.0
func (s *ProjectConversationService) ReadWorkspaceFilePatch( ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath string, filePath string, ) (ProjectConversationWorkspaceFilePatch, error)
func (*ProjectConversationService) ReadWorkspaceFilePreview ¶ added in v0.4.0
func (s *ProjectConversationService) ReadWorkspaceFilePreview( ctx context.Context, userID UserID, conversationID uuid.UUID, repoPath string, filePath string, ) (ProjectConversationWorkspaceFilePreview, error)
func (*ProjectConversationService) RenameWorkspaceFile ¶ added in v0.5.0
func (s *ProjectConversationService) RenameWorkspaceFile( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceFileRenameInput, ) (ProjectConversationWorkspaceFileRenamed, error)
func (*ProjectConversationService) RespondInterrupt ¶
func (s *ProjectConversationService) RespondInterrupt( ctx context.Context, userID UserID, conversationID uuid.UUID, interruptID uuid.UUID, response domain.InterruptResponse, ) (domain.PendingInterrupt, error)
func (*ProjectConversationService) RunRetentionCleanup ¶ added in v0.4.0
func (s *ProjectConversationService) RunRetentionCleanup( ctx context.Context, ) ([]domain.RetentionCleanupResult, error)
func (*ProjectConversationService) RunWorkspaceGitRemoteOp ¶ added in v0.5.0
func (s *ProjectConversationService) RunWorkspaceGitRemoteOp( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceGitRemoteOpInput, ) (ProjectConversationWorkspaceGitRemoteOpResult, error)
func (*ProjectConversationService) SaveWorkspaceFile ¶ added in v0.5.0
func (s *ProjectConversationService) SaveWorkspaceFile( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceFileSaveInput, ) (ProjectConversationWorkspaceFileSaved, error)
func (*ProjectConversationService) SearchWorkspacePaths ¶ added in v0.5.0
func (*ProjectConversationService) StageWorkspaceAll ¶ added in v0.5.0
func (s *ProjectConversationService) StageWorkspaceAll( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceStageAllInput, ) (ProjectConversationWorkspaceStageAllResult, error)
func (*ProjectConversationService) StageWorkspaceFile ¶ added in v0.5.0
func (s *ProjectConversationService) StageWorkspaceFile( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceStageFileInput, ) (ProjectConversationWorkspaceStageFileResult, error)
func (*ProjectConversationService) StartTurnWithWorkspaceFileDraft ¶ added in v0.5.0
func (s *ProjectConversationService) StartTurnWithWorkspaceFileDraft( ctx context.Context, userID UserID, conversationID uuid.UUID, message string, focus *ProjectConversationFocus, workspaceFileDraft *ProjectConversationWorkspaceFileDraftContext, ) (domain.Turn, error)
func (*ProjectConversationService) SyncWorkspace ¶ added in v0.4.0
func (s *ProjectConversationService) SyncWorkspace( ctx context.Context, userID UserID, conversationID uuid.UUID, ) (ProjectConversationWorkspaceMetadata, error)
func (*ProjectConversationService) UnstageWorkspace ¶ added in v0.5.0
func (s *ProjectConversationService) UnstageWorkspace( ctx context.Context, userID UserID, conversationID uuid.UUID, input ProjectConversationWorkspaceUnstageInput, ) (ProjectConversationWorkspaceUnstageResult, error)
func (*ProjectConversationService) WatchConversation ¶
func (s *ProjectConversationService) WatchConversation( ctx context.Context, userID UserID, conversationID uuid.UUID, ) (<-chan StreamEvent, func(), error)
func (*ProjectConversationService) WatchProjectConversations ¶
func (s *ProjectConversationService) WatchProjectConversations( ctx context.Context, userID UserID, projectID uuid.UUID, ) (<-chan ProjectConversationMuxEvent, func(), error)
type ProjectConversationTicketFocus ¶
type ProjectConversationTicketFocus struct {
ID uuid.UUID
Identifier string
Title string
Description string
Status string
Priority string
AttemptCount int
RetryPaused bool
PauseReason string
SelectedArea string
Dependencies []ProjectConversationTicketDependency
RepoScopes []ProjectConversationTicketRepoScope
RecentActivity []ProjectConversationTicketActivity
HookHistory []ProjectConversationTicketHook
AssignedAgent *ProjectConversationTicketAssignedAgent
CurrentRun *ProjectConversationTicketRun
TargetMachine *ProjectConversationTicketTargetMachine
}
type ProjectConversationWorkspaceBranchRef ¶ added in v0.5.0
type ProjectConversationWorkspaceBranchScope ¶ added in v0.5.0
type ProjectConversationWorkspaceBranchScope string
const ( ProjectConversationWorkspaceBranchScopeLocal ProjectConversationWorkspaceBranchScope = "local_branch" ProjectConversationWorkspaceBranchScopeRemoteTracking ProjectConversationWorkspaceBranchScope = "remote_tracking_branch" )
type ProjectConversationWorkspaceCheckoutInput ¶ added in v0.5.0
type ProjectConversationWorkspaceCheckoutInput struct {
RepoPath WorkspaceRepoPath
Target WorkspaceCheckoutTarget
ExpectedCleanWorkspace bool
}
type ProjectConversationWorkspaceCheckoutPreconditionError ¶ added in v0.5.0
type ProjectConversationWorkspaceCheckoutPreconditionError struct {
Reason ProjectConversationWorkspaceCheckoutPreconditionReason
RequestedBranch string
SuggestedBranch string
}
func (*ProjectConversationWorkspaceCheckoutPreconditionError) Error ¶ added in v0.5.0
func (e *ProjectConversationWorkspaceCheckoutPreconditionError) Error() string
type ProjectConversationWorkspaceCheckoutPreconditionReason ¶ added in v0.5.0
type ProjectConversationWorkspaceCheckoutPreconditionReason string
const ( ProjectConversationWorkspaceCheckoutPreconditionDirtyWorkspace ProjectConversationWorkspaceCheckoutPreconditionReason = "dirty_workspace" ProjectConversationWorkspaceCheckoutPreconditionLocalBranchExists ProjectConversationWorkspaceCheckoutPreconditionReason = "local_branch_exists" )
type ProjectConversationWorkspaceCheckoutResult ¶ added in v0.5.0
type ProjectConversationWorkspaceCheckoutResult struct {
ConversationID uuid.UUID
RepoPath string
CurrentRef ProjectConversationWorkspaceCurrentRef
CreatedLocalBranch string
}
type ProjectConversationWorkspaceCommitInput ¶ added in v0.5.0
type ProjectConversationWorkspaceCommitInput struct {
RepoPath WorkspaceRepoPath
Message string
}
type ProjectConversationWorkspaceCommitResult ¶ added in v0.5.0
type ProjectConversationWorkspaceCreateBranchInput ¶ added in v0.5.0
type ProjectConversationWorkspaceCreateBranchInput struct {
RepoPath WorkspaceRepoPath
BranchName WorkspaceBranchName
StartPoint string
}
type ProjectConversationWorkspaceCreateBranchResult ¶ added in v0.5.0
type ProjectConversationWorkspaceCurrentRef ¶ added in v0.5.0
type ProjectConversationWorkspaceCurrentRefKind ¶ added in v0.5.0
type ProjectConversationWorkspaceCurrentRefKind string
const ( ProjectConversationWorkspaceCurrentRefKindBranch ProjectConversationWorkspaceCurrentRefKind = "branch" ProjectConversationWorkspaceCurrentRefKindDetached ProjectConversationWorkspaceCurrentRefKind = "detached" )
type ProjectConversationWorkspaceDiff ¶
type ProjectConversationWorkspaceDiff struct {
ConversationID uuid.UUID
WorkspacePath string
Dirty bool
ReposChanged int
FilesChanged int
Added int
Removed int
Repos []ProjectConversationWorkspaceRepoDiff
SyncPrompt *ProjectConversationWorkspaceSyncPrompt
}
type ProjectConversationWorkspaceDiffKind ¶ added in v0.4.0
type ProjectConversationWorkspaceDiffKind string
const ( ProjectConversationWorkspaceDiffKindNone ProjectConversationWorkspaceDiffKind = "none" ProjectConversationWorkspaceDiffKindText ProjectConversationWorkspaceDiffKind = "text" ProjectConversationWorkspaceDiffKindBinary ProjectConversationWorkspaceDiffKind = "binary" )
type ProjectConversationWorkspaceDiscardFileInput ¶ added in v0.5.0
type ProjectConversationWorkspaceDiscardFileInput struct {
RepoPath WorkspaceRepoPath
Path string
}
type ProjectConversationWorkspaceDiscardFileResult ¶ added in v0.5.0
type ProjectConversationWorkspaceFileConflictError ¶ added in v0.5.0
type ProjectConversationWorkspaceFileConflictError struct {
CurrentFile ProjectConversationWorkspaceFilePreview
}
func (*ProjectConversationWorkspaceFileConflictError) Error ¶ added in v0.5.0
func (e *ProjectConversationWorkspaceFileConflictError) Error() string
type ProjectConversationWorkspaceFileCreateInput ¶ added in v0.5.0
type ProjectConversationWorkspaceFileCreateInput struct {
RepoPath WorkspaceRepoPath
Path WorkspaceCreatableFilePath
}
type ProjectConversationWorkspaceFileCreated ¶ added in v0.5.0
type ProjectConversationWorkspaceFileDeleteInput ¶ added in v0.5.0
type ProjectConversationWorkspaceFileDeleteInput struct {
RepoPath WorkspaceRepoPath
Path WorkspaceDeleteableFilePath
}
type ProjectConversationWorkspaceFileDeleted ¶ added in v0.5.0
type ProjectConversationWorkspaceFileDraftContext ¶ added in v0.5.0
type ProjectConversationWorkspaceFileDraftContext struct {
RepoPath WorkspaceRepoPath
Path WorkspaceFilePath
Content WorkspaceTextContent
Encoding WorkspaceEncoding
LineEnding WorkspaceLineEnding
}
type ProjectConversationWorkspaceFilePatch ¶ added in v0.4.0
type ProjectConversationWorkspaceFilePatch struct {
ConversationID uuid.UUID
RepoPath string
Path string
Status ProjectConversationWorkspaceFileStatus
DiffKind ProjectConversationWorkspaceDiffKind
Truncated bool
Diff string
}
type ProjectConversationWorkspaceFilePreview ¶ added in v0.4.0
type ProjectConversationWorkspaceFilePreview struct {
ConversationID uuid.UUID
RepoPath string
Path string
SizeBytes int64
MediaType string
PreviewKind ProjectConversationWorkspacePreviewKind
Truncated bool
Content string
Revision string
Writable bool
ReadOnlyReason string
Encoding string
LineEnding string
}
type ProjectConversationWorkspaceFileReadOnlyError ¶ added in v0.5.0
type ProjectConversationWorkspaceFileReadOnlyError struct {
Reason ProjectConversationWorkspaceReadOnlyReason
}
func (*ProjectConversationWorkspaceFileReadOnlyError) Error ¶ added in v0.5.0
func (e *ProjectConversationWorkspaceFileReadOnlyError) Error() string
type ProjectConversationWorkspaceFileRenameInput ¶ added in v0.5.0
type ProjectConversationWorkspaceFileRenameInput struct {
RepoPath WorkspaceRepoPath
FromPath WorkspaceRenamableFilePath
ToPath WorkspaceCreatableFilePath
}
type ProjectConversationWorkspaceFileRenamed ¶ added in v0.5.0
type ProjectConversationWorkspaceFileSaveInput ¶ added in v0.5.0
type ProjectConversationWorkspaceFileSaveInput struct {
RepoPath WorkspaceRepoPath
Path WorkspaceFilePath
BaseRevision WorkspaceFileRevision
Content WorkspaceTextContent
Encoding WorkspaceEncoding
LineEnding WorkspaceLineEnding
}
type ProjectConversationWorkspaceFileSaved ¶ added in v0.5.0
type ProjectConversationWorkspaceFileStatus ¶
type ProjectConversationWorkspaceFileStatus string
const ( ProjectConversationWorkspaceFileStatusModified ProjectConversationWorkspaceFileStatus = "modified" ProjectConversationWorkspaceFileStatusAdded ProjectConversationWorkspaceFileStatus = "added" ProjectConversationWorkspaceFileStatusDeleted ProjectConversationWorkspaceFileStatus = "deleted" ProjectConversationWorkspaceFileStatusRenamed ProjectConversationWorkspaceFileStatus = "renamed" ProjectConversationWorkspaceFileStatusUntracked ProjectConversationWorkspaceFileStatus = "untracked" )
type ProjectConversationWorkspaceFocus ¶ added in v0.5.0
type ProjectConversationWorkspaceFocus struct {
ConversationID uuid.UUID
RepoPath string
FilePath string
SelectedArea string
HasDirtyDraft bool
Selection *ProjectConversationWorkspaceSelection
WorkingSet []ProjectConversationWorkspaceWorkingSet
}
type ProjectConversationWorkspaceGitGraph ¶ added in v0.5.0
type ProjectConversationWorkspaceGitGraph struct {
ConversationID uuid.UUID
RepoPath string
Window WorkspaceGitGraphWindow
Commits []ProjectConversationWorkspaceGitGraphCommit
}
type ProjectConversationWorkspaceGitGraphCommit ¶ added in v0.5.0
type ProjectConversationWorkspaceGitRefLabel ¶ added in v0.5.0
type ProjectConversationWorkspaceGitRefLabel struct {
Name string
FullName string
Scope ProjectConversationWorkspaceGitRefLabelScope
Current bool
}
type ProjectConversationWorkspaceGitRefLabelScope ¶ added in v0.5.0
type ProjectConversationWorkspaceGitRefLabelScope string
const ( ProjectConversationWorkspaceGitRefLabelScopeHead ProjectConversationWorkspaceGitRefLabelScope = "head" ProjectConversationWorkspaceGitRefLabelScopeLocalBranch ProjectConversationWorkspaceGitRefLabelScope = "local_branch" ProjectConversationWorkspaceGitRefLabelScopeRemoteTracking ProjectConversationWorkspaceGitRefLabelScope = "remote_tracking_branch" )
type ProjectConversationWorkspaceGitRemoteOpInput ¶ added in v0.5.0
type ProjectConversationWorkspaceGitRemoteOpInput struct {
RepoPath WorkspaceRepoPath
Op ProjectConversationWorkspaceGitRemoteOpKind
}
type ProjectConversationWorkspaceGitRemoteOpKind ¶ added in v0.5.0
type ProjectConversationWorkspaceGitRemoteOpKind string
const ( ProjectConversationWorkspaceGitRemoteOpFetch ProjectConversationWorkspaceGitRemoteOpKind = "fetch" ProjectConversationWorkspaceGitRemoteOpPull ProjectConversationWorkspaceGitRemoteOpKind = "pull" ProjectConversationWorkspaceGitRemoteOpPush ProjectConversationWorkspaceGitRemoteOpKind = "push" )
type ProjectConversationWorkspaceGitRemoteOpResult ¶ added in v0.5.0
type ProjectConversationWorkspaceGitRemoteOpResult struct {
ConversationID uuid.UUID
RepoPath string
Op ProjectConversationWorkspaceGitRemoteOpKind
Output string
}
type ProjectConversationWorkspaceMetadata ¶ added in v0.4.0
type ProjectConversationWorkspaceMetadata struct {
ConversationID uuid.UUID
Available bool
WorkspacePath string
Repos []ProjectConversationWorkspaceRepoMetadata
SyncPrompt *ProjectConversationWorkspaceSyncPrompt
}
type ProjectConversationWorkspaceMissingRepo ¶ added in v0.4.0
type ProjectConversationWorkspacePreviewKind ¶ added in v0.4.0
type ProjectConversationWorkspacePreviewKind string
const ( ProjectConversationWorkspacePreviewKindText ProjectConversationWorkspacePreviewKind = "text" ProjectConversationWorkspacePreviewKindBinary ProjectConversationWorkspacePreviewKind = "binary" )
type ProjectConversationWorkspaceReadOnlyReason ¶ added in v0.5.0
type ProjectConversationWorkspaceReadOnlyReason string
const ( ProjectConversationWorkspaceReadOnlyReasonBinaryFile ProjectConversationWorkspaceReadOnlyReason = "binary_file" ProjectConversationWorkspaceReadOnlyReasonFileTooLarge ProjectConversationWorkspaceReadOnlyReason = "file_too_large" ProjectConversationWorkspaceReadOnlyReasonUnsupportedEncoding ProjectConversationWorkspaceReadOnlyReason = "unsupported_encoding" )
func (ProjectConversationWorkspaceReadOnlyReason) String ¶ added in v0.5.0
func (r ProjectConversationWorkspaceReadOnlyReason) String() string
type ProjectConversationWorkspaceRepoMetadata ¶ added in v0.4.0
type ProjectConversationWorkspaceRepoRefs ¶ added in v0.5.0
type ProjectConversationWorkspaceRepoRefs struct {
ConversationID uuid.UUID
RepoPath string
CurrentRef ProjectConversationWorkspaceCurrentRef
LocalBranches []ProjectConversationWorkspaceBranchRef
RemoteBranches []ProjectConversationWorkspaceBranchRef
}
type ProjectConversationWorkspaceSearch ¶ added in v0.5.0
type ProjectConversationWorkspaceSearchResult ¶ added in v0.5.0
type ProjectConversationWorkspaceSelection ¶ added in v0.5.0
type ProjectConversationWorkspaceStageAllInput ¶ added in v0.5.0
type ProjectConversationWorkspaceStageAllInput struct {
RepoPath WorkspaceRepoPath
}
type ProjectConversationWorkspaceStageAllResult ¶ added in v0.5.0
type ProjectConversationWorkspaceStageFileInput ¶ added in v0.5.0
type ProjectConversationWorkspaceStageFileInput struct {
RepoPath WorkspaceRepoPath
Path string
}
type ProjectConversationWorkspaceStageFileResult ¶ added in v0.5.0
type ProjectConversationWorkspaceSyncPrompt ¶ added in v0.4.0
type ProjectConversationWorkspaceSyncPrompt struct {
Reason ProjectConversationWorkspaceSyncReason
MissingRepos []ProjectConversationWorkspaceMissingRepo
}
type ProjectConversationWorkspaceSyncReason ¶ added in v0.4.0
type ProjectConversationWorkspaceSyncReason string
const ( ProjectConversationWorkspaceSyncReasonRepoBindingChanged ProjectConversationWorkspaceSyncReason = "repo_binding_changed" ProjectConversationWorkspaceSyncReasonRepoMissing ProjectConversationWorkspaceSyncReason = "repo_missing" )
type ProjectConversationWorkspaceSyncRequiredError ¶ added in v0.4.0
type ProjectConversationWorkspaceSyncRequiredError struct {
Prompt ProjectConversationWorkspaceSyncPrompt
RepoPath string
}
func (*ProjectConversationWorkspaceSyncRequiredError) Error ¶ added in v0.4.0
func (e *ProjectConversationWorkspaceSyncRequiredError) Error() string
func (*ProjectConversationWorkspaceSyncRequiredError) Is ¶ added in v0.4.0
func (e *ProjectConversationWorkspaceSyncRequiredError) Is(target error) bool
type ProjectConversationWorkspaceTree ¶ added in v0.4.0
type ProjectConversationWorkspaceTree struct {
ConversationID uuid.UUID
RepoPath string
Path string
Entries []ProjectConversationWorkspaceTreeEntry
}
type ProjectConversationWorkspaceTreeEntry ¶ added in v0.4.0
type ProjectConversationWorkspaceTreeEntry struct {
Path string
Name string
Kind ProjectConversationWorkspaceTreeEntryKind
SizeBytes int64
}
type ProjectConversationWorkspaceTreeEntryKind ¶ added in v0.4.0
type ProjectConversationWorkspaceTreeEntryKind string
const ( ProjectConversationWorkspaceTreeEntryKindDirectory ProjectConversationWorkspaceTreeEntryKind = "directory" ProjectConversationWorkspaceTreeEntryKindFile ProjectConversationWorkspaceTreeEntryKind = "file" )
type ProjectConversationWorkspaceUnstageInput ¶ added in v0.5.0
type ProjectConversationWorkspaceUnstageInput struct {
RepoPath WorkspaceRepoPath
Path string
}
type ProjectConversationWorkspaceUnstageResult ¶ added in v0.5.0
type ProjectConversationWorkspaceWorkingSet ¶ added in v0.5.0
type RawChatContext ¶
type RawProjectConversationFocus ¶
type RawProjectConversationFocus struct {
Kind string `json:"kind"`
ConversationID *string `json:"conversation_id"`
WorkflowID *string `json:"workflow_id"`
WorkflowName *string `json:"workflow_name"`
WorkflowType *string `json:"workflow_type"`
HarnessPath *string `json:"harness_path"`
IsActive *bool `json:"is_active"`
SelectedArea *string `json:"selected_area"`
HasDirtyDraft *bool `json:"has_dirty_draft"`
SkillID *string `json:"skill_id"`
SkillName *string `json:"skill_name"`
SelectedFilePath *string `json:"selected_file_path"`
BoundWorkflowNames []string `json:"bound_workflow_names"`
TicketID *string `json:"ticket_id"`
TicketIdentifier *string `json:"ticket_identifier"`
TicketTitle *string `json:"ticket_title"`
TicketDescription *string `json:"ticket_description"`
TicketStatus *string `json:"ticket_status"`
TicketPriority *string `json:"ticket_priority"`
TicketAttemptCount *int `json:"ticket_attempt_count"`
TicketRetryPaused *bool `json:"ticket_retry_paused"`
TicketPauseReason *string `json:"ticket_pause_reason"`
TicketDependencies []RawProjectConversationTicketDependency `json:"ticket_dependencies"`
TicketRepoScopes []RawProjectConversationTicketRepoScope `json:"ticket_repo_scopes"`
TicketRecentActivity []RawProjectConversationTicketActivity `json:"ticket_recent_activity"`
TicketHookHistory []RawProjectConversationTicketHook `json:"ticket_hook_history"`
TicketAssignedAgent *RawProjectConversationTicketAssignedAgent `json:"ticket_assigned_agent"`
TicketCurrentRun *RawProjectConversationTicketRun `json:"ticket_current_run"`
TicketTargetMachine *RawProjectConversationTicketTargetMachine `json:"ticket_target_machine"`
MachineID *string `json:"machine_id"`
MachineName *string `json:"machine_name"`
MachineHost *string `json:"machine_host"`
MachineStatus *string `json:"machine_status"`
HealthSummary *string `json:"health_summary"`
WorkspaceRepoPath *string `json:"workspace_repo_path"`
WorkspaceFilePath *string `json:"workspace_file_path"`
WorkspaceSelectionFrom *int `json:"workspace_selection_from"`
WorkspaceSelectionTo *int `json:"workspace_selection_to"`
WorkspaceSelectionStartLine *int `json:"workspace_selection_start_line"`
WorkspaceSelectionStartColumn *int `json:"workspace_selection_start_column"`
WorkspaceSelectionEndLine *int `json:"workspace_selection_end_line"`
WorkspaceSelectionEndColumn *int `json:"workspace_selection_end_column"`
WorkspaceSelectionText *string `json:"workspace_selection_text"`
WorkspaceSelectionContextBefore *string `json:"workspace_selection_context_before"`
WorkspaceSelectionContextAfter *string `json:"workspace_selection_context_after"`
WorkspaceSelectionTruncated *bool `json:"workspace_selection_truncated"`
WorkspaceWorkingSet []RawProjectConversationWorkspaceWorkingSet `json:"workspace_working_set"`
}
type RawProjectConversationWorkspaceWorkingSet ¶ added in v0.5.0
type RawStartInput ¶
type RawStartInput struct {
Message string `json:"message"`
Source string `json:"source"`
ProviderID *string `json:"provider_id"`
Context RawChatContext `json:"context"`
SessionID *string `json:"session_id"`
}
type Runtime ¶
type Runtime interface {
Supports(catalogdomain.AgentProvider) bool
StartTurn(context.Context, RuntimeTurnInput) (TurnStream, error)
CloseSession(SessionID) bool
}
func NewRuntime ¶
type RuntimeEnvironmentResolveInput ¶ added in v0.3.0
type RuntimeEnvironmentResolver ¶ added in v0.3.0
type RuntimeEnvironmentResolver interface {
ResolveProviderEnvironment(ctx context.Context, input RuntimeEnvironmentResolveInput) ([]string, error)
}
type RuntimeInterruptEvent ¶
type RuntimeInterruptEvent struct {
RequestID string `json:"request_id"`
Kind string `json:"kind"`
Options []RuntimeInterruptDecision `json:"options,omitempty"`
Payload map[string]any `json:"payload,omitempty"`
}
type RuntimeInterruptResponseInput ¶
type RuntimeInterruptResponseInput struct {
SessionID SessionID
ProjectID uuid.UUID
TicketID *uuid.UUID
WorkflowID *uuid.UUID
AgentID *uuid.UUID
Provider catalogdomain.AgentProvider
RequestID string
Kind string
Decision string
Answer map[string]any
Payload map[string]any
WorkingDirectory provider.AbsolutePath
Environment []string
ResumeProviderThreadID string
ResumeProviderTurnID string
PersistentConversation bool
}
type RuntimeSessionAnchor ¶
type RuntimeTurnInput ¶
type RuntimeTurnInput struct {
SessionID SessionID
ProjectID uuid.UUID
TicketID *uuid.UUID
WorkflowID *uuid.UUID
AgentID *uuid.UUID
Provider catalogdomain.AgentProvider
Message string
SystemPrompt string
WorkingDirectory provider.AbsolutePath
Environment []string
ResumeProviderThreadID string
ResumeProviderTurnID string
MaxTurns int
MaxBudgetUSD float64
PersistentConversation bool
}
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func (*Service) CloseSession ¶
func (*Service) EnableDurableSessions ¶
func (*Service) StartTurn ¶
func (s *Service) StartTurn(ctx context.Context, userID UserID, input StartInput) (TurnStream, error)
type StartInput ¶
type StartInput struct {
Message string
Source Source
ProviderID *uuid.UUID
Context Context
SessionID *SessionID
}
func ParseStartInput ¶
func ParseStartInput(raw RawStartInput) (StartInput, error)
type StreamEvent ¶
type TurnStream ¶
type TurnStream struct {
Events <-chan StreamEvent
}
type UserID ¶
type UserID string
const ( // InstanceAdminProjectConversationUserID is the stable non-OIDC owner used // for persistent project conversations when browser login is disabled. InstanceAdminProjectConversationUserID UserID = "instance-admin" // LegacyLocalProjectConversationUserID is the previous auth-disabled owner // marker that now converges to instance-admin. LegacyLocalProjectConversationUserID UserID = "local-user:default" )
const AnonymousUserID UserID = "anonymous"
func ParseUserID ¶
type WorkspaceBranchName ¶ added in v0.5.0
type WorkspaceBranchName string
func ParseWorkspaceBranchName ¶ added in v0.5.0
func ParseWorkspaceBranchName(raw string) (WorkspaceBranchName, error)
func (WorkspaceBranchName) String ¶ added in v0.5.0
func (n WorkspaceBranchName) String() string
type WorkspaceCheckoutTarget ¶ added in v0.5.0
type WorkspaceCheckoutTarget struct {
Kind WorkspaceCheckoutTargetKind
BranchName WorkspaceBranchName
CreateTrackingBranch bool
LocalBranchName *WorkspaceBranchName
}
func ParseWorkspaceCheckoutTarget ¶ added in v0.5.0
type WorkspaceCheckoutTargetKind ¶ added in v0.5.0
type WorkspaceCheckoutTargetKind string
const ( WorkspaceCheckoutTargetKindLocalBranch WorkspaceCheckoutTargetKind = "local_branch" WorkspaceCheckoutTargetKindRemoteTrackingBranch WorkspaceCheckoutTargetKind = "remote_tracking_branch" WorkspaceCheckoutTargetKindNewLocalBranch WorkspaceCheckoutTargetKind = "new_local_branch" )
type WorkspaceCommitID ¶ added in v0.5.0
type WorkspaceCommitID string
func ParseWorkspaceCommitID ¶ added in v0.5.0
func ParseWorkspaceCommitID(raw string) (WorkspaceCommitID, error)
func (WorkspaceCommitID) String ¶ added in v0.5.0
func (id WorkspaceCommitID) String() string
type WorkspaceCreatableFilePath ¶ added in v0.5.0
type WorkspaceCreatableFilePath string
func ParseWorkspaceCreatableFilePath ¶ added in v0.5.0
func ParseWorkspaceCreatableFilePath(raw string) (WorkspaceCreatableFilePath, error)
func (WorkspaceCreatableFilePath) String ¶ added in v0.5.0
func (p WorkspaceCreatableFilePath) String() string
type WorkspaceDeleteableFilePath ¶ added in v0.5.0
type WorkspaceDeleteableFilePath string
func ParseWorkspaceDeleteableFilePath ¶ added in v0.5.0
func ParseWorkspaceDeleteableFilePath(raw string) (WorkspaceDeleteableFilePath, error)
func (WorkspaceDeleteableFilePath) String ¶ added in v0.5.0
func (p WorkspaceDeleteableFilePath) String() string
type WorkspaceEncoding ¶ added in v0.5.0
type WorkspaceEncoding string
const WorkspaceEncodingUTF8 WorkspaceEncoding = "utf-8"
func ParseWorkspaceEncoding ¶ added in v0.5.0
func ParseWorkspaceEncoding(raw string) (WorkspaceEncoding, error)
func (WorkspaceEncoding) String ¶ added in v0.5.0
func (e WorkspaceEncoding) String() string
type WorkspaceFilePath ¶ added in v0.5.0
type WorkspaceFilePath string
func ParseWorkspaceFilePath ¶ added in v0.5.0
func ParseWorkspaceFilePath(raw string) (WorkspaceFilePath, error)
func (WorkspaceFilePath) String ¶ added in v0.5.0
func (p WorkspaceFilePath) String() string
type WorkspaceFileRevision ¶ added in v0.5.0
type WorkspaceFileRevision string
func ParseWorkspaceFileRevision ¶ added in v0.5.0
func ParseWorkspaceFileRevision(raw string) (WorkspaceFileRevision, error)
func (WorkspaceFileRevision) String ¶ added in v0.5.0
func (r WorkspaceFileRevision) String() string
type WorkspaceGitGraphWindow ¶ added in v0.5.0
type WorkspaceGitGraphWindow struct {
Limit int
}
func ParseWorkspaceGitGraphWindow ¶ added in v0.5.0
func ParseWorkspaceGitGraphWindow(raw string) (WorkspaceGitGraphWindow, error)
type WorkspaceLineEnding ¶ added in v0.5.0
type WorkspaceLineEnding string
const ( WorkspaceLineEndingLF WorkspaceLineEnding = "lf" WorkspaceLineEndingCRLF WorkspaceLineEnding = "crlf" )
func ParseWorkspaceLineEnding ¶ added in v0.5.0
func ParseWorkspaceLineEnding(raw string) (WorkspaceLineEnding, error)
func (WorkspaceLineEnding) String ¶ added in v0.5.0
func (l WorkspaceLineEnding) String() string
type WorkspaceRenamableFilePath ¶ added in v0.5.0
type WorkspaceRenamableFilePath string
func ParseWorkspaceRenamableFilePath ¶ added in v0.5.0
func ParseWorkspaceRenamableFilePath(raw string) (WorkspaceRenamableFilePath, error)
func (WorkspaceRenamableFilePath) String ¶ added in v0.5.0
func (p WorkspaceRenamableFilePath) String() string
type WorkspaceRepoPath ¶ added in v0.5.0
type WorkspaceRepoPath string
func ParseWorkspaceRepoPath ¶ added in v0.5.0
func ParseWorkspaceRepoPath(raw string) (WorkspaceRepoPath, error)
func (WorkspaceRepoPath) String ¶ added in v0.5.0
func (p WorkspaceRepoPath) String() string
type WorkspaceTextContent ¶ added in v0.5.0
type WorkspaceTextContent string
func ParseWorkspaceTextContent ¶ added in v0.5.0
func ParseWorkspaceTextContent(raw string) (WorkspaceTextContent, error)
func (WorkspaceTextContent) String ¶ added in v0.5.0
func (c WorkspaceTextContent) String() string
Source Files
¶
- conversation_terminal_service.go
- gemini_protocol.go
- project_conversation_lifecycle.go
- project_conversation_mux_broker.go
- project_conversation_owner.go
- project_conversation_remote_command.go
- project_conversation_retention.go
- project_conversation_runtime.go
- project_conversation_runtime_manager.go
- project_conversation_service.go
- project_conversation_stores.go
- project_conversation_stream_broker.go
- project_conversation_stream_projection.go
- project_conversation_ticket_focus.go
- project_conversation_workspace_browser.go
- project_conversation_workspace_diff.go
- project_conversation_workspace_file_edit.go
- project_conversation_workspace_file_types.go
- project_conversation_workspace_git.go
- project_conversation_workspace_sync.go
- project_focus.go
- project_focus_snapshot.go
- provider_surface.go
- runtime.go
- runtime_claude.go
- runtime_codex.go
- runtime_cost.go
- runtime_gemini.go
- runtime_messages.go
- runtime_permission.go
- runtime_secrets.go
- service.go
- session_registry.go
- session_store.go
Click to show internal directories.
Click to hide internal directories.