@byteplus/ark-cli-darwin-x64 0.0.0-stage → 1.0.46-prerelease.46bd0d6dcc58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/bin/arkcli-darwin-amd64 +4 -0
- package/manifest.json +43 -0
- package/package.json +20 -4
- package/skills/arkcli-agent/SKILL.md +152 -0
- package/skills/arkcli-agent/references/agent.md +398 -0
- package/skills/arkcli-agent/references/byok.md +65 -0
- package/skills/arkcli-agent/references/context-management.md +42 -0
- package/skills/arkcli-agent/references/debug-export.md +26 -0
- package/skills/arkcli-agent/references/evals.md +178 -0
- package/skills/arkcli-agent/references/events-chat.md +148 -0
- package/skills/arkcli-agent/references/interfaces-gaps.md +52 -0
- package/skills/arkcli-agent/references/mcp-vault.md +111 -0
- package/skills/arkcli-agent/references/model-config.md +46 -0
- package/skills/arkcli-agent/references/self-hosted.md +47 -0
- package/skills/arkcli-agent/references/session-files.md +149 -0
- package/skills/arkcli-agent/references/session-upgrade.md +61 -0
- package/skills/arkcli-agent/references/skills.md +87 -0
- package/skills/arkcli-agent/references/todo-write.md +31 -0
- package/skills/arkcli-api-explorer/SKILL.md +188 -0
- package/skills/arkcli-api-explorer/references/arkcli-api.md +180 -0
- package/skills/arkcli-api-explorer/references/evals.md +176 -0
- package/skills/arkcli-auth/SKILL.md +184 -0
- package/skills/arkcli-auth/references/arkcli-auth-login.md +92 -0
- package/skills/arkcli-auth/references/arkcli-auth-status.md +109 -0
- package/skills/arkcli-auth/references/arkcli-auth-whoami.md +56 -0
- package/skills/arkcli-auth/references/auth-modes.md +78 -0
- package/skills/arkcli-auth/references/evals.md +82 -0
- package/skills/arkcli-auth/references/identity-resolution.md +33 -0
- package/skills/arkcli-auth/references/realname-gate.md +69 -0
- package/skills/arkcli-billing/SKILL.md +122 -0
- package/skills/arkcli-billing/references/arkcli-billing-list.md +259 -0
- package/skills/arkcli-billing/references/evals.md +107 -0
- package/skills/arkcli-chat/SKILL.md +114 -0
- package/skills/arkcli-chat/references/arkcli-chat.md +283 -0
- package/skills/arkcli-chat/references/caching-thinking.md +124 -0
- package/skills/arkcli-chat/references/chat-meta.md +77 -0
- package/skills/arkcli-chat/references/evals.md +34 -0
- package/skills/arkcli-chat/references/stream-events.md +124 -0
- package/skills/arkcli-chat/references/text-format.md +167 -0
- package/skills/arkcli-chat/references/tools.md +119 -0
- package/skills/arkcli-config/SKILL.md +197 -0
- package/skills/arkcli-config/references/arkcli-config-init.md +89 -0
- package/skills/arkcli-config/references/arkcli-config-profile.md +106 -0
- package/skills/arkcli-config/references/evals.md +154 -0
- package/skills/arkcli-connect/SKILL.md +196 -0
- package/skills/arkcli-connect/references/arkcli-connect.md +165 -0
- package/skills/arkcli-connect/references/evals.md +231 -0
- package/skills/arkcli-custommodel/SKILL.md +167 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-available-quantizations.md +29 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-delete.md +37 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-get.md +45 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-list.md +65 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-quantize.md +59 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-update.md +47 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-upload.md +64 -0
- package/skills/arkcli-custommodel/references/evals.md +59 -0
- package/skills/arkcli-datasets/SKILL.md +39 -0
- package/skills/arkcli-datasets/references/commands.md +83 -0
- package/skills/arkcli-datasets/references/evals.md +31 -0
- package/skills/arkcli-deploy/SKILL.md +89 -0
- package/skills/arkcli-deploy/references/arkcli-deploy.md +141 -0
- package/skills/arkcli-deploy/references/evals.md +80 -0
- package/skills/arkcli-docs/SKILL.md +453 -0
- package/skills/arkcli-docs/references/commands.md +283 -0
- package/skills/arkcli-docs/references/evals.md +201 -0
- package/skills/arkcli-docs/references/failure-modes.md +85 -0
- package/skills/arkcli-doctor/CONTRIBUTING.md +54 -0
- package/skills/arkcli-doctor/SKILL.md +367 -0
- package/skills/arkcli-doctor/references/error-codes.md +162 -0
- package/skills/arkcli-doctor/references/evals.md +385 -0
- package/skills/arkcli-doctor/references/scope-account.md +94 -0
- package/skills/arkcli-doctor/references/scope-cli.md +88 -0
- package/skills/arkcli-doctor/references/scope-infer-endpoint.md +132 -0
- package/skills/arkcli-doctor/references/scope-metrics.md +157 -0
- package/skills/arkcli-doctor/references/scope-model.md +130 -0
- package/skills/arkcli-doctor/references/verify-origin.md +102 -0
- package/skills/arkcli-gen/SKILL.md +188 -0
- package/skills/arkcli-gen/references/arkcli-gen.md +230 -0
- package/skills/arkcli-gen/references/gen-meta.md +154 -0
- package/skills/arkcli-gen/references/image-stream.md +105 -0
- package/skills/arkcli-helper/SKILL.md +200 -0
- package/skills/arkcli-helper/references/arkcli-helper.md +298 -0
- package/skills/arkcli-helper/references/evals.md +334 -0
- package/skills/arkcli-iam/SKILL.md +46 -0
- package/skills/arkcli-iam/references/arkcli-iam-userid.md +54 -0
- package/skills/arkcli-iam/references/evals.md +24 -0
- package/skills/arkcli-infer-endpoint/SKILL.md +82 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-capability-get.md +50 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-create.md +121 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-delete.md +71 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-get.md +43 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-list.md +82 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-start.md +36 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-stop.md +36 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-update.md +78 -0
- package/skills/arkcli-infer-endpoint/references/evals.md +24 -0
- package/skills/arkcli-models/SKILL.md +305 -0
- package/skills/arkcli-models/references/arkcli-models-activate.md +103 -0
- package/skills/arkcli-models/references/arkcli-models-get.md +94 -0
- package/skills/arkcli-models/references/arkcli-models-list.md +71 -0
- package/skills/arkcli-models/references/arkcli-models-scenario-table.md +75 -0
- package/skills/arkcli-models/references/arkcli-models-search.md +170 -0
- package/skills/arkcli-models/references/evals.md +57 -0
- package/skills/arkcli-onboard/SKILL.md +169 -0
- package/skills/arkcli-onboard/references/evals.md +156 -0
- package/skills/arkcli-plans/SKILL.md +135 -0
- package/skills/arkcli-plans/references/arkcli-plans-buy.md +125 -0
- package/skills/arkcli-plans/references/arkcli-plans-get.md +84 -0
- package/skills/arkcli-plans/references/arkcli-plans-model-apply.md +58 -0
- package/skills/arkcli-plans/references/arkcli-plans-model-list.md +114 -0
- package/skills/arkcli-plans/references/arkcli-plans-renew.md +125 -0
- package/skills/arkcli-plans/references/arkcli-plans-team-rotate-apikey.md +61 -0
- package/skills/arkcli-plans/references/arkcli-plans-team-seat-assign.md +147 -0
- package/skills/arkcli-plans/references/arkcli-plans-team-seat-list.md +100 -0
- package/skills/arkcli-plans/references/evals.md +178 -0
- package/skills/arkcli-pricing/SKILL.md +120 -0
- package/skills/arkcli-pricing/references/arkcli-pricing-models.md +258 -0
- package/skills/arkcli-pricing/references/arkcli-pricing-plans.md +139 -0
- package/skills/arkcli-profile/SKILL.md +168 -0
- package/skills/arkcli-profile/references/arkcli-profile-create.md +92 -0
- package/skills/arkcli-profile/references/arkcli-profile-keys.md +135 -0
- package/skills/arkcli-profile/references/arkcli-profile-set-default.md +81 -0
- package/skills/arkcli-profile/references/evals.md +93 -0
- package/skills/arkcli-resources/SKILL.md +112 -0
- package/skills/arkcli-resources/references/arkcli-resources-list.md +105 -0
- package/skills/arkcli-shared/SKILL.md +209 -0
- package/skills/arkcli-shared/references/global-flags.md +77 -0
- package/skills/arkcli-shared/references/profile-defaults.md +35 -0
- package/skills/arkcli-shared/references/troubleshooting.md +49 -0
- package/skills/arkcli-shared/references/update.md +117 -0
- package/skills/arkcli-train-finetune/SKILL.md +109 -0
- package/skills/arkcli-train-finetune/references/create.md +274 -0
- package/skills/arkcli-train-finetune/references/download.md +50 -0
- package/skills/arkcli-train-finetune/references/evals.md +59 -0
- package/skills/arkcli-train-finetune/references/export-deploy.md +179 -0
- package/skills/arkcli-train-finetune/references/list.md +79 -0
- package/skills/arkcli-train-finetune/references/manage.md +140 -0
- package/skills/arkcli-understand/SKILL.md +105 -0
- package/skills/arkcli-understand/references/arkcli-understand.md +249 -0
- package/skills/arkcli-understand/references/evals.md +109 -0
- package/skills/arkcli-understand/references/sub-skills.md +137 -0
- package/skills/arkcli-usage/SKILL.md +123 -0
- package/skills/arkcli-usage/references/arkcli-usage-balance.md +196 -0
- package/skills/arkcli-usage/references/arkcli-usage-plan.md +153 -0
- package/skills/arkcli-usage/references/arkcli-usage-seats.md +199 -0
- package/skills/arkcli-usage/references/arkcli-usage-stats.md +160 -0
- package/README.md +0 -3
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arkcli-plans
|
|
3
|
+
version: 1.2.0
|
|
4
|
+
description: "Manages ARK plans (Coding Plan, personal + team): query holdings, buy, renew, list models, list enterprise seats (`plans team seat-list`), assign seats to employees (`plans team seat-assign`), rotate team-seat API keys (`plans team rotate-apikey`), and inspect seat bindings. Trigger terms: plan / buy / renew / list seats / view seat bindings / who is bound to which seat / assign employee seats / rotate team API key / team-seat admin view. Unbinding is not currently exposed by arkcli; route such requests here only to explain the limitation. Usage questions (remaining quota / percentage used / per-seat usage) go to [arkcli-usage](../arkcli-usage/SKILL.md). Verb routing: list / bind / assign / rotate → here; use / consumption / how much → arkcli-usage."
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["arkcli"]
|
|
8
|
+
cliHelp: "arkcli plans --help"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# arkcli plans
|
|
12
|
+
|
|
13
|
+
**CRITICAL — Before starting, you MUST use the Read tool to read [`../arkcli-shared/SKILL.md`](../arkcli-shared/SKILL.md), which contains authentication gates, configuration troubleshooting, and shared safety rules.**
|
|
14
|
+
**CRITICAL — Before executing any `plans buy` / `plans renew` / `plans team seat-assign` / `plans team rotate-apikey`, you MUST use the Read tool to read the corresponding `references/*.md`. Do not invoke them blindly.**
|
|
15
|
+
|
|
16
|
+
## 🔒 Agreement gate (mandatory process for plans buy / plans renew)
|
|
17
|
+
|
|
18
|
+
`plans buy` / `plans renew` on BytePlus **never place orders in-CLI**. Adding `--yes` does not trigger a charge; it returns a `payment_via_web` payload with a `subscribe_url` pointing to the BytePlus console subscription page, where the user completes the purchase in the browser. **When neither `--yes` nor `--estimate` is passed**, the CLI runs the review gate and returns:
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
{
|
|
22
|
+
"status": "agreement_required",
|
|
23
|
+
"subscribe_url": "https://console.byteplus.com/ark/region:ark+ap-southeast-1/subscription/coding-plan",
|
|
24
|
+
"total_amount_usd": 10,
|
|
25
|
+
"original_amount_usd": 10,
|
|
26
|
+
"next_step": "Ask the user to open <subscribe_url> in the browser and finish the purchase on the BytePlus subscription page. Do not rerun this command with --yes."
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Note: BytePlus does **not** return the `agreements` array. The web subscription page handles agreement presentation and signing with the correct BytePlus legal documents; the CLI would only have Volc-region agreement text to show, which is wrong for BytePlus users. Amount fields are `total_amount_usd` / `original_amount_usd` (USD).
|
|
31
|
+
|
|
32
|
+
**The Agent must strictly follow this sequence:**
|
|
33
|
+
|
|
34
|
+
1. **The first call must omit `--yes`** to obtain price + `subscribe_url`.
|
|
35
|
+
2. Display `total_amount_usd` and `original_amount_usd` to the user for transparency.
|
|
36
|
+
3. Then present the `subscribe_url` and ask the user to complete the purchase in the browser on the BytePlus console. **Do not rerun the command with `--yes`** expecting an in-CLI charge — both `--yes` and the gate resolve to the same subscribe URL on BytePlus.
|
|
37
|
+
|
|
38
|
+
**Violating this process means skipping user-facing price transparency.** The web page also enforces its own agreement UI before the user can pay.
|
|
39
|
+
|
|
40
|
+
`--estimate` is the online price-quote path; it is not Client Preview. It neither places an order nor returns a `subscribe_url` (use the default gate path when you need the URL).
|
|
41
|
+
|
|
42
|
+
## Business positioning
|
|
43
|
+
|
|
44
|
+
`arkcli plans` manages ARK plans:
|
|
45
|
+
- **Coding Plan** (`coding-plan` / `coding-plan-team`): programming assistance plans divided into tiers (lite/pro).
|
|
46
|
+
|
|
47
|
+
Plans have two forms: **personal edition** (`personal`) and **enterprise / team edition** (`team`):
|
|
48
|
+
|
|
49
|
+
| Form | Resource unit | Typical operations |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| personal | Individual subscription | View / buy / renew |
|
|
52
|
+
| team | Enterprise seat | View / buy / renew / list seats / bind sub-users |
|
|
53
|
+
|
|
54
|
+
> A personal account has one subscription; a team plan is managed at SeatID granularity, with each seat bound to one sub-user.
|
|
55
|
+
|
|
56
|
+
> **This skill does not include plan usage / quota queries** ("how much has been used / how much remains / when it resets / breakdown by model"). `plans get` answers only "which plans do I **hold** + status (Effective/Running)", not "how much has been used". The quota view is in [`../arkcli-usage/`](../arkcli-usage/SKILL.md). See the routing table under "Quick decisions".
|
|
57
|
+
|
|
58
|
+
> **Agent Plan boundary (BytePlus)**: BytePlus does not offer Agent Plan (`agent-plan` / `agent-plan-team`). When asked about Agent Plan, respond with "Agent Plan is not offered on BytePlus" and stop — never fall back to Coding Plan data as a stand-in, never invent an `agent-plan` invocation to "try".
|
|
59
|
+
|
|
60
|
+
## Applicable scenarios
|
|
61
|
+
|
|
62
|
+
- View plans held by the current account → `plans get`.
|
|
63
|
+
- Place an order for a plan (personal / team) → `plans buy`.
|
|
64
|
+
- Renew an existing plan → `plans renew`.
|
|
65
|
+
- View the models and model specifications supported by a plan (context window, input/output token limits, and input modalities) → `plans model-list`.
|
|
66
|
+
- Switch the ark-code-latest route target (Auto smart scheduling or a concrete shadow model) → `plans model-apply`.
|
|
67
|
+
- List / filter enterprise seats → `plans team seat-list`.
|
|
68
|
+
- Bind an enterprise seat to a sub-user → `plans team seat-assign`.
|
|
69
|
+
- Rotate API keys for explicit Coding Plan Team SeatIDs → `plans team rotate-apikey`.
|
|
70
|
+
|
|
71
|
+
## Quick decisions
|
|
72
|
+
|
|
73
|
+
- User asks "What plans do I have / what have I subscribed to?": run `arkcli plans get` directly with no arguments (**holdings + status only, no usage**).
|
|
74
|
+
- User asks **"How much have I used / how much remains / when does it reset / in-plan vs out-of-plan"**: this is **outside this skill**; route to [`../arkcli-usage/`](../arkcli-usage/SKILL.md):
|
|
75
|
+
- "How much of my plan remains / when does it reset?" → `arkcli usage plan` or `arkcli usage balance --type plan`.
|
|
76
|
+
- "Which model do I use most / in-plan versus out-of-plan ratio?" → `arkcli usage plan-details`.
|
|
77
|
+
- "Team-seat usage" → `arkcli usage seats --product coding-plan-team --with-usage`.
|
|
78
|
+
- User asks "Which models does Coding Plan support / how large is the context window / what are the maximum input and output lengths / does it support image or video input?": run `arkcli plans model-list --plan <plan>`. Add `--mode direct` when only directly invocable ModelNames are needed, `--mode routing` when only `ark-code-latest` route targets are needed, or keep the default `--mode all` to compare both catalogs. `models[]` contains route targets, while `direct_models[].model_name` contains directly invocable ModelNames; both may expose `context_window`, `max_input_tokens`, `max_completion_tokens`, `input_modalities`, and `load`.
|
|
79
|
+
- User wants to "switch the ark-code-latest underlying model / use Auto smart scheduling / pin a specific model": `arkcli plans model-apply --plan <plan> --model <model-id|output-name|auto>` (**write operation**, synced with the console; confirm valid targets with `plans model-list --mode routing` first).
|
|
80
|
+
- User wants to buy a plan: read [buy.md](references/arkcli-plans-buy.md), collect `--plan`, `--type`, `--duration`, and team `--quantity`. Do not choose for the user.
|
|
81
|
+
- User wants to renew: read [renew.md](references/arkcli-plans-renew.md), confirm `--plan`, duration, and existing team `--seat-ids`. Renewal keeps the current tier; do not pass purchase-only `--type` or `--quantity`. Preserve the BytePlus web-payment handoff above; never import the Volc charging workflow.
|
|
82
|
+
- User wants to "**query seats / inspect team-seat bindings / see who is bound to which seat / list seats / see activated seats / team-seat admin view**" → `plans team seat-list --plan <coding-plan-team>` (**the default entry point for seat management**; the management view lists basic information + bindings, **without usage numbers**. To see each seat's token usage / plan percentage → `arkcli usage seats --with-usage`).
|
|
83
|
+
- User wants to "assign a seat to an employee / allocate employee seats" → `plans team seat-assign`; first prepare a `seat-id=user-id` pairing list.
|
|
84
|
+
- The user **knows only the employee username**, not the exact UserID: first run `arkcli iam userid --username <prefix>` to resolve `user_id`, then pass it to `seat-assign --bind seat-id=<user_id>`.
|
|
85
|
+
- User wants to rotate one or more Coding Plan Team seat API keys → `plans team rotate-apikey --seat-ids <seat-id,...>`; BytePlus requires explicit SeatIDs and never performs an implicit self lookup. Read the rotate reference, warn that every old key becomes invalid immediately, and obtain explicit confirmation before adding `--yes`.
|
|
86
|
+
|
|
87
|
+
## Agent quick execution order
|
|
88
|
+
|
|
89
|
+
1. First confirm authentication status: `arkcli auth status`; if missing, use `../arkcli-auth/`.
|
|
90
|
+
2. Execute read operations (`get` / `model-list` / `seat-list`) directly; consider the current identity only when the user asks about "mine".
|
|
91
|
+
3. For **write operations (`buy` / `renew` / `seat-assign` / `rotate-apikey` / `model-apply`)**, always:
|
|
92
|
+
- Read the corresponding reference first.
|
|
93
|
+
- Confirm key fields with the user (plan / type / duration / SeatIDs / UserID pairings).
|
|
94
|
+
4. Partial failure (per-item Success/Failed arrays) is a valid response. When the exit code is nonzero, **do not** immediately treat the entire operation as failed; first inspect `success_count` / `failed_count` in stdout.
|
|
95
|
+
|
|
96
|
+
## Write-operation risk list (must read)
|
|
97
|
+
|
|
98
|
+
| Command | Risk | Mandatory action |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| `plans buy` | Compliance step; **payment happens on the BytePlus web console**, not in CLI | First run without `--yes` through the review gate → show `total_amount_usd` + `subscribe_url` to the user → direct them to `subscribe_url` in the browser (where BytePlus web handles agreement UI). `--yes` also returns `subscribe_url` and does **not** charge the account. See [agreement gate process](#-agreement-gate-mandatory-process-for-plans-buy--plans-renew) |
|
|
101
|
+
| `plans renew` | Same as buy: payment happens on the BytePlus web console | Same review gate as buy; team edition requires `--seat-ids`. `--yes` also returns `subscribe_url` without renewing anything in-CLI |
|
|
102
|
+
| `plans model-apply` | Changes the plan's request routing (effective immediately, synced with the console) | `--model` is required when non-interactive; confirm valid targets with `plans model-list --mode routing` first; team plans error when the account holds no active seat |
|
|
103
|
+
| `plans team seat-assign` | Modifies seat bindings | Explicit `--bind seat-id=user-id`; automatically calls IAM to resolve UserName |
|
|
104
|
+
| `plans team rotate-apikey` | **Credential rotation**; old keys are invalidated immediately | Explicit `--seat-ids`; confirm all affected applications are ready for replacement keys before adding `--yes`; never paste returned plaintext keys into chat |
|
|
105
|
+
|
|
106
|
+
## Command overview
|
|
107
|
+
|
|
108
|
+
| Command | Type | Description |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| [`plans get`](references/arkcli-plans-get.md) | Read | List plans held by the current account (personal + team aggregation) |
|
|
111
|
+
| [`plans buy`](references/arkcli-plans-buy.md) | Review + web redirect | Show price + `subscribe_url` so the user can complete the purchase on the BytePlus console (web handles agreement UI) |
|
|
112
|
+
| [`plans renew`](references/arkcli-plans-renew.md) | Compliance + web redirect | Same as buy: `subscribe_url` points to the BytePlus console renewal page |
|
|
113
|
+
| [`plans model-list`](references/arkcli-plans-model-list.md) | Read | Use `--mode all|direct|routing` to query both catalogs, direct ModelNames, or ark-code-latest route targets, with capability and load data |
|
|
114
|
+
| [`plans model-apply`](references/arkcli-plans-model-apply.md) | Write | Set the ark-code-latest route target (auto or a concrete shadow model) |
|
|
115
|
+
| [`plans team seat-list`](references/arkcli-plans-team-seat-list.md) | Read | List enterprise seats + multidimensional filtering |
|
|
116
|
+
| [`plans team seat-assign`](references/arkcli-plans-team-seat-assign.md) | Write | Batch-bind enterprise seats to sub-users |
|
|
117
|
+
| [`plans team rotate-apikey`](references/arkcli-plans-team-rotate-apikey.md) | Destructive write | Rotate API keys for explicitly selected Coding Plan Team seats |
|
|
118
|
+
|
|
119
|
+
## Common fallbacks
|
|
120
|
+
|
|
121
|
+
- Authentication error: route to [`../arkcli-auth/SKILL.md`](../arkcli-auth/SKILL.md).
|
|
122
|
+
- Wrong region / project: route to [`../arkcli-config/SKILL.md`](../arkcli-config/SKILL.md).
|
|
123
|
+
- **View plan usage / quota (used / total / percent / reset_at / model breakdown)**: route to [`../arkcli-usage/SKILL.md`](../arkcli-usage/SKILL.md). This skill answers only "what is held", not "how much was used".
|
|
124
|
+
- **View billing / settlement amounts**: route to [`../arkcli-billing/SKILL.md`](../arkcli-billing/SKILL.md). `plans` does not return monetary amounts.
|
|
125
|
+
- Try a model without formal deployment: route to [`../arkcli-chat/SKILL.md`](../arkcli-chat/SKILL.md) / [`../arkcli-gen/SKILL.md`](../arkcli-gen/SKILL.md).
|
|
126
|
+
- Fall back to [`../arkcli-api-explorer/SKILL.md`](../arkcli-api-explorer/SKILL.md) when no product command exists.
|
|
127
|
+
|
|
128
|
+
## References
|
|
129
|
+
|
|
130
|
+
- [arkcli-shared](../arkcli-shared/SKILL.md) -- Authentication / global parameters / output rules
|
|
131
|
+
- [arkcli-usage](../arkcli-usage/SKILL.md) -- Plan **usage / quota** views (`usage plan` / `usage plan-details` / `usage balance` / `usage seats --with-usage`), complementing this skill's holdings / purchases / seat management
|
|
132
|
+
- [arkcli-billing](../arkcli-billing/SKILL.md) -- Plan **settlement amounts** (BytePlus billing-center breakdown, T+1)
|
|
133
|
+
- [arkcli-deploy](../arkcli-deploy/SKILL.md) -- Deploy an endpoint with `+deploy` after purchasing a plan
|
|
134
|
+
- [arkcli-helper](../arkcli-helper/SKILL.md) -- **Inject / remove** Plan model/provider for an AI Agent
|
|
135
|
+
- [Coding Plan Team API-key rotation](references/arkcli-plans-team-rotate-apikey.md) -- Destructive administrator rotation for explicit SeatIDs
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# plans buy
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
> **⚠️ BytePlus payment flow:** BytePlus does not yet support balance-based auto-pay via arkcli. Adding `--yes` **does not place an order or charge the account**; instead the command returns a `payment_via_web` payload with a `subscribe_url` pointing to the BytePlus console subscription page. The user must open that URL in a browser and complete the purchase on the web. **Do not choose for the user**: the user must explicitly provide `--plan`, `--type`, `--duration`, and `--quantity` for team plans.
|
|
6
|
+
|
|
7
|
+
> **🔒 Review gate (mandatory process; the Agent must comply):** Without `--yes`, this command **does not place an order** and returns price + `subscribe_url`. The Agent **must**:
|
|
8
|
+
> 1. Display `total_amount_usd` and `original_amount_usd` to the user for price transparency.
|
|
9
|
+
> 2. Then present the `subscribe_url` and ask the user to complete the purchase in the browser. **Do not rerun the command with `--yes`** expecting an in-CLI charge — BytePlus does not support that path; both `--yes` and the gate resolve to the same subscribe URL.
|
|
10
|
+
>
|
|
11
|
+
> The BytePlus subscription page handles agreement presentation and signing with the correct BytePlus legal documents on the web; the CLI does **not** return an `agreements` array (see Return value below).
|
|
12
|
+
|
|
13
|
+
## Three invocation forms
|
|
14
|
+
|
|
15
|
+
| Form | Behavior | When to use |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| Neither `--yes` nor `--estimate` | **Review gate**: returns **price** (USD) + `subscribe_url` + `next_step`; internally uses EstimatePrice and **does not place an order** | Default guidance step; the Agent obtains "price + web URL" in one call |
|
|
18
|
+
| `--estimate` (with or without `--yes`) | **Online price inquiry**: calls EstimatePrice, returns the price, and **does not place an order** | Overlaps with the gate; retained as a convenient scripting path for "price only" |
|
|
19
|
+
| `--yes` without `--estimate` | **Web redirect** (BytePlus): returns `payment_via_web` payload with `subscribe_url`; **no order-side API is called**, no order or seat is created | The user has confirmed the price; direct them to the web console to complete the purchase |
|
|
20
|
+
|
|
21
|
+
> **The gate returns pricing + subscribe URL together**. One call returns `total_amount_usd` + `original_amount_usd` + `subscribe_url`; show these to the user together and then hand off the URL.
|
|
22
|
+
|
|
23
|
+
## Commands
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Step 1: Guidance (without --yes) — obtain the price + subscribe_url
|
|
27
|
+
arkcli plans buy --plan coding-plan --type lite --duration 1
|
|
28
|
+
|
|
29
|
+
# Step 2 (optional): Price inquiry
|
|
30
|
+
arkcli plans buy --plan coding-plan --type lite --duration 1 --estimate
|
|
31
|
+
|
|
32
|
+
# Step 3: After showing the user the price, hand off to the web page via subscribe_url
|
|
33
|
+
arkcli plans buy --plan coding-plan --type lite --duration 1 --yes
|
|
34
|
+
|
|
35
|
+
# Example for a team-edition tier
|
|
36
|
+
arkcli plans buy --plan coding-plan-team --type pro --quantity 10 --yes
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Parameters
|
|
40
|
+
|
|
41
|
+
| Parameter | Required | Type | Description |
|
|
42
|
+
|------|------|------|------|
|
|
43
|
+
| `--plan` | Yes | string | `coding-plan` / `coding-plan-team` |
|
|
44
|
+
| `--type` | Yes | string | Tier: coding-plan* accepts `lite/pro` |
|
|
45
|
+
| `--duration` | No | int | Subscription duration (months), 1–12, default 1 |
|
|
46
|
+
| `--quantity` | Required for team | int | Number of seats (≥1); ignored when passed for personal edition |
|
|
47
|
+
| `--yes` | No | bool | On BytePlus, returns the `payment_via_web` payload directly (no charge; equivalent to the gate for the subscribe_url purpose) |
|
|
48
|
+
|
|
49
|
+
Compatibility between `--plan` and `--type`:
|
|
50
|
+
|
|
51
|
+
| Plan family | Valid tiers |
|
|
52
|
+
|---|---|
|
|
53
|
+
| coding-plan / coding-plan-team | lite, pro |
|
|
54
|
+
|
|
55
|
+
## Return value (review gate, default form)
|
|
56
|
+
|
|
57
|
+
When neither `--yes` nor `--estimate` is passed:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"status": "agreement_required",
|
|
62
|
+
"plan": "coding-plan",
|
|
63
|
+
"tier": "lite",
|
|
64
|
+
"duration": 1,
|
|
65
|
+
"echo": {"plan": "coding-plan", "tier": "lite", "duration": 1},
|
|
66
|
+
"total_amount_usd": 10,
|
|
67
|
+
"original_amount_usd": 10,
|
|
68
|
+
"subscribe_url": "https://console.byteplus.com/ark/region:ark+ap-southeast-1/subscription/coding-plan",
|
|
69
|
+
"confirm_text": "BytePlus balance-based auto-pay is not supported by arkcli yet...",
|
|
70
|
+
"next_step": "Ask the user to open <subscribe_url> in the browser and finish the purchase on the BytePlus subscription page. Do not rerun this command with --yes."
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Amount fields are always USD on BytePlus (`total_amount_usd` / `original_amount_usd`); `total_amount_cny` / `original_amount_cny` will never appear. There is intentionally **no `agreements` array** — the BytePlus subscription page handles agreement presentation and signing on the web with the correct BytePlus legal documents.
|
|
75
|
+
|
|
76
|
+
## Return value (`--yes` / web redirect)
|
|
77
|
+
|
|
78
|
+
After adding `--yes`, the CLI does **not** place an order or invoke any Create* API. Instead it returns:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"status": "payment_via_web",
|
|
83
|
+
"plan": "coding-plan-team",
|
|
84
|
+
"tier": "pro",
|
|
85
|
+
"duration": 2,
|
|
86
|
+
"quantity": 5,
|
|
87
|
+
"subscribe_url": "https://console.byteplus.com/ark/region:ark+ap-southeast-1/subscription/coding-plan-enterprise",
|
|
88
|
+
"message": "BytePlus balance-based auto-pay is not supported by arkcli yet. Open the subscribe_url above in the browser to complete the purchase on the BytePlus console.",
|
|
89
|
+
"next_step": "Ask the user to open <subscribe_url> in the browser and finish the purchase on the BytePlus subscription page. Do not rerun this command with --yes."
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`quantity` is populated only for team plans. For team plans **no seats are created**: the CLI does not call `CreateSeatInfo` before redirecting, so there are no dangling seats to clean up.
|
|
94
|
+
|
|
95
|
+
## Failure semantics
|
|
96
|
+
|
|
97
|
+
BytePlus arkcli does not place orders, so the `payment_failed` envelope (which the Volc build emits when auto-pay fails after `CreateSubscribeTrade`) **does not exist here**. Failure modes are:
|
|
98
|
+
|
|
99
|
+
- **Validation error** (e.g. `--quantity is required for team plans`): normal error, exit code = 1. Fix the arguments and retry.
|
|
100
|
+
- **Auth / preflight error** (missing `arkcli auth login`, etc.): normal error, exit code = 1. Log in and retry. See [`../../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md).
|
|
101
|
+
- **Payment failure on the web**: after the user opens `subscribe_url`, if BytePlus web rejects the payment (e.g. account not opened, real-name pending, payment method missing), the console will surface the failure and the appropriate settings page. This is out of arkcli's control.
|
|
102
|
+
|
|
103
|
+
## Common errors
|
|
104
|
+
|
|
105
|
+
| Error | Cause | Handling |
|
|
106
|
+
|---|---|---|
|
|
107
|
+
| `--plan must be one of ...` | Plan key is misspelled | Strictly use `coding-plan` or `coding-plan-team` |
|
|
108
|
+
| `--type %q not allowed for --plan %q` | Tier is incompatible with plan | See the table above |
|
|
109
|
+
| `--quantity is required for team plans` | Team quantity omitted | Add `--quantity N` |
|
|
110
|
+
| `--duration must be 1..12` | Out of range | Use 1–12 |
|
|
111
|
+
|
|
112
|
+
## Notes
|
|
113
|
+
|
|
114
|
+
- **No in-CLI charge**: BytePlus arkcli never invokes any Create-trade API. The purchase always happens on the web console.
|
|
115
|
+
- **Use `--estimate` for pricing scripts** if you only need a price quote and want to skip the agreement + subscribe URL machinery.
|
|
116
|
+
- After the user completes the purchase on the web console for a team plan, seats appear with `BillingStatus=Running` but are **not bound to sub-users**. Next use [`plans team seat-assign`](arkcli-plans-team-seat-assign.md) to assign them.
|
|
117
|
+
- Rerunning `plans buy --yes` is safe on BytePlus: each call is a pure web-redirect stub that produces the same `subscribe_url`. It never places an order.
|
|
118
|
+
|
|
119
|
+
## References
|
|
120
|
+
|
|
121
|
+
- [arkcli-plans](../SKILL.md) -- Skill overview
|
|
122
|
+
- [`plans renew`](arkcli-plans-renew.md) -- Renew an existing plan
|
|
123
|
+
- [`plans get`](arkcli-plans-get.md) -- Query holdings after ordering
|
|
124
|
+
- [`plans team seat-assign`](arkcli-plans-team-seat-assign.md) -- Bind sub-users after a team order
|
|
125
|
+
- [arkcli-shared](../../arkcli-shared/SKILL.md)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# plans get
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
> **Scope limitation:** `plans get` answers only "which plans do I **hold** + status (Effective/Running/...)" and **does not answer "how much has been used / how much remains / when it resets / breakdown by model"**. For quota queries, use:
|
|
6
|
+
> - `arkcli usage plan` — Full version with used / total / percent / reset_at + multiple periods (5h/daily/weekly/monthly)
|
|
7
|
+
> - `arkcli usage balance --type plan` — Simplified version (same data source)
|
|
8
|
+
>
|
|
9
|
+
> See [`../../arkcli-usage/SKILL.md`](../../arkcli-usage/SKILL.md).
|
|
10
|
+
|
|
11
|
+
Return all plans **actually held** by the current account in one call: an aggregation of Coding Plan personal + team editions. This is a read operation with no side effects.
|
|
12
|
+
|
|
13
|
+
## Command
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
arkcli plans get
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
No parameters. Both plan paths (`coding-plan` / `coding-plan-team`) are fetched concurrently.
|
|
22
|
+
|
|
23
|
+
## Return value
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"plans": [
|
|
28
|
+
{
|
|
29
|
+
"key": "coding-plan",
|
|
30
|
+
"name": "Coding Plan",
|
|
31
|
+
"scope": "personal",
|
|
32
|
+
"tier": "lite",
|
|
33
|
+
"status": "Effective"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"key": "coding-plan-team",
|
|
37
|
+
"name": "Coding Plan Team",
|
|
38
|
+
"scope": "team",
|
|
39
|
+
"tier": "lite",
|
|
40
|
+
"status": "Running",
|
|
41
|
+
"seat_id": "seat-..."
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
| Field | Appears when | Meaning |
|
|
48
|
+
|------|---------|------|
|
|
49
|
+
| `key` | always | Stable identifier: coding-plan / coding-plan-team |
|
|
50
|
+
| `scope` | always | personal / team |
|
|
51
|
+
| `tier` | When held | Personal: lite/pro (coding); team: tier of the current user's seat |
|
|
52
|
+
| `status` | When held | Personal: Effective / Pending / Expired, and others; team: Running |
|
|
53
|
+
| `seat_id` | Team only | Current user's seat ID under this Scene (team edition only) |
|
|
54
|
+
| `error` | API call fails | Diagnostic information passed through from the API; mutually exclusive with tier/status |
|
|
55
|
+
|
|
56
|
+
**Plans not held / historical Reclaimed subscriptions / team plans without a seat** are filtered and do not appear in the array.
|
|
57
|
+
|
|
58
|
+
## Behavior details
|
|
59
|
+
|
|
60
|
+
- Internally fetches `ListSubscribeTrade` (personal) + `GetSeatInfo` (team) concurrently.
|
|
61
|
+
- Failure of one plan does not block other plans: the failed item remains in the array with an `error` field.
|
|
62
|
+
- The team edition recognizes only valid seats with `BillingStatus=Running`; historical seats (Pending/Expired/Reclaimed) are filtered.
|
|
63
|
+
|
|
64
|
+
## Common errors
|
|
65
|
+
|
|
66
|
+
| Error | Cause | Handling |
|
|
67
|
+
|------|------|------|
|
|
68
|
+
| `plans get: ark: API error: AuthFailure` | Not authenticated / token expired | `arkcli auth login` |
|
|
69
|
+
| Output `{"plans":[]}` | The current account has no plans | Place an order with `plans buy` or check whether the account was switched |
|
|
70
|
+
|
|
71
|
+
## Notes
|
|
72
|
+
|
|
73
|
+
- This is the **only plans subcommand requiring no parameters**. When the user asks "What plans do I have / what have I subscribed to?", invoke it directly.
|
|
74
|
+
- **To view usage / quota (used / total / percent / reset date)**: this command **does not return** those fields. Route to `arkcli usage plan` / `arkcli usage balance --type plan` / `arkcli usage plan-details` (see the scope limitation at the top).
|
|
75
|
+
- It does not list other users' plans. The view always belongs to the current SSO identity.
|
|
76
|
+
- The team edition shows only seats **held by the current user**. To view all team seats, use [`plans team seat-list`](arkcli-plans-team-seat-list.md) (basic information) or `arkcli usage seats --with-usage` (including seat usage).
|
|
77
|
+
|
|
78
|
+
## References
|
|
79
|
+
|
|
80
|
+
- [arkcli-plans](../SKILL.md) -- Skill overview
|
|
81
|
+
- [`plans model-list`](arkcli-plans-model-list.md) -- See which models can be called under held plans
|
|
82
|
+
- [`plans buy`](arkcli-plans-buy.md) / [`plans renew`](arkcli-plans-renew.md) -- Purchase / renew
|
|
83
|
+
- [arkcli-usage](../../arkcli-usage/SKILL.md) -- Plan usage / quota (all fields absent from this command are here)
|
|
84
|
+
- [arkcli-shared](../../arkcli-shared/SKILL.md)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# plans model-apply
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
Set the **ark-code-latest route target** of a Coding Plan: `auto` (smart scheduling — the platform picks the underlying model) or a concrete shadow model from the plan's model list. Uses the same backend Actions as the console's route-model confirmation, takes effect immediately, and stays in sync with the console. Write operation.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
BytePlus requires an explicit plan target; this command has no default plan.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Interactive terminal: omit --model to open the route-target selector
|
|
13
|
+
# (the currently active target is tagged [active] and pre-highlighted)
|
|
14
|
+
arkcli plans model-apply --plan coding-plan
|
|
15
|
+
|
|
16
|
+
# Non-interactive / agent: --model is required (model id, output name, or "auto")
|
|
17
|
+
arkcli plans model-apply --plan coding-plan --model auto
|
|
18
|
+
arkcli plans model-apply --plan coding-plan-team --model doubao-seed-code-251028
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Parameters
|
|
22
|
+
|
|
23
|
+
| Parameter | Required | Type | Description |
|
|
24
|
+
|-----------|----------|------|-------------|
|
|
25
|
+
| `--plan` | Yes | string | `coding-plan` / `coding-plan-team` |
|
|
26
|
+
| `--model` | Required when non-interactive | string | Route target: a model `model_id`, an `output_name`, or `auto`; may be omitted on an interactive terminal to open the selector |
|
|
27
|
+
|
|
28
|
+
## Response
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"plan": "coding-plan",
|
|
33
|
+
"previous_selected_model_id": "doubao-seed-code-251028",
|
|
34
|
+
"applied": {
|
|
35
|
+
"model_id": "auto",
|
|
36
|
+
"output_name": "auto"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
| Field | Description |
|
|
42
|
+
|-------|-------------|
|
|
43
|
+
| `plan` | Echoes the input |
|
|
44
|
+
| `previous_selected_model_id` | The shadow model id that ark-code-latest resolved to before this write (empty when unset) |
|
|
45
|
+
| `applied.model_id` / `applied.output_name` | The route target just written; both fields are `auto` for smart scheduling |
|
|
46
|
+
|
|
47
|
+
## Notes
|
|
48
|
+
|
|
49
|
+
- **Valid targets come from `models[]` in the [`plans model-list --mode routing`](arkcli-plans-model-list.md) output**; an out-of-list `--model` fails with `does not support route target` plus the available options
|
|
50
|
+
- Team plans (`coding-plan-team`) are scoped to the **current identity's seat**: the command errors when the account holds no active seat — subscribe a seat in the console first
|
|
51
|
+
- After writing, the CLI re-reads the model list to verify; while the control plane is still syncing, a mismatch only prints a stderr `warn` and does not change the exit code — double-check with `plans model-list --mode routing`
|
|
52
|
+
- This command only changes the route target; it does not touch local agent configuration. To switch the model used by local agents, see `helper configure --model` in [`../../arkcli-helper/SKILL.md`](../../arkcli-helper/SKILL.md)
|
|
53
|
+
|
|
54
|
+
## See Also
|
|
55
|
+
|
|
56
|
+
- [arkcli-plans](../SKILL.md) — skill overview
|
|
57
|
+
- [`plans model-list --mode routing`](arkcli-plans-model-list.md) — query only valid route targets and the active one
|
|
58
|
+
- [arkcli-shared](../../arkcli-shared/SKILL.md)
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# plans model-list
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
List two model sets for a specified plan: `models` contains route targets behind
|
|
6
|
+
`ark-code-latest`, while `direct_models` contains ModelNames that can be placed
|
|
7
|
+
directly in an inference request or Agent configuration. Both sets may include
|
|
8
|
+
load and capability metadata. Read operation.
|
|
9
|
+
|
|
10
|
+
## Commands
|
|
11
|
+
|
|
12
|
+
When the current identity holds exactly one active Coding Plan, omitting
|
|
13
|
+
`--plan` auto-detects that plan. If both personal and team editions are active,
|
|
14
|
+
the CLI asks for an explicit target instead of guessing.
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Auto-detect the only active Coding Plan
|
|
18
|
+
arkcli plans model-list
|
|
19
|
+
|
|
20
|
+
# View Coding Plan personal-edition models
|
|
21
|
+
arkcli plans model-list --plan coding-plan
|
|
22
|
+
|
|
23
|
+
# View Coding Plan team-edition models
|
|
24
|
+
arkcli plans model-list --plan coding-plan-team
|
|
25
|
+
|
|
26
|
+
# Query only directly invocable ModelNames (VirtualModelID only)
|
|
27
|
+
arkcli plans model-list --plan coding-plan --mode direct
|
|
28
|
+
|
|
29
|
+
# Query only ark-code-latest smart-routing candidates (LatestModel only)
|
|
30
|
+
arkcli plans model-list --plan coding-plan --mode routing
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Parameters
|
|
34
|
+
|
|
35
|
+
| Parameter | Required | Type | Description |
|
|
36
|
+
|------|------|------|------|
|
|
37
|
+
| `--plan` | No | string | Choose `coding-plan` or `coding-plan-team`; when omitted, auto-detect the only active Coding Plan and require an explicit value if multiple plans are active |
|
|
38
|
+
| `--mode` | No | string | `all`, `direct`, or `routing`; defaults to `all`. `direct` fetches only direct ModelNames, while `routing` fetches only smart-routing candidates |
|
|
39
|
+
|
|
40
|
+
## Return value
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"plan": "coding-plan-team",
|
|
45
|
+
"edition": "enterprise",
|
|
46
|
+
"tier": "pro",
|
|
47
|
+
"selected_model_id": "seed-2-0-pro-260215",
|
|
48
|
+
"models": [
|
|
49
|
+
{
|
|
50
|
+
"model_id": "seed-2-0-pro-260215",
|
|
51
|
+
"model_name": "Seed 2.0 Pro",
|
|
52
|
+
"output_name": "seed-2-0-pro",
|
|
53
|
+
"context_window": 262144,
|
|
54
|
+
"max_input_tokens": 229376,
|
|
55
|
+
"max_completion_tokens": 65536,
|
|
56
|
+
"input_modalities": ["text", "image", "video"],
|
|
57
|
+
"load": {"status": 1, "level": 2, "score": 0.46, "coverage": 0.92, "updated_at": 1789999999},
|
|
58
|
+
"selected": true
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"model_id": "seed-pro-32k-260215",
|
|
62
|
+
"model_name": "Seed Pro 32K",
|
|
63
|
+
"output_name": "seed-pro-32k"
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"direct_models": [
|
|
67
|
+
{
|
|
68
|
+
"model_name": "seed-2.0-pro",
|
|
69
|
+
"context_window": 262144,
|
|
70
|
+
"max_input_tokens": 229376,
|
|
71
|
+
"max_completion_tokens": 65536,
|
|
72
|
+
"input_modalities": ["text", "image", "video"],
|
|
73
|
+
"load": {"status": 1, "level": 1}
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
| Field | Description |
|
|
80
|
+
|------|------|
|
|
81
|
+
| `plan` | Echo of the input argument |
|
|
82
|
+
| `edition` | Plan API edition: `personal` for a personal plan or `enterprise` for a team plan |
|
|
83
|
+
| `tier` | The active plan tier sent as `BizInfo` |
|
|
84
|
+
| `selected_model_id` | Current backend model ID selected for the route; personal edition uses the subscription-level `Enabled` field, while team edition reads the user's seat mapping; omitted when unset |
|
|
85
|
+
| `models[]` | Route candidates behind `ark-code-latest`; use these with `plans model-apply`, not as the direct ModelName catalog |
|
|
86
|
+
| `models[].model_id` | Backend route-target ID for control-plane writes |
|
|
87
|
+
| `models[].model_name` | Human-readable display name; do not use it as the invocation ID |
|
|
88
|
+
| `models[].output_name` | Companion output name for route writes; do not infer direct invocation support from it |
|
|
89
|
+
| `models[].selected` | `true` when this item is the current route target; omitted when false |
|
|
90
|
+
| `direct_models[]` | Models directly invocable by the current plan, sourced from the VirtualModelID API |
|
|
91
|
+
| `direct_models[].model_name` | Exact ModelName to put in an inference request or Agent configuration |
|
|
92
|
+
| `*.context_window` | Context-window size in tokens; omitted when unavailable |
|
|
93
|
+
| `*.max_input_tokens` | Maximum input-token length; omitted when unavailable |
|
|
94
|
+
| `*.max_completion_tokens` | Maximum output-token length; omitted when unavailable |
|
|
95
|
+
| `*.input_modalities` | Supported input modalities such as `text`, `image`, and `video` |
|
|
96
|
+
| `*.load` | Server load snapshot; only `status=1` with `level=1/2/3` means low/medium/high load respectively |
|
|
97
|
+
|
|
98
|
+
## Notes
|
|
99
|
+
|
|
100
|
+
- With an explicit `--plan`, the CLI resolves that target's active tier. Without it, the CLI queries the current identity's Coding Plan subscriptions and selects only when exactly one is active; multiple active plans or any incomplete status lookup require an explicit target. Every model-list request still carries `Edition` and `BizInfo`.
|
|
101
|
+
- `--mode all` queries both model interfaces. `--mode direct` queries only VirtualModelID and returns an empty `models` array. `--mode routing` queries only LatestModel and returns an empty `direct_models` array. Team routing may still read seat information to identify the selected route.
|
|
102
|
+
- Personal and team editions use different sources for the current ark-code-latest selection:
|
|
103
|
+
- Personal: the server returns the model list + Enabled flag at subscription granularity.
|
|
104
|
+
- Team: reads `ExtraConfig.ArkCodeLatestMappingModelID` from the user's seat.
|
|
105
|
+
- Do not mix the two lists: use `models[]` only for changing the `ark-code-latest` route, and use `direct_models[].model_name` for direct invocation or Agent configuration.
|
|
106
|
+
- Model capability fields come directly from the plan model interface's `ModelCapability`. Missing fields are omitted; do not infer them from model names or overwrite them with another catalog.
|
|
107
|
+
- The data represents models allowed during the subscription period and is not equivalent to all globally callable models. For trial models, use [`../arkcli-models/`](../../arkcli-models/SKILL.md).
|
|
108
|
+
|
|
109
|
+
## References
|
|
110
|
+
|
|
111
|
+
- [arkcli-plans](../SKILL.md) -- Skill overview
|
|
112
|
+
- [`plans get`](arkcli-plans-get.md) -- First view which plans you hold
|
|
113
|
+
- [arkcli-models](../../arkcli-models/SKILL.md) -- Model queries not limited to a plan
|
|
114
|
+
- [arkcli-shared](../../arkcli-shared/SKILL.md)
|