Documentation
¶
Overview ¶
Package factory wires concrete dependencies for the github-update-go-agent binary.
All factory functions follow the Create* prefix convention and contain zero business logic — they compose constructors with config.
Index ¶
- func CreateAgent(claudeConfigDir claudelib.ClaudeConfigDir, agentDir claudelib.AgentDir, ...) *agentlib.Agent
- func CreateAgentFromRunner(runner claudelib.ClaudeRunner, envContext map[string]string) *agentlib.Agent
- func CreateAgentProvider(claudeConfigDir claudelib.ClaudeConfigDir, agentDir claudelib.AgentDir, ...) agentlib.AgentProvider
- func CreateClaudeRunner(claudeConfigDir claudelib.ClaudeConfigDir, agentDir claudelib.AgentDir, ...) claudelib.ClaudeRunner
- func CreateFileResultDeliverer(filePath string) agentlib.ResultDeliverer
- func CreateKafkaResultDeliverer(syncProducer libkafka.SyncProducer, topicPrefix base.TopicPrefix, ...) agentlib.ResultDeliverer
- func CreateSyncProducer(ctx context.Context, brokers libkafka.Brokers) (libkafka.SyncProducer, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateAgent ¶
func CreateAgent( claudeConfigDir claudelib.ClaudeConfigDir, agentDir claudelib.AgentDir, allowedTools claudelib.AllowedTools, model claudelib.ClaudeModel, claudeEnv map[string]string, envContext map[string]string, ) *agentlib.Agent
CreateAgent assembles the full 3-phase claude agent. Single Claude step shared across planning / in_progress / ai_review preserves the existing CRD trigger.phases behavior — every phase runs Claude once and emits done.
func CreateAgentFromRunner ¶
func CreateAgentFromRunner( runner claudelib.ClaudeRunner, envContext map[string]string, ) *agentlib.Agent
CreateAgentFromRunner builds the 3-phase claude agent given a pre-constructed ClaudeRunner. Used by CreateAgentProvider to share one runner across the domain agent and the healthcheck-Claude liveness agent.
func CreateAgentProvider ¶
func CreateAgentProvider( claudeConfigDir claudelib.ClaudeConfigDir, agentDir claudelib.AgentDir, allowedTools claudelib.AllowedTools, model claudelib.ClaudeModel, claudeEnv map[string]string, envContext map[string]string, ) agentlib.AgentProvider
CreateAgentProvider wires the per-task-type dispatch table for github-update-go-agent. Returns lib.AgentProvider — main.go calls Get(ctx, taskType) to select the appropriate *Agent. Pure plumbing; no conditional, no error.
TaskTypeLLM routes to the existing 3-phase domain agent. TaskTypeHealthcheck and TaskTypeOAuthProbe (transition alias) both route to the shared healthcheck-Claude liveness agent, reusing the same ClaudeRunner.
func CreateClaudeRunner ¶
func CreateClaudeRunner( claudeConfigDir claudelib.ClaudeConfigDir, agentDir claudelib.AgentDir, allowedTools claudelib.AllowedTools, model claudelib.ClaudeModel, env map[string]string, ) claudelib.ClaudeRunner
CreateClaudeRunner constructs a ClaudeRunner pre-configured with tools, model, working directory, and CLI environment.
func CreateFileResultDeliverer ¶
func CreateFileResultDeliverer(filePath string) agentlib.ResultDeliverer
CreateFileResultDeliverer creates a ResultDeliverer that writes the agent's output back to a markdown file (local CLI mode). Uses the passthrough content generator (same rationale as Kafka).
func CreateKafkaResultDeliverer ¶
func CreateKafkaResultDeliverer( syncProducer libkafka.SyncProducer, topicPrefix base.TopicPrefix, taskID agentlib.TaskIdentifier, originalContent string, currentDateTime libtime.CurrentDateTimeGetter, ) agentlib.ResultDeliverer
CreateKafkaResultDeliverer creates a ResultDeliverer that publishes task updates to Kafka via CQRS commands. Uses the passthrough content generator — the agent framework's StepRunner already produces the full marshaled task in result.Output; the deliverer publishes it as-is and overrides status/phase frontmatter based on the result Status.
func CreateSyncProducer ¶
func CreateSyncProducer( ctx context.Context, brokers libkafka.Brokers, ) (libkafka.SyncProducer, error)
CreateSyncProducer creates a Kafka sync producer.
Types ¶
This section is empty.