protos

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AnalysisService_GetAllArticleAnalyses_FullMethodName = "/downlink.AnalysisService/GetAllArticleAnalyses"
	AnalysisService_GetAnalysis_FullMethodName           = "/downlink.AnalysisService/GetAnalysis"
)
View Source
const (
	ArticleService_ListArticles_FullMethodName         = "/downlink.ArticleService/ListArticles"
	ArticleService_GetArticleCounts_FullMethodName     = "/downlink.ArticleService/GetArticleCounts"
	ArticleService_GetArticle_FullMethodName           = "/downlink.ArticleService/GetArticle"
	ArticleService_UpdateArticle_FullMethodName        = "/downlink.ArticleService/UpdateArticle"
	ArticleService_MarkFeedArticlesRead_FullMethodName = "/downlink.ArticleService/MarkFeedArticlesRead"
)
View Source
const (
	ServerConfigService_GetConfig_FullMethodName            = "/downlink.ServerConfigService/GetConfig"
	ServerConfigService_SaveConfig_FullMethodName           = "/downlink.ServerConfigService/SaveConfig"
	ServerConfigService_UpdateAnalysisConfig_FullMethodName = "/downlink.ServerConfigService/UpdateAnalysisConfig"
)
View Source
const (
	CredsService_StartCodexLogin_FullMethodName            = "/downlink.CredsService/StartCodexLogin"
	CredsService_PollCodexLogin_FullMethodName             = "/downlink.CredsService/PollCodexLogin"
	CredsService_ListCodexCredentials_FullMethodName       = "/downlink.CredsService/ListCodexCredentials"
	CredsService_RemoveCodexCredential_FullMethodName      = "/downlink.CredsService/RemoveCodexCredential"
	CredsService_SetCodexCredentialPriority_FullMethodName = "/downlink.CredsService/SetCodexCredentialPriority"
	CredsService_StartClaudeLogin_FullMethodName           = "/downlink.CredsService/StartClaudeLogin"
	CredsService_CompleteClaudeLogin_FullMethodName        = "/downlink.CredsService/CompleteClaudeLogin"
)
View Source
const (
	DigestService_ListDigests_FullMethodName       = "/downlink.DigestService/ListDigests"
	DigestService_GetDigest_FullMethodName         = "/downlink.DigestService/GetDigest"
	DigestService_GetDigestArticles_FullMethodName = "/downlink.DigestService/GetDigestArticles"
	DigestService_GenerateDigest_FullMethodName    = "/downlink.DigestService/GenerateDigest"
)
View Source
const (
	FeedsService_ListFeeds_FullMethodName       = "/downlink.FeedsService/ListFeeds"
	FeedsService_RegisterFeed_FullMethodName    = "/downlink.FeedsService/RegisterFeed"
	FeedsService_RefreshAllFeeds_FullMethodName = "/downlink.FeedsService/RefreshAllFeeds"
	FeedsService_RefreshFeed_FullMethodName     = "/downlink.FeedsService/RefreshFeed"
	FeedsService_InspectFeed_FullMethodName     = "/downlink.FeedsService/InspectFeed"
	FeedsService_InspectArticle_FullMethodName  = "/downlink.FeedsService/InspectArticle"
	FeedsService_AutoConfigFeed_FullMethodName  = "/downlink.FeedsService/AutoConfigFeed"
	FeedsService_DeleteFeed_FullMethodName      = "/downlink.FeedsService/DeleteFeed"
	FeedsService_ApplyFeeds_FullMethodName      = "/downlink.FeedsService/ApplyFeeds"
	FeedsService_DeleteFeeds_FullMethodName     = "/downlink.FeedsService/DeleteFeeds"
)
View Source
const (
	LLMsService_GetLLMProviders_FullMethodName                 = "/downlink.LLMsService/GetLLMProviders"
	LLMsService_SaveLLMProviders_FullMethodName                = "/downlink.LLMsService/SaveLLMProviders"
	LLMsService_GetAvailableModels_FullMethodName              = "/downlink.LLMsService/GetAvailableModels"
	LLMsService_ResolveLLM_FullMethodName                      = "/downlink.LLMsService/ResolveLLM"
	LLMsService_AnalyzeArticleWithProviderModel_FullMethodName = "/downlink.LLMsService/AnalyzeArticleWithProviderModel"
	LLMsService_AnalyzeArticle_FullMethodName                  = "/downlink.LLMsService/AnalyzeArticle"
	LLMsService_GetAnalysisConfig_FullMethodName               = "/downlink.LLMsService/GetAnalysisConfig"
	LLMsService_PreviewAnalysisPrompt_FullMethodName           = "/downlink.LLMsService/PreviewAnalysisPrompt"
	LLMsService_StreamAnalyzeArticle_FullMethodName            = "/downlink.LLMsService/StreamAnalyzeArticle"
)
View Source
const (
	QueueService_EnqueueArticles_FullMethodName     = "/downlink.QueueService/EnqueueArticles"
	QueueService_DequeueArticle_FullMethodName      = "/downlink.QueueService/DequeueArticle"
	QueueService_ClearQueue_FullMethodName          = "/downlink.QueueService/ClearQueue"
	QueueService_GetQueueStatus_FullMethodName      = "/downlink.QueueService/GetQueueStatus"
	QueueService_StartQueue_FullMethodName          = "/downlink.QueueService/StartQueue"
	QueueService_StopQueue_FullMethodName           = "/downlink.QueueService/StopQueue"
	QueueService_StreamQueueProgress_FullMethodName = "/downlink.QueueService/StreamQueueProgress"
)
View Source
const (
	CategoriesService_GetOrCreateCategory_FullMethodName = "/downlink.CategoriesService/GetOrCreateCategory"
)

Variables

View Source
var (
	RefreshEventType_name = map[int32]string{
		0: "STARTED",
		1: "COMPLETED",
	}
	RefreshEventType_value = map[string]int32{
		"STARTED":   0,
		"COMPLETED": 1,
	}
)

Enum value maps for RefreshEventType.

View Source
var (
	AutoConfigEventKind_name = map[int32]string{
		0: "STEP",
		1: "DONE",
		2: "ERROR",
		3: "LLM_IO",
	}
	AutoConfigEventKind_value = map[string]int32{
		"STEP":   0,
		"DONE":   1,
		"ERROR":  2,
		"LLM_IO": 3,
	}
)

Enum value maps for AutoConfigEventKind.

View Source
var AnalysisService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.AnalysisService",
	HandlerType: (*AnalysisServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetAllArticleAnalyses",
			Handler:    _AnalysisService_GetAllArticleAnalyses_Handler,
		},
		{
			MethodName: "GetAnalysis",
			Handler:    _AnalysisService_GetAnalysis_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "analysis.proto",
}

AnalysisService_ServiceDesc is the grpc.ServiceDesc for AnalysisService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var ArticleService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.ArticleService",
	HandlerType: (*ArticleServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListArticles",
			Handler:    _ArticleService_ListArticles_Handler,
		},
		{
			MethodName: "GetArticleCounts",
			Handler:    _ArticleService_GetArticleCounts_Handler,
		},
		{
			MethodName: "GetArticle",
			Handler:    _ArticleService_GetArticle_Handler,
		},
		{
			MethodName: "UpdateArticle",
			Handler:    _ArticleService_UpdateArticle_Handler,
		},
		{
			MethodName: "MarkFeedArticlesRead",
			Handler:    _ArticleService_MarkFeedArticlesRead_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "articles.proto",
}

ArticleService_ServiceDesc is the grpc.ServiceDesc for ArticleService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var CategoriesService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.CategoriesService",
	HandlerType: (*CategoriesServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetOrCreateCategory",
			Handler:    _CategoriesService_GetOrCreateCategory_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "articles.proto",
}

CategoriesService_ServiceDesc is the grpc.ServiceDesc for CategoriesService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var CredsService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.CredsService",
	HandlerType: (*CredsServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "StartCodexLogin",
			Handler:    _CredsService_StartCodexLogin_Handler,
		},
		{
			MethodName: "PollCodexLogin",
			Handler:    _CredsService_PollCodexLogin_Handler,
		},
		{
			MethodName: "ListCodexCredentials",
			Handler:    _CredsService_ListCodexCredentials_Handler,
		},
		{
			MethodName: "RemoveCodexCredential",
			Handler:    _CredsService_RemoveCodexCredential_Handler,
		},
		{
			MethodName: "SetCodexCredentialPriority",
			Handler:    _CredsService_SetCodexCredentialPriority_Handler,
		},
		{
			MethodName: "StartClaudeLogin",
			Handler:    _CredsService_StartClaudeLogin_Handler,
		},
		{
			MethodName: "CompleteClaudeLogin",
			Handler:    _CredsService_CompleteClaudeLogin_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "creds.proto",
}

CredsService_ServiceDesc is the grpc.ServiceDesc for CredsService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var DigestService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.DigestService",
	HandlerType: (*DigestServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListDigests",
			Handler:    _DigestService_ListDigests_Handler,
		},
		{
			MethodName: "GetDigest",
			Handler:    _DigestService_GetDigest_Handler,
		},
		{
			MethodName: "GetDigestArticles",
			Handler:    _DigestService_GetDigestArticles_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "GenerateDigest",
			Handler:       _DigestService_GenerateDigest_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "digests.proto",
}

DigestService_ServiceDesc is the grpc.ServiceDesc for DigestService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var FeedsService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.FeedsService",
	HandlerType: (*FeedsServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListFeeds",
			Handler:    _FeedsService_ListFeeds_Handler,
		},
		{
			MethodName: "RegisterFeed",
			Handler:    _FeedsService_RegisterFeed_Handler,
		},
		{
			MethodName: "RefreshFeed",
			Handler:    _FeedsService_RefreshFeed_Handler,
		},
		{
			MethodName: "InspectFeed",
			Handler:    _FeedsService_InspectFeed_Handler,
		},
		{
			MethodName: "InspectArticle",
			Handler:    _FeedsService_InspectArticle_Handler,
		},
		{
			MethodName: "DeleteFeed",
			Handler:    _FeedsService_DeleteFeed_Handler,
		},
		{
			MethodName: "ApplyFeeds",
			Handler:    _FeedsService_ApplyFeeds_Handler,
		},
		{
			MethodName: "DeleteFeeds",
			Handler:    _FeedsService_DeleteFeeds_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "RefreshAllFeeds",
			Handler:       _FeedsService_RefreshAllFeeds_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "AutoConfigFeed",
			Handler:       _FeedsService_AutoConfigFeed_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "feeds.proto",
}

FeedsService_ServiceDesc is the grpc.ServiceDesc for FeedsService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_analysis_proto protoreflect.FileDescriptor
View Source
var File_articles_proto protoreflect.FileDescriptor
View Source
var File_config_proto protoreflect.FileDescriptor
View Source
var File_creds_proto protoreflect.FileDescriptor
View Source
var File_digests_proto protoreflect.FileDescriptor
View Source
var File_feeds_proto protoreflect.FileDescriptor
View Source
var File_queue_proto protoreflect.FileDescriptor
View Source
var LLMsService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.LLMsService",
	HandlerType: (*LLMsServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetLLMProviders",
			Handler:    _LLMsService_GetLLMProviders_Handler,
		},
		{
			MethodName: "SaveLLMProviders",
			Handler:    _LLMsService_SaveLLMProviders_Handler,
		},
		{
			MethodName: "GetAvailableModels",
			Handler:    _LLMsService_GetAvailableModels_Handler,
		},
		{
			MethodName: "ResolveLLM",
			Handler:    _LLMsService_ResolveLLM_Handler,
		},
		{
			MethodName: "AnalyzeArticleWithProviderModel",
			Handler:    _LLMsService_AnalyzeArticleWithProviderModel_Handler,
		},
		{
			MethodName: "AnalyzeArticle",
			Handler:    _LLMsService_AnalyzeArticle_Handler,
		},
		{
			MethodName: "GetAnalysisConfig",
			Handler:    _LLMsService_GetAnalysisConfig_Handler,
		},
		{
			MethodName: "PreviewAnalysisPrompt",
			Handler:    _LLMsService_PreviewAnalysisPrompt_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamAnalyzeArticle",
			Handler:       _LLMsService_StreamAnalyzeArticle_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "llms.proto",
}

LLMsService_ServiceDesc is the grpc.ServiceDesc for LLMsService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var QueueService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.QueueService",
	HandlerType: (*QueueServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "EnqueueArticles",
			Handler:    _QueueService_EnqueueArticles_Handler,
		},
		{
			MethodName: "DequeueArticle",
			Handler:    _QueueService_DequeueArticle_Handler,
		},
		{
			MethodName: "ClearQueue",
			Handler:    _QueueService_ClearQueue_Handler,
		},
		{
			MethodName: "GetQueueStatus",
			Handler:    _QueueService_GetQueueStatus_Handler,
		},
		{
			MethodName: "StartQueue",
			Handler:    _QueueService_StartQueue_Handler,
		},
		{
			MethodName: "StopQueue",
			Handler:    _QueueService_StopQueue_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamQueueProgress",
			Handler:       _QueueService_StreamQueueProgress_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "queue.proto",
}

QueueService_ServiceDesc is the grpc.ServiceDesc for QueueService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var ServerConfigService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "downlink.ServerConfigService",
	HandlerType: (*ServerConfigServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetConfig",
			Handler:    _ServerConfigService_GetConfig_Handler,
		},
		{
			MethodName: "SaveConfig",
			Handler:    _ServerConfigService_SaveConfig_Handler,
		},
		{
			MethodName: "UpdateAnalysisConfig",
			Handler:    _ServerConfigService_UpdateAnalysisConfig_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "config.proto",
}

ServerConfigService_ServiceDesc is the grpc.ServiceDesc for ServerConfigService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterAnalysisServiceServer

func RegisterAnalysisServiceServer(s grpc.ServiceRegistrar, srv AnalysisServiceServer)

func RegisterArticleServiceServer

func RegisterArticleServiceServer(s grpc.ServiceRegistrar, srv ArticleServiceServer)

func RegisterCategoriesServiceServer

func RegisterCategoriesServiceServer(s grpc.ServiceRegistrar, srv CategoriesServiceServer)

func RegisterCredsServiceServer added in v0.3.0

func RegisterCredsServiceServer(s grpc.ServiceRegistrar, srv CredsServiceServer)

func RegisterDigestServiceServer

func RegisterDigestServiceServer(s grpc.ServiceRegistrar, srv DigestServiceServer)

func RegisterFeedsServiceServer

func RegisterFeedsServiceServer(s grpc.ServiceRegistrar, srv FeedsServiceServer)

func RegisterLLMsServiceServer

func RegisterLLMsServiceServer(s grpc.ServiceRegistrar, srv LLMsServiceServer)

func RegisterQueueServiceServer

func RegisterQueueServiceServer(s grpc.ServiceRegistrar, srv QueueServiceServer)

func RegisterServerConfigServiceServer

func RegisterServerConfigServiceServer(s grpc.ServiceRegistrar, srv ServerConfigServiceServer)

Types

type AnalysisConfig

type AnalysisConfig struct {
	Provider string `protobuf:"bytes,4,opt,name=provider,proto3" json:"provider,omitempty"`
	Persona  string `protobuf:"bytes,3,opt,name=persona,proto3" json:"persona,omitempty"`
	// contains filtered or unexported fields
}

AnalysisConfig represents the configuration for the analysis process

func (*AnalysisConfig) Descriptor deprecated

func (*AnalysisConfig) Descriptor() ([]byte, []int)

Deprecated: Use AnalysisConfig.ProtoReflect.Descriptor instead.

func (*AnalysisConfig) GetPersona

func (x *AnalysisConfig) GetPersona() string

func (*AnalysisConfig) GetProvider

func (x *AnalysisConfig) GetProvider() string

func (*AnalysisConfig) ProtoMessage

func (*AnalysisConfig) ProtoMessage()

func (*AnalysisConfig) ProtoReflect

func (x *AnalysisConfig) ProtoReflect() protoreflect.Message

func (*AnalysisConfig) Reset

func (x *AnalysisConfig) Reset()

func (*AnalysisConfig) String

func (x *AnalysisConfig) String() string

type AnalysisProgressEvent

type AnalysisProgressEvent struct {

	// Which task: "categorize", "key_points", "tags", "importance", "insights", "summaries"
	TaskName string `protobuf:"bytes,1,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"`
	// Status: "started", "completed", "error", "token"
	Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	// 1-based index of the current task
	TaskIndex int32 `protobuf:"varint,3,opt,name=task_index,json=taskIndex,proto3" json:"task_index,omitempty"`
	// Total number of tasks for this analysis
	TotalTasks int32 `protobuf:"varint,4,opt,name=total_tasks,json=totalTasks,proto3" json:"total_tasks,omitempty"`
	// The parsed JSON result for this task (only on "completed")
	TaskResult string `protobuf:"bytes,5,opt,name=task_result,json=taskResult,proto3" json:"task_result,omitempty"`
	// Error message (only on "error")
	Error string `protobuf:"bytes,6,opt,name=error,proto3" json:"error,omitempty"`
	// Final analysis (only on the last "completed" event)
	Analysis *ArticleAnalysis `protobuf:"bytes,7,opt,name=analysis,proto3" json:"analysis,omitempty"`
	// Token text chunk during LLM streaming (only on "token" status events)
	TokenChunk string `protobuf:"bytes,8,opt,name=token_chunk,json=tokenChunk,proto3" json:"token_chunk,omitempty"`
	// contains filtered or unexported fields
}

AnalysisProgressEvent is streamed during article analysis to report task-level progress

func (*AnalysisProgressEvent) Descriptor deprecated

func (*AnalysisProgressEvent) Descriptor() ([]byte, []int)

Deprecated: Use AnalysisProgressEvent.ProtoReflect.Descriptor instead.

func (*AnalysisProgressEvent) GetAnalysis

func (x *AnalysisProgressEvent) GetAnalysis() *ArticleAnalysis

func (*AnalysisProgressEvent) GetError

func (x *AnalysisProgressEvent) GetError() string

func (*AnalysisProgressEvent) GetStatus

func (x *AnalysisProgressEvent) GetStatus() string

func (*AnalysisProgressEvent) GetTaskIndex

func (x *AnalysisProgressEvent) GetTaskIndex() int32

func (*AnalysisProgressEvent) GetTaskName

func (x *AnalysisProgressEvent) GetTaskName() string

func (*AnalysisProgressEvent) GetTaskResult

func (x *AnalysisProgressEvent) GetTaskResult() string

func (*AnalysisProgressEvent) GetTokenChunk

func (x *AnalysisProgressEvent) GetTokenChunk() string

func (*AnalysisProgressEvent) GetTotalTasks

func (x *AnalysisProgressEvent) GetTotalTasks() int32

func (*AnalysisProgressEvent) ProtoMessage

func (*AnalysisProgressEvent) ProtoMessage()

func (*AnalysisProgressEvent) ProtoReflect

func (x *AnalysisProgressEvent) ProtoReflect() protoreflect.Message

func (*AnalysisProgressEvent) Reset

func (x *AnalysisProgressEvent) Reset()

func (*AnalysisProgressEvent) String

func (x *AnalysisProgressEvent) String() string

type AnalysisServiceClient

type AnalysisServiceClient interface {
	// GetAllArticleAnalyses retrieves all analysis results for a specific article
	GetAllArticleAnalyses(ctx context.Context, in *GetAllArticleAnalysesRequest, opts ...grpc.CallOption) (*GetAllArticleAnalysesResponse, error)
	GetAnalysis(ctx context.Context, in *GetAnalysisRequest, opts ...grpc.CallOption) (*ArticleAnalysis, error)
}

AnalysisServiceClient is the client API for AnalysisService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

AnalysisService provides methods for working with articles

type AnalysisServiceServer

type AnalysisServiceServer interface {
	// GetAllArticleAnalyses retrieves all analysis results for a specific article
	GetAllArticleAnalyses(context.Context, *GetAllArticleAnalysesRequest) (*GetAllArticleAnalysesResponse, error)
	GetAnalysis(context.Context, *GetAnalysisRequest) (*ArticleAnalysis, error)
	// contains filtered or unexported methods
}

AnalysisServiceServer is the server API for AnalysisService service. All implementations must embed UnimplementedAnalysisServiceServer for forward compatibility.

AnalysisService provides methods for working with articles

type AnalyzeArticleRequest

type AnalyzeArticleRequest struct {
	ArticleId string `protobuf:"bytes,1,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	FastMode  bool   `protobuf:"varint,2,opt,name=fast_mode,json=fastMode,proto3" json:"fast_mode,omitempty"` // If true, only extract key points
	// contains filtered or unexported fields
}

AnalyzeArticleRequest is the request for the AnalyzeArticle method

func (*AnalyzeArticleRequest) Descriptor deprecated

func (*AnalyzeArticleRequest) Descriptor() ([]byte, []int)

Deprecated: Use AnalyzeArticleRequest.ProtoReflect.Descriptor instead.

func (*AnalyzeArticleRequest) GetArticleId

func (x *AnalyzeArticleRequest) GetArticleId() string

func (*AnalyzeArticleRequest) GetFastMode

func (x *AnalyzeArticleRequest) GetFastMode() bool

func (*AnalyzeArticleRequest) ProtoMessage

func (*AnalyzeArticleRequest) ProtoMessage()

func (*AnalyzeArticleRequest) ProtoReflect

func (x *AnalyzeArticleRequest) ProtoReflect() protoreflect.Message

func (*AnalyzeArticleRequest) Reset

func (x *AnalyzeArticleRequest) Reset()

func (*AnalyzeArticleRequest) String

func (x *AnalyzeArticleRequest) String() string

type AnalyzeArticleResponse

type AnalyzeArticleResponse struct {
	Analysis *ArticleAnalysis `protobuf:"bytes,1,opt,name=analysis,proto3" json:"analysis,omitempty"`
	// contains filtered or unexported fields
}

AnalyzeArticleResponse is the response for the AnalyzeArticle method

func (*AnalyzeArticleResponse) Descriptor deprecated

func (*AnalyzeArticleResponse) Descriptor() ([]byte, []int)

Deprecated: Use AnalyzeArticleResponse.ProtoReflect.Descriptor instead.

func (*AnalyzeArticleResponse) GetAnalysis

func (x *AnalyzeArticleResponse) GetAnalysis() *ArticleAnalysis

func (*AnalyzeArticleResponse) ProtoMessage

func (*AnalyzeArticleResponse) ProtoMessage()

func (*AnalyzeArticleResponse) ProtoReflect

func (x *AnalyzeArticleResponse) ProtoReflect() protoreflect.Message

func (*AnalyzeArticleResponse) Reset

func (x *AnalyzeArticleResponse) Reset()

func (*AnalyzeArticleResponse) String

func (x *AnalyzeArticleResponse) String() string

type AnalyzeArticleWithProviderModelRequest

type AnalyzeArticleWithProviderModelRequest struct {
	ArticleId      string `protobuf:"bytes,1,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	ProviderType   string `protobuf:"bytes,2,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	ModelName      string `protobuf:"bytes,3,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	FastMode       bool   `protobuf:"varint,4,opt,name=fast_mode,json=fastMode,proto3" json:"fast_mode,omitempty"`                   // If true, only extract key points
	ProviderName   string `protobuf:"bytes,6,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`        // Named profile from config.providers; takes precedence over provider_type/model_name
	SkipReferences bool   `protobuf:"varint,7,opt,name=skip_references,json=skipReferences,proto3" json:"skip_references,omitempty"` // If true, skip the referenced_reports task
	VibeScore      *bool  `protobuf:"varint,8,opt,name=vibe_score,json=vibeScore,proto3,oneof" json:"vibe_score,omitempty"`          // When set, overrides the server's vibe_score config (legacy single-number importance prompt)
	Provider       string `protobuf:"bytes,9,opt,name=provider,proto3" json:"provider,omitempty"`                                    // Provider override (type or profile name, auto-detected by the server)
	Glossary       *bool  `protobuf:"varint,10,opt,name=glossary,proto3,oneof" json:"glossary,omitempty"`                            // When set, overrides the server's glossary config (plain-language explanation + jargon glossary)
	// contains filtered or unexported fields
}

AnalyzeArticleWithProviderModelRequest is the request for the AnalyzeArticleWithProviderModel method

func (*AnalyzeArticleWithProviderModelRequest) Descriptor deprecated

func (*AnalyzeArticleWithProviderModelRequest) Descriptor() ([]byte, []int)

Deprecated: Use AnalyzeArticleWithProviderModelRequest.ProtoReflect.Descriptor instead.

func (*AnalyzeArticleWithProviderModelRequest) GetArticleId

func (*AnalyzeArticleWithProviderModelRequest) GetFastMode

func (*AnalyzeArticleWithProviderModelRequest) GetGlossary added in v0.3.0

func (*AnalyzeArticleWithProviderModelRequest) GetModelName

func (*AnalyzeArticleWithProviderModelRequest) GetProvider

func (*AnalyzeArticleWithProviderModelRequest) GetProviderName

func (x *AnalyzeArticleWithProviderModelRequest) GetProviderName() string

func (*AnalyzeArticleWithProviderModelRequest) GetProviderType

func (x *AnalyzeArticleWithProviderModelRequest) GetProviderType() string

func (*AnalyzeArticleWithProviderModelRequest) GetSkipReferences

func (x *AnalyzeArticleWithProviderModelRequest) GetSkipReferences() bool

func (*AnalyzeArticleWithProviderModelRequest) GetVibeScore

func (x *AnalyzeArticleWithProviderModelRequest) GetVibeScore() bool

func (*AnalyzeArticleWithProviderModelRequest) ProtoMessage

func (*AnalyzeArticleWithProviderModelRequest) ProtoReflect

func (*AnalyzeArticleWithProviderModelRequest) Reset

func (*AnalyzeArticleWithProviderModelRequest) String

type AnalyzeArticleWithProviderModelResponse

type AnalyzeArticleWithProviderModelResponse struct {
	Analysis *ArticleAnalysis `protobuf:"bytes,1,opt,name=analysis,proto3" json:"analysis,omitempty"`
	// contains filtered or unexported fields
}

AnalyzeArticleWithProviderModelResponse is the response for the AnalyzeArticleWithProviderModel method

func (*AnalyzeArticleWithProviderModelResponse) Descriptor deprecated

func (*AnalyzeArticleWithProviderModelResponse) Descriptor() ([]byte, []int)

Deprecated: Use AnalyzeArticleWithProviderModelResponse.ProtoReflect.Descriptor instead.

func (*AnalyzeArticleWithProviderModelResponse) GetAnalysis

func (*AnalyzeArticleWithProviderModelResponse) ProtoMessage

func (*AnalyzeArticleWithProviderModelResponse) ProtoReflect

func (*AnalyzeArticleWithProviderModelResponse) Reset

func (*AnalyzeArticleWithProviderModelResponse) String

type AnthropicContentItem

type AnthropicContentItem struct {
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
	// contains filtered or unexported fields
}

AnthropicContentItem represents a content item in the Anthropic API response

func (*AnthropicContentItem) Descriptor deprecated

func (*AnthropicContentItem) Descriptor() ([]byte, []int)

Deprecated: Use AnthropicContentItem.ProtoReflect.Descriptor instead.

func (*AnthropicContentItem) GetText

func (x *AnthropicContentItem) GetText() string

func (*AnthropicContentItem) GetType

func (x *AnthropicContentItem) GetType() string

func (*AnthropicContentItem) ProtoMessage

func (*AnthropicContentItem) ProtoMessage()

func (*AnthropicContentItem) ProtoReflect

func (x *AnthropicContentItem) ProtoReflect() protoreflect.Message

func (*AnthropicContentItem) Reset

func (x *AnthropicContentItem) Reset()

func (*AnthropicContentItem) String

func (x *AnthropicContentItem) String() string

type AnthropicModelData

type AnthropicModelData struct {
	Type        string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	Id          string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	CreatedAt   string `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// contains filtered or unexported fields
}

AnthropicModelData represents a model in Anthropic's models endpoint response

func (*AnthropicModelData) Descriptor deprecated

func (*AnthropicModelData) Descriptor() ([]byte, []int)

Deprecated: Use AnthropicModelData.ProtoReflect.Descriptor instead.

func (*AnthropicModelData) GetCreatedAt

func (x *AnthropicModelData) GetCreatedAt() string

func (*AnthropicModelData) GetDisplayName

func (x *AnthropicModelData) GetDisplayName() string

func (*AnthropicModelData) GetId

func (x *AnthropicModelData) GetId() string

func (*AnthropicModelData) GetType

func (x *AnthropicModelData) GetType() string

func (*AnthropicModelData) ProtoMessage

func (*AnthropicModelData) ProtoMessage()

func (*AnthropicModelData) ProtoReflect

func (x *AnthropicModelData) ProtoReflect() protoreflect.Message

func (*AnthropicModelData) Reset

func (x *AnthropicModelData) Reset()

func (*AnthropicModelData) String

func (x *AnthropicModelData) String() string

type AnthropicModelsResponse

type AnthropicModelsResponse struct {
	Data    []*AnthropicModelData `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
	HasMore bool                  `protobuf:"varint,2,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"`
	FirstId string                `protobuf:"bytes,3,opt,name=first_id,json=firstId,proto3" json:"first_id,omitempty"`
	LastId  string                `protobuf:"bytes,4,opt,name=last_id,json=lastId,proto3" json:"last_id,omitempty"`
	// contains filtered or unexported fields
}

AnthropicModelsResponse represents the response from Anthropic's models endpoint

func (*AnthropicModelsResponse) Descriptor deprecated

func (*AnthropicModelsResponse) Descriptor() ([]byte, []int)

Deprecated: Use AnthropicModelsResponse.ProtoReflect.Descriptor instead.

func (*AnthropicModelsResponse) GetData

func (*AnthropicModelsResponse) GetFirstId

func (x *AnthropicModelsResponse) GetFirstId() string

func (*AnthropicModelsResponse) GetHasMore

func (x *AnthropicModelsResponse) GetHasMore() bool

func (*AnthropicModelsResponse) GetLastId

func (x *AnthropicModelsResponse) GetLastId() string

func (*AnthropicModelsResponse) ProtoMessage

func (*AnthropicModelsResponse) ProtoMessage()

func (*AnthropicModelsResponse) ProtoReflect

func (x *AnthropicModelsResponse) ProtoReflect() protoreflect.Message

func (*AnthropicModelsResponse) Reset

func (x *AnthropicModelsResponse) Reset()

func (*AnthropicModelsResponse) String

func (x *AnthropicModelsResponse) String() string

type AnthropicRequest

type AnthropicRequest struct {
	Model       string     `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
	Messages    []*Message `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"`
	Temperature float32    `protobuf:"fixed32,3,opt,name=temperature,proto3" json:"temperature,omitempty"`
	MaxTokens   int32      `protobuf:"varint,4,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"`
	// contains filtered or unexported fields
}

AnthropicRequest represents a request to the Anthropic API

func (*AnthropicRequest) Descriptor deprecated

func (*AnthropicRequest) Descriptor() ([]byte, []int)

Deprecated: Use AnthropicRequest.ProtoReflect.Descriptor instead.

func (*AnthropicRequest) GetMaxTokens

func (x *AnthropicRequest) GetMaxTokens() int32

func (*AnthropicRequest) GetMessages

func (x *AnthropicRequest) GetMessages() []*Message

func (*AnthropicRequest) GetModel

func (x *AnthropicRequest) GetModel() string

func (*AnthropicRequest) GetTemperature

func (x *AnthropicRequest) GetTemperature() float32

func (*AnthropicRequest) ProtoMessage

func (*AnthropicRequest) ProtoMessage()

func (*AnthropicRequest) ProtoReflect

func (x *AnthropicRequest) ProtoReflect() protoreflect.Message

func (*AnthropicRequest) Reset

func (x *AnthropicRequest) Reset()

func (*AnthropicRequest) String

func (x *AnthropicRequest) String() string

type AnthropicResponse

type AnthropicResponse struct {
	Id      string                  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Type    string                  `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	Model   string                  `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
	Content []*AnthropicContentItem `protobuf:"bytes,4,rep,name=content,proto3" json:"content,omitempty"`
	// contains filtered or unexported fields
}

AnthropicResponse represents a response from the Anthropic API

func (*AnthropicResponse) Descriptor deprecated

func (*AnthropicResponse) Descriptor() ([]byte, []int)

Deprecated: Use AnthropicResponse.ProtoReflect.Descriptor instead.

func (*AnthropicResponse) GetContent

func (x *AnthropicResponse) GetContent() []*AnthropicContentItem

func (*AnthropicResponse) GetId

func (x *AnthropicResponse) GetId() string

func (*AnthropicResponse) GetModel

func (x *AnthropicResponse) GetModel() string

func (*AnthropicResponse) GetType

func (x *AnthropicResponse) GetType() string

func (*AnthropicResponse) ProtoMessage

func (*AnthropicResponse) ProtoMessage()

func (*AnthropicResponse) ProtoReflect

func (x *AnthropicResponse) ProtoReflect() protoreflect.Message

func (*AnthropicResponse) Reset

func (x *AnthropicResponse) Reset()

func (*AnthropicResponse) String

func (x *AnthropicResponse) String() string

type ApplyFeedsRequest

type ApplyFeedsRequest struct {
	Feeds            []*FeedConfig `protobuf:"bytes,1,rep,name=feeds,proto3" json:"feeds,omitempty"`
	DefaultSelectors *Selectors    `protobuf:"bytes,2,opt,name=default_selectors,json=defaultSelectors,proto3" json:"default_selectors,omitempty"` // baked into feeds lacking their own selectors
	DryRun           bool          `protobuf:"varint,3,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`                              // when true, compute the plan but make no changes
	// contains filtered or unexported fields
}

ApplyFeedsRequest carries the desired set of feeds to reconcile against

func (*ApplyFeedsRequest) Descriptor deprecated

func (*ApplyFeedsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ApplyFeedsRequest.ProtoReflect.Descriptor instead.

func (*ApplyFeedsRequest) GetDefaultSelectors

func (x *ApplyFeedsRequest) GetDefaultSelectors() *Selectors

func (*ApplyFeedsRequest) GetDryRun

func (x *ApplyFeedsRequest) GetDryRun() bool

func (*ApplyFeedsRequest) GetFeeds

func (x *ApplyFeedsRequest) GetFeeds() []*FeedConfig

func (*ApplyFeedsRequest) ProtoMessage

func (*ApplyFeedsRequest) ProtoMessage()

func (*ApplyFeedsRequest) ProtoReflect

func (x *ApplyFeedsRequest) ProtoReflect() protoreflect.Message

func (*ApplyFeedsRequest) Reset

func (x *ApplyFeedsRequest) Reset()

func (*ApplyFeedsRequest) String

func (x *ApplyFeedsRequest) String() string

type ApplyFeedsResponse

type ApplyFeedsResponse struct {
	Created  []string `protobuf:"bytes,1,rep,name=created,proto3" json:"created,omitempty"`
	Updated  []string `protobuf:"bytes,2,rep,name=updated,proto3" json:"updated,omitempty"`
	Disabled []string `protobuf:"bytes,3,rep,name=disabled,proto3" json:"disabled,omitempty"`
	// contains filtered or unexported fields
}

ApplyFeedsResponse reports the (would-be, when dry_run) reconciliation outcome. Each list carries human-readable identifiers (e.g. "title — url"), not ids.

func (*ApplyFeedsResponse) Descriptor deprecated

func (*ApplyFeedsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ApplyFeedsResponse.ProtoReflect.Descriptor instead.

func (*ApplyFeedsResponse) GetCreated

func (x *ApplyFeedsResponse) GetCreated() []string

func (*ApplyFeedsResponse) GetDisabled

func (x *ApplyFeedsResponse) GetDisabled() []string

func (*ApplyFeedsResponse) GetUpdated

func (x *ApplyFeedsResponse) GetUpdated() []string

func (*ApplyFeedsResponse) ProtoMessage

func (*ApplyFeedsResponse) ProtoMessage()

func (*ApplyFeedsResponse) ProtoReflect

func (x *ApplyFeedsResponse) ProtoReflect() protoreflect.Message

func (*ApplyFeedsResponse) Reset

func (x *ApplyFeedsResponse) Reset()

func (*ApplyFeedsResponse) String

func (x *ApplyFeedsResponse) String() string

type Article

type Article struct {
	Id              string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	FeedId          string                 `protobuf:"bytes,2,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
	Title           string                 `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
	Content         string                 `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"`
	Link            string                 `protobuf:"bytes,5,opt,name=link,proto3" json:"link,omitempty"`
	PublishedAt     *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=published_at,json=publishedAt,proto3" json:"published_at,omitempty"`
	FetchedAt       *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=fetched_at,json=fetchedAt,proto3" json:"fetched_at,omitempty"`
	Read            *bool                  `protobuf:"varint,8,opt,name=read,proto3,oneof" json:"read,omitempty"`
	Tags            []*Tag                 `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags,omitempty"`
	CategoryName    *string                `protobuf:"bytes,10,opt,name=category_name,json=categoryName,proto3,oneof" json:"category_name,omitempty"`
	Category        *Category              `protobuf:"bytes,11,opt,name=category,proto3" json:"category,omitempty"`
	HeroImage       string                 `protobuf:"bytes,12,opt,name=hero_image,json=heroImage,proto3" json:"hero_image,omitempty"`
	Bookmarked      *bool                  `protobuf:"varint,13,opt,name=bookmarked,proto3,oneof" json:"bookmarked,omitempty"`
	RelatedArticles []*RelatedArticle      `protobuf:"bytes,14,rep,name=related_articles,json=relatedArticles,proto3" json:"related_articles,omitempty"`
	// Latest analysis importance score (0-100). Populated by ListArticles for list rendering;
	// unset (or 0) when no analysis exists. Not stored on the article record itself.
	LatestImportanceScore *int32 `` /* 134-byte string literal not displayed */
	// contains filtered or unexported fields
}

Article represents an article from a feed

func (*Article) Descriptor deprecated

func (*Article) Descriptor() ([]byte, []int)

Deprecated: Use Article.ProtoReflect.Descriptor instead.

func (*Article) GetBookmarked

func (x *Article) GetBookmarked() bool

func (*Article) GetCategory

func (x *Article) GetCategory() *Category

func (*Article) GetCategoryName

func (x *Article) GetCategoryName() string

func (*Article) GetContent

func (x *Article) GetContent() string

func (*Article) GetFeedId

func (x *Article) GetFeedId() string

func (*Article) GetFetchedAt

func (x *Article) GetFetchedAt() *timestamppb.Timestamp

func (*Article) GetHeroImage

func (x *Article) GetHeroImage() string

func (*Article) GetId

func (x *Article) GetId() string

func (*Article) GetLatestImportanceScore

func (x *Article) GetLatestImportanceScore() int32
func (x *Article) GetLink() string

func (*Article) GetPublishedAt

func (x *Article) GetPublishedAt() *timestamppb.Timestamp

func (*Article) GetRead

func (x *Article) GetRead() bool

func (*Article) GetRelatedArticles

func (x *Article) GetRelatedArticles() []*RelatedArticle

func (*Article) GetTags

func (x *Article) GetTags() []*Tag

func (*Article) GetTitle

func (x *Article) GetTitle() string

func (*Article) ProtoMessage

func (*Article) ProtoMessage()

func (*Article) ProtoReflect

func (x *Article) ProtoReflect() protoreflect.Message

func (*Article) Reset

func (x *Article) Reset()

func (*Article) String

func (x *Article) String() string

type ArticleAnalysis

type ArticleAnalysis struct {
	Id                     string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ArticleId              string                 `protobuf:"bytes,2,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	ProviderType           string                 `protobuf:"bytes,3,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	ModelName              string                 `protobuf:"bytes,4,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	ImportanceScore        int32                  `protobuf:"varint,5,opt,name=importance_score,json=importanceScore,proto3" json:"importance_score,omitempty"`
	KeyPoints              []string               `protobuf:"bytes,6,rep,name=key_points,json=keyPoints,proto3" json:"key_points,omitempty"`
	Insights               []string               `protobuf:"bytes,7,rep,name=insights,proto3" json:"insights,omitempty"`
	Tldr                   string                 `protobuf:"bytes,18,opt,name=tldr,proto3" json:"tldr,omitempty"`
	Justification          string                 `protobuf:"bytes,8,opt,name=justification,proto3" json:"justification,omitempty"`
	BriefOverview          string                 `protobuf:"bytes,9,opt,name=brief_overview,json=briefOverview,proto3" json:"brief_overview,omitempty"`
	StandardSynthesis      string                 `protobuf:"bytes,10,opt,name=standard_synthesis,json=standardSynthesis,proto3" json:"standard_synthesis,omitempty"`
	ComprehensiveSynthesis string                 `` /* 128-byte string literal not displayed */
	ThinkingProcess        string                 `protobuf:"bytes,12,opt,name=thinking_process,json=thinkingProcess,proto3" json:"thinking_process,omitempty"`
	RawResponse            string                 `protobuf:"bytes,13,opt,name=raw_response,json=rawResponse,proto3" json:"raw_response,omitempty"`
	CreatedAt              *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	KeyPointsJson          string                 `protobuf:"bytes,15,opt,name=key_points_json,json=keyPointsJson,proto3" json:"key_points_json,omitempty"`
	InsightsJson           string                 `protobuf:"bytes,16,opt,name=insights_json,json=insightsJson,proto3" json:"insights_json,omitempty"`
	Article                *Article               `protobuf:"bytes,17,opt,name=article,proto3,oneof" json:"article,omitempty"`
	ReferencedReports      []*ReferencedReport    `protobuf:"bytes,19,rep,name=referenced_reports,json=referencedReports,proto3" json:"referenced_reports,omitempty"`
	ReferencedReportsJson  string                 `` /* 127-byte string literal not displayed */
	ScoreDimensions        *ScoreDimensions       `protobuf:"bytes,21,opt,name=score_dimensions,json=scoreDimensions,proto3,oneof" json:"score_dimensions,omitempty"`
	// contains filtered or unexported fields
}

func (*ArticleAnalysis) Descriptor deprecated

func (*ArticleAnalysis) Descriptor() ([]byte, []int)

Deprecated: Use ArticleAnalysis.ProtoReflect.Descriptor instead.

func (*ArticleAnalysis) GetArticle

func (x *ArticleAnalysis) GetArticle() *Article

func (*ArticleAnalysis) GetArticleId

func (x *ArticleAnalysis) GetArticleId() string

func (*ArticleAnalysis) GetBriefOverview

func (x *ArticleAnalysis) GetBriefOverview() string

func (*ArticleAnalysis) GetComprehensiveSynthesis

func (x *ArticleAnalysis) GetComprehensiveSynthesis() string

func (*ArticleAnalysis) GetCreatedAt

func (x *ArticleAnalysis) GetCreatedAt() *timestamppb.Timestamp

func (*ArticleAnalysis) GetId

func (x *ArticleAnalysis) GetId() string

func (*ArticleAnalysis) GetImportanceScore

func (x *ArticleAnalysis) GetImportanceScore() int32

func (*ArticleAnalysis) GetInsights

func (x *ArticleAnalysis) GetInsights() []string

func (*ArticleAnalysis) GetInsightsJson

func (x *ArticleAnalysis) GetInsightsJson() string

func (*ArticleAnalysis) GetJustification

func (x *ArticleAnalysis) GetJustification() string

func (*ArticleAnalysis) GetKeyPoints

func (x *ArticleAnalysis) GetKeyPoints() []string

func (*ArticleAnalysis) GetKeyPointsJson

func (x *ArticleAnalysis) GetKeyPointsJson() string

func (*ArticleAnalysis) GetModelName

func (x *ArticleAnalysis) GetModelName() string

func (*ArticleAnalysis) GetProviderType

func (x *ArticleAnalysis) GetProviderType() string

func (*ArticleAnalysis) GetRawResponse

func (x *ArticleAnalysis) GetRawResponse() string

func (*ArticleAnalysis) GetReferencedReports

func (x *ArticleAnalysis) GetReferencedReports() []*ReferencedReport

func (*ArticleAnalysis) GetReferencedReportsJson

func (x *ArticleAnalysis) GetReferencedReportsJson() string

func (*ArticleAnalysis) GetScoreDimensions

func (x *ArticleAnalysis) GetScoreDimensions() *ScoreDimensions

func (*ArticleAnalysis) GetStandardSynthesis

func (x *ArticleAnalysis) GetStandardSynthesis() string

func (*ArticleAnalysis) GetThinkingProcess

func (x *ArticleAnalysis) GetThinkingProcess() string

func (*ArticleAnalysis) GetTldr

func (x *ArticleAnalysis) GetTldr() string

func (*ArticleAnalysis) ProtoMessage

func (*ArticleAnalysis) ProtoMessage()

func (*ArticleAnalysis) ProtoReflect

func (x *ArticleAnalysis) ProtoReflect() protoreflect.Message

func (*ArticleAnalysis) Reset

func (x *ArticleAnalysis) Reset()

func (*ArticleAnalysis) String

func (x *ArticleAnalysis) String() string

type ArticleCountsResponse

type ArticleCountsResponse struct {
	AllUnreadCount  int32            `protobuf:"varint,1,opt,name=all_unread_count,json=allUnreadCount,proto3" json:"all_unread_count,omitempty"`
	BookmarkedCount int32            `protobuf:"varint,2,opt,name=bookmarked_count,json=bookmarkedCount,proto3" json:"bookmarked_count,omitempty"`
	UnreadByFeed    map[string]int32 `` /* 174-byte string literal not displayed */
	// contains filtered or unexported fields
}

ArticleCountsResponse represents exact sidebar counts for the current query scope.

func (*ArticleCountsResponse) Descriptor deprecated

func (*ArticleCountsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ArticleCountsResponse.ProtoReflect.Descriptor instead.

func (*ArticleCountsResponse) GetAllUnreadCount

func (x *ArticleCountsResponse) GetAllUnreadCount() int32

func (*ArticleCountsResponse) GetBookmarkedCount

func (x *ArticleCountsResponse) GetBookmarkedCount() int32

func (*ArticleCountsResponse) GetUnreadByFeed

func (x *ArticleCountsResponse) GetUnreadByFeed() map[string]int32

func (*ArticleCountsResponse) ProtoMessage

func (*ArticleCountsResponse) ProtoMessage()

func (*ArticleCountsResponse) ProtoReflect

func (x *ArticleCountsResponse) ProtoReflect() protoreflect.Message

func (*ArticleCountsResponse) Reset

func (x *ArticleCountsResponse) Reset()

func (*ArticleCountsResponse) String

func (x *ArticleCountsResponse) String() string

type ArticleFilter

type ArticleFilter struct {
	UnreadOnly      bool                   `protobuf:"varint,1,opt,name=unread_only,json=unreadOnly,proto3" json:"unread_only,omitempty"`
	CategoryName    string                 `protobuf:"bytes,2,opt,name=category_name,json=categoryName,proto3" json:"category_name,omitempty"`
	TagId           string                 `protobuf:"bytes,3,opt,name=tag_id,json=tagId,proto3" json:"tag_id,omitempty"`
	BookmarkedOnly  bool                   `protobuf:"varint,4,opt,name=bookmarked_only,json=bookmarkedOnly,proto3" json:"bookmarked_only,omitempty"`
	RelatedToId     string                 `protobuf:"bytes,5,opt,name=related_to_id,json=relatedToId,proto3" json:"related_to_id,omitempty"`
	StartDate       *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	EndDate         *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	FeedId          string                 `protobuf:"bytes,8,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
	Offset          uint32                 `protobuf:"varint,9,opt,name=offset,proto3" json:"offset,omitempty"`
	ExcludeDigested bool                   `protobuf:"varint,10,opt,name=exclude_digested,json=excludeDigested,proto3" json:"exclude_digested,omitempty"`
	Limit           uint32                 `protobuf:"varint,11,opt,name=limit,proto3" json:"limit,omitempty"`
	Query           string                 `protobuf:"bytes,12,opt,name=query,proto3" json:"query,omitempty"`
	// contains filtered or unexported fields
}

ArticleFilter represents filtering options for listing articles

func (*ArticleFilter) Descriptor deprecated

func (*ArticleFilter) Descriptor() ([]byte, []int)

Deprecated: Use ArticleFilter.ProtoReflect.Descriptor instead.

func (*ArticleFilter) GetBookmarkedOnly

func (x *ArticleFilter) GetBookmarkedOnly() bool

func (*ArticleFilter) GetCategoryName

func (x *ArticleFilter) GetCategoryName() string

func (*ArticleFilter) GetEndDate

func (x *ArticleFilter) GetEndDate() *timestamppb.Timestamp

func (*ArticleFilter) GetExcludeDigested

func (x *ArticleFilter) GetExcludeDigested() bool

func (*ArticleFilter) GetFeedId

func (x *ArticleFilter) GetFeedId() string

func (*ArticleFilter) GetLimit

func (x *ArticleFilter) GetLimit() uint32

func (*ArticleFilter) GetOffset

func (x *ArticleFilter) GetOffset() uint32

func (*ArticleFilter) GetQuery

func (x *ArticleFilter) GetQuery() string

func (*ArticleFilter) GetRelatedToId

func (x *ArticleFilter) GetRelatedToId() string

func (*ArticleFilter) GetStartDate

func (x *ArticleFilter) GetStartDate() *timestamppb.Timestamp

func (*ArticleFilter) GetTagId

func (x *ArticleFilter) GetTagId() string

func (*ArticleFilter) GetUnreadOnly

func (x *ArticleFilter) GetUnreadOnly() bool

func (*ArticleFilter) ProtoMessage

func (*ArticleFilter) ProtoMessage()

func (*ArticleFilter) ProtoReflect

func (x *ArticleFilter) ProtoReflect() protoreflect.Message

func (*ArticleFilter) Reset

func (x *ArticleFilter) Reset()

func (*ArticleFilter) String

func (x *ArticleFilter) String() string

type ArticleServiceClient

type ArticleServiceClient interface {
	// ListArticles returns a list of articles based on the provided filter
	ListArticles(ctx context.Context, in *ArticleFilter, opts ...grpc.CallOption) (*ListArticlesResponse, error)
	// GetArticleCounts returns exact counts for the current query scope.
	GetArticleCounts(ctx context.Context, in *ArticleFilter, opts ...grpc.CallOption) (*ArticleCountsResponse, error)
	// GetArticle returns a single article by Id
	GetArticle(ctx context.Context, in *GetArticleRequest, opts ...grpc.CallOption) (*Article, error)
	// UpdateArticle updates an article's properties
	UpdateArticle(ctx context.Context, in *UpdateArticleRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// MarkFeedArticlesRead marks every article in a feed as read.
	MarkFeedArticlesRead(ctx context.Context, in *MarkFeedReadRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}

ArticleServiceClient is the client API for ArticleService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

ArticleService provides methods for working with articles

type ArticleServiceServer

type ArticleServiceServer interface {
	// ListArticles returns a list of articles based on the provided filter
	ListArticles(context.Context, *ArticleFilter) (*ListArticlesResponse, error)
	// GetArticleCounts returns exact counts for the current query scope.
	GetArticleCounts(context.Context, *ArticleFilter) (*ArticleCountsResponse, error)
	// GetArticle returns a single article by Id
	GetArticle(context.Context, *GetArticleRequest) (*Article, error)
	// UpdateArticle updates an article's properties
	UpdateArticle(context.Context, *UpdateArticleRequest) (*emptypb.Empty, error)
	// MarkFeedArticlesRead marks every article in a feed as read.
	MarkFeedArticlesRead(context.Context, *MarkFeedReadRequest) (*emptypb.Empty, error)
	// contains filtered or unexported methods
}

ArticleServiceServer is the server API for ArticleService service. All implementations must embed UnimplementedArticleServiceServer for forward compatibility.

ArticleService provides methods for working with articles

type ArticleUpdate

type ArticleUpdate struct {
	Read            *bool             `protobuf:"varint,1,opt,name=read,proto3,oneof" json:"read,omitempty"`
	TagIds          []string          `protobuf:"bytes,2,rep,name=tag_ids,json=tagIds,proto3" json:"tag_ids,omitempty"`
	CategoryName    *string           `protobuf:"bytes,3,opt,name=category_name,json=categoryName,proto3,oneof" json:"category_name,omitempty"`
	HeroImage       *string           `protobuf:"bytes,4,opt,name=hero_image,json=heroImage,proto3,oneof" json:"hero_image,omitempty"`
	Bookmarked      *bool             `protobuf:"varint,5,opt,name=bookmarked,proto3,oneof" json:"bookmarked,omitempty"`
	RelatedArticles []*RelatedArticle `protobuf:"bytes,6,rep,name=related_articles,json=relatedArticles,proto3" json:"related_articles,omitempty"`
	// contains filtered or unexported fields
}

ArticleUpdate represents fields that can be updated for an article

func (*ArticleUpdate) Descriptor deprecated

func (*ArticleUpdate) Descriptor() ([]byte, []int)

Deprecated: Use ArticleUpdate.ProtoReflect.Descriptor instead.

func (*ArticleUpdate) GetBookmarked

func (x *ArticleUpdate) GetBookmarked() bool

func (*ArticleUpdate) GetCategoryName

func (x *ArticleUpdate) GetCategoryName() string

func (*ArticleUpdate) GetHeroImage

func (x *ArticleUpdate) GetHeroImage() string

func (*ArticleUpdate) GetRead

func (x *ArticleUpdate) GetRead() bool

func (*ArticleUpdate) GetRelatedArticles

func (x *ArticleUpdate) GetRelatedArticles() []*RelatedArticle

func (*ArticleUpdate) GetTagIds

func (x *ArticleUpdate) GetTagIds() []string

func (*ArticleUpdate) ProtoMessage

func (*ArticleUpdate) ProtoMessage()

func (*ArticleUpdate) ProtoReflect

func (x *ArticleUpdate) ProtoReflect() protoreflect.Message

func (*ArticleUpdate) Reset

func (x *ArticleUpdate) Reset()

func (*ArticleUpdate) String

func (x *ArticleUpdate) String() string

type AutoConfigEventKind added in v0.2.0

type AutoConfigEventKind int32
const (
	AutoConfigEventKind_STEP   AutoConfigEventKind = 0
	AutoConfigEventKind_DONE   AutoConfigEventKind = 1
	AutoConfigEventKind_ERROR  AutoConfigEventKind = 2
	AutoConfigEventKind_LLM_IO AutoConfigEventKind = 3
)

func (AutoConfigEventKind) Descriptor added in v0.2.0

func (AutoConfigEventKind) Enum added in v0.2.0

func (AutoConfigEventKind) EnumDescriptor deprecated added in v0.2.0

func (AutoConfigEventKind) EnumDescriptor() ([]byte, []int)

Deprecated: Use AutoConfigEventKind.Descriptor instead.

func (AutoConfigEventKind) Number added in v0.2.0

func (AutoConfigEventKind) String added in v0.2.0

func (x AutoConfigEventKind) String() string

func (AutoConfigEventKind) Type added in v0.2.0

type AutoConfigFeedEvent added in v0.2.0

type AutoConfigFeedEvent struct {
	Kind           AutoConfigEventKind `protobuf:"varint,1,opt,name=kind,proto3,enum=downlink.AutoConfigEventKind" json:"kind,omitempty"`
	Step           int32               `protobuf:"varint,2,opt,name=step,proto3" json:"step,omitempty"`                                            // 1-based step index for STEP events (turn index for LLM_IO)
	Tool           string              `protobuf:"bytes,3,opt,name=tool,proto3" json:"tool,omitempty"`                                             // tool the agent invoked (STEP events)
	Detail         string              `protobuf:"bytes,4,opt,name=detail,proto3" json:"detail,omitempty"`                                         // one-line human description of the step / error
	FeedConfigYaml string              `protobuf:"bytes,5,opt,name=feed_config_yaml,json=feedConfigYaml,proto3" json:"feed_config_yaml,omitempty"` // populated on DONE: the final feed config as YAML
	Summary        string              `protobuf:"bytes,6,opt,name=summary,proto3" json:"summary,omitempty"`                                       // populated on DONE: the agent's rationale
	Confidence     float64             `protobuf:"fixed64,7,opt,name=confidence,proto3" json:"confidence,omitempty"`                               // populated on DONE: selector score 0..1
	LlmPrompt      string              `protobuf:"bytes,8,opt,name=llm_prompt,json=llmPrompt,proto3" json:"llm_prompt,omitempty"`                  // populated on LLM_IO: the full prompt sent that turn
	LlmResponse    string              `protobuf:"bytes,9,opt,name=llm_response,json=llmResponse,proto3" json:"llm_response,omitempty"`            // populated on LLM_IO: the raw model reply that turn
	// contains filtered or unexported fields
}

AutoConfigFeedEvent is streamed as the agent works: STEP events narrate each tool call, DONE carries the final config, ERROR reports a failure.

func (*AutoConfigFeedEvent) Descriptor deprecated added in v0.2.0

func (*AutoConfigFeedEvent) Descriptor() ([]byte, []int)

Deprecated: Use AutoConfigFeedEvent.ProtoReflect.Descriptor instead.

func (*AutoConfigFeedEvent) GetConfidence added in v0.2.0

func (x *AutoConfigFeedEvent) GetConfidence() float64

func (*AutoConfigFeedEvent) GetDetail added in v0.2.0

func (x *AutoConfigFeedEvent) GetDetail() string

func (*AutoConfigFeedEvent) GetFeedConfigYaml added in v0.2.0

func (x *AutoConfigFeedEvent) GetFeedConfigYaml() string

func (*AutoConfigFeedEvent) GetKind added in v0.2.0

func (*AutoConfigFeedEvent) GetLlmPrompt added in v0.2.0

func (x *AutoConfigFeedEvent) GetLlmPrompt() string

func (*AutoConfigFeedEvent) GetLlmResponse added in v0.2.0

func (x *AutoConfigFeedEvent) GetLlmResponse() string

func (*AutoConfigFeedEvent) GetStep added in v0.2.0

func (x *AutoConfigFeedEvent) GetStep() int32

func (*AutoConfigFeedEvent) GetSummary added in v0.2.0

func (x *AutoConfigFeedEvent) GetSummary() string

func (*AutoConfigFeedEvent) GetTool added in v0.2.0

func (x *AutoConfigFeedEvent) GetTool() string

func (*AutoConfigFeedEvent) ProtoMessage added in v0.2.0

func (*AutoConfigFeedEvent) ProtoMessage()

func (*AutoConfigFeedEvent) ProtoReflect added in v0.2.0

func (x *AutoConfigFeedEvent) ProtoReflect() protoreflect.Message

func (*AutoConfigFeedEvent) Reset added in v0.2.0

func (x *AutoConfigFeedEvent) Reset()

func (*AutoConfigFeedEvent) String added in v0.2.0

func (x *AutoConfigFeedEvent) String() string

type AutoConfigFeedRequest added in v0.2.0

type AutoConfigFeedRequest struct {
	Url     string            `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Headers map[string]string `` // optional seed headers
	/* 141-byte string literal not displayed */
	Provider string `protobuf:"bytes,3,opt,name=provider,proto3" json:"provider,omitempty"`                  // optional --provider (type or profile name)
	Model    string `protobuf:"bytes,4,opt,name=model,proto3" json:"model,omitempty"`                        // optional --model
	MaxSteps int32  `protobuf:"varint,5,opt,name=max_steps,json=maxSteps,proto3" json:"max_steps,omitempty"` // optional cap on agent tool calls (0 = default)
	Verbose  bool   `protobuf:"varint,6,opt,name=verbose,proto3" json:"verbose,omitempty"`                   // when true, stream LLM_IO events (prompt + response per turn)
	// contains filtered or unexported fields
}

AutoConfigFeedRequest drives the autonomous feed-config agent for one feed URL.

func (*AutoConfigFeedRequest) Descriptor deprecated added in v0.2.0

func (*AutoConfigFeedRequest) Descriptor() ([]byte, []int)

Deprecated: Use AutoConfigFeedRequest.ProtoReflect.Descriptor instead.

func (*AutoConfigFeedRequest) GetHeaders added in v0.2.0

func (x *AutoConfigFeedRequest) GetHeaders() map[string]string

func (*AutoConfigFeedRequest) GetMaxSteps added in v0.2.0

func (x *AutoConfigFeedRequest) GetMaxSteps() int32

func (*AutoConfigFeedRequest) GetModel added in v0.2.0

func (x *AutoConfigFeedRequest) GetModel() string

func (*AutoConfigFeedRequest) GetProvider added in v0.2.0

func (x *AutoConfigFeedRequest) GetProvider() string

func (*AutoConfigFeedRequest) GetUrl added in v0.2.0

func (x *AutoConfigFeedRequest) GetUrl() string

func (*AutoConfigFeedRequest) GetVerbose added in v0.2.0

func (x *AutoConfigFeedRequest) GetVerbose() bool

func (*AutoConfigFeedRequest) ProtoMessage added in v0.2.0

func (*AutoConfigFeedRequest) ProtoMessage()

func (*AutoConfigFeedRequest) ProtoReflect added in v0.2.0

func (x *AutoConfigFeedRequest) ProtoReflect() protoreflect.Message

func (*AutoConfigFeedRequest) Reset added in v0.2.0

func (x *AutoConfigFeedRequest) Reset()

func (*AutoConfigFeedRequest) String added in v0.2.0

func (x *AutoConfigFeedRequest) String() string

type CategoriesServiceClient

type CategoriesServiceClient interface {
	// GetOrCreateCategory returns a category by name, creating it if it doesn't exist
	GetOrCreateCategory(ctx context.Context, in *GetOrCreateCategoryRequest, opts ...grpc.CallOption) (*GetOrCreateCategoryResponse, error)
}

CategoriesServiceClient is the client API for CategoriesService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

CategoriesService provides methods for working with categories

type CategoriesServiceServer

type CategoriesServiceServer interface {
	// GetOrCreateCategory returns a category by name, creating it if it doesn't exist
	GetOrCreateCategory(context.Context, *GetOrCreateCategoryRequest) (*GetOrCreateCategoryResponse, error)
	// contains filtered or unexported methods
}

CategoriesServiceServer is the server API for CategoriesService service. All implementations must embed UnimplementedCategoriesServiceServer for forward compatibility.

CategoriesService provides methods for working with categories

type Category

type Category struct {
	Name     string     `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Color    string     `protobuf:"bytes,2,opt,name=color,proto3" json:"color,omitempty"`
	Icon     string     `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"`
	Articles []*Article `protobuf:"bytes,4,rep,name=articles,proto3" json:"articles,omitempty"`
	// contains filtered or unexported fields
}

Category represents an article category

func (*Category) Descriptor deprecated

func (*Category) Descriptor() ([]byte, []int)

Deprecated: Use Category.ProtoReflect.Descriptor instead.

func (*Category) GetArticles

func (x *Category) GetArticles() []*Article

func (*Category) GetColor

func (x *Category) GetColor() string

func (*Category) GetIcon

func (x *Category) GetIcon() string

func (*Category) GetName

func (x *Category) GetName() string

func (*Category) ProtoMessage

func (*Category) ProtoMessage()

func (*Category) ProtoReflect

func (x *Category) ProtoReflect() protoreflect.Message

func (*Category) Reset

func (x *Category) Reset()

func (*Category) String

func (x *Category) String() string

type CodexCredentialInfo

type CodexCredentialInfo struct {
	Id              string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Label           string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
	Priority        int32  `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"`
	LastStatus      string `protobuf:"bytes,4,opt,name=last_status,json=lastStatus,proto3" json:"last_status,omitempty"`
	LastErrorReason string `protobuf:"bytes,5,opt,name=last_error_reason,json=lastErrorReason,proto3" json:"last_error_reason,omitempty"`
	AuthMode        string `protobuf:"bytes,6,opt,name=auth_mode,json=authMode,proto3" json:"auth_mode,omitempty"`
	Source          string `protobuf:"bytes,7,opt,name=source,proto3" json:"source,omitempty"`
	// contains filtered or unexported fields
}

func (*CodexCredentialInfo) Descriptor deprecated

func (*CodexCredentialInfo) Descriptor() ([]byte, []int)

Deprecated: Use CodexCredentialInfo.ProtoReflect.Descriptor instead.

func (*CodexCredentialInfo) GetAuthMode

func (x *CodexCredentialInfo) GetAuthMode() string

func (*CodexCredentialInfo) GetId

func (x *CodexCredentialInfo) GetId() string

func (*CodexCredentialInfo) GetLabel

func (x *CodexCredentialInfo) GetLabel() string

func (*CodexCredentialInfo) GetLastErrorReason

func (x *CodexCredentialInfo) GetLastErrorReason() string

func (*CodexCredentialInfo) GetLastStatus

func (x *CodexCredentialInfo) GetLastStatus() string

func (*CodexCredentialInfo) GetPriority

func (x *CodexCredentialInfo) GetPriority() int32

func (*CodexCredentialInfo) GetSource

func (x *CodexCredentialInfo) GetSource() string

func (*CodexCredentialInfo) ProtoMessage

func (*CodexCredentialInfo) ProtoMessage()

func (*CodexCredentialInfo) ProtoReflect

func (x *CodexCredentialInfo) ProtoReflect() protoreflect.Message

func (*CodexCredentialInfo) Reset

func (x *CodexCredentialInfo) Reset()

func (*CodexCredentialInfo) String

func (x *CodexCredentialInfo) String() string

type CodexCredentialProto

type CodexCredentialProto struct {
	Id               string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Label            string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
	Priority         int32  `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"`
	AccessToken      string `protobuf:"bytes,4,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
	RefreshToken     string `protobuf:"bytes,5,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"`
	LastRefresh      string `protobuf:"bytes,6,opt,name=last_refresh,json=lastRefresh,proto3" json:"last_refresh,omitempty"` // RFC3339 UTC
	AuthMode         string `protobuf:"bytes,7,opt,name=auth_mode,json=authMode,proto3" json:"auth_mode,omitempty"`
	Source           string `protobuf:"bytes,8,opt,name=source,proto3" json:"source,omitempty"`
	LastStatus       string `protobuf:"bytes,9,opt,name=last_status,json=lastStatus,proto3" json:"last_status,omitempty"`
	LastErrorReason  string `protobuf:"bytes,10,opt,name=last_error_reason,json=lastErrorReason,proto3" json:"last_error_reason,omitempty"`
	LastErrorResetAt string `protobuf:"bytes,11,opt,name=last_error_reset_at,json=lastErrorResetAt,proto3" json:"last_error_reset_at,omitempty"` // RFC3339 UTC, empty when unset
	ExpiresAt        string `protobuf:"bytes,12,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`                          // RFC3339 UTC, empty when unset (non-JWT OAuth, e.g. claude-code)
	// contains filtered or unexported fields
}

CodexCredentialProto carries one ChatGPT/Codex OAuth credential for round-tripping through the gRPC config API without data loss.

func (*CodexCredentialProto) Descriptor deprecated

func (*CodexCredentialProto) Descriptor() ([]byte, []int)

Deprecated: Use CodexCredentialProto.ProtoReflect.Descriptor instead.

func (*CodexCredentialProto) GetAccessToken

func (x *CodexCredentialProto) GetAccessToken() string

func (*CodexCredentialProto) GetAuthMode

func (x *CodexCredentialProto) GetAuthMode() string

func (*CodexCredentialProto) GetExpiresAt added in v0.2.0

func (x *CodexCredentialProto) GetExpiresAt() string

func (*CodexCredentialProto) GetId

func (x *CodexCredentialProto) GetId() string

func (*CodexCredentialProto) GetLabel

func (x *CodexCredentialProto) GetLabel() string

func (*CodexCredentialProto) GetLastErrorReason

func (x *CodexCredentialProto) GetLastErrorReason() string

func (*CodexCredentialProto) GetLastErrorResetAt

func (x *CodexCredentialProto) GetLastErrorResetAt() string

func (*CodexCredentialProto) GetLastRefresh

func (x *CodexCredentialProto) GetLastRefresh() string

func (*CodexCredentialProto) GetLastStatus

func (x *CodexCredentialProto) GetLastStatus() string

func (*CodexCredentialProto) GetPriority

func (x *CodexCredentialProto) GetPriority() int32

func (*CodexCredentialProto) GetRefreshToken

func (x *CodexCredentialProto) GetRefreshToken() string

func (*CodexCredentialProto) GetSource

func (x *CodexCredentialProto) GetSource() string

func (*CodexCredentialProto) ProtoMessage

func (*CodexCredentialProto) ProtoMessage()

func (*CodexCredentialProto) ProtoReflect

func (x *CodexCredentialProto) ProtoReflect() protoreflect.Message

func (*CodexCredentialProto) Reset

func (x *CodexCredentialProto) Reset()

func (*CodexCredentialProto) String

func (x *CodexCredentialProto) String() string

type CompleteClaudeLoginRequest added in v0.2.0

type CompleteClaudeLoginRequest struct {
	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	// code is the "<code>#<state>" string the user pastes back from the browser.
	Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
	// contains filtered or unexported fields
}

func (*CompleteClaudeLoginRequest) Descriptor deprecated added in v0.2.0

func (*CompleteClaudeLoginRequest) Descriptor() ([]byte, []int)

Deprecated: Use CompleteClaudeLoginRequest.ProtoReflect.Descriptor instead.

func (*CompleteClaudeLoginRequest) GetCode added in v0.2.0

func (x *CompleteClaudeLoginRequest) GetCode() string

func (*CompleteClaudeLoginRequest) GetSessionId added in v0.2.0

func (x *CompleteClaudeLoginRequest) GetSessionId() string

func (*CompleteClaudeLoginRequest) ProtoMessage added in v0.2.0

func (*CompleteClaudeLoginRequest) ProtoMessage()

func (*CompleteClaudeLoginRequest) ProtoReflect added in v0.2.0

func (*CompleteClaudeLoginRequest) Reset added in v0.2.0

func (x *CompleteClaudeLoginRequest) Reset()

func (*CompleteClaudeLoginRequest) String added in v0.2.0

func (x *CompleteClaudeLoginRequest) String() string

type CompleteClaudeLoginResponse added in v0.2.0

type CompleteClaudeLoginResponse struct {

	// status is one of: "approved", "error".
	Status       string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	CredentialId string `protobuf:"bytes,3,opt,name=credential_id,json=credentialId,proto3" json:"credential_id,omitempty"`
	Label        string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"`
	// contains filtered or unexported fields
}

func (*CompleteClaudeLoginResponse) Descriptor deprecated added in v0.2.0

func (*CompleteClaudeLoginResponse) Descriptor() ([]byte, []int)

Deprecated: Use CompleteClaudeLoginResponse.ProtoReflect.Descriptor instead.

func (*CompleteClaudeLoginResponse) GetCredentialId added in v0.2.0

func (x *CompleteClaudeLoginResponse) GetCredentialId() string

func (*CompleteClaudeLoginResponse) GetErrorMessage added in v0.2.0

func (x *CompleteClaudeLoginResponse) GetErrorMessage() string

func (*CompleteClaudeLoginResponse) GetLabel added in v0.2.0

func (x *CompleteClaudeLoginResponse) GetLabel() string

func (*CompleteClaudeLoginResponse) GetStatus added in v0.2.0

func (x *CompleteClaudeLoginResponse) GetStatus() string

func (*CompleteClaudeLoginResponse) ProtoMessage added in v0.2.0

func (*CompleteClaudeLoginResponse) ProtoMessage()

func (*CompleteClaudeLoginResponse) ProtoReflect added in v0.2.0

func (*CompleteClaudeLoginResponse) Reset added in v0.2.0

func (x *CompleteClaudeLoginResponse) Reset()

func (*CompleteClaudeLoginResponse) String added in v0.2.0

func (x *CompleteClaudeLoginResponse) String() string

type CredsServiceClient added in v0.3.0

type CredsServiceClient interface {
	// StartCodexLogin begins a device-code login flow for openai-codex.
	StartCodexLogin(ctx context.Context, in *StartCodexLoginRequest, opts ...grpc.CallOption) (*StartCodexLoginResponse, error)
	// PollCodexLogin polls the status of an in-progress login session.
	PollCodexLogin(ctx context.Context, in *PollCodexLoginRequest, opts ...grpc.CallOption) (*PollCodexLoginResponse, error)
	// ListCodexCredentials lists all registered credentials for a provider.
	ListCodexCredentials(ctx context.Context, in *ListCodexCredentialsRequest, opts ...grpc.CallOption) (*ListCodexCredentialsResponse, error)
	// RemoveCodexCredential removes a credential by ID.
	RemoveCodexCredential(ctx context.Context, in *RemoveCodexCredentialRequest, opts ...grpc.CallOption) (*RemoveCodexCredentialResponse, error)
	// SetCodexCredentialPriority updates the priority of a credential.
	SetCodexCredentialPriority(ctx context.Context, in *SetCodexCredentialPriorityRequest, opts ...grpc.CallOption) (*SetCodexCredentialPriorityResponse, error)
	// StartClaudeLogin begins a PKCE authorization-code login flow for claude-code.
	// Returns the browser URL the user must open; the server holds the PKCE
	// verifier and state for the session.
	StartClaudeLogin(ctx context.Context, in *StartClaudeLoginRequest, opts ...grpc.CallOption) (*StartClaudeLoginResponse, error)
	// CompleteClaudeLogin finishes the flow with the "<code>#<state>" string the
	// user pastes back, exchanging it for tokens and storing the credential.
	CompleteClaudeLogin(ctx context.Context, in *CompleteClaudeLoginRequest, opts ...grpc.CallOption) (*CompleteClaudeLoginResponse, error)
}

CredsServiceClient is the client API for CredsService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

CredsService manages Codex/ChatGPT OAuth credentials.

func NewCredsServiceClient added in v0.3.0

func NewCredsServiceClient(cc grpc.ClientConnInterface) CredsServiceClient

type CredsServiceServer added in v0.3.0

type CredsServiceServer interface {
	// StartCodexLogin begins a device-code login flow for openai-codex.
	StartCodexLogin(context.Context, *StartCodexLoginRequest) (*StartCodexLoginResponse, error)
	// PollCodexLogin polls the status of an in-progress login session.
	PollCodexLogin(context.Context, *PollCodexLoginRequest) (*PollCodexLoginResponse, error)
	// ListCodexCredentials lists all registered credentials for a provider.
	ListCodexCredentials(context.Context, *ListCodexCredentialsRequest) (*ListCodexCredentialsResponse, error)
	// RemoveCodexCredential removes a credential by ID.
	RemoveCodexCredential(context.Context, *RemoveCodexCredentialRequest) (*RemoveCodexCredentialResponse, error)
	// SetCodexCredentialPriority updates the priority of a credential.
	SetCodexCredentialPriority(context.Context, *SetCodexCredentialPriorityRequest) (*SetCodexCredentialPriorityResponse, error)
	// StartClaudeLogin begins a PKCE authorization-code login flow for claude-code.
	// Returns the browser URL the user must open; the server holds the PKCE
	// verifier and state for the session.
	StartClaudeLogin(context.Context, *StartClaudeLoginRequest) (*StartClaudeLoginResponse, error)
	// CompleteClaudeLogin finishes the flow with the "<code>#<state>" string the
	// user pastes back, exchanging it for tokens and storing the credential.
	CompleteClaudeLogin(context.Context, *CompleteClaudeLoginRequest) (*CompleteClaudeLoginResponse, error)
	// contains filtered or unexported methods
}

CredsServiceServer is the server API for CredsService service. All implementations must embed UnimplementedCredsServiceServer for forward compatibility.

CredsService manages Codex/ChatGPT OAuth credentials.

type DeleteAllDigestsRequest

type DeleteAllDigestsRequest struct {
	// contains filtered or unexported fields
}

DeleteAllDigestsRequest represents a request to delete all digests

func (*DeleteAllDigestsRequest) Descriptor deprecated

func (*DeleteAllDigestsRequest) Descriptor() ([]byte, []int)

Deprecated: Use DeleteAllDigestsRequest.ProtoReflect.Descriptor instead.

func (*DeleteAllDigestsRequest) ProtoMessage

func (*DeleteAllDigestsRequest) ProtoMessage()

func (*DeleteAllDigestsRequest) ProtoReflect

func (x *DeleteAllDigestsRequest) ProtoReflect() protoreflect.Message

func (*DeleteAllDigestsRequest) Reset

func (x *DeleteAllDigestsRequest) Reset()

func (*DeleteAllDigestsRequest) String

func (x *DeleteAllDigestsRequest) String() string

type DeleteDigestRequest

type DeleteDigestRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

DeleteDigestRequest represents a request to delete a digest by Id

func (*DeleteDigestRequest) Descriptor deprecated

func (*DeleteDigestRequest) Descriptor() ([]byte, []int)

Deprecated: Use DeleteDigestRequest.ProtoReflect.Descriptor instead.

func (*DeleteDigestRequest) GetId

func (x *DeleteDigestRequest) GetId() string

func (*DeleteDigestRequest) ProtoMessage

func (*DeleteDigestRequest) ProtoMessage()

func (*DeleteDigestRequest) ProtoReflect

func (x *DeleteDigestRequest) ProtoReflect() protoreflect.Message

func (*DeleteDigestRequest) Reset

func (x *DeleteDigestRequest) Reset()

func (*DeleteDigestRequest) String

func (x *DeleteDigestRequest) String() string

type DeleteFeedRequest

type DeleteFeedRequest struct {
	FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
	// contains filtered or unexported fields
}

DeleteFeedRequest is the request for the DeleteFeed method

func (*DeleteFeedRequest) Descriptor deprecated

func (*DeleteFeedRequest) Descriptor() ([]byte, []int)

Deprecated: Use DeleteFeedRequest.ProtoReflect.Descriptor instead.

func (*DeleteFeedRequest) GetFeedId

func (x *DeleteFeedRequest) GetFeedId() string

func (*DeleteFeedRequest) ProtoMessage

func (*DeleteFeedRequest) ProtoMessage()

func (*DeleteFeedRequest) ProtoReflect

func (x *DeleteFeedRequest) ProtoReflect() protoreflect.Message

func (*DeleteFeedRequest) Reset

func (x *DeleteFeedRequest) Reset()

func (*DeleteFeedRequest) String

func (x *DeleteFeedRequest) String() string

type DeleteFeedsRequest

type DeleteFeedsRequest struct {
	FeedIds []string `protobuf:"bytes,1,rep,name=feed_ids,json=feedIds,proto3" json:"feed_ids,omitempty"`
	DryRun  bool     `protobuf:"varint,2,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"` // when true, report what would be deleted but make no changes
	// contains filtered or unexported fields
}

DeleteFeedsRequest carries the ids of the feeds to delete

func (*DeleteFeedsRequest) Descriptor deprecated

func (*DeleteFeedsRequest) Descriptor() ([]byte, []int)

Deprecated: Use DeleteFeedsRequest.ProtoReflect.Descriptor instead.

func (*DeleteFeedsRequest) GetDryRun

func (x *DeleteFeedsRequest) GetDryRun() bool

func (*DeleteFeedsRequest) GetFeedIds

func (x *DeleteFeedsRequest) GetFeedIds() []string

func (*DeleteFeedsRequest) ProtoMessage

func (*DeleteFeedsRequest) ProtoMessage()

func (*DeleteFeedsRequest) ProtoReflect

func (x *DeleteFeedsRequest) ProtoReflect() protoreflect.Message

func (*DeleteFeedsRequest) Reset

func (x *DeleteFeedsRequest) Reset()

func (*DeleteFeedsRequest) String

func (x *DeleteFeedsRequest) String() string

type DeleteFeedsResponse

type DeleteFeedsResponse struct {
	Deleted  []string `protobuf:"bytes,1,rep,name=deleted,proto3" json:"deleted,omitempty"`
	NotFound []string `protobuf:"bytes,2,rep,name=not_found,json=notFound,proto3" json:"not_found,omitempty"`
	// contains filtered or unexported fields
}

DeleteFeedsResponse reports the (would-be, when dry_run) deletion outcome

func (*DeleteFeedsResponse) Descriptor deprecated

func (*DeleteFeedsResponse) Descriptor() ([]byte, []int)

Deprecated: Use DeleteFeedsResponse.ProtoReflect.Descriptor instead.

func (*DeleteFeedsResponse) GetDeleted

func (x *DeleteFeedsResponse) GetDeleted() []string

func (*DeleteFeedsResponse) GetNotFound

func (x *DeleteFeedsResponse) GetNotFound() []string

func (*DeleteFeedsResponse) ProtoMessage

func (*DeleteFeedsResponse) ProtoMessage()

func (*DeleteFeedsResponse) ProtoReflect

func (x *DeleteFeedsResponse) ProtoReflect() protoreflect.Message

func (*DeleteFeedsResponse) Reset

func (x *DeleteFeedsResponse) Reset()

func (*DeleteFeedsResponse) String

func (x *DeleteFeedsResponse) String() string

type DequeueArticleRequest

type DequeueArticleRequest struct {
	ArticleId string `protobuf:"bytes,1,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	// contains filtered or unexported fields
}

DequeueArticleRequest removes an article from the queue

func (*DequeueArticleRequest) Descriptor deprecated

func (*DequeueArticleRequest) Descriptor() ([]byte, []int)

Deprecated: Use DequeueArticleRequest.ProtoReflect.Descriptor instead.

func (*DequeueArticleRequest) GetArticleId

func (x *DequeueArticleRequest) GetArticleId() string

func (*DequeueArticleRequest) ProtoMessage

func (*DequeueArticleRequest) ProtoMessage()

func (*DequeueArticleRequest) ProtoReflect

func (x *DequeueArticleRequest) ProtoReflect() protoreflect.Message

func (*DequeueArticleRequest) Reset

func (x *DequeueArticleRequest) Reset()

func (*DequeueArticleRequest) String

func (x *DequeueArticleRequest) String() string

type Digest

type Digest struct {
	Id              string                  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	CreatedAt       *timestamppb.Timestamp  `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	ArticleCount    int32                   `protobuf:"varint,3,opt,name=article_count,json=articleCount,proto3" json:"article_count,omitempty"`
	TimeWindow      *durationpb.Duration    `protobuf:"bytes,4,opt,name=time_window,json=timeWindow,proto3" json:"time_window,omitempty"`
	ProviderResults []*DigestProviderResult `protobuf:"bytes,5,rep,name=provider_results,json=providerResults,proto3" json:"provider_results,omitempty"`
	Articles        []*Article              `protobuf:"bytes,6,rep,name=articles,proto3" json:"articles,omitempty"`
	DigestSummary   string                  `protobuf:"bytes,7,opt,name=digest_summary,json=digestSummary,proto3" json:"digest_summary,omitempty"`
	DigestAnalyses  []*DigestAnalysis       `protobuf:"bytes,8,rep,name=digest_analyses,json=digestAnalyses,proto3" json:"digest_analyses,omitempty"`
	Title           string                  `protobuf:"bytes,9,opt,name=title,proto3" json:"title,omitempty"`
	// contains filtered or unexported fields
}

Digest represents a generated digest of articles

func (*Digest) Descriptor deprecated

func (*Digest) Descriptor() ([]byte, []int)

Deprecated: Use Digest.ProtoReflect.Descriptor instead.

func (*Digest) GetArticleCount

func (x *Digest) GetArticleCount() int32

func (*Digest) GetArticles

func (x *Digest) GetArticles() []*Article

func (*Digest) GetCreatedAt

func (x *Digest) GetCreatedAt() *timestamppb.Timestamp

func (*Digest) GetDigestAnalyses

func (x *Digest) GetDigestAnalyses() []*DigestAnalysis

func (*Digest) GetDigestSummary

func (x *Digest) GetDigestSummary() string

func (*Digest) GetId

func (x *Digest) GetId() string

func (*Digest) GetProviderResults

func (x *Digest) GetProviderResults() []*DigestProviderResult

func (*Digest) GetTimeWindow

func (x *Digest) GetTimeWindow() *durationpb.Duration

func (*Digest) GetTitle

func (x *Digest) GetTitle() string

func (*Digest) ProtoMessage

func (*Digest) ProtoMessage()

func (*Digest) ProtoReflect

func (x *Digest) ProtoReflect() protoreflect.Message

func (*Digest) Reset

func (x *Digest) Reset()

func (*Digest) String

func (x *Digest) String() string

type DigestAnalysis

type DigestAnalysis struct {
	DigestId            string           `protobuf:"bytes,1,opt,name=digest_id,json=digestId,proto3" json:"digest_id,omitempty"`
	AnalysisId          string           `protobuf:"bytes,2,opt,name=analysis_id,json=analysisId,proto3" json:"analysis_id,omitempty"`
	ArticleId           string           `protobuf:"bytes,3,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	DuplicateGroup      string           `protobuf:"bytes,4,opt,name=duplicate_group,json=duplicateGroup,proto3" json:"duplicate_group,omitempty"`
	IsMostComprehensive bool             `protobuf:"varint,5,opt,name=is_most_comprehensive,json=isMostComprehensive,proto3" json:"is_most_comprehensive,omitempty"`
	Analysis            *ArticleAnalysis `protobuf:"bytes,6,opt,name=analysis,proto3,oneof" json:"analysis,omitempty"`
	// contains filtered or unexported fields
}

DigestAnalysis links an ArticleAnalysis to a Digest with duplicate metadata

func (*DigestAnalysis) Descriptor deprecated

func (*DigestAnalysis) Descriptor() ([]byte, []int)

Deprecated: Use DigestAnalysis.ProtoReflect.Descriptor instead.

func (*DigestAnalysis) GetAnalysis

func (x *DigestAnalysis) GetAnalysis() *ArticleAnalysis

func (*DigestAnalysis) GetAnalysisId

func (x *DigestAnalysis) GetAnalysisId() string

func (*DigestAnalysis) GetArticleId

func (x *DigestAnalysis) GetArticleId() string

func (*DigestAnalysis) GetDigestId

func (x *DigestAnalysis) GetDigestId() string

func (*DigestAnalysis) GetDuplicateGroup

func (x *DigestAnalysis) GetDuplicateGroup() string

func (*DigestAnalysis) GetIsMostComprehensive

func (x *DigestAnalysis) GetIsMostComprehensive() bool

func (*DigestAnalysis) ProtoMessage

func (*DigestAnalysis) ProtoMessage()

func (*DigestAnalysis) ProtoReflect

func (x *DigestAnalysis) ProtoReflect() protoreflect.Message

func (*DigestAnalysis) Reset

func (x *DigestAnalysis) Reset()

func (*DigestAnalysis) String

func (x *DigestAnalysis) String() string

type DigestArticle

type DigestArticle struct {
	DigestId  string `protobuf:"bytes,1,opt,name=digest_id,json=digestId,proto3" json:"digest_id,omitempty"`
	ArticleId string `protobuf:"bytes,2,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	// contains filtered or unexported fields
}

DigestArticle represents an article included in a digest

func (*DigestArticle) Descriptor deprecated

func (*DigestArticle) Descriptor() ([]byte, []int)

Deprecated: Use DigestArticle.ProtoReflect.Descriptor instead.

func (*DigestArticle) GetArticleId

func (x *DigestArticle) GetArticleId() string

func (*DigestArticle) GetDigestId

func (x *DigestArticle) GetDigestId() string

func (*DigestArticle) ProtoMessage

func (*DigestArticle) ProtoMessage()

func (*DigestArticle) ProtoReflect

func (x *DigestArticle) ProtoReflect() protoreflect.Message

func (*DigestArticle) Reset

func (x *DigestArticle) Reset()

func (*DigestArticle) String

func (x *DigestArticle) String() string

type DigestProgressEvent

type DigestProgressEvent struct {
	Stage   string  `protobuf:"bytes,1,opt,name=stage,proto3" json:"stage,omitempty"`
	Message string  `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
	Current uint32  `protobuf:"varint,3,opt,name=current,proto3" json:"current,omitempty"`
	Total   uint32  `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"`
	Error   string  `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
	Digest  *Digest `protobuf:"bytes,6,opt,name=digest,proto3" json:"digest,omitempty"`
	// Substep fields (populated when stage="analyze_task")
	TaskName   string `protobuf:"bytes,7,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"`       // e.g. "categorize", "key_points", "insights", "summaries", "importance"
	TaskStatus string `protobuf:"bytes,8,opt,name=task_status,json=taskStatus,proto3" json:"task_status,omitempty"` // "started" | "completed" | "error"
	TaskIndex  uint32 `protobuf:"varint,9,opt,name=task_index,json=taskIndex,proto3" json:"task_index,omitempty"`   // 1-based
	TaskTotal  uint32 `protobuf:"varint,10,opt,name=task_total,json=taskTotal,proto3" json:"task_total,omitempty"`  // total tasks in the analysis pipeline
	// Article identity (populated when stage="analyze" or "analyze_task")
	// so clients can distinguish concurrent per-article progress streams.
	ArticleId    string `protobuf:"bytes,11,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	ArticleTitle string `protobuf:"bytes,12,opt,name=article_title,json=articleTitle,proto3" json:"article_title,omitempty"`
	// contains filtered or unexported fields
}

DigestProgressEvent is a streaming progress update during digest generation. stage values: "fetch" | "analyze" | "analyze_task" | "dedupe" | "summarize" | "store" | "notify" | "done" | "error"

func (*DigestProgressEvent) Descriptor deprecated

func (*DigestProgressEvent) Descriptor() ([]byte, []int)

Deprecated: Use DigestProgressEvent.ProtoReflect.Descriptor instead.

func (*DigestProgressEvent) GetArticleId

func (x *DigestProgressEvent) GetArticleId() string

func (*DigestProgressEvent) GetArticleTitle

func (x *DigestProgressEvent) GetArticleTitle() string

func (*DigestProgressEvent) GetCurrent

func (x *DigestProgressEvent) GetCurrent() uint32

func (*DigestProgressEvent) GetDigest

func (x *DigestProgressEvent) GetDigest() *Digest

func (*DigestProgressEvent) GetError

func (x *DigestProgressEvent) GetError() string

func (*DigestProgressEvent) GetMessage

func (x *DigestProgressEvent) GetMessage() string

func (*DigestProgressEvent) GetStage

func (x *DigestProgressEvent) GetStage() string

func (*DigestProgressEvent) GetTaskIndex

func (x *DigestProgressEvent) GetTaskIndex() uint32

func (*DigestProgressEvent) GetTaskName

func (x *DigestProgressEvent) GetTaskName() string

func (*DigestProgressEvent) GetTaskStatus

func (x *DigestProgressEvent) GetTaskStatus() string

func (*DigestProgressEvent) GetTaskTotal

func (x *DigestProgressEvent) GetTaskTotal() uint32

func (*DigestProgressEvent) GetTotal

func (x *DigestProgressEvent) GetTotal() uint32

func (*DigestProgressEvent) ProtoMessage

func (*DigestProgressEvent) ProtoMessage()

func (*DigestProgressEvent) ProtoReflect

func (x *DigestProgressEvent) ProtoReflect() protoreflect.Message

func (*DigestProgressEvent) Reset

func (x *DigestProgressEvent) Reset()

func (*DigestProgressEvent) String

func (x *DigestProgressEvent) String() string

type DigestProviderResult

type DigestProviderResult struct {
	Id                     string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	DigestId               string                 `protobuf:"bytes,2,opt,name=digest_id,json=digestId,proto3" json:"digest_id,omitempty"`
	ProviderType           string                 `protobuf:"bytes,3,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	ModelName              string                 `protobuf:"bytes,4,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	BriefOverview          string                 `protobuf:"bytes,5,opt,name=brief_overview,json=briefOverview,proto3" json:"brief_overview,omitempty"`
	StandardSynthesis      string                 `protobuf:"bytes,6,opt,name=standard_synthesis,json=standardSynthesis,proto3" json:"standard_synthesis,omitempty"`
	ComprehensiveSynthesis string                 `` /* 127-byte string literal not displayed */
	ProcessingTime         float64                `protobuf:"fixed64,8,opt,name=processing_time,json=processingTime,proto3" json:"processing_time,omitempty"`
	Error                  string                 `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
	CreatedAt              *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	Digest                 *Digest                `protobuf:"bytes,11,opt,name=digest,proto3,oneof" json:"digest,omitempty"`
	// contains filtered or unexported fields
}

DigestProviderResult represents a provider's result for a digest

func (*DigestProviderResult) Descriptor deprecated

func (*DigestProviderResult) Descriptor() ([]byte, []int)

Deprecated: Use DigestProviderResult.ProtoReflect.Descriptor instead.

func (*DigestProviderResult) GetBriefOverview

func (x *DigestProviderResult) GetBriefOverview() string

func (*DigestProviderResult) GetComprehensiveSynthesis

func (x *DigestProviderResult) GetComprehensiveSynthesis() string

func (*DigestProviderResult) GetCreatedAt

func (x *DigestProviderResult) GetCreatedAt() *timestamppb.Timestamp

func (*DigestProviderResult) GetDigest

func (x *DigestProviderResult) GetDigest() *Digest

func (*DigestProviderResult) GetDigestId

func (x *DigestProviderResult) GetDigestId() string

func (*DigestProviderResult) GetError

func (x *DigestProviderResult) GetError() string

func (*DigestProviderResult) GetId

func (x *DigestProviderResult) GetId() string

func (*DigestProviderResult) GetModelName

func (x *DigestProviderResult) GetModelName() string

func (*DigestProviderResult) GetProcessingTime

func (x *DigestProviderResult) GetProcessingTime() float64

func (*DigestProviderResult) GetProviderType

func (x *DigestProviderResult) GetProviderType() string

func (*DigestProviderResult) GetStandardSynthesis

func (x *DigestProviderResult) GetStandardSynthesis() string

func (*DigestProviderResult) ProtoMessage

func (*DigestProviderResult) ProtoMessage()

func (*DigestProviderResult) ProtoReflect

func (x *DigestProviderResult) ProtoReflect() protoreflect.Message

func (*DigestProviderResult) Reset

func (x *DigestProviderResult) Reset()

func (*DigestProviderResult) String

func (x *DigestProviderResult) String() string

type DigestServiceClient

type DigestServiceClient interface {
	// ListDigests retrieves all digests
	ListDigests(ctx context.Context, in *ListDigestsRequest, opts ...grpc.CallOption) (*ListDigestsResponse, error)
	// GetDigest returns a single digest by Id
	GetDigest(ctx context.Context, in *GetDigestRequest, opts ...grpc.CallOption) (*GetDigestResponse, error)
	// GetDigestArticles returns articles for a digest
	GetDigestArticles(ctx context.Context, in *GetDigestArticlesRequest, opts ...grpc.CallOption) (*GetDigestArticlesResponse, error)
	// GenerateDigest generates a new digest, streaming progress events back to the caller
	GenerateDigest(ctx context.Context, in *GenerateDigestRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[DigestProgressEvent], error)
}

DigestServiceClient is the client API for DigestService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

DigestService provides methods for working with digests

type DigestServiceServer

type DigestServiceServer interface {
	// ListDigests retrieves all digests
	ListDigests(context.Context, *ListDigestsRequest) (*ListDigestsResponse, error)
	// GetDigest returns a single digest by Id
	GetDigest(context.Context, *GetDigestRequest) (*GetDigestResponse, error)
	// GetDigestArticles returns articles for a digest
	GetDigestArticles(context.Context, *GetDigestArticlesRequest) (*GetDigestArticlesResponse, error)
	// GenerateDigest generates a new digest, streaming progress events back to the caller
	GenerateDigest(*GenerateDigestRequest, grpc.ServerStreamingServer[DigestProgressEvent]) error
	// contains filtered or unexported methods
}

DigestServiceServer is the server API for DigestService service. All implementations must embed UnimplementedDigestServiceServer for forward compatibility.

DigestService provides methods for working with digests

type DigestService_GenerateDigestClient

type DigestService_GenerateDigestClient = grpc.ServerStreamingClient[DigestProgressEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type DigestService_GenerateDigestServer

type DigestService_GenerateDigestServer = grpc.ServerStreamingServer[DigestProgressEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type DiscordNotificationConfig

type DiscordNotificationConfig struct {
	Enabled    bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	WebhookUrl string `protobuf:"bytes,2,opt,name=webhook_url,json=webhookUrl,proto3" json:"webhook_url,omitempty"`
	// contains filtered or unexported fields
}

DiscordNotificationConfig holds Discord-specific notification settings.

func (*DiscordNotificationConfig) Descriptor deprecated

func (*DiscordNotificationConfig) Descriptor() ([]byte, []int)

Deprecated: Use DiscordNotificationConfig.ProtoReflect.Descriptor instead.

func (*DiscordNotificationConfig) GetEnabled

func (x *DiscordNotificationConfig) GetEnabled() bool

func (*DiscordNotificationConfig) GetWebhookUrl

func (x *DiscordNotificationConfig) GetWebhookUrl() string

func (*DiscordNotificationConfig) ProtoMessage

func (*DiscordNotificationConfig) ProtoMessage()

func (*DiscordNotificationConfig) ProtoReflect

func (*DiscordNotificationConfig) Reset

func (x *DiscordNotificationConfig) Reset()

func (*DiscordNotificationConfig) String

func (x *DiscordNotificationConfig) String() string

type EnqueueArticlesRequest

type EnqueueArticlesRequest struct {
	ArticleIds     []string `protobuf:"bytes,1,rep,name=article_ids,json=articleIds,proto3" json:"article_ids,omitempty"`
	ProviderType   string   `protobuf:"bytes,2,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	ModelName      string   `protobuf:"bytes,3,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	FastMode       bool     `protobuf:"varint,4,opt,name=fast_mode,json=fastMode,proto3" json:"fast_mode,omitempty"`                   // If true, only extract key points
	ProviderName   string   `protobuf:"bytes,5,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`        // Named profile from config.providers; takes precedence over provider_type/model_name
	SkipReferences bool     `protobuf:"varint,6,opt,name=skip_references,json=skipReferences,proto3" json:"skip_references,omitempty"` // If true, skip the referenced_reports task
	Provider       string   `protobuf:"bytes,7,opt,name=provider,proto3" json:"provider,omitempty"`                                    // Provider override (type or profile name, auto-detected by the server)
	// contains filtered or unexported fields
}

EnqueueArticlesRequest adds articles to the analysis queue

func (*EnqueueArticlesRequest) Descriptor deprecated

func (*EnqueueArticlesRequest) Descriptor() ([]byte, []int)

Deprecated: Use EnqueueArticlesRequest.ProtoReflect.Descriptor instead.

func (*EnqueueArticlesRequest) GetArticleIds

func (x *EnqueueArticlesRequest) GetArticleIds() []string

func (*EnqueueArticlesRequest) GetFastMode

func (x *EnqueueArticlesRequest) GetFastMode() bool

func (*EnqueueArticlesRequest) GetModelName

func (x *EnqueueArticlesRequest) GetModelName() string

func (*EnqueueArticlesRequest) GetProvider

func (x *EnqueueArticlesRequest) GetProvider() string

func (*EnqueueArticlesRequest) GetProviderName

func (x *EnqueueArticlesRequest) GetProviderName() string

func (*EnqueueArticlesRequest) GetProviderType

func (x *EnqueueArticlesRequest) GetProviderType() string

func (*EnqueueArticlesRequest) GetSkipReferences

func (x *EnqueueArticlesRequest) GetSkipReferences() bool

func (*EnqueueArticlesRequest) ProtoMessage

func (*EnqueueArticlesRequest) ProtoMessage()

func (*EnqueueArticlesRequest) ProtoReflect

func (x *EnqueueArticlesRequest) ProtoReflect() protoreflect.Message

func (*EnqueueArticlesRequest) Reset

func (x *EnqueueArticlesRequest) Reset()

func (*EnqueueArticlesRequest) String

func (x *EnqueueArticlesRequest) String() string

type EnqueueArticlesResponse

type EnqueueArticlesResponse struct {
	EnqueuedCount int32 `protobuf:"varint,1,opt,name=enqueued_count,json=enqueuedCount,proto3" json:"enqueued_count,omitempty"`
	// contains filtered or unexported fields
}

EnqueueArticlesResponse returns how many articles were enqueued

func (*EnqueueArticlesResponse) Descriptor deprecated

func (*EnqueueArticlesResponse) Descriptor() ([]byte, []int)

Deprecated: Use EnqueueArticlesResponse.ProtoReflect.Descriptor instead.

func (*EnqueueArticlesResponse) GetEnqueuedCount

func (x *EnqueueArticlesResponse) GetEnqueuedCount() int32

func (*EnqueueArticlesResponse) ProtoMessage

func (*EnqueueArticlesResponse) ProtoMessage()

func (*EnqueueArticlesResponse) ProtoReflect

func (x *EnqueueArticlesResponse) ProtoReflect() protoreflect.Message

func (*EnqueueArticlesResponse) Reset

func (x *EnqueueArticlesResponse) Reset()

func (*EnqueueArticlesResponse) String

func (x *EnqueueArticlesResponse) String() string

type Feed

type Feed struct {
	Id        string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Url       string                 `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
	Type      string                 `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	Title     string                 `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"`
	LastFetch *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=last_fetch,json=lastFetch,proto3" json:"last_fetch,omitempty"`
	Scraper   map[string]*anypb.Any  `` /* 141-byte string literal not displayed */
	Enabled   bool                   `protobuf:"varint,7,opt,name=enabled,proto3" json:"enabled,omitempty"`
	GroupId   string                 `protobuf:"bytes,8,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	Articles  []*Article             `protobuf:"bytes,9,rep,name=articles,proto3" json:"articles,omitempty"`
	// contains filtered or unexported fields
}

Feed represents a feed with its metadata

func (*Feed) Descriptor deprecated

func (*Feed) Descriptor() ([]byte, []int)

Deprecated: Use Feed.ProtoReflect.Descriptor instead.

func (*Feed) GetArticles

func (x *Feed) GetArticles() []*Article

func (*Feed) GetEnabled

func (x *Feed) GetEnabled() bool

func (*Feed) GetGroupId

func (x *Feed) GetGroupId() string

func (*Feed) GetId

func (x *Feed) GetId() string

func (*Feed) GetLastFetch

func (x *Feed) GetLastFetch() *timestamppb.Timestamp

func (*Feed) GetScraper

func (x *Feed) GetScraper() map[string]*anypb.Any

func (*Feed) GetTitle

func (x *Feed) GetTitle() string

func (*Feed) GetType

func (x *Feed) GetType() string

func (*Feed) GetUrl

func (x *Feed) GetUrl() string

func (*Feed) ProtoMessage

func (*Feed) ProtoMessage()

func (*Feed) ProtoReflect

func (x *Feed) ProtoReflect() protoreflect.Message

func (*Feed) Reset

func (x *Feed) Reset()

func (*Feed) String

func (x *Feed) String() string

type FeedConfig

type FeedConfig struct {
	Url       string                `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Title     string                `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	Params    map[string]string     `` /* 139-byte string literal not displayed */
	Scraper   map[string]*anypb.Any `` /* 141-byte string literal not displayed */
	Enabled   bool                  `protobuf:"varint,5,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Scraping  string                `protobuf:"bytes,6,opt,name=scraping,proto3" json:"scraping,omitempty"`
	Selectors *Selectors            `protobuf:"bytes,7,opt,name=selectors,proto3" json:"selectors,omitempty"`
	Type      string                `protobuf:"bytes,8,opt,name=type,proto3" json:"type,omitempty"`
	Headers   map[string]string     `` // custom HTTP headers applied to all requests for this feed
	/* 141-byte string literal not displayed */
	// contains filtered or unexported fields
}

FeedConfig represents the configuration for a feed

func (*FeedConfig) Descriptor deprecated

func (*FeedConfig) Descriptor() ([]byte, []int)

Deprecated: Use FeedConfig.ProtoReflect.Descriptor instead.

func (*FeedConfig) GetEnabled

func (x *FeedConfig) GetEnabled() bool

func (*FeedConfig) GetHeaders

func (x *FeedConfig) GetHeaders() map[string]string

func (*FeedConfig) GetParams

func (x *FeedConfig) GetParams() map[string]string

func (*FeedConfig) GetScraper

func (x *FeedConfig) GetScraper() map[string]*anypb.Any

func (*FeedConfig) GetScraping

func (x *FeedConfig) GetScraping() string

func (*FeedConfig) GetSelectors

func (x *FeedConfig) GetSelectors() *Selectors

func (*FeedConfig) GetTitle

func (x *FeedConfig) GetTitle() string

func (*FeedConfig) GetType

func (x *FeedConfig) GetType() string

func (*FeedConfig) GetUrl

func (x *FeedConfig) GetUrl() string

func (*FeedConfig) ProtoMessage

func (*FeedConfig) ProtoMessage()

func (*FeedConfig) ProtoReflect

func (x *FeedConfig) ProtoReflect() protoreflect.Message

func (*FeedConfig) Reset

func (x *FeedConfig) Reset()

func (*FeedConfig) String

func (x *FeedConfig) String() string

type FeedDiagnosis added in v0.2.0

type FeedDiagnosis struct {
	Url             string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	FinalUrl        string `protobuf:"bytes,2,opt,name=final_url,json=finalUrl,proto3" json:"final_url,omitempty"`        // after redirects
	HttpStatus      int32  `protobuf:"varint,3,opt,name=http_status,json=httpStatus,proto3" json:"http_status,omitempty"` // 0 when the request never completed
	ContentType     string `protobuf:"bytes,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
	ContentLength   int32  `protobuf:"varint,5,opt,name=content_length,json=contentLength,proto3" json:"content_length,omitempty"`      // bytes read
	FeedTypeGuess   string `protobuf:"bytes,6,opt,name=feed_type_guess,json=feedTypeGuess,proto3" json:"feed_type_guess,omitempty"`     // rss | atom | json-feed | html | empty | unknown
	DeclaredCharset string `protobuf:"bytes,7,opt,name=declared_charset,json=declaredCharset,proto3" json:"declared_charset,omitempty"` // from XML prolog or Content-Type, when present
	ItemCount       int32  `protobuf:"varint,8,opt,name=item_count,json=itemCount,proto3" json:"item_count,omitempty"`                  // parsed items when the feed is valid
	ParseError      string `protobuf:"bytes,9,opt,name=parse_error,json=parseError,proto3" json:"parse_error,omitempty"`                // gofeed parse error, empty when valid
	InvalidUtf8At   int32  `protobuf:"varint,10,opt,name=invalid_utf8_at,json=invalidUtf8At,proto3" json:"invalid_utf8_at,omitempty"`   // byte offset of first invalid UTF-8 byte; -1 when valid
	Verdict         string `protobuf:"bytes,11,opt,name=verdict,proto3" json:"verdict,omitempty"`                                       // one-line human summary
	BodySnippet     string `protobuf:"bytes,12,opt,name=body_snippet,json=bodySnippet,proto3" json:"body_snippet,omitempty"`            // first printable bytes of the body
	HexDump         string `protobuf:"bytes,13,opt,name=hex_dump,json=hexDump,proto3" json:"hex_dump,omitempty"`                        // bytes around invalid_utf8_at, when relevant
	RawBodyPath     string `protobuf:"bytes,14,opt,name=raw_body_path,json=rawBodyPath,proto3" json:"raw_body_path,omitempty"`          // on-disk path to the saved raw body
	FetchDurationMs int64  `protobuf:"varint,15,opt,name=fetch_duration_ms,json=fetchDurationMs,proto3" json:"fetch_duration_ms,omitempty"`
	// contains filtered or unexported fields
}

FeedDiagnosis is the structured result of inspecting a feed's raw HTTP response, returned by RefreshFeed when diagnose=true. It surfaces what actually came back over the wire so feed parse failures can be debugged without trace-level logging.

func (*FeedDiagnosis) Descriptor deprecated added in v0.2.0

func (*FeedDiagnosis) Descriptor() ([]byte, []int)

Deprecated: Use FeedDiagnosis.ProtoReflect.Descriptor instead.

func (*FeedDiagnosis) GetBodySnippet added in v0.2.0

func (x *FeedDiagnosis) GetBodySnippet() string

func (*FeedDiagnosis) GetContentLength added in v0.2.0

func (x *FeedDiagnosis) GetContentLength() int32

func (*FeedDiagnosis) GetContentType added in v0.2.0

func (x *FeedDiagnosis) GetContentType() string

func (*FeedDiagnosis) GetDeclaredCharset added in v0.2.0

func (x *FeedDiagnosis) GetDeclaredCharset() string

func (*FeedDiagnosis) GetFeedTypeGuess added in v0.2.0

func (x *FeedDiagnosis) GetFeedTypeGuess() string

func (*FeedDiagnosis) GetFetchDurationMs added in v0.2.0

func (x *FeedDiagnosis) GetFetchDurationMs() int64

func (*FeedDiagnosis) GetFinalUrl added in v0.2.0

func (x *FeedDiagnosis) GetFinalUrl() string

func (*FeedDiagnosis) GetHexDump added in v0.2.0

func (x *FeedDiagnosis) GetHexDump() string

func (*FeedDiagnosis) GetHttpStatus added in v0.2.0

func (x *FeedDiagnosis) GetHttpStatus() int32

func (*FeedDiagnosis) GetInvalidUtf8At added in v0.2.0

func (x *FeedDiagnosis) GetInvalidUtf8At() int32

func (*FeedDiagnosis) GetItemCount added in v0.2.0

func (x *FeedDiagnosis) GetItemCount() int32

func (*FeedDiagnosis) GetParseError added in v0.2.0

func (x *FeedDiagnosis) GetParseError() string

func (*FeedDiagnosis) GetRawBodyPath added in v0.2.0

func (x *FeedDiagnosis) GetRawBodyPath() string

func (*FeedDiagnosis) GetUrl added in v0.2.0

func (x *FeedDiagnosis) GetUrl() string

func (*FeedDiagnosis) GetVerdict added in v0.2.0

func (x *FeedDiagnosis) GetVerdict() string

func (*FeedDiagnosis) ProtoMessage added in v0.2.0

func (*FeedDiagnosis) ProtoMessage()

func (*FeedDiagnosis) ProtoReflect added in v0.2.0

func (x *FeedDiagnosis) ProtoReflect() protoreflect.Message

func (*FeedDiagnosis) Reset added in v0.2.0

func (x *FeedDiagnosis) Reset()

func (*FeedDiagnosis) String added in v0.2.0

func (x *FeedDiagnosis) String() string

type FeedGroup

type FeedGroup struct {
	Id        string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name      string  `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Icon      string  `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"`
	SortOrder int32   `protobuf:"varint,4,opt,name=sort_order,json=sortOrder,proto3" json:"sort_order,omitempty"`
	Feeds     []*Feed `protobuf:"bytes,5,rep,name=feeds,proto3" json:"feeds,omitempty"`
	// contains filtered or unexported fields
}

FeedGroup represents a group of feeds

func (*FeedGroup) Descriptor deprecated

func (*FeedGroup) Descriptor() ([]byte, []int)

Deprecated: Use FeedGroup.ProtoReflect.Descriptor instead.

func (*FeedGroup) GetFeeds

func (x *FeedGroup) GetFeeds() []*Feed

func (*FeedGroup) GetIcon

func (x *FeedGroup) GetIcon() string

func (*FeedGroup) GetId

func (x *FeedGroup) GetId() string

func (*FeedGroup) GetName

func (x *FeedGroup) GetName() string

func (*FeedGroup) GetSortOrder

func (x *FeedGroup) GetSortOrder() int32

func (*FeedGroup) ProtoMessage

func (*FeedGroup) ProtoMessage()

func (*FeedGroup) ProtoReflect

func (x *FeedGroup) ProtoReflect() protoreflect.Message

func (*FeedGroup) Reset

func (x *FeedGroup) Reset()

func (*FeedGroup) String

func (x *FeedGroup) String() string

type FeedItem

type FeedItem struct {
	Id          string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Title       string                 `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	Content     string                 `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"`
	Link        string                 `protobuf:"bytes,4,opt,name=link,proto3" json:"link,omitempty"`
	PublishedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=published_at,json=publishedAt,proto3" json:"published_at,omitempty"`
	Tags        []string               `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"`
	Category    string                 `protobuf:"bytes,7,opt,name=category,proto3" json:"category,omitempty"`
	HeroImage   string                 `protobuf:"bytes,8,opt,name=hero_image,json=heroImage,proto3" json:"hero_image,omitempty"`
	// contains filtered or unexported fields
}

FeedItem represents a generic feed item returned by a scraper

func (*FeedItem) Descriptor deprecated

func (*FeedItem) Descriptor() ([]byte, []int)

Deprecated: Use FeedItem.ProtoReflect.Descriptor instead.

func (*FeedItem) GetCategory

func (x *FeedItem) GetCategory() string

func (*FeedItem) GetContent

func (x *FeedItem) GetContent() string

func (*FeedItem) GetHeroImage

func (x *FeedItem) GetHeroImage() string

func (*FeedItem) GetId

func (x *FeedItem) GetId() string
func (x *FeedItem) GetLink() string

func (*FeedItem) GetPublishedAt

func (x *FeedItem) GetPublishedAt() *timestamppb.Timestamp

func (*FeedItem) GetTags

func (x *FeedItem) GetTags() []string

func (*FeedItem) GetTitle

func (x *FeedItem) GetTitle() string

func (*FeedItem) ProtoMessage

func (*FeedItem) ProtoMessage()

func (*FeedItem) ProtoReflect

func (x *FeedItem) ProtoReflect() protoreflect.Message

func (*FeedItem) Reset

func (x *FeedItem) Reset()

func (*FeedItem) String

func (x *FeedItem) String() string

type FeedResult

type FeedResult struct {
	Feed  *Feed       `protobuf:"bytes,1,opt,name=feed,proto3" json:"feed,omitempty"`
	Items []*FeedItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
	Error string      `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
	// contains filtered or unexported fields
}

FeedResult represents the result of fetching a feed

func (*FeedResult) Descriptor deprecated

func (*FeedResult) Descriptor() ([]byte, []int)

Deprecated: Use FeedResult.ProtoReflect.Descriptor instead.

func (*FeedResult) GetError

func (x *FeedResult) GetError() string

func (*FeedResult) GetFeed

func (x *FeedResult) GetFeed() *Feed

func (*FeedResult) GetItems

func (x *FeedResult) GetItems() []*FeedItem

func (*FeedResult) ProtoMessage

func (*FeedResult) ProtoMessage()

func (*FeedResult) ProtoReflect

func (x *FeedResult) ProtoReflect() protoreflect.Message

func (*FeedResult) Reset

func (x *FeedResult) Reset()

func (*FeedResult) String

func (x *FeedResult) String() string

type FeedsServiceClient

type FeedsServiceClient interface {
	// ListFeeds returns all registered feeds
	ListFeeds(ctx context.Context, in *ListFeedsRequest, opts ...grpc.CallOption) (*ListFeedsResponse, error)
	// RegisterFeed adds a new feed to be monitored
	RegisterFeed(ctx context.Context, in *RegisterFeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// RefreshAllFeeds triggers a refresh of all registered feeds, streaming per-feed results
	RefreshAllFeeds(ctx context.Context, in *RefreshAllFeedsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[RefreshAllFeedsEvent], error)
	// RefreshFeed refreshes a specific feed with optional time window filtering
	RefreshFeed(ctx context.Context, in *RefreshFeedRequest, opts ...grpc.CallOption) (*RefreshFeedResponse, error)
	// InspectFeed fetches and parses a feed URL (read-only, pre-registration),
	// returning a diagnosis plus sample article links for building a feed config.
	InspectFeed(ctx context.Context, in *InspectFeedRequest, opts ...grpc.CallOption) (*InspectFeedResponse, error)
	// InspectArticle scrapes a single article URL in a given mode and, when
	// selectors are supplied, returns the extracted content for selector testing.
	InspectArticle(ctx context.Context, in *InspectArticleRequest, opts ...grpc.CallOption) (*InspectArticleResponse, error)
	// AutoConfigFeed runs the server-side LLM agent that discovers a feed's selectors,
	// scraping mode, and headers on its own, streaming progress then the final config.
	AutoConfigFeed(ctx context.Context, in *AutoConfigFeedRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[AutoConfigFeedEvent], error)
	// DeleteFeed removes a feed from both the models and the database
	DeleteFeed(ctx context.Context, in *DeleteFeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// ApplyFeeds reconciles the database to match the desired set of feeds:
	// feeds in the request are created/updated, feeds absent from it are disabled.
	ApplyFeeds(ctx context.Context, in *ApplyFeedsRequest, opts ...grpc.CallOption) (*ApplyFeedsResponse, error)
	// DeleteFeeds removes the given feeds (by id) from the database
	DeleteFeeds(ctx context.Context, in *DeleteFeedsRequest, opts ...grpc.CallOption) (*DeleteFeedsResponse, error)
}

FeedsServiceClient is the client API for FeedsService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

FeedsService provides methods for working with feeds

type FeedsServiceServer

type FeedsServiceServer interface {
	// ListFeeds returns all registered feeds
	ListFeeds(context.Context, *ListFeedsRequest) (*ListFeedsResponse, error)
	// RegisterFeed adds a new feed to be monitored
	RegisterFeed(context.Context, *RegisterFeedRequest) (*emptypb.Empty, error)
	// RefreshAllFeeds triggers a refresh of all registered feeds, streaming per-feed results
	RefreshAllFeeds(*RefreshAllFeedsRequest, grpc.ServerStreamingServer[RefreshAllFeedsEvent]) error
	// RefreshFeed refreshes a specific feed with optional time window filtering
	RefreshFeed(context.Context, *RefreshFeedRequest) (*RefreshFeedResponse, error)
	// InspectFeed fetches and parses a feed URL (read-only, pre-registration),
	// returning a diagnosis plus sample article links for building a feed config.
	InspectFeed(context.Context, *InspectFeedRequest) (*InspectFeedResponse, error)
	// InspectArticle scrapes a single article URL in a given mode and, when
	// selectors are supplied, returns the extracted content for selector testing.
	InspectArticle(context.Context, *InspectArticleRequest) (*InspectArticleResponse, error)
	// AutoConfigFeed runs the server-side LLM agent that discovers a feed's selectors,
	// scraping mode, and headers on its own, streaming progress then the final config.
	AutoConfigFeed(*AutoConfigFeedRequest, grpc.ServerStreamingServer[AutoConfigFeedEvent]) error
	// DeleteFeed removes a feed from both the models and the database
	DeleteFeed(context.Context, *DeleteFeedRequest) (*emptypb.Empty, error)
	// ApplyFeeds reconciles the database to match the desired set of feeds:
	// feeds in the request are created/updated, feeds absent from it are disabled.
	ApplyFeeds(context.Context, *ApplyFeedsRequest) (*ApplyFeedsResponse, error)
	// DeleteFeeds removes the given feeds (by id) from the database
	DeleteFeeds(context.Context, *DeleteFeedsRequest) (*DeleteFeedsResponse, error)
	// contains filtered or unexported methods
}

FeedsServiceServer is the server API for FeedsService service. All implementations must embed UnimplementedFeedsServiceServer for forward compatibility.

FeedsService provides methods for working with feeds

type FeedsService_AutoConfigFeedClient added in v0.2.0

type FeedsService_AutoConfigFeedClient = grpc.ServerStreamingClient[AutoConfigFeedEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type FeedsService_AutoConfigFeedServer added in v0.2.0

type FeedsService_AutoConfigFeedServer = grpc.ServerStreamingServer[AutoConfigFeedEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type FeedsService_RefreshAllFeedsClient

type FeedsService_RefreshAllFeedsClient = grpc.ServerStreamingClient[RefreshAllFeedsEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type FeedsService_RefreshAllFeedsServer

type FeedsService_RefreshAllFeedsServer = grpc.ServerStreamingServer[RefreshAllFeedsEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type GenerateDigestRequest

type GenerateDigestRequest struct {
	StartTime              *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	EndTime                *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	SkipAnalysis           bool                   `protobuf:"varint,3,opt,name=skip_analysis,json=skipAnalysis,proto3" json:"skip_analysis,omitempty"`
	SkipDuplicates         bool                   `protobuf:"varint,4,opt,name=skip_duplicates,json=skipDuplicates,proto3" json:"skip_duplicates,omitempty"`
	ExcludeDigested        bool                   `protobuf:"varint,5,opt,name=exclude_digested,json=excludeDigested,proto3" json:"exclude_digested,omitempty"`
	SkipSummary            bool                   `protobuf:"varint,6,opt,name=skip_summary,json=skipSummary,proto3" json:"skip_summary,omitempty"`
	Theme                  string                 `protobuf:"bytes,7,opt,name=theme,proto3" json:"theme,omitempty"`
	OneShotAnalysis        bool                   `protobuf:"varint,8,opt,name=one_shot_analysis,json=oneShotAnalysis,proto3" json:"one_shot_analysis,omitempty"`
	Test                   bool                   `protobuf:"varint,9,opt,name=test,proto3" json:"test,omitempty"`
	TestDigestId           string                 `protobuf:"bytes,10,opt,name=test_digest_id,json=testDigestId,proto3" json:"test_digest_id,omitempty"`
	GhPagesEnabled         *bool                  `protobuf:"varint,11,opt,name=gh_pages_enabled,json=ghPagesEnabled,proto3,oneof" json:"gh_pages_enabled,omitempty"` // When set, overrides the server's GitHub Pages enabled config for this run
	ReanalyzeOnModelChange bool                   ``                                                                                                                  // Re-analyze articles whose existing analysis used a different model than the current default
	/* 133-byte string literal not displayed */
	Reanalyze bool   `protobuf:"varint,13,opt,name=reanalyze,proto3" json:"reanalyze,omitempty"`                        // Re-analyze every article in the window, even if it already has a current-model analysis
	VibeScore *bool  `protobuf:"varint,14,opt,name=vibe_score,json=vibeScore,proto3,oneof" json:"vibe_score,omitempty"` // When set, overrides the server's vibe_score config for this run (legacy single-number importance prompt)
	Provider  string `protobuf:"bytes,15,opt,name=provider,proto3" json:"provider,omitempty"`                           // Provider override (type or profile name, auto-detected); applies to all LLM steps of this run
	Model     string `protobuf:"bytes,16,opt,name=model,proto3" json:"model,omitempty"`                                 // Model override; with empty provider the server resolves the matching provider
	Glossary  *bool  `protobuf:"varint,17,opt,name=glossary,proto3,oneof" json:"glossary,omitempty"`                    // When set, overrides the server's glossary config for this run (plain-language explanation + jargon glossary)
	// contains filtered or unexported fields
}

GenerateDigestRequest represents a request to generate a new digest

func (*GenerateDigestRequest) Descriptor deprecated

func (*GenerateDigestRequest) Descriptor() ([]byte, []int)

Deprecated: Use GenerateDigestRequest.ProtoReflect.Descriptor instead.

func (*GenerateDigestRequest) GetEndTime

func (x *GenerateDigestRequest) GetEndTime() *timestamppb.Timestamp

func (*GenerateDigestRequest) GetExcludeDigested

func (x *GenerateDigestRequest) GetExcludeDigested() bool

func (*GenerateDigestRequest) GetGhPagesEnabled

func (x *GenerateDigestRequest) GetGhPagesEnabled() bool

func (*GenerateDigestRequest) GetGlossary added in v0.3.0

func (x *GenerateDigestRequest) GetGlossary() bool

func (*GenerateDigestRequest) GetModel

func (x *GenerateDigestRequest) GetModel() string

func (*GenerateDigestRequest) GetOneShotAnalysis

func (x *GenerateDigestRequest) GetOneShotAnalysis() bool

func (*GenerateDigestRequest) GetProvider

func (x *GenerateDigestRequest) GetProvider() string

func (*GenerateDigestRequest) GetReanalyze

func (x *GenerateDigestRequest) GetReanalyze() bool

func (*GenerateDigestRequest) GetReanalyzeOnModelChange

func (x *GenerateDigestRequest) GetReanalyzeOnModelChange() bool

func (*GenerateDigestRequest) GetSkipAnalysis

func (x *GenerateDigestRequest) GetSkipAnalysis() bool

func (*GenerateDigestRequest) GetSkipDuplicates

func (x *GenerateDigestRequest) GetSkipDuplicates() bool

func (*GenerateDigestRequest) GetSkipSummary

func (x *GenerateDigestRequest) GetSkipSummary() bool

func (*GenerateDigestRequest) GetStartTime

func (x *GenerateDigestRequest) GetStartTime() *timestamppb.Timestamp

func (*GenerateDigestRequest) GetTest

func (x *GenerateDigestRequest) GetTest() bool

func (*GenerateDigestRequest) GetTestDigestId

func (x *GenerateDigestRequest) GetTestDigestId() string

func (*GenerateDigestRequest) GetTheme

func (x *GenerateDigestRequest) GetTheme() string

func (*GenerateDigestRequest) GetVibeScore

func (x *GenerateDigestRequest) GetVibeScore() bool

func (*GenerateDigestRequest) ProtoMessage

func (*GenerateDigestRequest) ProtoMessage()

func (*GenerateDigestRequest) ProtoReflect

func (x *GenerateDigestRequest) ProtoReflect() protoreflect.Message

func (*GenerateDigestRequest) Reset

func (x *GenerateDigestRequest) Reset()

func (*GenerateDigestRequest) String

func (x *GenerateDigestRequest) String() string

type GenerateDigestResponse

type GenerateDigestResponse struct {
	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
	// contains filtered or unexported fields
}

GenerateDigestResponse represents the response with the generated digest

func (*GenerateDigestResponse) Descriptor deprecated

func (*GenerateDigestResponse) Descriptor() ([]byte, []int)

Deprecated: Use GenerateDigestResponse.ProtoReflect.Descriptor instead.

func (*GenerateDigestResponse) GetDigest

func (x *GenerateDigestResponse) GetDigest() *Digest

func (*GenerateDigestResponse) ProtoMessage

func (*GenerateDigestResponse) ProtoMessage()

func (*GenerateDigestResponse) ProtoReflect

func (x *GenerateDigestResponse) ProtoReflect() protoreflect.Message

func (*GenerateDigestResponse) Reset

func (x *GenerateDigestResponse) Reset()

func (*GenerateDigestResponse) String

func (x *GenerateDigestResponse) String() string

type GenericLLMRequest

type GenericLLMRequest struct {
	Model       string     `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
	Messages    []*Message `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"`
	Prompt      string     `protobuf:"bytes,3,opt,name=prompt,proto3" json:"prompt,omitempty"`
	Temperature float32    `protobuf:"fixed32,4,opt,name=temperature,proto3" json:"temperature,omitempty"`
	MaxTokens   int32      `protobuf:"varint,5,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"`
	// contains filtered or unexported fields
}

GenericLLMRequest represents a generic request to an LLM provider

func (*GenericLLMRequest) Descriptor deprecated

func (*GenericLLMRequest) Descriptor() ([]byte, []int)

Deprecated: Use GenericLLMRequest.ProtoReflect.Descriptor instead.

func (*GenericLLMRequest) GetMaxTokens

func (x *GenericLLMRequest) GetMaxTokens() int32

func (*GenericLLMRequest) GetMessages

func (x *GenericLLMRequest) GetMessages() []*Message

func (*GenericLLMRequest) GetModel

func (x *GenericLLMRequest) GetModel() string

func (*GenericLLMRequest) GetPrompt

func (x *GenericLLMRequest) GetPrompt() string

func (*GenericLLMRequest) GetTemperature

func (x *GenericLLMRequest) GetTemperature() float32

func (*GenericLLMRequest) ProtoMessage

func (*GenericLLMRequest) ProtoMessage()

func (*GenericLLMRequest) ProtoReflect

func (x *GenericLLMRequest) ProtoReflect() protoreflect.Message

func (*GenericLLMRequest) Reset

func (x *GenericLLMRequest) Reset()

func (*GenericLLMRequest) String

func (x *GenericLLMRequest) String() string

type GetAllArticleAnalysesRequest

type GetAllArticleAnalysesRequest struct {
	ArticleId string `protobuf:"bytes,1,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	// contains filtered or unexported fields
}

GetAllArticleAnalysesRequest represents a request to retrieve all analysis results for a specific article

func (*GetAllArticleAnalysesRequest) Descriptor deprecated

func (*GetAllArticleAnalysesRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetAllArticleAnalysesRequest.ProtoReflect.Descriptor instead.

func (*GetAllArticleAnalysesRequest) GetArticleId

func (x *GetAllArticleAnalysesRequest) GetArticleId() string

func (*GetAllArticleAnalysesRequest) ProtoMessage

func (*GetAllArticleAnalysesRequest) ProtoMessage()

func (*GetAllArticleAnalysesRequest) ProtoReflect

func (*GetAllArticleAnalysesRequest) Reset

func (x *GetAllArticleAnalysesRequest) Reset()

func (*GetAllArticleAnalysesRequest) String

type GetAllArticleAnalysesResponse

type GetAllArticleAnalysesResponse struct {
	Analyses []*ArticleAnalysis `protobuf:"bytes,1,rep,name=analyses,proto3" json:"analyses,omitempty"`
	// contains filtered or unexported fields
}

GetAllArticleAnalysesResponse represents the response with all analysis results for a specific article

func (*GetAllArticleAnalysesResponse) Descriptor deprecated

func (*GetAllArticleAnalysesResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetAllArticleAnalysesResponse.ProtoReflect.Descriptor instead.

func (*GetAllArticleAnalysesResponse) GetAnalyses

func (x *GetAllArticleAnalysesResponse) GetAnalyses() []*ArticleAnalysis

func (*GetAllArticleAnalysesResponse) ProtoMessage

func (*GetAllArticleAnalysesResponse) ProtoMessage()

func (*GetAllArticleAnalysesResponse) ProtoReflect

func (*GetAllArticleAnalysesResponse) Reset

func (x *GetAllArticleAnalysesResponse) Reset()

func (*GetAllArticleAnalysesResponse) String

type GetAnalysisConfigRequest

type GetAnalysisConfigRequest struct {
	// contains filtered or unexported fields
}

GetAnalysisConfigRequest is the request for the GetAnalysisConfig method

func (*GetAnalysisConfigRequest) Descriptor deprecated

func (*GetAnalysisConfigRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetAnalysisConfigRequest.ProtoReflect.Descriptor instead.

func (*GetAnalysisConfigRequest) ProtoMessage

func (*GetAnalysisConfigRequest) ProtoMessage()

func (*GetAnalysisConfigRequest) ProtoReflect

func (x *GetAnalysisConfigRequest) ProtoReflect() protoreflect.Message

func (*GetAnalysisConfigRequest) Reset

func (x *GetAnalysisConfigRequest) Reset()

func (*GetAnalysisConfigRequest) String

func (x *GetAnalysisConfigRequest) String() string

type GetAnalysisConfigResponse

type GetAnalysisConfigResponse struct {
	AnalysisConfig *AnalysisConfig `protobuf:"bytes,1,opt,name=analysis_config,json=analysisConfig,proto3" json:"analysis_config,omitempty"`
	// contains filtered or unexported fields
}

GetAnalysisConfigResponse is the response for the GetAnalysisConfig method

func (*GetAnalysisConfigResponse) Descriptor deprecated

func (*GetAnalysisConfigResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetAnalysisConfigResponse.ProtoReflect.Descriptor instead.

func (*GetAnalysisConfigResponse) GetAnalysisConfig

func (x *GetAnalysisConfigResponse) GetAnalysisConfig() *AnalysisConfig

func (*GetAnalysisConfigResponse) ProtoMessage

func (*GetAnalysisConfigResponse) ProtoMessage()

func (*GetAnalysisConfigResponse) ProtoReflect

func (*GetAnalysisConfigResponse) Reset

func (x *GetAnalysisConfigResponse) Reset()

func (*GetAnalysisConfigResponse) String

func (x *GetAnalysisConfigResponse) String() string

type GetAnalysisRequest

type GetAnalysisRequest struct {
	ArticleId string `protobuf:"bytes,1,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	// contains filtered or unexported fields
}

func (*GetAnalysisRequest) Descriptor deprecated

func (*GetAnalysisRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetAnalysisRequest.ProtoReflect.Descriptor instead.

func (*GetAnalysisRequest) GetArticleId

func (x *GetAnalysisRequest) GetArticleId() string

func (*GetAnalysisRequest) ProtoMessage

func (*GetAnalysisRequest) ProtoMessage()

func (*GetAnalysisRequest) ProtoReflect

func (x *GetAnalysisRequest) ProtoReflect() protoreflect.Message

func (*GetAnalysisRequest) Reset

func (x *GetAnalysisRequest) Reset()

func (*GetAnalysisRequest) String

func (x *GetAnalysisRequest) String() string

type GetArticleRequest

type GetArticleRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

GetArticleRequest represents a request to retrieve a single article by Id

func (*GetArticleRequest) Descriptor deprecated

func (*GetArticleRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetArticleRequest.ProtoReflect.Descriptor instead.

func (*GetArticleRequest) GetId

func (x *GetArticleRequest) GetId() string

func (*GetArticleRequest) ProtoMessage

func (*GetArticleRequest) ProtoMessage()

func (*GetArticleRequest) ProtoReflect

func (x *GetArticleRequest) ProtoReflect() protoreflect.Message

func (*GetArticleRequest) Reset

func (x *GetArticleRequest) Reset()

func (*GetArticleRequest) String

func (x *GetArticleRequest) String() string

type GetAvailableModelsRequest

type GetAvailableModelsRequest struct {
	ProviderName string `protobuf:"bytes,1,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"` // when set, only fetch models for this named provider
	// contains filtered or unexported fields
}

GetAvailableModelsRequest is the request for the GetAvailableModels method

func (*GetAvailableModelsRequest) Descriptor deprecated

func (*GetAvailableModelsRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetAvailableModelsRequest.ProtoReflect.Descriptor instead.

func (*GetAvailableModelsRequest) GetProviderName

func (x *GetAvailableModelsRequest) GetProviderName() string

func (*GetAvailableModelsRequest) ProtoMessage

func (*GetAvailableModelsRequest) ProtoMessage()

func (*GetAvailableModelsRequest) ProtoReflect

func (*GetAvailableModelsRequest) Reset

func (x *GetAvailableModelsRequest) Reset()

func (*GetAvailableModelsRequest) String

func (x *GetAvailableModelsRequest) String() string

type GetConfigRequest

type GetConfigRequest struct {
	// contains filtered or unexported fields
}

GetConfigRequest represents a request to retrieve the current application configuration

func (*GetConfigRequest) Descriptor deprecated

func (*GetConfigRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead.

func (*GetConfigRequest) ProtoMessage

func (*GetConfigRequest) ProtoMessage()

func (*GetConfigRequest) ProtoReflect

func (x *GetConfigRequest) ProtoReflect() protoreflect.Message

func (*GetConfigRequest) Reset

func (x *GetConfigRequest) Reset()

func (*GetConfigRequest) String

func (x *GetConfigRequest) String() string

type GetConfigResponse

type GetConfigResponse struct {
	Config *ServerConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	// contains filtered or unexported fields
}

GetConfigResponse represents the response with the current application configuration

func (*GetConfigResponse) Descriptor deprecated

func (*GetConfigResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead.

func (*GetConfigResponse) GetConfig

func (x *GetConfigResponse) GetConfig() *ServerConfig

func (*GetConfigResponse) ProtoMessage

func (*GetConfigResponse) ProtoMessage()

func (*GetConfigResponse) ProtoReflect

func (x *GetConfigResponse) ProtoReflect() protoreflect.Message

func (*GetConfigResponse) Reset

func (x *GetConfigResponse) Reset()

func (*GetConfigResponse) String

func (x *GetConfigResponse) String() string

type GetDigestArticlesRequest

type GetDigestArticlesRequest struct {
	DigestId string `protobuf:"bytes,1,opt,name=digest_id,json=digestId,proto3" json:"digest_id,omitempty"`
	// contains filtered or unexported fields
}

GetDigestArticlesRequest represents a request to retrieve articles for a digest

func (*GetDigestArticlesRequest) Descriptor deprecated

func (*GetDigestArticlesRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetDigestArticlesRequest.ProtoReflect.Descriptor instead.

func (*GetDigestArticlesRequest) GetDigestId

func (x *GetDigestArticlesRequest) GetDigestId() string

func (*GetDigestArticlesRequest) ProtoMessage

func (*GetDigestArticlesRequest) ProtoMessage()

func (*GetDigestArticlesRequest) ProtoReflect

func (x *GetDigestArticlesRequest) ProtoReflect() protoreflect.Message

func (*GetDigestArticlesRequest) Reset

func (x *GetDigestArticlesRequest) Reset()

func (*GetDigestArticlesRequest) String

func (x *GetDigestArticlesRequest) String() string

type GetDigestArticlesResponse

type GetDigestArticlesResponse struct {
	Articles []*Article `protobuf:"bytes,1,rep,name=articles,proto3" json:"articles,omitempty"`
	// contains filtered or unexported fields
}

GetDigestArticlesResponse represents the response with articles for a digest

func (*GetDigestArticlesResponse) Descriptor deprecated

func (*GetDigestArticlesResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetDigestArticlesResponse.ProtoReflect.Descriptor instead.

func (*GetDigestArticlesResponse) GetArticles

func (x *GetDigestArticlesResponse) GetArticles() []*Article

func (*GetDigestArticlesResponse) ProtoMessage

func (*GetDigestArticlesResponse) ProtoMessage()

func (*GetDigestArticlesResponse) ProtoReflect

func (*GetDigestArticlesResponse) Reset

func (x *GetDigestArticlesResponse) Reset()

func (*GetDigestArticlesResponse) String

func (x *GetDigestArticlesResponse) String() string

type GetDigestRequest

type GetDigestRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

GetDigestRequest represents a request to retrieve a digest by Id

func (*GetDigestRequest) Descriptor deprecated

func (*GetDigestRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetDigestRequest.ProtoReflect.Descriptor instead.

func (*GetDigestRequest) GetId

func (x *GetDigestRequest) GetId() string

func (*GetDigestRequest) ProtoMessage

func (*GetDigestRequest) ProtoMessage()

func (*GetDigestRequest) ProtoReflect

func (x *GetDigestRequest) ProtoReflect() protoreflect.Message

func (*GetDigestRequest) Reset

func (x *GetDigestRequest) Reset()

func (*GetDigestRequest) String

func (x *GetDigestRequest) String() string

type GetDigestResponse

type GetDigestResponse struct {
	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
	// contains filtered or unexported fields
}

GetDigestResponse represents the response with a digest

func (*GetDigestResponse) Descriptor deprecated

func (*GetDigestResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetDigestResponse.ProtoReflect.Descriptor instead.

func (*GetDigestResponse) GetDigest

func (x *GetDigestResponse) GetDigest() *Digest

func (*GetDigestResponse) ProtoMessage

func (*GetDigestResponse) ProtoMessage()

func (*GetDigestResponse) ProtoReflect

func (x *GetDigestResponse) ProtoReflect() protoreflect.Message

func (*GetDigestResponse) Reset

func (x *GetDigestResponse) Reset()

func (*GetDigestResponse) String

func (x *GetDigestResponse) String() string

type GetLLMProvidersRequest

type GetLLMProvidersRequest struct {
	// contains filtered or unexported fields
}

GetLLMProvidersRequest is the request for the GetLLMProviders method

func (*GetLLMProvidersRequest) Descriptor deprecated

func (*GetLLMProvidersRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetLLMProvidersRequest.ProtoReflect.Descriptor instead.

func (*GetLLMProvidersRequest) ProtoMessage

func (*GetLLMProvidersRequest) ProtoMessage()

func (*GetLLMProvidersRequest) ProtoReflect

func (x *GetLLMProvidersRequest) ProtoReflect() protoreflect.Message

func (*GetLLMProvidersRequest) Reset

func (x *GetLLMProvidersRequest) Reset()

func (*GetLLMProvidersRequest) String

func (x *GetLLMProvidersRequest) String() string

type GetLLMProvidersResponse

type GetLLMProvidersResponse struct {
	Providers []*ProviderConfig `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"`
	// contains filtered or unexported fields
}

GetLLMProvidersResponse is the response for the GetLLMProviders method

func (*GetLLMProvidersResponse) Descriptor deprecated

func (*GetLLMProvidersResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetLLMProvidersResponse.ProtoReflect.Descriptor instead.

func (*GetLLMProvidersResponse) GetProviders

func (x *GetLLMProvidersResponse) GetProviders() []*ProviderConfig

func (*GetLLMProvidersResponse) ProtoMessage

func (*GetLLMProvidersResponse) ProtoMessage()

func (*GetLLMProvidersResponse) ProtoReflect

func (x *GetLLMProvidersResponse) ProtoReflect() protoreflect.Message

func (*GetLLMProvidersResponse) Reset

func (x *GetLLMProvidersResponse) Reset()

func (*GetLLMProvidersResponse) String

func (x *GetLLMProvidersResponse) String() string

type GetOrCreateCategoryRequest

type GetOrCreateCategoryRequest struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

GetOrCreateCategoryRequest represents a request to retrieve or create a category by name

func (*GetOrCreateCategoryRequest) Descriptor deprecated

func (*GetOrCreateCategoryRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetOrCreateCategoryRequest.ProtoReflect.Descriptor instead.

func (*GetOrCreateCategoryRequest) GetName

func (x *GetOrCreateCategoryRequest) GetName() string

func (*GetOrCreateCategoryRequest) ProtoMessage

func (*GetOrCreateCategoryRequest) ProtoMessage()

func (*GetOrCreateCategoryRequest) ProtoReflect

func (*GetOrCreateCategoryRequest) Reset

func (x *GetOrCreateCategoryRequest) Reset()

func (*GetOrCreateCategoryRequest) String

func (x *GetOrCreateCategoryRequest) String() string

type GetOrCreateCategoryResponse

type GetOrCreateCategoryResponse struct {
	Category *Category `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"`
	// contains filtered or unexported fields
}

GetOrCreateCategoryResponse represents the response with a category

func (*GetOrCreateCategoryResponse) Descriptor deprecated

func (*GetOrCreateCategoryResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetOrCreateCategoryResponse.ProtoReflect.Descriptor instead.

func (*GetOrCreateCategoryResponse) GetCategory

func (x *GetOrCreateCategoryResponse) GetCategory() *Category

func (*GetOrCreateCategoryResponse) ProtoMessage

func (*GetOrCreateCategoryResponse) ProtoMessage()

func (*GetOrCreateCategoryResponse) ProtoReflect

func (*GetOrCreateCategoryResponse) Reset

func (x *GetOrCreateCategoryResponse) Reset()

func (*GetOrCreateCategoryResponse) String

func (x *GetOrCreateCategoryResponse) String() string

type GetQueueStatusRequest

type GetQueueStatusRequest struct {
	// contains filtered or unexported fields
}

GetQueueStatusRequest is empty

func (*GetQueueStatusRequest) Descriptor deprecated

func (*GetQueueStatusRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetQueueStatusRequest.ProtoReflect.Descriptor instead.

func (*GetQueueStatusRequest) ProtoMessage

func (*GetQueueStatusRequest) ProtoMessage()

func (*GetQueueStatusRequest) ProtoReflect

func (x *GetQueueStatusRequest) ProtoReflect() protoreflect.Message

func (*GetQueueStatusRequest) Reset

func (x *GetQueueStatusRequest) Reset()

func (*GetQueueStatusRequest) String

func (x *GetQueueStatusRequest) String() string

type GetQueueStatusResponse

type GetQueueStatusResponse struct {
	Queue        []*QueueJob `protobuf:"bytes,1,rep,name=queue,proto3" json:"queue,omitempty"`
	CurrentId    string      `protobuf:"bytes,2,opt,name=current_id,json=currentId,proto3" json:"current_id,omitempty"`
	CurrentTitle string      `protobuf:"bytes,3,opt,name=current_title,json=currentTitle,proto3" json:"current_title,omitempty"`
	IsProcessing bool        `protobuf:"varint,4,opt,name=is_processing,json=isProcessing,proto3" json:"is_processing,omitempty"`
	// contains filtered or unexported fields
}

GetQueueStatusResponse returns the current state of the queue

func (*GetQueueStatusResponse) Descriptor deprecated

func (*GetQueueStatusResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetQueueStatusResponse.ProtoReflect.Descriptor instead.

func (*GetQueueStatusResponse) GetCurrentId

func (x *GetQueueStatusResponse) GetCurrentId() string

func (*GetQueueStatusResponse) GetCurrentTitle

func (x *GetQueueStatusResponse) GetCurrentTitle() string

func (*GetQueueStatusResponse) GetIsProcessing

func (x *GetQueueStatusResponse) GetIsProcessing() bool

func (*GetQueueStatusResponse) GetQueue

func (x *GetQueueStatusResponse) GetQueue() []*QueueJob

func (*GetQueueStatusResponse) ProtoMessage

func (*GetQueueStatusResponse) ProtoMessage()

func (*GetQueueStatusResponse) ProtoReflect

func (x *GetQueueStatusResponse) ProtoReflect() protoreflect.Message

func (*GetQueueStatusResponse) Reset

func (x *GetQueueStatusResponse) Reset()

func (*GetQueueStatusResponse) String

func (x *GetQueueStatusResponse) String() string

type GitHubPagesNotificationConfig

type GitHubPagesNotificationConfig struct {
	Enabled           bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	RepoUrl           string `protobuf:"bytes,2,opt,name=repo_url,json=repoUrl,proto3" json:"repo_url,omitempty"`
	Branch            string `protobuf:"bytes,3,opt,name=branch,proto3" json:"branch,omitempty"`
	ConfigurePages    bool   `protobuf:"varint,4,opt,name=configure_pages,json=configurePages,proto3" json:"configure_pages,omitempty"`
	Token             string `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"`
	OutputDir         string `protobuf:"bytes,6,opt,name=output_dir,json=outputDir,proto3" json:"output_dir,omitempty"`
	BaseUrl           string `protobuf:"bytes,7,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"`
	CommitAuthor      string `protobuf:"bytes,8,opt,name=commit_author,json=commitAuthor,proto3" json:"commit_author,omitempty"`
	CommitEmail       string `protobuf:"bytes,9,opt,name=commit_email,json=commitEmail,proto3" json:"commit_email,omitempty"`
	CloneDir          string `protobuf:"bytes,10,opt,name=clone_dir,json=cloneDir,proto3" json:"clone_dir,omitempty"`
	DiscordWebhookUrl string `protobuf:"bytes,11,opt,name=discord_webhook_url,json=discordWebhookUrl,proto3" json:"discord_webhook_url,omitempty"`
	// contains filtered or unexported fields
}

GitHubPagesNotificationConfig holds GitHub Pages publishing settings.

func (*GitHubPagesNotificationConfig) Descriptor deprecated

func (*GitHubPagesNotificationConfig) Descriptor() ([]byte, []int)

Deprecated: Use GitHubPagesNotificationConfig.ProtoReflect.Descriptor instead.

func (*GitHubPagesNotificationConfig) GetBaseUrl

func (x *GitHubPagesNotificationConfig) GetBaseUrl() string

func (*GitHubPagesNotificationConfig) GetBranch

func (x *GitHubPagesNotificationConfig) GetBranch() string

func (*GitHubPagesNotificationConfig) GetCloneDir

func (x *GitHubPagesNotificationConfig) GetCloneDir() string

func (*GitHubPagesNotificationConfig) GetCommitAuthor

func (x *GitHubPagesNotificationConfig) GetCommitAuthor() string

func (*GitHubPagesNotificationConfig) GetCommitEmail

func (x *GitHubPagesNotificationConfig) GetCommitEmail() string

func (*GitHubPagesNotificationConfig) GetConfigurePages

func (x *GitHubPagesNotificationConfig) GetConfigurePages() bool

func (*GitHubPagesNotificationConfig) GetDiscordWebhookUrl

func (x *GitHubPagesNotificationConfig) GetDiscordWebhookUrl() string

func (*GitHubPagesNotificationConfig) GetEnabled

func (x *GitHubPagesNotificationConfig) GetEnabled() bool

func (*GitHubPagesNotificationConfig) GetOutputDir

func (x *GitHubPagesNotificationConfig) GetOutputDir() string

func (*GitHubPagesNotificationConfig) GetRepoUrl

func (x *GitHubPagesNotificationConfig) GetRepoUrl() string

func (*GitHubPagesNotificationConfig) GetToken

func (x *GitHubPagesNotificationConfig) GetToken() string

func (*GitHubPagesNotificationConfig) ProtoMessage

func (*GitHubPagesNotificationConfig) ProtoMessage()

func (*GitHubPagesNotificationConfig) ProtoReflect

func (*GitHubPagesNotificationConfig) Reset

func (x *GitHubPagesNotificationConfig) Reset()

func (*GitHubPagesNotificationConfig) String

type InspectArticleRequest added in v0.2.0

type InspectArticleRequest struct {
	Url       string            `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Mode      string            `protobuf:"bytes,2,opt,name=mode,proto3" json:"mode,omitempty"`
	Headers   map[string]string `` /* 141-byte string literal not displayed */
	Selectors *Selectors        `protobuf:"bytes,4,opt,name=selectors,proto3" json:"selectors,omitempty"`
	HtmlLimit int32             `protobuf:"varint,5,opt,name=html_limit,json=htmlLimit,proto3" json:"html_limit,omitempty"`
	// contains filtered or unexported fields
}

InspectArticleRequest scrapes one article URL in the given mode ("" / static, dynamic, full_browser). When selectors are set the response also carries the extracted content. html_limit caps the returned page HTML (0 = default).

func (*InspectArticleRequest) Descriptor deprecated added in v0.2.0

func (*InspectArticleRequest) Descriptor() ([]byte, []int)

Deprecated: Use InspectArticleRequest.ProtoReflect.Descriptor instead.

func (*InspectArticleRequest) GetHeaders added in v0.2.0

func (x *InspectArticleRequest) GetHeaders() map[string]string

func (*InspectArticleRequest) GetHtmlLimit added in v0.2.0

func (x *InspectArticleRequest) GetHtmlLimit() int32

func (*InspectArticleRequest) GetMode added in v0.2.0

func (x *InspectArticleRequest) GetMode() string

func (*InspectArticleRequest) GetSelectors added in v0.2.0

func (x *InspectArticleRequest) GetSelectors() *Selectors

func (*InspectArticleRequest) GetUrl added in v0.2.0

func (x *InspectArticleRequest) GetUrl() string

func (*InspectArticleRequest) ProtoMessage added in v0.2.0

func (*InspectArticleRequest) ProtoMessage()

func (*InspectArticleRequest) ProtoReflect added in v0.2.0

func (x *InspectArticleRequest) ProtoReflect() protoreflect.Message

func (*InspectArticleRequest) Reset added in v0.2.0

func (x *InspectArticleRequest) Reset()

func (*InspectArticleRequest) String added in v0.2.0

func (x *InspectArticleRequest) String() string

type InspectArticleResponse added in v0.2.0

type InspectArticleResponse struct {
	HttpStatus      int32  `protobuf:"varint,1,opt,name=http_status,json=httpStatus,proto3" json:"http_status,omitempty"`
	ModeUsed        string `protobuf:"bytes,2,opt,name=mode_used,json=modeUsed,proto3" json:"mode_used,omitempty"`
	RawHtmlLen      int32  `protobuf:"varint,3,opt,name=raw_html_len,json=rawHtmlLen,proto3" json:"raw_html_len,omitempty"`
	Html            string `protobuf:"bytes,4,opt,name=html,proto3" json:"html,omitempty"`           // page HTML, capped to html_limit, for selector inspection
	Extracted       string `protobuf:"bytes,5,opt,name=extracted,proto3" json:"extracted,omitempty"` // extracted markdown when selectors were supplied
	ExtractedLen    int32  `protobuf:"varint,6,opt,name=extracted_len,json=extractedLen,proto3" json:"extracted_len,omitempty"`
	SelectorMatched bool   `protobuf:"varint,7,opt,name=selector_matched,json=selectorMatched,proto3" json:"selector_matched,omitempty"`
	Error           string `protobuf:"bytes,8,opt,name=error,proto3" json:"error,omitempty"`
	DurationMs      int64  `protobuf:"varint,9,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"`
	// contains filtered or unexported fields
}

InspectArticleResponse reports the scrape outcome: the (capped) page HTML for inspection plus, when selectors were supplied, the extracted markdown and stats.

func (*InspectArticleResponse) Descriptor deprecated added in v0.2.0

func (*InspectArticleResponse) Descriptor() ([]byte, []int)

Deprecated: Use InspectArticleResponse.ProtoReflect.Descriptor instead.

func (*InspectArticleResponse) GetDurationMs added in v0.2.0

func (x *InspectArticleResponse) GetDurationMs() int64

func (*InspectArticleResponse) GetError added in v0.2.0

func (x *InspectArticleResponse) GetError() string

func (*InspectArticleResponse) GetExtracted added in v0.2.0

func (x *InspectArticleResponse) GetExtracted() string

func (*InspectArticleResponse) GetExtractedLen added in v0.2.0

func (x *InspectArticleResponse) GetExtractedLen() int32

func (*InspectArticleResponse) GetHtml added in v0.2.0

func (x *InspectArticleResponse) GetHtml() string

func (*InspectArticleResponse) GetHttpStatus added in v0.2.0

func (x *InspectArticleResponse) GetHttpStatus() int32

func (*InspectArticleResponse) GetModeUsed added in v0.2.0

func (x *InspectArticleResponse) GetModeUsed() string

func (*InspectArticleResponse) GetRawHtmlLen added in v0.2.0

func (x *InspectArticleResponse) GetRawHtmlLen() int32

func (*InspectArticleResponse) GetSelectorMatched added in v0.2.0

func (x *InspectArticleResponse) GetSelectorMatched() bool

func (*InspectArticleResponse) ProtoMessage added in v0.2.0

func (*InspectArticleResponse) ProtoMessage()

func (*InspectArticleResponse) ProtoReflect added in v0.2.0

func (x *InspectArticleResponse) ProtoReflect() protoreflect.Message

func (*InspectArticleResponse) Reset added in v0.2.0

func (x *InspectArticleResponse) Reset()

func (*InspectArticleResponse) String added in v0.2.0

func (x *InspectArticleResponse) String() string

type InspectFeedRequest added in v0.2.0

type InspectFeedRequest struct {
	Url      string            `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Headers  map[string]string `` /* 141-byte string literal not displayed */
	MaxLinks int32             `protobuf:"varint,3,opt,name=max_links,json=maxLinks,proto3" json:"max_links,omitempty"`
	// contains filtered or unexported fields
}

InspectFeedRequest probes a feed URL before it is registered. Headers are optional custom HTTP headers; max_links caps the returned sample article links.

func (*InspectFeedRequest) Descriptor deprecated added in v0.2.0

func (*InspectFeedRequest) Descriptor() ([]byte, []int)

Deprecated: Use InspectFeedRequest.ProtoReflect.Descriptor instead.

func (*InspectFeedRequest) GetHeaders added in v0.2.0

func (x *InspectFeedRequest) GetHeaders() map[string]string
func (x *InspectFeedRequest) GetMaxLinks() int32

func (*InspectFeedRequest) GetUrl added in v0.2.0

func (x *InspectFeedRequest) GetUrl() string

func (*InspectFeedRequest) ProtoMessage added in v0.2.0

func (*InspectFeedRequest) ProtoMessage()

func (*InspectFeedRequest) ProtoReflect added in v0.2.0

func (x *InspectFeedRequest) ProtoReflect() protoreflect.Message

func (*InspectFeedRequest) Reset added in v0.2.0

func (x *InspectFeedRequest) Reset()

func (*InspectFeedRequest) String added in v0.2.0

func (x *InspectFeedRequest) String() string

type InspectFeedResponse added in v0.2.0

type InspectFeedResponse struct {
	Diagnosis     *FeedDiagnosis `protobuf:"bytes,1,opt,name=diagnosis,proto3" json:"diagnosis,omitempty"`
	SampleLinks   []string       `protobuf:"bytes,2,rep,name=sample_links,json=sampleLinks,proto3" json:"sample_links,omitempty"`
	DetectedTitle string         `protobuf:"bytes,3,opt,name=detected_title,json=detectedTitle,proto3" json:"detected_title,omitempty"`
	// contains filtered or unexported fields
}

InspectFeedResponse carries the feed diagnosis plus sample article links and the detected feed title, used to scaffold a feed configuration.

func (*InspectFeedResponse) Descriptor deprecated added in v0.2.0

func (*InspectFeedResponse) Descriptor() ([]byte, []int)

Deprecated: Use InspectFeedResponse.ProtoReflect.Descriptor instead.

func (*InspectFeedResponse) GetDetectedTitle added in v0.2.0

func (x *InspectFeedResponse) GetDetectedTitle() string

func (*InspectFeedResponse) GetDiagnosis added in v0.2.0

func (x *InspectFeedResponse) GetDiagnosis() *FeedDiagnosis
func (x *InspectFeedResponse) GetSampleLinks() []string

func (*InspectFeedResponse) ProtoMessage added in v0.2.0

func (*InspectFeedResponse) ProtoMessage()

func (*InspectFeedResponse) ProtoReflect added in v0.2.0

func (x *InspectFeedResponse) ProtoReflect() protoreflect.Message

func (*InspectFeedResponse) Reset added in v0.2.0

func (x *InspectFeedResponse) Reset()

func (*InspectFeedResponse) String added in v0.2.0

func (x *InspectFeedResponse) String() string

type LLMsServiceClient

type LLMsServiceClient interface {
	// GetLLMProviders returns the current LLM provider configurations
	GetLLMProviders(ctx context.Context, in *GetLLMProvidersRequest, opts ...grpc.CallOption) (*GetLLMProvidersResponse, error)
	// SaveLLMProviders updates the LLM provider configurations
	SaveLLMProviders(ctx context.Context, in *SaveLLMProvidersRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// GetAvailableModels fetches available models from configured providers
	GetAvailableModels(ctx context.Context, in *GetAvailableModelsRequest, opts ...grpc.CallOption) (*ModelsResponse, error)
	// ResolveLLM resolves a provider/model selection to the concrete provider type and model name a run would use
	ResolveLLM(ctx context.Context, in *ResolveLLMRequest, opts ...grpc.CallOption) (*ResolveLLMResponse, error)
	// AnalyzeArticleWithProviderModel analyzes an article using a provider model
	AnalyzeArticleWithProviderModel(ctx context.Context, in *AnalyzeArticleWithProviderModelRequest, opts ...grpc.CallOption) (*AnalyzeArticleWithProviderModelResponse, error)
	// AnalyzeArticle analyzes an article using the default model
	AnalyzeArticle(ctx context.Context, in *AnalyzeArticleRequest, opts ...grpc.CallOption) (*AnalyzeArticleResponse, error)
	// GetAnalysisConfig returns the current analysis configuration
	GetAnalysisConfig(ctx context.Context, in *GetAnalysisConfigRequest, opts ...grpc.CallOption) (*GetAnalysisConfigResponse, error)
	// PreviewAnalysisPrompt builds the analysis prompt for an article without sending it
	PreviewAnalysisPrompt(ctx context.Context, in *PreviewAnalysisPromptRequest, opts ...grpc.CallOption) (*PreviewAnalysisPromptResponse, error)
	// StreamAnalyzeArticle analyzes an article and streams task-level progress events
	StreamAnalyzeArticle(ctx context.Context, in *AnalyzeArticleWithProviderModelRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[AnalysisProgressEvent], error)
}

LLMsServiceClient is the client API for LLMsService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

LLMService provides methods for working with LLMs

type LLMsServiceServer

type LLMsServiceServer interface {
	// GetLLMProviders returns the current LLM provider configurations
	GetLLMProviders(context.Context, *GetLLMProvidersRequest) (*GetLLMProvidersResponse, error)
	// SaveLLMProviders updates the LLM provider configurations
	SaveLLMProviders(context.Context, *SaveLLMProvidersRequest) (*emptypb.Empty, error)
	// GetAvailableModels fetches available models from configured providers
	GetAvailableModels(context.Context, *GetAvailableModelsRequest) (*ModelsResponse, error)
	// ResolveLLM resolves a provider/model selection to the concrete provider type and model name a run would use
	ResolveLLM(context.Context, *ResolveLLMRequest) (*ResolveLLMResponse, error)
	// AnalyzeArticleWithProviderModel analyzes an article using a provider model
	AnalyzeArticleWithProviderModel(context.Context, *AnalyzeArticleWithProviderModelRequest) (*AnalyzeArticleWithProviderModelResponse, error)
	// AnalyzeArticle analyzes an article using the default model
	AnalyzeArticle(context.Context, *AnalyzeArticleRequest) (*AnalyzeArticleResponse, error)
	// GetAnalysisConfig returns the current analysis configuration
	GetAnalysisConfig(context.Context, *GetAnalysisConfigRequest) (*GetAnalysisConfigResponse, error)
	// PreviewAnalysisPrompt builds the analysis prompt for an article without sending it
	PreviewAnalysisPrompt(context.Context, *PreviewAnalysisPromptRequest) (*PreviewAnalysisPromptResponse, error)
	// StreamAnalyzeArticle analyzes an article and streams task-level progress events
	StreamAnalyzeArticle(*AnalyzeArticleWithProviderModelRequest, grpc.ServerStreamingServer[AnalysisProgressEvent]) error
	// contains filtered or unexported methods
}

LLMsServiceServer is the server API for LLMsService service. All implementations must embed UnimplementedLLMsServiceServer for forward compatibility.

LLMService provides methods for working with LLMs

type LLMsService_StreamAnalyzeArticleClient

type LLMsService_StreamAnalyzeArticleClient = grpc.ServerStreamingClient[AnalysisProgressEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type LLMsService_StreamAnalyzeArticleServer

type LLMsService_StreamAnalyzeArticleServer = grpc.ServerStreamingServer[AnalysisProgressEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type ListArticlesResponse

type ListArticlesResponse struct {
	Articles []*Article `protobuf:"bytes,1,rep,name=articles,proto3" json:"articles,omitempty"`
	// contains filtered or unexported fields
}

ListArticlesResponse represents the response with a list of articles

func (*ListArticlesResponse) Descriptor deprecated

func (*ListArticlesResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListArticlesResponse.ProtoReflect.Descriptor instead.

func (*ListArticlesResponse) GetArticles

func (x *ListArticlesResponse) GetArticles() []*Article

func (*ListArticlesResponse) ProtoMessage

func (*ListArticlesResponse) ProtoMessage()

func (*ListArticlesResponse) ProtoReflect

func (x *ListArticlesResponse) ProtoReflect() protoreflect.Message

func (*ListArticlesResponse) Reset

func (x *ListArticlesResponse) Reset()

func (*ListArticlesResponse) String

func (x *ListArticlesResponse) String() string

type ListCodexCredentialsRequest

type ListCodexCredentialsRequest struct {
	ProviderName string `protobuf:"bytes,1,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`
	// contains filtered or unexported fields
}

func (*ListCodexCredentialsRequest) Descriptor deprecated

func (*ListCodexCredentialsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListCodexCredentialsRequest.ProtoReflect.Descriptor instead.

func (*ListCodexCredentialsRequest) GetProviderName

func (x *ListCodexCredentialsRequest) GetProviderName() string

func (*ListCodexCredentialsRequest) ProtoMessage

func (*ListCodexCredentialsRequest) ProtoMessage()

func (*ListCodexCredentialsRequest) ProtoReflect

func (*ListCodexCredentialsRequest) Reset

func (x *ListCodexCredentialsRequest) Reset()

func (*ListCodexCredentialsRequest) String

func (x *ListCodexCredentialsRequest) String() string

type ListCodexCredentialsResponse

type ListCodexCredentialsResponse struct {
	Credentials []*CodexCredentialInfo `protobuf:"bytes,1,rep,name=credentials,proto3" json:"credentials,omitempty"`
	// contains filtered or unexported fields
}

func (*ListCodexCredentialsResponse) Descriptor deprecated

func (*ListCodexCredentialsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListCodexCredentialsResponse.ProtoReflect.Descriptor instead.

func (*ListCodexCredentialsResponse) GetCredentials

func (x *ListCodexCredentialsResponse) GetCredentials() []*CodexCredentialInfo

func (*ListCodexCredentialsResponse) ProtoMessage

func (*ListCodexCredentialsResponse) ProtoMessage()

func (*ListCodexCredentialsResponse) ProtoReflect

func (*ListCodexCredentialsResponse) Reset

func (x *ListCodexCredentialsResponse) Reset()

func (*ListCodexCredentialsResponse) String

type ListDigestsRequest

type ListDigestsRequest struct {
	Limit uint32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
	Full  bool   `protobuf:"varint,2,opt,name=full,proto3" json:"full,omitempty"` // when false, return summary fields only (id/title/date/article count)
	// contains filtered or unexported fields
}

ListDigestsRequest represents a request to retrieve all digests

func (*ListDigestsRequest) Descriptor deprecated

func (*ListDigestsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListDigestsRequest.ProtoReflect.Descriptor instead.

func (*ListDigestsRequest) GetFull added in v0.2.0

func (x *ListDigestsRequest) GetFull() bool

func (*ListDigestsRequest) GetLimit

func (x *ListDigestsRequest) GetLimit() uint32

func (*ListDigestsRequest) ProtoMessage

func (*ListDigestsRequest) ProtoMessage()

func (*ListDigestsRequest) ProtoReflect

func (x *ListDigestsRequest) ProtoReflect() protoreflect.Message

func (*ListDigestsRequest) Reset

func (x *ListDigestsRequest) Reset()

func (*ListDigestsRequest) String

func (x *ListDigestsRequest) String() string

type ListDigestsResponse

type ListDigestsResponse struct {
	Digests []*Digest `protobuf:"bytes,1,rep,name=digests,proto3" json:"digests,omitempty"`
	// contains filtered or unexported fields
}

ListDigestsResponse represents the response with all digests

func (*ListDigestsResponse) Descriptor deprecated

func (*ListDigestsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListDigestsResponse.ProtoReflect.Descriptor instead.

func (*ListDigestsResponse) GetDigests

func (x *ListDigestsResponse) GetDigests() []*Digest

func (*ListDigestsResponse) ProtoMessage

func (*ListDigestsResponse) ProtoMessage()

func (*ListDigestsResponse) ProtoReflect

func (x *ListDigestsResponse) ProtoReflect() protoreflect.Message

func (*ListDigestsResponse) Reset

func (x *ListDigestsResponse) Reset()

func (*ListDigestsResponse) String

func (x *ListDigestsResponse) String() string

type ListFeedsRequest

type ListFeedsRequest struct {
	// contains filtered or unexported fields
}

ListFeedsRequest is the request for the ListFeeds method

func (*ListFeedsRequest) Descriptor deprecated

func (*ListFeedsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListFeedsRequest.ProtoReflect.Descriptor instead.

func (*ListFeedsRequest) ProtoMessage

func (*ListFeedsRequest) ProtoMessage()

func (*ListFeedsRequest) ProtoReflect

func (x *ListFeedsRequest) ProtoReflect() protoreflect.Message

func (*ListFeedsRequest) Reset

func (x *ListFeedsRequest) Reset()

func (*ListFeedsRequest) String

func (x *ListFeedsRequest) String() string

type ListFeedsResponse

type ListFeedsResponse struct {
	Feeds []*Feed `protobuf:"bytes,1,rep,name=feeds,proto3" json:"feeds,omitempty"`
	// contains filtered or unexported fields
}

ListFeedsResponse is the response for the ListFeeds method

func (*ListFeedsResponse) Descriptor deprecated

func (*ListFeedsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListFeedsResponse.ProtoReflect.Descriptor instead.

func (*ListFeedsResponse) GetFeeds

func (x *ListFeedsResponse) GetFeeds() []*Feed

func (*ListFeedsResponse) ProtoMessage

func (*ListFeedsResponse) ProtoMessage()

func (*ListFeedsResponse) ProtoReflect

func (x *ListFeedsResponse) ProtoReflect() protoreflect.Message

func (*ListFeedsResponse) Reset

func (x *ListFeedsResponse) Reset()

func (*ListFeedsResponse) String

func (x *ListFeedsResponse) String() string

type MarkFeedReadRequest

type MarkFeedReadRequest struct {
	FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
	// contains filtered or unexported fields
}

func (*MarkFeedReadRequest) Descriptor deprecated

func (*MarkFeedReadRequest) Descriptor() ([]byte, []int)

Deprecated: Use MarkFeedReadRequest.ProtoReflect.Descriptor instead.

func (*MarkFeedReadRequest) GetFeedId

func (x *MarkFeedReadRequest) GetFeedId() string

func (*MarkFeedReadRequest) ProtoMessage

func (*MarkFeedReadRequest) ProtoMessage()

func (*MarkFeedReadRequest) ProtoReflect

func (x *MarkFeedReadRequest) ProtoReflect() protoreflect.Message

func (*MarkFeedReadRequest) Reset

func (x *MarkFeedReadRequest) Reset()

func (*MarkFeedReadRequest) String

func (x *MarkFeedReadRequest) String() string

type Message

type Message struct {
	Role    string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
	Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
	// contains filtered or unexported fields
}

Message represents a message in a chat-based LLM request

func (*Message) Descriptor deprecated

func (*Message) Descriptor() ([]byte, []int)

Deprecated: Use Message.ProtoReflect.Descriptor instead.

func (*Message) GetContent

func (x *Message) GetContent() string

func (*Message) GetRole

func (x *Message) GetRole() string

func (*Message) ProtoMessage

func (*Message) ProtoMessage()

func (*Message) ProtoReflect

func (x *Message) ProtoReflect() protoreflect.Message

func (*Message) Reset

func (x *Message) Reset()

func (*Message) String

func (x *Message) String() string

type ModelInfo

type ModelInfo struct {
	Id           string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name         string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	DisplayName  string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	Description  string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	ProviderType string `protobuf:"bytes,5,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	// contains filtered or unexported fields
}

ModelInfo represents generic model information

func (*ModelInfo) Descriptor deprecated

func (*ModelInfo) Descriptor() ([]byte, []int)

Deprecated: Use ModelInfo.ProtoReflect.Descriptor instead.

func (*ModelInfo) GetDescription

func (x *ModelInfo) GetDescription() string

func (*ModelInfo) GetDisplayName

func (x *ModelInfo) GetDisplayName() string

func (*ModelInfo) GetId

func (x *ModelInfo) GetId() string

func (*ModelInfo) GetName

func (x *ModelInfo) GetName() string

func (*ModelInfo) GetProviderType

func (x *ModelInfo) GetProviderType() string

func (*ModelInfo) ProtoMessage

func (*ModelInfo) ProtoMessage()

func (*ModelInfo) ProtoReflect

func (x *ModelInfo) ProtoReflect() protoreflect.Message

func (*ModelInfo) Reset

func (x *ModelInfo) Reset()

func (*ModelInfo) String

func (x *ModelInfo) String() string

type ModelsResponse

type ModelsResponse struct {
	Models []*ModelInfo `protobuf:"bytes,1,rep,name=models,proto3" json:"models,omitempty"`
	Error  string       `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	// contains filtered or unexported fields
}

ModelsResponse represents the response structure for GetAvailableModels

func (*ModelsResponse) Descriptor deprecated

func (*ModelsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ModelsResponse.ProtoReflect.Descriptor instead.

func (*ModelsResponse) GetError

func (x *ModelsResponse) GetError() string

func (*ModelsResponse) GetModels

func (x *ModelsResponse) GetModels() []*ModelInfo

func (*ModelsResponse) ProtoMessage

func (*ModelsResponse) ProtoMessage()

func (*ModelsResponse) ProtoReflect

func (x *ModelsResponse) ProtoReflect() protoreflect.Message

func (*ModelsResponse) Reset

func (x *ModelsResponse) Reset()

func (*ModelsResponse) String

func (x *ModelsResponse) String() string

type NotificationsConfig

type NotificationsConfig struct {
	Discord     *DiscordNotificationConfig     `protobuf:"bytes,1,opt,name=discord,proto3" json:"discord,omitempty"`
	GithubPages *GitHubPagesNotificationConfig `protobuf:"bytes,2,opt,name=github_pages,json=githubPages,proto3" json:"github_pages,omitempty"`
	// contains filtered or unexported fields
}

NotificationsConfig holds notification platform configurations.

func (*NotificationsConfig) Descriptor deprecated

func (*NotificationsConfig) Descriptor() ([]byte, []int)

Deprecated: Use NotificationsConfig.ProtoReflect.Descriptor instead.

func (*NotificationsConfig) GetDiscord

func (*NotificationsConfig) GetGithubPages

func (*NotificationsConfig) ProtoMessage

func (*NotificationsConfig) ProtoMessage()

func (*NotificationsConfig) ProtoReflect

func (x *NotificationsConfig) ProtoReflect() protoreflect.Message

func (*NotificationsConfig) Reset

func (x *NotificationsConfig) Reset()

func (*NotificationsConfig) String

func (x *NotificationsConfig) String() string

type OllamaModelData

type OllamaModelData struct {
	Name       string              `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Model      string              `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
	ModifiedAt string              `protobuf:"bytes,3,opt,name=modified_at,json=modifiedAt,proto3" json:"modified_at,omitempty"`
	Size       int64               `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
	Digest     string              `protobuf:"bytes,5,opt,name=digest,proto3" json:"digest,omitempty"`
	Details    *OllamaModelDetails `protobuf:"bytes,6,opt,name=details,proto3" json:"details,omitempty"`
	// contains filtered or unexported fields
}

OllamaModelData represents a model in Ollama's models endpoint response

func (*OllamaModelData) Descriptor deprecated

func (*OllamaModelData) Descriptor() ([]byte, []int)

Deprecated: Use OllamaModelData.ProtoReflect.Descriptor instead.

func (*OllamaModelData) GetDetails

func (x *OllamaModelData) GetDetails() *OllamaModelDetails

func (*OllamaModelData) GetDigest

func (x *OllamaModelData) GetDigest() string

func (*OllamaModelData) GetModel

func (x *OllamaModelData) GetModel() string

func (*OllamaModelData) GetModifiedAt

func (x *OllamaModelData) GetModifiedAt() string

func (*OllamaModelData) GetName

func (x *OllamaModelData) GetName() string

func (*OllamaModelData) GetSize

func (x *OllamaModelData) GetSize() int64

func (*OllamaModelData) ProtoMessage

func (*OllamaModelData) ProtoMessage()

func (*OllamaModelData) ProtoReflect

func (x *OllamaModelData) ProtoReflect() protoreflect.Message

func (*OllamaModelData) Reset

func (x *OllamaModelData) Reset()

func (*OllamaModelData) String

func (x *OllamaModelData) String() string

type OllamaModelDetails

type OllamaModelDetails struct {
	ParentModel       string   `protobuf:"bytes,1,opt,name=parent_model,json=parentModel,proto3" json:"parent_model,omitempty"`
	Format            string   `protobuf:"bytes,2,opt,name=format,proto3" json:"format,omitempty"`
	Family            string   `protobuf:"bytes,3,opt,name=family,proto3" json:"family,omitempty"`
	Families          []string `protobuf:"bytes,4,rep,name=families,proto3" json:"families,omitempty"`
	ParameterSize     string   `protobuf:"bytes,5,opt,name=parameter_size,json=parameterSize,proto3" json:"parameter_size,omitempty"`
	QuantizationLevel string   `protobuf:"bytes,6,opt,name=quantization_level,json=quantizationLevel,proto3" json:"quantization_level,omitempty"`
	// contains filtered or unexported fields
}

OllamaModelDetails represents the details of an Ollama model

func (*OllamaModelDetails) Descriptor deprecated

func (*OllamaModelDetails) Descriptor() ([]byte, []int)

Deprecated: Use OllamaModelDetails.ProtoReflect.Descriptor instead.

func (*OllamaModelDetails) GetFamilies

func (x *OllamaModelDetails) GetFamilies() []string

func (*OllamaModelDetails) GetFamily

func (x *OllamaModelDetails) GetFamily() string

func (*OllamaModelDetails) GetFormat

func (x *OllamaModelDetails) GetFormat() string

func (*OllamaModelDetails) GetParameterSize

func (x *OllamaModelDetails) GetParameterSize() string

func (*OllamaModelDetails) GetParentModel

func (x *OllamaModelDetails) GetParentModel() string

func (*OllamaModelDetails) GetQuantizationLevel

func (x *OllamaModelDetails) GetQuantizationLevel() string

func (*OllamaModelDetails) ProtoMessage

func (*OllamaModelDetails) ProtoMessage()

func (*OllamaModelDetails) ProtoReflect

func (x *OllamaModelDetails) ProtoReflect() protoreflect.Message

func (*OllamaModelDetails) Reset

func (x *OllamaModelDetails) Reset()

func (*OllamaModelDetails) String

func (x *OllamaModelDetails) String() string

type OllamaModelsResponse

type OllamaModelsResponse struct {
	Models []*OllamaModelData `protobuf:"bytes,1,rep,name=models,proto3" json:"models,omitempty"`
	// contains filtered or unexported fields
}

OllamaModelsResponse represents the response from Ollama's models endpoint

func (*OllamaModelsResponse) Descriptor deprecated

func (*OllamaModelsResponse) Descriptor() ([]byte, []int)

Deprecated: Use OllamaModelsResponse.ProtoReflect.Descriptor instead.

func (*OllamaModelsResponse) GetModels

func (x *OllamaModelsResponse) GetModels() []*OllamaModelData

func (*OllamaModelsResponse) ProtoMessage

func (*OllamaModelsResponse) ProtoMessage()

func (*OllamaModelsResponse) ProtoReflect

func (x *OllamaModelsResponse) ProtoReflect() protoreflect.Message

func (*OllamaModelsResponse) Reset

func (x *OllamaModelsResponse) Reset()

func (*OllamaModelsResponse) String

func (x *OllamaModelsResponse) String() string

type OllamaRequest

type OllamaRequest struct {
	Model  string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
	Prompt string `protobuf:"bytes,2,opt,name=prompt,proto3" json:"prompt,omitempty"`
	Stream bool   `protobuf:"varint,3,opt,name=stream,proto3" json:"stream,omitempty"`
	// contains filtered or unexported fields
}

OllamaRequest represents the request to the Ollama API

func (*OllamaRequest) Descriptor deprecated

func (*OllamaRequest) Descriptor() ([]byte, []int)

Deprecated: Use OllamaRequest.ProtoReflect.Descriptor instead.

func (*OllamaRequest) GetModel

func (x *OllamaRequest) GetModel() string

func (*OllamaRequest) GetPrompt

func (x *OllamaRequest) GetPrompt() string

func (*OllamaRequest) GetStream

func (x *OllamaRequest) GetStream() bool

func (*OllamaRequest) ProtoMessage

func (*OllamaRequest) ProtoMessage()

func (*OllamaRequest) ProtoReflect

func (x *OllamaRequest) ProtoReflect() protoreflect.Message

func (*OllamaRequest) Reset

func (x *OllamaRequest) Reset()

func (*OllamaRequest) String

func (x *OllamaRequest) String() string

type OllamaResponse

type OllamaResponse struct {
	Model     string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
	Response  string `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"`
	CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// contains filtered or unexported fields
}

OllamaResponse represents the response from the Ollama API

func (*OllamaResponse) Descriptor deprecated

func (*OllamaResponse) Descriptor() ([]byte, []int)

Deprecated: Use OllamaResponse.ProtoReflect.Descriptor instead.

func (*OllamaResponse) GetCreatedAt

func (x *OllamaResponse) GetCreatedAt() string

func (*OllamaResponse) GetModel

func (x *OllamaResponse) GetModel() string

func (*OllamaResponse) GetResponse

func (x *OllamaResponse) GetResponse() string

func (*OllamaResponse) ProtoMessage

func (*OllamaResponse) ProtoMessage()

func (*OllamaResponse) ProtoReflect

func (x *OllamaResponse) ProtoReflect() protoreflect.Message

func (*OllamaResponse) Reset

func (x *OllamaResponse) Reset()

func (*OllamaResponse) String

func (x *OllamaResponse) String() string

type OpenAIChoice

type OpenAIChoice struct {
	Index        int32    `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	Message      *Message `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
	FinishReason string   `protobuf:"bytes,3,opt,name=finish_reason,json=finishReason,proto3" json:"finish_reason,omitempty"`
	// contains filtered or unexported fields
}

OpenAIChoice represents a choice in the OpenAI API response

func (*OpenAIChoice) Descriptor deprecated

func (*OpenAIChoice) Descriptor() ([]byte, []int)

Deprecated: Use OpenAIChoice.ProtoReflect.Descriptor instead.

func (*OpenAIChoice) GetFinishReason

func (x *OpenAIChoice) GetFinishReason() string

func (*OpenAIChoice) GetIndex

func (x *OpenAIChoice) GetIndex() int32

func (*OpenAIChoice) GetMessage

func (x *OpenAIChoice) GetMessage() *Message

func (*OpenAIChoice) ProtoMessage

func (*OpenAIChoice) ProtoMessage()

func (*OpenAIChoice) ProtoReflect

func (x *OpenAIChoice) ProtoReflect() protoreflect.Message

func (*OpenAIChoice) Reset

func (x *OpenAIChoice) Reset()

func (*OpenAIChoice) String

func (x *OpenAIChoice) String() string

type OpenAIModelData

type OpenAIModelData struct {
	Id      string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Object  string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"`
	Created int64  `protobuf:"varint,3,opt,name=created,proto3" json:"created,omitempty"`
	OwnedBy string `protobuf:"bytes,4,opt,name=owned_by,json=ownedBy,proto3" json:"owned_by,omitempty"`
	// contains filtered or unexported fields
}

OpenAIModelData represents a model in OpenAI's models endpoint response

func (*OpenAIModelData) Descriptor deprecated

func (*OpenAIModelData) Descriptor() ([]byte, []int)

Deprecated: Use OpenAIModelData.ProtoReflect.Descriptor instead.

func (*OpenAIModelData) GetCreated

func (x *OpenAIModelData) GetCreated() int64

func (*OpenAIModelData) GetId

func (x *OpenAIModelData) GetId() string

func (*OpenAIModelData) GetObject

func (x *OpenAIModelData) GetObject() string

func (*OpenAIModelData) GetOwnedBy

func (x *OpenAIModelData) GetOwnedBy() string

func (*OpenAIModelData) ProtoMessage

func (*OpenAIModelData) ProtoMessage()

func (*OpenAIModelData) ProtoReflect

func (x *OpenAIModelData) ProtoReflect() protoreflect.Message

func (*OpenAIModelData) Reset

func (x *OpenAIModelData) Reset()

func (*OpenAIModelData) String

func (x *OpenAIModelData) String() string

type OpenAIModelsResponse

type OpenAIModelsResponse struct {
	Object string             `protobuf:"bytes,1,opt,name=object,proto3" json:"object,omitempty"`
	Data   []*OpenAIModelData `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"`
	// contains filtered or unexported fields
}

OpenAIModelsResponse represents the response from OpenAI's models endpoint

func (*OpenAIModelsResponse) Descriptor deprecated

func (*OpenAIModelsResponse) Descriptor() ([]byte, []int)

Deprecated: Use OpenAIModelsResponse.ProtoReflect.Descriptor instead.

func (*OpenAIModelsResponse) GetData

func (x *OpenAIModelsResponse) GetData() []*OpenAIModelData

func (*OpenAIModelsResponse) GetObject

func (x *OpenAIModelsResponse) GetObject() string

func (*OpenAIModelsResponse) ProtoMessage

func (*OpenAIModelsResponse) ProtoMessage()

func (*OpenAIModelsResponse) ProtoReflect

func (x *OpenAIModelsResponse) ProtoReflect() protoreflect.Message

func (*OpenAIModelsResponse) Reset

func (x *OpenAIModelsResponse) Reset()

func (*OpenAIModelsResponse) String

func (x *OpenAIModelsResponse) String() string

type OpenAIRequest

type OpenAIRequest struct {
	Model       string     `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
	Messages    []*Message `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"`
	Temperature float32    `protobuf:"fixed32,3,opt,name=temperature,proto3" json:"temperature,omitempty"`
	MaxTokens   int32      `protobuf:"varint,4,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"`
	// contains filtered or unexported fields
}

OpenAIRequest represents a request to the OpenAI API

func (*OpenAIRequest) Descriptor deprecated

func (*OpenAIRequest) Descriptor() ([]byte, []int)

Deprecated: Use OpenAIRequest.ProtoReflect.Descriptor instead.

func (*OpenAIRequest) GetMaxTokens

func (x *OpenAIRequest) GetMaxTokens() int32

func (*OpenAIRequest) GetMessages

func (x *OpenAIRequest) GetMessages() []*Message

func (*OpenAIRequest) GetModel

func (x *OpenAIRequest) GetModel() string

func (*OpenAIRequest) GetTemperature

func (x *OpenAIRequest) GetTemperature() float32

func (*OpenAIRequest) ProtoMessage

func (*OpenAIRequest) ProtoMessage()

func (*OpenAIRequest) ProtoReflect

func (x *OpenAIRequest) ProtoReflect() protoreflect.Message

func (*OpenAIRequest) Reset

func (x *OpenAIRequest) Reset()

func (*OpenAIRequest) String

func (x *OpenAIRequest) String() string

type OpenAIResponse

type OpenAIResponse struct {
	Id      string          `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Object  string          `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"`
	Created int64           `protobuf:"varint,3,opt,name=created,proto3" json:"created,omitempty"`
	Model   string          `protobuf:"bytes,4,opt,name=model,proto3" json:"model,omitempty"`
	Choices []*OpenAIChoice `protobuf:"bytes,5,rep,name=choices,proto3" json:"choices,omitempty"`
	// contains filtered or unexported fields
}

OpenAIResponse represents a response from the OpenAI API

func (*OpenAIResponse) Descriptor deprecated

func (*OpenAIResponse) Descriptor() ([]byte, []int)

Deprecated: Use OpenAIResponse.ProtoReflect.Descriptor instead.

func (*OpenAIResponse) GetChoices

func (x *OpenAIResponse) GetChoices() []*OpenAIChoice

func (*OpenAIResponse) GetCreated

func (x *OpenAIResponse) GetCreated() int64

func (*OpenAIResponse) GetId

func (x *OpenAIResponse) GetId() string

func (*OpenAIResponse) GetModel

func (x *OpenAIResponse) GetModel() string

func (*OpenAIResponse) GetObject

func (x *OpenAIResponse) GetObject() string

func (*OpenAIResponse) ProtoMessage

func (*OpenAIResponse) ProtoMessage()

func (*OpenAIResponse) ProtoReflect

func (x *OpenAIResponse) ProtoReflect() protoreflect.Message

func (*OpenAIResponse) Reset

func (x *OpenAIResponse) Reset()

func (*OpenAIResponse) String

func (x *OpenAIResponse) String() string

type PollCodexLoginRequest

type PollCodexLoginRequest struct {
	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	// contains filtered or unexported fields
}

func (*PollCodexLoginRequest) Descriptor deprecated

func (*PollCodexLoginRequest) Descriptor() ([]byte, []int)

Deprecated: Use PollCodexLoginRequest.ProtoReflect.Descriptor instead.

func (*PollCodexLoginRequest) GetSessionId

func (x *PollCodexLoginRequest) GetSessionId() string

func (*PollCodexLoginRequest) ProtoMessage

func (*PollCodexLoginRequest) ProtoMessage()

func (*PollCodexLoginRequest) ProtoReflect

func (x *PollCodexLoginRequest) ProtoReflect() protoreflect.Message

func (*PollCodexLoginRequest) Reset

func (x *PollCodexLoginRequest) Reset()

func (*PollCodexLoginRequest) String

func (x *PollCodexLoginRequest) String() string

type PollCodexLoginResponse

type PollCodexLoginResponse struct {
	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	// status is one of: "pending", "approved", "expired", "error"
	Status       string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	// credential_id is set when status == "approved"
	CredentialId string `protobuf:"bytes,4,opt,name=credential_id,json=credentialId,proto3" json:"credential_id,omitempty"`
	Label        string `protobuf:"bytes,5,opt,name=label,proto3" json:"label,omitempty"`
	// contains filtered or unexported fields
}

func (*PollCodexLoginResponse) Descriptor deprecated

func (*PollCodexLoginResponse) Descriptor() ([]byte, []int)

Deprecated: Use PollCodexLoginResponse.ProtoReflect.Descriptor instead.

func (*PollCodexLoginResponse) GetCredentialId

func (x *PollCodexLoginResponse) GetCredentialId() string

func (*PollCodexLoginResponse) GetErrorMessage

func (x *PollCodexLoginResponse) GetErrorMessage() string

func (*PollCodexLoginResponse) GetLabel

func (x *PollCodexLoginResponse) GetLabel() string

func (*PollCodexLoginResponse) GetSessionId

func (x *PollCodexLoginResponse) GetSessionId() string

func (*PollCodexLoginResponse) GetStatus

func (x *PollCodexLoginResponse) GetStatus() string

func (*PollCodexLoginResponse) ProtoMessage

func (*PollCodexLoginResponse) ProtoMessage()

func (*PollCodexLoginResponse) ProtoReflect

func (x *PollCodexLoginResponse) ProtoReflect() protoreflect.Message

func (*PollCodexLoginResponse) Reset

func (x *PollCodexLoginResponse) Reset()

func (*PollCodexLoginResponse) String

func (x *PollCodexLoginResponse) String() string

type PreviewAnalysisPromptRequest

type PreviewAnalysisPromptRequest struct {
	ArticleId    string `protobuf:"bytes,1,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	ProviderType string `protobuf:"bytes,2,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	ModelName    string `protobuf:"bytes,3,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	// contains filtered or unexported fields
}

PreviewAnalysisPromptRequest is the request for the PreviewAnalysisPrompt method

func (*PreviewAnalysisPromptRequest) Descriptor deprecated

func (*PreviewAnalysisPromptRequest) Descriptor() ([]byte, []int)

Deprecated: Use PreviewAnalysisPromptRequest.ProtoReflect.Descriptor instead.

func (*PreviewAnalysisPromptRequest) GetArticleId

func (x *PreviewAnalysisPromptRequest) GetArticleId() string

func (*PreviewAnalysisPromptRequest) GetModelName

func (x *PreviewAnalysisPromptRequest) GetModelName() string

func (*PreviewAnalysisPromptRequest) GetProviderType

func (x *PreviewAnalysisPromptRequest) GetProviderType() string

func (*PreviewAnalysisPromptRequest) ProtoMessage

func (*PreviewAnalysisPromptRequest) ProtoMessage()

func (*PreviewAnalysisPromptRequest) ProtoReflect

func (*PreviewAnalysisPromptRequest) Reset

func (x *PreviewAnalysisPromptRequest) Reset()

func (*PreviewAnalysisPromptRequest) String

type PreviewAnalysisPromptResponse

type PreviewAnalysisPromptResponse struct {
	Prompt string `protobuf:"bytes,1,opt,name=prompt,proto3" json:"prompt,omitempty"`
	// contains filtered or unexported fields
}

PreviewAnalysisPromptResponse is the response for the PreviewAnalysisPrompt method

func (*PreviewAnalysisPromptResponse) Descriptor deprecated

func (*PreviewAnalysisPromptResponse) Descriptor() ([]byte, []int)

Deprecated: Use PreviewAnalysisPromptResponse.ProtoReflect.Descriptor instead.

func (*PreviewAnalysisPromptResponse) GetPrompt

func (x *PreviewAnalysisPromptResponse) GetPrompt() string

func (*PreviewAnalysisPromptResponse) ProtoMessage

func (*PreviewAnalysisPromptResponse) ProtoMessage()

func (*PreviewAnalysisPromptResponse) ProtoReflect

func (*PreviewAnalysisPromptResponse) Reset

func (x *PreviewAnalysisPromptResponse) Reset()

func (*PreviewAnalysisPromptResponse) String

type ProviderConfig

type ProviderConfig struct {
	Name           string                  `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"`
	ProviderType   string                  `protobuf:"bytes,1,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	ModelName      string                  `protobuf:"bytes,2,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	Enabled        bool                    `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
	BaseUrl        string                  `protobuf:"bytes,4,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"`
	Temperature    *float32                `protobuf:"fixed32,5,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"`
	MaxRetries     *int32                  `protobuf:"varint,6,opt,name=max_retries,json=maxRetries,proto3,oneof" json:"max_retries,omitempty"`
	TimeoutMinutes *int32                  `protobuf:"varint,7,opt,name=timeout_minutes,json=timeoutMinutes,proto3,oneof" json:"timeout_minutes,omitempty"`
	ApiKey         string                  `protobuf:"bytes,8,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"`
	Credentials    []*CodexCredentialProto `protobuf:"bytes,10,rep,name=credentials,proto3" json:"credentials,omitempty"`
	// contains filtered or unexported fields
}

ProviderConfig represents configuration for a specific LLM provider used for digest generation

func (*ProviderConfig) Descriptor deprecated

func (*ProviderConfig) Descriptor() ([]byte, []int)

Deprecated: Use ProviderConfig.ProtoReflect.Descriptor instead.

func (*ProviderConfig) GetApiKey

func (x *ProviderConfig) GetApiKey() string

func (*ProviderConfig) GetBaseUrl

func (x *ProviderConfig) GetBaseUrl() string

func (*ProviderConfig) GetCredentials

func (x *ProviderConfig) GetCredentials() []*CodexCredentialProto

func (*ProviderConfig) GetEnabled

func (x *ProviderConfig) GetEnabled() bool

func (*ProviderConfig) GetMaxRetries

func (x *ProviderConfig) GetMaxRetries() int32

func (*ProviderConfig) GetModelName

func (x *ProviderConfig) GetModelName() string

func (*ProviderConfig) GetName

func (x *ProviderConfig) GetName() string

func (*ProviderConfig) GetProviderType

func (x *ProviderConfig) GetProviderType() string

func (*ProviderConfig) GetTemperature

func (x *ProviderConfig) GetTemperature() float32

func (*ProviderConfig) GetTimeoutMinutes

func (x *ProviderConfig) GetTimeoutMinutes() int32

func (*ProviderConfig) ProtoMessage

func (*ProviderConfig) ProtoMessage()

func (*ProviderConfig) ProtoReflect

func (x *ProviderConfig) ProtoReflect() protoreflect.Message

func (*ProviderConfig) Reset

func (x *ProviderConfig) Reset()

func (*ProviderConfig) String

func (x *ProviderConfig) String() string

type QueueJob

type QueueJob struct {
	Id           string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ArticleId    string `protobuf:"bytes,2,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	ArticleTitle string `protobuf:"bytes,3,opt,name=article_title,json=articleTitle,proto3" json:"article_title,omitempty"`
	ProviderType string `protobuf:"bytes,4,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	ModelName    string `protobuf:"bytes,5,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	ProviderName string `protobuf:"bytes,6,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`
	Provider     string `protobuf:"bytes,7,opt,name=provider,proto3" json:"provider,omitempty"` // Provider override (type or profile name, auto-detected by the server)
	// contains filtered or unexported fields
}

QueueJob represents a single job in the analysis queue

func (*QueueJob) Descriptor deprecated

func (*QueueJob) Descriptor() ([]byte, []int)

Deprecated: Use QueueJob.ProtoReflect.Descriptor instead.

func (*QueueJob) GetArticleId

func (x *QueueJob) GetArticleId() string

func (*QueueJob) GetArticleTitle

func (x *QueueJob) GetArticleTitle() string

func (*QueueJob) GetId

func (x *QueueJob) GetId() string

func (*QueueJob) GetModelName

func (x *QueueJob) GetModelName() string

func (*QueueJob) GetProvider

func (x *QueueJob) GetProvider() string

func (*QueueJob) GetProviderName

func (x *QueueJob) GetProviderName() string

func (*QueueJob) GetProviderType

func (x *QueueJob) GetProviderType() string

func (*QueueJob) ProtoMessage

func (*QueueJob) ProtoMessage()

func (*QueueJob) ProtoReflect

func (x *QueueJob) ProtoReflect() protoreflect.Message

func (*QueueJob) Reset

func (x *QueueJob) Reset()

func (*QueueJob) String

func (x *QueueJob) String() string

type QueueProgressEvent

type QueueProgressEvent struct {

	// "queue_update" or "analysis_progress"
	EventType string `protobuf:"bytes,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
	// Populated when event_type = "queue_update"
	QueueStatus *GetQueueStatusResponse `protobuf:"bytes,2,opt,name=queue_status,json=queueStatus,proto3" json:"queue_status,omitempty"`
	// Populated when event_type = "analysis_progress"
	ArticleId        string                 `protobuf:"bytes,3,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	AnalysisProgress *AnalysisProgressEvent `protobuf:"bytes,4,opt,name=analysis_progress,json=analysisProgress,proto3" json:"analysis_progress,omitempty"`
	// contains filtered or unexported fields
}

QueueProgressEvent is streamed to clients for live queue and analysis updates

func (*QueueProgressEvent) Descriptor deprecated

func (*QueueProgressEvent) Descriptor() ([]byte, []int)

Deprecated: Use QueueProgressEvent.ProtoReflect.Descriptor instead.

func (*QueueProgressEvent) GetAnalysisProgress

func (x *QueueProgressEvent) GetAnalysisProgress() *AnalysisProgressEvent

func (*QueueProgressEvent) GetArticleId

func (x *QueueProgressEvent) GetArticleId() string

func (*QueueProgressEvent) GetEventType

func (x *QueueProgressEvent) GetEventType() string

func (*QueueProgressEvent) GetQueueStatus

func (x *QueueProgressEvent) GetQueueStatus() *GetQueueStatusResponse

func (*QueueProgressEvent) ProtoMessage

func (*QueueProgressEvent) ProtoMessage()

func (*QueueProgressEvent) ProtoReflect

func (x *QueueProgressEvent) ProtoReflect() protoreflect.Message

func (*QueueProgressEvent) Reset

func (x *QueueProgressEvent) Reset()

func (*QueueProgressEvent) String

func (x *QueueProgressEvent) String() string

type QueueServiceClient

type QueueServiceClient interface {
	// EnqueueArticles adds articles to the queue and auto-starts processing if idle
	EnqueueArticles(ctx context.Context, in *EnqueueArticlesRequest, opts ...grpc.CallOption) (*EnqueueArticlesResponse, error)
	// DequeueArticle removes an article from the queue
	DequeueArticle(ctx context.Context, in *DequeueArticleRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// ClearQueue removes all articles from the queue (does not stop active processing)
	ClearQueue(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// GetQueueStatus returns a snapshot of the current queue state
	GetQueueStatus(ctx context.Context, in *GetQueueStatusRequest, opts ...grpc.CallOption) (*GetQueueStatusResponse, error)
	// StartQueue resumes processing of queued articles
	StartQueue(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// StopQueue pauses queue processing after the current article finishes
	StopQueue(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// StreamQueueProgress streams live queue state changes and analysis progress events
	StreamQueueProgress(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[QueueProgressEvent], error)
}

QueueServiceClient is the client API for QueueService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

QueueService manages the server-side analysis queue

type QueueServiceServer

type QueueServiceServer interface {
	// EnqueueArticles adds articles to the queue and auto-starts processing if idle
	EnqueueArticles(context.Context, *EnqueueArticlesRequest) (*EnqueueArticlesResponse, error)
	// DequeueArticle removes an article from the queue
	DequeueArticle(context.Context, *DequeueArticleRequest) (*emptypb.Empty, error)
	// ClearQueue removes all articles from the queue (does not stop active processing)
	ClearQueue(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
	// GetQueueStatus returns a snapshot of the current queue state
	GetQueueStatus(context.Context, *GetQueueStatusRequest) (*GetQueueStatusResponse, error)
	// StartQueue resumes processing of queued articles
	StartQueue(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
	// StopQueue pauses queue processing after the current article finishes
	StopQueue(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
	// StreamQueueProgress streams live queue state changes and analysis progress events
	StreamQueueProgress(*emptypb.Empty, grpc.ServerStreamingServer[QueueProgressEvent]) error
	// contains filtered or unexported methods
}

QueueServiceServer is the server API for QueueService service. All implementations must embed UnimplementedQueueServiceServer for forward compatibility.

QueueService manages the server-side analysis queue

type QueueService_StreamQueueProgressClient

type QueueService_StreamQueueProgressClient = grpc.ServerStreamingClient[QueueProgressEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type QueueService_StreamQueueProgressServer

type QueueService_StreamQueueProgressServer = grpc.ServerStreamingServer[QueueProgressEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type ReferencedReport

type ReferencedReport struct {
	Title     string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
	Url       string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
	Publisher string `protobuf:"bytes,3,opt,name=publisher,proto3" json:"publisher,omitempty"`
	Context   string `protobuf:"bytes,4,opt,name=context,proto3" json:"context,omitempty"`
	// contains filtered or unexported fields
}

ArticleAnalysis represents an analysis result from an LLM provider for an article

func (*ReferencedReport) Descriptor deprecated

func (*ReferencedReport) Descriptor() ([]byte, []int)

Deprecated: Use ReferencedReport.ProtoReflect.Descriptor instead.

func (*ReferencedReport) GetContext

func (x *ReferencedReport) GetContext() string

func (*ReferencedReport) GetPublisher

func (x *ReferencedReport) GetPublisher() string

func (*ReferencedReport) GetTitle

func (x *ReferencedReport) GetTitle() string

func (*ReferencedReport) GetUrl

func (x *ReferencedReport) GetUrl() string

func (*ReferencedReport) ProtoMessage

func (*ReferencedReport) ProtoMessage()

func (*ReferencedReport) ProtoReflect

func (x *ReferencedReport) ProtoReflect() protoreflect.Message

func (*ReferencedReport) Reset

func (x *ReferencedReport) Reset()

func (*ReferencedReport) String

func (x *ReferencedReport) String() string

type RefreshAllFeedsEvent

type RefreshAllFeedsEvent struct {
	Result    *RefreshFeedResponse `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
	Completed int32                `protobuf:"varint,2,opt,name=completed,proto3" json:"completed,omitempty"` // feeds completed so far (COMPLETED events only)
	Total     int32                `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"`         // total feeds being refreshed
	EventType RefreshEventType     `protobuf:"varint,4,opt,name=event_type,json=eventType,proto3,enum=downlink.RefreshEventType" json:"event_type,omitempty"`
	// contains filtered or unexported fields
}

RefreshAllFeedsEvent is streamed once per feed on start and on completion

func (*RefreshAllFeedsEvent) Descriptor deprecated

func (*RefreshAllFeedsEvent) Descriptor() ([]byte, []int)

Deprecated: Use RefreshAllFeedsEvent.ProtoReflect.Descriptor instead.

func (*RefreshAllFeedsEvent) GetCompleted

func (x *RefreshAllFeedsEvent) GetCompleted() int32

func (*RefreshAllFeedsEvent) GetEventType

func (x *RefreshAllFeedsEvent) GetEventType() RefreshEventType

func (*RefreshAllFeedsEvent) GetResult

func (x *RefreshAllFeedsEvent) GetResult() *RefreshFeedResponse

func (*RefreshAllFeedsEvent) GetTotal

func (x *RefreshAllFeedsEvent) GetTotal() int32

func (*RefreshAllFeedsEvent) ProtoMessage

func (*RefreshAllFeedsEvent) ProtoMessage()

func (*RefreshAllFeedsEvent) ProtoReflect

func (x *RefreshAllFeedsEvent) ProtoReflect() protoreflect.Message

func (*RefreshAllFeedsEvent) Reset

func (x *RefreshAllFeedsEvent) Reset()

func (*RefreshAllFeedsEvent) String

func (x *RefreshAllFeedsEvent) String() string

type RefreshAllFeedsRequest

type RefreshAllFeedsRequest struct {
	// contains filtered or unexported fields
}

RefreshAllFeedsRequest is the request for the RefreshAllFeeds method

func (*RefreshAllFeedsRequest) Descriptor deprecated

func (*RefreshAllFeedsRequest) Descriptor() ([]byte, []int)

Deprecated: Use RefreshAllFeedsRequest.ProtoReflect.Descriptor instead.

func (*RefreshAllFeedsRequest) ProtoMessage

func (*RefreshAllFeedsRequest) ProtoMessage()

func (*RefreshAllFeedsRequest) ProtoReflect

func (x *RefreshAllFeedsRequest) ProtoReflect() protoreflect.Message

func (*RefreshAllFeedsRequest) Reset

func (x *RefreshAllFeedsRequest) Reset()

func (*RefreshAllFeedsRequest) String

func (x *RefreshAllFeedsRequest) String() string

type RefreshEventType

type RefreshEventType int32
const (
	RefreshEventType_STARTED   RefreshEventType = 0 // feed has been queued and is now in progress
	RefreshEventType_COMPLETED RefreshEventType = 1 // feed finished (result fields are populated)
)

func (RefreshEventType) Descriptor

func (RefreshEventType) Enum

func (RefreshEventType) EnumDescriptor deprecated

func (RefreshEventType) EnumDescriptor() ([]byte, []int)

Deprecated: Use RefreshEventType.Descriptor instead.

func (RefreshEventType) Number

func (RefreshEventType) String

func (x RefreshEventType) String() string

func (RefreshEventType) Type

type RefreshFeedRequest

type RefreshFeedRequest struct {
	FeedId    string                 `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
	From      *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"`                 // Optional: start of time window
	To        *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"`                     // Optional: end of time window
	Overwrite bool                   `protobuf:"varint,4,opt,name=overwrite,proto3" json:"overwrite,omitempty"`      // Optional: overwrite existing articles
	Restore   bool                   `protobuf:"varint,5,opt,name=restore,proto3" json:"restore,omitempty"`          // Optional: overwrite only articles with no content
	LastN     int32                  `protobuf:"varint,6,opt,name=last_n,json=lastN,proto3" json:"last_n,omitempty"` // Optional: keep only the N most-recently-published articles
	Diagnose  bool                   `protobuf:"varint,7,opt,name=diagnose,proto3" json:"diagnose,omitempty"`        // Optional: read-only diagnose (fetch+parse only, no storage), returns diagnosis
	// contains filtered or unexported fields
}

RefreshFeedRequest is the request for the RefreshFeed method

func (*RefreshFeedRequest) Descriptor deprecated

func (*RefreshFeedRequest) Descriptor() ([]byte, []int)

Deprecated: Use RefreshFeedRequest.ProtoReflect.Descriptor instead.

func (*RefreshFeedRequest) GetDiagnose added in v0.2.0

func (x *RefreshFeedRequest) GetDiagnose() bool

func (*RefreshFeedRequest) GetFeedId

func (x *RefreshFeedRequest) GetFeedId() string

func (*RefreshFeedRequest) GetFrom

func (*RefreshFeedRequest) GetLastN

func (x *RefreshFeedRequest) GetLastN() int32

func (*RefreshFeedRequest) GetOverwrite

func (x *RefreshFeedRequest) GetOverwrite() bool

func (*RefreshFeedRequest) GetRestore

func (x *RefreshFeedRequest) GetRestore() bool

func (*RefreshFeedRequest) GetTo

func (*RefreshFeedRequest) ProtoMessage

func (*RefreshFeedRequest) ProtoMessage()

func (*RefreshFeedRequest) ProtoReflect

func (x *RefreshFeedRequest) ProtoReflect() protoreflect.Message

func (*RefreshFeedRequest) Reset

func (x *RefreshFeedRequest) Reset()

func (*RefreshFeedRequest) String

func (x *RefreshFeedRequest) String() string

type RefreshFeedResponse

type RefreshFeedResponse struct {
	FeedId       string         `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
	FeedTitle    string         `protobuf:"bytes,2,opt,name=feed_title,json=feedTitle,proto3" json:"feed_title,omitempty"`
	TotalFetched int32          `protobuf:"varint,3,opt,name=total_fetched,json=totalFetched,proto3" json:"total_fetched,omitempty"`
	Stored       int32          `protobuf:"varint,4,opt,name=stored,proto3" json:"stored,omitempty"`
	Skipped      int32          `protobuf:"varint,5,opt,name=skipped,proto3" json:"skipped,omitempty"`
	Errors       []string       `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors,omitempty"`
	Diagnosis    *FeedDiagnosis `protobuf:"bytes,7,opt,name=diagnosis,proto3" json:"diagnosis,omitempty"` // populated only when the request set diagnose=true
	// contains filtered or unexported fields
}

RefreshFeedResponse carries per-feed stats returned after a refresh

func (*RefreshFeedResponse) Descriptor deprecated

func (*RefreshFeedResponse) Descriptor() ([]byte, []int)

Deprecated: Use RefreshFeedResponse.ProtoReflect.Descriptor instead.

func (*RefreshFeedResponse) GetDiagnosis added in v0.2.0

func (x *RefreshFeedResponse) GetDiagnosis() *FeedDiagnosis

func (*RefreshFeedResponse) GetErrors

func (x *RefreshFeedResponse) GetErrors() []string

func (*RefreshFeedResponse) GetFeedId

func (x *RefreshFeedResponse) GetFeedId() string

func (*RefreshFeedResponse) GetFeedTitle

func (x *RefreshFeedResponse) GetFeedTitle() string

func (*RefreshFeedResponse) GetSkipped

func (x *RefreshFeedResponse) GetSkipped() int32

func (*RefreshFeedResponse) GetStored

func (x *RefreshFeedResponse) GetStored() int32

func (*RefreshFeedResponse) GetTotalFetched

func (x *RefreshFeedResponse) GetTotalFetched() int32

func (*RefreshFeedResponse) ProtoMessage

func (*RefreshFeedResponse) ProtoMessage()

func (*RefreshFeedResponse) ProtoReflect

func (x *RefreshFeedResponse) ProtoReflect() protoreflect.Message

func (*RefreshFeedResponse) Reset

func (x *RefreshFeedResponse) Reset()

func (*RefreshFeedResponse) String

func (x *RefreshFeedResponse) String() string

type RegisterFeedRequest

type RegisterFeedRequest struct {
	FeedConfig *FeedConfig `protobuf:"bytes,1,opt,name=feed_config,json=feedConfig,proto3" json:"feed_config,omitempty"`
	// contains filtered or unexported fields
}

RegisterFeedRequest is the request for the RegisterFeed method

func (*RegisterFeedRequest) Descriptor deprecated

func (*RegisterFeedRequest) Descriptor() ([]byte, []int)

Deprecated: Use RegisterFeedRequest.ProtoReflect.Descriptor instead.

func (*RegisterFeedRequest) GetFeedConfig

func (x *RegisterFeedRequest) GetFeedConfig() *FeedConfig

func (*RegisterFeedRequest) ProtoMessage

func (*RegisterFeedRequest) ProtoMessage()

func (*RegisterFeedRequest) ProtoReflect

func (x *RegisterFeedRequest) ProtoReflect() protoreflect.Message

func (*RegisterFeedRequest) Reset

func (x *RegisterFeedRequest) Reset()

func (*RegisterFeedRequest) String

func (x *RegisterFeedRequest) String() string

type RelatedArticle

type RelatedArticle struct {
	ArticleId        string  `protobuf:"bytes,1,opt,name=article_id,json=articleId,proto3" json:"article_id,omitempty"`
	RelatedArticleId string  `protobuf:"bytes,2,opt,name=related_article_id,json=relatedArticleId,proto3" json:"related_article_id,omitempty"`
	RelationType     string  `protobuf:"bytes,3,opt,name=relation_type,json=relationType,proto3" json:"relation_type,omitempty"`
	SimilarityScore  float64 `protobuf:"fixed64,4,opt,name=similarity_score,json=similarityScore,proto3" json:"similarity_score,omitempty"`
	// contains filtered or unexported fields
}

RelatedArticle represents a relationship between two articles

func (*RelatedArticle) Descriptor deprecated

func (*RelatedArticle) Descriptor() ([]byte, []int)

Deprecated: Use RelatedArticle.ProtoReflect.Descriptor instead.

func (*RelatedArticle) GetArticleId

func (x *RelatedArticle) GetArticleId() string

func (*RelatedArticle) GetRelatedArticleId

func (x *RelatedArticle) GetRelatedArticleId() string

func (*RelatedArticle) GetRelationType

func (x *RelatedArticle) GetRelationType() string

func (*RelatedArticle) GetSimilarityScore

func (x *RelatedArticle) GetSimilarityScore() float64

func (*RelatedArticle) ProtoMessage

func (*RelatedArticle) ProtoMessage()

func (*RelatedArticle) ProtoReflect

func (x *RelatedArticle) ProtoReflect() protoreflect.Message

func (*RelatedArticle) Reset

func (x *RelatedArticle) Reset()

func (*RelatedArticle) String

func (x *RelatedArticle) String() string

type RemoveCodexCredentialRequest

type RemoveCodexCredentialRequest struct {
	ProviderName string `protobuf:"bytes,1,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`
	CredentialId string `protobuf:"bytes,2,opt,name=credential_id,json=credentialId,proto3" json:"credential_id,omitempty"`
	// contains filtered or unexported fields
}

func (*RemoveCodexCredentialRequest) Descriptor deprecated

func (*RemoveCodexCredentialRequest) Descriptor() ([]byte, []int)

Deprecated: Use RemoveCodexCredentialRequest.ProtoReflect.Descriptor instead.

func (*RemoveCodexCredentialRequest) GetCredentialId

func (x *RemoveCodexCredentialRequest) GetCredentialId() string

func (*RemoveCodexCredentialRequest) GetProviderName

func (x *RemoveCodexCredentialRequest) GetProviderName() string

func (*RemoveCodexCredentialRequest) ProtoMessage

func (*RemoveCodexCredentialRequest) ProtoMessage()

func (*RemoveCodexCredentialRequest) ProtoReflect

func (*RemoveCodexCredentialRequest) Reset

func (x *RemoveCodexCredentialRequest) Reset()

func (*RemoveCodexCredentialRequest) String

type RemoveCodexCredentialResponse

type RemoveCodexCredentialResponse struct {
	Removed bool `protobuf:"varint,1,opt,name=removed,proto3" json:"removed,omitempty"`
	// contains filtered or unexported fields
}

func (*RemoveCodexCredentialResponse) Descriptor deprecated

func (*RemoveCodexCredentialResponse) Descriptor() ([]byte, []int)

Deprecated: Use RemoveCodexCredentialResponse.ProtoReflect.Descriptor instead.

func (*RemoveCodexCredentialResponse) GetRemoved

func (x *RemoveCodexCredentialResponse) GetRemoved() bool

func (*RemoveCodexCredentialResponse) ProtoMessage

func (*RemoveCodexCredentialResponse) ProtoMessage()

func (*RemoveCodexCredentialResponse) ProtoReflect

func (*RemoveCodexCredentialResponse) Reset

func (x *RemoveCodexCredentialResponse) Reset()

func (*RemoveCodexCredentialResponse) String

type ResolveLLMRequest added in v0.2.0

type ResolveLLMRequest struct {
	Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` // provider type or config profile name; empty = default
	Model    string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`       // model override; empty = provider default
	// contains filtered or unexported fields
}

ResolveLLMRequest carries the user-facing provider/model selection to resolve.

func (*ResolveLLMRequest) Descriptor deprecated added in v0.2.0

func (*ResolveLLMRequest) Descriptor() ([]byte, []int)

Deprecated: Use ResolveLLMRequest.ProtoReflect.Descriptor instead.

func (*ResolveLLMRequest) GetModel added in v0.2.0

func (x *ResolveLLMRequest) GetModel() string

func (*ResolveLLMRequest) GetProvider added in v0.2.0

func (x *ResolveLLMRequest) GetProvider() string

func (*ResolveLLMRequest) ProtoMessage added in v0.2.0

func (*ResolveLLMRequest) ProtoMessage()

func (*ResolveLLMRequest) ProtoReflect added in v0.2.0

func (x *ResolveLLMRequest) ProtoReflect() protoreflect.Message

func (*ResolveLLMRequest) Reset added in v0.2.0

func (x *ResolveLLMRequest) Reset()

func (*ResolveLLMRequest) String added in v0.2.0

func (x *ResolveLLMRequest) String() string

type ResolveLLMResponse added in v0.2.0

type ResolveLLMResponse struct {
	ProviderType string `protobuf:"bytes,1,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	ModelName    string `protobuf:"bytes,2,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	// contains filtered or unexported fields
}

ResolveLLMResponse reports the concrete provider type and model that resolution picked.

func (*ResolveLLMResponse) Descriptor deprecated added in v0.2.0

func (*ResolveLLMResponse) Descriptor() ([]byte, []int)

Deprecated: Use ResolveLLMResponse.ProtoReflect.Descriptor instead.

func (*ResolveLLMResponse) GetModelName added in v0.2.0

func (x *ResolveLLMResponse) GetModelName() string

func (*ResolveLLMResponse) GetProviderType added in v0.2.0

func (x *ResolveLLMResponse) GetProviderType() string

func (*ResolveLLMResponse) ProtoMessage added in v0.2.0

func (*ResolveLLMResponse) ProtoMessage()

func (*ResolveLLMResponse) ProtoReflect added in v0.2.0

func (x *ResolveLLMResponse) ProtoReflect() protoreflect.Message

func (*ResolveLLMResponse) Reset added in v0.2.0

func (x *ResolveLLMResponse) Reset()

func (*ResolveLLMResponse) String added in v0.2.0

func (x *ResolveLLMResponse) String() string

type SaveConfigRequest

type SaveConfigRequest struct {
	Config *ServerConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	// contains filtered or unexported fields
}

SaveConfigRequest represents a request to update the application configuration

func (*SaveConfigRequest) Descriptor deprecated

func (*SaveConfigRequest) Descriptor() ([]byte, []int)

Deprecated: Use SaveConfigRequest.ProtoReflect.Descriptor instead.

func (*SaveConfigRequest) GetConfig

func (x *SaveConfigRequest) GetConfig() *ServerConfig

func (*SaveConfigRequest) ProtoMessage

func (*SaveConfigRequest) ProtoMessage()

func (*SaveConfigRequest) ProtoReflect

func (x *SaveConfigRequest) ProtoReflect() protoreflect.Message

func (*SaveConfigRequest) Reset

func (x *SaveConfigRequest) Reset()

func (*SaveConfigRequest) String

func (x *SaveConfigRequest) String() string

type SaveLLMProvidersRequest

type SaveLLMProvidersRequest struct {
	Providers []*ProviderConfig `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"`
	// contains filtered or unexported fields
}

SaveLLMProvidersRequest is the request for the SaveLLMProviders method

func (*SaveLLMProvidersRequest) Descriptor deprecated

func (*SaveLLMProvidersRequest) Descriptor() ([]byte, []int)

Deprecated: Use SaveLLMProvidersRequest.ProtoReflect.Descriptor instead.

func (*SaveLLMProvidersRequest) GetProviders

func (x *SaveLLMProvidersRequest) GetProviders() []*ProviderConfig

func (*SaveLLMProvidersRequest) ProtoMessage

func (*SaveLLMProvidersRequest) ProtoMessage()

func (*SaveLLMProvidersRequest) ProtoReflect

func (x *SaveLLMProvidersRequest) ProtoReflect() protoreflect.Message

func (*SaveLLMProvidersRequest) Reset

func (x *SaveLLMProvidersRequest) Reset()

func (*SaveLLMProvidersRequest) String

func (x *SaveLLMProvidersRequest) String() string

type ScoreDimensions

type ScoreDimensions struct {
	Specificity   int32 `protobuf:"varint,1,opt,name=specificity,proto3" json:"specificity,omitempty"`
	Severity      int32 `protobuf:"varint,2,opt,name=severity,proto3" json:"severity,omitempty"`
	Breadth       int32 `protobuf:"varint,3,opt,name=breadth,proto3" json:"breadth,omitempty"`
	Novelty       int32 `protobuf:"varint,4,opt,name=novelty,proto3" json:"novelty,omitempty"`
	Actionability int32 `protobuf:"varint,5,opt,name=actionability,proto3" json:"actionability,omitempty"`
	Credibility   int32 `protobuf:"varint,6,opt,name=credibility,proto3" json:"credibility,omitempty"`
	IsAggregator  bool  `protobuf:"varint,7,opt,name=is_aggregator,json=isAggregator,proto3" json:"is_aggregator,omitempty"`
	// contains filtered or unexported fields
}

ScoreDimensions are the rubric sub-scores (0-4 each) the importance score is computed from. See pkg/scoring.

func (*ScoreDimensions) Descriptor deprecated

func (*ScoreDimensions) Descriptor() ([]byte, []int)

Deprecated: Use ScoreDimensions.ProtoReflect.Descriptor instead.

func (*ScoreDimensions) GetActionability

func (x *ScoreDimensions) GetActionability() int32

func (*ScoreDimensions) GetBreadth

func (x *ScoreDimensions) GetBreadth() int32

func (*ScoreDimensions) GetCredibility

func (x *ScoreDimensions) GetCredibility() int32

func (*ScoreDimensions) GetIsAggregator

func (x *ScoreDimensions) GetIsAggregator() bool

func (*ScoreDimensions) GetNovelty

func (x *ScoreDimensions) GetNovelty() int32

func (*ScoreDimensions) GetSeverity

func (x *ScoreDimensions) GetSeverity() int32

func (*ScoreDimensions) GetSpecificity

func (x *ScoreDimensions) GetSpecificity() int32

func (*ScoreDimensions) ProtoMessage

func (*ScoreDimensions) ProtoMessage()

func (*ScoreDimensions) ProtoReflect

func (x *ScoreDimensions) ProtoReflect() protoreflect.Message

func (*ScoreDimensions) Reset

func (x *ScoreDimensions) Reset()

func (*ScoreDimensions) String

func (x *ScoreDimensions) String() string

type Selectors

type Selectors struct {
	Article   string `protobuf:"bytes,1,opt,name=article,proto3" json:"article,omitempty"`
	Cutoff    string `protobuf:"bytes,2,opt,name=cutoff,proto3" json:"cutoff,omitempty"`
	Blacklist string `protobuf:"bytes,3,opt,name=blacklist,proto3" json:"blacklist,omitempty"`
	// contains filtered or unexported fields
}

Selectors defines CSS selectors for content extraction

func (*Selectors) Descriptor deprecated

func (*Selectors) Descriptor() ([]byte, []int)

Deprecated: Use Selectors.ProtoReflect.Descriptor instead.

func (*Selectors) GetArticle

func (x *Selectors) GetArticle() string

func (*Selectors) GetBlacklist

func (x *Selectors) GetBlacklist() string

func (*Selectors) GetCutoff

func (x *Selectors) GetCutoff() string

func (*Selectors) ProtoMessage

func (*Selectors) ProtoMessage()

func (*Selectors) ProtoReflect

func (x *Selectors) ProtoReflect() protoreflect.Message

func (*Selectors) Reset

func (x *Selectors) Reset()

func (*Selectors) String

func (x *Selectors) String() string

type ServerConfig

type ServerConfig struct {
	Feeds            []*FeedConfig        `protobuf:"bytes,1,rep,name=feeds,proto3" json:"feeds,omitempty"`
	DbPath           string               `protobuf:"bytes,2,opt,name=db_path,json=dbPath,proto3" json:"db_path,omitempty"`
	Providers        []*ProviderConfig    `protobuf:"bytes,3,rep,name=providers,proto3" json:"providers,omitempty"`
	Analysis         *AnalysisConfig      `protobuf:"bytes,4,opt,name=analysis,proto3" json:"analysis,omitempty"`
	DefaultSelectors *Selectors           `protobuf:"bytes,5,opt,name=default_selectors,json=defaultSelectors,proto3" json:"default_selectors,omitempty"`
	Notifications    *NotificationsConfig `protobuf:"bytes,6,opt,name=notifications,proto3" json:"notifications,omitempty"`
	// contains filtered or unexported fields
}

ServerConfig represents application configuration

func (*ServerConfig) Descriptor deprecated

func (*ServerConfig) Descriptor() ([]byte, []int)

Deprecated: Use ServerConfig.ProtoReflect.Descriptor instead.

func (*ServerConfig) GetAnalysis

func (x *ServerConfig) GetAnalysis() *AnalysisConfig

func (*ServerConfig) GetDbPath

func (x *ServerConfig) GetDbPath() string

func (*ServerConfig) GetDefaultSelectors

func (x *ServerConfig) GetDefaultSelectors() *Selectors

func (*ServerConfig) GetFeeds

func (x *ServerConfig) GetFeeds() []*FeedConfig

func (*ServerConfig) GetNotifications

func (x *ServerConfig) GetNotifications() *NotificationsConfig

func (*ServerConfig) GetProviders

func (x *ServerConfig) GetProviders() []*ProviderConfig

func (*ServerConfig) ProtoMessage

func (*ServerConfig) ProtoMessage()

func (*ServerConfig) ProtoReflect

func (x *ServerConfig) ProtoReflect() protoreflect.Message

func (*ServerConfig) Reset

func (x *ServerConfig) Reset()

func (*ServerConfig) String

func (x *ServerConfig) String() string

type ServerConfigServiceClient

type ServerConfigServiceClient interface {
	// GetConfig returns the current application configuration
	GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*GetConfigResponse, error)
	// SaveConfig updates the application configuration
	SaveConfig(ctx context.Context, in *SaveConfigRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// UpdateAnalysisConfig updates the analysis configuration
	UpdateAnalysisConfig(ctx context.Context, in *UpdateAnalysisConfigRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}

ServerConfigServiceClient is the client API for ServerConfigService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

ServerConfigService provides methods for working with application configuration

type ServerConfigServiceServer

type ServerConfigServiceServer interface {
	// GetConfig returns the current application configuration
	GetConfig(context.Context, *GetConfigRequest) (*GetConfigResponse, error)
	// SaveConfig updates the application configuration
	SaveConfig(context.Context, *SaveConfigRequest) (*emptypb.Empty, error)
	// UpdateAnalysisConfig updates the analysis configuration
	UpdateAnalysisConfig(context.Context, *UpdateAnalysisConfigRequest) (*emptypb.Empty, error)
	// contains filtered or unexported methods
}

ServerConfigServiceServer is the server API for ServerConfigService service. All implementations must embed UnimplementedServerConfigServiceServer for forward compatibility.

ServerConfigService provides methods for working with application configuration

type SetCodexCredentialPriorityRequest

type SetCodexCredentialPriorityRequest struct {
	ProviderName string `protobuf:"bytes,1,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`
	CredentialId string `protobuf:"bytes,2,opt,name=credential_id,json=credentialId,proto3" json:"credential_id,omitempty"`
	Priority     int32  `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"`
	// contains filtered or unexported fields
}

func (*SetCodexCredentialPriorityRequest) Descriptor deprecated

func (*SetCodexCredentialPriorityRequest) Descriptor() ([]byte, []int)

Deprecated: Use SetCodexCredentialPriorityRequest.ProtoReflect.Descriptor instead.

func (*SetCodexCredentialPriorityRequest) GetCredentialId

func (x *SetCodexCredentialPriorityRequest) GetCredentialId() string

func (*SetCodexCredentialPriorityRequest) GetPriority

func (x *SetCodexCredentialPriorityRequest) GetPriority() int32

func (*SetCodexCredentialPriorityRequest) GetProviderName

func (x *SetCodexCredentialPriorityRequest) GetProviderName() string

func (*SetCodexCredentialPriorityRequest) ProtoMessage

func (*SetCodexCredentialPriorityRequest) ProtoMessage()

func (*SetCodexCredentialPriorityRequest) ProtoReflect

func (*SetCodexCredentialPriorityRequest) Reset

func (*SetCodexCredentialPriorityRequest) String

type SetCodexCredentialPriorityResponse

type SetCodexCredentialPriorityResponse struct {
	Updated bool `protobuf:"varint,1,opt,name=updated,proto3" json:"updated,omitempty"`
	// contains filtered or unexported fields
}

func (*SetCodexCredentialPriorityResponse) Descriptor deprecated

func (*SetCodexCredentialPriorityResponse) Descriptor() ([]byte, []int)

Deprecated: Use SetCodexCredentialPriorityResponse.ProtoReflect.Descriptor instead.

func (*SetCodexCredentialPriorityResponse) GetUpdated

func (x *SetCodexCredentialPriorityResponse) GetUpdated() bool

func (*SetCodexCredentialPriorityResponse) ProtoMessage

func (*SetCodexCredentialPriorityResponse) ProtoMessage()

func (*SetCodexCredentialPriorityResponse) ProtoReflect

func (*SetCodexCredentialPriorityResponse) Reset

func (*SetCodexCredentialPriorityResponse) String

type StartClaudeLoginRequest added in v0.2.0

type StartClaudeLoginRequest struct {

	// provider_name is the name of the claude-code provider config entry.
	// If it doesn't exist in config.json, it will be created on completion.
	ProviderName string `protobuf:"bytes,1,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`
	// model_name is only used when auto-creating the provider entry.
	ModelName string `protobuf:"bytes,2,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	// contains filtered or unexported fields
}

func (*StartClaudeLoginRequest) Descriptor deprecated added in v0.2.0

func (*StartClaudeLoginRequest) Descriptor() ([]byte, []int)

Deprecated: Use StartClaudeLoginRequest.ProtoReflect.Descriptor instead.

func (*StartClaudeLoginRequest) GetModelName added in v0.2.0

func (x *StartClaudeLoginRequest) GetModelName() string

func (*StartClaudeLoginRequest) GetProviderName added in v0.2.0

func (x *StartClaudeLoginRequest) GetProviderName() string

func (*StartClaudeLoginRequest) ProtoMessage added in v0.2.0

func (*StartClaudeLoginRequest) ProtoMessage()

func (*StartClaudeLoginRequest) ProtoReflect added in v0.2.0

func (x *StartClaudeLoginRequest) ProtoReflect() protoreflect.Message

func (*StartClaudeLoginRequest) Reset added in v0.2.0

func (x *StartClaudeLoginRequest) Reset()

func (*StartClaudeLoginRequest) String added in v0.2.0

func (x *StartClaudeLoginRequest) String() string

type StartClaudeLoginResponse added in v0.2.0

type StartClaudeLoginResponse struct {
	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	// authorize_url is the URL the user opens in a browser to authorize.
	AuthorizeUrl string `protobuf:"bytes,2,opt,name=authorize_url,json=authorizeUrl,proto3" json:"authorize_url,omitempty"`
	// contains filtered or unexported fields
}

func (*StartClaudeLoginResponse) Descriptor deprecated added in v0.2.0

func (*StartClaudeLoginResponse) Descriptor() ([]byte, []int)

Deprecated: Use StartClaudeLoginResponse.ProtoReflect.Descriptor instead.

func (*StartClaudeLoginResponse) GetAuthorizeUrl added in v0.2.0

func (x *StartClaudeLoginResponse) GetAuthorizeUrl() string

func (*StartClaudeLoginResponse) GetSessionId added in v0.2.0

func (x *StartClaudeLoginResponse) GetSessionId() string

func (*StartClaudeLoginResponse) ProtoMessage added in v0.2.0

func (*StartClaudeLoginResponse) ProtoMessage()

func (*StartClaudeLoginResponse) ProtoReflect added in v0.2.0

func (x *StartClaudeLoginResponse) ProtoReflect() protoreflect.Message

func (*StartClaudeLoginResponse) Reset added in v0.2.0

func (x *StartClaudeLoginResponse) Reset()

func (*StartClaudeLoginResponse) String added in v0.2.0

func (x *StartClaudeLoginResponse) String() string

type StartCodexLoginRequest

type StartCodexLoginRequest struct {

	// provider_name is the name of the openai-codex provider config entry.
	// If it doesn't exist in config.json, it will be created.
	ProviderName string `protobuf:"bytes,1,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`
	// model_name is only used when auto-creating the provider entry.
	ModelName string `protobuf:"bytes,2,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
	// contains filtered or unexported fields
}

func (*StartCodexLoginRequest) Descriptor deprecated

func (*StartCodexLoginRequest) Descriptor() ([]byte, []int)

Deprecated: Use StartCodexLoginRequest.ProtoReflect.Descriptor instead.

func (*StartCodexLoginRequest) GetModelName

func (x *StartCodexLoginRequest) GetModelName() string

func (*StartCodexLoginRequest) GetProviderName

func (x *StartCodexLoginRequest) GetProviderName() string

func (*StartCodexLoginRequest) ProtoMessage

func (*StartCodexLoginRequest) ProtoMessage()

func (*StartCodexLoginRequest) ProtoReflect

func (x *StartCodexLoginRequest) ProtoReflect() protoreflect.Message

func (*StartCodexLoginRequest) Reset

func (x *StartCodexLoginRequest) Reset()

func (*StartCodexLoginRequest) String

func (x *StartCodexLoginRequest) String() string

type StartCodexLoginResponse

type StartCodexLoginResponse struct {
	SessionId       string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	UserCode        string `protobuf:"bytes,2,opt,name=user_code,json=userCode,proto3" json:"user_code,omitempty"`
	VerificationUrl string `protobuf:"bytes,3,opt,name=verification_url,json=verificationUrl,proto3" json:"verification_url,omitempty"`
	ExpiresIn       int32  `protobuf:"varint,4,opt,name=expires_in,json=expiresIn,proto3" json:"expires_in,omitempty"`
	PollInterval    int32  `protobuf:"varint,5,opt,name=poll_interval,json=pollInterval,proto3" json:"poll_interval,omitempty"`
	// contains filtered or unexported fields
}

func (*StartCodexLoginResponse) Descriptor deprecated

func (*StartCodexLoginResponse) Descriptor() ([]byte, []int)

Deprecated: Use StartCodexLoginResponse.ProtoReflect.Descriptor instead.

func (*StartCodexLoginResponse) GetExpiresIn

func (x *StartCodexLoginResponse) GetExpiresIn() int32

func (*StartCodexLoginResponse) GetPollInterval

func (x *StartCodexLoginResponse) GetPollInterval() int32

func (*StartCodexLoginResponse) GetSessionId

func (x *StartCodexLoginResponse) GetSessionId() string

func (*StartCodexLoginResponse) GetUserCode

func (x *StartCodexLoginResponse) GetUserCode() string

func (*StartCodexLoginResponse) GetVerificationUrl

func (x *StartCodexLoginResponse) GetVerificationUrl() string

func (*StartCodexLoginResponse) ProtoMessage

func (*StartCodexLoginResponse) ProtoMessage()

func (*StartCodexLoginResponse) ProtoReflect

func (x *StartCodexLoginResponse) ProtoReflect() protoreflect.Message

func (*StartCodexLoginResponse) Reset

func (x *StartCodexLoginResponse) Reset()

func (*StartCodexLoginResponse) String

func (x *StartCodexLoginResponse) String() string

type Tag

type Tag struct {
	Id       string     `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name     string     `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Color    string     `protobuf:"bytes,3,opt,name=color,proto3" json:"color,omitempty"`
	UseCount int32      `protobuf:"varint,4,opt,name=use_count,json=useCount,proto3" json:"use_count,omitempty"`
	Articles []*Article `protobuf:"bytes,5,rep,name=articles,proto3" json:"articles,omitempty"`
	// contains filtered or unexported fields
}

Tag represents an article tag

func (*Tag) Descriptor deprecated

func (*Tag) Descriptor() ([]byte, []int)

Deprecated: Use Tag.ProtoReflect.Descriptor instead.

func (*Tag) GetArticles

func (x *Tag) GetArticles() []*Article

func (*Tag) GetColor

func (x *Tag) GetColor() string

func (*Tag) GetId

func (x *Tag) GetId() string

func (*Tag) GetName

func (x *Tag) GetName() string

func (*Tag) GetUseCount

func (x *Tag) GetUseCount() int32

func (*Tag) ProtoMessage

func (*Tag) ProtoMessage()

func (*Tag) ProtoReflect

func (x *Tag) ProtoReflect() protoreflect.Message

func (*Tag) Reset

func (x *Tag) Reset()

func (*Tag) String

func (x *Tag) String() string

type UnimplementedAnalysisServiceServer

type UnimplementedAnalysisServiceServer struct{}

UnimplementedAnalysisServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedAnalysisServiceServer) GetAnalysis

type UnimplementedArticleServiceServer

type UnimplementedArticleServiceServer struct{}

UnimplementedArticleServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedArticleServiceServer) GetArticle

func (UnimplementedArticleServiceServer) GetArticleCounts

func (UnimplementedArticleServiceServer) ListArticles

func (UnimplementedArticleServiceServer) MarkFeedArticlesRead

func (UnimplementedArticleServiceServer) UpdateArticle

type UnimplementedCategoriesServiceServer

type UnimplementedCategoriesServiceServer struct{}

UnimplementedCategoriesServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedCategoriesServiceServer) GetOrCreateCategory

type UnimplementedCredsServiceServer added in v0.3.0

type UnimplementedCredsServiceServer struct{}

UnimplementedCredsServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedCredsServiceServer) CompleteClaudeLogin added in v0.3.0

func (UnimplementedCredsServiceServer) ListCodexCredentials added in v0.3.0

func (UnimplementedCredsServiceServer) PollCodexLogin added in v0.3.0

func (UnimplementedCredsServiceServer) RemoveCodexCredential added in v0.3.0

func (UnimplementedCredsServiceServer) SetCodexCredentialPriority added in v0.3.0

func (UnimplementedCredsServiceServer) StartClaudeLogin added in v0.3.0

func (UnimplementedCredsServiceServer) StartCodexLogin added in v0.3.0

type UnimplementedDigestServiceServer

type UnimplementedDigestServiceServer struct{}

UnimplementedDigestServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedDigestServiceServer) GetDigest

func (UnimplementedDigestServiceServer) GetDigestArticles

func (UnimplementedDigestServiceServer) ListDigests

type UnimplementedFeedsServiceServer

type UnimplementedFeedsServiceServer struct{}

UnimplementedFeedsServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedFeedsServiceServer) ApplyFeeds

func (UnimplementedFeedsServiceServer) AutoConfigFeed added in v0.2.0

func (UnimplementedFeedsServiceServer) DeleteFeed

func (UnimplementedFeedsServiceServer) DeleteFeeds

func (UnimplementedFeedsServiceServer) InspectArticle added in v0.2.0

func (UnimplementedFeedsServiceServer) InspectFeed added in v0.2.0

func (UnimplementedFeedsServiceServer) ListFeeds

func (UnimplementedFeedsServiceServer) RefreshFeed

func (UnimplementedFeedsServiceServer) RegisterFeed

type UnimplementedLLMsServiceServer

type UnimplementedLLMsServiceServer struct{}

UnimplementedLLMsServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedLLMsServiceServer) AnalyzeArticle

func (UnimplementedLLMsServiceServer) GetAnalysisConfig

func (UnimplementedLLMsServiceServer) GetAvailableModels

func (UnimplementedLLMsServiceServer) GetLLMProviders

func (UnimplementedLLMsServiceServer) ResolveLLM added in v0.2.0

func (UnimplementedLLMsServiceServer) SaveLLMProviders

type UnimplementedQueueServiceServer

type UnimplementedQueueServiceServer struct{}

UnimplementedQueueServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedQueueServiceServer) ClearQueue

func (UnimplementedQueueServiceServer) DequeueArticle

func (UnimplementedQueueServiceServer) EnqueueArticles

func (UnimplementedQueueServiceServer) GetQueueStatus

func (UnimplementedQueueServiceServer) StartQueue

func (UnimplementedQueueServiceServer) StopQueue

func (UnimplementedQueueServiceServer) StreamQueueProgress

type UnimplementedServerConfigServiceServer

type UnimplementedServerConfigServiceServer struct{}

UnimplementedServerConfigServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedServerConfigServiceServer) GetConfig

func (UnimplementedServerConfigServiceServer) SaveConfig

func (UnimplementedServerConfigServiceServer) UpdateAnalysisConfig

type UnsafeAnalysisServiceServer

type UnsafeAnalysisServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeAnalysisServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to AnalysisServiceServer will result in compilation errors.

type UnsafeArticleServiceServer

type UnsafeArticleServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeArticleServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to ArticleServiceServer will result in compilation errors.

type UnsafeCategoriesServiceServer

type UnsafeCategoriesServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeCategoriesServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to CategoriesServiceServer will result in compilation errors.

type UnsafeCredsServiceServer added in v0.3.0

type UnsafeCredsServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeCredsServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to CredsServiceServer will result in compilation errors.

type UnsafeDigestServiceServer

type UnsafeDigestServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeDigestServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to DigestServiceServer will result in compilation errors.

type UnsafeFeedsServiceServer

type UnsafeFeedsServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeFeedsServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to FeedsServiceServer will result in compilation errors.

type UnsafeLLMsServiceServer

type UnsafeLLMsServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeLLMsServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to LLMsServiceServer will result in compilation errors.

type UnsafeQueueServiceServer

type UnsafeQueueServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeQueueServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to QueueServiceServer will result in compilation errors.

type UnsafeServerConfigServiceServer

type UnsafeServerConfigServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeServerConfigServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to ServerConfigServiceServer will result in compilation errors.

type UpdateAnalysisConfigRequest

type UpdateAnalysisConfigRequest struct {
	AnalysisConfig *AnalysisConfig `protobuf:"bytes,1,opt,name=analysis_config,json=analysisConfig,proto3" json:"analysis_config,omitempty"`
	// contains filtered or unexported fields
}

UpdateAnalysisConfigRequest is the request for the UpdateAnalysisConfig method

func (*UpdateAnalysisConfigRequest) Descriptor deprecated

func (*UpdateAnalysisConfigRequest) Descriptor() ([]byte, []int)

Deprecated: Use UpdateAnalysisConfigRequest.ProtoReflect.Descriptor instead.

func (*UpdateAnalysisConfigRequest) GetAnalysisConfig

func (x *UpdateAnalysisConfigRequest) GetAnalysisConfig() *AnalysisConfig

func (*UpdateAnalysisConfigRequest) ProtoMessage

func (*UpdateAnalysisConfigRequest) ProtoMessage()

func (*UpdateAnalysisConfigRequest) ProtoReflect

func (*UpdateAnalysisConfigRequest) Reset

func (x *UpdateAnalysisConfigRequest) Reset()

func (*UpdateAnalysisConfigRequest) String

func (x *UpdateAnalysisConfigRequest) String() string

type UpdateArticleRequest

type UpdateArticleRequest struct {
	Id     string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Update *ArticleUpdate `protobuf:"bytes,2,opt,name=update,proto3" json:"update,omitempty"`
	// contains filtered or unexported fields
}

UpdateArticleRequest represents a request to update an article

func (*UpdateArticleRequest) Descriptor deprecated

func (*UpdateArticleRequest) Descriptor() ([]byte, []int)

Deprecated: Use UpdateArticleRequest.ProtoReflect.Descriptor instead.

func (*UpdateArticleRequest) GetId

func (x *UpdateArticleRequest) GetId() string

func (*UpdateArticleRequest) GetUpdate

func (x *UpdateArticleRequest) GetUpdate() *ArticleUpdate

func (*UpdateArticleRequest) ProtoMessage

func (*UpdateArticleRequest) ProtoMessage()

func (*UpdateArticleRequest) ProtoReflect

func (x *UpdateArticleRequest) ProtoReflect() protoreflect.Message

func (*UpdateArticleRequest) Reset

func (x *UpdateArticleRequest) Reset()

func (*UpdateArticleRequest) String

func (x *UpdateArticleRequest) String() string

Jump to

Keyboard shortcuts

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