Documentation
¶
Index ¶
- Constants
- type Conversation
- type ConversationListItem
- type ConversationMessage
- type DeleteConversationRequest
- type DeleteConversationResponse
- type GetConversationRequest
- type GetConversationResponse
- type ListConversationsRequest
- type ListConversationsResponse
- type ListConversationsResponseBody
- type PutConversationRequest
- type PutConversationRequestBody
- type PutConversationResponse
- type PutMessagesToConversationRequest
- type PutMessagesToConversationRequestBody
- type PutMessagesToConversationResponse
- type SearchConversationsRequest
- type SearchConversationsResponse
- type SearchConversationsResponseBody
Constants ¶
View Source
const ( ConversationFileExtension = "json" MaxPageSize = 256 DefaultPageSize = 12 ConversationSchemaVersion = "v1.0.0" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Conversation ¶
type Conversation struct {
SchemaVersion string `json:"schemaVersion"`
ID string `json:"id"`
Title string `json:"title,omitempty"`
CreatedAt time.Time `json:"createdAt"`
ModifiedAt time.Time `json:"modifiedAt"`
// Ordered list of turns (messages) in the transcript.
Messages []ConversationMessage `json:"messages"`
// Extra metadata for your app (folders, tags, project, etc.).
Meta map[string]any `json:"meta,omitempty"`
}
Conversation is the full chat, stored as a single JSON file.
type ConversationListItem ¶
type ConversationListItem struct {
ID string `json:"id"`
SanatizedTitle string `json:"sanatizedTitle"`
ModifiedAt *time.Time `json:"modifiedAt"`
}
ConversationListItem represents a conversation with basic details.
type ConversationMessage ¶
type ConversationMessage struct {
ID string `json:"id"`
CreatedAt time.Time `json:"createdAt"`
Role inferenceSpec.RoleEnum `json:"role"`
Status inferenceSpec.Status `json:"status,omitzero"`
// Default model configuration for this turn. This can be empty and would mean that model param have been carried
// over from previous messages. Same for model ref.
ModelParam *inferenceSpec.ModelParam `json:"modelParam,omitempty"`
ModelPresetRef *modelpresetSpec.ModelPresetRef `json:"modelPresetRef,omitempty"`
// Canonical, lossless events for this turn, in the order they occurred.
//
// For a user turn, you typically have exactly one InputKindInputMessage
// entry in Inputs, possibly preceded by earlier tool outputs, etc.
// For an assistant turn, you typically have:
// - one or more OutputKindOutputMessage entries,
// - zero or more OutputKindReasoningMessage entries,
// - zero or more tool call / web-search events, etc.
Inputs []inferenceSpec.InputUnion `json:"inputs,omitempty"`
Outputs []inferenceSpec.OutputUnion `json:"outputs,omitempty"`
// Tool choices that were *available* when this turn ran.
// For the next completion, the app can choose to reuse or override these.
ToolChoices []inferenceSpec.ToolChoice `json:"toolChoices,omitempty"`
ToolStoreChoices []toolSpec.ToolStoreChoice `json:"toolStoreChoices,omitempty"`
MCPContext *mcpSpec.MCPConversationContext `json:"mcpContext,omitempty"`
MCPAppContextUpdates []mcpSpec.MCPAppModelContextUpdate `json:"mcpAppContextUpdates,omitempty"`
// Attachments that backed this turn's user input (files, URLs, etc).
// These are ref attachments; ContentBlock may or may not be hydrated.
Attachments []attachment.Attachment `json:"attachments,omitempty"`
EnabledSkillRefs []skillSpec.SkillRef `json:"enabledSkillRefs,omitempty"`
ActiveSkillRefs []skillSpec.SkillRef `json:"activeSkillRefs,omitempty"`
// Usage / error info from the model/provider for this turn
// (usually attached to assistant turns).
Usage *inferenceSpec.Usage `json:"usage,omitempty"`
Error *inferenceSpec.Error `json:"error,omitempty"`
DebugDetails any `json:"debugDetails,omitempty"`
// Arbitrary UI/app metadata (tags, pinned, read state, etc.).
Meta map[string]any `json:"meta,omitempty"`
}
ConversationMessage represents a single *turn* in the conversation.
Examples:
- User turn: text + attachments + per-turn tool choices.
- Assistant turn: one or more messages, tool calls, tool outputs, reasoning, usage.
type DeleteConversationResponse ¶
type DeleteConversationResponse struct{}
type GetConversationRequest ¶
type GetConversationResponse ¶
type GetConversationResponse struct {
Body *Conversation
}
type ListConversationsResponse ¶
type ListConversationsResponse struct {
Body *ListConversationsResponseBody
}
type ListConversationsResponseBody ¶
type ListConversationsResponseBody struct {
ConversationListItems []ConversationListItem `json:"conversationListItems"`
NextPageToken *string `json:"nextPageToken,omitempty"`
}
type PutConversationRequest ¶
type PutConversationRequest struct {
ID string `path:"id" required:"true"`
Body *PutConversationRequestBody
}
type PutConversationRequestBody ¶
type PutConversationRequestBody struct {
Title string `json:"title" required:"true"`
CreatedAt time.Time `json:"createdAt" required:"true"`
ModifiedAt time.Time `json:"modifiedAt" required:"true"`
Messages []ConversationMessage `json:"messages" required:"true"`
Meta map[string]any `json:"meta,omitempty"`
}
type PutConversationResponse ¶
type PutConversationResponse struct{}
type PutMessagesToConversationRequest ¶
type PutMessagesToConversationRequest struct {
ID string `path:"id" required:"true"`
Body *PutMessagesToConversationRequestBody
}
type PutMessagesToConversationRequestBody ¶
type PutMessagesToConversationRequestBody struct {
Title string `json:"title" required:"true"`
Messages []ConversationMessage `json:"messages" required:"true"`
}
type PutMessagesToConversationResponse ¶
type PutMessagesToConversationResponse struct{}
type SearchConversationsResponse ¶
type SearchConversationsResponse struct {
Body *SearchConversationsResponseBody
}
type SearchConversationsResponseBody ¶
type SearchConversationsResponseBody struct {
ConversationListItems []ConversationListItem `json:"conversationListItems"`
NextPageToken *string `json:"nextPageToken,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.