| 1093 | } |
| 1094 | |
| 1095 | func AIBridgeInterception(interception database.AIBridgeInterception, initiator database.VisibleUser, tokenUsages []database.AIBridgeTokenUsage, userPrompts []database.AIBridgeUserPrompt, toolUsages []database.AIBridgeToolUsage) codersdk.AIBridgeInterception { |
| 1096 | sdkTokenUsages := slice.List(tokenUsages, AIBridgeTokenUsage) |
| 1097 | sort.Slice(sdkTokenUsages, func(i, j int) bool { |
| 1098 | // created_at ASC |
| 1099 | return sdkTokenUsages[i].CreatedAt.Before(sdkTokenUsages[j].CreatedAt) |
| 1100 | }) |
| 1101 | sdkUserPrompts := slice.List(userPrompts, AIBridgeUserPrompt) |
| 1102 | sort.Slice(sdkUserPrompts, func(i, j int) bool { |
| 1103 | // created_at ASC |
| 1104 | return sdkUserPrompts[i].CreatedAt.Before(sdkUserPrompts[j].CreatedAt) |
| 1105 | }) |
| 1106 | sdkToolUsages := slice.List(toolUsages, AIBridgeToolUsage) |
| 1107 | sort.Slice(sdkToolUsages, func(i, j int) bool { |
| 1108 | // created_at ASC |
| 1109 | return sdkToolUsages[i].CreatedAt.Before(sdkToolUsages[j].CreatedAt) |
| 1110 | }) |
| 1111 | intc := codersdk.AIBridgeInterception{ |
| 1112 | ID: interception.ID, |
| 1113 | Initiator: MinimalUserFromVisibleUser(initiator), |
| 1114 | Provider: interception.Provider, |
| 1115 | ProviderName: interception.ProviderName, |
| 1116 | Model: interception.Model, |
| 1117 | Metadata: jsonOrEmptyMap(interception.Metadata), |
| 1118 | StartedAt: interception.StartedAt, |
| 1119 | TokenUsages: sdkTokenUsages, |
| 1120 | UserPrompts: sdkUserPrompts, |
| 1121 | ToolUsages: sdkToolUsages, |
| 1122 | } |
| 1123 | if interception.APIKeyID.Valid { |
| 1124 | intc.APIKeyID = &interception.APIKeyID.String |
| 1125 | } |
| 1126 | if interception.EndedAt.Valid { |
| 1127 | intc.EndedAt = &interception.EndedAt.Time |
| 1128 | } |
| 1129 | if interception.Client.Valid { |
| 1130 | intc.Client = &interception.Client.String |
| 1131 | } |
| 1132 | return intc |
| 1133 | } |
| 1134 | |
| 1135 | func AIBridgeSession(row database.ListAIBridgeSessionsRow) codersdk.AIBridgeSession { |
| 1136 | session := codersdk.AIBridgeSession{ |