KosmoKrator

productivity

Sauce Labs Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Sauce Labs KosmoKrator integration.

Lua Namespace

Agents call this integration through app.integrations.sauce_labs.*. Use lua_read_doc("integrations.sauce-labs") inside KosmoKrator to discover the same reference at runtime.

Call Lua from the Headless CLI

Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic Sauce Labs workflow without starting an interactive agent session.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.sauce_labs.get_status({}))' --json
Read Lua docs headlessly
kosmo integrations:lua --eval 'print(docs.read("sauce-labs"))' --json
kosmo integrations:lua --eval 'print(docs.read("sauce-labs.get_status"))' --json

Workflow file

Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.

workflow.lua
local sauce_labs = app.integrations.sauce_labs
local result = sauce_labs.get_status({})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. integrations:lua exposes app.integrations.sauce_labs, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.sauce_labs.default.* or app.integrations.sauce_labs.work.* when you configured named credential accounts.

MCP-only Lua

If the script only needs configured MCP servers and does not need Sauce Labs, use the narrower mcp:lua command.

MCP Lua command
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Sauce Labs

Namespace: sauce-labs

Use the Sauce Labs integration to inspect and manage Sauce Labs REST API resources across platform status, VDC jobs, v2 builds, real device jobs, private devices, and Sauce Connect tunnels. Authentication uses HTTP Basic credentials: username and access_key.

Common Workflows

  • Use sauce_labs_get_status and sauce_labs_list_platforms before scheduling tests or validating regional availability.
  • Use sauce_labs_list_jobs, sauce_labs_get_job, sauce_labs_update_job, sauce_labs_stop_job, sauce_labs_delete_job, sauce_labs_list_job_assets, and sauce_labs_get_job_asset for VDC jobs.
  • Use sauce_labs_list_builds, sauce_labs_get_build, sauce_labs_get_job_build, and sauce_labs_list_build_jobs for v2 build reporting. build_source is usually vdc or rdc.
  • Use sauce_labs_list_rdc_jobs, sauce_labs_get_rdc_job, sauce_labs_get_rdc_job_asset, sauce_labs_stop_rdc_job, and sauce_labs_delete_rdc_job for real device cloud jobs.
  • Use sauce_labs_list_private_devices to inspect private real devices.
  • Use sauce_labs_list_tunnels, sauce_labs_get_tunnel, sauce_labs_get_tunnel_jobs_count, and sauce_labs_stop_tunnel for Sauce Connect tunnels.
  • Use sauce_labs_api_get, sauce_labs_api_put, and sauce_labs_api_delete for safe relative API paths not covered by first-class tools. Full URLs are rejected.

Argument Notes

Most legacy job and tunnel endpoints include username; omit it on list calls to default to the configured username. V2 build tools require build_source (vdc or rdc). Asset tools use file_name for VDC assets and asset_type for RDC assets.

Read tools accept optional filters through query. Write tools accept request bodies through payload.

Examples

local status = tools.sauce_labs_get_status({})

local builds = tools.sauce_labs_list_builds({
  build_source = "vdc",
  query = { limit = 20, sort = "desc" }
})

local assets = tools.sauce_labs_list_job_assets({
  username = "sauce-user",
  job_id = "job-id"
})

local tunnel = tools.sauce_labs_get_tunnel_jobs_count({
  username = "sauce-user",
  tunnel_id = "tunnel-id"
})

Return Shapes

The integration returns decoded Sauce Labs JSON responses directly. Empty successful responses are normalized to:

{"success": true}

Text or asset responses are normalized to:

{"value": "raw response text"}

Sauce Labs uses regional API hosts. The default is https://api.us-west-1.saucelabs.com; set the API URL credential for other regions such as EU Central.

Raw agent markdown
# Sauce Labs

Namespace: `sauce-labs`

Use the Sauce Labs integration to inspect and manage Sauce Labs REST API resources across platform status, VDC jobs, v2 builds, real device jobs, private devices, and Sauce Connect tunnels. Authentication uses HTTP Basic credentials: `username` and `access_key`.

## Common Workflows

- Use `sauce_labs_get_status` and `sauce_labs_list_platforms` before scheduling tests or validating regional availability.
- Use `sauce_labs_list_jobs`, `sauce_labs_get_job`, `sauce_labs_update_job`, `sauce_labs_stop_job`, `sauce_labs_delete_job`, `sauce_labs_list_job_assets`, and `sauce_labs_get_job_asset` for VDC jobs.
- Use `sauce_labs_list_builds`, `sauce_labs_get_build`, `sauce_labs_get_job_build`, and `sauce_labs_list_build_jobs` for v2 build reporting. `build_source` is usually `vdc` or `rdc`.
- Use `sauce_labs_list_rdc_jobs`, `sauce_labs_get_rdc_job`, `sauce_labs_get_rdc_job_asset`, `sauce_labs_stop_rdc_job`, and `sauce_labs_delete_rdc_job` for real device cloud jobs.
- Use `sauce_labs_list_private_devices` to inspect private real devices.
- Use `sauce_labs_list_tunnels`, `sauce_labs_get_tunnel`, `sauce_labs_get_tunnel_jobs_count`, and `sauce_labs_stop_tunnel` for Sauce Connect tunnels.
- Use `sauce_labs_api_get`, `sauce_labs_api_put`, and `sauce_labs_api_delete` for safe relative API paths not covered by first-class tools. Full URLs are rejected.

## Argument Notes

Most legacy job and tunnel endpoints include `username`; omit it on list calls to default to the configured username. V2 build tools require `build_source` (`vdc` or `rdc`). Asset tools use `file_name` for VDC assets and `asset_type` for RDC assets.

Read tools accept optional filters through `query`. Write tools accept request bodies through `payload`.

## Examples

```lua
local status = tools.sauce_labs_get_status({})

local builds = tools.sauce_labs_list_builds({
  build_source = "vdc",
  query = { limit = 20, sort = "desc" }
})

local assets = tools.sauce_labs_list_job_assets({
  username = "sauce-user",
  job_id = "job-id"
})

local tunnel = tools.sauce_labs_get_tunnel_jobs_count({
  username = "sauce-user",
  tunnel_id = "tunnel-id"
})
```

## Return Shapes

The integration returns decoded Sauce Labs JSON responses directly. Empty successful responses are normalized to:

```json
{"success": true}
```

Text or asset responses are normalized to:

```json
{"value": "raw response text"}
```

Sauce Labs uses regional API hosts. The default is `https://api.us-west-1.saucelabs.com`; set the API URL credential for other regions such as EU Central.
Metadata-derived Lua example
local result = app.integrations.sauce_labs.get_status({})
print(result)

Functions

get_status Read

Get Sauce Labs platform status.

Lua path
app.integrations.sauce_labs.get_status
Full name
sauce-labs.sauce_labs_get_status
ParameterTypeRequiredDescription
No parameters.
list_platforms Read

List supported Sauce Labs platforms.

Lua path
app.integrations.sauce_labs.list_platforms
Full name
sauce-labs.sauce_labs_list_platforms
ParameterTypeRequiredDescription
No parameters.
list_jobs Read

List VDC jobs for a user.

Lua path
app.integrations.sauce_labs.list_jobs
Full name
sauce-labs.sauce_labs_list_jobs
ParameterTypeRequiredDescription
No parameters.
get_job Read

Get one VDC job.

Lua path
app.integrations.sauce_labs.get_job
Full name
sauce-labs.sauce_labs_get_job
ParameterTypeRequiredDescription
No parameters.
update_job Write

Update one VDC job.

Lua path
app.integrations.sauce_labs.update_job
Full name
sauce-labs.sauce_labs_update_job
ParameterTypeRequiredDescription
No parameters.
stop_job Write

Stop one VDC job.

Lua path
app.integrations.sauce_labs.stop_job
Full name
sauce-labs.sauce_labs_stop_job
ParameterTypeRequiredDescription
No parameters.
delete_job Write

Delete one VDC job.

Lua path
app.integrations.sauce_labs.delete_job
Full name
sauce-labs.sauce_labs_delete_job
ParameterTypeRequiredDescription
No parameters.
list_job_assets Read

List assets for one VDC job.

Lua path
app.integrations.sauce_labs.list_job_assets
Full name
sauce-labs.sauce_labs_list_job_assets
ParameterTypeRequiredDescription
No parameters.
get_job_asset Read

Get one VDC job asset file.

Lua path
app.integrations.sauce_labs.get_job_asset
Full name
sauce-labs.sauce_labs_get_job_asset
ParameterTypeRequiredDescription
No parameters.
list_builds Read

List v2 builds by source.

Lua path
app.integrations.sauce_labs.list_builds
Full name
sauce-labs.sauce_labs_list_builds
ParameterTypeRequiredDescription
No parameters.
get_build Read

Get one v2 build.

Lua path
app.integrations.sauce_labs.get_build
Full name
sauce-labs.sauce_labs_get_build
ParameterTypeRequiredDescription
No parameters.
get_job_build Read

Lookup the build for a known job.

Lua path
app.integrations.sauce_labs.get_job_build
Full name
sauce-labs.sauce_labs_get_job_build
ParameterTypeRequiredDescription
No parameters.
list_build_jobs Read

List jobs in a v2 build.

Lua path
app.integrations.sauce_labs.list_build_jobs
Full name
sauce-labs.sauce_labs_list_build_jobs
ParameterTypeRequiredDescription
No parameters.
list_rdc_jobs Read

List real device jobs.

Lua path
app.integrations.sauce_labs.list_rdc_jobs
Full name
sauce-labs.sauce_labs_list_rdc_jobs
ParameterTypeRequiredDescription
No parameters.
get_rdc_job Read

Get one real device job.

Lua path
app.integrations.sauce_labs.get_rdc_job
Full name
sauce-labs.sauce_labs_get_rdc_job
ParameterTypeRequiredDescription
No parameters.
get_rdc_job_asset Read

Download one real device job asset.

Lua path
app.integrations.sauce_labs.get_rdc_job_asset
Full name
sauce-labs.sauce_labs_get_rdc_job_asset
ParameterTypeRequiredDescription
No parameters.
stop_rdc_job Write

Stop one real device job.

Lua path
app.integrations.sauce_labs.stop_rdc_job
Full name
sauce-labs.sauce_labs_stop_rdc_job
ParameterTypeRequiredDescription
No parameters.
delete_rdc_job Write

Delete one real device job.

Lua path
app.integrations.sauce_labs.delete_rdc_job
Full name
sauce-labs.sauce_labs_delete_rdc_job
ParameterTypeRequiredDescription
No parameters.
list_private_devices Read

List private real devices.

Lua path
app.integrations.sauce_labs.list_private_devices
Full name
sauce-labs.sauce_labs_list_private_devices
ParameterTypeRequiredDescription
No parameters.
list_tunnels Read

List Sauce Connect tunnels.

Lua path
app.integrations.sauce_labs.list_tunnels
Full name
sauce-labs.sauce_labs_list_tunnels
ParameterTypeRequiredDescription
No parameters.
get_tunnel Read

Get one Sauce Connect tunnel.

Lua path
app.integrations.sauce_labs.get_tunnel
Full name
sauce-labs.sauce_labs_get_tunnel
ParameterTypeRequiredDescription
No parameters.
get_tunnel_jobs_count Read

Get current running jobs for one tunnel.

Lua path
app.integrations.sauce_labs.get_tunnel_jobs_count
Full name
sauce-labs.sauce_labs_get_tunnel_jobs_count
ParameterTypeRequiredDescription
No parameters.
stop_tunnel Write

Stop one Sauce Connect tunnel.

Lua path
app.integrations.sauce_labs.stop_tunnel
Full name
sauce-labs.sauce_labs_stop_tunnel
ParameterTypeRequiredDescription
No parameters.
api_get Read

Call a safe relative Sauce Labs GET path.

Lua path
app.integrations.sauce_labs.api_get
Full name
sauce-labs.sauce_labs_api_get
ParameterTypeRequiredDescription
No parameters.
api_put Write

Call a safe relative Sauce Labs PUT path.

Lua path
app.integrations.sauce_labs.api_put
Full name
sauce-labs.sauce_labs_api_put
ParameterTypeRequiredDescription
No parameters.
api_delete Write

Call a safe relative Sauce Labs DELETE path.

Lua path
app.integrations.sauce_labs.api_delete
Full name
sauce-labs.sauce_labs_api_delete
ParameterTypeRequiredDescription
No parameters.