factory

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 21, 2026 License: BSD-2-Clause Imports: 10 Imported by: 0

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

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.

Jump to

Keyboard shortcuts

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