vs-user-onboarding
AI Search New User Purchase Onboarding
When to Use
Use this skill when the agent detects that a user needs to complete AI Search purchase / order placement, recover from a missing-auth CLI error, configure local AK/SK, or start using SearchCLI/vs for the first time before continuing with later Viking AI Search workflows.
Common trigger phrases include:
- "I downloaded SearchCLI; how do I use it?"
- "I just installed vs; how do I get started?"
- "我下载了 SearchCLI,帮我看一下如何使用"
- "我刚装了 vs,怎么开始用"
- "我没有火山引擎账号,要怎么开始"
- "帮我接入 / 购买 Viking AI Search"
The agent must route the user to the right entry point, guide account registration and real-name verification as human checkpoints, help the user create AK/SK and configure the CLI, place the billing order through vs purchase order create after the user confirms a price quote, then query the current order status once. Order placement and status checks require local AK/SK; account registration, real-name verification, and AK/SK creation cannot be automated.
Entry Paths
Choose one entry path before running the workflow, but always start the skill by running vs auth status --json so returning users are not forced through registration again.
| Entry path |
Trigger |
Start point |
| New-user purchase |
The user asks to place an order, purchase, activate, open AI Search, or says they are in a new-user registration conversion flow |
Step 1, then Step 2 for stage routing (A/B -> Steps 3-6) |
| Purchased but not configured |
The user says they have purchased and needs AK/SK or local CLI setup |
Step 4 |
| Missing-auth CLI recovery |
A credential-required command fails with the CLI recovery message below |
Use the recovery routing rules, then continue at Step 3, Step 5, or Step 6 |
Credential-required commands include product and runtime commands such as vs item ..., vs search run, vs app ..., vs dataset ..., vs recommend ..., vs purchase order price, vs purchase order create, and vs purchase order status.
The CLI missing-auth recovery message is:
You are not authenticated. To get started:
- If you already have AK/SK: run `vs auth login` or `vs auth import-env`.
- If you are new to Viking AI Search: run `vs skill show vs-user-onboarding`.
Recovery routing:
- If the user already has AK/SK, guide them to
vs auth login or vs auth import-env (Step 5), then check status at Step 6.
- If the user is new to Viking AI Search, continue at Step 2.
- If the user is unsure whether they purchased the product, continue at Step 2 and conservatively treat "not sure if bought" as not purchased.
Version Check
Before starting this skill workflow, run vs version check --json. Continue only when status is up-to-date. If status is update-available, stop and tell the user to update the cloned vs repository, then run git pull --ff-only, bash ./scripts/install.sh, and bash ./scripts/install-skills.sh all --target auto --force (PowerShell: scripts/install.ps1 and scripts/install-skills.ps1). If the status is unknown, stop and report that the CLI version could not be verified.
Preconditions
- The user is in the new-user registration conversion flow.
- The agent can ask the user which region/environment they use and must wait for explicit user confirmation at every human checkpoint.
- The agent places billing orders through the CLI (
vs purchase order create) only after the user confirms the price quote from vs purchase order price, then calls vs purchase order status once. Account registration, real-name verification, and AK/SK creation remain human checkpoints the agent must not automate.
vs CLI is installed. Order placement and order visibility checks require configured local AK/SK because the console OpenAPI is signed. Account registration and real-name verification happen on the console web page before AK/SK can be created.
Commands
purchase order price: quote a purchase/renew/modify price through the console OpenAPI without creating an order; requires local AK/SK.
purchase order create: create a billing order through the console OpenAPI; requires local AK/SK.
purchase order status: check once whether the billing instance is visible; requires local AK/SK.
purchase link: fallback flow that prints the console web purchase page link and does not require AK/SK; use when the user prefers the web page or a plan-eligibility error must be handled on the console.
auth status: inspect local auth and, when AK/SK exists, classify readiness through the purchase order status path.
doctor: inspect local CLI environment if command execution fails before reaching the service.
Workflow
Step 1: Detect current authentication state
Always run vs auth status --json first and inspect the result. In CLI versions that expose structured status, this command first checks whether local AK/SK is configured; when AK/SK exists, it uses the same backend path as vs purchase order status to verify that the Viking AI Search billing instance is visible and healthy.
- Authenticated and product enabled (
status: "ok") -> run vs doctor --json; if it passes, go directly to Step 7 (early exit; do not force a returning user through registration again). A post-paid instance (including the free post-paid tier) also reports as enabled here, so do not push a post-paid user back through the purchase flow.
reason: "unconfigured" -> go to Step 2; if the user already has AK/SK, Step 2 routes to Step 5.
reason: "invalid" -> go to Step 5 and ask the user to reconfigure valid AK/SK.
reason: "product-not-enabled" -> credentials are valid but the product is not purchased; go to Step 2. A user who already has an account and AK/SK routes as option B and proceeds to order placement (Step 6).
reason: "network-error" -> ask the user to fix connectivity or endpoint configuration before continuing; do not start registration unless the user confirms they are a new buyer.
If the CLI version exposes structured failure reasons (unconfigured,
invalid, product-not-enabled, network-error), use them to skip steps
where possible (e.g., product-not-enabled with valid credentials means
registration and real-name verification are likely already done; after the
Step 2 routing confirms option B, proceed to AK/SK setup and CLI ordering).
If the CLI only reports "authenticated / not authenticated", proceed to
Step 2's question.
Step 2: Ask the user which state they are in (Stage A confirmation)
Present this exact table to the user and ask them to pick one option. Do not show
the internal next-step routing to the user.
| Option |
Your state |
| A |
I don't have a Volcengine account yet |
| B |
I have an account but haven't purchased Viking AI Search |
| C |
I've already purchased; I need to get my AK/SK |
| D |
I already have AK/SK, just need to configure the CLI |
Internal routing after the user answers:
- A -> Step 3 (register and verify), then Steps 4-6
- B -> Step 4 (create AK/SK), then Steps 5-6
- C -> Step 4 (create AK/SK), then Steps 5-6
- D -> Step 5 (configure the CLI), then Step 6
Confirmation contract: the user must reply with the option letter or its
plain equivalent ("A", "option A", "I don't have an account"). Free-text replies
that don't clearly map to an option require re-asking. If the user is unsure
("I'm not sure if I bought it"), conservatively pick the earlier option (treat
"not sure if bought" as B, not C).
Step 3 - account registration and real-name verification (entry path A only)
For users without a Volcengine/BytePlus account (option A), registration and real-name verification happen on the console web page. There is no CLI/API for them, so this is a human checkpoint and the agent must not operate the console for the user.
- Send the user to the official console registration page matching the environment they will use (Volcano Engine for
volcano-cn-beijing / volcano-ap-southeast-1, BytePlus for byteplus-ap-southeast-1).
- Tell the user to complete real-name verification. Some plans have eligibility constraints visible only during ordering, e.g. the free trial requires an enterprise account and the first-month trial requires verification status.
- Wait until the user explicitly confirms registration and verification are complete, then continue at Step 4.
Entry path B users (already have an account) skip this step and start at Step 4.
Step 4 - create AK/SK (entry paths A, B, and C)
Ask the user this exact question: Are you signed in as a root account or a sub-account?
- Root account: send the key management link
https://console.volcengine.com/iam/keymanage, then ask the user to create or retrieve AK/SK there. Tell the user not to paste AK/SK into chat.
- Sub-account or unsure: explain that sub-accounts usually cannot create AK/SK. The user must contact the enterprise administrator, and the administrator should create and assign the access key from the key management page. Wait until the user confirms that AK/SK is available; do not attempt privilege escalation or any bypass.
This is a human checkpoint. The agent must wait for explicit confirmation that the user has AK/SK available before moving to Step 5. Entry path D users (already have AK/SK) skip to Step 5.
Step 5 - configure local credentials
Use only the supported CLI credential flows. Never ask the user to paste AK/SK into chat.
- If
VIKING_AK and VIKING_SK are already set in the user's real shell, ask the user to run vs auth import-env; otherwise, if the user has an interactive terminal, ask the user to run vs auth login.
- During region selection, explicitly tell the user:
- Mainland China customers should choose
cn-beijing.
- Southeast Asia customers, including Indonesia, Singapore, and Malaysia, should choose
ap-southeast-1 (Johor).
- BytePlus customers should choose the BytePlus environment endpoints.
- The user chooses the region; the agent must not silently choose it. The region determines the billing environment and currency (CNY for China regions, USD otherwise), so it must match the account used for purchase.
- The project defaults to
default. If the user places the order under another project, pass --project-name <project-name> on the order commands and later verification commands.
- After credentials are configured, entry paths A and B continue to Step 6 to place the order; entry paths C and D continue to Step 6 for a direct status check.
Step 6 - create order and query status
Order placement and status checks call the console OpenAPI, so they require the AK/SK configured in Step 5. Entry paths C and D skip items 1-6 and run the status check in item 7 below.
Before presenting the plan-selection table, query the current one-month standard-plan price:
vs purchase order price \
--scene purchase \
--configuration-code ai_search_standard_monthly \
--purchase-months 1
Read Result.PayableAmount and Result.Currency from the response. Use the result to render the Standard plan's one-month price in the table. Do not show a placeholder or reuse a previous quote. If the query fails, report the error and do not present a stale price.
Render the following numbered Markdown table. Translate the visible plan names and descriptions to the user's language, but keep ConfigurationCode values verbatim:
| # |
Plan |
ConfigurationCode |
One-month price |
Description |
| 1 |
Post-paid |
ai_search_post_paid |
Usage-based |
Usage-based pricing, unlimited applications, LLM-generated index configuration, and usage-based billing for search, chat, and recommendation APIs. |
| 2 |
Standard |
ai_search_standard_monthly |
<PayableAmount> <Currency> |
Larger data capacity, 20 applications, 50 datasets, 2 VSU storage, 10 VPU data processing, 5 VRU API calls, and 10 vaka Knowledge Assistant seats. |
Ask the user to reply with plan option 1 or 2. Do not ask for a free-form plan name.
If the user selects Standard, render a second numbered Markdown table for the purchase period:
| # |
Purchase period |
--purchase-months |
| 1 |
1 month |
1 |
| 2 |
3 months |
3 |
| 3 |
12 months |
12 |
Ask the user to reply with period option 1, 2, or 3, then render a separate numbered table for auto-renew:
| # |
Auto-renew |
Order flag |
| 1 |
Enable |
--auto-renew |
| 2 |
Disable |
Omit --auto-renew |
Ask the user to reply with auto-renew option 1 or 2. If the user selects Post-paid, skip both tables and omit --purchase-months.
After the plan and purchase period are selected, query the final purchase price before asking for purchase confirmation:
vs purchase order price --scene purchase --configuration-code <configuration-code> [--purchase-months <n>] [--project-name <project-name>]
- For the standard monthly plan, use the selected period-table value as
--purchase-months <n>.
- For post-paid, omit
--purchase-months.
- Treat the response's
PayableAmount and Currency (CNY or USD) as the source of truth.
- Render the final amount, currency, purchase period, selected plan, and auto-renew setting in a Markdown summary table.
Render a numbered Markdown confirmation table and ask the user to reply with option 1 or 2:
| # |
Action |
| 1 |
Confirm |
| 2 |
Cancel |
Do not create the order before the user selects option 1.
Create the order:
vs purchase order create --scene purchase --configuration-code <configuration-code> [--purchase-months <n>] [--auto-renew] [--project-name <project-name>]
--client-token is auto-generated for idempotency; if the command fails and must be retried for the same intended purchase, reuse the same client token so the order is not duplicated.
Immediately run:
vs purchase order status [--project-name <project-name>]
- enabled: continue to Step 7;
unconfigured or invalid: return to Step 5;
product-not-enabled or another non-enabled state: report the returned status and stop. Do not call purchase order wait or add a polling loop;
- network or other errors: surface the exact error.
Fallback: if order creation returns a plan-eligibility error that must be handled on the console web page, run vs purchase link --environment-id <environment-id> and let the user finish there.
Step 7 - hand off to data onboarding
Tell the user that authentication is complete and they can continue with vs-item-onboarding for data ingestion and their first search experience. End this workflow after the handoff.
Constraints
- Always respond in the language used by the user who asked the question. Use that language for explanations, questions, confirmation requests, error messages, and handoff instructions.
- This purchase workflow must use numbered Markdown tables for plan selection, Standard purchase periods, auto-renew, and final confirmation. Ask the user to reply with the table option number at each checkpoint. Do not use interactive cards, dense combined paragraphs, or free-form plan names.
- Before executing any concrete
vs ... command in this onboarding and purchase workflow, first consult vs-product-qa to verify the current command surface, required flags, payload fields, input format, and allowed values. Only after that check may you finalize parameters and run the command.
- Always start with
vs auth status --json; if it reports authenticated and vs doctor --json passes, early-exit to Step 7.
- Do not run
purchase order price, purchase order create, or purchase order status before local AK/SK is configured. Create an order only after the user confirms the current price quote, then query status once.
- Account registration, real-name verification, and AK/SK creation are human checkpoints. Never operate the console for the user; credential setup uses only
vs auth import-env or vs auth login.
- Do not call
purchase order wait or add a polling loop. Reuse the same client token when retrying the same intended purchase.
- Never ask the user to paste secrets, payment credentials, or identity documents into chat. For a sub-account that cannot create keys, direct the user to the enterprise administrator; do not escalate or bypass permissions.
- Use
vs purchase link --environment-id <environment-id> only as the fallback web flow. Never hardcode the URL; supported environment IDs are volcano-cn-beijing, volcano-ap-southeast-1, and byteplus-ap-southeast-1.
- If a purchase/onboarding failure or user follow-up turns into a product concept, capability, API field, console UI path, purchase, billing, or general troubleshooting question outside this purchase workflow, temporarily hand off to
vs-product-qa; after that answer, return to this workflow only if the user still wants to continue purchasing.
1---2name: vs-user-onboarding3description: Guide a brand-new SearchCLI/vs user from first-time usage questions to sign-up, purchase of Viking AI Search, AK/SK setup, and a working authenticated CLI. Use when the user says they downloaded or installed SearchCLI/vs and asks how to use it, how to start, sign up, buy, or onboard.4---56# vs-user-onboarding78# AI Search New User Purchase Onboarding910## When to Use1112Use this skill when the agent detects that a user needs to complete AI Search purchase / order placement, recover from a missing-auth CLI error, configure local AK/SK, or start using SearchCLI/vs for the first time before continuing with later Viking AI Search workflows.1314Common trigger phrases include:1516- "I downloaded SearchCLI; how do I use it?"17- "I just installed vs; how do I get started?"18- "我下载了 SearchCLI,帮我看一下如何使用"19- "我刚装了 vs,怎么开始用"20- "我没有火山引擎账号,要怎么开始"21- "帮我接入 / 购买 Viking AI Search"2223The agent must route the user to the right entry point, guide account registration and real-name verification as human checkpoints, help the user create AK/SK and configure the CLI, place the billing order through `vs purchase order create` after the user confirms a price quote, then query the current order status once. Order placement and status checks require local AK/SK; account registration, real-name verification, and AK/SK creation cannot be automated.2425## Entry Paths2627Choose one entry path before running the workflow, but always start the skill by running `vs auth status --json` so returning users are not forced through registration again.2829| Entry path | Trigger | Start point |30|---|---|---|31| New-user purchase | The user asks to place an order, purchase, activate, open AI Search, or says they are in a new-user registration conversion flow | Step 1, then Step 2 for stage routing (A/B -> Steps 3-6) |32| Purchased but not configured | The user says they have purchased and needs AK/SK or local CLI setup | Step 4 |33| Missing-auth CLI recovery | A credential-required command fails with the CLI recovery message below | Use the recovery routing rules, then continue at Step 3, Step 5, or Step 6 |3435Credential-required commands include product and runtime commands such as `vs item ...`, `vs search run`, `vs app ...`, `vs dataset ...`, `vs recommend ...`, `vs purchase order price`, `vs purchase order create`, and `vs purchase order status`.3637The CLI missing-auth recovery message is:3839```text40You are not authenticated. To get started:41- If you already have AK/SK: run `vs auth login` or `vs auth import-env`.42- If you are new to Viking AI Search: run `vs skill show vs-user-onboarding`.43```4445Recovery routing:4647- If the user already has AK/SK, guide them to `vs auth login` or `vs auth import-env` (Step 5), then check status at Step 6.48- If the user is new to Viking AI Search, continue at Step 2.49- If the user is unsure whether they purchased the product, continue at Step 2 and conservatively treat "not sure if bought" as not purchased.5051## Version Check5253Before starting this skill workflow, run `vs version check --json`. Continue only when `status` is `up-to-date`. If `status` is `update-available`, stop and tell the user to update the cloned `vs` repository, then run `git pull --ff-only`, `bash ./scripts/install.sh`, and `bash ./scripts/install-skills.sh all --target auto --force` (PowerShell: `scripts/install.ps1` and `scripts/install-skills.ps1`). If the status is `unknown`, stop and report that the CLI version could not be verified.5455## Preconditions5657- The user is in the new-user registration conversion flow.58- The agent can ask the user which region/environment they use and must wait for explicit user confirmation at every human checkpoint.59- The agent places billing orders through the CLI (`vs purchase order create`) only after the user confirms the price quote from `vs purchase order price`, then calls `vs purchase order status` once. Account registration, real-name verification, and AK/SK creation remain human checkpoints the agent must not automate.60- `vs` CLI is installed. Order placement and order visibility checks require configured local AK/SK because the console OpenAPI is signed. Account registration and real-name verification happen on the console web page before AK/SK can be created.6162## Commands6364- `purchase order price`: quote a purchase/renew/modify price through the console OpenAPI without creating an order; requires local AK/SK.65- `purchase order create`: create a billing order through the console OpenAPI; requires local AK/SK.66- `purchase order status`: check once whether the billing instance is visible; requires local AK/SK.67- `purchase link`: fallback flow that prints the console web purchase page link and does not require AK/SK; use when the user prefers the web page or a plan-eligibility error must be handled on the console.68- `auth status`: inspect local auth and, when AK/SK exists, classify readiness through the purchase order status path.69- `doctor`: inspect local CLI environment if command execution fails before reaching the service.7071## Workflow7273### Step 1: Detect current authentication state74 75Always run `vs auth status --json` first and inspect the result. In CLI versions that expose structured status, this command first checks whether local AK/SK is configured; when AK/SK exists, it uses the same backend path as `vs purchase order status` to verify that the Viking AI Search billing instance is visible and healthy.76 77- **Authenticated and product enabled** (`status: "ok"`) -> run `vs doctor --json`; if it passes, go directly to Step 7 (early exit; do not force a returning user through registration again). A post-paid instance (including the free post-paid tier) also reports as enabled here, so do not push a post-paid user back through the purchase flow.78- **`reason: "unconfigured"`** -> go to Step 2; if the user already has AK/SK, Step 2 routes to Step 5.79- **`reason: "invalid"`** -> go to Step 5 and ask the user to reconfigure valid AK/SK.80- **`reason: "product-not-enabled"`** -> credentials are valid but the product is not purchased; go to Step 2. A user who already has an account and AK/SK routes as option B and proceeds to order placement (Step 6).81- **`reason: "network-error"`** -> ask the user to fix connectivity or endpoint configuration before continuing; do not start registration unless the user confirms they are a new buyer.82 83> If the CLI version exposes structured failure reasons (`unconfigured`,84> `invalid`, `product-not-enabled`, `network-error`), use them to skip steps85> where possible (e.g., `product-not-enabled` with valid credentials means86> registration and real-name verification are likely already done; after the87> Step 2 routing confirms option B, proceed to AK/SK setup and CLI ordering).88> If the CLI only reports "authenticated / not authenticated", proceed to89> Step 2's question.90 91### Step 2: Ask the user which state they are in (Stage A confirmation)92 93Present this exact table to the user and ask them to pick one option. Do not show94the internal next-step routing to the user.95 96| Option | Your state |97|--------|-----------------------------------------------------|98| A | I don't have a Volcengine account yet |99| B | I have an account but haven't purchased Viking AI Search |100| C | I've already purchased; I need to get my AK/SK |101| D | I already have AK/SK, just need to configure the CLI |102103Internal routing after the user answers:104105- A -> Step 3 (register and verify), then Steps 4-6106- B -> Step 4 (create AK/SK), then Steps 5-6107- C -> Step 4 (create AK/SK), then Steps 5-6108- D -> Step 5 (configure the CLI), then Step 6109 110**Confirmation contract**: the user must reply with the option letter or its111plain equivalent ("A", "option A", "I don't have an account"). Free-text replies112that don't clearly map to an option require re-asking. If the user is unsure113("I'm not sure if I bought it"), conservatively pick the earlier option (treat114"not sure if bought" as B, not C).115116### Step 3 - account registration and real-name verification (entry path A only)117118For users without a Volcengine/BytePlus account (option A), registration and real-name verification happen on the console web page. There is no CLI/API for them, so this is a human checkpoint and the agent must not operate the console for the user.1191201. Send the user to the official console registration page matching the environment they will use (Volcano Engine for `volcano-cn-beijing` / `volcano-ap-southeast-1`, BytePlus for `byteplus-ap-southeast-1`).1212. Tell the user to complete real-name verification. Some plans have eligibility constraints visible only during ordering, e.g. the free trial requires an enterprise account and the first-month trial requires verification status.1223. Wait until the user explicitly confirms registration and verification are complete, then continue at Step 4.123124Entry path B users (already have an account) skip this step and start at Step 4.125126### Step 4 - create AK/SK (entry paths A, B, and C)127128Ask the user this exact question: `Are you signed in as a root account or a sub-account?`129130- **Root account**: send the key management link `https://console.volcengine.com/iam/keymanage`, then ask the user to create or retrieve AK/SK there. Tell the user not to paste AK/SK into chat.131- **Sub-account or unsure**: explain that sub-accounts usually cannot create AK/SK. The user must contact the enterprise administrator, and the administrator should create and assign the access key from the key management page. Wait until the user confirms that AK/SK is available; do not attempt privilege escalation or any bypass.132133This is a human checkpoint. The agent must wait for explicit confirmation that the user has AK/SK available before moving to Step 5. Entry path D users (already have AK/SK) skip to Step 5.134135### Step 5 - configure local credentials136137Use only the supported CLI credential flows. Never ask the user to paste AK/SK into chat.1381391. If `VIKING_AK` and `VIKING_SK` are already set in the user's real shell, ask the user to run `vs auth import-env`; otherwise, if the user has an interactive terminal, ask the user to run `vs auth login`.1402. During region selection, explicitly tell the user:141 - Mainland China customers should choose `cn-beijing`.142 - Southeast Asia customers, including Indonesia, Singapore, and Malaysia, should choose `ap-southeast-1` (Johor).143 - BytePlus customers should choose the BytePlus environment endpoints.144 - The user chooses the region; the agent must not silently choose it. The region determines the billing environment and currency (CNY for China regions, USD otherwise), so it must match the account used for purchase.1453. The project defaults to `default`. If the user places the order under another project, pass `--project-name <project-name>` on the order commands and later verification commands.1464. After credentials are configured, entry paths A and B continue to Step 6 to place the order; entry paths C and D continue to Step 6 for a direct status check.147148### Step 6 - create order and query status149150Order placement and status checks call the console OpenAPI, so they require the AK/SK configured in Step 5. Entry paths C and D skip items 1-6 and run the status check in item 7 below.1511521. Before presenting the plan-selection table, query the current one-month standard-plan price:153154 ```bash155 vs purchase order price \156 --scene purchase \157 --configuration-code ai_search_standard_monthly \158 --purchase-months 1159 ```160161 Read `Result.PayableAmount` and `Result.Currency` from the response. Use the result to render the Standard plan's one-month price in the table. Do not show a placeholder or reuse a previous quote. If the query fails, report the error and do not present a stale price.162163 Render the following numbered Markdown table. Translate the visible plan names and descriptions to the user's language, but keep `ConfigurationCode` values verbatim:164165 | # | Plan | `ConfigurationCode` | One-month price | Description |166 |---:|---|---|---|---|167 | 1 | Post-paid | `ai_search_post_paid` | Usage-based | Usage-based pricing, unlimited applications, LLM-generated index configuration, and usage-based billing for search, chat, and recommendation APIs. |168 | 2 | Standard | `ai_search_standard_monthly` | `<PayableAmount> <Currency>` | Larger data capacity, 20 applications, 50 datasets, 2 VSU storage, 10 VPU data processing, 5 VRU API calls, and 10 vaka Knowledge Assistant seats. |1691702. Ask the user to reply with plan option `1` or `2`. Do not ask for a free-form plan name.1711723. If the user selects Standard, render a second numbered Markdown table for the purchase period:173174 | # | Purchase period | `--purchase-months` |175 |---:|---|---:|176 | 1 | 1 month | 1 |177 | 2 | 3 months | 3 |178 | 3 | 12 months | 12 |179180 Ask the user to reply with period option `1`, `2`, or `3`, then render a separate numbered table for auto-renew:181182 | # | Auto-renew | Order flag |183 |---:|---|---|184 | 1 | Enable | `--auto-renew` |185 | 2 | Disable | Omit `--auto-renew` |186187 Ask the user to reply with auto-renew option `1` or `2`. If the user selects Post-paid, skip both tables and omit `--purchase-months`.1881894. After the plan and purchase period are selected, query the final purchase price before asking for purchase confirmation:190 `vs purchase order price --scene purchase --configuration-code <configuration-code> [--purchase-months <n>] [--project-name <project-name>]`191 - For the standard monthly plan, use the selected period-table value as `--purchase-months <n>`.192 - For post-paid, omit `--purchase-months`.193 - Treat the response's `PayableAmount` and `Currency` (`CNY` or `USD`) as the source of truth.194 - Render the final amount, currency, purchase period, selected plan, and auto-renew setting in a Markdown summary table.1951965. Render a numbered Markdown confirmation table and ask the user to reply with option `1` or `2`:197198 | # | Action |199 |---:|---|200 | 1 | Confirm |201 | 2 | Cancel |202203 Do not create the order before the user selects option `1`.2046. Create the order:205 `vs purchase order create --scene purchase --configuration-code <configuration-code> [--purchase-months <n>] [--auto-renew] [--project-name <project-name>]`206 - `--client-token` is auto-generated for idempotency; if the command fails and must be retried for the same intended purchase, reuse the same client token so the order is not duplicated.2077. Immediately run:208 `vs purchase order status [--project-name <project-name>]`209 - enabled: continue to Step 7;210 - `unconfigured` or `invalid`: return to Step 5;211 - `product-not-enabled` or another non-enabled state: report the returned status and stop. Do not call `purchase order wait` or add a polling loop;212 - network or other errors: surface the exact error.2138. Fallback: if order creation returns a plan-eligibility error that must be handled on the console web page, run `vs purchase link --environment-id <environment-id>` and let the user finish there.214215### Step 7 - hand off to data onboarding216217Tell the user that authentication is complete and they can continue with `vs-item-onboarding` for data ingestion and their first search experience. End this workflow after the handoff.218219## Constraints220221- Always respond in the language used by the user who asked the question. Use that language for explanations, questions, confirmation requests, error messages, and handoff instructions.222- This purchase workflow must use numbered Markdown tables for plan selection, Standard purchase periods, auto-renew, and final confirmation. Ask the user to reply with the table option number at each checkpoint. Do not use interactive cards, dense combined paragraphs, or free-form plan names.223- Before executing any concrete `vs ...` command in this onboarding and purchase workflow, first consult `vs-product-qa` to verify the current command surface, required flags, payload fields, input format, and allowed values. Only after that check may you finalize parameters and run the command.224- Always start with `vs auth status --json`; if it reports authenticated and `vs doctor --json` passes, early-exit to Step 7.225- Do not run `purchase order price`, `purchase order create`, or `purchase order status` before local AK/SK is configured. Create an order only after the user confirms the current price quote, then query status once.226- Account registration, real-name verification, and AK/SK creation are human checkpoints. Never operate the console for the user; credential setup uses only `vs auth import-env` or `vs auth login`.227- Do not call `purchase order wait` or add a polling loop. Reuse the same client token when retrying the same intended purchase.228- Never ask the user to paste secrets, payment credentials, or identity documents into chat. For a sub-account that cannot create keys, direct the user to the enterprise administrator; do not escalate or bypass permissions.229- Use `vs purchase link --environment-id <environment-id>` only as the fallback web flow. Never hardcode the URL; supported environment IDs are `volcano-cn-beijing`, `volcano-ap-southeast-1`, and `byteplus-ap-southeast-1`.230- If a purchase/onboarding failure or user follow-up turns into a product concept, capability, API field, console UI path, purchase, billing, or general troubleshooting question outside this purchase workflow, temporarily hand off to `vs-product-qa`; after that answer, return to this workflow only if the user still wants to continue purchasing.