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

Method resolveSubagentModelConfigID

coderd/x/chatd/subagent.go:426–478  ·  view source on GitHub ↗
(
	ctx context.Context,
	ownerID uuid.UUID,
	overrideContext codersdk.ChatModelOverrideContext,
)

Source from the content-addressed store, hash-verified

424}
425
426func (p *Server) resolveSubagentModelConfigID(
427 ctx context.Context,
428 ownerID uuid.UUID,
429 overrideContext codersdk.ChatModelOverrideContext,
430) (uuid.UUID, error) {
431 //nolint:gocritic // Chatd needs its scoped config and user-data access here.
432 chatdCtx := dbauthz.AsChatd(ctx)
433 personalOverridesEnabled, err := p.db.GetChatPersonalModelOverridesEnabled(chatdCtx)
434 if err != nil {
435 return uuid.Nil, xerrors.Errorf(
436 "get chat personal model overrides enabled: %w",
437 err,
438 )
439 }
440 if personalOverridesEnabled {
441 modelConfigID, resolved, err := p.resolvePersonalSubagentModelConfigID(
442 chatdCtx,
443 ownerID,
444 overrideContext,
445 )
446 if err != nil {
447 return uuid.Nil, err
448 }
449 if resolved {
450 return modelConfigID, nil
451 }
452 }
453
454 raw, err := readSubagentModelOverride(chatdCtx, p.db, overrideContext)
455 if err != nil {
456 return uuid.Nil, xerrors.Errorf(
457 "get %s model override: %w",
458 subagentModelOverrideLogLabel(overrideContext),
459 err,
460 )
461 }
462 modelConfig, ok, err := p.resolveConfiguredModelOverride(
463 chatdCtx,
464 string(overrideContext),
465 raw,
466 ownerID,
467 p.resolveModelConfigAndNormalizedProvider,
468 p.resolveUserProviderAPIKeys,
469 modelOverrideFailureModeSoft,
470 )
471 if err != nil {
472 return uuid.Nil, err
473 }
474 if !ok {
475 return uuid.Nil, nil
476 }
477 return modelConfig.ID, nil
478}
479
480func modelConfigAIProviderID(modelConfig database.ChatModelConfig) uuid.UUID {
481 if !modelConfig.AIProviderID.Valid {

Callers 1

allSubagentDefinitionsFunction · 0.80

Tested by

no test coverage detected