// Package buildtarget defines the output-kind strategy (website vs WordPress
// theme) so the builder can generate different artifacts from one agent loop.
// A target is resolved from the RunRequest.OutputType string; an empty/unknown
// value falls back to the website target (back-compat with pre-WordPress
// Laravel, which sends no output_type).
package buildtarget

const (
	KeyWebsite        = "website"
	KeyWordPressTheme = "wordpress_theme"
)

// BuildTarget is the per-output-kind strategy. Implementations are pure value
// types (no state) so they are safe to share across sessions.
type BuildTarget interface {
	Key() string
	// SystemPromptFile returns the prompt filename (relative to the prompts dir).
	SystemPromptFile(compact bool) string
	// OutputDir is the directory (relative to the workspace) that gets packaged
	// on build output. "." means the whole workspace (the theme itself).
	OutputDir() string
	// NeedsNodeBuild reports whether VerifyBuild should run npm install + build.
	NeedsNodeBuild() bool
	// InjectsBaseTag reports whether index.html gets a <base> tag on packaging.
	InjectsBaseTag() bool
}
