MCPcopy Index your code
hub / github.com/coder/coder / Generate

Function Generate

coderd/taskname/taskname.go:311–330  ·  view source on GitHub ↗

Generate creates a task name and display name from a user prompt. It attempts multiple strategies in order of preference: 1. Use Claude (Anthropic) to generate semantic names from the prompt if an API key is available 2. Sanitize the prompt directly into a valid task name 3. Generate a random name a

(ctx context.Context, logger slog.Logger, prompt string)

Source from the content-addressed store, hash-verified

309// A suffix is always appended to task names to reduce collision risk.
310// This function always succeeds and returns a valid TaskName.
311func Generate(ctx context.Context, logger slog.Logger, prompt string) TaskName {
312 if anthropicAPIKey := getAnthropicAPIKeyFromEnv(); anthropicAPIKey != "" {
313 taskName, err := generateFromAnthropic(ctx, prompt, anthropicAPIKey, getAnthropicModelFromEnv())
314 if err == nil {
315 return taskName
316 }
317 // Anthropic failed, fall through to next fallback
318 logger.Error(ctx, "unable to generate task name and display name from Anthropic", slog.Error(err))
319 }
320
321 // Try generating from prompt
322 taskName, err := generateFromPrompt(prompt)
323 if err == nil {
324 return taskName
325 }
326 logger.Warn(ctx, "unable to generate task name and display name from prompt", slog.Error(err))
327
328 // Final fallback
329 return generateFallback()
330}
331
332func anthropicDataStream(ctx context.Context, client anthropic.Client, model anthropic.Model, input []aisdk.Message) (aisdk.DataStream, error) {
333 messages, system, err := aisdk.MessagesToAnthropic(input)

Callers 2

tasksCreateMethod · 0.92
TestGenerateFunction · 0.92

Calls 6

generateFromAnthropicFunction · 0.85
getAnthropicModelFromEnvFunction · 0.85
generateFromPromptFunction · 0.85
generateFallbackFunction · 0.85
ErrorMethod · 0.45

Tested by 1

TestGenerateFunction · 0.74