Documentation
¶
Overview ¶
Package share defines provider-neutral transcript sharing.
Index ¶
- Constants
- func NewRequestID() string
- func ValidVisibility(visibility Visibility) bool
- func ValidateCapabilities(c Capabilities) error
- func ValidateHelperCapabilities(c Capabilities) error
- func ValidateRequest(req Request) error
- func ValidateResult(result Result) error
- type Capabilities
- type CommandPublisher
- type Error
- type ErrorCode
- type File
- type GitHubPublisher
- type Operation
- type Provider
- type ProviderID
- type Publisher
- type Request
- type Result
- type Updater
- type Visibility
Constants ¶
View Source
const ( DefaultCommandTimeout = 120 * time.Second MaxCommandTimeout = 600 * time.Second )
View Source
const ( Protocol = "term-llm-share" Version = 1 ProviderGitHub ProviderID = ProviderID(gist.ProviderID) MaxRequestFiles = 32 MaxRequestFileBytes = 16 << 20 MaxRequestTotalBytes = 32 << 20 )
Variables ¶
This section is empty.
Functions ¶
func NewRequestID ¶
func NewRequestID() string
func ValidVisibility ¶
func ValidVisibility(visibility Visibility) bool
func ValidateCapabilities ¶
func ValidateCapabilities(c Capabilities) error
func ValidateHelperCapabilities ¶
func ValidateHelperCapabilities(c Capabilities) error
ValidateHelperCapabilities applies the protocol's generic validation and prevents external helpers from claiming a built-in provider identity.
func ValidateRequest ¶
func ValidateResult ¶
Types ¶
type Capabilities ¶
type Capabilities struct {
Protocol string `json:"protocol"`
Version int `json:"version"`
Provider Provider `json:"provider"`
Operations []Operation `json:"operations"`
Visibilities []Visibility `json:"visibilities"`
DefaultVisibility Visibility `json:"default_visibility"`
Notes []string `json:"notes,omitempty"`
Limits map[string]any `json:"limits,omitempty"`
}
func (Capabilities) Supports ¶
func (c Capabilities) Supports(operation Operation) bool
func (Capabilities) SupportsVisibility ¶
func (c Capabilities) SupportsVisibility(visibility Visibility) bool
type CommandPublisher ¶
type CommandPublisher struct {
// contains filtered or unexported fields
}
func NewCommandPublisher ¶
func NewCommandPublisher(argv []string, timeout time.Duration) (*CommandPublisher, error)
func (*CommandPublisher) Capabilities ¶
func (p *CommandPublisher) Capabilities(ctx context.Context) (Capabilities, error)
type Error ¶
type File ¶
type File struct {
Name string `json:"name"`
MediaType string `json:"media_type"`
Role string `json:"role"`
Content []byte `json:"-"`
}
func TranscriptFiles ¶
type GitHubPublisher ¶
type GitHubPublisher struct {
// contains filtered or unexported fields
}
func NewGitHubPublisher ¶
func NewGitHubPublisher() *GitHubPublisher
func (*GitHubPublisher) Capabilities ¶
func (p *GitHubPublisher) Capabilities(context.Context) (Capabilities, error)
type Provider ¶
type Provider struct {
ID ProviderID `json:"id"`
Name string `json:"name"`
Help string `json:"help,omitempty"`
}
type ProviderID ¶
type ProviderID string
type Publisher ¶
type Publisher interface {
Capabilities(context.Context) (Capabilities, error)
Create(context.Context, Request) (Result, error)
}
func NewPublisher ¶
func NewPublisher(cfg config.ShareConfig) (Publisher, error)
type Result ¶
type Result struct {
Provider ProviderID `json:"provider"`
ID string `json:"id"`
URL string `json:"url"`
SourceURL string `json:"source_url,omitempty"`
Visibility Visibility `json:"visibility"`
Ready bool `json:"ready"`
}
type Updater ¶
Updater is implemented only by publishers that can replace an existing share. Callers must also require the update operation in Capabilities.
type Visibility ¶
type Visibility string
const ( VisibilityPublic Visibility = "public" VisibilityUnlisted Visibility = "unlisted" VisibilityPrivate Visibility = "private" )
Click to show internal directories.
Click to hide internal directories.