Documentation
¶
Index ¶
- Constants
- Variables
- 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 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) CloseRuntime(ctx context.Context, userID UserID, conversationID uuid.UUID) 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) DeleteConversation(ctx context.Context, userID UserID, conversationID uuid.UUID, ...) (domain.DeleteConversationResult, 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) GetWorkspaceMetadata(ctx context.Context, userID UserID, conversationID uuid.UUID) (ProjectConversationWorkspaceMetadata, 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) 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) StartTurn(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) 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 ProjectConversationWorkspaceDiff
- type ProjectConversationWorkspaceDiffKind
- type ProjectConversationWorkspaceFileDiff
- type ProjectConversationWorkspaceFilePatch
- type ProjectConversationWorkspaceFilePreview
- type ProjectConversationWorkspaceFileStatus
- type ProjectConversationWorkspaceMetadata
- type ProjectConversationWorkspaceMissingRepo
- type ProjectConversationWorkspacePreviewKind
- type ProjectConversationWorkspaceRepoDiff
- type ProjectConversationWorkspaceRepoMetadata
- type ProjectConversationWorkspaceSyncPrompt
- type ProjectConversationWorkspaceSyncReason
- type ProjectConversationWorkspaceSyncRequiredError
- type ProjectConversationWorkspaceTree
- type ProjectConversationWorkspaceTreeEntry
- type ProjectConversationWorkspaceTreeEntryKind
- type RawChatContext
- type RawProjectConversationFocus
- type RawProjectConversationTicketActivity
- type RawProjectConversationTicketAssignedAgent
- type RawProjectConversationTicketDependency
- type RawProjectConversationTicketHook
- type RawProjectConversationTicketRepoScope
- type RawProjectConversationTicketRun
- type RawProjectConversationTicketTargetMachine
- 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
Constants ¶
View Source
const ( DefaultMaxTurns = 10 DefaultMaxBudgetUSD = 2.0 )
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") )
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 ¶
This section is empty.
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 ProjectConversationFocus ¶
type ProjectConversationFocus struct {
Kind ProjectConversationFocusKind
Workflow *ProjectConversationWorkflowFocus
Skill *ProjectConversationSkillFocus
Ticket *ProjectConversationTicketFocus
Machine *ProjectConversationMachineFocus
}
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" )
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) CloseRuntime ¶
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) 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) 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) GetWorkspaceMetadata ¶ added in v0.4.0
func (s *ProjectConversationService) GetWorkspaceMetadata( ctx context.Context, userID UserID, conversationID uuid.UUID, ) (ProjectConversationWorkspaceMetadata, 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) 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) SyncWorkspace ¶ added in v0.4.0
func (s *ProjectConversationService) SyncWorkspace( ctx context.Context, userID UserID, conversationID uuid.UUID, ) (ProjectConversationWorkspaceMetadata, 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 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 ProjectConversationWorkspaceFileDiff ¶
type ProjectConversationWorkspaceFileDiff struct {
Path string
Status ProjectConversationWorkspaceFileStatus
Added int
Removed int
}
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 ProjectConversationWorkspaceFileStatus ¶
type ProjectConversationWorkspaceFileStatus string
const ( ProjectConversationWorkspaceFileStatusModified ProjectConversationWorkspaceFileStatus = "modified" ProjectConversationWorkspaceFileStatusAdded ProjectConversationWorkspaceFileStatus = "added" ProjectConversationWorkspaceFileStatusDeleted ProjectConversationWorkspaceFileStatus = "deleted" ProjectConversationWorkspaceFileStatusRenamed ProjectConversationWorkspaceFileStatus = "renamed" ProjectConversationWorkspaceFileStatusUntracked ProjectConversationWorkspaceFileStatus = "untracked" )
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 ProjectConversationWorkspaceRepoMetadata ¶ added in v0.4.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 RawChatContext ¶
type RawProjectConversationFocus ¶
type RawProjectConversationFocus struct {
Kind string `json:"kind"`
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"`
}
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
}
Source Files
¶
- conversation_terminal_service.go
- gemini_protocol.go
- project_conversation_mux_broker.go
- project_conversation_retention.go
- project_conversation_runtime_manager.go
- project_conversation_service.go
- project_conversation_stores.go
- project_conversation_stream_broker.go
- project_conversation_ticket_focus.go
- project_conversation_workspace_browser.go
- project_conversation_workspace_diff.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.