image-skill 0.1.51 → 0.1.53

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 CHANGED
@@ -4,6 +4,24 @@ 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.53 - 2026-06-16
8
+
9
+ - Release (activation): align `create --guide` `auth_required` blocker copy
10
+ with anonymous signup semantics. Fresh agents are told to sign up once, with
11
+ `--agent-contact` optional and attachable later, instead of implying that a
12
+ durable contact inbox is required before hosted media creation. No auth
13
+ semantics, token storage, payment caps, provider routing, provider spend,
14
+ media spend, hosted deploy, or production write changed in this release bump.
15
+
16
+ ## 0.1.52 - 2026-06-16
17
+
18
+ - Release (activation/self-fund): publish the quota
19
+ `data.next_actions.self_fund` handoff under an unpublished package version so
20
+ `image-skill usage quota --json` gives activated agents a no-spend first
21
+ action and the browserless x402 quote/buy/status path before or at the quota
22
+ wall. No payment caps, provider routing, wallet action, provider spend, media
23
+ spend, hosted deploy, or production write changed in this release bump.
24
+
7
25
  ## 0.1.51 - 2026-06-14
8
26
 
9
27
  - Release (activation/self-fund): publish the post-0.1.50 public mirror payload
@@ -15,7 +15,7 @@ import { Readable } from "node:stream";
15
15
  import { pipeline } from "node:stream/promises";
16
16
  import os from "node:os";
17
17
 
18
- const VERSION = "0.1.51";
18
+ const VERSION = "0.1.53";
19
19
  const PACKAGE_NAME = "image-skill";
20
20
  const DEFAULT_API_BASE_URL = "https://api.image-skill.com";
21
21
  const DEFAULT_DOCS_BASE_URL = "https://image-skill.com";
@@ -1101,15 +1101,17 @@ async function quota(argv, command = "image-skill quota") {
1101
1101
  if (!token.ok) {
1102
1102
  return withCommand(token.result, command);
1103
1103
  }
1104
- return withCommand(
1105
- await apiRequest({
1104
+ return withQuotaNextActions(
1105
+ withCommand(
1106
+ await apiRequest({
1107
+ command,
1108
+ method: "GET",
1109
+ apiBaseUrl: apiBase(args),
1110
+ path: "/v1/quota",
1111
+ token: token.token,
1112
+ }),
1106
1113
  command,
1107
- method: "GET",
1108
- apiBaseUrl: apiBase(args),
1109
- path: "/v1/quota",
1110
- token: token.token,
1111
- }),
1112
- command,
1114
+ ),
1113
1115
  );
1114
1116
  }
1115
1117
 
@@ -2774,7 +2776,7 @@ function createGuideBlocker(stage, input) {
2774
2776
  return {
2775
2777
  code: "auth_required",
2776
2778
  message:
2777
- "Sign up once with a durable agent contact before creating hosted media.",
2779
+ "Sign up once before creating hosted media; --agent-contact is optional and can be attached later.",
2778
2780
  };
2779
2781
  }
2780
2782
  if (stage === "quota_required") {
@@ -6080,6 +6082,86 @@ function withCommand(result, command) {
6080
6082
  };
6081
6083
  }
6082
6084
 
6085
+ function withQuotaNextActions(result) {
6086
+ const data = result.envelope?.data;
6087
+ if (
6088
+ result.envelope?.ok !== true ||
6089
+ data === null ||
6090
+ typeof data !== "object"
6091
+ ) {
6092
+ return result;
6093
+ }
6094
+ const nextActions = quotaTopUpNextActions(data.top_up);
6095
+ if (nextActions === null) {
6096
+ return result;
6097
+ }
6098
+ return {
6099
+ ...result,
6100
+ envelope: {
6101
+ ...result.envelope,
6102
+ data: {
6103
+ ...data,
6104
+ next_actions: nextActions,
6105
+ },
6106
+ },
6107
+ };
6108
+ }
6109
+
6110
+ function quotaTopUpNextActions(topUp) {
6111
+ const commands = topUp?.commands;
6112
+ if (
6113
+ topUp?.available !== true ||
6114
+ commands === null ||
6115
+ typeof commands !== "object" ||
6116
+ typeof commands.inspect_methods !== "string" ||
6117
+ typeof commands.inspect_packs !== "string" ||
6118
+ typeof commands.quote !== "string" ||
6119
+ typeof commands.buy !== "string" ||
6120
+ typeof commands.status !== "string" ||
6121
+ typeof commands.fallback_quote !== "string" ||
6122
+ typeof commands.fallback_buy !== "string" ||
6123
+ topUp.workflow === null ||
6124
+ typeof topUp.workflow !== "object"
6125
+ ) {
6126
+ return null;
6127
+ }
6128
+
6129
+ return {
6130
+ self_fund: {
6131
+ purpose: "open_browserless_top_up_path",
6132
+ available: true,
6133
+ recommended: topUp.recommended === true,
6134
+ recommendation_reason: topUp.recommendation_reason ?? "available",
6135
+ path: topUp.path,
6136
+ first_safe_command: commands.inspect_methods,
6137
+ first_safe_command_effect: {
6138
+ label: "inspect_payment_methods_no_spend",
6139
+ no_spend: true,
6140
+ live_money: false,
6141
+ provider_call: false,
6142
+ hosted_create: false,
6143
+ payment_object: false,
6144
+ credit_debit: false,
6145
+ media_write: false,
6146
+ },
6147
+ inspect_methods_command: commands.inspect_methods,
6148
+ inspect_packs_command: commands.inspect_packs,
6149
+ quote_command: commands.quote,
6150
+ quote_command_copy_runnable: true,
6151
+ quote_idempotency_key_source: "public_cli_generated_if_missing",
6152
+ buy_command: commands.buy,
6153
+ status_command: commands.status,
6154
+ fallback_quote_command: commands.fallback_quote,
6155
+ fallback_buy_command: commands.fallback_buy,
6156
+ live_money: true,
6157
+ payment_method: topUp.preferred_payment_method,
6158
+ workflow: topUp.workflow,
6159
+ warning:
6160
+ "Start with first_safe_command; it is read-only and no-spend. Quote only creates a payment object. Buy/status and wallet settlement require delegated spend authority.",
6161
+ },
6162
+ };
6163
+ }
6164
+
6083
6165
  function failure(command, exitCode, code, message, retryable, recovery) {
6084
6166
  return {
6085
6167
  exitCode,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "image-skill",
3
- "version": "0.1.51",
3
+ "version": "0.1.53",
4
4
  "description": "Zero-setup durable creative-media CLI for agents (image + video + audio + 3D): guide-first creation, model and cost inspection, owned URLs, JSON recovery, payments, reusable assets, and feedback.",
5
5
  "type": "module",
6
6
  "private": false,