definitions

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package definitions contains workflow and activity type definitions.

Index

Constants

View Source
const (
	ValidateInputActivityName             = "ValidateInput"
	ValidateTestSuiteActivityName         = "ValidateTestSuite"
	ExecuteAgentActivityName              = "ExecuteAgent"
	ExecuteTestCaseActivityName           = "ExecuteTestCase"
	StorePipelineResultActivityName       = "StorePipelineResult"
	StoreTestSuiteResultActivityName      = "StoreTestSuiteResult"
	SendNotificationActivityName          = "SendNotification"
	RollbackAgentExecutionActivityName    = "RollbackAgentExecution"
	RollbackFileOperationActivityName     = "RollbackFileOperation"
	RollbackExternalAPICallActivityName   = "RollbackExternalAPICall"
	RollbackNotificationActivityName      = "RollbackNotification"
	RollbackDatabaseOperationActivityName = "RollbackDatabaseOperation"
)

Activity names for registration.

Variables

View Source
var (
	ValidateInputActivity             func(ValidateInputRequest) (ValidationResult, error)
	ValidateTestSuiteActivity         func(ValidateTestSuiteRequest) (ValidationResult, error)
	ExecuteAgentActivity              func(ExecuteAgentRequest) (ExecuteAgentResponse, error)
	ExecuteTestCaseActivity           func(ExecuteTestCaseRequest) (ExecuteTestCaseResponse, error)
	StorePipelineResultActivity       func(StorePipelineResultRequest) (StorageResult, error)
	StoreTestSuiteResultActivity      func(StoreTestSuiteResultRequest) (StorageResult, error)
	SendNotificationActivity          func(NotificationRequest) (NotificationResult, error)
	RollbackAgentExecutionActivity    interface{}
	RollbackFileOperationActivity     interface{}
	RollbackExternalAPICallActivity   interface{}
	RollbackNotificationActivity      interface{}
	RollbackDatabaseOperationActivity interface{}
)

Activity function type declarations for registration.

Functions

This section is empty.

Types

type AgentConfig

type AgentConfig struct {
	Name        string            `json:"name"`
	Type        string            `json:"type"`
	Config      map[string]string `json:"config,omitempty"`
	Timeout     time.Duration     `json:"timeout,omitempty"`
	RetryPolicy RetryConfig       `json:"retryPolicy,omitempty"`
}

AgentConfig defines configuration for an AI agent in a pipeline.

type AgentResult

type AgentResult struct {
	AgentName  string          `json:"agentName"`
	Status     Status          `json:"status"`
	Output     json.RawMessage `json:"output,omitempty"`
	Error      string          `json:"error,omitempty"`
	Duration   time.Duration   `json:"duration"`
	StartedAt  time.Time       `json:"startedAt"`
	FinishedAt time.Time       `json:"finishedAt"`
}

AgentResult holds the result from a single agent execution.

type ExecuteAgentRequest

type ExecuteAgentRequest struct {
	Agent AgentConfig `json:"agent"`
}

ExecuteAgentRequest is the input for ExecuteAgentActivity.

type ExecuteAgentResponse

type ExecuteAgentResponse struct {
	Result AgentResult `json:"result"`
}

ExecuteAgentResponse is the output from ExecuteAgentActivity.

type ExecuteTestCaseRequest

type ExecuteTestCaseRequest struct {
	TestCase TestCase `json:"testCase"`
}

ExecuteTestCaseRequest is the input for ExecuteTestCaseActivity.

type ExecuteTestCaseResponse

type ExecuteTestCaseResponse struct {
	Result TestCaseResult `json:"result"`
}

ExecuteTestCaseResponse is the output from ExecuteTestCaseActivity.

type NotificationRequest

type NotificationRequest struct {
	Type       string            `json:"type"`
	WorkflowID string            `json:"workflowId"`
	Status     Status            `json:"status"`
	Message    string            `json:"message"`
	Metadata   map[string]string `json:"metadata,omitempty"`
}

NotificationRequest is the input for SendNotificationActivity.

type NotificationResult

type NotificationResult struct {
	Sent  bool   `json:"sent"`
	Error string `json:"error,omitempty"`
}

NotificationResult is the output from SendNotificationActivity.

type PipelineInput

type PipelineInput struct {
	WorkflowID  string            `json:"workflowId"`
	Agents      []AgentConfig     `json:"agents"`
	Timeout     time.Duration     `json:"timeout,omitempty"`
	RetryPolicy RetryConfig       `json:"retryPolicy,omitempty"`
	Parallel    bool              `json:"parallel,omitempty"`
	Metadata    map[string]string `json:"metadata,omitempty"`
}

PipelineInput is the input for AIAgentPipelineWorkflow.

type PipelineOutput

type PipelineOutput struct {
	WorkflowID    string        `json:"workflowId"`
	Status        Status        `json:"status"`
	Results       []AgentResult `json:"results"`
	StartedAt     time.Time     `json:"startedAt"`
	CompletedAt   time.Time     `json:"completedAt"`
	TotalDuration time.Duration `json:"totalDuration"`
	Error         string        `json:"error,omitempty"`
}

PipelineOutput is the output from AIAgentPipelineWorkflow.

func AIAgentPipelineWorkflow

func AIAgentPipelineWorkflow(ctx workflow.Context, input PipelineInput) (PipelineOutput, error)

AIAgentPipelineWorkflow orchestrates multi-agent AI tasks.

func AIAgentPipelineWorkflowWithCompensation

func AIAgentPipelineWorkflowWithCompensation(ctx workflow.Context, input PipelineInput) (PipelineOutput, error)

AIAgentPipelineWorkflowWithCompensation orchestrates multi-agent AI tasks with compensation support.

type RetryConfig

type RetryConfig struct {
	MaxAttempts        int           `json:"maxAttempts"`
	InitialInterval    time.Duration `json:"initialInterval"`
	BackoffCoefficient float64       `json:"backoffCoefficient"`
	MaximumInterval    time.Duration `json:"maximumInterval"`
}

RetryConfig defines retry behavior for workflows and activities.

func DefaultRetryConfig

func DefaultRetryConfig() RetryConfig

DefaultRetryConfig returns sensible retry defaults.

type SendNotificationRequest

type SendNotificationRequest struct {
	WorkflowID string `json:"workflowId"`
	Type       string `json:"type"`
	Message    string `json:"message"`
}

SendNotificationRequest is the input for SendNotificationActivity.

type Status

type Status string

Status represents the status of a workflow or task.

const (
	StatusPending   Status = "pending"
	StatusRunning   Status = "running"
	StatusCompleted Status = "completed"
	StatusFailed    Status = "failed"
	StatusCanceled  Status = "canceled"
)

type StorageResult

type StorageResult struct {
	Success bool   `json:"success"`
	Error   string `json:"error,omitempty"`
}

StorageResult is the output from storage activities.

type StorePipelineResultRequest

type StorePipelineResultRequest struct {
	WorkflowID string         `json:"workflowId"`
	Output     PipelineOutput `json:"output"`
}

StorePipelineResultRequest is the input for StorePipelineResultActivity.

type StoreTestSuiteResultRequest

type StoreTestSuiteResultRequest struct {
	SuiteID string          `json:"suiteId"`
	Output  TestSuiteOutput `json:"output"`
}

StoreTestSuiteResultRequest is the input for StoreTestSuiteResultActivity.

type TestCase

type TestCase struct {
	ID          string          `json:"id"`
	Name        string          `json:"name"`
	Description string          `json:"description,omitempty"`
	Input       json.RawMessage `json:"input"`
	Expected    json.RawMessage `json:"expected,omitempty"`
	Timeout     time.Duration   `json:"timeout,omitempty"`
	Tags        []string        `json:"tags,omitempty"`
}

TestCase defines a single test case in a test suite.

type TestCaseResult

type TestCaseResult struct {
	TestCaseID string          `json:"testCaseId"`
	Name       string          `json:"name"`
	Status     Status          `json:"status"`
	Output     json.RawMessage `json:"output,omitempty"`
	Error      string          `json:"error,omitempty"`
	Duration   time.Duration   `json:"duration"`
	Attempts   int             `json:"attempts"`
	StartedAt  time.Time       `json:"startedAt"`
	FinishedAt time.Time       `json:"finishedAt"`
}

TestCaseResult holds the result of a single test case execution.

type TestSuiteInput

type TestSuiteInput struct {
	SuiteID       string        `json:"suiteId"`
	Name          string        `json:"name"`
	TestCases     []TestCase    `json:"testCases"`
	Timeout       time.Duration `json:"timeout,omitempty"`
	RetryPolicy   RetryConfig   `json:"retryPolicy,omitempty"`
	Parallel      bool          `json:"parallel,omitempty"`
	StopOnFailure bool          `json:"stopOnFailure,omitempty"`
}

TestSuiteInput is the input for TestSuiteWorkflow.

type TestSuiteOutput

type TestSuiteOutput struct {
	SuiteID       string           `json:"suiteId"`
	Name          string           `json:"name"`
	Status        Status           `json:"status"`
	Results       []TestCaseResult `json:"results"`
	TotalTests    int              `json:"totalTests"`
	PassedTests   int              `json:"passedTests"`
	FailedTests   int              `json:"failedTests"`
	SkippedTests  int              `json:"skippedTests"`
	StartedAt     time.Time        `json:"startedAt"`
	CompletedAt   time.Time        `json:"completedAt"`
	TotalDuration time.Duration    `json:"totalDuration"`
	Error         string           `json:"error,omitempty"`
}

TestSuiteOutput is the output from TestSuiteWorkflow.

func TestSuiteWorkflow

func TestSuiteWorkflow(ctx workflow.Context, input TestSuiteInput) (TestSuiteOutput, error)

TestSuiteWorkflow executes AI test suites with retries.

type ValidateInputRequest

type ValidateInputRequest struct {
	Input PipelineInput `json:"input"`
}

ValidateInputRequest is the input for ValidateInputActivity.

type ValidateTestSuiteRequest

type ValidateTestSuiteRequest struct {
	Input TestSuiteInput `json:"input"`
}

ValidateTestSuiteRequest is the input for ValidateTestSuiteActivity.

type ValidationResult

type ValidationResult struct {
	Valid bool   `json:"valid"`
	Error string `json:"error,omitempty"`
}

ValidationResult holds the result of input validation.

Jump to

Keyboard shortcuts

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