From 9cd9784b16f865242da7eeb1030aad6d584820ac Mon Sep 17 00:00:00 2001 From: Arseny Boykov Date: Mon, 15 Jun 2026 16:43:04 +0400 Subject: [PATCH 1/4] simulate: --audio runs simulations over the agent's media pipeline Passes SimulationMode on the Create request; default stays TEXT. --- cmd/lk/simulate.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cmd/lk/simulate.go b/cmd/lk/simulate.go index d2469eeb..5ea82c79 100644 --- a/cmd/lk/simulate.go +++ b/cmd/lk/simulate.go @@ -79,6 +79,10 @@ var simulateCommand = &cli.Command{ Name: "scenarios", Usage: "Path to a scenarios `FILE` (yaml). If omitted, scenarios are generated from the agent's source", }, + &cli.BoolFlag{ + Name: "audio", + Usage: "Simulate over audio (TTS + the agent's full media pipeline) instead of text", + }, &cli.BoolFlag{ Name: "yes", Aliases: []string{"y"}, @@ -157,6 +161,7 @@ type simulateConfig struct { numSimulations int32 concurrency int32 mode simulateMode + simulationMode livekit.SimulationMode agentName string projectDir string projectType agentfs.ProjectType @@ -259,6 +264,11 @@ func runSimulate(ctx context.Context, cmd *cli.Command) error { simClient := lksdk.NewAgentSimulationClient(serverURL, pc.APIKey, pc.APISecret) + simulationMode := livekit.SimulationMode_SIMULATION_MODE_TEXT + if cmd.Bool("audio") { + simulationMode = livekit.SimulationMode_SIMULATION_MODE_AUDIO + } + simCfg := &simulateConfig{ ctx: ctx, client: simClient, @@ -266,6 +276,7 @@ func runSimulate(ctx context.Context, cmd *cli.Command) error { numSimulations: numSimulations, concurrency: concurrency, mode: mode, + simulationMode: simulationMode, agentName: agentName, projectDir: projectDir, projectType: projectType, @@ -400,6 +411,7 @@ func createSimulationRun(ctx context.Context, c *simulateConfig) (string, *livek req := &livekit.SimulationRun_Create_Request{ AgentName: c.agentName, NumSimulations: c.numSimulations, + Mode: c.simulationMode, } if c.concurrency > 0 { req.Concurrency = &c.concurrency From 9cac3e435fec872c9a2ee0fb77b3182ebae31f09 Mon Sep 17 00:00:00 2001 From: Arseny Boykov <36469655+Bobronium@users.noreply.github.com> Date: Tue, 16 Jun 2026 19:49:25 +0400 Subject: [PATCH 2/4] Update --audio usage help txt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Théo Monnom --- cmd/lk/simulate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/lk/simulate.go b/cmd/lk/simulate.go index 5ea82c79..8cf088ec 100644 --- a/cmd/lk/simulate.go +++ b/cmd/lk/simulate.go @@ -81,7 +81,7 @@ var simulateCommand = &cli.Command{ }, &cli.BoolFlag{ Name: "audio", - Usage: "Simulate over audio (TTS + the agent's full media pipeline) instead of text", + Usage: "Simulate speech-to-speech interactions using the agent's full audio pipeline. By default, simulations run in text-only mode.", }, &cli.BoolFlag{ Name: "yes", From a6e889dc8189cb9c70ffc3bf58c2ca45aeb026ea Mon Sep 17 00:00:00 2001 From: Arseny Boykov Date: Tue, 16 Jun 2026 20:07:38 +0400 Subject: [PATCH 3/4] simulate: bump protocol version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 55d6bd0c..d9feed03 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/google/go-containerregistry v0.20.7 github.com/google/go-querystring v1.2.0 github.com/joho/godotenv v1.5.1 - github.com/livekit/protocol v1.46.7-0.20260610175657-3ccff51ebf5b + github.com/livekit/protocol v1.47.0 github.com/livekit/server-sdk-go/v2 v2.16.7-0.20260608025623-a5da15b13baa github.com/mattn/go-isatty v0.0.22 github.com/moby/patternmatcher v0.6.1 diff --git a/go.sum b/go.sum index e2675e62..7c6c080d 100644 --- a/go.sum +++ b/go.sum @@ -357,8 +357,8 @@ github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731 h1:9x+U2HGLrSw5AT github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731/go.mod h1:Rs3MhFwutWhGwmY1VQsygw28z5bWcnEYmS1OG9OxjOQ= github.com/livekit/mediatransportutil v0.0.0-20260605212259-862d4a7bcb1e h1:SkgQRcG2VYEhh80Qb/zYZo8rWKJzNfJcfUQnXe6su2M= github.com/livekit/mediatransportutil v0.0.0-20260605212259-862d4a7bcb1e/go.mod h1:o8CFmAdrVwzJNOCsQCLUzXRjokkufNshnQHOe4fRaqU= -github.com/livekit/protocol v1.46.7-0.20260610175657-3ccff51ebf5b h1:F3dXIOp+D5rpXn1VwQWUm5tTV0W9Jbcf0yUrnY56sWs= -github.com/livekit/protocol v1.46.7-0.20260610175657-3ccff51ebf5b/go.mod h1:jO+y05AU9Ec4JswDyuzKCZ4bhziOS0CzMqgnbj60Dzs= +github.com/livekit/protocol v1.47.0 h1:6dwpf2pSRnvUlhpYyVESFQiBCj8klFKbC40bZjX7AwY= +github.com/livekit/protocol v1.47.0/go.mod h1:jO+y05AU9Ec4JswDyuzKCZ4bhziOS0CzMqgnbj60Dzs= github.com/livekit/psrpc v0.7.2 h1:6oZ+NODJ2pLyaT6VqDq1F4Qc/3TpDUSpyphj/P9MhQc= github.com/livekit/psrpc v0.7.2/go.mod h1:rAI+m2+/cb4x9RXhLRtUx5ZwdfjjXOl4zi46IjEetaw= github.com/livekit/server-sdk-go/v2 v2.16.7-0.20260608025623-a5da15b13baa h1:B19yilP7+JjekKMD0WejMh1Kvypdxpr5yxQZiFStRD0= From 8686bee5bc6c8564b6b49c05edf7eb8535cdbd6e Mon Sep 17 00:00:00 2001 From: Arseny Boykov Date: Tue, 16 Jun 2026 22:11:45 +0400 Subject: [PATCH 4/4] simulate: update autocomplete --- autocomplete/fish_autocomplete | 1 + 1 file changed, 1 insertion(+) diff --git a/autocomplete/fish_autocomplete b/autocomplete/fish_autocomplete index 8419a68d..da962832 100644 --- a/autocomplete/fish_autocomplete +++ b/autocomplete/fish_autocomplete @@ -188,6 +188,7 @@ complete -x -c lk -n '__fish_seen_subcommand_from agent a; and not __fish_seen_s complete -c lk -n '__fish_seen_subcommand_from agent a; and __fish_seen_subcommand_from simulate' -f -l num-simulations -s n -r -d 'Number of scenarios to generate' complete -c lk -n '__fish_seen_subcommand_from agent a; and __fish_seen_subcommand_from simulate' -f -l concurrency -r -d 'Max simulations running in parallel (default: server-side limit)' complete -c lk -n '__fish_seen_subcommand_from agent a; and __fish_seen_subcommand_from simulate' -f -l scenarios -r -d 'Path to a scenarios `FILE` (yaml). If omitted, scenarios are generated from the agent\'s source' +complete -c lk -n '__fish_seen_subcommand_from agent a; and __fish_seen_subcommand_from simulate' -f -l audio -d 'Simulate speech-to-speech interactions using the agent\'s full audio pipeline. By default, simulations run in text-only mode.' complete -c lk -n '__fish_seen_subcommand_from agent a; and __fish_seen_subcommand_from simulate' -f -l yes -s y -d 'Skip the source-upload confirmation prompt (required for non-interactive runs that generate from source)' complete -c lk -n '__fish_seen_subcommand_from agent a; and __fish_seen_subcommand_from simulate' -f -l help -s h -d 'show help' complete -x -c lk -n '__fish_seen_subcommand_from agent a; and __fish_seen_subcommand_from simulate; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'