@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.
- package/LICENSE +201 -0
- package/bin/arkcli-darwin-amd64 +4 -0
- package/manifest.json +43 -0
- package/package.json +20 -4
- package/skills/arkcli-agent/SKILL.md +152 -0
- package/skills/arkcli-agent/references/agent.md +398 -0
- package/skills/arkcli-agent/references/byok.md +65 -0
- package/skills/arkcli-agent/references/context-management.md +42 -0
- package/skills/arkcli-agent/references/debug-export.md +26 -0
- package/skills/arkcli-agent/references/evals.md +178 -0
- package/skills/arkcli-agent/references/events-chat.md +148 -0
- package/skills/arkcli-agent/references/interfaces-gaps.md +52 -0
- package/skills/arkcli-agent/references/mcp-vault.md +111 -0
- package/skills/arkcli-agent/references/model-config.md +46 -0
- package/skills/arkcli-agent/references/self-hosted.md +47 -0
- package/skills/arkcli-agent/references/session-files.md +149 -0
- package/skills/arkcli-agent/references/session-upgrade.md +61 -0
- package/skills/arkcli-agent/references/skills.md +87 -0
- package/skills/arkcli-agent/references/todo-write.md +31 -0
- package/skills/arkcli-api-explorer/SKILL.md +188 -0
- package/skills/arkcli-api-explorer/references/arkcli-api.md +180 -0
- package/skills/arkcli-api-explorer/references/evals.md +176 -0
- package/skills/arkcli-auth/SKILL.md +184 -0
- package/skills/arkcli-auth/references/arkcli-auth-login.md +92 -0
- package/skills/arkcli-auth/references/arkcli-auth-status.md +109 -0
- package/skills/arkcli-auth/references/arkcli-auth-whoami.md +56 -0
- package/skills/arkcli-auth/references/auth-modes.md +78 -0
- package/skills/arkcli-auth/references/evals.md +82 -0
- package/skills/arkcli-auth/references/identity-resolution.md +33 -0
- package/skills/arkcli-auth/references/realname-gate.md +69 -0
- package/skills/arkcli-billing/SKILL.md +122 -0
- package/skills/arkcli-billing/references/arkcli-billing-list.md +259 -0
- package/skills/arkcli-billing/references/evals.md +107 -0
- package/skills/arkcli-chat/SKILL.md +114 -0
- package/skills/arkcli-chat/references/arkcli-chat.md +283 -0
- package/skills/arkcli-chat/references/caching-thinking.md +124 -0
- package/skills/arkcli-chat/references/chat-meta.md +77 -0
- package/skills/arkcli-chat/references/evals.md +34 -0
- package/skills/arkcli-chat/references/stream-events.md +124 -0
- package/skills/arkcli-chat/references/text-format.md +167 -0
- package/skills/arkcli-chat/references/tools.md +119 -0
- package/skills/arkcli-config/SKILL.md +197 -0
- package/skills/arkcli-config/references/arkcli-config-init.md +89 -0
- package/skills/arkcli-config/references/arkcli-config-profile.md +106 -0
- package/skills/arkcli-config/references/evals.md +154 -0
- package/skills/arkcli-connect/SKILL.md +196 -0
- package/skills/arkcli-connect/references/arkcli-connect.md +165 -0
- package/skills/arkcli-connect/references/evals.md +231 -0
- package/skills/arkcli-custommodel/SKILL.md +167 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-available-quantizations.md +29 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-delete.md +37 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-get.md +45 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-list.md +65 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-quantize.md +59 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-update.md +47 -0
- package/skills/arkcli-custommodel/references/arkcli-custommodel-upload.md +64 -0
- package/skills/arkcli-custommodel/references/evals.md +59 -0
- package/skills/arkcli-datasets/SKILL.md +39 -0
- package/skills/arkcli-datasets/references/commands.md +83 -0
- package/skills/arkcli-datasets/references/evals.md +31 -0
- package/skills/arkcli-deploy/SKILL.md +89 -0
- package/skills/arkcli-deploy/references/arkcli-deploy.md +141 -0
- package/skills/arkcli-deploy/references/evals.md +80 -0
- package/skills/arkcli-docs/SKILL.md +453 -0
- package/skills/arkcli-docs/references/commands.md +283 -0
- package/skills/arkcli-docs/references/evals.md +201 -0
- package/skills/arkcli-docs/references/failure-modes.md +85 -0
- package/skills/arkcli-doctor/CONTRIBUTING.md +54 -0
- package/skills/arkcli-doctor/SKILL.md +367 -0
- package/skills/arkcli-doctor/references/error-codes.md +162 -0
- package/skills/arkcli-doctor/references/evals.md +385 -0
- package/skills/arkcli-doctor/references/scope-account.md +94 -0
- package/skills/arkcli-doctor/references/scope-cli.md +88 -0
- package/skills/arkcli-doctor/references/scope-infer-endpoint.md +132 -0
- package/skills/arkcli-doctor/references/scope-metrics.md +157 -0
- package/skills/arkcli-doctor/references/scope-model.md +130 -0
- package/skills/arkcli-doctor/references/verify-origin.md +102 -0
- package/skills/arkcli-gen/SKILL.md +188 -0
- package/skills/arkcli-gen/references/arkcli-gen.md +230 -0
- package/skills/arkcli-gen/references/gen-meta.md +154 -0
- package/skills/arkcli-gen/references/image-stream.md +105 -0
- package/skills/arkcli-helper/SKILL.md +200 -0
- package/skills/arkcli-helper/references/arkcli-helper.md +298 -0
- package/skills/arkcli-helper/references/evals.md +334 -0
- package/skills/arkcli-iam/SKILL.md +46 -0
- package/skills/arkcli-iam/references/arkcli-iam-userid.md +54 -0
- package/skills/arkcli-iam/references/evals.md +24 -0
- package/skills/arkcli-infer-endpoint/SKILL.md +82 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-capability-get.md +50 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-create.md +121 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-delete.md +71 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-get.md +43 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-list.md +82 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-start.md +36 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-stop.md +36 -0
- package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-update.md +78 -0
- package/skills/arkcli-infer-endpoint/references/evals.md +24 -0
- package/skills/arkcli-models/SKILL.md +305 -0
- package/skills/arkcli-models/references/arkcli-models-activate.md +103 -0
- package/skills/arkcli-models/references/arkcli-models-get.md +94 -0
- package/skills/arkcli-models/references/arkcli-models-list.md +71 -0
- package/skills/arkcli-models/references/arkcli-models-scenario-table.md +75 -0
- package/skills/arkcli-models/references/arkcli-models-search.md +170 -0
- package/skills/arkcli-models/references/evals.md +57 -0
- package/skills/arkcli-onboard/SKILL.md +169 -0
- package/skills/arkcli-onboard/references/evals.md +156 -0
- package/skills/arkcli-plans/SKILL.md +135 -0
- package/skills/arkcli-plans/references/arkcli-plans-buy.md +125 -0
- package/skills/arkcli-plans/references/arkcli-plans-get.md +84 -0
- package/skills/arkcli-plans/references/arkcli-plans-model-apply.md +58 -0
- package/skills/arkcli-plans/references/arkcli-plans-model-list.md +114 -0
- package/skills/arkcli-plans/references/arkcli-plans-renew.md +125 -0
- package/skills/arkcli-plans/references/arkcli-plans-team-rotate-apikey.md +61 -0
- package/skills/arkcli-plans/references/arkcli-plans-team-seat-assign.md +147 -0
- package/skills/arkcli-plans/references/arkcli-plans-team-seat-list.md +100 -0
- package/skills/arkcli-plans/references/evals.md +178 -0
- package/skills/arkcli-pricing/SKILL.md +120 -0
- package/skills/arkcli-pricing/references/arkcli-pricing-models.md +258 -0
- package/skills/arkcli-pricing/references/arkcli-pricing-plans.md +139 -0
- package/skills/arkcli-profile/SKILL.md +168 -0
- package/skills/arkcli-profile/references/arkcli-profile-create.md +92 -0
- package/skills/arkcli-profile/references/arkcli-profile-keys.md +135 -0
- package/skills/arkcli-profile/references/arkcli-profile-set-default.md +81 -0
- package/skills/arkcli-profile/references/evals.md +93 -0
- package/skills/arkcli-resources/SKILL.md +112 -0
- package/skills/arkcli-resources/references/arkcli-resources-list.md +105 -0
- package/skills/arkcli-shared/SKILL.md +209 -0
- package/skills/arkcli-shared/references/global-flags.md +77 -0
- package/skills/arkcli-shared/references/profile-defaults.md +35 -0
- package/skills/arkcli-shared/references/troubleshooting.md +49 -0
- package/skills/arkcli-shared/references/update.md +117 -0
- package/skills/arkcli-train-finetune/SKILL.md +109 -0
- package/skills/arkcli-train-finetune/references/create.md +274 -0
- package/skills/arkcli-train-finetune/references/download.md +50 -0
- package/skills/arkcli-train-finetune/references/evals.md +59 -0
- package/skills/arkcli-train-finetune/references/export-deploy.md +179 -0
- package/skills/arkcli-train-finetune/references/list.md +79 -0
- package/skills/arkcli-train-finetune/references/manage.md +140 -0
- package/skills/arkcli-understand/SKILL.md +105 -0
- package/skills/arkcli-understand/references/arkcli-understand.md +249 -0
- package/skills/arkcli-understand/references/evals.md +109 -0
- package/skills/arkcli-understand/references/sub-skills.md +137 -0
- package/skills/arkcli-usage/SKILL.md +123 -0
- package/skills/arkcli-usage/references/arkcli-usage-balance.md +196 -0
- package/skills/arkcli-usage/references/arkcli-usage-plan.md +153 -0
- package/skills/arkcli-usage/references/arkcli-usage-seats.md +199 -0
- package/skills/arkcli-usage/references/arkcli-usage-stats.md +160 -0
- package/README.md +0 -3
|
@@ -0,0 +1,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`.
|