Add a minimal HTTP API

This commit is contained in:
2026-05-04 21:19:29 -05:00
parent 526ee463f2
commit eac6b69217
6 changed files with 507 additions and 8 deletions

View File

@@ -60,7 +60,7 @@ func (r *Runner) Run(ctx context.Context, req domain.RunRequest) (*domain.RunRes
prof, err := r.profiles.GetProfile(ctx, req.ProfileID, req.ProfileVersion)
if err != nil {
return nil, fmt.Errorf("%w: %v", ErrProfileLoad, err)
return nil, fmt.Errorf("%w: %w", ErrProfileLoad, err)
}
effectiveModel := mergeModelTarget(prof.ModelDefaults, req.Model)
@@ -71,7 +71,7 @@ func (r *Runner) Run(ctx context.Context, req domain.RunRequest) (*domain.RunRes
for name, ref := range req.Inputs {
art, readErr := r.artifacts.Read(ctx, ref)
if readErr != nil {
return nil, fmt.Errorf("%w: input %q: %v", ErrArtifactLoad, name, readErr)
return nil, fmt.Errorf("%w: input %q: %w", ErrArtifactLoad, name, readErr)
}
if art.Name == "" {
art.Name = name
@@ -82,7 +82,7 @@ func (r *Runner) Run(ctx context.Context, req domain.RunRequest) (*domain.RunRes
renderedPrompt, err := r.renderer.Render(ctx, prof, resolvedInputs, req.Vars)
if err != nil {
return nil, fmt.Errorf("%w: %v", ErrPromptRender, err)
return nil, fmt.Errorf("%w: %w", ErrPromptRender, err)
}
promptHash := hashRenderedPrompt(*renderedPrompt)
@@ -92,7 +92,7 @@ func (r *Runner) Run(ctx context.Context, req domain.RunRequest) (*domain.RunRes
Target: effectiveModel,
})
if err != nil {
return nil, fmt.Errorf("%w: %v", ErrLLMGenerate, err)
return nil, fmt.Errorf("%w: %w", ErrLLMGenerate, err)
}
outputArtifact := buildOutputArtifact(genResp.Content, effectiveContract.Format)
@@ -107,7 +107,7 @@ func (r *Runner) Run(ctx context.Context, req domain.RunRequest) (*domain.RunRes
if r.validator != nil && effectiveContract.ValidationMode != domain.ValidationNone {
validationResult, err = r.validator.Validate(ctx, &outputArtifact, effectiveContract)
if err != nil {
return nil, fmt.Errorf("%w: %v", ErrValidation, err)
return nil, fmt.Errorf("%w: %w", ErrValidation, err)
}
}