mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add client column to aibridge_interceptions table (#21839)
Adds `client` column to `aibridge_interceptions` table. It is set accordingly to what is passed from AI Bridge in `RecordInterception`. Adds interception filtering by `client` value. Depends on: https://github.com/coder/aibridge/pull/158 Updates aibridge library to include this change. Fixes: https://github.com/coder/aibridge/issues/31
This commit is contained in:
@@ -135,6 +135,7 @@ func (api *API) aiBridgeListInterceptions(rw http.ResponseWriter, r *http.Reques
|
||||
InitiatorID: filter.InitiatorID,
|
||||
Provider: filter.Provider,
|
||||
Model: filter.Model,
|
||||
Client: filter.Client,
|
||||
})
|
||||
if err != nil {
|
||||
return xerrors.Errorf("count authorized aibridge interceptions: %w", err)
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/google/uuid"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
aiblib "github.com/coder/aibridge"
|
||||
"github.com/coder/coder/v2/coderd/coderdtest"
|
||||
"github.com/coder/coder/v2/coderd/database"
|
||||
"github.com/coder/coder/v2/coderd/database/db2sdk"
|
||||
@@ -433,6 +434,7 @@ func TestAIBridgeListInterceptions(t *testing.T) {
|
||||
Provider: "two",
|
||||
Model: "two",
|
||||
StartedAt: now.Add(-time.Hour),
|
||||
Client: sql.NullString{String: aiblib.ClientCursor, Valid: true},
|
||||
}, &now)
|
||||
i3 := dbgen.AIBridgeInterception(t, db, database.InsertAIBridgeInterceptionParams{
|
||||
ID: uuid.MustParse("00000000-0000-0000-0000-000000000003"),
|
||||
@@ -440,6 +442,7 @@ func TestAIBridgeListInterceptions(t *testing.T) {
|
||||
Provider: "three",
|
||||
Model: "three",
|
||||
StartedAt: now.Add(-2 * time.Hour),
|
||||
Client: sql.NullString{String: aiblib.ClientClaude, Valid: true},
|
||||
}, &now)
|
||||
|
||||
// Convert to SDK types for response comparison. We don't care about the
|
||||
@@ -498,6 +501,21 @@ func TestAIBridgeListInterceptions(t *testing.T) {
|
||||
filter: codersdk.AIBridgeListInterceptionsFilter{Model: "three"},
|
||||
want: []codersdk.AIBridgeInterception{i3SDK},
|
||||
},
|
||||
{
|
||||
name: "Client/Unknown",
|
||||
filter: codersdk.AIBridgeListInterceptionsFilter{Client: "Unknown"},
|
||||
want: []codersdk.AIBridgeInterception{i1SDK},
|
||||
},
|
||||
{
|
||||
name: "Client/Match",
|
||||
filter: codersdk.AIBridgeListInterceptionsFilter{Client: aiblib.ClientCursor},
|
||||
want: []codersdk.AIBridgeInterception{i2SDK},
|
||||
},
|
||||
{
|
||||
name: "Client/NoMatch",
|
||||
filter: codersdk.AIBridgeListInterceptionsFilter{Client: "nonsense"},
|
||||
want: []codersdk.AIBridgeInterception{},
|
||||
},
|
||||
{
|
||||
name: "StartedAfter/NoMatch",
|
||||
filter: codersdk.AIBridgeListInterceptionsFilter{
|
||||
|
||||
Reference in New Issue
Block a user