image-skill 0.1.27 → 0.1.29
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 +58 -1
- package/CONTRIBUTING.md +1 -1
- package/PROVENANCE.md +1 -1
- package/README.md +49 -10
- package/SECURITY.md +1 -1
- package/bin/image-skill.mjs +953 -79
- package/cli.md +237 -60
- package/llms.txt +18 -13
- package/package.json +1 -1
- package/skill.md +226 -561
- package/skills/ai-audio-generation/SKILL.md +78 -0
- package/skills/ai-image-generation/SKILL.md +78 -0
- package/skills/ai-video-generation/SKILL.md +78 -0
- package/skills/creative-media/SKILL.md +78 -0
- package/skills/image-edit/SKILL.md +78 -0
- package/skills/image-generation/SKILL.md +78 -0
- package/skills/image-skill/SKILL.md +226 -561
- package/skills/image-skill/references/cli.md +237 -60
- package/skills/image-skill/references/llms.txt +18 -13
- package/skills/image-to-3d/SKILL.md +78 -0
package/cli.md
CHANGED
|
@@ -128,7 +128,9 @@ should omit it.
|
|
|
128
128
|
|
|
129
129
|
Use the no-spend guide first. It is the only required first command for a fresh
|
|
130
130
|
agent. It checks health, executable model availability, auth/quota when a token
|
|
131
|
-
already exists, and payment rails, then returns one
|
|
131
|
+
already exists, and payment rails, then returns one primary
|
|
132
|
+
`data.next_command` plus machine-readable `data.next_command_effect`,
|
|
133
|
+
`data.guide_warning`, `data.auth_ready`, and `data.no_spend_evaluation`. Guide
|
|
132
134
|
mode does not create a signup, provider job, dry-run job, payment object,
|
|
133
135
|
credit debit, or asset.
|
|
134
136
|
|
|
@@ -136,21 +138,67 @@ credit debit, or asset.
|
|
|
136
138
|
image-skill create --guide --prompt "a compact field camera on a stainless workbench"
|
|
137
139
|
```
|
|
138
140
|
|
|
139
|
-
Read `data.stage`, run `data.next_command
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
141
|
+
Read `data.stage` and `data.guide_warning`, run `data.next_command` when
|
|
142
|
+
`data.guide_warning.next_command_safety` is safe for the current spend policy,
|
|
143
|
+
and rerun the guide only after auth or payment state changes. Do not run
|
|
144
|
+
`doctor`, `models list`, `signup`, `whoami`, `usage quota`, `create --dry-run`,
|
|
145
|
+
or payment commands as a setup checklist before the guide asks for them.
|
|
143
146
|
|
|
144
147
|
- `prompt_required`: rerun `data.next_command` with the real prompt.
|
|
145
148
|
- `auth_required`: run `data.next_command`, then rerun guide once. Hosted
|
|
146
149
|
signup saves auth to config by default. If the runtime intentionally used
|
|
147
150
|
`--no-save --show-token`, store the returned token and use
|
|
148
151
|
`data.auth_handoff.rerun_guide.with_env` or
|
|
149
|
-
`data.auth_handoff.rerun_guide.with_stdin`.
|
|
150
|
-
|
|
151
|
-
`data.
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
`data.auth_handoff.rerun_guide.with_stdin`. In this stage,
|
|
153
|
+
`data.auth_ready.ready` is `false`, and
|
|
154
|
+
`data.guide_warning.next_command_safety` is
|
|
155
|
+
`hosted_signup_no_spend_setup`.
|
|
156
|
+
- `quota_required`: run `data.self_fund_next_command` to start the top-up.
|
|
157
|
+
It aliases `data.next_command` and is the first payment command, usually an
|
|
158
|
+
x402 or Stripe quote. If the guide authenticated from env or stdin, prefer
|
|
159
|
+
`data.self_fund_handoff.auth.next_command.with_env` or
|
|
160
|
+
`data.self_fund_handoff.auth.next_command.with_stdin` so auth follows the
|
|
161
|
+
payment command. Then follow `data.self_fund_handoff.payment_commands.buy`
|
|
162
|
+
and `status`, and rerun `data.self_fund_handoff.after_next` once credits are
|
|
163
|
+
granted. If `data.self_fund_handoff.wallet_settlement` is non-null, pay the
|
|
164
|
+
exact amount in the returned `payable_instructions` field from a delegated
|
|
165
|
+
wallet before polling status; the handoff names the response fields and the
|
|
166
|
+
credential boundary. `data.guide_warning.next_command_safety` is
|
|
167
|
+
`live_money_payment_action`, and
|
|
168
|
+
`data.guide_warning.payment_top_up_path` summarizes the same path as
|
|
169
|
+
`data.checks.payments.preferred_method_summary.top_up_path`. Read that path
|
|
170
|
+
before the quote: `browserless_agent_self_fund` means a wallet-equipped agent
|
|
171
|
+
can complete the preferred live-money rail without a browser;
|
|
172
|
+
`human_payment_handoff` means the agent can create the payment attempt but a
|
|
173
|
+
human/browser step must complete before credits are granted.
|
|
174
|
+
- `ready_to_create`: `data.next_command` is a live media create. Its
|
|
175
|
+
`data.next_command_effect.label` is `live_media_create_credit_debit`, with
|
|
176
|
+
`provider_call`, `hosted_create`, `credit_debit`, and `media_write` all true.
|
|
177
|
+
`data.guide_warning.next_command_safety` is
|
|
178
|
+
`live_media_create_credit_debit`, `data.guide_warning.no_spend_safe` is
|
|
179
|
+
`false`, `data.guide_warning.spend_required` is `true`, and
|
|
180
|
+
`data.guide_warning.recommended_command_field` is
|
|
181
|
+
`recommended_no_spend_command`.
|
|
182
|
+
`data.auth_ready.ready` is `true`,
|
|
183
|
+
`data.auth_ready.next_command_requires_auth` is `true`, and
|
|
184
|
+
`data.auth_ready.next_command_auth_ready` is `true`; the returned
|
|
185
|
+
`data.next_command` can reuse the current saved config, env token, or stdin
|
|
186
|
+
token context without exposing a raw token.
|
|
187
|
+
`data.no_spend_evaluation.stop_here` is `true`,
|
|
188
|
+
`data.no_spend_evaluation.next_command_is_live_create` is `true`, and
|
|
189
|
+
`data.no_spend_evaluation.recommended_command_field` is
|
|
190
|
+
`recommended_no_spend_command`. Run `data.next_command` for the first bounded
|
|
191
|
+
create only when media spend is allowed. If you are in a no-spend evaluation
|
|
192
|
+
or only need proof that the path is ready, stop before `data.next_command` and
|
|
193
|
+
run `data.recommended_no_spend_command` instead; it aliases
|
|
194
|
+
`data.no_spend_next_command` and is the dry-run plan command. Its
|
|
195
|
+
`data.no_spend_next_command_effect.label` is
|
|
196
|
+
`dry_run_planned_job_no_provider_call_no_credit_debit_no_media_write`, with
|
|
197
|
+
`no_spend`, `hosted_create_dry_run`, `planned_job`, and `plan_receipt` true,
|
|
198
|
+
`activity_event: "job.planned"`, and provider call, credit debit, and media
|
|
199
|
+
write false. It may create a recoverable planned job/activity receipt, but no
|
|
200
|
+
provider execution, debit, downloadable asset, or media write. If the guide authenticated from
|
|
201
|
+
env or stdin, prefer
|
|
154
202
|
`data.auth_handoff.next_command.with_env` or
|
|
155
203
|
`data.auth_handoff.next_command.with_stdin` so auth follows the create.
|
|
156
204
|
|
|
@@ -181,7 +229,7 @@ same auth context.
|
|
|
181
229
|
Prefer package execution in fresh agent sandboxes:
|
|
182
230
|
|
|
183
231
|
```bash
|
|
184
|
-
npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench" --json
|
|
232
|
+
npm_config_update_notifier=false npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench" --json
|
|
185
233
|
```
|
|
186
234
|
|
|
187
235
|
Global install is optional, not the primary path. If `npm install -g image-skill`
|
|
@@ -192,7 +240,21 @@ package-manager paths instead of cloning private source:
|
|
|
192
240
|
export npm_config_cache="${npm_config_cache:-$PWD/.npm-cache}"
|
|
193
241
|
export npm_config_prefix="${npm_config_prefix:-$PWD/.npm-global}"
|
|
194
242
|
export PATH="$npm_config_prefix/bin:$PATH"
|
|
195
|
-
npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench" --json
|
|
243
|
+
npm_config_update_notifier=false npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench" --json
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
For `npx skills add ... -g -a codex` installs, the writable target is Codex
|
|
247
|
+
agent home rather than the npm prefix. If the Codex/global skill target is
|
|
248
|
+
read-only or cannot create its default directory, keep the tracked slug install
|
|
249
|
+
and point agent skill state at a writable workspace home. The skills.sh Codex
|
|
250
|
+
adapter writes to `$HOME/.agents`; `CODEX_HOME` keeps Codex profile state on the
|
|
251
|
+
same writable path:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
export HOME="$PWD/.agent-home"
|
|
255
|
+
export CODEX_HOME="$HOME/.codex"
|
|
256
|
+
mkdir -p "$HOME" "$CODEX_HOME"
|
|
257
|
+
npx skills add danielgwilson/image-skill-cli --skill image-skill -g -a codex -y
|
|
196
258
|
```
|
|
197
259
|
|
|
198
260
|
Hosted signup saves auth state to the public CLI config by default. If the
|
|
@@ -201,7 +263,7 @@ runtime needs a writable compatibility config path, set
|
|
|
201
263
|
|
|
202
264
|
```bash
|
|
203
265
|
export IMAGE_SKILL_CONFIG_PATH="$PWD/.image-skill/config.json"
|
|
204
|
-
npx -y image-skill@latest signup --agent \
|
|
266
|
+
npm_config_update_notifier=false npx -y image-skill@latest signup --agent \
|
|
205
267
|
--agent-contact agent-inbox@example.com \
|
|
206
268
|
--agent-name creative-agent \
|
|
207
269
|
--runtime codex \
|
|
@@ -212,19 +274,37 @@ Config write failures return `PUBLIC_CLI_CONFIG_WRITE_FAILED` with a structured
|
|
|
212
274
|
`error.recovery.suggested_command`. Agents should follow that recovery field,
|
|
213
275
|
then rerun `create --guide` for the requested creative flow.
|
|
214
276
|
When `create --guide` reaches `auth_required`, it probes the configured auth
|
|
215
|
-
path first. If local config cannot be written, `data.next_command`
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
277
|
+
path first. If local config cannot be written, `data.next_command` prefixes the
|
|
278
|
+
normal saved-config signup with
|
|
279
|
+
`IMAGE_SKILL_CONFIG_PATH="$PWD/.image-skill/config.json"`, so the first recovery
|
|
280
|
+
step still saves auth locally without exposing the one-time token.
|
|
281
|
+
`--show-token --no-save` and `data.auth_handoff.rerun_guide.with_stdin` remain
|
|
282
|
+
structured fallback paths for runtimes that intentionally use a separate secret
|
|
283
|
+
store.
|
|
219
284
|
|
|
220
285
|
### `image-skill whoami`
|
|
221
286
|
|
|
222
287
|
Shows current actor, organization, claim state, token class, and grants.
|
|
288
|
+
The JSON includes `session_origin` so a fresh agent can tell whether it is
|
|
289
|
+
unauthenticated, loaded a saved config, created the token in this process, or
|
|
290
|
+
is using hosted-session auth. `token_created_at` is the active token creation
|
|
291
|
+
timestamp when Image Skill can prove it, otherwise `null`.
|
|
223
292
|
|
|
224
293
|
```bash
|
|
225
294
|
image-skill whoami --json
|
|
226
295
|
```
|
|
227
296
|
|
|
297
|
+
Minimum success data:
|
|
298
|
+
|
|
299
|
+
```json
|
|
300
|
+
{
|
|
301
|
+
"authenticated": true,
|
|
302
|
+
"session_origin": "loaded_from_config",
|
|
303
|
+
"token_status": "active",
|
|
304
|
+
"token_created_at": "2026-05-08T12:00:00.000Z"
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
228
308
|
### `image-skill usage quota`
|
|
229
309
|
|
|
230
310
|
Canonical pre-spend check. Shows remaining credits, job limits, model limits,
|
|
@@ -337,8 +417,11 @@ Minimum success data:
|
|
|
337
417
|
{
|
|
338
418
|
"pack_id": "starter-500",
|
|
339
419
|
"name": "Starter",
|
|
420
|
+
"display_name": "Starter (500 credits)",
|
|
340
421
|
"credits": 500,
|
|
341
422
|
"amount_cents": 500,
|
|
423
|
+
"amount_usd": "5.00",
|
|
424
|
+
"price_usd": "5.00",
|
|
342
425
|
"currency": "USD"
|
|
343
426
|
}
|
|
344
427
|
],
|
|
@@ -369,14 +452,17 @@ model's provider cost and Image Skill's margin policy; inspect
|
|
|
369
452
|
debit before spending.
|
|
370
453
|
|
|
371
454
|
```bash
|
|
372
|
-
image-skill credits quote --credits 10 --payment-method
|
|
455
|
+
image-skill credits quote --credits 10 --payment-method stripe_x402.exact.usdc --json
|
|
373
456
|
```
|
|
374
457
|
|
|
375
|
-
|
|
458
|
+
Always pass the payment method from `credits methods --json`; the public CLI
|
|
459
|
+
does not infer one. For retry-stable automation, provide an explicit non-secret
|
|
460
|
+
idempotency key:
|
|
376
461
|
|
|
377
462
|
```bash
|
|
378
463
|
image-skill credits quote \
|
|
379
464
|
--credits 10 \
|
|
465
|
+
--payment-method stripe_x402.exact.usdc \
|
|
380
466
|
--idempotency-key quote-run-001 \
|
|
381
467
|
--json
|
|
382
468
|
```
|
|
@@ -407,8 +493,9 @@ image-skill credits quote \
|
|
|
407
493
|
--json
|
|
408
494
|
```
|
|
409
495
|
|
|
410
|
-
For exact custom
|
|
411
|
-
|
|
496
|
+
For exact custom terms, keep the same rail choice. Use
|
|
497
|
+
`stripe_x402.exact.usdc` for an agent-settleable browserless rail, or use
|
|
498
|
+
`stripe_checkout` only for a human Checkout fallback:
|
|
412
499
|
|
|
413
500
|
```bash
|
|
414
501
|
image-skill credits quote \
|
|
@@ -464,6 +551,10 @@ settlement and webhook fulfillment succeeds. Deposit challenge creation itself
|
|
|
464
551
|
must not mutate credit balances. Stay within the delegated cap and never pass
|
|
465
552
|
wallet private keys, seed phrases, x402 payment headers, deposit client
|
|
466
553
|
secrets, card data, Stripe secrets, or provider receipts to Image Skill.
|
|
554
|
+
When `create --guide` enters `quota_required` for this rail, it returns
|
|
555
|
+
`data.self_fund_handoff.wallet_settlement` with the buy/status response fields
|
|
556
|
+
to inspect: `data.stripe_x402.payable_instructions` after `credits buy`, or
|
|
557
|
+
`data.payment_attempt.stripe_x402.payable_instructions` after `credits status`.
|
|
467
558
|
|
|
468
559
|
```bash
|
|
469
560
|
image-skill credits buy \
|
|
@@ -594,18 +685,23 @@ curl -sS https://api.image-skill.com/v1/credit-purchases/stripe-x402-deposits \
|
|
|
594
685
|
|
|
595
686
|
### `image-skill credits status`
|
|
596
687
|
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
688
|
+
Without a payment reference, shows the current credit balance using the same
|
|
689
|
+
quota data as `image-skill usage quota --json`. With a payment reference,
|
|
690
|
+
shows the durable state of a quote, x402 deposit attempt, Stripe Checkout
|
|
691
|
+
attempt, Checkout Session, or receipt. Use the referenced form after
|
|
692
|
+
`credits buy` so agents do not have to infer payment state from quota deltas
|
|
693
|
+
or activity text.
|
|
600
694
|
|
|
601
695
|
```bash
|
|
696
|
+
image-skill credits status --json
|
|
602
697
|
image-skill credits status \
|
|
603
698
|
--payment-attempt-id payatt_... \
|
|
604
699
|
--json
|
|
605
700
|
```
|
|
606
701
|
|
|
607
|
-
|
|
608
|
-
`--payment-attempt-id`, `--checkout-session-id`, or `--receipt-id`.
|
|
702
|
+
At most one reference flag is allowed: `--quote-id`,
|
|
703
|
+
`--payment-attempt-id`, `--checkout-session-id`, or `--receipt-id`. Passing no
|
|
704
|
+
reference returns the balance/quota state.
|
|
609
705
|
|
|
610
706
|
Minimum action-required data:
|
|
611
707
|
|
|
@@ -666,16 +762,20 @@ capability-preserving schema for one model.
|
|
|
666
762
|
```bash
|
|
667
763
|
image-skill models --json
|
|
668
764
|
image-skill models list --json
|
|
765
|
+
image-skill models list --summary --json
|
|
669
766
|
image-skill models list --available --operation image.generate --json
|
|
670
767
|
image-skill models list --available --operation image.edit --json
|
|
768
|
+
image-skill models list --available --modality video --operation video.generate --json
|
|
671
769
|
image-skill models list --catalog-only --provider fal --json
|
|
672
770
|
image-skill models show MODEL_ID --json
|
|
771
|
+
image-skill models show default --json
|
|
673
772
|
```
|
|
674
773
|
|
|
675
774
|
Hosted API equivalents:
|
|
676
775
|
|
|
677
776
|
```bash
|
|
678
777
|
curl -sS https://api.image-skill.com/v1/models
|
|
778
|
+
curl -sS 'https://api.image-skill.com/v1/models?available=true&modality=video&operation=video.generate'
|
|
679
779
|
curl -sS https://api.image-skill.com/v1/models/xai.grok-imagine-image
|
|
680
780
|
```
|
|
681
781
|
|
|
@@ -686,17 +786,27 @@ seeds, masks, reference images, transparent backgrounds, arbitrary aspect
|
|
|
686
786
|
ratios, image-size presets, output counts, resolution controls, safety
|
|
687
787
|
controls, or provider-native options.
|
|
688
788
|
|
|
689
|
-
`models list` is executable-first by default and returns
|
|
690
|
-
|
|
789
|
+
`models list` is executable-first by default and returns one
|
|
790
|
+
`default: true` row when the default executable create model is included.
|
|
791
|
+
`models show default --json` resolves to that model so first-run agents can
|
|
792
|
+
inspect the recommended create surface without knowing a provider-specific
|
|
793
|
+
model id. The list response also returns `summary` with total, returned,
|
|
794
|
+
available, executable, catalog-only, provider split,
|
|
691
795
|
`execution_availability`, first actionable model ids, recommended filter
|
|
692
796
|
commands, and catalog-inclusion flags. Default list output excludes
|
|
693
797
|
catalog-only rows so fresh agents see executable candidates first. Use
|
|
694
|
-
`--
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
798
|
+
`--summary` when you need a compact, sortable model menu: each row keeps the
|
|
799
|
+
model id, flat `estimated_usd_per_image`, `credits_required`, lightweight
|
|
800
|
+
`task_tags`, status, provider, max output count/resolution, storage, and
|
|
801
|
+
`show_command`, while omitting full parameter schemas. Use `--available` for
|
|
802
|
+
currently usable executable rows, `--modality image|video|audio|3d` for media
|
|
803
|
+
type, `--operation image.generate`, `--operation image.edit`,
|
|
804
|
+
`--operation video.generate`, `--operation audio.generate`, or
|
|
805
|
+
`--operation 3d.generate` for the task, `--provider fal|xai|openai` to narrow by
|
|
806
|
+
provider, and `--catalog-only` when you intentionally want source-backed rows
|
|
807
|
+
that are inspectable but not runnable yet. Provider-level availability is not
|
|
808
|
+
the same thing as model executability; for runnable choices require both
|
|
809
|
+
`status:"available"` and
|
|
700
810
|
`execution.model_execution_status:"executable"`. If a reachable provider has no
|
|
701
811
|
runnable model for the requested operation, `summary.execution_availability`
|
|
702
812
|
says so directly and includes the fastest `--available --operation ...`
|
|
@@ -784,10 +894,23 @@ image-skill create --guide --prompt "A compact field camera on a stainless workb
|
|
|
784
894
|
```
|
|
785
895
|
|
|
786
896
|
`create --guide` returns `schema: image-skill.create-guide.v1`,
|
|
787
|
-
`stage`, `next_command`, `
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
897
|
+
`stage`, `next_command`, `guide_warning`, `auth_ready`, `no_spend_evaluation`,
|
|
898
|
+
`recommended_no_spend_command`,
|
|
899
|
+
`self_fund_next_command`, `self_fund_handoff`, `escape_hatches`, selected
|
|
900
|
+
executable model and cost, auth/quota/payment blockers, and mutation flags. All
|
|
901
|
+
mutation flags must be false in guide mode: no provider call, hosted create,
|
|
902
|
+
signup, payment object, credit debit, or media write.
|
|
903
|
+
For next-command safety, read `guide_warning.next_command_safety` before
|
|
904
|
+
acting: `hosted_signup_no_spend_setup` is no-spend auth setup,
|
|
905
|
+
`live_money_payment_action` is top-up/payment work, and
|
|
906
|
+
`live_media_create_credit_debit` is a live create that can call a provider,
|
|
907
|
+
debit credits, and write media.
|
|
908
|
+
For payment state, read
|
|
909
|
+
`checks.payments.preferred_method_summary.top_up_path` instead of inferring
|
|
910
|
+
from several arrays. It is `browserless_agent_self_fund` when the preferred
|
|
911
|
+
rail is live money, browserless, agent initiated, and agent settleable;
|
|
912
|
+
`human_payment_handoff` when a human/browser completion step is required; and
|
|
913
|
+
`payment_method_inspection` when the guide cannot classify a direct top-up path.
|
|
791
914
|
In guide cost output, `cost.estimated_usd_per_image` is the estimated Image
|
|
792
915
|
Skill debit in dollars for one output, matching
|
|
793
916
|
`cost.estimated_debit_usd_per_image` and
|
|
@@ -840,9 +963,12 @@ operation debits across all requested outputs. `--max-estimated-usd-per-image`
|
|
|
840
963
|
and raw API `max_estimated_usd_per_image` are per-image Image Skill debit
|
|
841
964
|
budget guards.
|
|
842
965
|
|
|
843
|
-
Generate video through the same `create` command and durable-media loop.
|
|
844
|
-
|
|
845
|
-
|
|
966
|
+
Generate video through the same `create` command and durable-media loop. For
|
|
967
|
+
video prompts, run `image-skill create --guide --prompt "..." --json`; the guide
|
|
968
|
+
can select the executable video model, suggest `--aspect-ratio 16:9`, and emit
|
|
969
|
+
the next create command. Plain `create` without a model still defaults to an
|
|
970
|
+
image model, so use the guide or pass the video model id directly. The response
|
|
971
|
+
returns a durable owned `video_...` mp4 asset URL, a `job_id`, and a
|
|
846
972
|
`cost.credit_pricing` receipt just like an image create.
|
|
847
973
|
|
|
848
974
|
```bash
|
|
@@ -853,10 +979,12 @@ image-skill create \
|
|
|
853
979
|
--json
|
|
854
980
|
```
|
|
855
981
|
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
982
|
+
Discover runnable video models with `image-skill models list --available
|
|
983
|
+
--modality video --operation video.generate --json`. Inspect parameters, output
|
|
984
|
+
media type, and cost first with `image-skill models show
|
|
985
|
+
fal.ltx-video-13b-distilled --json`. Video runs synchronously through the same
|
|
986
|
+
create call and can take longer than an image; the returned `assets[].url` is an
|
|
987
|
+
owned `video/mp4`.
|
|
860
988
|
|
|
861
989
|
Generate audio (music, sound) through the same `create` command and
|
|
862
990
|
durable-media loop. Request an audio model by id; the response returns a durable
|
|
@@ -958,17 +1086,23 @@ for concrete quality/size requests; GPT Image 2 edit still requires
|
|
|
958
1086
|
unknown-cost acceptance before execution, but records usage-priced provider cost
|
|
959
1087
|
after execution when OpenAI returns token usage. Provider-native controls remain
|
|
960
1088
|
visible for planning and fail closed until their capability schema marks them
|
|
961
|
-
executable. Hosted
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
1089
|
+
executable. Hosted `create --dry-run` validates `model_parameters` against the
|
|
1090
|
+
selected model, returns accepted keys/provenance and request-aware credit
|
|
1091
|
+
pricing for planning, and never executes provider controls or consumes credits.
|
|
1092
|
+
Hosted `edit --dry-run` validates the same owned input, mask/reference,
|
|
1093
|
+
prompt-policy, budget, and `model_parameters` checks as a live edit, then
|
|
1094
|
+
returns planned outputs without storage, provider, or billing side effects.
|
|
965
1095
|
For dry-run responses, `cost.credit_pricing.credits_required` is the planned
|
|
966
1096
|
live execution debit for the selected model. The actual debit for the dry run is
|
|
967
1097
|
`quota.consumed_credits: 0`.
|
|
968
|
-
Authenticated hosted
|
|
1098
|
+
Authenticated hosted dry-runs also create a recoverable planned job:
|
|
969
1099
|
`jobs show` returns `status: "planned"` with `plan_receipt`, and `activity`
|
|
970
1100
|
emits `job.planned`. Planned receipts do not create downloadable media assets or
|
|
971
|
-
usage debits.
|
|
1101
|
+
usage debits, media writes, or provider execution. In the first-run guide, this
|
|
1102
|
+
exact no-spend command behavior is exposed as
|
|
1103
|
+
`data.no_spend_next_command_effect` and
|
|
1104
|
+
`data.recommended_no_spend_command_effect`; the evaluator stop policy is exposed
|
|
1105
|
+
as `data.no_spend_evaluation`.
|
|
972
1106
|
|
|
973
1107
|
Minimum success data:
|
|
974
1108
|
|
|
@@ -1139,6 +1273,10 @@ If `--input` is a local path or external URL, the public CLI first normalizes it
|
|
|
1139
1273
|
through the same upload resolver as `image-skill upload`, then sends only the
|
|
1140
1274
|
resulting `asset_id` to `POST /v1/edit`. If `--input` is an Image Skill asset id
|
|
1141
1275
|
or owned asset URL, edit uses that owned asset directly.
|
|
1276
|
+
Add `--dry-run` to plan the edit after owned-asset, prompt-policy,
|
|
1277
|
+
`model_parameters`, and budget validation. Dry-run edit responses return planned
|
|
1278
|
+
assets and `quota.consumed_credits: 0`, store a recoverable `job.planned`
|
|
1279
|
+
receipt, and do not call the provider, debit credits, or write media.
|
|
1142
1280
|
For models with wired mask support, `--mask` follows the same upload/asset-id
|
|
1143
1281
|
resolver and sends only `mask_asset_id`; never pass provider-native `mask_url`
|
|
1144
1282
|
through `model_parameters`.
|
|
@@ -1207,6 +1345,10 @@ Direct `/v1/edit` callers use the same owned-asset contract:
|
|
|
1207
1345
|
}
|
|
1208
1346
|
```
|
|
1209
1347
|
|
|
1348
|
+
Set `dry_run: true` on `/v1/edit` to get the same no-spend plan the CLI returns.
|
|
1349
|
+
The server still validates ownership, prompt policy, references, masks,
|
|
1350
|
+
`model_parameters`, and budget guards before returning the planned job.
|
|
1351
|
+
|
|
1210
1352
|
Create a 3D asset from an image through the same `edit` command and
|
|
1211
1353
|
durable-media loop. Image-to-3D is promptless and image-conditioned, so it ships
|
|
1212
1354
|
as a variation transform: pass exactly one owned input image (no prompt) to a 3D
|
|
@@ -1346,11 +1488,39 @@ image-skill jobs show job_... --json
|
|
|
1346
1488
|
```
|
|
1347
1489
|
|
|
1348
1490
|
Output includes public job status, trace id, timestamps, capability id, cost
|
|
1349
|
-
summary, safety status, and Image Skill-owned asset metadata.
|
|
1350
|
-
|
|
1351
|
-
|
|
1491
|
+
summary, safety status, and Image Skill-owned asset metadata. For fresh-agent
|
|
1492
|
+
parsing, `status`, `state`, `assets`, and `cost` are mirrored at top level and
|
|
1493
|
+
match `job.status`, `job.assets`, and `job.cost`. Provider/model provenance is
|
|
1494
|
+
available only through explicit provenance/debug affordances for authorized
|
|
1495
|
+
actors. Default output does not include raw prompts, generated bytes, provider
|
|
1352
1496
|
credentials, DB/storage keys, bucket names, or local paths.
|
|
1353
1497
|
|
|
1498
|
+
Minimum success data:
|
|
1499
|
+
|
|
1500
|
+
```json
|
|
1501
|
+
{
|
|
1502
|
+
"request": {
|
|
1503
|
+
"job_id": "job_..."
|
|
1504
|
+
},
|
|
1505
|
+
"status": "completed",
|
|
1506
|
+
"state": "completed",
|
|
1507
|
+
"assets": [],
|
|
1508
|
+
"cost": {
|
|
1509
|
+
"estimated_usd": 0.05,
|
|
1510
|
+
"provider_reported_usd_ticks": null
|
|
1511
|
+
},
|
|
1512
|
+
"job": {
|
|
1513
|
+
"job_id": "job_...",
|
|
1514
|
+
"status": "completed",
|
|
1515
|
+
"assets": [],
|
|
1516
|
+
"cost": {
|
|
1517
|
+
"estimated_usd": 0.05,
|
|
1518
|
+
"provider_reported_usd_ticks": null
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
```
|
|
1523
|
+
|
|
1354
1524
|
### `image-skill jobs wait`
|
|
1355
1525
|
|
|
1356
1526
|
Waits for a hosted Image Skill job to reach a terminal status.
|
|
@@ -1360,7 +1530,9 @@ image-skill jobs wait job_... --timeout-ms 30000 --poll-interval-ms 1000 --json
|
|
|
1360
1530
|
```
|
|
1361
1531
|
|
|
1362
1532
|
Completed jobs return immediately. Non-terminal jobs poll until completion,
|
|
1363
|
-
failure, cancellation, or deterministic timeout.
|
|
1533
|
+
failure, cancellation, or deterministic timeout. Terminal success uses the same
|
|
1534
|
+
top-level `status`, `state`, `assets`, and `cost` mirrors as `jobs show`, with
|
|
1535
|
+
`request.timeout_ms` and `request.poll_interval_ms` added for provenance.
|
|
1364
1536
|
|
|
1365
1537
|
### `image-skill activity list`
|
|
1366
1538
|
|
|
@@ -1450,7 +1622,7 @@ below.
|
|
|
1450
1622
|
| Event type | Subject | Operation | Emitted when | Stable links |
|
|
1451
1623
|
| ------------------------------------------ | ---------- | ----------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
|
|
1452
1624
|
| `job.completed` | `job` | create/edit | A hosted create or edit job reaches a terminal state. | `job_id`, `asset_ids`, `usage_event_id` |
|
|
1453
|
-
| `job.planned` | `job` | create
|
|
1625
|
+
| `job.planned` | `job` | create/edit | An authenticated hosted dry-run stores a recoverable plan receipt. | `job_id` |
|
|
1454
1626
|
| `asset.created` | `asset` | create/edit | A hosted create or edit produces an output asset. | `job_id`, `asset_ids`, `usage_event_id` |
|
|
1455
1627
|
| `asset.uploaded` | `asset` | upload | A public edit workflow uploads or imports input media. | `job_id`, `asset_ids`, `usage_event_id` |
|
|
1456
1628
|
| `usage.credit_consumed` | `usage` | usage | A creative operation records a preview-credit entry. | `job_id`, `usage_event_id` |
|
|
@@ -1469,7 +1641,7 @@ machine-readable lifecycle fields such as `state`, `reason`, `issue_urls`,
|
|
|
1469
1641
|
`issue_numbers`, `mode`, and `github_mutation`. Agents should use it to learn
|
|
1470
1642
|
whether submitted feedback was promoted, skipped, deduped, blocked, or already
|
|
1471
1643
|
mirrored without reading private repository artifacts.
|
|
1472
|
-
`job.planned` includes `details.plan_receipt` for authenticated hosted
|
|
1644
|
+
`job.planned` includes `details.plan_receipt` for authenticated hosted
|
|
1473
1645
|
dry-runs. It is a recoverable planning receipt, not completed media work:
|
|
1474
1646
|
planned outputs do not have durable asset IDs, download URLs, usage debits, or
|
|
1475
1647
|
provider execution.
|
|
@@ -1502,7 +1674,12 @@ image-skill feedback create \
|
|
|
1502
1674
|
--json
|
|
1503
1675
|
```
|
|
1504
1676
|
|
|
1505
|
-
Hosted feedback
|
|
1677
|
+
Hosted feedback authenticates the same way as other hosted commands: saved
|
|
1678
|
+
public CLI config from default signup, `IMAGE_SKILL_TOKEN`, or
|
|
1679
|
+
`--token-stdin`. If guide/signup already saved config, run `feedback create`
|
|
1680
|
+
normally; no raw token copy step is required. If the runtime uses its own
|
|
1681
|
+
secret store, prefer `IMAGE_SKILL_TOKEN` or `--token-stdin`. Do not paste tokens
|
|
1682
|
+
into feedback title, body, evidence, issues, or logs. Feedback persists through
|
|
1506
1683
|
`https://api.image-skill.com/v1/feedback`. The hosted API fails closed if
|
|
1507
1684
|
durable hosted feedback storage is unavailable.
|
|
1508
1685
|
|
|
@@ -1518,8 +1695,8 @@ example, `BUDGET_REQUIRES_CONFIRMATION` returns
|
|
|
1518
1695
|
secret handoff.
|
|
1519
1696
|
`credits methods` and `credits packs list` do not require auth.
|
|
1520
1697
|
|
|
1521
|
-
Feedback should avoid raw prompts, provider keys, generated
|
|
1522
|
-
image bytes, and private user data.
|
|
1698
|
+
Feedback should avoid raw prompts, hosted tokens, provider keys, generated
|
|
1699
|
+
image bytes, source image bytes, and private user data.
|
|
1523
1700
|
|
|
1524
1701
|
Hosted API equivalent:
|
|
1525
1702
|
|