chatconversation

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const CostRecordedEventType string = "project_conversation.cost_recorded"

Variables

View Source
var (
	ErrNotFound          = errors.New("chat conversation resource not found")
	ErrConflict          = errors.New("chat conversation resource conflict")
	ErrInvalidInput      = errors.New("chat conversation invalid input")
	ErrTurnAlreadyActive = fmt.Errorf(
		"%w: project conversation already has an active turn",
		ErrConflict,
	)
	ErrInterruptPending = fmt.Errorf(
		"%w: project conversation has a pending interrupt",
		ErrConflict,
	)
)

Functions

This section is empty.

Types

type AppendStepEventInput

type AppendStepEventInput struct {
	RunID              uuid.UUID
	PrincipalID        uuid.UUID
	ConversationID     uuid.UUID
	ProjectID          uuid.UUID
	StepStatus         string
	Summary            *string
	SourceTraceEventID *uuid.UUID
}

type AppendTraceEventInput

type AppendTraceEventInput struct {
	RunID          uuid.UUID
	PrincipalID    uuid.UUID
	ConversationID uuid.UUID
	ProjectID      uuid.UUID
	Provider       string
	Kind           string
	Stream         string
	Text           *string
	Payload        map[string]any
}

type ClosePrincipalInput

type ClosePrincipalInput struct {
	PrincipalID uuid.UUID
}

type Conversation

type Conversation struct {
	ID                        uuid.UUID
	ProjectID                 uuid.UUID
	UserID                    string
	Source                    Source
	ProviderID                uuid.UUID
	Status                    ConversationStatus
	ProviderThreadID          *string
	LastTurnID                *string
	ProviderThreadStatus      *string
	ProviderThreadActiveFlags []string
	RollingSummary            string
	LastActivityAt            time.Time
	CreatedAt                 time.Time
	UpdatedAt                 time.Time
}

type ConversationAnchors

type ConversationAnchors struct {
	ProviderThreadID          *string
	LastTurnID                *string
	ProviderThreadStatus      *string
	ProviderThreadActiveFlags *[]string
	RollingSummary            string
}

type ConversationStatus

type ConversationStatus string
const (
	ConversationStatusActive      ConversationStatus = "active"
	ConversationStatusInterrupted ConversationStatus = "interrupted"
	ConversationStatusClosed      ConversationStatus = "closed"
)

type CreateConversation

type CreateConversation struct {
	ProjectID  uuid.UUID
	UserID     string
	Source     Source
	ProviderID uuid.UUID
}

type CreateRunInput

type CreateRunInput struct {
	RunID                uuid.UUID
	PrincipalID          uuid.UUID
	ConversationID       uuid.UUID
	ProjectID            uuid.UUID
	ProviderID           uuid.UUID
	TurnID               *uuid.UUID
	Status               RunStatus
	SessionID            *string
	WorkspacePath        *string
	ProviderThreadID     *string
	ProviderTurnID       *string
	RuntimeStartedAt     *time.Time
	LastHeartbeatAt      *time.Time
	CurrentStepStatus    *string
	CurrentStepSummary   *string
	CurrentStepChangedAt *time.Time
}

type EnsurePrincipalInput

type EnsurePrincipalInput struct {
	ConversationID uuid.UUID
	ProjectID      uuid.UUID
	ProviderID     uuid.UUID
	Name           string
}

type Entry

type Entry struct {
	ID             uuid.UUID
	ConversationID uuid.UUID
	TurnID         *uuid.UUID
	Seq            int
	Kind           EntryKind
	Payload        map[string]any
	CreatedAt      time.Time
}

type EntryKind

type EntryKind string
const (
	EntryKindUserMessage         EntryKind = "user_message"
	EntryKindAssistantTextDelta  EntryKind = "assistant_text_delta"
	EntryKindActionProposal      EntryKind = "action_proposal"
	EntryKindDiff                EntryKind = "diff"
	EntryKindInterrupt           EntryKind = "interrupt"
	EntryKindInterruptResolution EntryKind = "interrupt_resolution"
	EntryKindActionResult        EntryKind = "action_result"
	EntryKindSystem              EntryKind = "system"
)

type InterruptKind

type InterruptKind string
const (
	InterruptKindCommandExecutionApproval InterruptKind = "command_execution_approval"
	InterruptKindFileChangeApproval       InterruptKind = "file_change_approval"
	InterruptKindUserInput                InterruptKind = "user_input"
)

type InterruptResponse

type InterruptResponse struct {
	Decision *string
	Answer   map[string]any
}

type InterruptStatus

type InterruptStatus string
const (
	InterruptStatusPending  InterruptStatus = "pending"
	InterruptStatusResolved InterruptStatus = "resolved"
)

type ListConversationsFilter

type ListConversationsFilter struct {
	ProjectID  uuid.UUID
	UserID     string
	Source     *Source
	ProviderID *uuid.UUID
}

type PendingInterrupt

type PendingInterrupt struct {
	ID                uuid.UUID
	ConversationID    uuid.UUID
	TurnID            uuid.UUID
	ProviderRequestID string
	Kind              InterruptKind
	Payload           map[string]any
	Status            InterruptStatus
	Decision          *string
	Response          map[string]any
	ResolvedAt        *time.Time
	CreatedAt         time.Time
	UpdatedAt         time.Time
}

type PrincipalStatus

type PrincipalStatus string
const (
	PrincipalStatusActive PrincipalStatus = "active"
	PrincipalStatusClosed PrincipalStatus = "closed"
)

type ProjectConversationPrincipal

type ProjectConversationPrincipal struct {
	ID                   uuid.UUID
	ConversationID       uuid.UUID
	ProjectID            uuid.UUID
	ProviderID           uuid.UUID
	Name                 string
	Status               PrincipalStatus
	RuntimeState         RuntimeState
	CurrentSessionID     *string
	CurrentWorkspacePath *string
	CurrentRunID         *uuid.UUID
	LastHeartbeatAt      *time.Time
	CurrentStepStatus    *string
	CurrentStepSummary   *string
	CurrentStepChangedAt *time.Time
	ClosedAt             *time.Time
	CreatedAt            time.Time
	UpdatedAt            time.Time
}

type ProjectConversationRun

type ProjectConversationRun struct {
	ID                   uuid.UUID
	PrincipalID          uuid.UUID
	ConversationID       uuid.UUID
	ProjectID            uuid.UUID
	ProviderID           uuid.UUID
	TurnID               *uuid.UUID
	Status               RunStatus
	SessionID            *string
	WorkspacePath        *string
	ProviderThreadID     *string
	ProviderTurnID       *string
	RuntimeStartedAt     *time.Time
	TerminalAt           *time.Time
	LastError            *string
	LastHeartbeatAt      *time.Time
	CostAmount           float64
	InputTokens          int64
	OutputTokens         int64
	CachedInputTokens    int64
	CacheCreationTokens  int64
	ReasoningTokens      int64
	PromptTokens         int64
	CandidateTokens      int64
	ToolTokens           int64
	TotalTokens          int64
	CurrentStepStatus    *string
	CurrentStepSummary   *string
	CurrentStepChangedAt *time.Time
	CreatedAt            time.Time
}

type ProjectConversationStepEvent

type ProjectConversationStepEvent struct {
	ID                 uuid.UUID
	PrincipalID        uuid.UUID
	RunID              uuid.UUID
	ConversationID     uuid.UUID
	ProjectID          uuid.UUID
	StepStatus         string
	Summary            *string
	SourceTraceEventID *uuid.UUID
	CreatedAt          time.Time
}

type ProjectConversationTraceEvent

type ProjectConversationTraceEvent struct {
	ID             uuid.UUID
	PrincipalID    uuid.UUID
	RunID          uuid.UUID
	ConversationID uuid.UUID
	ProjectID      uuid.UUID
	Sequence       int64
	Provider       string
	Kind           string
	Stream         string
	Text           *string
	Payload        map[string]any
	CreatedAt      time.Time
}

type RecordRunUsageInput

type RecordRunUsageInput struct {
	RunID      uuid.UUID
	ProjectID  uuid.UUID
	ProviderID uuid.UUID
	RecordedAt time.Time
	Totals     RunUsageSnapshot
	Delta      RunUsageSnapshot
}

type RunStatus

type RunStatus string
const (
	RunStatusLaunching   RunStatus = "launching"
	RunStatusExecuting   RunStatus = "executing"
	RunStatusInterrupted RunStatus = "interrupted"
	RunStatusCompleted   RunStatus = "completed"
	RunStatusFailed      RunStatus = "failed"
	RunStatusTerminated  RunStatus = "terminated"
)

type RunUsageSnapshot

type RunUsageSnapshot struct {
	InputTokens         int64
	OutputTokens        int64
	CachedInputTokens   int64
	CacheCreationTokens int64
	ReasoningTokens     int64
	PromptTokens        int64
	CandidateTokens     int64
	ToolTokens          int64
	TotalTokens         int64
	CostAmount          *float64
	ModelContextWindow  *int64
}

type RuntimeState

type RuntimeState string
const (
	RuntimeStateInactive    RuntimeState = "inactive"
	RuntimeStateReady       RuntimeState = "ready"
	RuntimeStateExecuting   RuntimeState = "executing"
	RuntimeStateInterrupted RuntimeState = "interrupted"
)

type Source

type Source string
const (
	SourceProjectSidebar Source = "project_sidebar"
)

func ParseSource

func ParseSource(raw string) (Source, error)

type Turn

type Turn struct {
	ID             uuid.UUID
	ConversationID uuid.UUID
	TurnIndex      int
	ProviderTurnID *string
	Status         TurnStatus
	StartedAt      time.Time
	CompletedAt    *time.Time
	CreatedAt      time.Time
	UpdatedAt      time.Time
}

type TurnStatus

type TurnStatus string
const (
	TurnStatusPending     TurnStatus = "pending"
	TurnStatusRunning     TurnStatus = "running"
	TurnStatusInterrupted TurnStatus = "interrupted"
	TurnStatusCompleted   TurnStatus = "completed"
	TurnStatusFailed      TurnStatus = "failed"
	TurnStatusTerminated  TurnStatus = "terminated"
)

type UpdatePrincipalRuntimeInput

type UpdatePrincipalRuntimeInput struct {
	PrincipalID          uuid.UUID
	RuntimeState         RuntimeState
	CurrentSessionID     *string
	CurrentWorkspacePath *string
	CurrentRunID         *uuid.UUID
	LastHeartbeatAt      *time.Time
	CurrentStepStatus    *string
	CurrentStepSummary   *string
	CurrentStepChangedAt *time.Time
}

type UpdateProviderRateLimitInput

type UpdateProviderRateLimitInput struct {
	ProjectID        uuid.UUID
	ProviderID       uuid.UUID
	ObservedAt       time.Time
	RateLimitPayload map[string]any
}

type UpdateRunInput

type UpdateRunInput struct {
	RunID                uuid.UUID
	Status               *RunStatus
	ProviderThreadID     *string
	ProviderTurnID       *string
	TerminalAt           *time.Time
	LastError            *string
	LastHeartbeatAt      *time.Time
	CostAmount           *float64
	CurrentStepStatus    *string
	CurrentStepSummary   *string
	CurrentStepChangedAt *time.Time
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL