JuliusBrussee/caveman · error

rewriter: model is required

Error message

rewriter: model is required

What it means

Error "rewriter: model is required" thrown in JuliusBrussee/caveman.

Source

Thrown at rewriter/rewriter.go:134

	InputTokens  int    // rewriter's own metered usage, for cost netting
	OutputTokens int
	// CandidateTokens is the inferred size of what the model produced, reported
	// on rejected calls so a corpus study can size the rewrites the gate threw
	// away. The bytes themselves never leave on a rejection.
	CandidateTokens int
}

// New validates cfg and returns a Client. An unknown provider is an error
// rather than a default: a silently mis-routed rewriter would produce bytes no
// gate was designed for.
func New(cfg Config) (*Client, error) {
	provider := strings.ToLower(strings.TrimSpace(cfg.Provider))
	if provider != providerAnthropic && provider != providerOpenAI {
		return nil, fmt.Errorf("rewriter: unsupported provider %q", cfg.Provider)
	}
	model := strings.TrimSpace(cfg.Model)
	if model == "" {
		return nil, errors.New("rewriter: model is required")
	}
	if strings.TrimSpace(cfg.APIKey) == "" {
		return nil, errors.New("rewriter: api key is required")
	}
	theta := cfg.Theta
	if theta == 0 {
		theta = DefaultTheta
	}
	if theta < 0 {
		return nil, fmt.Errorf("rewriter: theta must not be negative, got %d", theta)
	}
	doer := cfg.HTTPDoer
	if doer == nil {
		doer = http.DefaultClient.Do
	}
	return &Client{provider: provider, model: model, apiKey: cfg.APIKey, theta: theta, doer: doer}, nil
}

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Set the rewriter model.

When it happens

Trigger: Thrown at rewriter/rewriter.go:134 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/589f1e35f02d5ebd. Report an issue: GitHub.