@byteplus/ark-cli-darwin-x64 0.0.0-stage → 1.0.46-prerelease.dc921200a42d

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.
Files changed (148) hide show
  1. package/LICENSE +201 -0
  2. package/bin/arkcli-darwin-amd64 +4 -0
  3. package/manifest.json +43 -0
  4. package/package.json +20 -4
  5. package/skills/arkcli-agent/SKILL.md +152 -0
  6. package/skills/arkcli-agent/references/agent.md +398 -0
  7. package/skills/arkcli-agent/references/byok.md +65 -0
  8. package/skills/arkcli-agent/references/context-management.md +42 -0
  9. package/skills/arkcli-agent/references/debug-export.md +26 -0
  10. package/skills/arkcli-agent/references/evals.md +178 -0
  11. package/skills/arkcli-agent/references/events-chat.md +148 -0
  12. package/skills/arkcli-agent/references/interfaces-gaps.md +52 -0
  13. package/skills/arkcli-agent/references/mcp-vault.md +111 -0
  14. package/skills/arkcli-agent/references/model-config.md +46 -0
  15. package/skills/arkcli-agent/references/self-hosted.md +47 -0
  16. package/skills/arkcli-agent/references/session-files.md +149 -0
  17. package/skills/arkcli-agent/references/session-upgrade.md +61 -0
  18. package/skills/arkcli-agent/references/skills.md +87 -0
  19. package/skills/arkcli-agent/references/todo-write.md +31 -0
  20. package/skills/arkcli-api-explorer/SKILL.md +188 -0
  21. package/skills/arkcli-api-explorer/references/arkcli-api.md +180 -0
  22. package/skills/arkcli-api-explorer/references/evals.md +176 -0
  23. package/skills/arkcli-auth/SKILL.md +184 -0
  24. package/skills/arkcli-auth/references/arkcli-auth-login.md +92 -0
  25. package/skills/arkcli-auth/references/arkcli-auth-status.md +109 -0
  26. package/skills/arkcli-auth/references/arkcli-auth-whoami.md +56 -0
  27. package/skills/arkcli-auth/references/auth-modes.md +78 -0
  28. package/skills/arkcli-auth/references/evals.md +82 -0
  29. package/skills/arkcli-auth/references/identity-resolution.md +33 -0
  30. package/skills/arkcli-auth/references/realname-gate.md +69 -0
  31. package/skills/arkcli-billing/SKILL.md +122 -0
  32. package/skills/arkcli-billing/references/arkcli-billing-list.md +259 -0
  33. package/skills/arkcli-billing/references/evals.md +107 -0
  34. package/skills/arkcli-chat/SKILL.md +114 -0
  35. package/skills/arkcli-chat/references/arkcli-chat.md +283 -0
  36. package/skills/arkcli-chat/references/caching-thinking.md +124 -0
  37. package/skills/arkcli-chat/references/chat-meta.md +77 -0
  38. package/skills/arkcli-chat/references/evals.md +34 -0
  39. package/skills/arkcli-chat/references/stream-events.md +124 -0
  40. package/skills/arkcli-chat/references/text-format.md +167 -0
  41. package/skills/arkcli-chat/references/tools.md +119 -0
  42. package/skills/arkcli-config/SKILL.md +197 -0
  43. package/skills/arkcli-config/references/arkcli-config-init.md +89 -0
  44. package/skills/arkcli-config/references/arkcli-config-profile.md +106 -0
  45. package/skills/arkcli-config/references/evals.md +154 -0
  46. package/skills/arkcli-connect/SKILL.md +196 -0
  47. package/skills/arkcli-connect/references/arkcli-connect.md +165 -0
  48. package/skills/arkcli-connect/references/evals.md +231 -0
  49. package/skills/arkcli-custommodel/SKILL.md +167 -0
  50. package/skills/arkcli-custommodel/references/arkcli-custommodel-available-quantizations.md +29 -0
  51. package/skills/arkcli-custommodel/references/arkcli-custommodel-delete.md +37 -0
  52. package/skills/arkcli-custommodel/references/arkcli-custommodel-get.md +45 -0
  53. package/skills/arkcli-custommodel/references/arkcli-custommodel-list.md +65 -0
  54. package/skills/arkcli-custommodel/references/arkcli-custommodel-quantize.md +59 -0
  55. package/skills/arkcli-custommodel/references/arkcli-custommodel-update.md +47 -0
  56. package/skills/arkcli-custommodel/references/arkcli-custommodel-upload.md +64 -0
  57. package/skills/arkcli-custommodel/references/evals.md +59 -0
  58. package/skills/arkcli-datasets/SKILL.md +39 -0
  59. package/skills/arkcli-datasets/references/commands.md +83 -0
  60. package/skills/arkcli-datasets/references/evals.md +31 -0
  61. package/skills/arkcli-deploy/SKILL.md +89 -0
  62. package/skills/arkcli-deploy/references/arkcli-deploy.md +141 -0
  63. package/skills/arkcli-deploy/references/evals.md +80 -0
  64. package/skills/arkcli-docs/SKILL.md +453 -0
  65. package/skills/arkcli-docs/references/commands.md +283 -0
  66. package/skills/arkcli-docs/references/evals.md +201 -0
  67. package/skills/arkcli-docs/references/failure-modes.md +85 -0
  68. package/skills/arkcli-doctor/CONTRIBUTING.md +54 -0
  69. package/skills/arkcli-doctor/SKILL.md +367 -0
  70. package/skills/arkcli-doctor/references/error-codes.md +162 -0
  71. package/skills/arkcli-doctor/references/evals.md +385 -0
  72. package/skills/arkcli-doctor/references/scope-account.md +94 -0
  73. package/skills/arkcli-doctor/references/scope-cli.md +88 -0
  74. package/skills/arkcli-doctor/references/scope-infer-endpoint.md +132 -0
  75. package/skills/arkcli-doctor/references/scope-metrics.md +157 -0
  76. package/skills/arkcli-doctor/references/scope-model.md +130 -0
  77. package/skills/arkcli-doctor/references/verify-origin.md +102 -0
  78. package/skills/arkcli-gen/SKILL.md +188 -0
  79. package/skills/arkcli-gen/references/arkcli-gen.md +230 -0
  80. package/skills/arkcli-gen/references/gen-meta.md +154 -0
  81. package/skills/arkcli-gen/references/image-stream.md +105 -0
  82. package/skills/arkcli-helper/SKILL.md +200 -0
  83. package/skills/arkcli-helper/references/arkcli-helper.md +298 -0
  84. package/skills/arkcli-helper/references/evals.md +334 -0
  85. package/skills/arkcli-iam/SKILL.md +46 -0
  86. package/skills/arkcli-iam/references/arkcli-iam-userid.md +54 -0
  87. package/skills/arkcli-iam/references/evals.md +24 -0
  88. package/skills/arkcli-infer-endpoint/SKILL.md +82 -0
  89. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-capability-get.md +50 -0
  90. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-create.md +121 -0
  91. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-delete.md +71 -0
  92. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-get.md +43 -0
  93. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-list.md +82 -0
  94. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-start.md +36 -0
  95. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-stop.md +36 -0
  96. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-update.md +78 -0
  97. package/skills/arkcli-infer-endpoint/references/evals.md +24 -0
  98. package/skills/arkcli-models/SKILL.md +305 -0
  99. package/skills/arkcli-models/references/arkcli-models-activate.md +103 -0
  100. package/skills/arkcli-models/references/arkcli-models-get.md +94 -0
  101. package/skills/arkcli-models/references/arkcli-models-list.md +71 -0
  102. package/skills/arkcli-models/references/arkcli-models-scenario-table.md +75 -0
  103. package/skills/arkcli-models/references/arkcli-models-search.md +170 -0
  104. package/skills/arkcli-models/references/evals.md +57 -0
  105. package/skills/arkcli-onboard/SKILL.md +169 -0
  106. package/skills/arkcli-onboard/references/evals.md +156 -0
  107. package/skills/arkcli-plans/SKILL.md +135 -0
  108. package/skills/arkcli-plans/references/arkcli-plans-buy.md +125 -0
  109. package/skills/arkcli-plans/references/arkcli-plans-get.md +84 -0
  110. package/skills/arkcli-plans/references/arkcli-plans-model-apply.md +58 -0
  111. package/skills/arkcli-plans/references/arkcli-plans-model-list.md +114 -0
  112. package/skills/arkcli-plans/references/arkcli-plans-renew.md +125 -0
  113. package/skills/arkcli-plans/references/arkcli-plans-team-rotate-apikey.md +61 -0
  114. package/skills/arkcli-plans/references/arkcli-plans-team-seat-assign.md +147 -0
  115. package/skills/arkcli-plans/references/arkcli-plans-team-seat-list.md +100 -0
  116. package/skills/arkcli-plans/references/evals.md +178 -0
  117. package/skills/arkcli-pricing/SKILL.md +120 -0
  118. package/skills/arkcli-pricing/references/arkcli-pricing-models.md +258 -0
  119. package/skills/arkcli-pricing/references/arkcli-pricing-plans.md +139 -0
  120. package/skills/arkcli-profile/SKILL.md +168 -0
  121. package/skills/arkcli-profile/references/arkcli-profile-create.md +92 -0
  122. package/skills/arkcli-profile/references/arkcli-profile-keys.md +135 -0
  123. package/skills/arkcli-profile/references/arkcli-profile-set-default.md +81 -0
  124. package/skills/arkcli-profile/references/evals.md +93 -0
  125. package/skills/arkcli-resources/SKILL.md +112 -0
  126. package/skills/arkcli-resources/references/arkcli-resources-list.md +105 -0
  127. package/skills/arkcli-shared/SKILL.md +209 -0
  128. package/skills/arkcli-shared/references/global-flags.md +77 -0
  129. package/skills/arkcli-shared/references/profile-defaults.md +35 -0
  130. package/skills/arkcli-shared/references/troubleshooting.md +49 -0
  131. package/skills/arkcli-shared/references/update.md +117 -0
  132. package/skills/arkcli-train-finetune/SKILL.md +109 -0
  133. package/skills/arkcli-train-finetune/references/create.md +274 -0
  134. package/skills/arkcli-train-finetune/references/download.md +50 -0
  135. package/skills/arkcli-train-finetune/references/evals.md +59 -0
  136. package/skills/arkcli-train-finetune/references/export-deploy.md +179 -0
  137. package/skills/arkcli-train-finetune/references/list.md +79 -0
  138. package/skills/arkcli-train-finetune/references/manage.md +140 -0
  139. package/skills/arkcli-understand/SKILL.md +105 -0
  140. package/skills/arkcli-understand/references/arkcli-understand.md +249 -0
  141. package/skills/arkcli-understand/references/evals.md +109 -0
  142. package/skills/arkcli-understand/references/sub-skills.md +137 -0
  143. package/skills/arkcli-usage/SKILL.md +123 -0
  144. package/skills/arkcli-usage/references/arkcli-usage-balance.md +196 -0
  145. package/skills/arkcli-usage/references/arkcli-usage-plan.md +153 -0
  146. package/skills/arkcli-usage/references/arkcli-usage-seats.md +199 -0
  147. package/skills/arkcli-usage/references/arkcli-usage-stats.md +160 -0
  148. package/README.md +0 -3
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: arkcli-pricing
3
+ version: 1.0.0
4
+ description: "Queries BytePlus ModelArk foundation model settlement unit prices (including current-account discounts) and CodingPlan subscription prices. Price is the final unit price after account contract / promotion / plan discounts; OriginalPrice is the published list price. Invoke for model prices, pricing, unit prices, Coding Plan prices, plan prices, discounted prices, token billing, cross-modality price comparisons, or model free quotas. Anti-trigger: TTS/ASR/voice model pricing is unsupported; do not use Audio pricing and clearly state that it is unsupported."
5
+ metadata:
6
+ requires:
7
+ bins: ["arkcli"]
8
+ cliHelp: "arkcli pricing --help"
9
+ ---
10
+
11
+ # arkcli pricing
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
+
15
+ ## Applicable scenarios
16
+
17
+ - Query settlement unit prices for foundation models (input / output / batch inference / context cache and other ChargeItems).
18
+ - View free quotas (`InferenceFreeUsage`, `ResourcePackItems`) and overdue status (`IsOverdue`).
19
+ - View sub-service activation states (`SubServices`: `base` / `context-cache`).
20
+ - Filter the pricing catalog by modality.
21
+ - Query **CodingPlan subscription prices** (personal + enterprise, four tiers in total).
22
+
23
+ ## Business positioning
24
+
25
+ - **The two pricing categories are managed separately**: **model pay-as-you-go pricing** (`pricing models`) and **plan subscription pricing** (`pricing plans`) are completely independent commands. See "Models vs plans" below for the decision.
26
+ - This covers only catalog pricing for **foundation models**. However, a base model's ChargeItems are **comprehensive**: they include foundation model inference prices, training rates when the model is used for fine-tuning (`Finetune` / `LoraFinetune`), and inference prices for custom models produced by fine-tuning (`FinetuneInference*` / `FinetuneI2I*`, and others). Therefore, querying a base model once returns all related rates.
27
+ - The **backend API** does not return separate entries for custom models (fine-tuned `cm-*` models), because their rates are embedded in the base model's ChargeItems array. However, **arkcli provides reverse-lookup convenience**: `pricing models --model cm-xxx` automatically calls GetCustomModel to obtain the base name and then queries pricing. The top-level response also includes `resolved_custom_model` (`customization_type` + `foundation_model_name` / `foundation_model_version`). The Agent can use it to select the corresponding ChargeItem.Type without manually performing a two-step lookup.
28
+ - Endpoint-level actual consumption is not covered → use [arkcli-usage](../arkcli-usage/SKILL.md).
29
+ - **Rate limits / token limits / context windows are not included**. Those belong to `arkcli-models`; route to [`../arkcli-models/SKILL.md`](../arkcli-models/SKILL.md). Pricing handles only "money".
30
+ - does not offer Agent Plan, do not run `arkcli pricing plans` and do not present Coding Plan prices as Agent Plan prices.
31
+ - **Voice model pricing is not covered**: TTS / ASR / dubbing / reading / podcast / voice / real-time voice interaction models are currently unsupported in arkcli. Do not use `pricing models --model` or `--modality Audio` to answer their prices.
32
+ - **Price = the final unit price including the current account's discount** (already calculated by the backend based on contracts/promotions/plans). No client-side discount calculation is needed.
33
+ - **OriginalPrice = the published list price**. `Price < OriginalPrice` indicates that the account has a discount.
34
+
35
+ ## Commands
36
+
37
+ | Command | Description |
38
+ |------|------|
39
+ | [`pricing models`](references/arkcli-pricing-models.md) | List the foundation model settlement pricing catalog (pay-as-you-go, token-based billing). |
40
+ | [`pricing plans`](references/arkcli-pricing-plans.md) | List subscription plan prices (CodingPlan personal + enterprise). |
41
+
42
+ ## Models vs plans: which command to use
43
+
44
+ **Is the user asking for "a unit price calculated by token" or "a monthly plan price"? This is the key distinction.**
45
+
46
+ | User wording | Use | Reason |
47
+ |---|---|---|
48
+ | "How much does DeepSeek-V4 cost?" / "How much is dola-seed?" / "GPT-X price" | `pricing models` | Model name → token-based billing |
49
+ | "How much does image-to-image cost per image?" | `pricing models` | Per-call billing in ChargeItems |
50
+ | "How much is audio recognition per minute?" / "How much is TTS?" / "Voice model pricing" | `arkcli-models` | arkcli currently supports only voice model marketplace discovery, not pricing queries |
51
+ | "How much does fine-tuning cost?" / "How much does it cost to fine-tune a model?" | `pricing models` | Fine-tuning rates are embedded in the base model's ChargeItems (see `Finetune` / `LoraFinetune` types) |
52
+ | "How much does my cm-xxx cost to invoke?" / "How much is this fine-tuned model?" | `pricing models --model cm-xxx` | The CLI automatically resolves the base model + exposes `resolved_custom_model.customization_type`; select the ChargeItem according to the table below |
53
+ | "How much is Coding Plan?" / "lite / pro plan price" | `pricing plans` | Plan name → monthly subscription |
54
+ | "Coding Plan enterprise price" / "How much is the team edition?" | `pricing plans --edition enterprise` | Same as above |
55
+
56
+ Ambiguity fallback: if the user asks "How much is X?" and X is a model name → models; if X is a plan name → plans; if it resembles neither → first run `pricing plans` to list all four plan tiers and check for a match, then fall back to models.
57
+
58
+ ## `--modality` value mapping (translated by the Agent)
59
+
60
+ The backend `FoundationModelDomain` field has **five coarse-grained enum values**. arkcli passes them through without translation. When the user says "video / image / text" in natural language, you (the Agent) must translate it before passing the value:
61
+
62
+ | User may say | Actual backend enum | Note |
63
+ |---|---|---|
64
+ | Text / LLM / language model | `LLM` | |
65
+ | Image / picture / vision | `ComputerVision` | |
66
+ | Video | `ComputerVision` | ⚠️ The backend does not distinguish image/video/3D and **returns image and 3D models** |
67
+ | 3D / hyper3d | `ComputerVision` | Same as above |
68
+ | Audio / voice / TTS / ASR | Do not query | `Audio` is a backend enum, but this arkcli skill does not use it to answer marketplace voice model pricing; only state that it is unsupported |
69
+ | Vector / embedding | `Embedding` | |
70
+ | Routing / router | `Router` | |
71
+
72
+ **Important**: When the user asks "How much does video cost?", you should:
73
+ 1. Run `arkcli pricing models --modality ComputerVision` (do not pass `--modality video` directly).
74
+ 2. Filter video models from the response (using `DisplayName` or `FoundationModelTag`), or explicitly tell the user that "the backend returns the broad vision category, including image / video / 3D."
75
+
76
+ ## Key `ChargeItem.Type` enum mapping (required for response parsing)
77
+
78
+ Each base model's `ChargeItems` is **comprehensive** and may mix rates for base inference, fine-tuning training, fine-tuned inference, and generation tasks. The Agent should select only the 1–2 entries relevant to the user's question.
79
+
80
+ | User question semantics | Type to select |
81
+ |---|---|
82
+ | Inference price | `InferencePrompt` + `InferenceCompletion` |
83
+ | Batch inference price | `BatchInferencePrompt` + `BatchInferenceCompletion` |
84
+ | Context cache price | `ContextSessionHit` + `ContextSessionStorage` |
85
+ | Fine-tuning price | `Finetune` (full) or `LoraFinetune` (LoRA) |
86
+ | Price to invoke a fine-tuned model | `FinetuneInferencePrompt` + `FinetuneInferenceCompletion` |
87
+ | Image-to-image price (base model) | `T2ICompletion` / `I2ICompletion` |
88
+ | Image-to-image price (fine-tuned model) | `FinetuneT2ICompletion` / `FinetuneI2ICompletion` |
89
+ | Video generation | `T2VCompletion` / `I2VCompletion` / `V2VCompletion` (and 1080/4K variants) |
90
+ | 3D generation | `To3DCompletion` / `FinetuneTo3DCompletion` |
91
+
92
+ For the complete Type enum, see "Complete ChargeItem.Type enum mapping" in [`references/arkcli-pricing-models.md`](references/arkcli-pricing-models.md).
93
+
94
+ ## CustomizationType → ChargeItem.Type mapping
95
+
96
+ The top-level response from `pricing models --model cm-*` includes `resolved_custom_model.customization_type`. Select the rate accordingly. For the complete mapping table, see "Custom model (cm-*) reverse lookup" in [`references/arkcli-pricing-models.md`](references/arkcli-pricing-models.md).
97
+
98
+ ## Quick decisions
99
+
100
+ - User asks "How much does model X cost?": `arkcli pricing models --model X`; select `InferencePrompt` / `InferenceCompletion` from `ChargeItems`.
101
+ - User asks "How much does my cm-xxx cost?": `arkcli pricing models --model cm-xxx`; inspect `resolved_custom_model.customization_type` → select the corresponding `Finetune*` entry using the mapping above; also tell the user its base model from `resolved_custom_model.foundation_model_name`.
102
+ - User asks "Prices for all LLMs": `arkcli pricing models --modality LLM`.
103
+ - User asks "How much does a TTS / ASR / voice model cost?": do not run pricing; clearly state that pricing queries are currently unsupported.
104
+ - User asks "How much is Coding Plan?": `arkcli pricing plans` to list all four tiers, or add `--plan coding-plan-personal-lite` for one tier.
105
+ - User asks "What free quota do I have?": `pricing models`; inspect `InferenceFreeUsage` and `ResourcePackItems[Type=FreeInference]`.
106
+ - User asks "Does my account have a discount?": compare `Price` and `OriginalPrice`; the difference is the discount (supported by both commands).
107
+ - User asks "What is my actual consumption?": this is not a pricing question; route to [arkcli-usage](../arkcli-usage/SKILL.md).
108
+ - **No permission for enterprise plans**: `pricing plans` fills the `error` field for the two enterprise rows with `AccessDenied: ...`, while the two personal rows return normally. This is expected behavior, not a bug.
109
+
110
+ ## Common fallbacks
111
+
112
+ - Authentication error: route to [`../arkcli-auth/SKILL.md`](../arkcli-auth/SKILL.md).
113
+ - The user asks about consumed usage rather than unit prices: route to [`../arkcli-usage/SKILL.md`](../arkcli-usage/SKILL.md).
114
+ - The user asks about voice model pricing / TTS pricing / ASR pricing: route to [`../arkcli-models/SKILL.md`](../arkcli-models/SKILL.md), and only explain that the models can be discovered in the marketplace and that arkcli currently does not support pricing queries.
115
+
116
+ ## References
117
+
118
+ - [arkcli-usage](../arkcli-usage/SKILL.md) — Actual token / request consumption (including historical ranges)
119
+ - [arkcli-deploy](../arkcli-deploy/SKILL.md) — Create an Endpoint (automatically checks activation before deployment)
120
+ - [arkcli-shared](../arkcli-shared/SKILL.md) — Authentication and global parameters
@@ -0,0 +1,258 @@
1
+ # pricing models
2
+
3
+ > **Prerequisite:** Read [`../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ List the settlement unit price catalog for ARK foundation models. `Price` is the **final unit price (including discounts)** calculated by the backend according to the current account's contract / promotions / plans; `OriginalPrice` is the published list price.
6
+
7
+ **Voice models are unsupported**: For TTS / ASR / dubbing / podcast / voice / real-time voice interaction, do not query prices with `pricing models --model` or `--modality Audio`. Clearly state that voice models are unsupported.
8
+
9
+ ## Commands
10
+
11
+ ```bash
12
+ # List all foundation models (default PageSize=50, PageNumber=1)
13
+ arkcli pricing models
14
+
15
+ # Query one foundation model
16
+ arkcli pricing models --model deepseek-v4-pro
17
+
18
+ # Query one custom model (a fine-tuned cm-* model)
19
+ # The CLI first calls GetCustomModel to resolve the base model, then performs the standard catalog query;
20
+ # the top-level response includes an additional resolved_custom_model field
21
+ arkcli pricing models --model cm-20260611124416-77wrq
22
+
23
+ # Filter by modality (backend FoundationModelDomain enum)
24
+ arkcli pricing models --modality LLM
25
+ arkcli pricing models --modality ComputerVision
26
+ arkcli pricing models --modality Embedding
27
+
28
+ # Pagination
29
+ arkcli pricing models --page-size 20 --page-number 2
30
+
31
+ # Specify the pricing region (defaults to the current profile region)
32
+ arkcli pricing models --region ap-southeast-1
33
+ ```
34
+
35
+ ## Parameters
36
+
37
+ ### Optional filters
38
+
39
+ | Parameter | Type | Description |
40
+ |------|------|------|
41
+ | `--model` | string | One foundation model name (such as `dola-seed-2-1-turbo` / `deepseek-v4-pro`) or custom model ID (`cm-*`). The CLI automatically resolves the base model for `cm-*` and adds `resolved_custom_model` to the response |
42
+ | `--modality` | string | Backend `FoundationModelDomain` enum; **aliases are not accepted**: `LLM` / `ComputerVision` / `Audio` / `Embedding` / `Router` |
43
+ | `--region` | string | Pricing region; defaults to the current profile region |
44
+ | `--page-number` | int | Page number, 1-based, default 1 |
45
+ | `--page-size` | int | Number of entries per page, default 50 |
46
+
47
+ ### Using `--modality`
48
+
49
+ The backend `FoundationModelDomain` field **does not distinguish** image / video / 3D; they all belong to `ComputerVision`.
50
+
51
+ | User semantics | Value to pass | Note |
52
+ |---|---|---|
53
+ | Text / large language model | `LLM` | |
54
+ | Image generation / image | `ComputerVision` | Includes image / video / 3D |
55
+ | Video generation | `ComputerVision` | Same as above; requires secondary client-side filtering |
56
+ | Audio / voice | Do not query | `Audio` is a backend enum, but this arkcli skill does not support voice model pricing queries |
57
+ | Vector | `Embedding` | |
58
+ | Intelligent routing | `Router` | |
59
+
60
+ ⚠️ Do not pass natural-language aliases such as `text` / `video` / `image`. arkcli passes the value unchanged to the backend, while the backend recognizes only five enum values, resulting in an empty result or an error.
61
+
62
+ ## Return value
63
+
64
+ JSON structure (selected key fields):
65
+
66
+ ```json
67
+ {
68
+ "page_number": 1,
69
+ "page_size": 50,
70
+ "total_count": 75,
71
+ "items": [
72
+ {
73
+ "FoundationModelName": "deepseek-v4-pro",
74
+ "DisplayName": "DeepSeek-V4-pro",
75
+ "VendorName": "DeepSeek",
76
+ "State": "Available",
77
+ "ChargeItems": [
78
+ { "Type": "InferencePrompt", "Price": 0.012, "OriginalPrice": 0.012, "UnitCode": "k tokens" },
79
+ { "Type": "InferenceCompletion", "Price": 0.024, "OriginalPrice": 0.024, "UnitCode": "k tokens" },
80
+ { "Type": "ContextSessionHit", "Price": 0.001, "UnitCode": "k tokens" },
81
+ { "Type": "ContextSessionStorage","Price": 0.000017, "UnitCode": "k tokens/hour" },
82
+ { "Type": "BatchInferencePrompt","Price": 0.006, "UnitCode": "k tokens" },
83
+ { "Type": "BatchInferenceCompletion","Price": 0.012, "UnitCode": "k tokens" }
84
+ ],
85
+ "InferenceFreeUsage": { "Total": 500000, "Consumed": 0 },
86
+ "ResourcePackItems": [
87
+ { "Type": "FreeInference", "Total": 500000, "Consumed": 500000 }
88
+ ],
89
+ "SubServices": [{ "SubService": "base", "Status": "Available" }],
90
+ "IsOverdue": false
91
+ }
92
+ ]
93
+ }
94
+ ```
95
+
96
+ ## Key field definitions
97
+
98
+ | Field | Meaning |
99
+ |---|---|
100
+ | `Price` | **Discounted unit price for the current account** (the backend has applied contracts/promotions/plans); the Agent should display this value directly |
101
+ | `OriginalPrice` | Published list price. `Price < OriginalPrice` indicates a discount; the difference/ratio can describe the discount amount |
102
+ | `UnitCode` | Billing unit, commonly `k tokens`; storage uses `k tokens/hour` |
103
+ | `Type` | ChargeItem type (see the table below). When reporting inference prices, normally show only `InferencePrompt` + `InferenceCompletion` |
104
+ | `State` | Whether the model is available to the current account (`Available` / `Unavailable`) |
105
+ | `InferenceFreeUsage` | Free inference quota: `Total` total amount, `Consumed` consumed amount |
106
+ | `ResourcePackItems` | Resource pack consumption; type `FreeInference` is the free inference resource pack |
107
+ | `SubServices` | Sub-service activation state (`base` / `context-cache`), related to `--moderation` and caching behavior in [arkcli-deploy](../../arkcli-deploy/SKILL.md) |
108
+ | `IsOverdue` | true indicates overdue payment, which affects inference call success |
109
+ | `MultiChargeItems` | Tiered pricing (by token-length range), available for a few models |
110
+ | `resolved_custom_model` | Appears **only when `--model` is passed a cm-*** (top-level field, not inside items); see the next section |
111
+
112
+ ## Custom model (cm-*) reverse lookup
113
+
114
+ The backend `ListModelChargeItems` does not index custom model entries. Rates for fine-tuned cm-* models are embedded in the base model's ChargeItems with `Finetune*`-prefixed types. The CLI performs the reverse lookup for the user:
115
+
116
+ **Trigger condition**: `--model` receives any string beginning with `cm-`.
117
+
118
+ **Execution flow**:
119
+ 1. The CLI first calls `custom_model.get_custom_model { Id: "cm-xxx" }`.
120
+ 2. It obtains `FoundationModel.Name` / `FoundationModel.ModelVersion` / `CustomizationType` from the result.
121
+ 3. It runs the standard `ListModelChargeItems` query using the base name.
122
+ 4. Response `Items` contains all ChargeItems for the base model (**not trimmed**), and the top level includes an additional `resolved_custom_model`.
123
+
124
+ **Additional response field**:
125
+
126
+ ```json
127
+ {
128
+ "resolved_custom_model": {
129
+ "id": "cm-20260611124416-77wrq",
130
+ "customization_type": "FinetuneSft",
131
+ "foundation_model_name": "dola-seed-2-1-turbo",
132
+ "foundation_model_version": "260628"
133
+ },
134
+ "page_number": 1,
135
+ "page_size": 50,
136
+ "total_count": 1,
137
+ "items": [ /* all ChargeItems for the base model; the Agent selects Finetune* entries */ ]
138
+ }
139
+ ```
140
+
141
+ **ChargeItem selection for the Agent (by `customization_type`)**:
142
+
143
+ | customization_type | Invocation rate (select these two when asked about cm-* inference price) | Training rate (select this when asked about the cost to train it) |
144
+ |---|---|---|
145
+ | `FinetuneSft` (full SFT) | `FinetuneInferencePrompt` + `FinetuneInferenceCompletion` | `Finetune` |
146
+ | `FinetuneLoRA` / `DPOLoRA` / `GRPOLoRA` / `OPDLoRA` | `FinetuneInferencePrompt` + `FinetuneInferenceCompletion` | `LoraFinetune` |
147
+ | `DPO` / `GRPO` / `PPO` / `OPD` (full RL) | `FinetuneInferencePrompt` + `FinetuneInferenceCompletion` | `Finetune` |
148
+ | `Pretrain` | `FinetuneInferencePrompt` + `FinetuneInferenceCompletion` | `Finetune` |
149
+
150
+ > Invocation rates for cm-* models fine-tuned for vision/video use `FinetuneT2ICompletion` / `FinetuneI2ICompletion` / `FinetuneT2VCompletion` / `FinetuneI2VCompletion` / `FinetuneTo3DCompletion`, and others. See the complete ChargeItem.Type enum mapping below.
151
+
152
+ **Reverse-lookup errors**:
153
+ - `cm-xxx` does not exist → `GetCustomModel "cm-xxx": ... The specified CustomModel cm-xxx is not found.`
154
+ - No permission → passes through `AccessDenied`; route to [arkcli-auth](../../arkcli-auth/SKILL.md).
155
+
156
+ ## Complete ChargeItem.Type enum mapping
157
+
158
+ The base model's `ChargeItems` array is **comprehensive**. All types below may appear under the same base model node. The Agent should select the relevant entry based on the user's question.
159
+
160
+ ### Inference types (direct invocation of the base model)
161
+
162
+ | Type | Meaning |
163
+ |---|---|
164
+ | `Inference` | Average overall inference price (provided by some models) |
165
+ | `InferencePrompt` | Inference input price |
166
+ | `InferenceCompletion` | Inference output price |
167
+ | `BatchInferencePrompt` | Batch inference input price |
168
+ | `BatchInferenceCompletion` | Batch inference output price |
169
+ | `BatchInferenceCacheHit` | Batch inference prompt cache-hit price |
170
+ | `ContextSessionHit` | Context Cache hit price |
171
+ | `ContextSessionStorage` | Context Cache storage price (unit: `k tokens/hour`) |
172
+ | `VisionPrompt` / `BatchVisionPrompt` | Multimodal vision input price |
173
+
174
+ ### Fine-tuning training types (training rates when using a base model for fine-tuning)
175
+
176
+ | Type | Meaning |
177
+ |---|---|
178
+ | `Finetune` | Full fine-tuning training price |
179
+ | `LoraFinetune` | LoRA fine-tuning training price |
180
+
181
+ ### Fine-tuned inference types (inference price for invoking a fine-tuned custom model)
182
+
183
+ | Type | Meaning |
184
+ |---|---|
185
+ | `FinetuneInferencePrompt` | Fine-tuned model inference input price |
186
+ | `FinetuneInferenceCompletion` | Fine-tuned model inference output price |
187
+ | `FinetuneI2ICompletion` | Fine-tuned model image-to-image output price |
188
+ | `FinetuneI2VCompletion` | Fine-tuned model image-to-video output price |
189
+ | `FinetuneT2ICompletion` | Fine-tuned model text-to-image output price |
190
+ | `FinetuneT2VCompletion` | Fine-tuned model text-to-video output price |
191
+ | `FinetuneTo3DCompletion` | Fine-tuned model 3D generation output price |
192
+
193
+ ### Vision/multimodal generation types (output price when a base model performs generation)
194
+
195
+ | Type | Meaning |
196
+ |---|---|
197
+ | `T2ICompletion` / `T2ITokenCompletion` | Text-to-image |
198
+ | `I2ICompletion` / `I2ITokenCompletion` | Image-to-image |
199
+ | `T2VCompletion` / `I2VCompletion` | Text-to-video / image-to-video |
200
+ | `V2VCompletion` / `V2V1080Completion` / `V2V4KCompletion` | Video-to-video (standard / 1080p / 4K) |
201
+ | `NV2VCompletion` / `NV2V1080Completion` / `NV2V4KCompletion` | Silent video-to-video |
202
+ | `FLF2VCompletion` | First-and-last-frame-to-video |
203
+ | `To3DCompletion` / `BatchTo3DCompletion` | 3D generation |
204
+ | `ToVCompletion` / `ToVSilentCompletion` / `BatchToVCompletion` / `BatchToVSilentCompletion` | General video generation (including silent video) |
205
+ | `BatchV2VCompletion` / `BatchV2V1080Completion` / `BatchV2V4KCompletion` | Batch video-to-video |
206
+
207
+ ### Audio types
208
+
209
+ | Type | Meaning |
210
+ |---|---|
211
+ | `FastAudioPrompt` / `FastAudioCacheHit` | Low-latency audio inference (low-latency inference is not currently supported) |
212
+
213
+ > **Important**: A user question usually concerns only 1–2 types. Common mappings:
214
+ > - "How much is inference?" → `InferencePrompt` + `InferenceCompletion`
215
+ > - "How much does fine-tuning cost?" → `Finetune` or `LoraFinetune` (multiplied by `tokens × epoch`)
216
+ > - "How much does it cost to invoke a fine-tuned model?" → `FinetuneInferencePrompt` + `FinetuneInferenceCompletion`
217
+ > - "How much is image-to-image?" → `T2ICompletion` / `I2ICompletion` (base model) or `FinetuneT2ICompletion` / `FinetuneI2ICompletion` (fine-tuned model)
218
+
219
+ ## Common usage
220
+
221
+ **Report a model's input/output price to the user**
222
+
223
+ ```bash
224
+ arkcli pricing models --model dola-seed-2-1-turbo \
225
+ --transform 'items.0.ChargeItems.#(Type=="InferencePrompt").Price'
226
+ ```
227
+
228
+ Alternatively, omit transform to retrieve all entries, and let the Agent select `InferencePrompt` / `InferenceCompletion`.
229
+
230
+ **Determine whether the account has a discount**
231
+
232
+ ```bash
233
+ arkcli pricing models --model X
234
+ # Compare Price and OriginalPrice; Price < OriginalPrice means there is a discount
235
+ ```
236
+
237
+ **List and compare prices for all models in a modality**
238
+
239
+ ```bash
240
+ arkcli pricing models --modality LLM --page-size 100
241
+ # The Agent sorts and summarizes the result by vendor / FoundationModelName
242
+ ```
243
+
244
+ ## Common errors
245
+
246
+ | Error | Cause | Handling |
247
+ |------|------|---------|
248
+ | Empty items / total_count=0 | `--modality` was passed an alias such as `text` / `video` instead of a backend enum (this path applies only when `--model` is omitted) | Translate it to `LLM` / `ComputerVision`, and others, before passing it |
249
+ | `foundation model "X" not found in pricing list` (exit=2) | Model name X was not found in the pricing list | Check the spelling, or run `arkcli pricing models` without `--model` to retrieve all supported names |
250
+ | Model State=Unavailable | The current account has not activated it | Route to `arkcli +deploy` (automatic activation) or `arkcli models activate` |
251
+ | `IsOverdue=true` | The account has overdue payments | Does not affect pricing queries, but affects inference calls |
252
+ | `GetCustomModel "cm-xxx": ... is not found` | The cm-prefixed ID does not exist or does not belong to the current account | Check the ID spelling, or first run `arkcli api custom_model.list_custom_models` to retrieve the list |
253
+
254
+ ## References
255
+
256
+ - [arkcli-pricing](../SKILL.md) — Pricing skill overview
257
+ - [arkcli-shared](../../arkcli-shared/SKILL.md) — Authentication and global parameters
258
+ - [arkcli-usage](../../arkcli-usage/SKILL.md) — View actual consumption (tokens / requests already consumed)
@@ -0,0 +1,139 @@
1
+ # pricing plans
2
+
3
+ > **Prerequisite:** Read [`../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ List CodingPlan subscription prices (personal + enterprise, four tiers in total). `Price` is the **final subscription unit price (including discounts)** calculated by the backend for the current account; `OriginalPrice` is the published list price.
6
+
7
+ `pricing plans` and `pricing models` are **two completely independent commands**:
8
+ - `pricing models` — Token-based billing (pay-as-you-go model invocation)
9
+ - `pricing plans` — Monthly subscription (complete plan)
10
+
11
+ ## Commands
12
+
13
+ ```bash
14
+ # List all four plan tiers (personal 2 + enterprise 2 = 4)
15
+ arkcli pricing plans
16
+
17
+ # Query a single tier
18
+ arkcli pricing plans --plan coding-plan-personal-pro
19
+
20
+ # Filter by product
21
+ arkcli pricing plans --product coding-plan # CodingPlan only, four tiers in total
22
+
23
+ # Filter by edition
24
+ arkcli pricing plans --edition personal # Personal edition only, two tiers in total
25
+ arkcli pricing plans --edition enterprise # Enterprise edition only, two tiers in total
26
+
27
+ # Combine filters
28
+ arkcli pricing plans --product coding-plan --edition personal # Two CodingPlan personal tiers
29
+ ```
30
+
31
+ ## Complete Plan ID enumeration
32
+
33
+ | Plan ID | Product | Edition | Tier |
34
+ |---|---|---|---|
35
+ | `coding-plan-personal-lite` | CodingPlan | personal | lite |
36
+ | `coding-plan-personal-pro` | CodingPlan | personal | pro |
37
+ | `coding-plan-enterprise-lite` | CodingPlan | enterprise | lite |
38
+ | `coding-plan-enterprise-pro` | CodingPlan | enterprise | pro |
39
+
40
+ `--plan` accepts the four IDs above (three-part kebab-case). If misspelled, the command returns a structured error and lists all valid IDs.
41
+
42
+ ## Output fields
43
+
44
+ ```json
45
+ {
46
+ "items": [
47
+ {
48
+ "plan_id": "coding-plan-personal-lite",
49
+ "product": "CodingPlan",
50
+ "edition": "personal",
51
+ "tier": "lite",
52
+ "price": 10,
53
+ "original_price": 10,
54
+ "period": "monthly",
55
+ "currency": "USD"
56
+ },
57
+ {
58
+ "plan_id": "coding-plan-enterprise-lite",
59
+ "product": "CodingPlan",
60
+ "edition": "enterprise",
61
+ "tier": "lite",
62
+ "price": 0,
63
+ "original_price": 0,
64
+ "period": "monthly",
65
+ "currency": "USD",
66
+ "error": "AccessDenied: caller lacks permission"
67
+ }
68
+ ]
69
+ }
70
+ ```
71
+
72
+ | Field | Meaning |
73
+ |---|---|
74
+ | `plan_id` | Three-part ID that can be used as the `--plan` argument |
75
+ | `product` | `CodingPlan` |
76
+ | `edition` | `personal` or `enterprise` |
77
+ | `tier` | Tier identifier; personal/enterprise share the same set (lite/pro) |
78
+ | `price` | Final subscription unit price for the current account (after backend settlement) |
79
+ | `original_price` | Published list price |
80
+ | `period` | Subscription period, currently fixed to `monthly` |
81
+ | `currency` | Currency, currently fixed to `USD` |
82
+ | `error` | Reason why this row's query failed. Populated for **this row only**; other rows are unaffected |
83
+
84
+ ## Error isolation mechanism
85
+
86
+ The backend separates "personal batch" and "enterprise batch" into two Actions, so success / failure for personal and enterprise editions is independent:
87
+
88
+ - Your account has no enterprise-edition permission → the backend returns `AccessDenied`.
89
+ - Result: the two enterprise rows have an error message in `error` and `price = 0`; the two personal rows return prices normally.
90
+ - The command itself **does not fail**. `arkcli pricing plans` still exits with code 0, and the JSON output contains all four rows.
91
+
92
+ This matches the BytePlus ModelArk console UI: it also has two tabs (Coding Plan / Coding enterprise edition), and each tab queries pricing and fails independently. A failure in one does not affect the other.
93
+
94
+ **When the Agent processes the response**:
95
+ 1. First identify the tier the user asked about → read that row's `price` directly.
96
+ 2. If that row's `error` is non-empty → tell the user, "The account does not have permission for edition X; contact an administrator."
97
+ 3. Do not invalidate prices in other rows merely because one row has an `error`.
98
+
99
+ ## Parameter details
100
+
101
+ ### `--plan <plan-id>`
102
+
103
+ Exactly matches one of the four canonical IDs. Match → query only that tier (only one API call is needed). Misspelling → error message + list of all valid IDs.
104
+
105
+ ### `--product coding-plan`
106
+
107
+ Also accepts PascalCase (`CodingPlan`). Other values → return an empty items array (no error, because the known-value set is closed, but the Agent workflow is not blocked).
108
+
109
+ ### `--edition personal | enterprise`
110
+
111
+ Exact match.
112
+
113
+ ### Combination rules
114
+
115
+ - No flags → all four tiers.
116
+ - `--plan X` has the highest priority (when plan is supplied, other flags are ignored because the plan uniquely identifies the product + edition + tier).
117
+ - `--product` + `--edition` can be combined (logical AND).
118
+
119
+ ## Comparison with other commands
120
+
121
+ - User asks "How much is DeepSeek?", "How much is image-to-image?", or "How much does fine-tuning cost?" → [`pricing models`](arkcli-pricing-models.md).
122
+ - User asks "How much is Coding Plan small?" or "Personal / enterprise pricing" → this command.
123
+ - User asks "How much have I **already** used / consumed?" → [`../arkcli-usage/SKILL.md`](../../arkcli-usage/SKILL.md).
124
+
125
+ ## Backend Actions involved (for raw API troubleshooting)
126
+
127
+ | Action | Used for |
128
+ |---|---|
129
+ | `EstimateSubscribePrice` | One CodingPlan personal tier (called once per tier) |
130
+
131
+ If `pricing plans` completely fails to respond, use the raw API for self-checking:
132
+
133
+ ```bash
134
+ arkcli api trade.estimate_subscribe_price --params '{
135
+ "Items": [
136
+ {"BizInfo":"lite","ResourceType":"CodingPlan","ResourceName":"RealCodingPlanPersonal","Period":"monthly","Times":1}
137
+ ]
138
+ }'
139
+ ```