70 lines
2.0 KiB
Go
70 lines
2.0 KiB
Go
// Package scriptorium declares the adapter contract for Scriptorium CLI invocations.
|
|
package scriptorium
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
// CommandModeRun is the Scriptorium CLI mode for production generation.
|
|
CommandModeRun = "run"
|
|
// CommandModeRender is the Scriptorium CLI mode for debug/test rendering.
|
|
CommandModeRender = "render"
|
|
)
|
|
|
|
// Runner is the adapter boundary for Scriptorium artifact invocations.
|
|
type Runner interface {
|
|
RunArtifact(ctx context.Context, req RunArtifactRequest) (ArtifactResult, error)
|
|
RenderArtifact(ctx context.Context, req RenderArtifactRequest) (ArtifactResult, error)
|
|
}
|
|
|
|
// RunArtifactRequest describes a production artifact-generation invocation.
|
|
type RunArtifactRequest struct {
|
|
Binary string
|
|
ConfigPath string
|
|
PromptID string
|
|
ProfileID string
|
|
InputPaths map[string]string
|
|
Vars map[string]string
|
|
OutputPath string
|
|
StdoutLogPath string
|
|
StderrLogPath string
|
|
GeneratedConfigPath string
|
|
Timeout time.Duration
|
|
APIKeyEnv string
|
|
WorkingDir string
|
|
}
|
|
|
|
// RenderArtifactRequest describes a render-debug invocation.
|
|
type RenderArtifactRequest struct {
|
|
Binary string
|
|
ConfigPath string
|
|
PromptID string
|
|
ProfileID string
|
|
InputPaths map[string]string
|
|
Vars map[string]string
|
|
OutputPath string
|
|
StdoutLogPath string
|
|
StderrLogPath string
|
|
GeneratedConfigPath string
|
|
Timeout time.Duration
|
|
APIKeyEnv string
|
|
WorkingDir string
|
|
}
|
|
|
|
// ArtifactResult describes Scriptorium invocation output and provenance.
|
|
type ArtifactResult struct {
|
|
OutputPath string
|
|
StdoutLogPath string
|
|
StderrLogPath string
|
|
GeneratedConfigPath string
|
|
ExitCode int
|
|
Duration time.Duration
|
|
CommandMode string
|
|
PromptID string
|
|
ProfileID string
|
|
ValidationFailed bool
|
|
Metadata map[string]any
|
|
}
|