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

Function ParseChatPersonalModelOverride

coderd/x/chatd/personal_model_override.go:37–75  ·  view source on GitHub ↗

ParseChatPersonalModelOverride parses a stored personal model override. Empty values return defaultMode without marking the value malformed. Malformed values return defaultMode, uuid.Nil, and Malformed true.

(
	raw string,
	defaultMode codersdk.ChatPersonalModelOverrideMode,
)

Source from the content-addressed store, hash-verified

35// Empty values return defaultMode without marking the value malformed.
36// Malformed values return defaultMode, uuid.Nil, and Malformed true.
37func ParseChatPersonalModelOverride(
38 raw string,
39 defaultMode codersdk.ChatPersonalModelOverrideMode,
40) ParsedChatPersonalModelOverride {
41 trimmed := strings.TrimSpace(raw)
42 if trimmed == "" {
43 return ParsedChatPersonalModelOverride{Mode: defaultMode}
44 }
45
46 switch trimmed {
47 case string(codersdk.ChatPersonalModelOverrideModeChatDefault):
48 return ParsedChatPersonalModelOverride{
49 Mode: codersdk.ChatPersonalModelOverrideModeChatDefault,
50 }
51 case string(codersdk.ChatPersonalModelOverrideModeDeploymentDefault):
52 return ParsedChatPersonalModelOverride{
53 Mode: codersdk.ChatPersonalModelOverrideModeDeploymentDefault,
54 }
55 }
56
57 mode, rawModelConfigID, ok := strings.Cut(trimmed, ":")
58 if !ok || mode != string(codersdk.ChatPersonalModelOverrideModeModel) {
59 return ParsedChatPersonalModelOverride{
60 Mode: defaultMode,
61 Malformed: true,
62 }
63 }
64 modelConfigID, err := uuid.Parse(rawModelConfigID)
65 if err != nil {
66 return ParsedChatPersonalModelOverride{
67 Mode: defaultMode,
68 Malformed: true,
69 }
70 }
71 return ParsedChatPersonalModelOverride{
72 Mode: codersdk.ChatPersonalModelOverrideModeModel,
73 ModelConfigID: modelConfigID,
74 }
75}

Calls 1

ParseMethod · 0.65

Tested by 1