@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,385 @@
1
+ # Evaluation prompts
2
+
3
+ These documentation evals lock BytePlus doctor routing, command contracts,
4
+ structured-output interpretation, and product boundaries. They are not a
5
+ substitute for BytePlus-tagged command tests.
6
+
7
+ ## Trigger coverage
8
+
9
+ ### Local metric catalog
10
+
11
+ Prompt:
12
+
13
+ `List the named BytePlus doctor metrics without accessing VMP.`
14
+
15
+ Expected:
16
+
17
+ - Runs `arkcli doctor metrics list --format json` exactly once.
18
+ - Does not run an authentication preflight or require a configured profile.
19
+ - Does not inspect help, configuration, or VMP state afterward.
20
+ - Does not hardcode the catalog count.
21
+
22
+ ### Local metric description
23
+
24
+ Prompt:
25
+
26
+ `Show the parameters for BytePlus doctor metric request.error.rate. Do not query VMP.`
27
+
28
+ Expected:
29
+
30
+ - Runs `arkcli doctor metrics describe request.error.rate --format json`.
31
+ - Reads the declared parameter name `endpoint`, not `endpoint_id`.
32
+ - Stops after the local catalog result.
33
+
34
+ ### CLI health while signed out
35
+
36
+ Prompt:
37
+
38
+ `Check whether this BytePlus arkcli installation can reach its configured service. Do not log in or call business APIs.`
39
+
40
+ Expected:
41
+
42
+ - Runs `arkcli doctor --format json` without an auth preflight.
43
+ - Does not inspect or mutate profiles and does not initialize configuration.
44
+ - Reads installation, DNS, TCP/TLS, clock, auth, and configuration fields.
45
+ - Does not treat a reachable host plus later HTTP 401/403 as DNS or TLS failure.
46
+ - Keeps the BytePlus profile and fixed Region, and never probes another
47
+ product's host when no profile is configured.
48
+
49
+ ### Real-name verification and account readiness
50
+
51
+ Prompt:
52
+
53
+ `Check whether my BytePlus account has passed real-name verification and inspect account readiness.`
54
+
55
+ Expected:
56
+
57
+ - Runs `arkcli doctor account --format json`.
58
+ - Reads `compliance.realname.verified` as the `GetVerifyInfo.IsVerified`
59
+ real-name-verification result.
60
+ - Does not infer real-name verification from account-opening or
61
+ payment-qualification statuses.
62
+ - Reads available balance and currency, IAM evidence, VMP, and TOS.
63
+ - Does not expect raw readiness enums, extended balance fields,
64
+ `ecosystem.model_ark`, activation, or billing-overview data.
65
+
66
+ ### Public gateway error code
67
+
68
+ Prompt:
69
+
70
+ `I only have BytePlus error code MissingSignature. Explain it with arkcli.`
71
+
72
+ Expected:
73
+
74
+ - Runs `arkcli doctor error MissingSignature --format json` without auth.
75
+ - Explains the missing BytePlus OpenAPI signature.
76
+ - Preserves the exact code and any RequestId supplied by the user.
77
+ - Uses only BytePlus documentation or console links.
78
+
79
+ ### Authentication-looking unknown error JSON
80
+
81
+ Prompt:
82
+
83
+ `Here is a BytePlus error JSON with InvalidApiKey.NotFound. Use arkcli to diagnose it.`
84
+
85
+ Expected:
86
+
87
+ - Runs `arkcli doctor error InvalidApiKey.NotFound --format json` directly.
88
+ - Preserves the CLI's explicit unknown-code result; it does not claim a
89
+ successful lookup or rewrite the code to a similar registered code.
90
+ - Does not run auth status, login, API-key commands, profile inspection, or
91
+ configuration initialization as a substitute for the requested diagnosis.
92
+
93
+ ### Endpoint resource-first routing
94
+
95
+ Prompt:
96
+
97
+ `Endpoint ep-example returns RequestBurstTooFast. Diagnose it.`
98
+
99
+ Expected:
100
+
101
+ - Runs `arkcli doctor infer-endpoint ep-example --format json` directly before
102
+ any standalone error lookup.
103
+ - Does not run `arkcli auth status`, start login, inspect a profile, or run an
104
+ Endpoint/model list preflight.
105
+ - Uses the Endpoint window, state, modality, usage availability, VMP error
106
+ channels, and quota evidence.
107
+ - Loads the rate-limit section of `error-codes.md` for the exact code.
108
+
109
+ ### Model resource-first routing
110
+
111
+ Prompt:
112
+
113
+ `BytePlus model seed-1-6 returns ModelNotOpen. Diagnose the model.`
114
+
115
+ Expected:
116
+
117
+ - Runs `arkcli doctor model seed-1-6 --format json` directly before a
118
+ standalone lookup.
119
+ - Does not run `arkcli auth status`, start login, inspect a profile, or run a
120
+ model/Endpoint list preflight.
121
+ - Reads `exists`, visible Endpoint distribution, usage, errors, top Endpoints,
122
+ and account quota.
123
+ - Does not expect or invent a BytePlus-only `activation` field.
124
+ - Loads the ModelArk access section for `ModelNotOpen`.
125
+
126
+ ### Exact model activation without an error code
127
+
128
+ Prompt:
129
+
130
+ `Check whether BytePlus model seed-1-6 is activated for this account and whether payment is overdue.`
131
+
132
+ Expected:
133
+
134
+ - Runs `arkcli doctor model seed-1-6 --format json`.
135
+ - States that the Doctor schema does not expose exact activation or overdue
136
+ state.
137
+ - Uses `exists` and Endpoint evidence only for what those fields prove.
138
+ - Does not call `GetModelChargeItem` or infer activation from model existence
139
+ or Endpoint count.
140
+
141
+ ### Named metric query
142
+
143
+ Prompt:
144
+
145
+ `Get the aggregate BytePlus request.error.rate over the last hour as one scalar value.`
146
+
147
+ Expected:
148
+
149
+ - Uses the catalog entry `request.error.rate` with its default all-resource
150
+ selectors.
151
+ - Runs a command equivalent to:
152
+
153
+ ```bash
154
+ arkcli doctor metrics request.error.rate \
155
+ --window 1h \
156
+ --format scalar
157
+ ```
158
+
159
+ - Reads top-level `value`, `unit`, and `aggregation`.
160
+ - Does not call raw PromQL when the named query covers the task.
161
+
162
+ ### Resource ID outranks metric intent
163
+
164
+ Prompt:
165
+
166
+ `Get the BytePlus error rate for Endpoint ep-example over the last hour.`
167
+
168
+ Expected:
169
+
170
+ - Runs `arkcli doctor infer-endpoint ep-example --window 1h --format json`
171
+ before any standalone metrics query.
172
+ - Uses the Endpoint diagnosis error-rate channel and preserves its status,
173
+ usage, error distribution, and quota evidence.
174
+ - Does not downgrade the resource request to only
175
+ `doctor metrics request.error.rate`.
176
+
177
+ ### Unsupported metric preview
178
+
179
+ Prompt:
180
+
181
+ `Preview the aggregate BytePlus request.error.rate over the last hour. Do not access VMP.`
182
+
183
+ Expected:
184
+
185
+ - States that Doctor metrics queries do not expose `--dry-run`.
186
+ - Does not invent the flag and does not access VMP.
187
+ - May use the local `doctor metrics describe request.error.rate --format json`
188
+ command to explain the catalog request shape without claiming a Client
189
+ Preview.
190
+
191
+ ### RequestId-only path
192
+
193
+ Prompt:
194
+
195
+ `BytePlus request req-123 failed. Find the root cause, but I have no code, model, or Endpoint ID.`
196
+
197
+ Expected:
198
+
199
+ - States that doctor has no RequestId reverse lookup.
200
+ - Preserves `req-123` and asks for the error response or resource identifier.
201
+ - Does not guess a model, Endpoint, error code, account, or metric path.
202
+
203
+ ## Anti-trigger coverage
204
+
205
+ ### Report boundary
206
+
207
+ Prompt:
208
+
209
+ `A BytePlus generated video has misspelled subtitles. Run doctor report.`
210
+
211
+ Expected:
212
+
213
+ - States that `arkcli doctor report` is unavailable on BytePlus.
214
+ - Does not invoke, preview, suggest, or emulate that command.
215
+ - Does not use another product's model names, reporting URLs, or semantics.
216
+ - Offers error, model, or Endpoint diagnosis only when the required identifier
217
+ is available or asks for it.
218
+
219
+ ### Deployment boundary
220
+
221
+ Prompt:
222
+
223
+ `Create a new BytePlus inference Endpoint for my model.`
224
+
225
+ Expected:
226
+
227
+ - Does not use doctor as the destination Skill.
228
+ - Routes to `arkcli-deploy` and preserves the original deployment goal.
229
+
230
+ ### Endpoint lifecycle boundary
231
+
232
+ Prompt:
233
+
234
+ `Restart BytePlus Endpoint ep-example.`
235
+
236
+ Expected:
237
+
238
+ - Does not use doctor unless the user also asks for diagnosis.
239
+ - Routes the lifecycle operation to `arkcli-infer-endpoint`.
240
+
241
+ ### Pure usage boundary
242
+
243
+ Prompt:
244
+
245
+ `Show my BytePlus token usage for this month. I do not need root-cause analysis.`
246
+
247
+ Expected:
248
+
249
+ - Routes to `arkcli-usage`.
250
+ - Does not substitute model or Endpoint doctor output.
251
+
252
+ ### Profile mutation boundary
253
+
254
+ Prompt:
255
+
256
+ `Switch this BytePlus session to another profile.`
257
+
258
+ Expected:
259
+
260
+ - Routes to `arkcli-profile` or `arkcli-config`.
261
+ - Does not treat the profile change as a doctor remediation.
262
+
263
+ ### Unknown error-code boundary
264
+
265
+ Prompt:
266
+
267
+ `Explain BytePlus error code ModelAccessDenied.`
268
+
269
+ Expected:
270
+
271
+ - Does not claim that the unregistered code is a successful lookup.
272
+ - Explains that the exact BytePlus response is required and gives valid
273
+ examples such as `ModelNotOpen` or `AccessDenied` without rewriting the
274
+ user's evidence.
275
+
276
+ ## Guard behavior
277
+
278
+ ### VMP workspace mutation
279
+
280
+ Prompt:
281
+
282
+ `My BytePlus model diagnosis says vmp_workspace_unbound. Fix it.`
283
+
284
+ Expected:
285
+
286
+ - Explains that `--auto-bind` may reuse or create a workspace and bind ModelArk
287
+ telemetry.
288
+ - Shows the exact model command and requests explicit approval before running.
289
+ - Does not claim that `--auto-bind` enables VMP or grants the service-linked
290
+ role.
291
+
292
+ ### VMP not enabled
293
+
294
+ Prompt:
295
+
296
+ `doctor model says vmp_not_open. Add --auto-bind and keep retrying.`
297
+
298
+ Expected:
299
+
300
+ - Refuses the invalid retry loop.
301
+ - Explains that `--auto-bind` cannot enable VMP or accept terms.
302
+ - Sends the user to the official BytePlus VMP setup path.
303
+
304
+ ### Explicit workspace
305
+
306
+ Prompt:
307
+
308
+ `Query request.error.rate in BytePlus VMP workspace ws-user-supplied.`
309
+
310
+ Expected:
311
+
312
+ - Uses the user-supplied `--workspace-id ws-user-supplied`.
313
+ - Explains that the explicit workspace bypasses telemetry workspace resolution.
314
+ - Does not copy, discover, or substitute a workspace from another account.
315
+
316
+ ### Structured unknown state
317
+
318
+ Prompt:
319
+
320
+ `The BytePlus model exists and has no visible Endpoint. Is the model definitely not activated?`
321
+
322
+ Expected:
323
+
324
+ - Answers that activation is unknown from those fields.
325
+ - Explains that catalog visibility and Endpoint count do not prove activation.
326
+ - Does not invent an `activation` object or an overdue result.
327
+
328
+ ## Happy-path commands
329
+
330
+ Local lookup:
331
+
332
+ ```bash
333
+ arkcli doctor error MissingSignature --format json
334
+ ```
335
+
336
+ Expected:
337
+
338
+ - Returns a structured BytePlus common-auth diagnosis.
339
+ - Preserves the exact error code.
340
+
341
+ Remote model diagnosis:
342
+
343
+ ```bash
344
+ arkcli doctor model seed-1-6 --format json
345
+ ```
346
+
347
+ Expected:
348
+
349
+ - Executes the read-only diagnosis directly without inventing `--dry-run`.
350
+ - Does not include `GetModelChargeItem` or any BytePlus-only output field.
351
+ - Does not advertise `doctor report`.
352
+ ## Origin verification: one confirmation for the whole batch
353
+
354
+ Prompt:
355
+
356
+ `Verify whether these 20 media URLs contain ModelArk generation-origin features: <20 URLs>.`
357
+
358
+ Expected:
359
+
360
+ - Reads [`verify-origin.md`](verify-origin.md).
361
+ - Runs one command containing all 20 URLs without `--yes`.
362
+ - Shows one aggregate USD disclosure.
363
+ - Requests exactly one user confirmation covering every URL in the batch.
364
+ - After confirmation, reruns the same batch with one `--yes`.
365
+ - Does not spawn 20 commands, write a shell loop, call raw Actions, or poll in
366
+ the Agent.
367
+ - Makes the complete terminal stdout JSON the entire response without
368
+ interpreting `IsOfficial`.
369
+
370
+ ## Origin verification: anti-trigger and recovery
371
+
372
+ Prompts:
373
+
374
+ - `Tell me whether the claims in this video are true.`
375
+ - `Resume query-a and query-b from the interrupted origin-verification batch.`
376
+
377
+ Expected:
378
+
379
+ - Truthfulness analysis does not route to origin verification.
380
+ - Resume uses one `doctor +verify-origin --query-id query-a --query-id query-b
381
+ --format json` command.
382
+ - Resume performs no Create and does not ask for the same batch confirmation
383
+ again.
384
+ - Never falls back to another product and never uses an Ark data-plane API
385
+ key.
@@ -0,0 +1,94 @@
1
+ # BytePlus account-readiness scope
2
+
3
+ Use this reference for real-name verification, balance, IAM, VMP, TOS, or
4
+ general account readiness.
5
+
6
+ ## Commands
7
+
8
+ ```bash
9
+ arkcli doctor account --format json
10
+ ```
11
+
12
+ The diagnosis is read-only, does not register `--dry-run`, and each online
13
+ check degrades independently.
14
+
15
+ ## Output contract
16
+
17
+ BytePlus uses only fields already present in the Volc `doctor account` schema.
18
+ BytePlus APIs can return additional data, but doctor must not expose
19
+ BytePlus-only fields.
20
+
21
+ | Output | BytePlus source | Interpretation |
22
+ |---|---|---|
23
+ | `identity` | Active local profile and identity | Current account, IAM user, root status, and auth method |
24
+ | `compliance.realname.verified` | `GetVerifyInfo.IsVerified` | Whether the BytePlus account has passed real-name verification |
25
+ | `compliance.realname.reason` | `GetVerifyInfo` probe | Why real-name verification data is unavailable |
26
+ | `compliance.balance.available` | `QueryBalanceAcct.AvailableBalance` | Current available account balance, preserved as a string |
27
+ | `compliance.balance.currency` | `QueryBalanceAcct.Currency` | Currency returned by the balance service |
28
+ | `compliance.balance.reason` | Balance probe | Why balance data is unavailable |
29
+ | `permissions.iam_system_policies` | IAM attached-policy lookup | Shared doctor IAM-policy evidence for the current identity |
30
+ | `ecosystem.vmp` | VMP subscription, service-linked role, and workspace binding | ModelArk monitoring readiness |
31
+ | `ecosystem.tos` | TOS account status | Object-storage readiness for dependent workflows |
32
+
33
+ Do not expect or invent these removed BytePlus-only fields:
34
+
35
+ - raw account-opening, payment-qualification, or payment-method fields;
36
+ - cash, frozen, arrears, credit-limit, or overdue balance fields;
37
+ - effective ModelArk-read IAM fields;
38
+ - `ecosystem.model_ark`;
39
+ - billing-overview data.
40
+
41
+ ## Analysis order
42
+
43
+ 1. Read `identity.ok`, `identity.is_root`, and `identity.reason`. Signed-out
44
+ execution is supported; online checks degrade independently.
45
+ 2. Read `compliance.realname.verified` and `reason` directly as the
46
+ `GetVerifyInfo` real-name-verification result. Do not reconstruct it from
47
+ account-opening or payment-qualification statuses.
48
+ 3. Read balance strings exactly as returned. Do not parse through floating
49
+ point, invent missing amounts, or infer overdue state.
50
+ 4. Read IAM policy evidence. A root account short-circuits the attached-policy
51
+ lookup. For an IAM user, custom policies can make name matching incomplete.
52
+ 5. Read `ecosystem.vmp.type` before suggesting remediation, then inspect TOS
53
+ independently.
54
+
55
+ ## IAM interpretation
56
+
57
+ - A root account is authorized without calling the attached-policy API.
58
+ - For an IAM user, an attached Ark system policy is positive evidence.
59
+ - A custom policy can grant sufficient access even when no system-policy name
60
+ matches. Treat `total_attached_count > 0` plus no match as inconclusive, not
61
+ definitive denial.
62
+ - Use least privilege. `ArkReadOnlyAccess` is suitable for read-only diagnosis;
63
+ broader operations may require `ArkFullAccess` or an equivalent custom
64
+ policy.
65
+
66
+ Official ModelArk access-control reference:
67
+ https://docs.byteplus.com/en/docs/ModelArk/1263493
68
+
69
+ ## Unknown and degradation rules
70
+
71
+ - A nonempty `reason` means one probe degraded. It does not invalidate
72
+ successful sibling probes.
73
+ - Missing optional values are unknown. They are not zero or false.
74
+ - `authorized=false` based only on system-policy names does not prove a custom
75
+ policy is ineffective.
76
+ - `verified=true` means `GetVerifyInfo.IsVerified` returned true.
77
+
78
+ ## VMP remediation
79
+
80
+ - `vmp_not_open`: enable VMP and accept required terms in the console.
81
+ - `vmp_slr_missing`: grant the ModelArk service-linked role in BytePlus IAM.
82
+ - `vmp_workspace_unbound`: with approval, rerun the relevant model, Endpoint,
83
+ or metrics command with `--auto-bind`.
84
+ - `ok=true`: monitoring dependencies are ready.
85
+
86
+ Do not use `doctor report` as a recovery path. It is unavailable on BytePlus.
87
+
88
+ ## Boundaries
89
+
90
+ - This command is read-only and has no `--auto-bind` flag.
91
+ - It does not activate a model, enable VMP, create the service-linked role,
92
+ change IAM, or make a payment.
93
+ - It does not invoke a model or consume inference tokens.
94
+ - Use only BytePlus Billing, IAM, VMP, TOS, and ModelArk semantics and URLs.
@@ -0,0 +1,88 @@
1
+ # BytePlus CLI health scope
2
+
3
+ Use this reference for `arkcli doctor` with no subcommand. It is the first
4
+ diagnostic path for installation, DNS, TCP/TLS, clock, profile, or credential
5
+ health.
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ arkcli doctor --format json
11
+ ```
12
+
13
+ This scope is safe while signed out and does not register `--dry-run`. Execute
14
+ it as the first and direct command.
15
+ Do not run `arkcli auth status`, `arkcli profile list`, `arkcli profile show`,
16
+ or configuration initialization first when the user's goal is to diagnose why
17
+ the CLI or credentials do not work; the doctor output already carries the
18
+ relevant local authentication and configuration state.
19
+
20
+ ## Checks and schema
21
+
22
+ | Output | Meaning |
23
+ |---|---|
24
+ | `installation.cli_version` | Version injected into the current binary |
25
+ | `installation.latest_version.available` | Whether the latest BytePlus npm package version could be resolved |
26
+ | `installation.latest_version.up_to_date` | Version comparison when both versions are comparable |
27
+ | `installation.latest_version.reason` | Registry lookup or development-build limitation |
28
+ | `installation.path` | Absolute executable path |
29
+ | `connectivity.endpoint` | Resolved BytePlus BaseURL used for the probe; when no profile or explicit override is configured, this is the BytePlus product default |
30
+ | `connectivity.dns.ok` | DNS resolution result |
31
+ | `connectivity.dns.addresses` | Resolved addresses when available |
32
+ | `connectivity.tcp.ok` | TCP and TLS handshake result |
33
+ | `connectivity.tcp.tls_version` | Negotiated TLS version |
34
+ | `connectivity.clock_skew.ok` | Whether observed clock offset is within the threshold |
35
+ | `connectivity.clock_skew.available` | Whether a server `Date` header was available |
36
+ | `connectivity.clock_skew.offset_ms` | Signed local/server time offset |
37
+ | `connectivity.clock_skew.direction` | `local_ahead`, `local_behind`, or `in_sync` |
38
+ | `connectivity.clock_skew.threshold_ms` | Current warning threshold |
39
+ | `auth.logged_in` | Whether a usable local identity was resolved |
40
+ | `auth.auth_method` | `sso`, `aksk`, `apikey`, `sts`, or `none` |
41
+ | `auth.credential_state` | `active`, `expired`, `absent`, or `unknown` |
42
+ | `configuration.profile` | Active profile name |
43
+ | `configuration.profile_expired` | Whether the selected profile has expired |
44
+ | `configuration.api_key.status` | API Key verification state when that check is available |
45
+ | `configuration.verified` | Overall configuration verification result |
46
+ | `configuration.reason` | Structured degradation reason |
47
+
48
+ The package lookup is a version check, not a product API call. DNS, TCP/TLS,
49
+ and clock checks use the active BytePlus BaseURL. This scope does not call a
50
+ ModelArk model and does not consume inference tokens.
51
+
52
+ ## Analysis order
53
+
54
+ 1. Verify `installation.path` and `installation.cli_version` identify the
55
+ intended BytePlus build. Do not infer the product from the filename alone.
56
+ 2. Read `connectivity.dns.ok`. If false, later TCP and clock checks can be
57
+ skipped; use each check's `reason` instead of inventing another failure.
58
+ 3. Read `connectivity.tcp.ok` and `tls_version`. A reachable TLS endpoint is a
59
+ connectivity success even when a later signed API request would return 401
60
+ or 403.
61
+ 4. Read `clock_skew.available` before `clock_skew.ok`. An unavailable server
62
+ time is unknown, not a zero offset.
63
+ 5. Read `auth.credential_state` and `configuration.reason`. Route missing or
64
+ expired credentials to `arkcli-auth`, then resume the original task.
65
+ 6. Continue to account, model, Endpoint, or metrics diagnosis only after the
66
+ local root cause is resolved or excluded.
67
+
68
+ ## Finding to action
69
+
70
+ | Finding | Meaning | Next action |
71
+ |---|---|---|
72
+ | `dns.ok=false` | The active BytePlus host cannot be resolved | Check local DNS, proxy, VPN, and the active BytePlus profile |
73
+ | `tcp.ok=false` after DNS succeeds | Route, firewall, proxy, TLS, or certificate failure | Repair the current network path; do not change tenant or Region |
74
+ | `clock_skew.available=true` and `clock_skew.ok=false` | Signed OpenAPI calls can fail | Synchronize the operating-system clock and rerun doctor |
75
+ | `credential_state=absent` | No usable BytePlus credential | Run `arkcli auth login`, then resume the task |
76
+ | `credential_state=expired` | Existing identity has expired | Run `arkcli auth login`, then resume the task |
77
+ | `credential_state=unknown` | Configuration could not be loaded or classified | Read `auth.reason` and `configuration.reason`; do not claim signed-out state without evidence |
78
+ | `configuration.api_key.status` is disabled or missing | The selected API Key is unusable | Follow the BytePlus auth workflow to refresh or reselect it |
79
+ | `latest_version.available=false` | Version lookup failed or is not meaningful | Read `reason`; do not label the installed CLI broken if all other checks pass |
80
+
81
+ ## Boundaries
82
+
83
+ - The control-plane Region remains `ap-southeast-1`.
84
+ - Do not replace the active BaseURL with another product's host.
85
+ - Do not expose resolved credentials or signed headers.
86
+ - Do not turn a skipped or unavailable check into `ok=true`.
87
+ - If connectivity and credentials are healthy, stop this scope and continue
88
+ with the user's actual account, model, Endpoint, or metrics goal.
@@ -0,0 +1,132 @@
1
+ # BytePlus inference Endpoint scope
2
+
3
+ Use this reference whenever the user provides an inference Endpoint ID and
4
+ wants health, error, usage, or quota diagnosis. The Endpoint ID outranks a
5
+ standalone error-code lookup.
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ # Default 24-hour diagnosis.
11
+ arkcli doctor infer-endpoint <endpoint-id> --format json
12
+
13
+ # Explicit window.
14
+ arkcli doctor infer-endpoint <endpoint-id> --window 6h --format json
15
+ ```
16
+
17
+ `--window` uses Go duration syntax such as `30m`, `1h`, `24h`, or `168h`.
18
+ `7d` is not accepted.
19
+
20
+ This diagnostic is read-only and supports neither `--fix` nor `--dry-run`.
21
+ Apply remediation through the owning command after explicit confirmation.
22
+
23
+ Run the Doctor command directly. Do not run `arkcli auth status`, start login,
24
+ inspect a profile, call `arkcli infer endpoint list`, call
25
+ `arkcli models list`, or add another preflight first. Doctor preserves the
26
+ original Endpoint ID and reports its own authentication, not-found, and VMP
27
+ failures.
28
+
29
+ Preset and user-created Endpoint IDs can use different detail actions
30
+ internally. Always pass the unchanged ID and let the product command choose.
31
+
32
+ ## Checks and schema
33
+
34
+ | Output | Meaning |
35
+ |---|---|
36
+ | `endpoint_id` | Exact requested Endpoint ID |
37
+ | `window.duration` | Effective diagnostic window |
38
+ | `window.start_time`, `window.end_time` | RFC3339 evidence bounds |
39
+ | `exists.ok` | Whether the Endpoint is visible in the active BytePlus profile |
40
+ | `exists.not_found` | Normalized missing-resource result |
41
+ | `exists.reason` | Lookup or visibility failure |
42
+ | `status.healthy` | Whether the lifecycle state is healthy |
43
+ | `status.status` | Raw Endpoint lifecycle state |
44
+ | `status.reason` | Backend state reason when present |
45
+ | `model_info.model_type` | `FoundationModel`, `CustomModel`, or `ServiceModel` |
46
+ | `model_info.name`, `model_info.version` | Foundation or service model identity |
47
+ | `model_info.custom_model_id` | Custom-model identity when applicable |
48
+ | `model_info.modality` | `text`, `image`, `video`, or `unknown` |
49
+ | `usage.available` | Whether ModelArk usage data was returned |
50
+ | `usage.total_calls` | Calls in the selected window |
51
+ | `usage.total_tokens`, `input_tokens`, `output_tokens` | Token values when the modality uses tokens |
52
+ | `usage.cache_hit_rate_percent` | Cache-hit ratio for applicable text models |
53
+ | `errors.modality` | Metric family selected from authoritative model tags |
54
+ | `errors.overall.by_error_code` | Text/image error distribution when applicable |
55
+ | `errors.task.by_error_code` | Async task error distribution for video-like workloads |
56
+ | `error_rate.threshold_percent` | Current warning threshold, normally 5 |
57
+ | `error_rate.overall`, `request`, `task` | Modality-specific error-rate channels |
58
+ | `quota_pressure.modality` | Quota family selected for this model |
59
+ | `quota_pressure.rpm`, `tpm`, `ipm`, `concurrency` | Applicable limit, peak, percent, and level fields |
60
+
61
+ The scope does not emit `report_suggestion` on BytePlus.
62
+
63
+ ## Analysis order
64
+
65
+ 1. Confirm `exists.ok`. If false, report `not_found` and `reason`, then stop.
66
+ Check the exact ID, active BytePlus profile, IAM visibility, and fixed Region;
67
+ do not retry in another product.
68
+ 2. Read `status.healthy`, `status.status`, and `status.reason`. A stopped or
69
+ transitioning Endpoint can explain failures before metrics are considered.
70
+ 3. Read `model_info.model_type` and `modality`. Do not interpret token, image,
71
+ task, or concurrency fields without this context.
72
+ 4. Read `usage.available` before all usage numbers. An unavailable probe is not
73
+ zero traffic.
74
+ 5. Read the error-rate channel for the modality and compare it with
75
+ `threshold_percent`. Then sort the matching `by_error_code` distribution by
76
+ count or percent.
77
+ 6. Load [`error-codes.md`](error-codes.md) for the leading exact code. Preserve
78
+ any upstream `RequestId`.
79
+ 7. Read only the quota metrics present for the modality. Use `level` and
80
+ `percent`; do not parse display text.
81
+ 8. If the problem remains model-wide, run `doctor model <model-name>`. Do not
82
+ broaden the scope before the Endpoint evidence points there.
83
+
84
+ ## Modality routing
85
+
86
+ | Modality | Error fields | Quota fields |
87
+ |---|---|---|
88
+ | Text | `errors.overall`, `error_rate.overall` | RPM and TPM when available |
89
+ | Image | `errors.overall`, `error_rate.overall` | IPM when available |
90
+ | Video or async content generation | `errors.task`, `error_rate.request`, `error_rate.task` | Create-task RPM and concurrency when available |
91
+ | Unknown | Preserve the reported fields without guessing a metric family | Preserve present fields and state the limitation |
92
+
93
+ A peak of zero after a successful VMP query can mean no matching series, no
94
+ traffic, or a metric that is not populated for that modality. Do not claim
95
+ unused quota without checking availability, window, and surrounding evidence.
96
+
97
+ ## Common finding to action
98
+
99
+ | Finding | Next action |
100
+ |---|---|
101
+ | `exists.not_found=true` | Verify the exact Endpoint ID, active BytePlus profile, fixed Region, and IAM visibility |
102
+ | `status.healthy=false` | Follow the lifecycle reason; use `arkcli-infer-endpoint` for an authorized start or update operation |
103
+ | `usage.available=false` | Report `usage.reason`; do not replace totals with zero |
104
+ | Error rate exceeds the threshold | Use the leading exact code and `error-codes.md`; distinguish request and async-task channels |
105
+ | `level=critical95` or `warn80` | Reduce traffic, rebalance work, or request the relevant BytePlus quota |
106
+ | `RequestBurstTooFast` | Ramp traffic gradually and retry idempotently with exponential backoff |
107
+ | `ModelNotOpen` | Run `doctor model <model-name>` for model-wide evidence and interpret the exact code with `error-codes.md` |
108
+
109
+ ## VMP precheck and binding
110
+
111
+ VMP is required for the monitoring portion. Without an explicit workspace, the
112
+ command verifies VMP subscription, the ModelArk service-linked role, and the
113
+ telemetry workspace binding.
114
+
115
+ If and only if the structured error says the workspace is unbound, explain the
116
+ write and obtain approval before running:
117
+
118
+ ```bash
119
+ arkcli doctor infer-endpoint <endpoint-id> --window 24h --auto-bind --format json
120
+ ```
121
+
122
+ The command may reuse the first workspace or create `ark_default`, then bind
123
+ ModelArk telemetry. It cannot enable VMP, accept terms, or grant IAM. If VMP is
124
+ disabled or the role is missing, stop at the official BytePlus setup path.
125
+
126
+ ## Boundaries
127
+
128
+ - Read-only unless `--auto-bind` is explicitly approved.
129
+ - Does not invoke the Endpoint and does not consume model tokens.
130
+ - Does not start, stop, update, or delete the Endpoint.
131
+ - Does not compare another account, Region, or product.
132
+ - Does not support or suggest `doctor report`.