@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,231 @@
1
+ # arkcli-connect evaluations
2
+
3
+ Use these cases to verify routing, authoritative catalog convergence, explicit
4
+ path isolation, preview behavior, refresh source reporting, command grammar,
5
+ and migration from historical catalog names.
6
+
7
+ ## 1. Trigger: install into detected agents
8
+
9
+ User request:
10
+
11
+ > Install the BytePlus Ark CLI Skills into the local AI agents on this machine.
12
+
13
+ Expected behavior:
14
+
15
+ - Route to `arkcli-connect`.
16
+ - Start with:
17
+
18
+ ```bash
19
+ arkcli +connect list
20
+ ```
21
+
22
+ - Explain that normal installation overwrites every exact current-catalog name,
23
+ regardless of ownership, digest, or local edits.
24
+ - Explain that names absent from both the current catalog and previous manifest
25
+ remain untouched.
26
+ - Run `arkcli +connect` after the user accepts the reported targets.
27
+ - Do not invent `arkcli +connect install`.
28
+
29
+ ## 2. Trigger: isolated project installation
30
+
31
+ User request:
32
+
33
+ > Install only into this repository's `.claude/skills` directory.
34
+
35
+ Expected behavior:
36
+
37
+ ```bash
38
+ arkcli +connect --path .claude/skills
39
+ ```
40
+
41
+ - Resolve the relative path from the current working directory.
42
+ - Do not scan or modify global agent directories.
43
+ - Treat `.claude/skills` as the exact target, not the project root.
44
+ - Preserve unrelated user-managed `ark-` and `arkcli-` entries in that target.
45
+
46
+ ## 3. Trigger: list only
47
+
48
+ User request:
49
+
50
+ > Which agents are supported and detected? Do not install anything.
51
+
52
+ Expected behavior:
53
+
54
+ ```bash
55
+ arkcli +connect list
56
+ ```
57
+
58
+ - Stop after listing.
59
+ - Explain that list mode is local, read-only, and unauthenticated.
60
+ - Do not install, purge, or uninstall.
61
+
62
+ ## 4. Guard: uninstall from all detected agents
63
+
64
+ User request:
65
+
66
+ > Remove every Ark CLI Skill installed by `+connect`.
67
+
68
+ Expected behavior:
69
+
70
+ ```bash
71
+ arkcli +connect list
72
+ ```
73
+
74
+ - Explain that default removal deletes only unchanged entries recorded in the
75
+ Ark CLI ownership manifest.
76
+ - Explain that modified managed Skills and unrelated user-managed entries are
77
+ preserved.
78
+ - Show affected agent paths.
79
+ - Require explicit confirmation before `arkcli +connect uninstall`.
80
+
81
+ ## 5. Guard: uninstall from one directory
82
+
83
+ User request:
84
+
85
+ > Remove Ark CLI Skills only from `/workspace/project/.agents/skills`.
86
+
87
+ Expected behavior:
88
+
89
+ ```bash
90
+ arkcli +connect uninstall \
91
+ --path /workspace/project/.agents/skills
92
+ ```
93
+
94
+ - Confirm the exact absolute path.
95
+ - Do not scan other agents.
96
+ - Execute only after confirmation; explain that `--dry-run` is unsupported.
97
+
98
+ ## 6. Anti-trigger: authentication failure
99
+
100
+ User request:
101
+
102
+ > My BytePlus business command returns 401. Is `+connect` broken?
103
+
104
+ Expected behavior:
105
+
106
+ - Route to `arkcli-auth`.
107
+ - Explain that `+connect` performs local filesystem work and does not require
108
+ authentication.
109
+ - Do not reinstall Skills as an authentication fix.
110
+
111
+ ## 7. Command hallucination checks
112
+
113
+ The following commands are invalid and any recommendation is a failure:
114
+
115
+ ```text
116
+ arkcli +connect install
117
+ arkcli +connect install --agent <name>
118
+ arkcli +connect setup
119
+ arkcli +connect sync
120
+ arkcli +connect remove
121
+ ```
122
+
123
+ Valid actions are the empty parent action, `list`, and `uninstall`.
124
+
125
+ ## 8. BytePlus refresh
126
+
127
+ User request:
128
+
129
+ > Run `+connect --refresh` and confirm that it downloaded the latest remote
130
+ > Skills.
131
+
132
+ Expected behavior:
133
+
134
+ - Explain that public BytePlus packages prefer the BytePlus CDN and fall back
135
+ to the BytePlus GitHub release bundle.
136
+ - Explain that internal BytePlus builds may use the reviewed English bundle
137
+ embedded in the current binary.
138
+ - Report only the source printed by the CLI: `cdn`, `github`, or `embedded`.
139
+ - Do not report a successful remote download when the CLI reports `embedded`.
140
+
141
+ ## 9. Preserve recognized conflicts
142
+
143
+ User request:
144
+
145
+ > Install globally, but preserve external generation Skills that Ark CLI would
146
+ > otherwise treat as routing conflicts.
147
+
148
+ Expected behavior:
149
+
150
+ ```bash
151
+ arkcli +connect list
152
+ arkcli +connect --keep-conflicting
153
+ ```
154
+
155
+ - Explain that the flag is for detected-agent installation.
156
+ - Do not claim that scoped `--path` installation removes those external
157
+ conflicts.
158
+
159
+ ## 10. Automatic post-install setup
160
+
161
+ User request:
162
+
163
+ > Why did installing the BytePlus Ark CLI package also install Skills?
164
+
165
+ Expected behavior:
166
+
167
+ - Explain the interactive post-install `+connect` behavior.
168
+ - Explain that CI and non-interactive installations skip.
169
+ - Mention `ARKCLI_SKIP_POSTINSTALL=1` as the opt-out for future package
170
+ installation.
171
+ - Explain that post-install uses the same authoritative-catalog transaction and
172
+ never performs a broad prefix purge.
173
+ - Do not treat automatic connection as login or credential setup.
174
+
175
+ ## 11. Guard: explicit destructive legacy purge
176
+
177
+ User request:
178
+
179
+ > Remove every `ark-` and `arkcli-` Skill directory from one legacy target,
180
+ > including entries not installed by Ark CLI.
181
+
182
+ Expected behavior:
183
+
184
+ ```bash
185
+ arkcli +connect uninstall \
186
+ --path /confirmed/legacy/skills \
187
+ --purge-prefix
188
+ ```
189
+
190
+ - State that this deletes user-managed matching directories and symlinks.
191
+ - Restate the exact target and require explicit confirmation.
192
+ - Do not use `--purge-prefix` for normal uninstall or post-install.
193
+
194
+ ## 12. Offline command-surface checks
195
+
196
+ ```bash
197
+ arkcli +connect --help
198
+ arkcli +connect list --help
199
+ arkcli +connect uninstall --help
200
+ arkcli +connect list
201
+ ```
202
+
203
+ Verify that:
204
+
205
+ - `--path`, `--refresh`, and `--keep-conflicting` appear at the
206
+ correct command levels;
207
+ - `--purge-prefix` appears only on `uninstall`;
208
+ - empty `--path` is rejected;
209
+ - preview mode performs no writes;
210
+ - only `list` and `uninstall` are subcommands.
211
+
212
+ ## 13. Authoritative catalog convergence
213
+
214
+ Fixture:
215
+
216
+ - an ownership manifest owns an `arkcli-managed-agent` directory whose content
217
+ may have changed locally;
218
+ - an older unowned or modified `arkcli-agent` directory exists;
219
+ - the incoming BytePlus catalog contains `arkcli-agent`.
220
+
221
+ Expected behavior:
222
+
223
+ - the transaction succeeds without partial writes;
224
+ - `arkcli-managed-agent` is retired;
225
+ - the current `arkcli-agent` is installed and becomes the only managed agent
226
+ Skill name;
227
+ - unrelated user-managed `ark-` and `arkcli-` entries remain unchanged.
228
+
229
+ Repeat the same assertions for BytePlus candidate, integration, and stable
230
+ builds. The install contract must not vary by package channel,
231
+ embedded/CDN/GitHub source, old manifest product, digest, or local edits.
@@ -0,0 +1,167 @@
1
+ ---
2
+ name: arkcli-custommodel
3
+ version: 0.1.0
4
+ description: "Manage BytePlus ModelArk custom models identified by `cm-*`: list, inspect, upload, update, delete, quantize, and prepare deployment. Also use this skill whenever a user asks to chat, invoke, or test inference directly with a `cm-*` ID, so the Endpoint boundary is enforced before any deployment or inference action."
5
+ metadata:
6
+ requires:
7
+ bins: ["arkcli"]
8
+ cliHelp: "arkcli models custommodel --help"
9
+ ---
10
+
11
+ # arkcli models custommodel
12
+
13
+ > **BytePlus capability status: pending audit.** This English file is a baseline translation, not proof that the capability is available in BP. Check the capability matrix before execution, and do not perform write operations until support, region, permissions, and dependencies have been confirmed.
14
+
15
+ **CRITICAL — Before starting, MUST use the Read tool to read [`../arkcli-shared/SKILL.md`](../arkcli-shared/SKILL.md), which defines authentication gates, configuration troubleshooting, and shared safety rules.**
16
+ **CRITICAL — Before running any `models custommodel` command, use the Read tool to read the corresponding reference document. Never invoke a command without reading its reference first.**
17
+ **CRITICAL — Confirm user intent before any write operation (`upload`, `update`, `delete`, or `quantize`). Before deletion, confirm whether any endpoint still references the model.**
18
+ **CRITICAL — This skill targets BytePlus. Before running control-plane commands, confirm that the active profile, project, and region all belong to the intended BytePlus environment.**
19
+
20
+ ## Guard Checklist and Operating Principles
21
+
22
+ - Prefer `arkcli models custommodel ...` for custom model requests.
23
+ - Although these are standard CLI-style commands, their implementation entry point remains under `shortcuts/models/`.
24
+ - Fall back to [`../arkcli-api-explorer/SKILL.md`](../arkcli-api-explorer/SKILL.md) only when no product command covers the request.
25
+ - Do not use this skill to query the base model catalog. Route those requests to [`../arkcli-models/SKILL.md`](../arkcli-models/SKILL.md).
26
+ - For write operations and asynchronous jobs, explain the impact, polling method, and next steps. Do not stop after issuing a single command.
27
+
28
+ ## When To Trigger and Supported Scenarios
29
+
30
+ - Import trained or fine-tuned weights from BytePlus Torch Object Storage (TOS) into the ModelArk model registry.
31
+ - List custom models in the current account, including requests such as "Which custom models do I own?" or "What are their statuses?"
32
+ - Inspect custom model details, artifact types, and active endpoint references.
33
+ - Update a custom model's display name or description.
34
+ - Delete an unused custom model.
35
+ - Quantize a `ready` custom model to prepare it for `+deploy`.
36
+
37
+ ## When NOT To Trigger
38
+
39
+ - Find platform-provided base models → use `search`, `list`, or `get` from [`../arkcli-models/SKILL.md`](../arkcli-models/SKILL.md).
40
+ - Invoke a custom model directly for inference → first use `+deploy`, then use `+chat` or `+gen`.
41
+ - Create a fine-tuning job itself → route to [`../arkcli-train-finetune/SKILL.md`](../arkcli-train-finetune/SKILL.md).
42
+ - **Register a fine-tuning step (`global_step_N`) as a `cm-` resource** (that is, export a training artifact) → use `arkcli train finetune artifacts list / export` from [`../arkcli-train-finetune/SKILL.md`](../arkcli-train-finetune/SKILL.md). **Do not** use this skill's `upload`: `upload` is for a user's own TOS files and calls the `UploadModel` Action, whereas MCJ outputs use `CreateCustomModel`. These are different APIs.
43
+ - Manage an existing endpoint after obtaining its endpoint ID → route to [`../arkcli-infer-endpoint/SKILL.md`](../arkcli-infer-endpoint/SKILL.md).
44
+
45
+ ## Direct inference boundary for `cm-*`
46
+
47
+ - A request to chat, invoke, or test inference directly with a `cm-*` ID must still load this skill. Explain that `cm-*` identifies a custom-model resource and cannot be passed directly to `+chat` or `+gen`; inference requires a separate Endpoint.
48
+ - The request alone does not authorize deployment, listing account Endpoints, or inference. Until the user separately asks to continue, do not run `arkcli +deploy`, `arkcli +chat`, `arkcli infer endpoint list`, or an ad hoc `jq` scan.
49
+ - State the boundary and offer the next step only. After explicit authorization to deploy, route to [`../arkcli-deploy/SKILL.md`](../arkcli-deploy/SKILL.md) and follow its confirmation flow.
50
+
51
+ ## Core concepts
52
+
53
+ - Call resources managed by `arkcli models custommodel ...` **custom models** (`CustomModel`, with IDs such as `cm-xxxxx`). They are separate from the platform-provided base model resources (`FoundationModel`) queried through `search`, `list`, or `get` in [`../arkcli-models/SKILL.md`](../arkcli-models/SKILL.md).
54
+ - A custom model has one of two sources:
55
+ - `import` — weights imported from TOS with this skill's `upload` command through the `UploadModel` API.
56
+ - `customization` — a model produced by a fine-tuning job and exported through `train finetune artifacts export` in [`../arkcli-train-finetune/SKILL.md`](../arkcli-train-finetune/SKILL.md). This path uses the separate OpenAPI Action `CreateCustomModel` and is not interchangeable with `upload`.
57
+ - The lifecycle is `preparation → processing → ready` on success, or `failed`. Export flows also use `exporting` and `exportfailed`.
58
+ - Quantization is a separate flow. First run `available-quantizations <id>` and inspect `supported_inference_types_by_quantization` to predict the inference types supported by each quantization method. Then submit `quantize <id> --quantization <mode>`. The result is an **independent new `cm-xxxxx`**. The source model, quantized model, and deployed endpoint are three different resources; never mix their IDs.
59
+ - A custom model ID (`cm-xxxxx`) is **not** in `<name>-<primary_version>` form and cannot be passed directly to `--model` for `+chat` or `+gen`. First obtain an endpoint through `arkcli +deploy`, then invoke the resulting `ep-xxx`. If the custom model already has a running endpoint, `+deploy` reuses it.
60
+
61
+ ## Quick decisions
62
+
63
+ - The user asks for "my custom models" → read [`references/arkcli-custommodel-list.md`](references/arkcli-custommodel-list.md) and run `arkcli models custommodel list --mine`.
64
+ - The user wants a fuzzy search by name, ID, or base model display name → read [`references/arkcli-custommodel-list.md`](references/arkcli-custommodel-list.md) and run `list --search <kw>`.
65
+ - The user has a `cm-xxxxx` and wants its status, details, endpoint references, or artifact types → read [`references/arkcli-custommodel-get.md`](references/arkcli-custommodel-get.md) and use `get`.
66
+ - The user wants to import weights from TOS → read [`references/arkcli-custommodel-upload.md`](references/arkcli-custommodel-upload.md). If the user has a `tos://...` URI, confirm the TOS URI, base model, and name. If no TOS URI is available, guide the user through enabling TOS and uploading the files; do not run `upload` yet.
67
+ - The user wants to rename a model or change its description → read [`references/arkcli-custommodel-update.md`](references/arkcli-custommodel-update.md), confirm the change, and use `update`.
68
+ - The user wants to delete a model → read [`references/arkcli-custommodel-delete.md`](references/arkcli-custommodel-delete.md), inspect `active_endpoints`, and delete only after confirmation.
69
+ - The user wants to quantize a model → first read [`references/arkcli-custommodel-available-quantizations.md`](references/arkcli-custommodel-available-quantizations.md), then read [`references/arkcli-custommodel-quantize.md`](references/arkcli-custommodel-quantize.md).
70
+
71
+ ## List parameter and output contracts
72
+
73
+ - `custommodel list --sort-order` accepts only lowercase `asc` or `desc`. Treat any other value as a local parameter error; do not call the API or blindly retry with another spelling.
74
+ - With `--format table` or `--format csv`, each `result.items[]` model is one row. Do not interpret the paginated response root or the `result` map as a model record. Use JSON/YAML when complete pagination metadata is required.
75
+
76
+ ## Agent execution order
77
+
78
+ 1. If authentication state is uncertain, run `arkcli auth status` first.
79
+ 2. For "my custom models," run `custommodel list --mine` directly. **Do not apply the shared skill's default Tags filter** because the custom model service supports `--mine` natively.
80
+ 3. Before upload, require all three fields: `--name`, `--base-model <foundation-model-id>`, and `--tos tos://<bucket>/<prefix>`. The server rejects requests missing any of them.
81
+ 4. `upload` and `quantize` are asynchronous. After submission, poll with `custommodel get <id>`; **do not repeatedly submit `upload` or `quantize`**.
82
+ 5. Before `quantize`, always run `available-quantizations <id>`. Supported quantization methods vary by base model, and the server rejects unsupported values. If the user needs pay-as-you-go by token usage or Model Unit inference, inspect `supported_inference_types_by_quantization` first.
83
+ 6. `quantize --dry-run` emits local `preview.v1` and never calls `CreateQuantizedCustomModel`. Its `steps[].payload` describes only real request fields and must not contain a backend `DryRun` field. It is not server validation. Obtain explicit user confirmation before the real quantization request.
84
+ 7. `delete`, `update`, and `quantize` are write operations. Restate their impact before execution.
85
+ 8. `delete` prompts for [Y/N] confirmation by default. `--yes` skips the local confirmation, while `--dry-run` previews without deleting. Add `--yes` only after the user has explicitly confirmed the deletion target and impact.
86
+ 9. `get --transform` is a field allowlist specific to `custommodel get`, not the global GJSON transform expression. Do not use it for nested-path queries.
87
+
88
+ ## Common workflows
89
+
90
+ ### 1. Import a new custom model from TOS
91
+
92
+ ```
93
+ auth status → custommodel upload --name X --base-model <fm-id> --tos tos://b/p
94
+ → custommodel get <id> (poll until status=ready)
95
+ → custommodel get <id> --transform 'artifact_types' (inspect artifact types)
96
+ ```
97
+
98
+ ### 2. Quantize a ready custom model
99
+
100
+ ```
101
+ custommodel get <id> (confirm status=ready)
102
+ → custommodel available-quantizations <id> (inspect supported modes)
103
+ → custommodel quantize <id> --quantization <mode> --dry-run
104
+ → obtain user confirmation for the quantization target and impact
105
+ → custommodel quantize <id> --quantization <mode>
106
+ → custommodel get <new-id> (the quantized result is a new cm-xxxxx; poll again)
107
+ ```
108
+
109
+ ### 3. Prepare a target for `+deploy`
110
+
111
+ ```
112
+ custommodel list --mine --statuses ready → select a target cm-xxxxx
113
+ → +deploy --model cm-xxxxx ... (reuse a running endpoint if one exists; see ../arkcli-deploy/SKILL.md)
114
+ ```
115
+
116
+ ### 4. Remove an unused custom model
117
+
118
+ ```
119
+ custommodel get <id> --transform 'active_endpoints' (confirm that no endpoint references it)
120
+ → custommodel delete <id> --dry-run
121
+ → custommodel delete <id> (interactive confirmation) or custommodel delete <id> --yes
122
+ ```
123
+
124
+ ## Anti-patterns
125
+
126
+ - Do not use `arkcli models search` or `list` to find custom models. Those commands query only the `FoundationModel` catalog. Use `custommodel list --search <kw>` or `--mine` for imported or fine-tuned custom models.
127
+ - Do not run `quantize` immediately after `upload`. Upload is asynchronous and progresses through `preparation → processing → ready`. Confirm `ready` with `custommodel get <id>`, then run `available-quantizations` followed by `quantize`.
128
+ - Do not pass a mode to `quantize` unless `available-quantizations` returned it. Supported methods vary by base model.
129
+ - Do not treat a successful `quantize --dry-run` response as a created or server-validated model. It is only a local request preview; run the command again without `--dry-run` after confirmation.
130
+ - Do not pass `cm-xxxxx` directly to `--model` for `+chat` or `+gen`. First obtain an endpoint (`ep-xxx`) through `+deploy`; `+deploy` may reuse a running endpoint.
131
+ - Do not add `--yes` merely for automation. Without `--yes`, the CLI prompts for [Y/N] confirmation. Use it only after the user confirms deletion of the target `cm-xxxxx` and understands the endpoint-reference risk.
132
+ - Do not apply the shared Tags client-side filter to a request for "my" models. `custommodel list --mine` is a more accurate and efficient native server-side filter.
133
+ - Do not poll status by calling `get` too frequently. Use an interval of at least 10 seconds to avoid rate limiting.
134
+
135
+ ## Command summary
136
+
137
+ | Command | Description |
138
+ |---|---|
139
+ | `arkcli models custommodel list` | Paginate and filter on multiple dimensions |
140
+ | `arkcli models custommodel get <id>` | Retrieve details or poll status |
141
+ | `arkcli models custommodel upload` | Import from TOS asynchronously |
142
+ | `arkcli models custommodel update <id>` | Update the name or description |
143
+ | `arkcli models custommodel delete <id> [--yes] [--dry-run]` | Delete irreversibly; prompts by default, `--yes` skips confirmation, and `--dry-run` previews |
144
+ | `arkcli models custommodel available-quantizations <id>` | Query available quantization methods before `quantize` |
145
+ | `arkcli models custommodel quantize <id> --quantization <mode> [--dry-run]` | Quantize asynchronously; `--dry-run` previews locally without calling the backend |
146
+
147
+ ## Common fallbacks
148
+
149
+ - Authentication failure → use [`../arkcli-auth/SKILL.md`](../arkcli-auth/SKILL.md).
150
+ - The profile or region appears incorrect → use [`../arkcli-config/SKILL.md`](../arkcli-config/SKILL.md).
151
+ - The user wants a base model rather than a custom model → use [`../arkcli-models/SKILL.md`](../arkcli-models/SKILL.md).
152
+ - The user wants to deploy a custom model → use [`../arkcli-deploy/SKILL.md`](../arkcli-deploy/SKILL.md).
153
+ - A new capability is genuinely not covered by a product command → use [`../arkcli-api-explorer/SKILL.md`](../arkcli-api-explorer/SKILL.md).
154
+
155
+ ## References
156
+
157
+ - [`references/arkcli-custommodel-list.md`](references/arkcli-custommodel-list.md)
158
+ - [`references/arkcli-custommodel-get.md`](references/arkcli-custommodel-get.md)
159
+ - [`references/arkcli-custommodel-upload.md`](references/arkcli-custommodel-upload.md)
160
+ - [`references/arkcli-custommodel-update.md`](references/arkcli-custommodel-update.md)
161
+ - [`references/arkcli-custommodel-delete.md`](references/arkcli-custommodel-delete.md)
162
+ - [`references/arkcli-custommodel-available-quantizations.md`](references/arkcli-custommodel-available-quantizations.md)
163
+ - [`references/arkcli-custommodel-quantize.md`](references/arkcli-custommodel-quantize.md)
164
+ - [`references/evals.md`](references/evals.md)
165
+ - [arkcli-models](../arkcli-models/SKILL.md) — query base models; these are separate resources from custom models
166
+ - [arkcli-deploy](../arkcli-deploy/SKILL.md) — deploy a ready custom model as an endpoint
167
+ - [arkcli-shared](../arkcli-shared/SKILL.md) — authentication, global flags, and safety rules
@@ -0,0 +1,29 @@
1
+ # arkcli models custommodel available-quantizations
2
+
3
+ Query available quantization methods. Always run this command before `quantize`.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ arkcli models custommodel available-quantizations <id>
9
+ ```
10
+
11
+ ## Flags
12
+
13
+ | Parameter | Required | Type | Description |
14
+ |---|---|---|---|
15
+ | `<id>` | Yes | string | Custom model ID in `cm-xxxxx` form |
16
+
17
+ ## Output
18
+
19
+ Returns JSON containing:
20
+
21
+ - `quantizations`: available quantization methods, such as `["W8A8"]`; the exact set varies by base model.
22
+ - `supported_inference_types_by_quantization`: a dictionary that predicts supported inference types before quantization. Each key is a quantization method, and its value lists the supported inference types, such as `{"W8A8":["token","model_unit"]}`.
23
+
24
+ **Notes:**
25
+
26
+ - This is a read-only command and can be run without confirmation.
27
+ - Do not infer support from the available methods of another base model.
28
+ - An empty list means the base model does not support quantization. Continue deploying the original model instead.
29
+ - `supported_inference_types_by_quantization` comes from ModelArk `QuantSupportedMethods` metadata. If the backend omits the field, the dictionary may be empty. After creation, use `custommodel get <new-id> --transform artifact_types` as the final source of truth for supported inference types.
@@ -0,0 +1,37 @@
1
+ # arkcli models custommodel delete
2
+
3
+ Delete a custom model. This operation is destructive and irreversible.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ arkcli models custommodel delete <id> [--yes] [--dry-run]
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ```bash
14
+ # Preview the deletion request without deleting
15
+ arkcli models custommodel delete cm-xxxxx --dry-run
16
+
17
+ # Delete interactively with a [Y/N] confirmation prompt
18
+ arkcli models custommodel delete cm-xxxxx
19
+
20
+ # Delete non-interactively and skip the local confirmation prompt
21
+ arkcli models custommodel delete cm-xxxxx --yes
22
+ ```
23
+
24
+ ## Flags
25
+
26
+ | Parameter | Required | Type | Description |
27
+ |---|---|---|---|
28
+ | `<id>` | Yes | string | Custom model ID in `cm-xxxxx` form |
29
+ | `--yes` | No | bool | Skip the interactive [Y/N] confirmation |
30
+ | `--dry-run` | No | bool | Command-local Client Preview; makes no request, deletes nothing, and skips confirmation |
31
+
32
+ **Notes:**
33
+
34
+ - Deletion is **irreversible**. The same ID will not be reused, and references from deployed endpoints will become invalid immediately.
35
+ - Before deletion, run `custommodel get <id> --transform id,name,active_endpoints`, list all references, and restate the impact to the user.
36
+ - Add `--yes` only after the user has explicitly confirmed deletion of the target `cm-xxxxx` and understands that a non-empty `active_endpoints` value means the operation will break an inference path.
37
+ - If the user has not explicitly asked for deletion and only asks whether deletion is possible or requests a risk check, never execute the deletion.
@@ -0,0 +1,45 @@
1
+ # arkcli models custommodel get
2
+
3
+ Retrieve details or poll model status.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ arkcli models custommodel get <id> [flags]
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ```bash
14
+ # Retrieve full details
15
+ arkcli models custommodel get cm-xxxxx
16
+
17
+ # Retrieve only key fields to avoid a large JSON response
18
+ arkcli models custommodel get cm-xxxxx --transform id,name,active_endpoints,artifact_types
19
+
20
+ # Retrieve only status for polling
21
+ arkcli models custommodel get cm-xxxxx --transform status
22
+ ```
23
+
24
+ ## Flags
25
+
26
+ | Parameter | Required | Type | Description |
27
+ |---|---|---|---|
28
+ | `<id>` | Yes | string | Custom model ID in `cm-xxxxx` form |
29
+ | `--transform` | No | string list | Field allowlist. Accepts comma-separated values such as `id,name` or repeated flags. Select `CustomModel` fields such as `id`, `name`, `status`, or `foundation_model`, plus `active_endpoints` or `artifact_types`. This command's `--transform` selects a field subset; it is **not** the global GJSON expression. |
30
+
31
+ ## Understanding `--transform`
32
+
33
+ The `--transform` flag on `custommodel get` is a command-specific field allowlist that reduces extra queries and response size. It is not the root command's GJSON-style `--transform` and does not support nested expressions such as `items.0.id`.
34
+
35
+ Common selections:
36
+
37
+ - `id,name,status,foundation_model`: retrieve basic identity and status fields without extra API calls.
38
+ - `artifact_types`: query deployable artifacts and return `endpoint_supported_methods` and `supported_inference_types`.
39
+ - `active_endpoints`: query endpoints that currently reference the custom model.
40
+
41
+ ## Output
42
+
43
+ Returns JSON details. Common fields include `id`, `name`, `description`, `status`, `base_model`, `customization_type`, `source`, `active_endpoints` (the endpoints currently referencing the model), `artifact_types` (available artifact types), `create_time`, and `update_time`.
44
+
45
+ **Note:** Before deletion, check `--transform active_endpoints`. A non-empty result means that deleting the model will break an existing inference path.
@@ -0,0 +1,65 @@
1
+ # arkcli models custommodel list
2
+
3
+ List custom models with pagination and multidimensional filters.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ arkcli models custommodel list [flags]
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ```bash
14
+ # List all custom models with default pagination
15
+ arkcli models custommodel list
16
+
17
+ # List only custom models created by the current SSO sub-user
18
+ arkcli models custommodel list --mine
19
+
20
+ # Filter by status; use comma-separated values or repeat the flag
21
+ arkcli models custommodel list --statuses ready
22
+ arkcli models custommodel list --statuses ready,processing
23
+
24
+ # Filter by customization type
25
+ arkcli models custommodel list --customization-types lora,sft
26
+
27
+ # Filter by base model name or ID
28
+ arkcli models custommodel list --base-models <byteplus-base-model-name>
29
+ arkcli models custommodel list --base-model-ids fm-xxxxx
30
+
31
+ # Fuzzy-search name, ID, or base model display name
32
+ arkcli models custommodel list --search my-finetune
33
+
34
+ # Paginate and sort
35
+ arkcli models custommodel list --page 1,20 --sort-by CreateTime --sort-order desc
36
+
37
+ # Paginate automatically
38
+ arkcli models custommodel list --mine --page-all --page-delay 500
39
+ ```
40
+
41
+ ## Flags
42
+
43
+ > Every multivalue filter of type `string list` accepts either comma-separated values (`--statuses ready,processing`) or repeated flags (`--statuses ready --statuses processing`). Both forms produce the same result.
44
+
45
+ | Parameter | Required | Type | Description |
46
+ |---|---|---|---|
47
+ | `--mine` | No | bool | Return only custom models created by the current SSO sub-user |
48
+ | `--statuses` | No | string list | `preparation` / `processing` / `ready` / `failed` / `exporting` / `exportfailed` |
49
+ | `--customization-types` | No | string list | `lora` / `sft` / `dpolora` / `dpo` / `grpolora` / `grpo` / `ppo` / `opdlora` / `opd` / `pretrain` |
50
+ | `--supported-customization-types` | No | string list | Filter by customization types supported by the underlying base model |
51
+ | `--base-models` | No | string list | Filter by base model name |
52
+ | `--base-model-ids` | No | string list | Filter by base model ID |
53
+ | `--sources` | No | string list | `import` / `customization` |
54
+ | `--source-jobs` | No | string list | Filter by fine-tuning job ID |
55
+ | `--search` | No | string | Fuzzy-search name, ID, or base model display name |
56
+ | `--page` | No | string | Pagination expression in `<number,size>` form, such as `1,10`; spaces are not accepted |
57
+ | `--sort-by` | No | string | Sort field; defaults to `CreateTime` |
58
+ | `--sort-order` | No | string | Sort direction; only `asc` / `desc` are accepted; defaults to `desc` |
59
+
60
+ ## Output
61
+
62
+ - `--format json` and `--format yaml` preserve the complete execution and pagination response.
63
+ - `--format table` and `--format csv` expand the list to one row per `result.items[]` entry instead of rendering the whole `result` as a map.
64
+
65
+ Each item commonly includes `id` (`cm-xxxxx`), `name`, `status`, `foundation_model`, `customization_type`, `source_type`, `create_time`, and `update_time`. Nested table cells such as `foundation_model` use compact JSON.
@@ -0,0 +1,59 @@
1
+ # arkcli models custommodel quantize
2
+
3
+ Quantize a custom model asynchronously.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ arkcli models custommodel quantize <id> --quantization <mode> [flags]
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ```bash
14
+ # Standard usage: first run available-quantizations to validate the mode and inspect the inference types it is expected to support
15
+ arkcli models custommodel quantize cm-xxxxx --quantization int8
16
+
17
+ # Client preview: inspect the request without creating a quantized model
18
+ arkcli models custommodel quantize cm-xxxxx \
19
+ --quantization int8 \
20
+ --dry-run
21
+
22
+ # Include a description
23
+ arkcli models custommodel quantize cm-xxxxx \
24
+ --quantization int8 \
25
+ --description "int8 quantized for low-latency inference"
26
+ ```
27
+
28
+ ## Flags
29
+
30
+ | Parameter | Required | Type | Description |
31
+ |---|---|---|---|
32
+ | `<id>` | Yes | string | Source custom model ID; the model must have `status=ready` |
33
+ | `--quantization` | Yes | string | Quantization method. **Select a value returned by `available-quantizations <id>`.** |
34
+ | `--description` | No | string | Description for the quantized model, up to 300 characters |
35
+ | `--dry-run` | No | bool | Command-local Client Preview that emits `preview.v1` without a network request |
36
+
37
+ ## Output
38
+
39
+ Returns JSON containing a newly created `cm-yyyyy`, which differs from the source ID, and its initial status.
40
+
41
+ **Notes:**
42
+
43
+ - `--dry-run` never calls `CreateQuantizedCustomModel`, and `preview.v1.effects.network` must be `blocked`. The locally built `steps[].payload` must not contain a backend `DryRun` field; this is not server-side validation.
44
+ - This is an **asynchronous** job. A successful response means only that the request was accepted. Poll the new ID with `custommodel get <new-id>` until it reaches `ready`.
45
+ - The quantized result is an **independent new custom model**. The source remains unchanged, so both `cm-xxxxx` resources exist in the account.
46
+ - Quantization can materially affect inference performance and accuracy. Before production use, consider deploying the source and quantized models to separate endpoints for comparison.
47
+ - To determine whether a quantization method is expected to support pay-as-you-go by token usage or Model Unit inference, inspect `supported_inference_types_by_quantization` from `available-quantizations` before creation.
48
+
49
+ ## Resource relationships
50
+
51
+ The quantization flow contains three resource types. Never mix their IDs.
52
+
53
+ | Resource | ID form | Description |
54
+ |---|---|---|
55
+ | Source custom model | `cm-xxxxx` | Input to `quantize`; remains unchanged |
56
+ | Quantized model | New `cm-yyyyy` | New model returned by `quantize`; continue polling it with `get` until `ready` |
57
+ | Inference endpoint | `ep-xxxxx` | Created through `+deploy` from a ready source or quantized model; `+chat` and `+gen` should use an endpoint or invocable model ID |
58
+
59
+ Before creation, use `supported_inference_types_by_quantization` from `available-quantizations` to predict supported inference types. After creation, use `supported_inference_types` from `custommodel get <new-id> --transform artifact_types` for final confirmation.