From 9cd9784b16f865242da7eeb1030aad6d584820ac Mon Sep 17 00:00:00 2001 From: Arseny Boykov Date: Mon, 15 Jun 2026 16:43:04 +0400 Subject: [PATCH] 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