image-skill 0.1.8 → 0.1.10
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 +20 -0
- package/bin/image-skill.mjs +15 -23
- package/cli.md +15 -17
- package/llms.txt +3 -3
- package/package.json +1 -1
- package/skill.md +8 -8
- package/skills/image-skill/SKILL.md +8 -8
- package/skills/image-skill/references/cli.md +15 -17
- package/skills/image-skill/references/llms.txt +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,26 @@ 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.10 - 2026-05-22
|
|
8
|
+
|
|
9
|
+
- Stripe Checkout payment-link hardening follow-up.
|
|
10
|
+
- Make `checkout_compact_url` copy-safe by preferring the short Image Skill
|
|
11
|
+
`checkout_handoff_url` whenever the hosted API provides one.
|
|
12
|
+
- Keep raw Stripe `checkout_url` only as the full fallback and preserve its
|
|
13
|
+
required `#...` browser fragment.
|
|
14
|
+
- Add proof coverage that the Image Skill handoff redirects to the exact Stripe
|
|
15
|
+
Checkout URL with the fragment intact.
|
|
16
|
+
|
|
17
|
+
## 0.1.9 - 2026-05-22
|
|
18
|
+
|
|
19
|
+
- Emergency Stripe Checkout payment-link hotfix.
|
|
20
|
+
- Restored full Stripe Checkout URL preservation, including the `#...`
|
|
21
|
+
fragment required by Stripe's browser checkout app.
|
|
22
|
+
- Kept `checkout_handoff_url` as the preferred short human payment link, but
|
|
23
|
+
made stale-server fallback safe by no longer fragment-stripping
|
|
24
|
+
`checkout_url`, `checkout_compact_url`, or `next.fallback_checkout_url`.
|
|
25
|
+
- Do not use `image-skill@0.1.8` for live Stripe payments.
|
|
26
|
+
|
|
7
27
|
## 0.1.8 - 2026-05-22
|
|
8
28
|
|
|
9
29
|
- 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.10";
|
|
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",
|
|
@@ -1589,6 +1589,19 @@ function stripeCheckoutCopyFallbackData(data) {
|
|
|
1589
1589
|
}
|
|
1590
1590
|
|
|
1591
1591
|
function addCheckoutCompactUrl(record) {
|
|
1592
|
+
const handoff =
|
|
1593
|
+
typeof record.checkout_handoff_url === "string"
|
|
1594
|
+
? record.checkout_handoff_url
|
|
1595
|
+
: null;
|
|
1596
|
+
if (handoff !== null && handoff.length > 0) {
|
|
1597
|
+
let changed = false;
|
|
1598
|
+
if (record.checkout_compact_url !== handoff) {
|
|
1599
|
+
record.checkout_compact_url = handoff;
|
|
1600
|
+
changed = true;
|
|
1601
|
+
}
|
|
1602
|
+
return changed;
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1592
1605
|
const raw =
|
|
1593
1606
|
typeof record.checkout_url === "string"
|
|
1594
1607
|
? record.checkout_url
|
|
@@ -1604,20 +1617,6 @@ function addCheckoutCompactUrl(record) {
|
|
|
1604
1617
|
record.checkout_compact_url = compact;
|
|
1605
1618
|
changed = true;
|
|
1606
1619
|
}
|
|
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
1620
|
return changed;
|
|
1622
1621
|
}
|
|
1623
1622
|
|
|
@@ -1626,14 +1625,7 @@ function stripeCheckoutCompactUrl(checkoutUrl) {
|
|
|
1626
1625
|
if (trimmed.length === 0) {
|
|
1627
1626
|
return checkoutUrl;
|
|
1628
1627
|
}
|
|
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
|
-
}
|
|
1628
|
+
return trimmed;
|
|
1637
1629
|
}
|
|
1638
1630
|
|
|
1639
1631
|
function isRecord(value) {
|
package/cli.md
CHANGED
|
@@ -337,15 +337,13 @@ fulfillment succeeds. Session creation itself must not mutate credit balances.
|
|
|
337
337
|
|
|
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
|
-
mobile terminals, SSH clients, and wrapped chat output. `
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
copy/paste. Present any fallback Stripe URL in a fenced code block so terminal
|
|
348
|
-
wrapping does not corrupt it.
|
|
340
|
+
mobile terminals, SSH clients, and wrapped chat output. `checkout_compact_url`
|
|
341
|
+
is also copy-safe and equals the Image Skill handoff when the hosted API can
|
|
342
|
+
provide one. `checkout_url` is the raw Stripe compatibility fallback only; do
|
|
343
|
+
not present it unless no handoff URL is available. Do not trim Stripe Checkout
|
|
344
|
+
URLs: the long `#...` fragment is required by Stripe Checkout in the browser.
|
|
345
|
+
Present any fallback Stripe URL in a fenced code block so terminal wrapping does
|
|
346
|
+
not corrupt it.
|
|
349
347
|
|
|
350
348
|
```bash
|
|
351
349
|
image-skill credits buy \
|
|
@@ -366,8 +364,8 @@ Minimum success data:
|
|
|
366
364
|
"accepted_payment_method": "stripe_checkout",
|
|
367
365
|
"checkout_session_id": "cs_...",
|
|
368
366
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
369
|
-
"checkout_compact_url": "https://
|
|
370
|
-
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
367
|
+
"checkout_compact_url": "https://api.image-skill.com/pay/payatt_...",
|
|
368
|
+
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
371
369
|
"credits": 500,
|
|
372
370
|
"amount_cents": 500,
|
|
373
371
|
"currency": "USD",
|
|
@@ -375,9 +373,9 @@ Minimum success data:
|
|
|
375
373
|
"next": {
|
|
376
374
|
"human_action": "open_checkout_url",
|
|
377
375
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
378
|
-
"checkout_compact_url": "https://
|
|
379
|
-
"fallback_checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
380
|
-
"after_payment": "open checkout_handoff_url
|
|
376
|
+
"checkout_compact_url": "https://api.image-skill.com/pay/payatt_...",
|
|
377
|
+
"fallback_checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
378
|
+
"after_payment": "open checkout_handoff_url or checkout_compact_url; use the full checkout_url only if no Image Skill handoff URL is available, and preserve its Stripe # fragment. 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
379
|
}
|
|
382
380
|
}
|
|
383
381
|
```
|
|
@@ -422,8 +420,8 @@ Minimum action-required data:
|
|
|
422
420
|
"payment_attempt_id": "payatt_...",
|
|
423
421
|
"checkout_session_id": "cs_...",
|
|
424
422
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
425
|
-
"checkout_compact_url": "https://
|
|
426
|
-
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
423
|
+
"checkout_compact_url": "https://api.image-skill.com/pay/payatt_...",
|
|
424
|
+
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
427
425
|
"attempt_status": "requires_action"
|
|
428
426
|
},
|
|
429
427
|
"receipt": null,
|
|
@@ -432,7 +430,7 @@ Minimum action-required data:
|
|
|
432
430
|
"retry_after_seconds": 10,
|
|
433
431
|
"human_action": "open_checkout_url",
|
|
434
432
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
435
|
-
"checkout_compact_url": "https://
|
|
433
|
+
"checkout_compact_url": "https://api.image-skill.com/pay/payatt_..."
|
|
436
434
|
}
|
|
437
435
|
}
|
|
438
436
|
```
|
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; checkout_compact_url is also copy-safe when present. 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; checkout_compact_url is also copy-safe when present. 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, copy-safe checkout_compact_url, and full checkout_url fallback and does not grant credits. Present checkout_handoff_url or checkout_compact_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,12 @@ 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, `checkout_compact_url`
|
|
232
|
-
handoff
|
|
233
|
-
`stripe_checkout` quote
|
|
231
|
+
returns `checkout_handoff_url` for humans, `checkout_compact_url` as the
|
|
232
|
+
copy-safe handoff, and full Stripe `checkout_url` only as a fallback for a
|
|
233
|
+
`stripe_checkout` quote. It does not grant credits until verified webhook
|
|
234
234
|
fulfillment succeeds. Present or open `checkout_handoff_url` first. If it is
|
|
235
|
-
absent, present `
|
|
236
|
-
|
|
235
|
+
absent, present the full `checkout_url` in a code block; do not remove the
|
|
236
|
+
Stripe `#...` fragment because Checkout needs it in the browser. `credits fake-purchase`
|
|
237
237
|
returns `live_money:false`, moves no live money, accepts no payment credential,
|
|
238
238
|
and exists so agents can exercise the quote, receipt, credit-ledger, and
|
|
239
239
|
activity-audit contract safely.
|
|
@@ -538,9 +538,9 @@ closed if durable hosted feedback storage is unavailable.
|
|
|
538
538
|
top-ups when the required budget is already known.
|
|
539
539
|
- Use `credits buy --provider stripe --json` only to create a Stripe-hosted
|
|
540
540
|
checkout action. Present `checkout_handoff_url` to humans; if it is absent,
|
|
541
|
-
present `
|
|
542
|
-
fragment
|
|
543
|
-
not grant credits.
|
|
541
|
+
present the full `checkout_url` in a code block. Do not remove the
|
|
542
|
+
Stripe `#...` fragment; Checkout needs it in the browser. Session creation
|
|
543
|
+
itself does not grant credits.
|
|
544
544
|
- Use `credits fake-purchase --json` only for preview credit-ledger proof; it
|
|
545
545
|
is not live settlement and must not receive payment credentials.
|
|
546
546
|
- Treat credits as prepaid cents of Image Skill value. Operation debits are
|
|
@@ -228,12 +228,12 @@ 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, `checkout_compact_url`
|
|
232
|
-
handoff
|
|
233
|
-
`stripe_checkout` quote
|
|
231
|
+
returns `checkout_handoff_url` for humans, `checkout_compact_url` as the
|
|
232
|
+
copy-safe handoff, and full Stripe `checkout_url` only as a fallback for a
|
|
233
|
+
`stripe_checkout` quote. It does not grant credits until verified webhook
|
|
234
234
|
fulfillment succeeds. Present or open `checkout_handoff_url` first. If it is
|
|
235
|
-
absent, present `
|
|
236
|
-
|
|
235
|
+
absent, present the full `checkout_url` in a code block; do not remove the
|
|
236
|
+
Stripe `#...` fragment because Checkout needs it in the browser. `credits fake-purchase`
|
|
237
237
|
returns `live_money:false`, moves no live money, accepts no payment credential,
|
|
238
238
|
and exists so agents can exercise the quote, receipt, credit-ledger, and
|
|
239
239
|
activity-audit contract safely.
|
|
@@ -538,9 +538,9 @@ closed if durable hosted feedback storage is unavailable.
|
|
|
538
538
|
top-ups when the required budget is already known.
|
|
539
539
|
- Use `credits buy --provider stripe --json` only to create a Stripe-hosted
|
|
540
540
|
checkout action. Present `checkout_handoff_url` to humans; if it is absent,
|
|
541
|
-
present `
|
|
542
|
-
fragment
|
|
543
|
-
not grant credits.
|
|
541
|
+
present the full `checkout_url` in a code block. Do not remove the
|
|
542
|
+
Stripe `#...` fragment; Checkout needs it in the browser. Session creation
|
|
543
|
+
itself does not grant credits.
|
|
544
544
|
- Use `credits fake-purchase --json` only for preview credit-ledger proof; it
|
|
545
545
|
is not live settlement and must not receive payment credentials.
|
|
546
546
|
- Treat credits as prepaid cents of Image Skill value. Operation debits are
|
|
@@ -337,15 +337,13 @@ fulfillment succeeds. Session creation itself must not mutate credit balances.
|
|
|
337
337
|
|
|
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
|
-
mobile terminals, SSH clients, and wrapped chat output. `
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
copy/paste. Present any fallback Stripe URL in a fenced code block so terminal
|
|
348
|
-
wrapping does not corrupt it.
|
|
340
|
+
mobile terminals, SSH clients, and wrapped chat output. `checkout_compact_url`
|
|
341
|
+
is also copy-safe and equals the Image Skill handoff when the hosted API can
|
|
342
|
+
provide one. `checkout_url` is the raw Stripe compatibility fallback only; do
|
|
343
|
+
not present it unless no handoff URL is available. Do not trim Stripe Checkout
|
|
344
|
+
URLs: the long `#...` fragment is required by Stripe Checkout in the browser.
|
|
345
|
+
Present any fallback Stripe URL in a fenced code block so terminal wrapping does
|
|
346
|
+
not corrupt it.
|
|
349
347
|
|
|
350
348
|
```bash
|
|
351
349
|
image-skill credits buy \
|
|
@@ -366,8 +364,8 @@ Minimum success data:
|
|
|
366
364
|
"accepted_payment_method": "stripe_checkout",
|
|
367
365
|
"checkout_session_id": "cs_...",
|
|
368
366
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
369
|
-
"checkout_compact_url": "https://
|
|
370
|
-
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
367
|
+
"checkout_compact_url": "https://api.image-skill.com/pay/payatt_...",
|
|
368
|
+
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
371
369
|
"credits": 500,
|
|
372
370
|
"amount_cents": 500,
|
|
373
371
|
"currency": "USD",
|
|
@@ -375,9 +373,9 @@ Minimum success data:
|
|
|
375
373
|
"next": {
|
|
376
374
|
"human_action": "open_checkout_url",
|
|
377
375
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
378
|
-
"checkout_compact_url": "https://
|
|
379
|
-
"fallback_checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
380
|
-
"after_payment": "open checkout_handoff_url
|
|
376
|
+
"checkout_compact_url": "https://api.image-skill.com/pay/payatt_...",
|
|
377
|
+
"fallback_checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
378
|
+
"after_payment": "open checkout_handoff_url or checkout_compact_url; use the full checkout_url only if no Image Skill handoff URL is available, and preserve its Stripe # fragment. 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
379
|
}
|
|
382
380
|
}
|
|
383
381
|
```
|
|
@@ -422,8 +420,8 @@ Minimum action-required data:
|
|
|
422
420
|
"payment_attempt_id": "payatt_...",
|
|
423
421
|
"checkout_session_id": "cs_...",
|
|
424
422
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
425
|
-
"checkout_compact_url": "https://
|
|
426
|
-
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...",
|
|
423
|
+
"checkout_compact_url": "https://api.image-skill.com/pay/payatt_...",
|
|
424
|
+
"checkout_url": "https://checkout.stripe.com/c/pay/cs_...#fid...",
|
|
427
425
|
"attempt_status": "requires_action"
|
|
428
426
|
},
|
|
429
427
|
"receipt": null,
|
|
@@ -432,7 +430,7 @@ Minimum action-required data:
|
|
|
432
430
|
"retry_after_seconds": 10,
|
|
433
431
|
"human_action": "open_checkout_url",
|
|
434
432
|
"checkout_handoff_url": "https://api.image-skill.com/pay/payatt_...",
|
|
435
|
-
"checkout_compact_url": "https://
|
|
433
|
+
"checkout_compact_url": "https://api.image-skill.com/pay/payatt_..."
|
|
436
434
|
}
|
|
437
435
|
}
|
|
438
436
|
```
|
|
@@ -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; checkout_compact_url is also copy-safe when present. 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; checkout_compact_url is also copy-safe when present. 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, copy-safe checkout_compact_url, and full checkout_url fallback and does not grant credits. Present checkout_handoff_url or checkout_compact_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
|