image-skill 0.1.28 → 0.1.30
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 +47 -0
- package/CONTRIBUTING.md +1 -1
- package/PROVENANCE.md +19 -16
- package/README.md +36 -10
- package/SECURITY.md +6 -3
- package/bin/image-skill.mjs +851 -54
- package/cli.md +235 -64
- package/llms.txt +18 -13
- package/package.json +1 -1
- package/skill.md +226 -565
- package/skills/ai-audio-generation/SKILL.md +16 -3
- package/skills/ai-image-generation/SKILL.md +16 -3
- package/skills/ai-video-generation/SKILL.md +16 -3
- package/skills/creative-media/SKILL.md +16 -3
- package/skills/image-edit/SKILL.md +16 -3
- package/skills/image-generation/SKILL.md +78 -0
- package/skills/image-skill/SKILL.md +226 -565
- package/skills/image-skill/references/cli.md +235 -64
- package/skills/image-skill/references/llms.txt +18 -13
- package/skills/image-to-3d/SKILL.md +16 -3
|
@@ -128,34 +128,76 @@ 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 primary
|
|
132
|
-
machine-readable `data.next_command_effect
|
|
133
|
-
|
|
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
|
|
134
|
+
mode does not create a signup, provider job, dry-run job, payment object,
|
|
135
|
+
credit debit, or asset.
|
|
134
136
|
|
|
135
137
|
```bash
|
|
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
|
+
`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.
|
|
152
174
|
- `ready_to_create`: `data.next_command` is a live media create. Its
|
|
153
175
|
`data.next_command_effect.label` is `live_media_create_credit_debit`, with
|
|
154
176
|
`provider_call`, `hosted_create`, `credit_debit`, and `media_write` all true.
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
`data.
|
|
158
|
-
|
|
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
|
|
159
201
|
env or stdin, prefer
|
|
160
202
|
`data.auth_handoff.next_command.with_env` or
|
|
161
203
|
`data.auth_handoff.next_command.with_stdin` so auth follows the create.
|
|
@@ -187,7 +229,7 @@ same auth context.
|
|
|
187
229
|
Prefer package execution in fresh agent sandboxes:
|
|
188
230
|
|
|
189
231
|
```bash
|
|
190
|
-
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
|
|
191
233
|
```
|
|
192
234
|
|
|
193
235
|
Global install is optional, not the primary path. If `npm install -g image-skill`
|
|
@@ -198,7 +240,21 @@ package-manager paths instead of cloning private source:
|
|
|
198
240
|
export npm_config_cache="${npm_config_cache:-$PWD/.npm-cache}"
|
|
199
241
|
export npm_config_prefix="${npm_config_prefix:-$PWD/.npm-global}"
|
|
200
242
|
export PATH="$npm_config_prefix/bin:$PATH"
|
|
201
|
-
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
|
|
202
258
|
```
|
|
203
259
|
|
|
204
260
|
Hosted signup saves auth state to the public CLI config by default. If the
|
|
@@ -207,7 +263,7 @@ runtime needs a writable compatibility config path, set
|
|
|
207
263
|
|
|
208
264
|
```bash
|
|
209
265
|
export IMAGE_SKILL_CONFIG_PATH="$PWD/.image-skill/config.json"
|
|
210
|
-
npx -y image-skill@latest signup --agent \
|
|
266
|
+
npm_config_update_notifier=false npx -y image-skill@latest signup --agent \
|
|
211
267
|
--agent-contact agent-inbox@example.com \
|
|
212
268
|
--agent-name creative-agent \
|
|
213
269
|
--runtime codex \
|
|
@@ -218,19 +274,37 @@ Config write failures return `PUBLIC_CLI_CONFIG_WRITE_FAILED` with a structured
|
|
|
218
274
|
`error.recovery.suggested_command`. Agents should follow that recovery field,
|
|
219
275
|
then rerun `create --guide` for the requested creative flow.
|
|
220
276
|
When `create --guide` reaches `auth_required`, it probes the configured auth
|
|
221
|
-
path first. If local config cannot be written, `data.next_command`
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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.
|
|
225
284
|
|
|
226
285
|
### `image-skill whoami`
|
|
227
286
|
|
|
228
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`.
|
|
229
292
|
|
|
230
293
|
```bash
|
|
231
294
|
image-skill whoami --json
|
|
232
295
|
```
|
|
233
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
|
+
|
|
234
308
|
### `image-skill usage quota`
|
|
235
309
|
|
|
236
310
|
Canonical pre-spend check. Shows remaining credits, job limits, model limits,
|
|
@@ -343,8 +417,11 @@ Minimum success data:
|
|
|
343
417
|
{
|
|
344
418
|
"pack_id": "starter-500",
|
|
345
419
|
"name": "Starter",
|
|
420
|
+
"display_name": "Starter (500 credits)",
|
|
346
421
|
"credits": 500,
|
|
347
422
|
"amount_cents": 500,
|
|
423
|
+
"amount_usd": "5.00",
|
|
424
|
+
"price_usd": "5.00",
|
|
348
425
|
"currency": "USD"
|
|
349
426
|
}
|
|
350
427
|
],
|
|
@@ -375,14 +452,17 @@ model's provider cost and Image Skill's margin policy; inspect
|
|
|
375
452
|
debit before spending.
|
|
376
453
|
|
|
377
454
|
```bash
|
|
378
|
-
image-skill credits quote --credits 10 --payment-method
|
|
455
|
+
image-skill credits quote --credits 10 --payment-method stripe_x402.exact.usdc --json
|
|
379
456
|
```
|
|
380
457
|
|
|
381
|
-
|
|
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:
|
|
382
461
|
|
|
383
462
|
```bash
|
|
384
463
|
image-skill credits quote \
|
|
385
464
|
--credits 10 \
|
|
465
|
+
--payment-method stripe_x402.exact.usdc \
|
|
386
466
|
--idempotency-key quote-run-001 \
|
|
387
467
|
--json
|
|
388
468
|
```
|
|
@@ -413,8 +493,9 @@ image-skill credits quote \
|
|
|
413
493
|
--json
|
|
414
494
|
```
|
|
415
495
|
|
|
416
|
-
For exact custom
|
|
417
|
-
|
|
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:
|
|
418
499
|
|
|
419
500
|
```bash
|
|
420
501
|
image-skill credits quote \
|
|
@@ -470,6 +551,10 @@ settlement and webhook fulfillment succeeds. Deposit challenge creation itself
|
|
|
470
551
|
must not mutate credit balances. Stay within the delegated cap and never pass
|
|
471
552
|
wallet private keys, seed phrases, x402 payment headers, deposit client
|
|
472
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`.
|
|
473
558
|
|
|
474
559
|
```bash
|
|
475
560
|
image-skill credits buy \
|
|
@@ -600,18 +685,23 @@ curl -sS https://api.image-skill.com/v1/credit-purchases/stripe-x402-deposits \
|
|
|
600
685
|
|
|
601
686
|
### `image-skill credits status`
|
|
602
687
|
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
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.
|
|
606
694
|
|
|
607
695
|
```bash
|
|
696
|
+
image-skill credits status --json
|
|
608
697
|
image-skill credits status \
|
|
609
698
|
--payment-attempt-id payatt_... \
|
|
610
699
|
--json
|
|
611
700
|
```
|
|
612
701
|
|
|
613
|
-
|
|
614
|
-
`--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.
|
|
615
705
|
|
|
616
706
|
Minimum action-required data:
|
|
617
707
|
|
|
@@ -672,16 +762,20 @@ capability-preserving schema for one model.
|
|
|
672
762
|
```bash
|
|
673
763
|
image-skill models --json
|
|
674
764
|
image-skill models list --json
|
|
765
|
+
image-skill models list --summary --json
|
|
675
766
|
image-skill models list --available --operation image.generate --json
|
|
676
767
|
image-skill models list --available --operation image.edit --json
|
|
768
|
+
image-skill models list --available --modality video --operation video.generate --json
|
|
677
769
|
image-skill models list --catalog-only --provider fal --json
|
|
678
770
|
image-skill models show MODEL_ID --json
|
|
771
|
+
image-skill models show default --json
|
|
679
772
|
```
|
|
680
773
|
|
|
681
774
|
Hosted API equivalents:
|
|
682
775
|
|
|
683
776
|
```bash
|
|
684
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'
|
|
685
779
|
curl -sS https://api.image-skill.com/v1/models/xai.grok-imagine-image
|
|
686
780
|
```
|
|
687
781
|
|
|
@@ -692,17 +786,27 @@ seeds, masks, reference images, transparent backgrounds, arbitrary aspect
|
|
|
692
786
|
ratios, image-size presets, output counts, resolution controls, safety
|
|
693
787
|
controls, or provider-native options.
|
|
694
788
|
|
|
695
|
-
`models list` is executable-first by default and returns
|
|
696
|
-
|
|
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,
|
|
697
795
|
`execution_availability`, first actionable model ids, recommended filter
|
|
698
796
|
commands, and catalog-inclusion flags. Default list output excludes
|
|
699
797
|
catalog-only rows so fresh agents see executable candidates first. Use
|
|
700
|
-
`--
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
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
|
|
706
810
|
`execution.model_execution_status:"executable"`. If a reachable provider has no
|
|
707
811
|
runnable model for the requested operation, `summary.execution_availability`
|
|
708
812
|
says so directly and includes the fastest `--available --operation ...`
|
|
@@ -790,10 +894,23 @@ image-skill create --guide --prompt "A compact field camera on a stainless workb
|
|
|
790
894
|
```
|
|
791
895
|
|
|
792
896
|
`create --guide` returns `schema: image-skill.create-guide.v1`,
|
|
793
|
-
`stage`, `next_command`, `
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
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.
|
|
797
914
|
In guide cost output, `cost.estimated_usd_per_image` is the estimated Image
|
|
798
915
|
Skill debit in dollars for one output, matching
|
|
799
916
|
`cost.estimated_debit_usd_per_image` and
|
|
@@ -846,9 +963,12 @@ operation debits across all requested outputs. `--max-estimated-usd-per-image`
|
|
|
846
963
|
and raw API `max_estimated_usd_per_image` are per-image Image Skill debit
|
|
847
964
|
budget guards.
|
|
848
965
|
|
|
849
|
-
Generate video through the same `create` command and durable-media loop.
|
|
850
|
-
|
|
851
|
-
|
|
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
|
|
852
972
|
`cost.credit_pricing` receipt just like an image create.
|
|
853
973
|
|
|
854
974
|
```bash
|
|
@@ -859,10 +979,12 @@ image-skill create \
|
|
|
859
979
|
--json
|
|
860
980
|
```
|
|
861
981
|
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
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`.
|
|
866
988
|
|
|
867
989
|
Generate audio (music, sound) through the same `create` command and
|
|
868
990
|
durable-media loop. Request an audio model by id; the response returns a durable
|
|
@@ -964,17 +1086,23 @@ for concrete quality/size requests; GPT Image 2 edit still requires
|
|
|
964
1086
|
unknown-cost acceptance before execution, but records usage-priced provider cost
|
|
965
1087
|
after execution when OpenAI returns token usage. Provider-native controls remain
|
|
966
1088
|
visible for planning and fail closed until their capability schema marks them
|
|
967
|
-
executable. Hosted
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
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.
|
|
971
1095
|
For dry-run responses, `cost.credit_pricing.credits_required` is the planned
|
|
972
1096
|
live execution debit for the selected model. The actual debit for the dry run is
|
|
973
1097
|
`quota.consumed_credits: 0`.
|
|
974
|
-
Authenticated hosted
|
|
1098
|
+
Authenticated hosted dry-runs also create a recoverable planned job:
|
|
975
1099
|
`jobs show` returns `status: "planned"` with `plan_receipt`, and `activity`
|
|
976
1100
|
emits `job.planned`. Planned receipts do not create downloadable media assets or
|
|
977
|
-
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`.
|
|
978
1106
|
|
|
979
1107
|
Minimum success data:
|
|
980
1108
|
|
|
@@ -1145,6 +1273,10 @@ If `--input` is a local path or external URL, the public CLI first normalizes it
|
|
|
1145
1273
|
through the same upload resolver as `image-skill upload`, then sends only the
|
|
1146
1274
|
resulting `asset_id` to `POST /v1/edit`. If `--input` is an Image Skill asset id
|
|
1147
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.
|
|
1148
1280
|
For models with wired mask support, `--mask` follows the same upload/asset-id
|
|
1149
1281
|
resolver and sends only `mask_asset_id`; never pass provider-native `mask_url`
|
|
1150
1282
|
through `model_parameters`.
|
|
@@ -1213,6 +1345,10 @@ Direct `/v1/edit` callers use the same owned-asset contract:
|
|
|
1213
1345
|
}
|
|
1214
1346
|
```
|
|
1215
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
|
+
|
|
1216
1352
|
Create a 3D asset from an image through the same `edit` command and
|
|
1217
1353
|
durable-media loop. Image-to-3D is promptless and image-conditioned, so it ships
|
|
1218
1354
|
as a variation transform: pass exactly one owned input image (no prompt) to a 3D
|
|
@@ -1352,11 +1488,39 @@ image-skill jobs show job_... --json
|
|
|
1352
1488
|
```
|
|
1353
1489
|
|
|
1354
1490
|
Output includes public job status, trace id, timestamps, capability id, cost
|
|
1355
|
-
summary, safety status, and Image Skill-owned asset metadata.
|
|
1356
|
-
|
|
1357
|
-
|
|
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
|
|
1358
1496
|
credentials, DB/storage keys, bucket names, or local paths.
|
|
1359
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
|
+
|
|
1360
1524
|
### `image-skill jobs wait`
|
|
1361
1525
|
|
|
1362
1526
|
Waits for a hosted Image Skill job to reach a terminal status.
|
|
@@ -1366,7 +1530,9 @@ image-skill jobs wait job_... --timeout-ms 30000 --poll-interval-ms 1000 --json
|
|
|
1366
1530
|
```
|
|
1367
1531
|
|
|
1368
1532
|
Completed jobs return immediately. Non-terminal jobs poll until completion,
|
|
1369
|
-
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.
|
|
1370
1536
|
|
|
1371
1537
|
### `image-skill activity list`
|
|
1372
1538
|
|
|
@@ -1456,7 +1622,7 @@ below.
|
|
|
1456
1622
|
| Event type | Subject | Operation | Emitted when | Stable links |
|
|
1457
1623
|
| ------------------------------------------ | ---------- | ----------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
|
|
1458
1624
|
| `job.completed` | `job` | create/edit | A hosted create or edit job reaches a terminal state. | `job_id`, `asset_ids`, `usage_event_id` |
|
|
1459
|
-
| `job.planned` | `job` | create
|
|
1625
|
+
| `job.planned` | `job` | create/edit | An authenticated hosted dry-run stores a recoverable plan receipt. | `job_id` |
|
|
1460
1626
|
| `asset.created` | `asset` | create/edit | A hosted create or edit produces an output asset. | `job_id`, `asset_ids`, `usage_event_id` |
|
|
1461
1627
|
| `asset.uploaded` | `asset` | upload | A public edit workflow uploads or imports input media. | `job_id`, `asset_ids`, `usage_event_id` |
|
|
1462
1628
|
| `usage.credit_consumed` | `usage` | usage | A creative operation records a preview-credit entry. | `job_id`, `usage_event_id` |
|
|
@@ -1475,7 +1641,7 @@ machine-readable lifecycle fields such as `state`, `reason`, `issue_urls`,
|
|
|
1475
1641
|
`issue_numbers`, `mode`, and `github_mutation`. Agents should use it to learn
|
|
1476
1642
|
whether submitted feedback was promoted, skipped, deduped, blocked, or already
|
|
1477
1643
|
mirrored without reading private repository artifacts.
|
|
1478
|
-
`job.planned` includes `details.plan_receipt` for authenticated hosted
|
|
1644
|
+
`job.planned` includes `details.plan_receipt` for authenticated hosted
|
|
1479
1645
|
dry-runs. It is a recoverable planning receipt, not completed media work:
|
|
1480
1646
|
planned outputs do not have durable asset IDs, download URLs, usage debits, or
|
|
1481
1647
|
provider execution.
|
|
@@ -1508,7 +1674,12 @@ image-skill feedback create \
|
|
|
1508
1674
|
--json
|
|
1509
1675
|
```
|
|
1510
1676
|
|
|
1511
|
-
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
|
|
1512
1683
|
`https://api.image-skill.com/v1/feedback`. The hosted API fails closed if
|
|
1513
1684
|
durable hosted feedback storage is unavailable.
|
|
1514
1685
|
|
|
@@ -1524,8 +1695,8 @@ example, `BUDGET_REQUIRES_CONFIRMATION` returns
|
|
|
1524
1695
|
secret handoff.
|
|
1525
1696
|
`credits methods` and `credits packs list` do not require auth.
|
|
1526
1697
|
|
|
1527
|
-
Feedback should avoid raw prompts, provider keys, generated
|
|
1528
|
-
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.
|
|
1529
1700
|
|
|
1530
1701
|
Hosted API equivalent:
|
|
1531
1702
|
|