nomadcode/services/core/internal/workflow/model.go

50 lines
1.3 KiB
Go

package workflow
import "encoding/json"
type TaskStatus string
const (
StatusPending TaskStatus = "pending"
StatusQueued TaskStatus = "queued"
StatusRunning TaskStatus = "running"
StatusCompleted TaskStatus = "completed"
StatusFailed TaskStatus = "failed"
StatusCanceled TaskStatus = "canceled"
)
type CreateTaskInput struct {
Title string `json:"title"`
Source string `json:"source"`
Payload json.RawMessage `json:"payload"`
Metadata json.RawMessage `json:"metadata,omitempty"`
External *ExternalRefInput `json:"external,omitempty"`
}
type ExternalRefInput struct {
Provider string `json:"provider"`
ID string `json:"id"`
URL string `json:"url"`
Metadata json.RawMessage `json:"metadata"`
}
type FailureType string
const (
FailureTypeTimeout FailureType = "timeout"
FailureTypeExecution FailureType = "execution"
FailureTypeEnqueue FailureType = "enqueue"
)
const (
MetadataKeyAgentRunState = "agent_run_state"
MetadataKeyAgentPhase = "agent_phase"
MetadataKeyWaitType = "wait_type"
MetadataKeyStatusReason = "status_reason"
MetadataKeyFailureType = "failure_type"
MetadataKeyFailedAt = "failed_at"
MetadataKeyLastHeartbeat = "last_heartbeat_at"
MetadataKeyPlanRef = "plan_ref"
MetadataKeyAttempt = "attempt"
)