Documentation
¶
Index ¶
- type AnalysisProgress
- type AnalysisProgressEvent
- type ConnectionTestResult
- type DownlinkClient
- func (pc *DownlinkClient) AnalyzeArticle(articleId string) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) AnalyzeArticleFast(articleId string, fastMode bool) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) AnalyzeArticleWithProviderModel(articleId string, providerType string, modelName string) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) AnalyzeArticleWithProviderModelFast(articleId string, providerType string, modelName string, fastMode bool) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) ApplyFeeds(configs []models.FeedConfig, defaults *models.Selectors, dryRun bool) (*protos.ApplyFeedsResponse, error)
- func (pc *DownlinkClient) AutoConfigFeed(req *protos.AutoConfigFeedRequest, ...) error
- func (pc *DownlinkClient) ClearQueue() error
- func (pc *DownlinkClient) CompleteClaudeLogin(sessionID, code string) (*protos.CompleteClaudeLoginResponse, error)
- func (pc *DownlinkClient) DeleteFeed(feedId string) error
- func (pc *DownlinkClient) DeleteFeeds(feedIds []string, dryRun bool) (*protos.DeleteFeedsResponse, error)
- func (pc *DownlinkClient) DequeueArticle(articleId string) error
- func (pc *DownlinkClient) DiagnoseFeed(feedId string) (*protos.FeedDiagnosis, error)
- func (pc *DownlinkClient) EnqueueArticles(options EnqueueOptions) error
- func (pc *DownlinkClient) Entry(ctx context.Context)
- func (pc *DownlinkClient) GenerateDigest(ctx context.Context, startTime time.Time, endTime time.Time, skipAnalysis bool, ...) (models.Digest, error)
- func (pc *DownlinkClient) GenerateDigestWithOptions(ctx context.Context, options GenerateDigestOptions) (models.Digest, error)
- func (pc *DownlinkClient) GetAllArticleAnalyses(articleId string) ([]models.ArticleAnalysis, error)
- func (pc *DownlinkClient) GetAnalysis(articleId string) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) GetAnalysisConfig() (models.AnalysisConfig, error)
- func (pc *DownlinkClient) GetArticle(id string) (models.Article, error)
- func (pc *DownlinkClient) GetArticleCounts(filter models.ArticleFilter) (models.ArticleCounts, error)
- func (pc *DownlinkClient) GetAvailableModels() (*models.ModelsResponse, error)
- func (pc *DownlinkClient) GetAvailableModelsForProvider(providerName, providerType, baseURL string) (*models.ModelsResponse, error)
- func (pc *DownlinkClient) GetConfig() (models.ServerConfig, error)
- func (pc *DownlinkClient) GetDigest(id string) (models.Digest, error)
- func (pc *DownlinkClient) GetDigestArticles(digestId string) ([]models.Article, error)
- func (pc *DownlinkClient) GetLLMProviders() ([]models.ProviderConfig, error)
- func (pc *DownlinkClient) GetQueueStatus() QueueStatus
- func (pc *DownlinkClient) InspectArticle(url, mode string, headers map[string]string, sel *protos.Selectors, ...) (*protos.InspectArticleResponse, error)
- func (pc *DownlinkClient) InspectFeed(url string, headers map[string]string, maxLinks int) (*protos.InspectFeedResponse, error)
- func (pc *DownlinkClient) ListArticles(filter models.ArticleFilter) ([]models.Article, error)
- func (pc *DownlinkClient) ListCodexCredentials(providerName string) (*protos.ListCodexCredentialsResponse, error)
- func (pc *DownlinkClient) ListDigests(limit int) ([]models.Digest, error)
- func (pc *DownlinkClient) ListDigestsFull(limit int) ([]models.Digest, error)
- func (pc *DownlinkClient) ListFeeds() ([]models.Feed, error)
- func (pc *DownlinkClient) MarkFeedArticlesRead(feedId string) error
- func (pc *DownlinkClient) PollCodexLogin(sessionID string) (*protos.PollCodexLoginResponse, error)
- func (pc *DownlinkClient) PreviewAnalysisPrompt(articleId string) (string, error)
- func (pc *DownlinkClient) RefreshAllFeeds(onEvent func(ev *protos.RefreshAllFeedsEvent)) error
- func (pc *DownlinkClient) RefreshAllFeedsWithTimeWindow(from, to *time.Time, lastN int, ...) error
- func (pc *DownlinkClient) RefreshFeedWithTimeWindow(feedId string, from *time.Time, to *time.Time, overwrite bool, restore bool, ...) (*protos.RefreshFeedResponse, error)
- func (pc *DownlinkClient) RegisterFeed(feedConfig models.FeedConfig) error
- func (pc *DownlinkClient) RemoveCodexCredential(providerName, credentialID string) (*protos.RemoveCodexCredentialResponse, error)
- func (pc *DownlinkClient) ResolveLLM(provider, model string) (providerType, modelName string, err error)
- func (pc *DownlinkClient) SaveConfig(config models.ServerConfig) error
- func (pc *DownlinkClient) SaveLLMProviders(providers []models.ProviderConfig) error
- func (pc *DownlinkClient) SetCodexCredentialPriority(providerName, credentialID string, priority int32) (*protos.SetCodexCredentialPriorityResponse, error)
- func (pc *DownlinkClient) Shutdown(_ context.Context)
- func (pc *DownlinkClient) StartClaudeLogin(providerName, modelName string) (*protos.StartClaudeLoginResponse, error)
- func (pc *DownlinkClient) StartCodexLogin(providerName, modelName string) (*protos.StartCodexLoginResponse, error)
- func (pc *DownlinkClient) StartQueue() error
- func (pc *DownlinkClient) StartQueueProgressStream()
- func (pc *DownlinkClient) StopQueue() error
- func (pc *DownlinkClient) StreamAnalyzeArticle(articleId string, fastMode bool, onEvent func(AnalysisProgressEvent)) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) StreamAnalyzeArticleWithProfile(articleId, profileName string, fastMode bool, ...) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) StreamAnalyzeArticleWithProviderModel(articleId, providerType, modelName string, fastMode bool, ...) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) StreamAnalyzeArticleWithSelection(articleId, provider, model string, fastMode bool, ...) (models.ArticleAnalysis, error)
- func (pc *DownlinkClient) StreamQueueEvents(cb QueueStreamCallbacks)
- func (pc *DownlinkClient) TestProviderConnection(providerType, baseURL, apiKey string) ConnectionTestResult
- func (pc *DownlinkClient) UpdateAnalysisConfig(analysisConfig models.AnalysisConfig) error
- func (pc *DownlinkClient) UpdateArticle(id string, update *models.ArticleUpdate) (*emptypb.Empty, error)
- type EnqueueOptions
- type GenerateDigestOptions
- type QueueJobWithTitle
- type QueueStatus
- type QueueStreamCallbacks
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnalysisProgress ¶
type AnalysisProgress struct {
ArticleId string `json:"article_id"`
TaskName string `json:"task_name"`
Status string `json:"status"`
TaskIndex int `json:"task_index"`
TotalTasks int `json:"total_tasks"`
TaskResult string `json:"task_result,omitempty"`
TokenChunk string `json:"token_chunk,omitempty"`
Error string `json:"error,omitempty"`
}
AnalysisProgress is the Wails-friendly payload for analysis:progress events.
type AnalysisProgressEvent ¶
type AnalysisProgressEvent struct {
TaskName string
Status string // "started", "token", "completed", "error", "done"
TaskIndex int
TotalTasks int
TaskResult string
Error string
Analysis *models.ArticleAnalysis
}
AnalysisProgressEvent mirrors the server-side progress event for use by CLI callers.
type ConnectionTestResult ¶
type ConnectionTestResult struct {
Success bool `json:"success"`
Message string `json:"message"`
LatencyMs int64 `json:"latency_ms"`
}
ConnectionTestResult is returned by TestProviderConnection.
type DownlinkClient ¶
type DownlinkClient struct {
// contains filtered or unexported fields
}
DownlinkClient struct
func NewDownlinkClient ¶
func NewDownlinkClient(conn *grpc.ClientConn) *DownlinkClient
NewDownlinkClient creates a new DownlinkClient application struct
func (*DownlinkClient) AnalyzeArticle ¶
func (pc *DownlinkClient) AnalyzeArticle(articleId string) (models.ArticleAnalysis, error)
func (*DownlinkClient) AnalyzeArticleFast ¶
func (pc *DownlinkClient) AnalyzeArticleFast(articleId string, fastMode bool) (models.ArticleAnalysis, error)
func (*DownlinkClient) AnalyzeArticleWithProviderModel ¶
func (pc *DownlinkClient) AnalyzeArticleWithProviderModel(articleId string, providerType string, modelName string) (models.ArticleAnalysis, error)
func (*DownlinkClient) AnalyzeArticleWithProviderModelFast ¶
func (pc *DownlinkClient) AnalyzeArticleWithProviderModelFast(articleId string, providerType string, modelName string, fastMode bool) (models.ArticleAnalysis, error)
func (*DownlinkClient) ApplyFeeds ¶
func (pc *DownlinkClient) ApplyFeeds(configs []models.FeedConfig, defaults *models.Selectors, dryRun bool) (*protos.ApplyFeedsResponse, error)
ApplyFeeds reconciles the server's feeds to match the desired set: feeds in configs are created/updated, feeds absent from it are disabled.
func (*DownlinkClient) AutoConfigFeed ¶ added in v0.2.0
func (pc *DownlinkClient) AutoConfigFeed(req *protos.AutoConfigFeedRequest, onEvent func(ev *protos.AutoConfigFeedEvent)) error
AutoConfigFeed runs the server-side autonomous agent that discovers a feed's selectors (after locking the scraping mode/headers). onEvent is called for each streamed event (STEP updates and the final DONE carrying the config YAML).
func (*DownlinkClient) ClearQueue ¶
func (pc *DownlinkClient) ClearQueue() error
ClearQueue empties the server queue.
func (*DownlinkClient) CompleteClaudeLogin ¶ added in v0.2.0
func (pc *DownlinkClient) CompleteClaudeLogin(sessionID, code string) (*protos.CompleteClaudeLoginResponse, error)
func (*DownlinkClient) DeleteFeed ¶
func (pc *DownlinkClient) DeleteFeed(feedId string) error
DeleteFeed removes a feed from both the models and the database
func (*DownlinkClient) DeleteFeeds ¶
func (pc *DownlinkClient) DeleteFeeds(feedIds []string, dryRun bool) (*protos.DeleteFeedsResponse, error)
DeleteFeeds removes the given feeds (by id) from the database.
func (*DownlinkClient) DequeueArticle ¶
func (pc *DownlinkClient) DequeueArticle(articleId string) error
DequeueArticle removes a specific article from the server queue.
func (*DownlinkClient) DiagnoseFeed ¶ added in v0.2.0
func (pc *DownlinkClient) DiagnoseFeed(feedId string) (*protos.FeedDiagnosis, error)
DiagnoseFeed runs a read-only diagnosis of a single feed: the server fetches and parses the feed but stores nothing, returning a structured report of what came back over the wire (HTTP status, content type, feed-type guess, parse error, UTF-8 problems, and the on-disk path to the saved raw body).
func (*DownlinkClient) EnqueueArticles ¶
func (pc *DownlinkClient) EnqueueArticles(options EnqueueOptions) error
EnqueueArticles adds article IDs to the server queue.
func (*DownlinkClient) Entry ¶
func (pc *DownlinkClient) Entry(ctx context.Context)
func (*DownlinkClient) GenerateDigest ¶
func (pc *DownlinkClient) GenerateDigest(ctx context.Context, startTime time.Time, endTime time.Time, skipAnalysis bool, skipDuplicates bool, excludeDigested bool, skipSummary bool, theme string, onEvent func(*protos.DigestProgressEvent)) (models.Digest, error)
GenerateDigest generates a new digest, streaming progress events to onEvent as they arrive. Returns the final digest once the stream completes with a "done" event. The provided ctx controls the stream lifetime: cancel it to abort generation on the server.
func (*DownlinkClient) GenerateDigestWithOptions ¶
func (pc *DownlinkClient) GenerateDigestWithOptions(ctx context.Context, options GenerateDigestOptions) (models.Digest, error)
func (*DownlinkClient) GetAllArticleAnalyses ¶
func (pc *DownlinkClient) GetAllArticleAnalyses(articleId string) ([]models.ArticleAnalysis, error)
GetAllArticleAnalyses retrieves all analysis results for a specific article
func (*DownlinkClient) GetAnalysis ¶
func (pc *DownlinkClient) GetAnalysis(articleId string) (models.ArticleAnalysis, error)
GetAnalysis retrieves the analysis results by its ID
func (*DownlinkClient) GetAnalysisConfig ¶
func (pc *DownlinkClient) GetAnalysisConfig() (models.AnalysisConfig, error)
GetAnalysisConfig returns the current enrichment configuration
func (*DownlinkClient) GetArticle ¶
func (pc *DownlinkClient) GetArticle(id string) (models.Article, error)
GetArticle returns a single article by Id
func (*DownlinkClient) GetArticleCounts ¶
func (pc *DownlinkClient) GetArticleCounts(filter models.ArticleFilter) (models.ArticleCounts, error)
func (*DownlinkClient) GetAvailableModels ¶
func (pc *DownlinkClient) GetAvailableModels() (*models.ModelsResponse, error)
func (*DownlinkClient) GetAvailableModelsForProvider ¶
func (pc *DownlinkClient) GetAvailableModelsForProvider(providerName, providerType, baseURL string) (*models.ModelsResponse, error)
GetAvailableModelsForProvider fetches models for a single named provider.
func (*DownlinkClient) GetConfig ¶
func (pc *DownlinkClient) GetConfig() (models.ServerConfig, error)
GetConfig returns the current application configuration
func (*DownlinkClient) GetDigest ¶
func (pc *DownlinkClient) GetDigest(id string) (models.Digest, error)
GetDigest retrieves a digest by ID.
func (*DownlinkClient) GetDigestArticles ¶
func (pc *DownlinkClient) GetDigestArticles(digestId string) ([]models.Article, error)
GetDigestArticles returns the articles belonging to a digest.
func (*DownlinkClient) GetLLMProviders ¶
func (pc *DownlinkClient) GetLLMProviders() ([]models.ProviderConfig, error)
GetLLMProviders returns the current LLM provider configurations
func (*DownlinkClient) GetQueueStatus ¶
func (pc *DownlinkClient) GetQueueStatus() QueueStatus
GetQueueStatus returns a snapshot of the server queue state.
func (*DownlinkClient) InspectArticle ¶ added in v0.2.0
func (pc *DownlinkClient) InspectArticle(url, mode string, headers map[string]string, sel *protos.Selectors, htmlLimit int) (*protos.InspectArticleResponse, error)
InspectArticle scrapes a single article URL in the given mode ("" / static, dynamic, full_browser). When selectors are supplied the response also carries the extracted content, for testing a candidate selector.
func (*DownlinkClient) InspectFeed ¶ added in v0.2.0
func (pc *DownlinkClient) InspectFeed(url string, headers map[string]string, maxLinks int) (*protos.InspectFeedResponse, error)
InspectFeed probes a feed URL (read-only, pre-registration) and returns its diagnosis, sample article links, and detected title — the scaffolding inputs for building a feed config.
func (*DownlinkClient) ListArticles ¶
func (pc *DownlinkClient) ListArticles(filter models.ArticleFilter) ([]models.Article, error)
ListArticles returns articles based on the provided filter
func (*DownlinkClient) ListCodexCredentials ¶
func (pc *DownlinkClient) ListCodexCredentials(providerName string) (*protos.ListCodexCredentialsResponse, error)
func (*DownlinkClient) ListDigests ¶
func (pc *DownlinkClient) ListDigests(limit int) ([]models.Digest, error)
ListDigests returns lightweight summaries (id/title/date/article count). Use ListDigestsFull when the full payload (summary, provider results, analyses) is required.
func (*DownlinkClient) ListDigestsFull ¶ added in v0.2.0
func (pc *DownlinkClient) ListDigestsFull(limit int) ([]models.Digest, error)
ListDigestsFull lists digests with their full payload (summary, provider results, analyses). The response can be large; prefer ListDigests when only summary fields are needed.
func (*DownlinkClient) ListFeeds ¶
func (pc *DownlinkClient) ListFeeds() ([]models.Feed, error)
ListFeeds returns all registered feeds
func (*DownlinkClient) MarkFeedArticlesRead ¶
func (pc *DownlinkClient) MarkFeedArticlesRead(feedId string) error
func (*DownlinkClient) PollCodexLogin ¶
func (pc *DownlinkClient) PollCodexLogin(sessionID string) (*protos.PollCodexLoginResponse, error)
func (*DownlinkClient) PreviewAnalysisPrompt ¶
func (pc *DownlinkClient) PreviewAnalysisPrompt(articleId string) (string, error)
PreviewAnalysisPrompt returns the full prompt that would be sent for an article analysis
func (*DownlinkClient) RefreshAllFeeds ¶
func (pc *DownlinkClient) RefreshAllFeeds(onEvent func(ev *protos.RefreshAllFeedsEvent)) error
RefreshAllFeeds triggers a refresh of all registered feeds. onEvent is called for each streamed event, both STARTED and COMPLETED.
func (*DownlinkClient) RefreshAllFeedsWithTimeWindow ¶
func (pc *DownlinkClient) RefreshAllFeedsWithTimeWindow(from, to *time.Time, lastN int, onResult func(res *protos.RefreshFeedResponse, err error)) error
RefreshAllFeedsWithTimeWindow refreshes all enabled feeds within the given time window. It lists all feeds and calls RefreshFeedWithTimeWindow for each enabled feed. onResult is called after each feed completes (result may be nil on error).
func (*DownlinkClient) RefreshFeedWithTimeWindow ¶
func (pc *DownlinkClient) RefreshFeedWithTimeWindow(feedId string, from *time.Time, to *time.Time, overwrite bool, restore bool, lastN int) (*protos.RefreshFeedResponse, error)
RefreshFeedWithTimeWindow refreshes a specific feed with optional time window filtering. Returns the per-feed stats from the server.
func (*DownlinkClient) RegisterFeed ¶
func (pc *DownlinkClient) RegisterFeed(feedConfig models.FeedConfig) error
RegisterFeed adds a new feed to be monitored
func (*DownlinkClient) RemoveCodexCredential ¶
func (pc *DownlinkClient) RemoveCodexCredential(providerName, credentialID string) (*protos.RemoveCodexCredentialResponse, error)
func (*DownlinkClient) ResolveLLM ¶ added in v0.2.0
func (pc *DownlinkClient) ResolveLLM(provider, model string) (providerType, modelName string, err error)
ResolveLLM resolves a provider/model selection to the concrete provider type and model name a run would use. Either argument may be empty (use defaults).
func (*DownlinkClient) SaveConfig ¶
func (pc *DownlinkClient) SaveConfig(config models.ServerConfig) error
SaveConfig updates the application configuration
func (*DownlinkClient) SaveLLMProviders ¶
func (pc *DownlinkClient) SaveLLMProviders(providers []models.ProviderConfig) error
SaveLLMProviders updates the LLM provider configurations
func (*DownlinkClient) SetCodexCredentialPriority ¶
func (pc *DownlinkClient) SetCodexCredentialPriority(providerName, credentialID string, priority int32) (*protos.SetCodexCredentialPriorityResponse, error)
func (*DownlinkClient) Shutdown ¶
func (pc *DownlinkClient) Shutdown(_ context.Context)
Shutdown is called when the app is shutting down
func (*DownlinkClient) StartClaudeLogin ¶ added in v0.2.0
func (pc *DownlinkClient) StartClaudeLogin(providerName, modelName string) (*protos.StartClaudeLoginResponse, error)
func (*DownlinkClient) StartCodexLogin ¶
func (pc *DownlinkClient) StartCodexLogin(providerName, modelName string) (*protos.StartCodexLoginResponse, error)
func (*DownlinkClient) StartQueue ¶
func (pc *DownlinkClient) StartQueue() error
StartQueue tells the server to start processing queued articles.
func (*DownlinkClient) StartQueueProgressStream ¶
func (pc *DownlinkClient) StartQueueProgressStream()
StartQueueProgressStream opens a long-lived stream from the server and forwards queue state changes and analysis progress as Wails events to the frontend. Should be called as a goroutine from startup().
func (*DownlinkClient) StopQueue ¶
func (pc *DownlinkClient) StopQueue() error
StopQueue tells the server to pause queue processing.
func (*DownlinkClient) StreamAnalyzeArticle ¶
func (pc *DownlinkClient) StreamAnalyzeArticle(articleId string, fastMode bool, onEvent func(AnalysisProgressEvent)) (models.ArticleAnalysis, error)
StreamAnalyzeArticle streams analysis progress using the default configured provider.
func (*DownlinkClient) StreamAnalyzeArticleWithProfile ¶
func (pc *DownlinkClient) StreamAnalyzeArticleWithProfile(articleId, profileName string, fastMode bool, onEvent func(AnalysisProgressEvent)) (models.ArticleAnalysis, error)
StreamAnalyzeArticleWithProfile streams analysis progress using a named provider profile.
func (*DownlinkClient) StreamAnalyzeArticleWithProviderModel ¶
func (pc *DownlinkClient) StreamAnalyzeArticleWithProviderModel(articleId, providerType, modelName string, fastMode bool, onEvent func(AnalysisProgressEvent)) (models.ArticleAnalysis, error)
StreamAnalyzeArticleWithProviderModel streams analysis progress events for a single article. The provided callback is called for each event. The final "done" event carries the completed analysis.
func (*DownlinkClient) StreamAnalyzeArticleWithSelection ¶
func (pc *DownlinkClient) StreamAnalyzeArticleWithSelection(articleId, provider, model string, fastMode bool, onEvent func(AnalysisProgressEvent)) (models.ArticleAnalysis, error)
StreamAnalyzeArticleWithSelection streams analysis using the user-facing --provider/--model selection. provider is an auto-detect token (a provider type OR a config profile name); model may be empty. The server resolves the matching provider, including finding the provider that offers a bare model.
func (*DownlinkClient) StreamQueueEvents ¶
func (pc *DownlinkClient) StreamQueueEvents(cb QueueStreamCallbacks)
StreamQueueEvents opens a long-lived gRPC stream and dispatches queue state changes and per-task analysis progress to the provided callbacks. Reconnects with exponential back-off up to 30s. Blocks until ctx is cancelled. Intended to be run in a goroutine.
func (*DownlinkClient) TestProviderConnection ¶
func (pc *DownlinkClient) TestProviderConnection(providerType, baseURL, apiKey string) ConnectionTestResult
TestProviderConnection checks whether a provider's endpoint is reachable without consuming tokens. It tries lightweight read-only endpoints (health check or model listing) and returns latency.
func (*DownlinkClient) UpdateAnalysisConfig ¶
func (pc *DownlinkClient) UpdateAnalysisConfig(analysisConfig models.AnalysisConfig) error
UpdateAnalysisConfig updates the enrichment configuration
func (*DownlinkClient) UpdateArticle ¶
func (pc *DownlinkClient) UpdateArticle(id string, update *models.ArticleUpdate) (*emptypb.Empty, error)
UpdateArticle updates an article's properties
type EnqueueOptions ¶
type EnqueueOptions struct {
ArticleIds []string `json:"article_ids"`
ProviderType string `json:"provider_type,omitempty"`
ModelName string `json:"model_name,omitempty"`
ProviderName string `json:"provider_name,omitempty"`
Provider string `json:"provider,omitempty"` // auto-detect token (provider type or profile name)
FastMode bool `json:"fast_mode,omitempty"`
}
type GenerateDigestOptions ¶
type GenerateDigestOptions struct {
StartTime time.Time
EndTime time.Time
SkipAnalysis bool
SkipDuplicates bool
ExcludeDigested bool
SkipSummary bool
Theme string
OneShotAnalysis bool
Test bool
TestDigestID string
GHPagesEnabled *bool // When non-nil, overrides the server's GitHub Pages enabled config for this run
ReanalyzeOnModelChange bool
Reanalyze bool
VibeScore *bool // When non-nil, overrides the server's vibe_score config for this run
Glossary *bool // When non-nil, overrides the server's glossary config for this run
Provider string // Provider override (type or profile name, auto-detected by the server)
Model string // Model override; with empty Provider the server resolves the matching provider
OnEvent func(*protos.DigestProgressEvent)
}
type QueueJobWithTitle ¶
type QueueJobWithTitle struct {
ID string `json:"id"`
ArticleId string `json:"article_id"`
ArticleTitle string `json:"article_title"`
ProviderType string `json:"provider_type,omitempty"`
ModelName string `json:"model_name,omitempty"`
ProviderName string `json:"provider_name,omitempty"`
}
QueueJobWithTitle represents a job with its article title for display (Wails event payload).
type QueueStatus ¶
type QueueStatus struct {
Queue []QueueJobWithTitle `json:"queue"`
CurrentId string `json:"current_id"`
CurrentTitle string `json:"current_title"`
IsProcessing bool `json:"is_processing"`
}
QueueStatus is the Wails-friendly payload for queue:update events.
type QueueStreamCallbacks ¶
type QueueStreamCallbacks struct {
OnQueueUpdate func(QueueStatus)
OnAnalysisProgress func(AnalysisProgress)
OnDisconnect func(error) // called before each reconnect attempt; may be nil
}
QueueStreamCallbacks holds event handlers for CLI queue streaming.