Skip to content

feat(cli): add --service-tier flag and --no-wait default for execute#189

Open
spillai wants to merge 2 commits into
vlm-run:mainfrom
spillai:spillai/dev-sdk-devex-improvements
Open

feat(cli): add --service-tier flag and --no-wait default for execute#189
spillai wants to merge 2 commits into
vlm-run:mainfrom
spillai:spillai/dev-sdk-devex-improvements

Conversation

@spillai
Copy link
Copy Markdown
Contributor

@spillai spillai commented May 13, 2026

Summary

  • Add --service-tier CLI flag to execute, generate, and chat commands, supporting the 3 tiers: default, flex (50% discount, higher latency), and priority (1.8x premium)
  • Add service_tier field to AgentExecutionOrCreationConfig so the execute path carries the value through to the API
  • Narrow GenerationConfig.service_tier from 5 values to the 3 currently supported: default, flex, priority
  • Change execute default from --wait to --no-wait (fire-and-forget by default)

Test plan

  • Verify vlmrun execute --help shows --service-tier and --wait/--no-wait with correct defaults
  • Verify vlmrun generate --help shows --service-tier
  • Verify vlmrun chat --help shows --service-tier
  • Verify invalid tier values are rejected with a clear error message
  • Run pytest -sv tests/test_predictions.py to confirm service_tier tests pass

Open in Devin Review

spillai added 2 commits May 12, 2026 18:22
…mands

Expose the service_tier option (standard/flex/priority) across all three
CLI entry points so users can control delivery tier and pricing from the
command line. Also adds service_tier to AgentExecutionOrCreationConfig
so the execute path can carry the value through to the API.
Remove 'auto' and 'standard' from the accepted service_tier values
across GenerationConfig, AgentExecutionOrCreationConfig, CLI flags,
and tests to match the currently supported tiers.
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the service_tier option across the chat, execute, and generate CLI commands, allowing users to specify 'default', 'flex', or 'priority' delivery tiers. Corresponding updates were made to the client types and validation logic, and the default behavior for the execute command was changed to not wait for completion. Feedback indicates that the help text for the --service-tier option in several files incorrectly references a 'standard' tier, which should be updated to 'default' to align with the implementation.

Comment thread vlmrun/cli/_cli/chat.py
service_tier: Optional[str] = typer.Option(
None,
"--service-tier",
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The help text refers to standard as a service tier, but this value is not included in AVAILABLE_SERVICE_TIERS and has been removed from the supported tiers in the client types. It should be updated to default to match the implementation and avoid user confusion.

Suggested change
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
help="Delivery tier: default, flex (50%% discount), or priority (1.8x premium).",

service_tier: Optional[str] = typer.Option(
None,
"--service-tier",
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The help text refers to standard as a service tier, but this value is not included in AVAILABLE_SERVICE_TIERS and has been removed from the supported tiers in the client types. It should be updated to default to match the implementation and avoid user confusion.

Suggested change
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
help="Delivery tier: default, flex (50%% discount), or priority (1.8x premium).",

service_tier: Optional[str] = typer.Option(
None,
"--service-tier",
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The help text refers to standard as a service tier, but this value is not included in AVAILABLE_SERVICE_TIERS and has been removed from the supported tiers in the client types. It should be updated to default to match the implementation and avoid user confusion.

Suggested change
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
help="Delivery tier: default, flex (50%% discount), or priority (1.8x premium).",

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 4 potential issues.

View 3 additional findings in Devin Review.

Open in Devin Review

Comment thread vlmrun/cli/_cli/chat.py
service_tier: Optional[str] = typer.Option(
None,
"--service-tier",
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 CLI help text lists "standard" as a valid service tier but the actual valid tier is "default"

The --service-tier help string in chat.py:590 says "Delivery tier: standard, flex ..." but AVAILABLE_SERVICE_TIERS at chat.py:150 and the Literal type in types.py:607 define the valid tiers as ["default", "flex", "priority"]. A user following the help text who passes --service-tier standard will get an error: "Invalid service tier 'standard'". The same bug exists in execute.py:312 and generate.py:178.

Suggested change
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
help="Delivery tier: default, flex (50%% discount), or priority (1.8x premium).",
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

service_tier: Optional[str] = typer.Option(
None,
"--service-tier",
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 CLI help text lists "standard" as a valid service tier but the actual valid tier is "default"

Same issue as in chat.py: the --service-tier help string in execute.py:312 says "standard" but the valid tier is "default" (per AVAILABLE_SERVICE_TIERS at execute.py:38).

Suggested change
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
help="Delivery tier: default, flex (50%% discount), or priority (1.8x premium).",
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

service_tier: Optional[str] = typer.Option(
None,
"--service-tier",
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 CLI help text lists "standard" as a valid service tier but the actual valid tier is "default"

Same issue as in chat.py: the --service-tier help string in generate.py:178 says "standard" but the valid tier is "default" (per AVAILABLE_SERVICE_TIERS at generate.py:33).

Suggested change
help="Delivery tier: standard, flex (50%% discount), or priority (1.8x premium).",
help="Delivery tier: default, flex (50%% discount), or priority (1.8x premium).",
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread vlmrun/client/types.py
Comment on lines +245 to +246
"Delivery tier: 'default' (baseline), 'flex' (50%% discount, higher latency), "
"or 'priority' (1.8x premium)."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Double percent %% in Pydantic Field descriptions renders as literal %% instead of %

The description strings in both AgentExecutionOrCreationConfig.service_tier (types.py:245) and GenerationConfig.service_tier (types.py:610) use 50%% which is a Click/typer escaping convention. However, Pydantic Field(description=...) strings are plain Python strings — %% is not processed as an escape and will render literally as "50%% discount" instead of "50% discount" in generated JSON schemas and documentation.

Suggested change
"Delivery tier: 'default' (baseline), 'flex' (50%% discount, higher latency), "
"or 'priority' (1.8x premium)."
"Delivery tier: 'default' (baseline), 'flex' (50% discount, higher latency), "
"or 'priority' (1.8x premium)."
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant