@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.
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,47 @@
1
+ # arkcli models custommodel update
2
+
3
+ Update a custom model's name or description.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ arkcli models custommodel update <id> [flags]
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ```bash
14
+ # Update the name
15
+ arkcli models custommodel update cm-xxxxx --name new-display-name
16
+
17
+ # Update the description
18
+ arkcli models custommodel update cm-xxxxx --description "updated for v2 release"
19
+
20
+ # Update both fields
21
+ arkcli models custommodel update cm-xxxxx --name v2 --description "..."
22
+ ```
23
+
24
+ ## Flags
25
+
26
+ | Parameter | Required | Type | Description |
27
+ |---|---|---|---|
28
+ | `<id>` | Yes | string | Custom model ID in `cm-xxxxx` form |
29
+ | `--name` | No* | string | New account-unique name. It must begin with an ASCII letter; subsequent characters may be Chinese characters, ASCII letters, digits, underscores, or hyphens. |
30
+ | `--description` | No* | string | New description, up to 300 characters |
31
+
32
+ *Pass at least one of `--name` or `--description`.
33
+
34
+ **Note:** This command changes **display properties only**. It cannot change the base model, customization type, quantization method, or status. Changing `--name` does not affect deployed endpoint references because endpoints reference the model by ID.
35
+
36
+ ## Output
37
+
38
+ On success, `result` contains only `id` and the fields changed by this request:
39
+
40
+ ```json
41
+ {
42
+ "id": "cm-xxxxx",
43
+ "name": "new-display-name"
44
+ }
45
+ ```
46
+
47
+ The response contains both `name` and `description` only when both fields were changed. It does not return unchanged fields or the complete model details.
@@ -0,0 +1,64 @@
1
+ # arkcli models custommodel upload
2
+
3
+ Import a custom model from TOS asynchronously.
4
+
5
+ > **Prerequisite: Activate BytePlus Torch Object Storage (TOS) and upload the model weights to a bucket before using the resulting `tos://<bucket>/<prefix>` URI with `--tos`.**
6
+ >
7
+ > - BytePlus TOS quick start: <https://docs.byteplus.com/en/docs/tos/docs-quick-start_1>
8
+ > - BytePlus TOS file upload guide: <https://docs.byteplus.com/en/docs/tos/docs-uploading-a-file>
9
+ >
10
+ > Follow one of these paths:
11
+ >
12
+ > - The user provides `tos://<bucket>/<prefix>`: confirm `--name`, `--base-model`, and `--tos`, then run `upload` after confirming the write operation.
13
+ > - The user has no TOS URI: **do not** run `upload`. Share the two links above and ask the user to enable TOS, create a bucket, upload the weights, and return with the URI.
14
+ >
15
+ > The bucket region must match the current BytePlus ModelArk region.
16
+
17
+ ## Usage
18
+
19
+ ```bash
20
+ arkcli models custommodel upload --name <name> --base-model <foundation-model-id> --tos tos://<bucket>/<prefix> [flags]
21
+ ```
22
+
23
+ ## Examples
24
+
25
+ ```bash
26
+ # Minimal request with all three required parameters
27
+ arkcli models custommodel upload \
28
+ --name my-finetune-v1 \
29
+ --base-model <byteplus-foundation-model-id> \
30
+ --tos tos://my-bucket/finetune/v1/
31
+
32
+ # Include a description and quantize during upload
33
+ arkcli models custommodel upload \
34
+ --name my-finetune-v1-int8 \
35
+ --base-model <byteplus-foundation-model-id> \
36
+ --tos tos://my-bucket/finetune/v1/ \
37
+ --quantization int8 \
38
+ --description "lora-sft on customer support corpus, int8 quantized"
39
+
40
+ ```
41
+
42
+ `upload` starts an asynchronous import that depends on TOS state and cannot
43
+ produce a reliable offline plan, so it does not register `--dry-run`. Restate
44
+ and confirm `name/base-model/tos/quantization` before real execution.
45
+
46
+ ## Flags
47
+
48
+ | Parameter | Required | Type | Description |
49
+ |---|---|---|---|
50
+ | `--name` | Yes | string | Account-unique custom model name. It must begin with an ASCII letter; subsequent characters may be Chinese characters, ASCII letters, digits, underscores, or hyphens. |
51
+ | `--base-model` | Yes | string | BytePlus base model ID. Query it with `arkcli models search` under the target BytePlus profile; do not hard-code a model version that may become outdated. |
52
+ | `--tos` | Yes | string | TOS URI in `tos://<bucket>/<prefix>` form pointing to the weight directory. Create the bucket and upload the weights in the TOS console first. |
53
+ | `--quantization` | No | string | Quantization method to apply during upload; the model can also be quantized later with `quantize` |
54
+ | `--description` | No | string | Description, up to 300 characters |
55
+
56
+ ## Output
57
+
58
+ Returns JSON containing the new `cm-xxxxx` and its initial status, usually `preparation`.
59
+
60
+ **Notes:**
61
+
62
+ - This is an **asynchronous** job. A successful response means only that the request was accepted, not that the weights are ready. Poll with `custommodel get <id>` until `status=ready` before deployment or quantization.
63
+ - The TOS bucket and current BytePlus ModelArk environment must be in the same region. Cross-region imports fail.
64
+ - If `--quantization` is provided during upload, the registry contains both the original and quantized `cm-xxxxx` models.
@@ -0,0 +1,59 @@
1
+ # arkcli-custommodel evals
2
+
3
+ ## Coverage goals
4
+
5
+ - Route custom model requests to `arkcli models custommodel ...`, not to base model commands such as `arkcli models search/list`.
6
+ - For "my custom models," prefer `custommodel list --mine` over the shared skill's client-side Tags filter.
7
+ - Confirm intent before write operations such as upload, deletion, or quantization, and poll asynchronous jobs with `get`.
8
+ - Check `active_endpoints` before deletion to avoid breaking an existing inference path.
9
+
10
+ ## Triggers
11
+
12
+ - Trigger `arkcli-custommodel` when the user explicitly asks about custom models, imported models, or fine-tuning artifacts.
13
+ - Trigger the `upload` path when the user wants to import weights from BytePlus TOS into the ModelArk model registry.
14
+ - Trigger the `available-quantizations` → `quantize` path when the user wants to quantize a ready custom model.
15
+
16
+ ## Anti-triggers
17
+
18
+ - Do not use this skill when the user wants platform-provided base models, model versions, context-window information, or capability recommendations. Route to `arkcli-models`.
19
+ - Do not pass `cm-xxxxx` directly to `+chat` or `+gen` for chat, image generation, or video generation. Route to `arkcli-deploy` first to create an endpoint.
20
+ - Do not remain in this skill when the user wants to manage an existing endpoint. Route to `arkcli-infer-endpoint`.
21
+ - Do not assume this skill creates fine-tuning jobs. Route those requests to `arkcli-train-finetune`.
22
+
23
+ ## Guards
24
+
25
+ - If authentication state is unknown, run `arkcli auth status` first.
26
+ - Before `upload`, `update`, `delete`, or `quantize`, restate the impact and obtain confirmation.
27
+ - Before `delete`, run `arkcli models custommodel get <id> --transform id,name,active_endpoints`.
28
+ - Before `quantize`, confirm that the source model has `status=ready`, then run `available-quantizations <id>`.
29
+ - Use `quantize --dry-run` only for local request preview, never server-side validation, then obtain user confirmation before the real quantization request.
30
+ - After `upload` or `quantize`, do not resubmit the command. Poll with `get` instead.
31
+
32
+ ## Tested happy-path CLI commands
33
+
34
+ ```bash
35
+ arkcli models custommodel list --mine --statuses ready --format json
36
+ arkcli models custommodel get cm-xxxxx --transform id,name,status,active_endpoints,artifact_types
37
+ arkcli models custommodel available-quantizations cm-xxxxx
38
+ ```
39
+
40
+ ## Regression cases
41
+
42
+ | Case | Prompt | Expected behavior |
43
+ |---|---|---|
44
+ | `custommodel-list-mine` | Show me my ready custom models. | Read the shared skill and list reference; run `arkcli models custommodel list --mine --statuses ready`; do not use `arkcli models list/search` as the primary path. |
45
+ | `custommodel-list-invalid-sort-order` | List the first page of custom models with `--sort-order invalid`. | Explain that `--sort-order` accepts only lowercase `asc` or `desc`; do not send a request or pass the invalid value to the backend. |
46
+ | `custommodel-list-tabular-output` | List custom models as a table. How should each result be read? | Read the list reference; interpret each `result.items[]` model as one row and never describe the paginated `result` as a Go map. Use JSON/YAML when total/page metadata is required. |
47
+ | `custommodel-upload-tos` | Import the weights at tos://bucket/path/ as a custom model. | Read the upload reference; confirm `--name`, `--base-model`, and `--tos`; confirm the write operation before execution; instruct the user to poll with `get` afterward. |
48
+ | `custommodel-delete-guard` | Delete cm-abc. | Read the delete and get references; inspect `active_endpoints` and restate the impact; optionally preview with `--dry-run`; delete only after confirmation and use `--yes` only in a non-interactive flow. |
49
+ | `custommodel-quantize-ready` | Quantize cm-abc to int8. | Use `get` to confirm `ready`; run `available-quantizations cm-abc`; verify that int8 is available; preview with `quantize --dry-run`; require zero network effects and no backend `DryRun` in the payload; never call it server validation; obtain confirmation before the real `quantize`; poll the new ID with `get`. |
50
+ | `custommodel-direct-chat-anti` | Run +chat directly with cm-abc. | Load `arkcli-custommodel`; do not run `+chat`, `+deploy`, `infer endpoint list`, or an ad hoc `jq` scan; explain that `cm-*` cannot be invoked directly and requires an Endpoint; route to `arkcli-deploy` only after separate deployment authorization. |
51
+
52
+ ## Scoring criteria
53
+
54
+ - Route to `arkcli-custommodel` and read the corresponding reference before each specific command.
55
+ - Do not replace custom model commands with base model catalog commands.
56
+ - Do not skip write-operation confirmation.
57
+ - Use `quantize --dry-run` only for local preview; it neither contacts the server nor creates a quantized model.
58
+ - Do not skip the endpoint-reference check before deletion.
59
+ - Do not pass `cm-xxxxx` directly as the inference model for `+chat` or `+gen`.
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: arkcli-datasets
3
+ description: Use ArkCLI to create, validate, inspect, update, delete, version, and download datasets. Trigger for Dataset, ds-*, dsv-*, reusable training or validation data, schema validation, and dataset-backed fine-tuning jobs.
4
+ ---
5
+
6
+ # ArkCLI Datasets
7
+
8
+ Read [`../arkcli-shared/SKILL.md`](../arkcli-shared/SKILL.md) first and follow its authentication, output, safety, Client Preview, and confirmation rules.
9
+
10
+ ## Scope
11
+
12
+ - Create a Dataset and its first `V1`, or create a new version for an existing Dataset.
13
+ - Use local `.jsonl` files or map objects from one TOS bucket.
14
+ - Resolve the exact `DatasetSchema` from a foundation model fine-tuning configuration and run server-side validation.
15
+ - Inspect, update, delete, version, and download Dataset resources.
16
+ - Produce stable `<dataset-id>:<version-id>` references for `train finetune create`.
17
+
18
+ Use [`../arkcli-train-finetune/SKILL.md`](../arkcli-train-finetune/SKILL.md) when the task only manages fine-tuning jobs. Do not replace an available `dataset` product command with Raw API calls.
19
+
20
+ ## Guards
21
+
22
+ 1. Run `arkcli auth status` first and recover authentication through the shared skill if needed.
23
+ 2. Read the target leaf command's `--help` before execution and follow the installed CLI version.
24
+ 3. `--dataset-format` accepts only `LLMSft`, `LLMPretrain`, `LLMDPO`, `LLMRL`, `EmbeddingSft`, `ImageGenSft`, or `VideoGenSft`. Never send display labels or another backend SchemaType.
25
+ 4. `--local` and `--tos-uri` are mutually exclusive. Local inputs must be `.jsonl` and are limited to 20 files. Multiple TOS URIs must use one bucket. Every `--tos-uri` prefix must be listable by the current identity and contain at least one `.jsonl` object. Never reuse a `ds-ds/*` upload staging path; use registered storage under `ark/dataset/<dataset-id>/<dataset-version-id>/` or another readable data path.
26
+ 5. Create and version-create validate every input first. Omit `AccountID` from `ValidateDataset.StorageRawLocation.Storage`, then include the current account's numeric `AccountID` in `CreateDatasetVersion.Storage` for both V1 and later versions. `CreateDatasetVersion` omits the optional `Name`, and the CLI exposes no flag for it. Treat the response `Version` as authoritative. A failure does not roll back uploaded objects or an already-created Dataset.
27
+ 6. `dataset version get <dataset-id> <Vn|dsv-*> --preview` reads at most 100 KiB (102400 bytes) from each object, matching the console Dataset preview limit. Downloads support both `dataset download ... --version ...` and `dataset version download <dataset-id> <Vn|dsv-*>`; neither overwrites existing files.
28
+ 7. Before deletion, display version count, storage-prefix count, and object count/bytes when available, then confirm separately.
29
+ 8. Create, version-create, validate, download, update, and delete support leaf-local `--dry-run`. Read-only list/get commands do not; `version get --preview` is a real read-only query, not Client Preview.
30
+ 9. Client Preview is an offline plan. It does not upload data, validate server state, or replace delete confirmation.
31
+ 10. BytePlus Dataset storage is supported only in AP regions. Stop locally when the active profile uses a non-AP region.
32
+
33
+ ## Routing
34
+
35
+ - Read [`references/commands.md`](references/commands.md) for create, maintenance, validation, download, and fine-tuning references.
36
+ - After preparing a Dataset, read [`../arkcli-train-finetune/references/create.md`](../arkcli-train-finetune/references/create.md) for job creation.
37
+ - Maintainers can use [`references/evals.md`](references/evals.md) for regression coverage.
38
+
39
+ Load only the reference required by the current task.
@@ -0,0 +1,83 @@
1
+ # Dataset command workflows
2
+
3
+ ## Create and version
4
+
5
+ Preview first, then execute after the required confirmation:
6
+
7
+ ```bash
8
+ arkcli dataset create --name <name> --dataset-format LLMSft --local <train.jsonl> --dry-run
9
+ arkcli dataset create --name <name> --dataset-format LLMSft --local <train.jsonl>
10
+ arkcli dataset create --name <name> --dataset-format LLMSft --tos-uri tos://<bucket>/<path>
11
+ ```
12
+
13
+ Each `--tos-uri` prefix must be listable by the current identity and contain at least one `.jsonl` object. Do not reuse `ds-ds/<uuid>/...` from local-upload output: it is upload staging and is not a mapped source for the Dataset validation engine. Prefer registered storage under `ark/dataset/<dataset-id>/<dataset-version-id>/` or another known-readable data path. The CLI lists the prefix before submitting validation and distinguishes an unreadable listing from a prefix with no JSONL objects.
14
+
15
+ Save `dataset_id`, `dataset_version_id`, `version`, `storage`, and `validation_jobs` from structured output. Local objects use `ds-ds/<uuid>/<filename>`. `ValidateDataset.StorageRawLocation.Storage` omits `AccountID`; V1 and later `CreateDatasetVersion.Storage` requests include the current account's numeric `AccountID`.
16
+
17
+ ```bash
18
+ arkcli dataset version create <dataset-id> --local <new.jsonl> --dry-run
19
+ arkcli dataset version create <dataset-id> --local <new.jsonl>
20
+ ```
21
+
22
+ Real execution still reads the Dataset for the SchemaType needed by validation, but it does not derive a name from `CreatedVersions` or send the optional `CreateDatasetVersion.Name`. The CLI exposes no flag for that field, and Client Preview omits `Name` as well. Treat the response `Version` as authoritative; the server handles concurrent version allocation.
23
+
24
+ ## Inspect and maintain
25
+
26
+ ```bash
27
+ arkcli dataset list --page-number 1 --page-size 100
28
+ arkcli dataset get <dataset-id>
29
+ arkcli dataset update <dataset-id> --name <new-name> --dry-run
30
+ arkcli dataset update <dataset-id> --name <new-name>
31
+ arkcli dataset delete <dataset-id> --dry-run
32
+ arkcli dataset delete <dataset-id>
33
+ arkcli dataset version list <dataset-id>
34
+ arkcli dataset version get <dataset-version-sid>
35
+ arkcli dataset version get <dataset-id> V2
36
+ arkcli dataset version get <dataset-id> V2 --preview
37
+ ```
38
+
39
+ A friendly `Vn` needs its Dataset ID. A `dsv-*` SID can be queried directly. `--preview` reads at most 100 KiB (102400 bytes) per object, matching the console, and reports truncation. Delete first displays the version, prefix, and available object impact before asking for confirmation; never bypass this with Raw API.
40
+
41
+ ## Validate
42
+
43
+ ```bash
44
+ arkcli dataset validate --local <data.jsonl> --model <model> --model-version <version> --type sft --dry-run
45
+ arkcli dataset validate --local <data.jsonl> --model <model> --model-version <version> --type sft
46
+ ```
47
+
48
+ Real execution resolves the model's exact schema, prepares storage, submits one server-side validation per path, and polls each job to `Succeed` or `Failed`. Do not derive a schema from the type string and do not add a nonexistent `--sample-count` flag.
49
+
50
+ ## Download
51
+
52
+ ```bash
53
+ arkcli dataset download <dataset-id> --version <dsv-id-or-vn> --dry-run
54
+ arkcli dataset download <dataset-id> --version V2 --output-dir ./dataset-copy
55
+ arkcli dataset version download <dataset-id> <dsv-id-or-vn> --dry-run
56
+ arkcli dataset version download <dataset-id> V2 --output-dir ./dataset-copy
57
+ ```
58
+
59
+ The default directory is `./<dataset-id>-<version>/`. Relative object paths are preserved and existing targets are never overwritten.
60
+
61
+ ## Use with fine-tuning
62
+
63
+ ```bash
64
+ arkcli train finetune create \
65
+ --name <job-name> \
66
+ --model <model> --model-version <version> --type sft \
67
+ --train-dataset <dataset-id>:<dataset-version-id>
68
+ ```
69
+
70
+ Use `--validation-dataset <dataset-id>:<dataset-version-id>` for validation data. For multiple ordinary Dataset references, scaling, or sampling, repeat `--train-path`. Each JSON object sets at most one of `multiplier` or `sample_count`; omitting both keeps `Multiplier=1`:
71
+
72
+ ```bash
73
+ --train-path '{"dataset_id":"ds-...","dataset_version_id":"dsv-...","multiplier":1}'
74
+ --train-path '{"dataset_id":"ds-...","dataset_version_id":"dsv-...","sample_count":500}'
75
+ ```
76
+
77
+ Presets also use repeatable JSON and must set exactly one of `inject_multiplier` or `inject_sample_count`:
78
+
79
+ ```bash
80
+ --preset-dataset '{"dataset_version_id":"dsv-...","inject_sample_count":100}'
81
+ ```
82
+
83
+ `--train-path` is mutually exclusive with every other training Dataset, TOS, or local-file source. The CLI verifies schema compatibility and rejects presets not declared by the model configuration.
@@ -0,0 +1,31 @@
1
+ # arkcli-datasets evals
2
+
3
+ ## Trigger
4
+
5
+ - Create, validate, inspect, update, delete, version, or download a Dataset.
6
+ - A request contains `ds-*`, `dsv-*`, or a friendly `Vn`.
7
+ - Reusable Dataset input is needed for a fine-tuning job.
8
+
9
+ ## Anti-trigger
10
+
11
+ - Use `arkcli-train-finetune` for an existing `mcj-*` job with no Dataset management.
12
+ - Do not trigger for generic TOS uploads unrelated to Dataset resources.
13
+
14
+ ## Regression cases
15
+
16
+ | case | prompt | expected behavior |
17
+ |---|---|---|
18
+ | `dataset-create-local` | Create an LLMSft Dataset from train.jsonl. | Preview with leaf-local `--dry-run`, then execute; omit `AccountID` from validation, include the current account in V1 `CreateDatasetVersion.Storage.AccountID` as a JSON number, and do not invent rollback. |
19
+ | `dataset-format-invalid` | Create a Dataset with `ImageGenerationSFT`. | Reject locally and list every valid value: `LLMSft`, `LLMPretrain`, `LLMDPO`, `LLMRL`, `EmbeddingSft`, `ImageGenSft`, and `VideoGenSft`. |
20
+ | `dataset-version-friendly-id` | Get V3 from ds-1. | Run `dataset version get ds-1 V3`; never send V3 without the Dataset ID. |
21
+ | `dataset-version-sid` | Get dsv-1. | Run `dataset version get dsv-1` without requiring a redundant Dataset ID. |
22
+ | `dataset-version-preview` | Preview V1 from ds-1. | Run `dataset version get ds-1 V1 --preview`; read no more than 100 KiB (102400 bytes) per object and return `truncated`. |
23
+ | `dataset-version-concurrent-create` | Concurrently create two versions for one Dataset. | Run them independently. `CreateDatasetVersion` omits the optional `Name` and does not derive one from `CreatedVersions`. Use the server-returned `Version` for each call. |
24
+ | `dataset-validate-schema` | Validate TOS data for a model/version DPO configuration. | Run model-aware `dataset validate`; do not use the type string as SchemaType or add `--sample-count`. |
25
+ | `dataset-tos-staging-prefix` | Create from `tos://.../ds-ds/<uuid>/` returned by an earlier local upload. | Reject before `ValidateDataset`, explain that `ds-ds/*` is upload staging, and direct the user to `ark/dataset/<dataset-id>/<dataset-version-id>/` or another listable prefix containing JSONL objects. |
26
+ | `dataset-download-conflict` | Download V2 into a directory containing the same target. | Preserve relative paths and stop without overwriting. |
27
+ | `dataset-version-download-alias` | Download ds-1/V2 from the version command. | Use `dataset version download ds-1 V2`; preserve the same Preview, output, and no-overwrite contract as `dataset download --version V2`. |
28
+ | `dataset-delete-impact` | Delete ds-1. | Display version count, storage-prefix count, and available object count/bytes before a separate confirmation. |
29
+ | `dataset-byteplus-region` | Create a Dataset from a non-AP BytePlus profile. | Stop locally with the AP-region constraint before any upload or Dataset API call. |
30
+ | `finetune-dataset-reference` | Train with ds-1/dsv-1 and one preset. | Use `--train-dataset ds-1:dsv-1` and wire-shape preset JSON; reject a simultaneous training TOS or local-file source. |
31
+ | `finetune-train-path-sampling` | Scale one Dataset by 2 and sample 500 rows from another. | Repeat `--train-path`; each entry uses only `multiplier` or `sample_count`, and no other training source may be combined. |
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: arkcli-deploy
3
+ version: 1.4.0
4
+ description: "arkcli +deploy: The unified preferred entry point for creating inference endpoints (Endpoint) —— **when users say “create/new/create an endpoint” or “deploy/launch/deploy a model,” as long as the intent is to create a new endpoint, always use this first, and do not use create in arkcli-infer-endpoint**. Use this when the user needs to deploy a model as an online inference endpoint. Note: Use arkcli-infer-endpoint only when performing full lifecycle management such as get/list/start/stop/update on an **existing** endpoint; this skill is only responsible for one-click creation (CRUD beyond creation is not included here). "
5
+ metadata:
6
+ requires:
7
+ bins: ["arkcli"]
8
+ cliHelp: "arkcli +deploy --help"
9
+ ---
10
+
11
+ # arkcli +deploy
12
+
13
+ **Prerequisite:** First use Read to read [`../arkcli-shared/SKILL.md`](../arkcli-shared/SKILL.md) to get shared authentication/configuration/write-operation guard rules.
14
+
15
+ ## Choose a model before collecting creation parameters
16
+
17
+ After the shared authentication check, if the user has not supplied an exact
18
+ model, make one bounded read-only query: `arkcli models search --size 10 --format json`.
19
+ Add the user's explicit keyword or modality to that same query when available.
20
+ Use the returned `name` and `primary_version` to present real model IDs, then ask
21
+ the user to choose when multiple candidates remain. Do not pick the first item,
22
+ invent a model, repeat the search, or create an Endpoint before the model is
23
+ selected. An Endpoint name is not needed for this read-only query; collect it
24
+ later when confirming the final creation parameters.
25
+
26
+ **New flag `--set-default <modality>`**: After a real deployment succeeds, automatically set the new endpoint as the default resource for this modality (`text` / `image` / `video`) in the active profile when the user explicitly passes a modality; failures only warn on stderr and do not block the main deployment flow. For details, see [`../arkcli-shared/references/profile-defaults.md`](../arkcli-shared/references/profile-defaults.md).
27
+
28
+ **Write operation + billing**: `+deploy` creates an online inference endpoint. Its workflow depends on live discovery and **does not support `--dry-run`**. BytePlus enforces a two-stage runtime gate:
29
+
30
+ 1. Run the exact command **without `--yes`**. The CLI performs only the read-only discovery needed to normalize the request, returns `status: requires_confirmation` with the final `model`, `endpoint_name`, `region`, `configuration`, and `billing_impact`, and does not activate a model or create an Endpoint.
31
+ 2. Show those exact returned values to the end user and stop. Do not treat confirmation given before this disclosure as approval of the normalized plan, and do not add `--yes` in the same turn.
32
+ 3. Only after a **fresh explicit confirmation** of the disclosed values may you rerun the **same command with `--yes`**. This second invocation may create the billable Endpoint.
33
+
34
+ **Model activation is a separate billable write action and must never be automatic in non-interactive environments**: If the target base model has not been activated, the confirmed `+deploy --yes` invocation reaches the separate model-activation gate. **In non-TTY environments such as agent / CI / pipelines, activation is hard-rejected even when `--yes` is present**: `--yes` confirms the previously disclosed Endpoint creation plan, but it does not authorize model activation. When this is hit, the CLI returns `model_activation_required` plus a console link. You **must end this turn and hand the activation billing action together with the link back to a human**, who must confirm in an interactive terminal or activate it in the web console. It is strictly forbidden to add `echo Y` or set `ARKCLI_ALLOW_HEADLESS_ACTIVATION` yourself. `ARKCLI_ALLOW_HEADLESS_ACTIVATION=1` is reserved only for genuine unattended automation, not something an agent should set. If the user's request literally is "activate model without prompts", that is a **models activate** intent; route to `arkcli models activate`. Do not translate it into `+deploy --yes`, and do not synthesize a deployment name from the model name.
35
+
36
+ **Hard boundary for voice models**: For TTS / ASR / dubbing / reading aloud / podcasts / voice design / real-time voice interaction, **do not execute `+deploy`**. These models currently do not support endpoint creation in arkcli, and this cannot be bypassed by activating the model.
37
+
38
+ ## Subcommand enumeration (only this one)
39
+
40
+ | Invocation |Description|
41
+ |------|------|
42
+ | `arkcli +deploy --name <ep-name> --model <model-id> [...]` | First stage: returns the normalized confirmation plan; creates nothing. |
43
+ | `arkcli +deploy --name <ep-name> --model <model-id> [...] --yes` | Second stage: after the fresh confirmation, creates the disclosed Endpoint. |
44
+
45
+ > ⚠️ **There is no** `arkcli deploy ...` / `arkcli endpoint create` / `arkcli +deploy create` or other subcommands. The entire capability is one `+deploy` command plus flags.
46
+
47
+ ## Anti-hallucination checklist
48
+
49
+ - `--name` and `--model` are required.
50
+ - Model versions, prices, and quotas must come from structured results returned by read-only commands in the current run; **you must not invent model versions or prices**. If the query fails or authentication is missing, mark the value as unverified instead of substituting a "typical" price or guessed value.
51
+ - **After a read-only query fails, do not fill dependent fields**: keep the affected authentication, model, pricing, or resource facts unverified and name the failed source. Do not continue by asserting amounts, idle-charge policy, an exact model version, or that no existing Endpoint exists.
52
+ - To check existing Endpoints, run `arkcli resources list --format json` and filter the returned fields; **you must not add undocumented `--filter`** or any other flag absent from `resources list --help`.
53
+ - For JSON-type flags (`--rate-limit` / `--moderation` / `--intelligent-router` / `--tags`, etc.), parameter names must always be **PascalCase**: `Rpm`, `Tpm`, `Strategy`, `Mode`, not `rpm`/`tpm`.
54
+ - When the model has not been activated, activation in `+deploy` is **hard-rejected under non-TTY, and `--yes` does not allow it**; **do not add `--yes` / `echo Y` / set `ARKCLI_ALLOW_HEADLESS_ACTIVATION` yourself**. You must hand activation (billing) back to a human to handle in the terminal / console.
55
+ - For Endpoint creation, the first command must be run without `--yes`. Surface the CLI's `requires_confirmation` payload and wait for a fresh explicit confirmation before using the same command with `--yes`; never execute both stages in one agent turn.
56
+ - Deployment of voice models (TTS / ASR / podcasts / voice design / real-time voice interaction) is not supported; when such a model is hit, do not execute the `+deploy` command, and there is no need to execute any other command.
57
+
58
+ ## Routing decision
59
+
60
+ - The user already has a model ID and wants to deploy formally -> run `arkcli +deploy --name <ep> --model <id>` without `--yes`, surface its normalized confirmation payload, wait for a fresh explicit confirmation, and only then rerun the same command with `--yes`.
61
+ - The user's verb is only "activate / open service / enable base|context-cache" (without endpoint/name) → **do not** run `arkcli +deploy`, route to `arkcli models activate`.
62
+ - The user wants to deploy / access a voice model, or the model name looks like `*-tts-*` / `*-asr-*` / `seedasr-*` → directly state that “endpoint creation is not supported.”
63
+ - When the user provides a custom model ID (`cm-xxxxx`), before real creation, it first checks whether there is an existing endpoint that references this custom model and has status `Running`; if yes, it directly reuses it and outputs the existing `endpoint-id`, without creating a second billable resource. This live reuse decision is one reason `+deploy` cannot provide a reliable offline Client Preview.
64
+ - The user urgently asks to "create it immediately" -> **do not skip either stage**. Run only the no-`--yes` disclosure stage, then stop for a fresh explicit confirmation.
65
+ - If an `Id` has already been obtained through `arkcli infer endpoint create` → **do not** create a second one with `+deploy`; route to `arkcli-infer-endpoint`.
66
+
67
+ ## Anti-triggers (route elsewhere, with full commands to avoid downstream hallucinations)
68
+
69
+ | User intent | Route to | Full example command |
70
+ |---------|--------|------------|
71
+ | Only want to try the model output / one-off generation | `arkcli-chat` / `arkcli-gen` | `arkcli +chat --model <id> '...'` or `arkcli +gen --model <id> '...'` |
72
+ | Model ID not decided | `arkcli-models` | `arkcli models search <keyword>` or `arkcli models list` |
73
+ | 401 / authentication failed | `arkcli-auth` | `arkcli auth status`; if needed, `arkcli auth login` |
74
+ | profile / region / project does not match expectations | `arkcli-config` | Use `arkcli auth whoami --format json` for the identity summary and `arkcli resources list --format json` for defaults. Reserve reconciling `profile show/list` for explicit Profile management |
75
+ | Scripting / CI / need fine-grained control over every parameter and to skip guardrails | `arkcli-infer-endpoint` | `arkcli infer endpoint create --model <id> --name <ep>` |
76
+
77
+ ## Typical workflow
78
+
79
+ 1. **From model selection to production access**: `arkcli auth status` -> `arkcli models search/get` -> `arkcli +deploy ...` without `--yes` -> show the returned final model/name/region/configuration/billing impact -> wait for a fresh explicit confirmation -> run the same command with `--yes`. (Custom models reuse an existing Running endpoint if one exists.)
80
+ 2. **From trial to production access**: Verify the output with `arkcli +chat` / `arkcli +gen`, then follow the same two-stage disclosure and confirmation flow.
81
+
82
+ For detailed flags, JSON parameter examples, and error codes, see [`references/arkcli-deploy.md`](references/arkcli-deploy.md).
83
+
84
+ ## References
85
+
86
+ - [arkcli-chat](../arkcli-chat/SKILL.md) -- Quick chat trial; does not create an endpoint.
87
+ - [arkcli-gen](../arkcli-gen/SKILL.md) -- One-step image/video generation.
88
+ - [arkcli-models](../arkcli-models/SKILL.md) -- Confirm the model ID before deployment.
89
+ - [arkcli-shared](../arkcli-shared/SKILL.md) -- Authentication and global parameters.
@@ -0,0 +1,141 @@
1
+ # +deploy detailed reference
2
+
3
+ > **Prerequisite:** Read [`../SKILL.md`](../SKILL.md) first. This file only adds flag details, JSON examples, and error codes that are not covered above.
4
+
5
+ ## Key points agents must read (do not skip)
6
+
7
+ 1. Subcommands are exhaustive: only `arkcli +deploy`.**There is no** `arkcli deploy ...` / `arkcli endpoint create` / `arkcli +deploy create`.
8
+ 2. **Write operation + billing**: This workflow does not support `--dry-run`. The first invocation without `--yes` returns a `requires_confirmation` plan and creates nothing. After the user sees the normalized plan and gives a fresh explicit confirmation, rerun the same command with `--yes` to create for real.
9
+ 3. JSON-type flag parameter names are always **PascalCase**: `Rpm`, `Tpm`, `Strategy`, and `Mode`, not lowercase.
10
+ 4. When `--model cm-xxxxx` is executed for real, an existing Running endpoint is reused first. It is created only when no reusable endpoint is found.
11
+
12
+ ## Command templates
13
+
14
+ Before creation, resolve the model choice and reuse details for that exact version.
15
+ An invalid or retired version is not fixed by activation, changing the prompt, or
16
+ repeating creation. `--tags` takes an array of Key/Value objects, not a map.
17
+ Quote JSON arguments as complete JSON; single-value flags such as `--model <model-id>`
18
+ need a value. Valid syntax does not prove backend compatibility. Keep the BytePlus
19
+ disclosure/confirmation workflow above; never invent `+deploy --dry-run`.
20
+
21
+ ```bash
22
+ # Stage 1: normalize and disclose the final plan; no model activation or Endpoint creation
23
+ arkcli +deploy --name my-endpoint --model dola-seed-2-1-turbo-260628
24
+
25
+ # Show the returned model/name/region/configuration/billing impact and stop.
26
+ # Only after a fresh explicit confirmation, stage 2 creates the disclosed Endpoint:
27
+ arkcli +deploy --name my-endpoint --model dola-seed-2-1-turbo-260628 --yes
28
+
29
+ # Stage 1 with rate limits (note the PascalCase parameter names)
30
+ arkcli +deploy --name my-endpoint --model dola-seed-2-1-turbo-260628 \
31
+ --rate-limit '{"Rpm": 60, "Tpm": 10000}'
32
+
33
+ # With moderation
34
+ arkcli +deploy --name my-endpoint --model dola-seed-2-1-turbo-260628 \
35
+ --moderation '{"Strategy": "Basic"}'
36
+
37
+ # With intelligent routing
38
+ arkcli +deploy --name my-endpoint --model dola-seed-2-1-turbo-260628 \
39
+ --intelligent-router '{"Strategy": "Balanced", "Mode": "Automatic"}'
40
+
41
+ # Use a profile that owns the intended project
42
+ arkcli +deploy --name my-endpoint --model dola-seed-2-1-turbo-260628 \
43
+ --profile platform_ap-southeast-1_my-project
44
+
45
+ # Custom model: reuse an existing Running endpoint directly if available; otherwise create one.
46
+ arkcli +deploy --name my-custom-endpoint --model cm-xxxxx
47
+ ```
48
+
49
+ ## Parameter
50
+
51
+ ### Required
52
+
53
+ | Parameter | Type |Description|
54
+ |------|------|------|
55
+ | `--name` | string | Endpoint name |
56
+ | `--model` | string | Model ID (base model or custom model) |
57
+
58
+ ### Common Optional
59
+
60
+ | Parameter | Type |Description|
61
+ |------|------|------|
62
+ | `--description` | string | Endpoint description |
63
+ | `--yes` | bool | Rerun the previously disclosed command after fresh confirmation to create the billable Endpoint. It does not authorize model activation in non-TTY environments. |
64
+ | `--rate-limit` | JSON string | Rate limit, such as `{"Rpm": 60, "Tpm": 10000, "Ipm": 100}` |
65
+ | `--moderation` | JSON string | Moderation configuration. Strategy: `Basic` / `Customized` / `Default` / `Skip` |
66
+
67
+ ### Advanced configuration
68
+
69
+ | Parameter | Type |Description|
70
+ |------|------|------|
71
+ | `--model-unit-id` | string | Model unit ID |
72
+ | `--batch-only` | bool | Batch inference mode only. |
73
+ | `--data-delivery` | bool | Data delivery mode |
74
+ | `--domain` | string | Endpoint domain (automatically inferred from the model if not specified) |
75
+ | `--dedicated-to-ptu` | bool | Dedicated to PTU |
76
+ | `--dedicated-to-dynamic-ptu` | bool | Dedicated to dynamic PTU |
77
+ | `--content-generation` | JSON string | Content generation configuration |
78
+ | `--inference-foundry` | JSON string | Inference foundry configuration |
79
+ | `--tags` | JSON string | Tags, such as `[{"Key": "env", "Value": "prod"}]` |
80
+ | `--allow-data-collected` | bool | Allow data collection |
81
+ | `--service-info` | JSON string | Service information |
82
+ | `--need-watermark` | bool | Watermark required |
83
+ | `--watermark-info` | JSON string | Watermark information |
84
+ | `--intelligent-router` | JSON string | Intelligent routing. Strategy: `Balanced` / `CostFirst` / `EffectFirst`. Mode: `Automatic` / `CandidateSet` / `Ordered` |
85
+ | `--is-intelligent` | bool | Whether to enable intelligent routing |
86
+ | `--fallback` | JSON string | Fallback configuration |
87
+ | `--limit-coefficient` | JSON string | Limit coefficient |
88
+ | `--deployment-type` | string | Deployment type |
89
+ | `--is-agentic` | bool | Whether it is Agentic |
90
+ | `--agentic-strategy` | JSON string | Agentic strategy. Mode: `Auto` / `Custom` |
91
+ | `--is-aicc` | bool | Whether it is AICC |
92
+ | `--specify-region` | string | Specify region |
93
+
94
+ ## Return values
95
+
96
+ The first invocation without `--yes` returns:
97
+
98
+ ```json
99
+ {
100
+ "status": "requires_confirmation",
101
+ "operation": "create_endpoint",
102
+ "model": "dola-seed-2-1-turbo-260628",
103
+ "endpoint_name": "my-endpoint",
104
+ "region": "ap-southeast-1",
105
+ "configuration": {
106
+ "description": "",
107
+ "batch_only": false,
108
+ "data_delivery": false,
109
+ "dedicated_to_ptu": false,
110
+ "dedicated_to_dynamic_ptu": false,
111
+ "allow_data_collected": false,
112
+ "need_watermark": false,
113
+ "is_intelligent": false,
114
+ "is_agentic": false,
115
+ "is_aicc": false
116
+ },
117
+ "billing_impact": "...",
118
+ "confirm_text": "...",
119
+ "confirmation_required": true,
120
+ "confirmation_flag": "--yes"
121
+ }
122
+ ```
123
+
124
+ `configuration` always includes the normalized default fields shown above and adds every optional section supplied by the caller. Surface the CLI's actual complete `configuration`, not an empty or reconstructed placeholder.
125
+
126
+ Sensitive watermark input is the exception to literal echoing: `configuration.watermark_info` is a redacted summary. It reports `subject_name_present`, `social_unified_credit_code_present`, an optional `social_unified_credit_code_suffix`, and the non-sensitive dissemination setting without exposing the full subject name or credit code.
127
+
128
+ This stage performs no model activation and no Endpoint creation. Surface the exact payload and wait for a fresh explicit confirmation. Only then rerun the same command with `--yes`. A successful second-stage creation returns endpoint information.
129
+
130
+ ## Common errors
131
+
132
+ | Error | Cause | Handling |
133
+ |------|------|------|
134
+ | Missing required parameter | `--name` or `--model` is not provided. | Must be specified. |
135
+ | JSON format error | JSON parameters such as `--rate-limit` have an incorrect format. | Wrap in single quotes and use PascalCase for parameters. |
136
+ | Model does not exist | `--model` ID is invalid. | Use `arkcli models search <keyword>` to find the correct name. |
137
+
138
+ ## References
139
+
140
+ - [arkcli-deploy](../SKILL.md) -- skill entry
141
+ - [arkcli-shared](../../arkcli-shared/SKILL.md) -- shared authentication and global parameters
@@ -0,0 +1,80 @@
1
+ # arkcli-deploy minimum evaluation cases
2
+
3
+ Goal: verify that this skill behaves consistently for "valid trigger / write-operation guard / three types of anti-triggers" and prevents common hallucinations.
4
+
5
+ ## 1) Valid trigger (Trigger) — Formal deployment
6
+
7
+ Input :
8
+
9
+ - "I have already selected the model dola-seed-2-1-turbo-260628 and want to deploy it as an endpoint that the backend can call long term."
10
+
11
+ Expected behavior:
12
+
13
+ - Route to `arkcli-deploy`.
14
+ - Explain that `+deploy` does not support `--dry-run`; run the first command without `--yes` and require `requires_confirmation`.
15
+ - Show the exact returned model/name/region/configuration/billing impact, stop for a fresh explicit confirmation, and only then rerun the same command with `--yes`.
16
+ - Mention write operation + billing and JSON parameters in PascalCase.
17
+
18
+ ## 2) Write-operation guard (Guard) — User urges immediate creation
19
+
20
+ Input :
21
+
22
+ - "Stop talking and create an endpoint for me right now."
23
+
24
+ Expected behavior:
25
+
26
+ - Even if the user sounds urgent, run only the no-`--yes` disclosure stage.
27
+ - Show the CLI's actual `requires_confirmation` payload and stop for a fresh explicit confirmation.
28
+ - Do not add `--yes` in the same turn.
29
+ - Explicitly mention write operation / billing.
30
+
31
+ ## 3) Anti-trigger — Only trying the model
32
+
33
+ Input :
34
+
35
+ - "I just want to try this model's performance; I don't need formal integration."
36
+
37
+ Expected behavior:
38
+
39
+ - Route to `arkcli-chat` or `arkcli-gen`.
40
+ - **Do not** recommend `arkcli +deploy` (avoid creating billable resources for trial users).
41
+
42
+
43
+ ## 5) Anti-trigger — Model ID not determined
44
+
45
+ Input :
46
+
47
+ - "I want to formally deploy a model, but I haven't decided which one to use yet. Help me see what base models are available first."
48
+
49
+ Expected behavior:
50
+
51
+ - Route to `arkcli-models`; run `arkcli models search <keyword>` or `arkcli models list` first.
52
+ - Do not directly run `+deploy` when there is no model ID.
53
+
54
+ ## 6) Agent anti-hallucination checklist (key points)
55
+
56
+ The following outputs from the agent are considered score deductions in the evaluation:
57
+
58
+ - `arkcli deploy ...`(Missing `+`.)
59
+ - `arkcli endpoint create ...`
60
+ - `arkcli +deploy create ...`(Extra create subcommand.)
61
+ - JSON flag parameters are written in lowercase (`{"rpm": 60}`; should be `{"Rpm": 60}`).
62
+
63
+
64
+ ## 7) Supporting machine evaluation
65
+
66
+ Machine evaluation assets are located in `tests/skills/arkcli-deploy/`. To rerun:
67
+
68
+ ```bash
69
+ cd skill-creator
70
+ python3 -m scripts.run_arkcli_skill_benchmark \
71
+ --skill-path ../skills-byteplus/arkcli-deploy \
72
+ --workspace /tmp/arkcli-deploy-bench \
73
+ --iteration 1 \
74
+ --runs-per-config 2 \
75
+ --runtime claude
76
+ ```
77
+
78
+ ## Missing model and name
79
+
80
+ When the user asks to deploy an Endpoint without a model or name, perform one bounded read-only model search after authentication and present the actual candidates. Do not stop at asking for an unknown model/name, and do not create anything before selection and confirmation. Collect the Endpoint name after the model is selected.