Major changes: - Add internal/logging package with field constants, context propagation, sensitive data auto-redaction, and per-component log levels - Add worker timeout constants (TimeoutQuickOp, TimeoutHealthCheck, etc.) - Extend SDLC with callback handlers, generate endpoints, and executor - Add new cookbook trees for aeries and slackpath progression - Add skeleton templates for queue, realtime, and microservices - Add worker component template with async job processing - Refactor services and handlers to use new logging infrastructure - Split component.go into component_infra.go and component_listing.go Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
73 lines
2.4 KiB
Go
73 lines
2.4 KiB
Go
// Package domain contains pure domain models with no external dependencies.
|
|
package domain
|
|
|
|
import "slices"
|
|
|
|
// SDLCGenerateRequest describes an artifact generation request.
|
|
type SDLCGenerateRequest struct {
|
|
// ArtifactType is the type of artifact to generate: spec, design, tasks, code, qa
|
|
ArtifactType string `json:"artifact_type"`
|
|
|
|
// TaskID is the specific task to implement (required for artifact_type: "code")
|
|
TaskID string `json:"task_id,omitempty"`
|
|
|
|
// Provider specifies which code agent to use (optional, defaults to system default)
|
|
Provider string `json:"provider,omitempty"`
|
|
}
|
|
|
|
// ValidArtifactTypesForGenerate lists artifact types that can be generated.
|
|
var ValidArtifactTypesForGenerate = []string{"spec", "design", "tasks", "code", "qa"}
|
|
|
|
// IsValidGenerateArtifactType returns true if the artifact type is valid for generation.
|
|
func IsValidGenerateArtifactType(artifactType string) bool {
|
|
return slices.Contains(ValidArtifactTypesForGenerate, artifactType)
|
|
}
|
|
|
|
// SDLCCallbackPayload is sent when a build completes to update SDLC artifact status.
|
|
type SDLCCallbackPayload struct {
|
|
// TaskID is the work queue task identifier
|
|
TaskID string `json:"task_id"`
|
|
|
|
// ProjectID is the project this task belongs to
|
|
ProjectID string `json:"project_id"`
|
|
|
|
// Feature is the feature slug this artifact belongs to
|
|
Feature string `json:"feature"`
|
|
|
|
// ArtifactType identifies which artifact was generated
|
|
ArtifactType string `json:"artifact_type"`
|
|
|
|
// Success indicates whether the generation succeeded
|
|
Success bool `json:"success"`
|
|
|
|
// CommitSHA is the git commit SHA if changes were committed
|
|
CommitSHA string `json:"commit_sha,omitempty"`
|
|
|
|
// Error contains the error message if generation failed
|
|
Error string `json:"error,omitempty"`
|
|
}
|
|
|
|
// SDLCGenerateResponse is the response for artifact generation requests.
|
|
type SDLCGenerateResponse struct {
|
|
// TaskID is the work queue task identifier for tracking
|
|
TaskID string `json:"task_id"`
|
|
|
|
// ProjectID is the project identifier
|
|
ProjectID string `json:"project_id"`
|
|
|
|
// Feature is the feature slug
|
|
Feature string `json:"feature"`
|
|
|
|
// ArtifactType is the type of artifact being generated
|
|
ArtifactType string `json:"artifact_type"`
|
|
|
|
// Status is the initial task status (always "pending")
|
|
Status string `json:"status"`
|
|
|
|
// StatusURL is the URL to check task status
|
|
StatusURL string `json:"status_url"`
|
|
|
|
// StreamURL is the URL for real-time event streaming
|
|
StreamURL string `json:"stream_url"`
|
|
}
|