Skip to content

Commit ba7620e

Browse files
Merge branch 'main' into shyang-agent-name
2 parents f70a126 + 7eba8ca commit ba7620e

4 files changed

Lines changed: 41 additions & 16 deletions

File tree

agent_client.go

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,41 @@ import (
1515
type AgentClient struct {
1616
agentClient livekit.CloudAgent
1717
authBase
18+
httpClient *http.Client
19+
twirpOpts []twirp.ClientOption
1820
}
1921

20-
func NewAgentClient(url string, apiKey string, apiSecret string, opts ...twirp.ClientOption) (*AgentClient, error) {
22+
func NewAgentClient(url string, apiKey string, apiSecret string, opts ...AgentClientOption) (*AgentClient, error) {
2123
serverUrl := os.Getenv("LK_AGENTS_URL")
2224
if serverUrl == "" {
2325
url = signalling.ToHttpURL(url)
2426
pattern := `^https?://[^.]+\.`
2527
re := regexp.MustCompile(pattern)
2628
serverUrl = re.ReplaceAllString(url, "https://agents.")
2729
}
30+
c := &AgentClient{
31+
authBase: authBase{apiKey, apiSecret},
32+
httpClient: &http.Client{},
33+
}
34+
for _, opt := range opts {
35+
opt(c)
36+
}
37+
c.agentClient = livekit.NewCloudAgentProtobufClient(serverUrl, c.httpClient, c.twirpOpts...)
38+
return c, nil
39+
}
40+
41+
type AgentClientOption func(*AgentClient)
2842

29-
client := livekit.NewCloudAgentProtobufClient(serverUrl, &http.Client{}, opts...)
30-
return &AgentClient{
31-
agentClient: client,
32-
authBase: authBase{apiKey, apiSecret},
33-
}, nil
43+
func WithHTTPClient(httpClient *http.Client) AgentClientOption {
44+
return func(c *AgentClient) {
45+
c.httpClient = httpClient
46+
}
47+
}
48+
49+
func WithTwirpClientOptions(opts ...twirp.ClientOption) AgentClientOption {
50+
return func(c *AgentClient) {
51+
c.twirpOpts = opts
52+
}
3453
}
3554

3655
func (c *AgentClient) CreateAgent(ctx context.Context, req *livekit.CreateAgentRequest) (*livekit.CreateAgentResponse, error) {

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,4 +149,6 @@ require (
149149
gopkg.in/yaml.v3 v3.0.1 // indirect
150150
)
151151

152+
replace github.com/livekit/protocol => ../protocol
153+
152154
tool github.com/maxbrunsfeld/counterfeiter/v6

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,6 @@ github.com/livekit/media-sdk v0.0.0-20260424094251-1e21ae1138de h1:obfPAPRvdcmCA
159159
github.com/livekit/media-sdk v0.0.0-20260424094251-1e21ae1138de/go.mod h1:7ssWiG+U4xnbvLih9WiZbhQP6zIKMjgXdUtIE1bm/E8=
160160
github.com/livekit/mediatransportutil v0.0.0-20251128105421-19c7a7b81c22 h1:dzCBxOGLLWVtQhL7OYK2EGN+5Q+23Mq/jfz4vQisirA=
161161
github.com/livekit/mediatransportutil v0.0.0-20251128105421-19c7a7b81c22/go.mod h1:mSNtYzSf6iY9xM3UX42VEI+STHvMgHmrYzEHPcdhB8A=
162-
github.com/livekit/protocol v1.45.5-0.20260423163244-347de5a2ef78 h1:kT824Ziy89MSD2/UcvgGZWZ5iiEGepDAvu9phjYHiT0=
163-
github.com/livekit/protocol v1.45.5-0.20260423163244-347de5a2ef78/go.mod h1:e6QdWDkfot+M2nRh0eitJUS0ZLuwvKCsfiz2pWWSG3s=
164162
github.com/livekit/psrpc v0.7.1 h1:ms37az0QTD3UXIWuUC5D/SkmKOlRMVRsI261eBWu/Vw=
165163
github.com/livekit/psrpc v0.7.1/go.mod h1:bZ4iHFQptTkbPnB0LasvRNu/OBYXEu1NA6O5BMFo9kk=
166164
github.com/mackerelio/go-osstat v0.2.7 h1:TCavZi10wF49bT6iQZ9eT2keGZQpC69MTDfdJej5e94=

pkg/cloudagents/client.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,14 @@ func New(opts ...ClientOption) (*Client, error) {
5555
if client.projectURL == "" {
5656
return nil, fmt.Errorf("project credentials are required")
5757
}
58-
agentClient, err := lksdk.NewAgentClient(client.projectURL, client.apiKey, client.apiSecret, twirp.WithClientHooks(&twirp.ClientHooks{
59-
RequestPrepared: func(ctx context.Context, req *http.Request) (context.Context, error) {
60-
client.setLivekitHeaders(req)
61-
return ctx, nil
62-
},
63-
}))
58+
agentClient, err := lksdk.NewAgentClient(client.projectURL, client.apiKey, client.apiSecret,
59+
lksdk.WithTwirpClientOptions(
60+
twirp.WithClientHooks(&twirp.ClientHooks{
61+
RequestPrepared: func(ctx context.Context, req *http.Request) (context.Context, error) {
62+
client.setLivekitHeaders(req)
63+
return ctx, nil
64+
},
65+
})))
6466
if err != nil {
6567
return nil, err
6668
}
@@ -108,10 +110,12 @@ func (c *Client) CreateAgentV2(
108110
ctx context.Context,
109111
secrets []*lkproto.AgentSecret,
110112
regions []string,
113+
agentName string,
111114
) (*lkproto.CreateAgentV2Response, error) {
112115
resp, err := c.AgentClient.CreateAgentV2(ctx, &lkproto.CreateAgentV2Request{
113-
Secrets: secrets,
114-
Regions: regions,
116+
Secrets: secrets,
117+
Regions: regions,
118+
AgentName: agentName,
115119
})
116120
if err != nil {
117121
return nil, err
@@ -146,6 +150,7 @@ func (c *Client) DeployAgent(
146150
func (c *Client) DeployAgentV2(
147151
ctx context.Context,
148152
agentID string,
153+
agentName string,
149154
source fs.FS,
150155
secrets []*lkproto.AgentSecret,
151156
environment string,
@@ -154,6 +159,7 @@ func (c *Client) DeployAgentV2(
154159
) error {
155160
resp, err := c.AgentClient.DeployAgentV2(ctx, &lkproto.DeployAgentV2Request{
156161
AgentId: agentID,
162+
AgentName: agentName,
157163
Secrets: secrets,
158164
Environment: environment,
159165
})

0 commit comments

Comments
 (0)