package httpadapter import ( "time" "gitea.maximumdirect.net/eric/scriptorium/internal/domain" ) type runRequestDTO struct { ProfileID string `json:"profile_id"` ProfileVersion string `json:"profile_version,omitempty"` Inputs map[string]inputRefDTO `json:"inputs"` Vars map[string]string `json:"vars,omitempty"` Model *modelOverrideRequestDTO `json:"model,omitempty"` } type inputRefDTO struct { Type string `json:"type"` URI string `json:"uri,omitempty"` Body string `json:"body,omitempty"` } type modelOverrideRequestDTO struct { Endpoint string `json:"endpoint,omitempty"` Model string `json:"model,omitempty"` Temperature float64 `json:"temperature,omitempty"` MaxTokens int `json:"max_tokens,omitempty"` TopP float64 `json:"top_p,omitempty"` TimeoutSeconds int `json:"timeout_seconds,omitempty"` } type runResponseDTO struct { Artifact artifactDTO `json:"artifact"` Validation domain.ValidationResult `json:"validation"` Metadata metadataDTO `json:"metadata"` RawModelOutput string `json:"raw_model_output"` } type artifactDTO struct { Name string `json:"name"` ContentType string `json:"content_type"` Body string `json:"body"` URI string `json:"uri,omitempty"` Size int64 `json:"size"` Hash string `json:"hash"` } type metadataDTO struct { ProfileID string `json:"profile_id"` ProfileVersion string `json:"profile_version"` ModelName string `json:"model_name"` Endpoint string `json:"endpoint"` InputHashes map[string]string `json:"input_hashes"` PromptHash string `json:"prompt_hash"` Usage domain.TokenUsage `json:"usage"` StartTime time.Time `json:"start_time"` EndTime time.Time `json:"end_time"` } type errorResponse struct { Error errorBody `json:"error"` } type errorBody struct { Code string `json:"code"` Message string `json:"message"` }