image-skill 0.1.51 → 0.1.52
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 +9 -0
- package/bin/image-skill.mjs +91 -9
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,15 @@ 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.52 - 2026-06-16
|
|
8
|
+
|
|
9
|
+
- Release (activation/self-fund): publish the quota
|
|
10
|
+
`data.next_actions.self_fund` handoff under an unpublished package version so
|
|
11
|
+
`image-skill usage quota --json` gives activated agents a no-spend first
|
|
12
|
+
action and the browserless x402 quote/buy/status path before or at the quota
|
|
13
|
+
wall. No payment caps, provider routing, wallet action, provider spend, media
|
|
14
|
+
spend, hosted deploy, or production write changed in this release bump.
|
|
15
|
+
|
|
7
16
|
## 0.1.51 - 2026-06-14
|
|
8
17
|
|
|
9
18
|
- Release (activation/self-fund): publish the post-0.1.50 public mirror payload
|
package/bin/image-skill.mjs
CHANGED
|
@@ -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.
|
|
18
|
+
const VERSION = "0.1.52";
|
|
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
|
|
1105
|
-
|
|
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
|
-
|
|
1108
|
-
apiBaseUrl: apiBase(args),
|
|
1109
|
-
path: "/v1/quota",
|
|
1110
|
-
token: token.token,
|
|
1111
|
-
}),
|
|
1112
|
-
command,
|
|
1114
|
+
),
|
|
1113
1115
|
);
|
|
1114
1116
|
}
|
|
1115
1117
|
|
|
@@ -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.
|
|
3
|
+
"version": "0.1.52",
|
|
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,
|