image-skill 0.1.25 → 0.1.27
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/CHANGELOG.md +16 -0
- package/bin/image-skill.mjs +342 -47
- package/cli.md +3 -0
- package/package.json +1 -1
- package/skills/image-skill/references/cli.md +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,22 @@ provenance; this file is the human- and agent-readable release map.
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.1.27 - 2026-06-02
|
|
10
|
+
|
|
11
|
+
- Fix (activation): default hosted signup now reports saved auth as a positive
|
|
12
|
+
`data.auth_handoff.status: "saved_config_ready"` state, keeps `data.token`
|
|
13
|
+
null, and suppresses the generic hosted token-returned warning when the
|
|
14
|
+
public CLI saved the token instead of showing it. Fresh agents can rerun the
|
|
15
|
+
guide or continue with `whoami`, feedback, credits, create, or edit without
|
|
16
|
+
hunting for a raw token or running a separate `auth save`.
|
|
17
|
+
|
|
18
|
+
## 0.1.26 - 2026-06-02
|
|
19
|
+
|
|
20
|
+
- Fix (activation): public CLI subcommand help flags now return command help
|
|
21
|
+
instead of `INVALID_ARGUMENTS`. Fresh agents can run `signup --help`,
|
|
22
|
+
`credits buy --help`, `models show --help`, or similar discovery commands
|
|
23
|
+
without triggering auth, network, payment, or config validation.
|
|
24
|
+
|
|
9
25
|
## 0.1.25 - 2026-06-02
|
|
10
26
|
|
|
11
27
|
- Fix (activation): `create --guide` now probes whether the public CLI auth
|
package/bin/image-skill.mjs
CHANGED
|
@@ -7,7 +7,7 @@ import { Readable } from "node:stream";
|
|
|
7
7
|
import { pipeline } from "node:stream/promises";
|
|
8
8
|
import os from "node:os";
|
|
9
9
|
|
|
10
|
-
const VERSION = "0.1.
|
|
10
|
+
const VERSION = "0.1.27";
|
|
11
11
|
const PACKAGE_NAME = "image-skill";
|
|
12
12
|
const DEFAULT_API_BASE_URL = "https://api.image-skill.com";
|
|
13
13
|
const DEFAULT_DOCS_BASE_URL = "https://image-skill.com";
|
|
@@ -31,6 +31,8 @@ const SIGNUP_SUGGESTED_COMMAND =
|
|
|
31
31
|
"image-skill signup --agent --agent-contact AGENT_OR_OPERATOR_INBOX --agent-name NAME --runtime RUNTIME --json";
|
|
32
32
|
const SIGNUP_CONTACT_GUIDANCE =
|
|
33
33
|
"Preview signup currently requires an email-shaped durable contact inbox, not an individual human email. Use an agent-owned inbox when available; otherwise use an operator, team, or sponsor inbox that can receive future claim, billing, or abuse notices. Do not block waiting for a person, invent a person, or use a throwaway inbox. --human-email remains a compatibility alias.";
|
|
34
|
+
const HOSTED_SIGNUP_TOKEN_RETURNED_WARNING =
|
|
35
|
+
"hosted restricted token is returned once; store it in the agent runtime secret store and never paste it into prompts, logs, issues, or product feedback";
|
|
34
36
|
const PUBLIC_NPX_COMMAND_PREFIX = "npx -y image-skill@latest";
|
|
35
37
|
const CREDIT_UNIT_USD = 0.01;
|
|
36
38
|
const PAYMENT_CREDENTIAL_FLAGS = new Set([
|
|
@@ -62,47 +64,16 @@ process.exitCode = result.exitCode;
|
|
|
62
64
|
async function main(rawArgv) {
|
|
63
65
|
const [command, ...rest] = rawArgv;
|
|
64
66
|
|
|
65
|
-
if (
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
commands: [
|
|
76
|
-
"doctor",
|
|
77
|
-
"trust",
|
|
78
|
-
"signup --agent --agent-contact --agent-name NAME --runtime RUNTIME",
|
|
79
|
-
"auth status",
|
|
80
|
-
"auth save",
|
|
81
|
-
"auth logout",
|
|
82
|
-
"whoami",
|
|
83
|
-
"usage quota",
|
|
84
|
-
"credits methods",
|
|
85
|
-
"credits packs list",
|
|
86
|
-
"credits quote",
|
|
87
|
-
"credits buy",
|
|
88
|
-
"credits status",
|
|
89
|
-
"models list",
|
|
90
|
-
"models show",
|
|
91
|
-
"create --guide",
|
|
92
|
-
"capabilities list",
|
|
93
|
-
"capabilities show",
|
|
94
|
-
"create",
|
|
95
|
-
"upload",
|
|
96
|
-
"edit",
|
|
97
|
-
"assets show",
|
|
98
|
-
"assets get",
|
|
99
|
-
"jobs show",
|
|
100
|
-
"jobs wait",
|
|
101
|
-
"activity list",
|
|
102
|
-
"activity show",
|
|
103
|
-
"feedback create",
|
|
104
|
-
],
|
|
105
|
-
});
|
|
67
|
+
if (command === undefined || command === "--help" || command === "-h") {
|
|
68
|
+
return publicCliHelp([]);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (command === "help") {
|
|
72
|
+
return publicCliHelp(helpTarget(rest));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (hasHelpFlag(rest)) {
|
|
76
|
+
return publicCliHelp(helpTarget([command, ...rest]));
|
|
106
77
|
}
|
|
107
78
|
|
|
108
79
|
if (command === "version" || command === "--version" || command === "-v") {
|
|
@@ -173,6 +144,321 @@ async function main(rawArgv) {
|
|
|
173
144
|
}
|
|
174
145
|
}
|
|
175
146
|
|
|
147
|
+
function publicCliHelp(path) {
|
|
148
|
+
const key = helpKey(path);
|
|
149
|
+
const help =
|
|
150
|
+
commandHelpByKey(key) ?? commandHelpByKey(helpKey(path.slice(0, 1)));
|
|
151
|
+
if (help === undefined) {
|
|
152
|
+
return publicCliHelp([]);
|
|
153
|
+
}
|
|
154
|
+
return success(help.command, help);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function hasHelpFlag(argv) {
|
|
158
|
+
return argv.includes("--help") || argv.includes("-h");
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function helpTarget(argv) {
|
|
162
|
+
return argv.filter(
|
|
163
|
+
(arg) => arg !== "--help" && arg !== "-h" && arg !== "--json",
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function helpKey(path) {
|
|
168
|
+
const clean = path.filter((arg) => !arg.startsWith("-"));
|
|
169
|
+
if (clean.length >= 2) {
|
|
170
|
+
return `${clean[0]} ${clean[1]}`;
|
|
171
|
+
}
|
|
172
|
+
return clean[0] ?? "";
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function commandHelpByKey(key) {
|
|
176
|
+
return {
|
|
177
|
+
"": {
|
|
178
|
+
command: "image-skill help",
|
|
179
|
+
usage:
|
|
180
|
+
"image-skill <doctor|trust|signup|auth|whoami|usage|quota|credits|models|capabilities|create|upload|edit|assets|jobs|activity|feedback> --json",
|
|
181
|
+
docs_url: "https://image-skill.com/cli.md",
|
|
182
|
+
commands: [
|
|
183
|
+
"doctor",
|
|
184
|
+
"trust",
|
|
185
|
+
"signup --agent --agent-contact --agent-name NAME --runtime RUNTIME",
|
|
186
|
+
"auth status",
|
|
187
|
+
"auth save",
|
|
188
|
+
"auth logout",
|
|
189
|
+
"whoami",
|
|
190
|
+
"usage quota",
|
|
191
|
+
"credits methods",
|
|
192
|
+
"credits packs list",
|
|
193
|
+
"credits quote",
|
|
194
|
+
"credits buy",
|
|
195
|
+
"credits status",
|
|
196
|
+
"models list",
|
|
197
|
+
"models show",
|
|
198
|
+
"create --guide",
|
|
199
|
+
"capabilities list",
|
|
200
|
+
"capabilities show",
|
|
201
|
+
"create",
|
|
202
|
+
"upload",
|
|
203
|
+
"edit",
|
|
204
|
+
"assets show",
|
|
205
|
+
"assets get",
|
|
206
|
+
"jobs show",
|
|
207
|
+
"jobs wait",
|
|
208
|
+
"activity list",
|
|
209
|
+
"activity show",
|
|
210
|
+
"feedback create",
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
doctor: {
|
|
214
|
+
command: "image-skill doctor help",
|
|
215
|
+
usage: "image-skill doctor --json",
|
|
216
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-doctor",
|
|
217
|
+
description:
|
|
218
|
+
"Check hosted API reachability, CLI version, auth state, and health.",
|
|
219
|
+
},
|
|
220
|
+
trust: {
|
|
221
|
+
command: "image-skill trust help",
|
|
222
|
+
usage: "image-skill trust --json",
|
|
223
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-trust",
|
|
224
|
+
description:
|
|
225
|
+
"Return npm provenance, hosted contract hashes, API health, and model availability evidence.",
|
|
226
|
+
},
|
|
227
|
+
signup: {
|
|
228
|
+
command: "image-skill signup help",
|
|
229
|
+
usage:
|
|
230
|
+
"image-skill signup --agent --agent-contact AGENT_OR_OPERATOR_INBOX --agent-name NAME --runtime RUNTIME --json",
|
|
231
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-signup-agent",
|
|
232
|
+
required_flags: [
|
|
233
|
+
"--agent",
|
|
234
|
+
"--agent-contact",
|
|
235
|
+
"--agent-name",
|
|
236
|
+
"--runtime",
|
|
237
|
+
],
|
|
238
|
+
optional_flags: ["--show-token", "--no-save", "--token-stdin"],
|
|
239
|
+
},
|
|
240
|
+
auth: {
|
|
241
|
+
command: "image-skill auth help",
|
|
242
|
+
usage: "image-skill auth <status|save|logout> --json",
|
|
243
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-auth",
|
|
244
|
+
subcommands: ["status", "save", "logout"],
|
|
245
|
+
},
|
|
246
|
+
"auth status": {
|
|
247
|
+
command: "image-skill auth status help",
|
|
248
|
+
usage: "image-skill auth status --json",
|
|
249
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-auth",
|
|
250
|
+
},
|
|
251
|
+
"auth save": {
|
|
252
|
+
command: "image-skill auth save help",
|
|
253
|
+
usage: "image-skill auth save --token-stdin --json",
|
|
254
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-auth",
|
|
255
|
+
},
|
|
256
|
+
"auth logout": {
|
|
257
|
+
command: "image-skill auth logout help",
|
|
258
|
+
usage: "image-skill auth logout --json",
|
|
259
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-auth",
|
|
260
|
+
},
|
|
261
|
+
whoami: {
|
|
262
|
+
command: "image-skill whoami help",
|
|
263
|
+
usage: "image-skill whoami --json",
|
|
264
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-whoami",
|
|
265
|
+
},
|
|
266
|
+
usage: {
|
|
267
|
+
command: "image-skill usage help",
|
|
268
|
+
usage: "image-skill usage quota --json",
|
|
269
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-usage",
|
|
270
|
+
subcommands: ["quota"],
|
|
271
|
+
},
|
|
272
|
+
"usage quota": {
|
|
273
|
+
command: "image-skill usage quota help",
|
|
274
|
+
usage: "image-skill usage quota --json",
|
|
275
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-usage",
|
|
276
|
+
},
|
|
277
|
+
quota: {
|
|
278
|
+
command: "image-skill quota help",
|
|
279
|
+
usage: "image-skill quota --json",
|
|
280
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-quota",
|
|
281
|
+
},
|
|
282
|
+
credits: {
|
|
283
|
+
command: "image-skill credits help",
|
|
284
|
+
usage: "image-skill credits <methods|packs list|quote|buy|status> --json",
|
|
285
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-credits",
|
|
286
|
+
subcommands: ["methods", "packs list", "quote", "buy", "status"],
|
|
287
|
+
},
|
|
288
|
+
"credits methods": {
|
|
289
|
+
command: "image-skill credits methods help",
|
|
290
|
+
usage: "image-skill credits methods --json",
|
|
291
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-credits",
|
|
292
|
+
},
|
|
293
|
+
"credits packs": {
|
|
294
|
+
command: "image-skill credits packs help",
|
|
295
|
+
usage: "image-skill credits packs list --json",
|
|
296
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-credits",
|
|
297
|
+
subcommands: ["list"],
|
|
298
|
+
},
|
|
299
|
+
"credits quote": {
|
|
300
|
+
command: "image-skill credits quote help",
|
|
301
|
+
usage:
|
|
302
|
+
"image-skill credits quote --pack PACK_ID --payment-method stripe_x402.exact.usdc --json",
|
|
303
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-credits",
|
|
304
|
+
required_flags: ["--pack or --credits"],
|
|
305
|
+
optional_flags: ["--payment-method", "--idempotency-key"],
|
|
306
|
+
},
|
|
307
|
+
"credits buy": {
|
|
308
|
+
command: "image-skill credits buy help",
|
|
309
|
+
usage:
|
|
310
|
+
"image-skill credits buy --provider stripe_x402 --quote-id QUOTE_ID --idempotency-key KEY --json",
|
|
311
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-credits",
|
|
312
|
+
required_flags: ["--provider", "--quote-id", "--idempotency-key"],
|
|
313
|
+
supported_providers: ["stripe", "stripe_x402"],
|
|
314
|
+
},
|
|
315
|
+
"credits status": {
|
|
316
|
+
command: "image-skill credits status help",
|
|
317
|
+
usage:
|
|
318
|
+
"image-skill credits status --payment-attempt-id PAYMENT_ATTEMPT_ID --json",
|
|
319
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-credits",
|
|
320
|
+
required_flags: ["--payment-attempt-id"],
|
|
321
|
+
},
|
|
322
|
+
models: {
|
|
323
|
+
command: "image-skill models help",
|
|
324
|
+
usage: "image-skill models <list|show> --json",
|
|
325
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-models",
|
|
326
|
+
subcommands: ["list", "show"],
|
|
327
|
+
},
|
|
328
|
+
"models list": {
|
|
329
|
+
command: "image-skill models list help",
|
|
330
|
+
usage:
|
|
331
|
+
"image-skill models list --available --operation image.generate --json",
|
|
332
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-models",
|
|
333
|
+
},
|
|
334
|
+
"models show": {
|
|
335
|
+
command: "image-skill models show help",
|
|
336
|
+
usage: "image-skill models show MODEL_ID --json",
|
|
337
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-models",
|
|
338
|
+
},
|
|
339
|
+
capabilities: {
|
|
340
|
+
command: "image-skill capabilities help",
|
|
341
|
+
usage: "image-skill capabilities <list|show> --json",
|
|
342
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-capabilities",
|
|
343
|
+
subcommands: ["list", "show"],
|
|
344
|
+
},
|
|
345
|
+
"capabilities list": {
|
|
346
|
+
command: "image-skill capabilities list help",
|
|
347
|
+
usage: "image-skill capabilities list --json",
|
|
348
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-capabilities",
|
|
349
|
+
},
|
|
350
|
+
"capabilities show": {
|
|
351
|
+
command: "image-skill capabilities show help",
|
|
352
|
+
usage: "image-skill capabilities show CAPABILITY_ID --json",
|
|
353
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-capabilities",
|
|
354
|
+
},
|
|
355
|
+
create: {
|
|
356
|
+
command: "image-skill create help",
|
|
357
|
+
usage:
|
|
358
|
+
'image-skill create --prompt "..." --intent explore --max-estimated-usd-per-image 0.07 --json',
|
|
359
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-create",
|
|
360
|
+
optional_flags: [
|
|
361
|
+
"--guide",
|
|
362
|
+
"--dry-run",
|
|
363
|
+
"--model",
|
|
364
|
+
"--aspect-ratio",
|
|
365
|
+
"--output-count",
|
|
366
|
+
"--model-parameters-json",
|
|
367
|
+
"--idempotency-key",
|
|
368
|
+
],
|
|
369
|
+
},
|
|
370
|
+
upload: {
|
|
371
|
+
command: "image-skill upload help",
|
|
372
|
+
usage: "image-skill upload PATH_OR_URL --json",
|
|
373
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-upload",
|
|
374
|
+
},
|
|
375
|
+
edit: {
|
|
376
|
+
command: "image-skill edit help",
|
|
377
|
+
usage: 'image-skill edit --input image_... --prompt "..." --json',
|
|
378
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-edit",
|
|
379
|
+
required_flags: ["--input"],
|
|
380
|
+
optional_flags: [
|
|
381
|
+
"--prompt",
|
|
382
|
+
"--model",
|
|
383
|
+
"--mask",
|
|
384
|
+
"--element-reference",
|
|
385
|
+
"--model-parameters-json",
|
|
386
|
+
"--idempotency-key",
|
|
387
|
+
],
|
|
388
|
+
},
|
|
389
|
+
assets: {
|
|
390
|
+
command: "image-skill assets help",
|
|
391
|
+
usage: "image-skill assets <show|get> ASSET_ID_OR_URL --json",
|
|
392
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-assets",
|
|
393
|
+
subcommands: ["show", "get"],
|
|
394
|
+
},
|
|
395
|
+
"assets show": {
|
|
396
|
+
command: "image-skill assets show help",
|
|
397
|
+
usage: "image-skill assets show ASSET_ID_OR_URL --json",
|
|
398
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-assets",
|
|
399
|
+
},
|
|
400
|
+
"assets get": {
|
|
401
|
+
command: "image-skill assets get help",
|
|
402
|
+
usage: "image-skill assets get ASSET_ID_OR_URL --output PATH --json",
|
|
403
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-assets",
|
|
404
|
+
},
|
|
405
|
+
jobs: {
|
|
406
|
+
command: "image-skill jobs help",
|
|
407
|
+
usage: "image-skill jobs <show|wait> JOB_ID --json",
|
|
408
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-jobs",
|
|
409
|
+
subcommands: ["show", "wait"],
|
|
410
|
+
},
|
|
411
|
+
"jobs show": {
|
|
412
|
+
command: "image-skill jobs show help",
|
|
413
|
+
usage: "image-skill jobs show JOB_ID --json",
|
|
414
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-jobs",
|
|
415
|
+
},
|
|
416
|
+
"jobs wait": {
|
|
417
|
+
command: "image-skill jobs wait help",
|
|
418
|
+
usage: "image-skill jobs wait JOB_ID --timeout-ms 30000 --json",
|
|
419
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-jobs",
|
|
420
|
+
},
|
|
421
|
+
activity: {
|
|
422
|
+
command: "image-skill activity help",
|
|
423
|
+
usage: "image-skill activity <list|show> --json",
|
|
424
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-activity",
|
|
425
|
+
subcommands: ["list", "show"],
|
|
426
|
+
},
|
|
427
|
+
"activity list": {
|
|
428
|
+
command: "image-skill activity list help",
|
|
429
|
+
usage: "image-skill activity list --subject JOB_ID --json",
|
|
430
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-activity",
|
|
431
|
+
},
|
|
432
|
+
"activity show": {
|
|
433
|
+
command: "image-skill activity show help",
|
|
434
|
+
usage: "image-skill activity show REFERENCE --json",
|
|
435
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-activity",
|
|
436
|
+
},
|
|
437
|
+
feedback: {
|
|
438
|
+
command: "image-skill feedback help",
|
|
439
|
+
usage: "image-skill feedback create --title TITLE --body BODY --json",
|
|
440
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-feedback",
|
|
441
|
+
subcommands: ["create"],
|
|
442
|
+
},
|
|
443
|
+
"feedback create": {
|
|
444
|
+
command: "image-skill feedback create help",
|
|
445
|
+
usage:
|
|
446
|
+
"image-skill feedback create --title TITLE --body BODY --type user_feedback --json",
|
|
447
|
+
docs_url: "https://image-skill.com/cli.md#image-skill-feedback",
|
|
448
|
+
optional_flags: [
|
|
449
|
+
"--title",
|
|
450
|
+
"--body",
|
|
451
|
+
"--type",
|
|
452
|
+
"--severity",
|
|
453
|
+
"--confidence",
|
|
454
|
+
"--expected",
|
|
455
|
+
"--actual",
|
|
456
|
+
"--command",
|
|
457
|
+
],
|
|
458
|
+
},
|
|
459
|
+
}[key];
|
|
460
|
+
}
|
|
461
|
+
|
|
176
462
|
async function doctor(argv) {
|
|
177
463
|
const args = parseArgs(argv);
|
|
178
464
|
const apiBaseUrl = apiBase(args);
|
|
@@ -378,7 +664,9 @@ async function signup(argv) {
|
|
|
378
664
|
rewriteSignupContactFailure(result);
|
|
379
665
|
|
|
380
666
|
const token = result.envelope.data?.token;
|
|
381
|
-
const warnings =
|
|
667
|
+
const warnings = result.envelope.warnings.filter(
|
|
668
|
+
(warning) => warning !== HOSTED_SIGNUP_TOKEN_RETURNED_WARNING,
|
|
669
|
+
);
|
|
382
670
|
if (result.envelope.ok && shouldSave) {
|
|
383
671
|
if (typeof token !== "string" || token.trim().length === 0) {
|
|
384
672
|
return failure(
|
|
@@ -403,9 +691,6 @@ async function signup(argv) {
|
|
|
403
691
|
} catch (error) {
|
|
404
692
|
return configWriteFailure("image-skill signup", error);
|
|
405
693
|
}
|
|
406
|
-
warnings.push(
|
|
407
|
-
"hosted restricted token was saved to the public CLI config with 0600 permissions; later commands can authenticate from config without repeating signup",
|
|
408
|
-
);
|
|
409
694
|
}
|
|
410
695
|
if (result.envelope.ok && showToken) {
|
|
411
696
|
warnings.push(
|
|
@@ -426,15 +711,25 @@ async function signup(argv) {
|
|
|
426
711
|
saved: shouldSave,
|
|
427
712
|
config_path: shouldSave ? configPath() : null,
|
|
428
713
|
reason: shouldSave
|
|
429
|
-
? "
|
|
714
|
+
? "auth is ready in the public CLI config; no raw token copy step is required"
|
|
430
715
|
: showToken
|
|
431
716
|
? "hosted signup returned the token once for the agent runtime secret store"
|
|
432
717
|
: "hosted signup did not request a raw token or save config because --no-save was set",
|
|
433
718
|
},
|
|
434
719
|
auth_handoff: {
|
|
720
|
+
status: shouldSave
|
|
721
|
+
? "saved_config_ready"
|
|
722
|
+
: showToken
|
|
723
|
+
? "manual_token_handoff"
|
|
724
|
+
: "not_saved",
|
|
725
|
+
saved_auth_ready: shouldSave,
|
|
435
726
|
accepted_methods: ["config", "IMAGE_SKILL_TOKEN", "--token-stdin"],
|
|
436
727
|
token_source_after_signup: shouldSave ? "config" : "not_saved",
|
|
437
728
|
secret_value_included: showToken,
|
|
729
|
+
raw_token_copy_required: !shouldSave,
|
|
730
|
+
rerun_guide_hint: shouldSave
|
|
731
|
+
? "Rerun the guide command you just ran; the CLI will authenticate from saved config."
|
|
732
|
+
: "Rerun the guide with IMAGE_SKILL_TOKEN or --token-stdin after storing the returned token.",
|
|
438
733
|
next_step: shouldSave
|
|
439
734
|
? "Run whoami, usage quota, feedback create, credits, create, or edit normally; the CLI will read the saved config."
|
|
440
735
|
: "Store data.token in the agent runtime secret store immediately, then pass it with IMAGE_SKILL_TOKEN or --token-stdin.",
|
package/cli.md
CHANGED
|
@@ -91,6 +91,9 @@ Hosted signup saves the restricted `isk_r_` token to the public CLI config by
|
|
|
91
91
|
default with `0600` permissions, so later hosted commands can authenticate from
|
|
92
92
|
config without repeating signup or carrying a raw token through prompts. Set
|
|
93
93
|
`IMAGE_SKILL_CONFIG_PATH` first when the default config home may be read-only.
|
|
94
|
+
Successful default signup reports `data.auth_handoff.status` as
|
|
95
|
+
`saved_config_ready`, keeps `data.token` null, and should not require any
|
|
96
|
+
token-copy step.
|
|
94
97
|
The raw token is returned only when `--show-token` is set, and only once. Use
|
|
95
98
|
`--show-token --no-save` when the agent runtime has a separate secret store and
|
|
96
99
|
does not want local config. Do not paste tokens into prompts, logs, issue text,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "image-skill",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.27",
|
|
4
4
|
"description": "Zero-setup durable creative-media CLI for agents (image + video + audio + 3D): guide-first creation, model and cost inspection, owned URLs, JSON recovery, payments, reusable assets, and feedback.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -91,6 +91,9 @@ Hosted signup saves the restricted `isk_r_` token to the public CLI config by
|
|
|
91
91
|
default with `0600` permissions, so later hosted commands can authenticate from
|
|
92
92
|
config without repeating signup or carrying a raw token through prompts. Set
|
|
93
93
|
`IMAGE_SKILL_CONFIG_PATH` first when the default config home may be read-only.
|
|
94
|
+
Successful default signup reports `data.auth_handoff.status` as
|
|
95
|
+
`saved_config_ready`, keeps `data.token` null, and should not require any
|
|
96
|
+
token-copy step.
|
|
94
97
|
The raw token is returned only when `--show-token` is set, and only once. Use
|
|
95
98
|
`--show-token --no-save` when the agent runtime has a separate secret store and
|
|
96
99
|
does not want local config. Do not paste tokens into prompts, logs, issue text,
|