image-skill 0.1.8 → 0.1.9
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 +10 -0
- package/bin/image-skill.mjs +2 -23
- package/cli.md +12 -16
- package/llms.txt +3 -3
- package/package.json +1 -1
- package/skill.md +6 -7
- package/skills/image-skill/SKILL.md +6 -7
- package/skills/image-skill/references/cli.md +12 -16
- package/skills/image-skill/references/llms.txt +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,16 @@ This changelog tracks the public `image-skill` CLI package and public skill
|
|
|
4
4
|
mirror. The npm package metadata remains the authority for tarball integrity and
|
|
5
5
|
provenance; this file is the human- and agent-readable release map.
|
|
6
6
|
|
|
7
|
+
## 0.1.9 - 2026-05-22
|
|
8
|
+
|
|
9
|
+
- Emergency Stripe Checkout payment-link hotfix.
|
|
10
|
+
- Restored full Stripe Checkout URL preservation, including the `#...`
|
|
11
|
+
fragment required by Stripe's browser checkout app.
|
|
12
|
+
- Kept `checkout_handoff_url` as the preferred short human payment link, but
|
|
13
|
+
made stale-server fallback safe by no longer fragment-stripping
|
|
14
|
+
`checkout_url`, `checkout_compact_url`, or `next.fallback_checkout_url`.
|
|
15
|
+
- Do not use `image-skill@0.1.8` for live Stripe payments.
|
|
16
|
+
|
|
7
17
|
## 0.1.8 - 2026-05-22
|
|
8
18
|
|
|
9
19
|
- Hardened Stripe Checkout handoff responses for mobile terminals and chat.
|
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.9";
|
|
11
11
|
const DEFAULT_API_BASE_URL = "https://api.image-skill.com";
|
|
12
12
|
const PROMPTLESS_EDIT_MODEL_IDS = new Set([
|
|
13
13
|
"fal.flux-dev-redux",
|
|
@@ -1604,20 +1604,6 @@ function addCheckoutCompactUrl(record) {
|
|
|
1604
1604
|
record.checkout_compact_url = compact;
|
|
1605
1605
|
changed = true;
|
|
1606
1606
|
}
|
|
1607
|
-
if (
|
|
1608
|
-
typeof record.checkout_url === "string" &&
|
|
1609
|
-
record.checkout_url !== compact
|
|
1610
|
-
) {
|
|
1611
|
-
record.checkout_url = compact;
|
|
1612
|
-
changed = true;
|
|
1613
|
-
}
|
|
1614
|
-
if (
|
|
1615
|
-
typeof record.fallback_checkout_url === "string" &&
|
|
1616
|
-
record.fallback_checkout_url !== compact
|
|
1617
|
-
) {
|
|
1618
|
-
record.fallback_checkout_url = compact;
|
|
1619
|
-
changed = true;
|
|
1620
|
-
}
|
|
1621
1607
|
return changed;
|
|
1622
1608
|
}
|
|
1623
1609
|
|
|
@@ -1626,14 +1612,7 @@ function stripeCheckoutCompactUrl(checkoutUrl) {
|
|
|
1626
1612
|
if (trimmed.length === 0) {
|
|
1627
1613
|
return checkoutUrl;
|
|
1628
1614
|
}
|
|
1629
|
-
|
|
1630
|
-
const parsed = new URL(trimmed);
|
|
1631
|
-
parsed.hash = "";
|
|
1632
|
-
return parsed.toString();
|
|
1633
|
-
} catch {
|
|
1634
|
-
const hashIndex = trimmed.indexOf("#");
|
|
1635
|
-
return hashIndex === -1 ? trimmed : trimmed.slice(0, hashIndex);
|
|
1636
|
-
}
|
|
1615
|
+
return trimmed;
|
|
1637
1616
|
}
|
|
1638
1617
|
|
|
1639
1618
|
function isRecord(value) {
|
package/cli.md
CHANGED
|
@@ -338,14 +338,10 @@ fulfillment succeeds. Session creation itself must not mutate credit balances.
|
|
|
338
338
|
Agents should present or open `checkout_handoff_url` for humans. It is a short
|
|
339
339
|
Image Skill URL that redirects to Stripe Checkout and is safe to copy from
|
|
340
340
|
mobile terminals, SSH clients, and wrapped chat output. `checkout_url` remains
|
|
341
|
-
the Stripe compatibility fallback
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
If a stale server or older client exposes a raw Stripe URL with a long `#...`
|
|
346
|
-
fragment, remove the fragment and use `checkout_compact_url` for human
|
|
347
|
-
copy/paste. Present any fallback Stripe URL in a fenced code block so terminal
|
|
348
|
-
wrapping does not corrupt it.
|
|
341
|
+
the Stripe compatibility fallback when `checkout_handoff_url` is absent. Do not
|
|
342
|
+
trim Stripe Checkout URLs: the long `#...` fragment is required by Stripe
|
|
343
|
+
Checkout in the browser. Present any fallback Stripe URL in a fenced code block
|
|
344
|
+
so terminal wrapping does not corrupt it.
|
|
349
345
|
|
|
350
346
|
```bash
|
|
351
347
|
image-skill credits buy \
|
|
@@ -366,8 +362,8 @@ Minimum success data:
|
|
|
366
362
|
"accepted_payment_method": "stripe_checkout",
|
|
367
363
|
"checkout_session_id": "cs_...",
|
|
368
364
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
369
|
-
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
370
|
-
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
365
|
+
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
366
|
+
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
371
367
|
"credits": 500,
|
|
372
368
|
"amount_cents": 500,
|
|
373
369
|
"currency": "USD",
|
|
@@ -375,9 +371,9 @@ Minimum success data:
|
|
|
375
371
|
"next": {
|
|
376
372
|
"human_action": "open_checkout_url",
|
|
377
373
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
378
|
-
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
379
|
-
"fallback_checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
380
|
-
"after_payment": "open checkout_handoff_url, or
|
|
374
|
+
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
375
|
+
"fallback_checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
376
|
+
"after_payment": "open checkout_handoff_url, or the full checkout_url if only a Stripe URL is available, then poll image-skill credits status --payment-attempt-id PAYMENT_ATTEMPT_ID --json or image-skill usage quota --json; credits are granted only after verified webhook fulfillment"
|
|
381
377
|
}
|
|
382
378
|
}
|
|
383
379
|
```
|
|
@@ -422,8 +418,8 @@ Minimum action-required data:
|
|
|
422
418
|
"payment_attempt_id": "payatt_...",
|
|
423
419
|
"checkout_session_id": "cs_...",
|
|
424
420
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
425
|
-
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
426
|
-
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
421
|
+
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
422
|
+
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
427
423
|
"attempt_status": "requires_action"
|
|
428
424
|
},
|
|
429
425
|
"receipt": null,
|
|
@@ -432,7 +428,7 @@ Minimum action-required data:
|
|
|
432
428
|
"retry_after_seconds": 10,
|
|
433
429
|
"human_action": "open_checkout_url",
|
|
434
430
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
435
|
-
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_..."
|
|
431
|
+
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...#fid..."
|
|
436
432
|
}
|
|
437
433
|
}
|
|
438
434
|
```
|
package/llms.txt
CHANGED
|
@@ -69,7 +69,7 @@ First-run flow:
|
|
|
69
69
|
6a. image-skill credits methods --json to inspect payment rails, availability, buyer modes, browser requirements, and recovery commands before quoting or buying.
|
|
70
70
|
6b. image-skill credits packs list --json to inspect recommended live-money packs.
|
|
71
71
|
6c. image-skill credits quote --pack starter-500 --payment-method stripe_checkout --idempotency-key KEY --json for the default Stripe Checkout top-up path. Use --credits CREDITS instead of --pack only when the required exact budget is already known.
|
|
72
|
-
6d. image-skill credits buy --provider stripe --quote-id QUOTE_ID --idempotency-key KEY --json when the agent has a stripe_checkout quote and needs a payment handoff. Present or open checkout_handoff_url for humans. If no handoff URL is available, present
|
|
72
|
+
6d. image-skill credits buy --provider stripe --quote-id QUOTE_ID --idempotency-key KEY --json when the agent has a stripe_checkout quote and needs a payment handoff. Present or open checkout_handoff_url for humans. If no handoff URL is available, present the full checkout_url in a code block. Do not remove the Stripe # fragment; Checkout needs it in the browser. Credits are granted only after verified Stripe webhook fulfillment succeeds.
|
|
73
73
|
6e. image-skill credits status --payment-attempt-id PAYMENT_ATTEMPT_ID --json after buy or checkout completion to read durable payment state, receipt, credit_event, limits, and retry guidance without inferring from quota text.
|
|
74
74
|
6f. image-skill credits quote --credits 10 --json and image-skill credits fake-purchase --quote-id QUOTE_ID --idempotency-key KEY --json only for fake/test credit-ledger proof. This moves no live money, accepts no payment credential, and returns live_money:false.
|
|
75
75
|
7. image-skill create --dry-run --prompt PROMPT --json for zero-cost planning.
|
|
@@ -122,7 +122,7 @@ Hosted API endpoints:
|
|
|
122
122
|
- GET https://api.image-skill.com/v1/payment-methods returns the no-auth payment rail catalog. It tells agents which rails are available, whether live money can move, buyer modes (agent_only, hybrid, human_only), browser requirements, limits, endpoint paths, and recovery commands.
|
|
123
123
|
- GET https://api.image-skill.com/v1/credit-packs returns the public pack catalog. Recommended live-money packs include starter-500, builder-2000, and studio-5000. Packs are the default Stripe Checkout UX; exact quotes remain supported for agents that already know the required credit budget.
|
|
124
124
|
- POST https://api.image-skill.com/v1/credit-quotes returns a fake/test or stripe_checkout credit quote for Authorization: Bearer TOKEN. Request JSON: either credits or pack_id, optional payment_method, idempotency_key. Response includes quote_id, credits, price_amount_cents, currency, accepted_payment_method, pack_id, pack, and live_money. One credit equals $0.01, so price_amount_cents equals credits. This does not grant credits.
|
|
125
|
-
- POST https://api.image-skill.com/v1/credit-purchases/stripe-checkout-sessions creates a Stripe Checkout Session for a stripe_checkout quote. Request JSON: quote_id, idempotency_key. Response includes state: action_required, payment_attempt_id, checkout_session_id, checkout_handoff_url, checkout_compact_url, checkout_url, accepted_payment_method: stripe_checkout, and next.human_action: open_checkout_url. Present checkout_handoff_url to humans because it is short and redirects to Stripe. If no handoff URL is available, present
|
|
125
|
+
- POST https://api.image-skill.com/v1/credit-purchases/stripe-checkout-sessions creates a Stripe Checkout Session for a stripe_checkout quote. Request JSON: quote_id, idempotency_key. Response includes state: action_required, payment_attempt_id, checkout_session_id, checkout_handoff_url, checkout_compact_url, checkout_url, accepted_payment_method: stripe_checkout, and next.human_action: open_checkout_url. Present checkout_handoff_url to humans because it is short and redirects to Stripe. If no handoff URL is available, present the full checkout_url in a code block. Do not remove the Stripe # fragment; Checkout needs it in the browser. This does not grant credits; verified Stripe webhook fulfillment grants paid credits exactly once.
|
|
126
126
|
- GET https://api.image-skill.com/v1/credit-purchases/status returns durable payment state for Authorization: Bearer TOKEN. Query with exactly one of quote_id, payment_attempt_id, checkout_session_id, or receipt_id. Response includes state, quote, payment_attempt, receipt, credit_event, provider_event, limits, and next.
|
|
127
127
|
- POST https://api.image-skill.com/v1/credit-purchases confirms a fake/test quote for Authorization: Bearer TOKEN. Request JSON: quote_id, idempotency_key. Response includes receipt_id, credit_event_id, credits_granted, accepted_payment_method: fake, balance_after, and live_money:false. This grants bounded payment-backed credits without moving live money.
|
|
128
128
|
- GET https://api.image-skill.com/v1/models returns the public model registry. GET https://api.image-skill.com/v1/models/MODEL_ID returns one model's capability-preserving schema.
|
|
@@ -199,7 +199,7 @@ Unclaimed agents may not:
|
|
|
199
199
|
- send card data, wallet secrets, provider receipts, Stripe secrets, MPP tokens, SPTs, or any payment credential to Image Skill; Stripe payment details must be entered only on Stripe-hosted checkout pages
|
|
200
200
|
|
|
201
201
|
Credits:
|
|
202
|
-
One Image Skill credit is $0.01. Use image-skill credits methods --json to inspect payment rail availability and whether a browser/human action is required. Use image-skill credits packs list --json to inspect recommended Stripe Checkout packs. Use image-skill credits quote --pack PACK_ID --payment-method stripe_checkout --json for the default live-money top-up path. Use image-skill credits quote --credits CREDITS --json for exact bounded custom top-ups when the required budget is already known. The default payment_method is fake. Use image-skill credits buy --provider stripe --json to create a hosted Stripe Checkout Session for a stripe_checkout quote; this returns checkout_handoff_url, checkout_compact_url, and
|
|
202
|
+
One Image Skill credit is $0.01. Use image-skill credits methods --json to inspect payment rail availability and whether a browser/human action is required. Use image-skill credits packs list --json to inspect recommended Stripe Checkout packs. Use image-skill credits quote --pack PACK_ID --payment-method stripe_checkout --json for the default live-money top-up path. Use image-skill credits quote --credits CREDITS --json for exact bounded custom top-ups when the required budget is already known. The default payment_method is fake. Use image-skill credits buy --provider stripe --json to create a hosted Stripe Checkout Session for a stripe_checkout quote; this returns checkout_handoff_url, checkout_compact_url, and full checkout_url and does not grant credits. Present checkout_handoff_url to humans, especially in mobile terminals, SSH, or chat. If checkout_handoff_url is absent, present the full checkout_url in a code block and preserve the Stripe # fragment. Use image-skill credits status --payment-attempt-id PAYMENT_ATTEMPT_ID --json after buy and after checkout completion to read state, receipt, credit_event, limits, and retry guidance. Use image-skill credits fake-purchase --json only to exercise the quote, receipt, credit-ledger, and activity-audit contract before live settlement rails are enabled. Create/edit debit model-priced credits after provider success; inspect models show and operation cost.credit_pricing for credits_required and pricing_confidence. Do not silently downgrade to the cheapest model to avoid payment when the user asked for quality or is willing to pay; quote the needed credits and use the payment handoff. Credits buy and fake-purchase require explicit --idempotency-key. Quote idempotency keys are scoped to the hosted agent identity and exact quote terms; use per-run/per-step quote keys and inspect error.recovery.suggested_command on CREDIT_QUOTE_CONFLICT. Never send payment credentials to Image Skill; Stripe collects payment details on Stripe-hosted pages. Public request fields are credits, pack_id, payment_method, quote_id, status reference IDs, and idempotency_key.
|
|
203
203
|
|
|
204
204
|
Telemetry:
|
|
205
205
|
- command or endpoint name
|
package/package.json
CHANGED
package/skill.md
CHANGED
|
@@ -228,12 +228,11 @@ delegated-card adapters. Packs are the default Stripe Checkout UX; exact
|
|
|
228
228
|
budget. `credits methods --json` tells agents which rails are currently
|
|
229
229
|
available, which buyer modes they support, and whether browser/human action is
|
|
230
230
|
required before an agent tries to quote or buy. `credits buy --provider stripe`
|
|
231
|
-
returns `checkout_handoff_url` for humans
|
|
232
|
-
handoff fallback, and a fragment-stripped Stripe `checkout_url` fallback for a
|
|
231
|
+
returns `checkout_handoff_url` for humans and full Stripe `checkout_url`/`checkout_compact_url` fallback fields for a
|
|
233
232
|
`stripe_checkout` quote and does not grant credits until verified webhook
|
|
234
233
|
fulfillment succeeds. Present or open `checkout_handoff_url` first. If it is
|
|
235
|
-
absent, present `
|
|
236
|
-
|
|
234
|
+
absent, present the full `checkout_url` in a code block; do not remove the
|
|
235
|
+
Stripe `#...` fragment because Checkout needs it in the browser. `credits fake-purchase`
|
|
237
236
|
returns `live_money:false`, moves no live money, accepts no payment credential,
|
|
238
237
|
and exists so agents can exercise the quote, receipt, credit-ledger, and
|
|
239
238
|
activity-audit contract safely.
|
|
@@ -538,9 +537,9 @@ closed if durable hosted feedback storage is unavailable.
|
|
|
538
537
|
top-ups when the required budget is already known.
|
|
539
538
|
- Use `credits buy --provider stripe --json` only to create a Stripe-hosted
|
|
540
539
|
checkout action. Present `checkout_handoff_url` to humans; if it is absent,
|
|
541
|
-
present `
|
|
542
|
-
fragment
|
|
543
|
-
not grant credits.
|
|
540
|
+
present the full `checkout_url` in a code block. Do not remove the
|
|
541
|
+
Stripe `#...` fragment; Checkout needs it in the browser. Session creation
|
|
542
|
+
itself does not grant credits.
|
|
544
543
|
- Use `credits fake-purchase --json` only for preview credit-ledger proof; it
|
|
545
544
|
is not live settlement and must not receive payment credentials.
|
|
546
545
|
- Treat credits as prepaid cents of Image Skill value. Operation debits are
|
|
@@ -228,12 +228,11 @@ delegated-card adapters. Packs are the default Stripe Checkout UX; exact
|
|
|
228
228
|
budget. `credits methods --json` tells agents which rails are currently
|
|
229
229
|
available, which buyer modes they support, and whether browser/human action is
|
|
230
230
|
required before an agent tries to quote or buy. `credits buy --provider stripe`
|
|
231
|
-
returns `checkout_handoff_url` for humans
|
|
232
|
-
handoff fallback, and a fragment-stripped Stripe `checkout_url` fallback for a
|
|
231
|
+
returns `checkout_handoff_url` for humans and full Stripe `checkout_url`/`checkout_compact_url` fallback fields for a
|
|
233
232
|
`stripe_checkout` quote and does not grant credits until verified webhook
|
|
234
233
|
fulfillment succeeds. Present or open `checkout_handoff_url` first. If it is
|
|
235
|
-
absent, present `
|
|
236
|
-
|
|
234
|
+
absent, present the full `checkout_url` in a code block; do not remove the
|
|
235
|
+
Stripe `#...` fragment because Checkout needs it in the browser. `credits fake-purchase`
|
|
237
236
|
returns `live_money:false`, moves no live money, accepts no payment credential,
|
|
238
237
|
and exists so agents can exercise the quote, receipt, credit-ledger, and
|
|
239
238
|
activity-audit contract safely.
|
|
@@ -538,9 +537,9 @@ closed if durable hosted feedback storage is unavailable.
|
|
|
538
537
|
top-ups when the required budget is already known.
|
|
539
538
|
- Use `credits buy --provider stripe --json` only to create a Stripe-hosted
|
|
540
539
|
checkout action. Present `checkout_handoff_url` to humans; if it is absent,
|
|
541
|
-
present `
|
|
542
|
-
fragment
|
|
543
|
-
not grant credits.
|
|
540
|
+
present the full `checkout_url` in a code block. Do not remove the
|
|
541
|
+
Stripe `#...` fragment; Checkout needs it in the browser. Session creation
|
|
542
|
+
itself does not grant credits.
|
|
544
543
|
- Use `credits fake-purchase --json` only for preview credit-ledger proof; it
|
|
545
544
|
is not live settlement and must not receive payment credentials.
|
|
546
545
|
- Treat credits as prepaid cents of Image Skill value. Operation debits are
|
|
@@ -338,14 +338,10 @@ fulfillment succeeds. Session creation itself must not mutate credit balances.
|
|
|
338
338
|
Agents should present or open `checkout_handoff_url` for humans. It is a short
|
|
339
339
|
Image Skill URL that redirects to Stripe Checkout and is safe to copy from
|
|
340
340
|
mobile terminals, SSH clients, and wrapped chat output. `checkout_url` remains
|
|
341
|
-
the Stripe compatibility fallback
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
If a stale server or older client exposes a raw Stripe URL with a long `#...`
|
|
346
|
-
fragment, remove the fragment and use `checkout_compact_url` for human
|
|
347
|
-
copy/paste. Present any fallback Stripe URL in a fenced code block so terminal
|
|
348
|
-
wrapping does not corrupt it.
|
|
341
|
+
the Stripe compatibility fallback when `checkout_handoff_url` is absent. Do not
|
|
342
|
+
trim Stripe Checkout URLs: the long `#...` fragment is required by Stripe
|
|
343
|
+
Checkout in the browser. Present any fallback Stripe URL in a fenced code block
|
|
344
|
+
so terminal wrapping does not corrupt it.
|
|
349
345
|
|
|
350
346
|
```bash
|
|
351
347
|
image-skill credits buy \
|
|
@@ -366,8 +362,8 @@ Minimum success data:
|
|
|
366
362
|
"accepted_payment_method": "stripe_checkout",
|
|
367
363
|
"checkout_session_id": "cs_...",
|
|
368
364
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
369
|
-
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
370
|
-
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
365
|
+
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
366
|
+
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
371
367
|
"credits": 500,
|
|
372
368
|
"amount_cents": 500,
|
|
373
369
|
"currency": "USD",
|
|
@@ -375,9 +371,9 @@ Minimum success data:
|
|
|
375
371
|
"next": {
|
|
376
372
|
"human_action": "open_checkout_url",
|
|
377
373
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
378
|
-
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
379
|
-
"fallback_checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
380
|
-
"after_payment": "open checkout_handoff_url, or
|
|
374
|
+
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
375
|
+
"fallback_checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
376
|
+
"after_payment": "open checkout_handoff_url, or the full checkout_url if only a Stripe URL is available, then poll image-skill credits status --payment-attempt-id PAYMENT_ATTEMPT_ID --json or image-skill usage quota --json; credits are granted only after verified webhook fulfillment"
|
|
381
377
|
}
|
|
382
378
|
}
|
|
383
379
|
```
|
|
@@ -422,8 +418,8 @@ Minimum action-required data:
|
|
|
422
418
|
"payment_attempt_id": "payatt_...",
|
|
423
419
|
"checkout_session_id": "cs_...",
|
|
424
420
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
425
|
-
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
426
|
-
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
421
|
+
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
422
|
+
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
427
423
|
"attempt_status": "requires_action"
|
|
428
424
|
},
|
|
429
425
|
"receipt": null,
|
|
@@ -432,7 +428,7 @@ Minimum action-required data:
|
|
|
432
428
|
"retry_after_seconds": 10,
|
|
433
429
|
"human_action": "open_checkout_url",
|
|
434
430
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
435
|
-
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_..."
|
|
431
|
+
"checkout_compact_url": "https://checkout.stripe.com/c/pay/cs_...#fid..."
|
|
436
432
|
}
|
|
437
433
|
}
|
|
438
434
|
```
|
|
@@ -69,7 +69,7 @@ First-run flow:
|
|
|
69
69
|
6a. image-skill credits methods --json to inspect payment rails, availability, buyer modes, browser requirements, and recovery commands before quoting or buying.
|
|
70
70
|
6b. image-skill credits packs list --json to inspect recommended live-money packs.
|
|
71
71
|
6c. image-skill credits quote --pack starter-500 --payment-method stripe_checkout --idempotency-key KEY --json for the default Stripe Checkout top-up path. Use --credits CREDITS instead of --pack only when the required exact budget is already known.
|
|
72
|
-
6d. image-skill credits buy --provider stripe --quote-id QUOTE_ID --idempotency-key KEY --json when the agent has a stripe_checkout quote and needs a payment handoff. Present or open checkout_handoff_url for humans. If no handoff URL is available, present
|
|
72
|
+
6d. image-skill credits buy --provider stripe --quote-id QUOTE_ID --idempotency-key KEY --json when the agent has a stripe_checkout quote and needs a payment handoff. Present or open checkout_handoff_url for humans. If no handoff URL is available, present the full checkout_url in a code block. Do not remove the Stripe # fragment; Checkout needs it in the browser. Credits are granted only after verified Stripe webhook fulfillment succeeds.
|
|
73
73
|
6e. image-skill credits status --payment-attempt-id PAYMENT_ATTEMPT_ID --json after buy or checkout completion to read durable payment state, receipt, credit_event, limits, and retry guidance without inferring from quota text.
|
|
74
74
|
6f. image-skill credits quote --credits 10 --json and image-skill credits fake-purchase --quote-id QUOTE_ID --idempotency-key KEY --json only for fake/test credit-ledger proof. This moves no live money, accepts no payment credential, and returns live_money:false.
|
|
75
75
|
7. image-skill create --dry-run --prompt PROMPT --json for zero-cost planning.
|
|
@@ -122,7 +122,7 @@ Hosted API endpoints:
|
|
|
122
122
|
- GET https://api.image-skill.com/v1/payment-methods returns the no-auth payment rail catalog. It tells agents which rails are available, whether live money can move, buyer modes (agent_only, hybrid, human_only), browser requirements, limits, endpoint paths, and recovery commands.
|
|
123
123
|
- GET https://api.image-skill.com/v1/credit-packs returns the public pack catalog. Recommended live-money packs include starter-500, builder-2000, and studio-5000. Packs are the default Stripe Checkout UX; exact quotes remain supported for agents that already know the required credit budget.
|
|
124
124
|
- POST https://api.image-skill.com/v1/credit-quotes returns a fake/test or stripe_checkout credit quote for Authorization: Bearer TOKEN. Request JSON: either credits or pack_id, optional payment_method, idempotency_key. Response includes quote_id, credits, price_amount_cents, currency, accepted_payment_method, pack_id, pack, and live_money. One credit equals $0.01, so price_amount_cents equals credits. This does not grant credits.
|
|
125
|
-
- POST https://api.image-skill.com/v1/credit-purchases/stripe-checkout-sessions creates a Stripe Checkout Session for a stripe_checkout quote. Request JSON: quote_id, idempotency_key. Response includes state: action_required, payment_attempt_id, checkout_session_id, checkout_handoff_url, checkout_compact_url, checkout_url, accepted_payment_method: stripe_checkout, and next.human_action: open_checkout_url. Present checkout_handoff_url to humans because it is short and redirects to Stripe. If no handoff URL is available, present
|
|
125
|
+
- POST https://api.image-skill.com/v1/credit-purchases/stripe-checkout-sessions creates a Stripe Checkout Session for a stripe_checkout quote. Request JSON: quote_id, idempotency_key. Response includes state: action_required, payment_attempt_id, checkout_session_id, checkout_handoff_url, checkout_compact_url, checkout_url, accepted_payment_method: stripe_checkout, and next.human_action: open_checkout_url. Present checkout_handoff_url to humans because it is short and redirects to Stripe. If no handoff URL is available, present the full checkout_url in a code block. Do not remove the Stripe # fragment; Checkout needs it in the browser. This does not grant credits; verified Stripe webhook fulfillment grants paid credits exactly once.
|
|
126
126
|
- GET https://api.image-skill.com/v1/credit-purchases/status returns durable payment state for Authorization: Bearer TOKEN. Query with exactly one of quote_id, payment_attempt_id, checkout_session_id, or receipt_id. Response includes state, quote, payment_attempt, receipt, credit_event, provider_event, limits, and next.
|
|
127
127
|
- POST https://api.image-skill.com/v1/credit-purchases confirms a fake/test quote for Authorization: Bearer TOKEN. Request JSON: quote_id, idempotency_key. Response includes receipt_id, credit_event_id, credits_granted, accepted_payment_method: fake, balance_after, and live_money:false. This grants bounded payment-backed credits without moving live money.
|
|
128
128
|
- GET https://api.image-skill.com/v1/models returns the public model registry. GET https://api.image-skill.com/v1/models/MODEL_ID returns one model's capability-preserving schema.
|
|
@@ -199,7 +199,7 @@ Unclaimed agents may not:
|
|
|
199
199
|
- send card data, wallet secrets, provider receipts, Stripe secrets, MPP tokens, SPTs, or any payment credential to Image Skill; Stripe payment details must be entered only on Stripe-hosted checkout pages
|
|
200
200
|
|
|
201
201
|
Credits:
|
|
202
|
-
One Image Skill credit is $0.01. Use image-skill credits methods --json to inspect payment rail availability and whether a browser/human action is required. Use image-skill credits packs list --json to inspect recommended Stripe Checkout packs. Use image-skill credits quote --pack PACK_ID --payment-method stripe_checkout --json for the default live-money top-up path. Use image-skill credits quote --credits CREDITS --json for exact bounded custom top-ups when the required budget is already known. The default payment_method is fake. Use image-skill credits buy --provider stripe --json to create a hosted Stripe Checkout Session for a stripe_checkout quote; this returns checkout_handoff_url, checkout_compact_url, and
|
|
202
|
+
One Image Skill credit is $0.01. Use image-skill credits methods --json to inspect payment rail availability and whether a browser/human action is required. Use image-skill credits packs list --json to inspect recommended Stripe Checkout packs. Use image-skill credits quote --pack PACK_ID --payment-method stripe_checkout --json for the default live-money top-up path. Use image-skill credits quote --credits CREDITS --json for exact bounded custom top-ups when the required budget is already known. The default payment_method is fake. Use image-skill credits buy --provider stripe --json to create a hosted Stripe Checkout Session for a stripe_checkout quote; this returns checkout_handoff_url, checkout_compact_url, and full checkout_url and does not grant credits. Present checkout_handoff_url to humans, especially in mobile terminals, SSH, or chat. If checkout_handoff_url is absent, present the full checkout_url in a code block and preserve the Stripe # fragment. Use image-skill credits status --payment-attempt-id PAYMENT_ATTEMPT_ID --json after buy and after checkout completion to read state, receipt, credit_event, limits, and retry guidance. Use image-skill credits fake-purchase --json only to exercise the quote, receipt, credit-ledger, and activity-audit contract before live settlement rails are enabled. Create/edit debit model-priced credits after provider success; inspect models show and operation cost.credit_pricing for credits_required and pricing_confidence. Do not silently downgrade to the cheapest model to avoid payment when the user asked for quality or is willing to pay; quote the needed credits and use the payment handoff. Credits buy and fake-purchase require explicit --idempotency-key. Quote idempotency keys are scoped to the hosted agent identity and exact quote terms; use per-run/per-step quote keys and inspect error.recovery.suggested_command on CREDIT_QUOTE_CONFLICT. Never send payment credentials to Image Skill; Stripe collects payment details on Stripe-hosted pages. Public request fields are credits, pack_id, payment_method, quote_id, status reference IDs, and idempotency_key.
|
|
203
203
|
|
|
204
204
|
Telemetry:
|
|
205
205
|
- command or endpoint name
|