image-skill 0.1.19 → 0.1.21
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 +27 -0
- package/bin/image-skill.mjs +53 -2
- package/cli.md +11 -2
- package/llms.txt +4 -4
- package/package.json +1 -1
- package/skill.md +14 -5
- package/skills/image-skill/SKILL.md +14 -5
- package/skills/image-skill/references/cli.md +11 -2
- package/skills/image-skill/references/llms.txt +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,33 @@ 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.21 - 2026-06-02
|
|
8
|
+
|
|
9
|
+
- Release: ships the guide auth handoff already present on main to
|
|
10
|
+
`image-skill@latest`. Fresh agents that run `create --guide` now receive
|
|
11
|
+
`data.auth_handoff` templates in `auth_required` and `ready_to_create`, so a
|
|
12
|
+
one-time hosted signup token can be carried through `IMAGE_SKILL_TOKEN` or
|
|
13
|
+
`--token-stdin` without leaking it or falling back to URL installs.
|
|
14
|
+
- Test: keeps the public trust-packet fixture aligned with the new npm version
|
|
15
|
+
so the release guard verifies the package, provenance, and CLI version as one
|
|
16
|
+
contract.
|
|
17
|
+
|
|
18
|
+
## 0.1.20 - 2026-06-02
|
|
19
|
+
|
|
20
|
+
- Fix (funnel): the advertised `signup` usage line omitted the now-required
|
|
21
|
+
`--agent-name` and `--runtime` flags, so a cold agent's first signup always
|
|
22
|
+
stumbled before self-correcting via the recovery envelope. The top-level help
|
|
23
|
+
now advertises the full required flag set, so a first signup with the
|
|
24
|
+
advertised flags succeeds.
|
|
25
|
+
- Fix (funnel): the live create/edit receipt reported `cost.estimated_usd: null`
|
|
26
|
+
while the dry-run/plan receipt populated it. The live receipt now derives
|
|
27
|
+
`estimated_usd` from the same reservation credit-pricing the plan used, so plan
|
|
28
|
+
and execution agree (a provider-reported concrete value still wins when
|
|
29
|
+
present).
|
|
30
|
+
- Test: added a fault-injection test that forces the hosted provider to 5xx and
|
|
31
|
+
asserts the error envelope carries `recovery.idempotency_key` +
|
|
32
|
+
`suggested_command`, then proves a same-key retry replays and charges once.
|
|
33
|
+
|
|
7
34
|
## 0.1.19 - 2026-06-02
|
|
8
35
|
|
|
9
36
|
- Fix: the two newly-shipped modalities were broken on live prod despite green
|
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.21";
|
|
11
11
|
const PACKAGE_NAME = "image-skill";
|
|
12
12
|
const DEFAULT_API_BASE_URL = "https://api.image-skill.com";
|
|
13
13
|
const DEFAULT_DOCS_BASE_URL = "https://image-skill.com";
|
|
@@ -74,7 +74,7 @@ async function main(rawArgv) {
|
|
|
74
74
|
commands: [
|
|
75
75
|
"doctor",
|
|
76
76
|
"trust",
|
|
77
|
-
"signup --agent --agent-contact --show-token",
|
|
77
|
+
"signup --agent --agent-contact --agent-name NAME --runtime RUNTIME --show-token",
|
|
78
78
|
"auth status",
|
|
79
79
|
"auth save",
|
|
80
80
|
"auth logout",
|
|
@@ -942,6 +942,11 @@ async function createGuide(args) {
|
|
|
942
942
|
PUBLIC_NPX_COMMAND_PREFIX,
|
|
943
943
|
)
|
|
944
944
|
: null;
|
|
945
|
+
const authHandoff = createGuideAuthHandoff(stage, {
|
|
946
|
+
tokenSource: token.source,
|
|
947
|
+
nextCommand,
|
|
948
|
+
afterNext,
|
|
949
|
+
});
|
|
945
950
|
return success("image-skill create --guide", {
|
|
946
951
|
schema: "image-skill.create-guide.v1",
|
|
947
952
|
ready: stage === "ready_to_create",
|
|
@@ -1004,6 +1009,7 @@ async function createGuide(args) {
|
|
|
1004
1009
|
blocker,
|
|
1005
1010
|
next_command: nextCommand,
|
|
1006
1011
|
after_next: afterNext,
|
|
1012
|
+
auth_handoff: authHandoff,
|
|
1007
1013
|
escape_hatches: {
|
|
1008
1014
|
doctor: renderGuidePrefixedCommand(
|
|
1009
1015
|
PUBLIC_NPX_COMMAND_PREFIX,
|
|
@@ -1172,6 +1178,47 @@ function createGuideBlocker(stage, input) {
|
|
|
1172
1178
|
};
|
|
1173
1179
|
}
|
|
1174
1180
|
|
|
1181
|
+
function createGuideAuthHandoff(stage, input) {
|
|
1182
|
+
if (stage === "auth_required") {
|
|
1183
|
+
return {
|
|
1184
|
+
required: true,
|
|
1185
|
+
token_source: "none",
|
|
1186
|
+
secret_value_included: false,
|
|
1187
|
+
accepted_methods: ["IMAGE_SKILL_TOKEN", "--token-stdin", "config"],
|
|
1188
|
+
signup: {
|
|
1189
|
+
returns_token_once: true,
|
|
1190
|
+
public_cli_saves_config: false,
|
|
1191
|
+
store_token_in: "agent_runtime_secret_store",
|
|
1192
|
+
},
|
|
1193
|
+
rerun_guide:
|
|
1194
|
+
input.afterNext === null
|
|
1195
|
+
? null
|
|
1196
|
+
: {
|
|
1197
|
+
with_env: `IMAGE_SKILL_TOKEN="$IMAGE_SKILL_TOKEN" ${input.afterNext}`,
|
|
1198
|
+
with_stdin: renderTokenStdinCommand(input.afterNext),
|
|
1199
|
+
},
|
|
1200
|
+
next_command: null,
|
|
1201
|
+
};
|
|
1202
|
+
}
|
|
1203
|
+
if (stage === "ready_to_create") {
|
|
1204
|
+
return {
|
|
1205
|
+
required: true,
|
|
1206
|
+
token_source: input.tokenSource,
|
|
1207
|
+
secret_value_included: false,
|
|
1208
|
+
accepted_methods: ["IMAGE_SKILL_TOKEN", "--token-stdin", "config"],
|
|
1209
|
+
signup: null,
|
|
1210
|
+
rerun_guide: null,
|
|
1211
|
+
next_command: {
|
|
1212
|
+
requires_auth: true,
|
|
1213
|
+
reuse_current_auth_context: input.tokenSource,
|
|
1214
|
+
with_env: `IMAGE_SKILL_TOKEN="$IMAGE_SKILL_TOKEN" ${input.nextCommand}`,
|
|
1215
|
+
with_stdin: renderTokenStdinCommand(input.nextCommand),
|
|
1216
|
+
},
|
|
1217
|
+
};
|
|
1218
|
+
}
|
|
1219
|
+
return null;
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1175
1222
|
function createGuideNextCommand(stage, input) {
|
|
1176
1223
|
if (stage === "prompt_required") {
|
|
1177
1224
|
return renderGuideCommand("PROMPT", input.apiBaseUrl, input.commandPrefix);
|
|
@@ -1220,6 +1267,10 @@ function renderGuideCommand(prompt, apiBaseUrl, commandPrefix = "image-skill") {
|
|
|
1220
1267
|
].join(" ");
|
|
1221
1268
|
}
|
|
1222
1269
|
|
|
1270
|
+
function renderTokenStdinCommand(command) {
|
|
1271
|
+
return `printf '%s\\n' "$IMAGE_SKILL_TOKEN" | ${command} --token-stdin`;
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1223
1274
|
function renderCreateCommand(input) {
|
|
1224
1275
|
return [
|
|
1225
1276
|
input.commandPrefix ?? "image-skill",
|
package/cli.md
CHANGED
|
@@ -139,10 +139,16 @@ auth or payment state changes. Do not run `doctor`, `models list`, `signup`,
|
|
|
139
139
|
checklist before the guide asks for them.
|
|
140
140
|
|
|
141
141
|
- `prompt_required`: rerun `data.next_command` with the real prompt.
|
|
142
|
-
- `auth_required`: run `data.next_command`,
|
|
142
|
+
- `auth_required`: run `data.next_command`, store the returned token, then
|
|
143
|
+
rerun guide once. If the runtime does not automatically inject that token,
|
|
144
|
+
use `data.auth_handoff.rerun_guide.with_env` or
|
|
145
|
+
`data.auth_handoff.rerun_guide.with_stdin`.
|
|
143
146
|
- `quota_required`: follow the payment commands in
|
|
144
147
|
`data.checks.payments.suggested_commands`, then rerun guide once.
|
|
145
|
-
- `ready_to_create`: run `data.next_command` for the first bounded create.
|
|
148
|
+
- `ready_to_create`: run `data.next_command` for the first bounded create. If
|
|
149
|
+
the guide authenticated from env or stdin, prefer
|
|
150
|
+
`data.auth_handoff.next_command.with_env` or
|
|
151
|
+
`data.auth_handoff.next_command.with_stdin` so auth follows the create.
|
|
146
152
|
|
|
147
153
|
Manual escape hatches are not prerequisites. Use them only when
|
|
148
154
|
`data.next_command` / `data.escape_hatches` asks, or when the task genuinely
|
|
@@ -161,6 +167,9 @@ image-skill create --dry-run --prompt "a compact field camera on a stainless wor
|
|
|
161
167
|
Use `--show-token` for hosted signup only when the runtime can immediately store
|
|
162
168
|
the raw token once. For later commands, prefer `IMAGE_SKILL_TOKEN` or
|
|
163
169
|
`--token-stdin`; both keep tokens out of prompts and shell history.
|
|
170
|
+
`create --guide` also returns `data.auth_handoff` with copy-safe env/stdin
|
|
171
|
+
templates when auth is required or when the returned create command needs the
|
|
172
|
+
same auth context.
|
|
164
173
|
|
|
165
174
|
### Local Config And Install
|
|
166
175
|
|
package/llms.txt
CHANGED
|
@@ -57,12 +57,12 @@ Claim states:
|
|
|
57
57
|
- revoked: token or agent disabled
|
|
58
58
|
|
|
59
59
|
First-run guide loop:
|
|
60
|
-
1. Run image-skill create --guide --prompt PROMPT. This is the canonical fresh-agent entrypoint and the only required first command. It performs read-only hosted reachability, executable model availability, auth/quota, and payment rail checks and returns data.stage, data.next_command, data.escape_hatches, and data.mutation. Guide mode must report provider_call: false, hosted_create: false, hosted_signup: false, payment_object: false, credit_debit: false, and media_write: false.
|
|
60
|
+
1. Run image-skill create --guide --prompt PROMPT. This is the canonical fresh-agent entrypoint and the only required first command. It performs read-only hosted reachability, executable model availability, auth/quota, and payment rail checks and returns data.stage, data.next_command, data.auth_handoff, data.escape_hatches, and data.mutation. Guide mode must report provider_call: false, hosted_create: false, hosted_signup: false, payment_object: false, credit_debit: false, and media_write: false.
|
|
61
61
|
2. Follow data.next_command. Do not run doctor, models list, signup, whoami, quota, dry-run, or payment commands as a setup checklist before the guide asks for them.
|
|
62
62
|
3. If data.stage is prompt_required, rerun data.next_command with the real prompt.
|
|
63
|
-
4. If data.stage is auth_required, run data.next_command, store the returned token in the agent runtime secret store, then rerun the guide once with IMAGE_SKILL_TOKEN or --token-stdin. The signup command uses --agent-contact as an email-shaped durable contact inbox for the restricted agent identity, not as a requirement to find an individual human. Hosted signup returns the raw restricted token only when --show-token is set, and only once; it does not auto-save auth into the public CLI config. Use an agent-owned inbox when available; otherwise use an operator, team, or sponsor inbox that can receive future claim, billing, or abuse notices. Do not block waiting for a person, invent a person, or use a throwaway inbox. example.invalid addresses are only appropriate inside documented harness or proof runs. --human-email remains accepted as a compatibility alias, but the guide must not teach it. --save is local-only (--local) and rejected on the hosted path; the guide must not teach it. Use --no-save only for older hosted instructions, and use --show-token --no-save when the runtime has a separate secret store and needs the raw token once.
|
|
63
|
+
4. If data.stage is auth_required, run data.next_command, store the returned token in the agent runtime secret store, then rerun the guide once with IMAGE_SKILL_TOKEN or --token-stdin. If the runtime does not inject the token automatically, use data.auth_handoff.rerun_guide.with_env or data.auth_handoff.rerun_guide.with_stdin. The signup command uses --agent-contact as an email-shaped durable contact inbox for the restricted agent identity, not as a requirement to find an individual human. Hosted signup returns the raw restricted token only when --show-token is set, and only once; it does not auto-save auth into the public CLI config. Use an agent-owned inbox when available; otherwise use an operator, team, or sponsor inbox that can receive future claim, billing, or abuse notices. Do not block waiting for a person, invent a person, or use a throwaway inbox. example.invalid addresses are only appropriate inside documented harness or proof runs. --human-email remains accepted as a compatibility alias, but the guide must not teach it. --save is local-only (--local) and rejected on the hosted path; the guide must not teach it. Use --no-save only for older hosted instructions, and use --show-token --no-save when the runtime has a separate secret store and needs the raw token once.
|
|
64
64
|
5. If data.stage is quota_required, follow the payment commands in data.checks.payments.suggested_commands, then rerun the guide once. One Image Skill credit is $0.01. Credit quotes grant prepaid value units; create/edit operations debit model-priced credits reported as cost.credit_pricing. Starter preview currently gives bounded free-preview credits plus a four-job daily cap.
|
|
65
|
-
6. If data.stage is ready_to_create, run data.next_command for the first bounded create. Use 0.05 only when intentionally budget-capping to a lower-cost/lower-resolution path; the quality-default first create generally needs the guide's returned max_estimated_usd_per_image. Add --output-count N only after models show confirms the selected create model supports more than one output; credit_pricing.credits_required is the total debit across outputs, while max_estimated_usd_per_image remains a per-image guard.
|
|
65
|
+
6. If data.stage is ready_to_create, run data.next_command for the first bounded create. If the guide authenticated from env or stdin, prefer data.auth_handoff.next_command.with_env or data.auth_handoff.next_command.with_stdin so auth follows the create. Use 0.05 only when intentionally budget-capping to a lower-cost/lower-resolution path; the quality-default first create generally needs the guide's returned max_estimated_usd_per_image. Add --output-count N only after models show confirms the selected create model supports more than one output; credit_pricing.credits_required is the total debit across outputs, while max_estimated_usd_per_image remains a per-image guard.
|
|
66
66
|
7. After create, use image-skill jobs show JOB_ID to recover status, cost, safety, timestamps, and final assets; image-skill assets get ASSET_URL_OR_ID --output ./result.png to fetch the generated asset without repeating provider work; and image-skill activity list --subject JOB_ID to find ledger events, trace, usage, and asset links to cite.
|
|
67
67
|
8. Leave image-skill feedback create if the first-run flow is confusing, blocked, missing an affordance, or easier through a direct provider than through Image Skill. Use image-skill activity show FEEDBACK_ID only when you need to confirm the feedback entered the hosted ledger.
|
|
68
68
|
|
|
@@ -103,7 +103,7 @@ Core commands:
|
|
|
103
103
|
- image-skill activity list --limit 20 --json
|
|
104
104
|
- image-skill activity list --subject JOB_OR_ASSET_OR_FEEDBACK_OR_TRACE --json
|
|
105
105
|
- image-skill activity show EVENT_OR_JOB_OR_ASSET_OR_FEEDBACK_OR_TRACE --json
|
|
106
|
-
- image-skill feedback create --type
|
|
106
|
+
- image-skill feedback create --type user_feedback --title TITLE --body BODY --command COMMAND --expected EXPECTED --actual ACTUAL --proof-needed PROOF --surface cli,docs --evidence trace:TRACE_ID --severity medium --confidence high --next-state watch --json
|
|
107
107
|
|
|
108
108
|
Hosted API endpoints:
|
|
109
109
|
- POST https://api.image-skill.com/v1/agent-signups creates or rotates a restricted unclaimed agent token. Request JSON prefers agent_contact as the email-shaped durable contact inbox for the restricted agent identity; human_email remains accepted only as a legacy compatibility alias. The contact is not a requirement that an autonomous agent stop until a specific human is present. Response JSON returns data.agent_contact as the redacted contact and returns the token once as data.token. Store it in the agent runtime secret store; never put it in prompts, logs, issue text, or feedback.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "image-skill",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
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,
|
package/skill.md
CHANGED
|
@@ -118,11 +118,17 @@ a signup, provider job, dry-run job, payment object, credit debit, or asset.
|
|
|
118
118
|
npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench"
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
Read `data.stage`, `data.next_command`,
|
|
122
|
-
returns `auth_required`, run the signup command
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
`
|
|
121
|
+
Read `data.stage`, `data.next_command`, `data.auth_handoff`, and
|
|
122
|
+
`data.mutation`. If the guide returns `auth_required`, run the signup command
|
|
123
|
+
it gives you, store the returned token, then rerun the same guide. If the
|
|
124
|
+
runtime does not inject that token automatically, use
|
|
125
|
+
`data.auth_handoff.rerun_guide.with_env` or
|
|
126
|
+
`data.auth_handoff.rerun_guide.with_stdin`. If it returns `quota_required`,
|
|
127
|
+
inspect the payment commands it gives you and hand the Stripe link to a human
|
|
128
|
+
sponsor. If it returns `ready_to_create`, run `data.next_command` for the
|
|
129
|
+
bounded create; when the guide authenticated from env or stdin, prefer
|
|
130
|
+
`data.auth_handoff.next_command.with_env` or
|
|
131
|
+
`data.auth_handoff.next_command.with_stdin`.
|
|
126
132
|
|
|
127
133
|
Use the lower-level inspection commands when the guide asks for them or when
|
|
128
134
|
you need capability details before spending:
|
|
@@ -201,6 +207,9 @@ hosted signup does not auto-save auth into the CLI config. `--save` is local-onl
|
|
|
201
207
|
older instructions. Use `--show-token --no-save` when the runtime has a separate
|
|
202
208
|
secret store and needs the raw token once. If you pass the token explicitly,
|
|
203
209
|
prefer `--token-stdin` over `--token`.
|
|
210
|
+
The guide returns `data.auth_handoff` with copy-safe env/stdin command
|
|
211
|
+
templates so the token does not need to appear in prompts, logs, issue text, or
|
|
212
|
+
feedback.
|
|
204
213
|
|
|
205
214
|
In the preview contract, `--agent-contact` means an email-shaped durable
|
|
206
215
|
contact inbox for the restricted agent identity, not a requirement to find an
|
|
@@ -118,11 +118,17 @@ a signup, provider job, dry-run job, payment object, credit debit, or asset.
|
|
|
118
118
|
npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench"
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
Read `data.stage`, `data.next_command`,
|
|
122
|
-
returns `auth_required`, run the signup command
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
`
|
|
121
|
+
Read `data.stage`, `data.next_command`, `data.auth_handoff`, and
|
|
122
|
+
`data.mutation`. If the guide returns `auth_required`, run the signup command
|
|
123
|
+
it gives you, store the returned token, then rerun the same guide. If the
|
|
124
|
+
runtime does not inject that token automatically, use
|
|
125
|
+
`data.auth_handoff.rerun_guide.with_env` or
|
|
126
|
+
`data.auth_handoff.rerun_guide.with_stdin`. If it returns `quota_required`,
|
|
127
|
+
inspect the payment commands it gives you and hand the Stripe link to a human
|
|
128
|
+
sponsor. If it returns `ready_to_create`, run `data.next_command` for the
|
|
129
|
+
bounded create; when the guide authenticated from env or stdin, prefer
|
|
130
|
+
`data.auth_handoff.next_command.with_env` or
|
|
131
|
+
`data.auth_handoff.next_command.with_stdin`.
|
|
126
132
|
|
|
127
133
|
Use the lower-level inspection commands when the guide asks for them or when
|
|
128
134
|
you need capability details before spending:
|
|
@@ -201,6 +207,9 @@ hosted signup does not auto-save auth into the CLI config. `--save` is local-onl
|
|
|
201
207
|
older instructions. Use `--show-token --no-save` when the runtime has a separate
|
|
202
208
|
secret store and needs the raw token once. If you pass the token explicitly,
|
|
203
209
|
prefer `--token-stdin` over `--token`.
|
|
210
|
+
The guide returns `data.auth_handoff` with copy-safe env/stdin command
|
|
211
|
+
templates so the token does not need to appear in prompts, logs, issue text, or
|
|
212
|
+
feedback.
|
|
204
213
|
|
|
205
214
|
In the preview contract, `--agent-contact` means an email-shaped durable
|
|
206
215
|
contact inbox for the restricted agent identity, not a requirement to find an
|
|
@@ -139,10 +139,16 @@ auth or payment state changes. Do not run `doctor`, `models list`, `signup`,
|
|
|
139
139
|
checklist before the guide asks for them.
|
|
140
140
|
|
|
141
141
|
- `prompt_required`: rerun `data.next_command` with the real prompt.
|
|
142
|
-
- `auth_required`: run `data.next_command`,
|
|
142
|
+
- `auth_required`: run `data.next_command`, store the returned token, then
|
|
143
|
+
rerun guide once. If the runtime does not automatically inject that token,
|
|
144
|
+
use `data.auth_handoff.rerun_guide.with_env` or
|
|
145
|
+
`data.auth_handoff.rerun_guide.with_stdin`.
|
|
143
146
|
- `quota_required`: follow the payment commands in
|
|
144
147
|
`data.checks.payments.suggested_commands`, then rerun guide once.
|
|
145
|
-
- `ready_to_create`: run `data.next_command` for the first bounded create.
|
|
148
|
+
- `ready_to_create`: run `data.next_command` for the first bounded create. If
|
|
149
|
+
the guide authenticated from env or stdin, prefer
|
|
150
|
+
`data.auth_handoff.next_command.with_env` or
|
|
151
|
+
`data.auth_handoff.next_command.with_stdin` so auth follows the create.
|
|
146
152
|
|
|
147
153
|
Manual escape hatches are not prerequisites. Use them only when
|
|
148
154
|
`data.next_command` / `data.escape_hatches` asks, or when the task genuinely
|
|
@@ -161,6 +167,9 @@ image-skill create --dry-run --prompt "a compact field camera on a stainless wor
|
|
|
161
167
|
Use `--show-token` for hosted signup only when the runtime can immediately store
|
|
162
168
|
the raw token once. For later commands, prefer `IMAGE_SKILL_TOKEN` or
|
|
163
169
|
`--token-stdin`; both keep tokens out of prompts and shell history.
|
|
170
|
+
`create --guide` also returns `data.auth_handoff` with copy-safe env/stdin
|
|
171
|
+
templates when auth is required or when the returned create command needs the
|
|
172
|
+
same auth context.
|
|
164
173
|
|
|
165
174
|
### Local Config And Install
|
|
166
175
|
|
|
@@ -57,12 +57,12 @@ Claim states:
|
|
|
57
57
|
- revoked: token or agent disabled
|
|
58
58
|
|
|
59
59
|
First-run guide loop:
|
|
60
|
-
1. Run image-skill create --guide --prompt PROMPT. This is the canonical fresh-agent entrypoint and the only required first command. It performs read-only hosted reachability, executable model availability, auth/quota, and payment rail checks and returns data.stage, data.next_command, data.escape_hatches, and data.mutation. Guide mode must report provider_call: false, hosted_create: false, hosted_signup: false, payment_object: false, credit_debit: false, and media_write: false.
|
|
60
|
+
1. Run image-skill create --guide --prompt PROMPT. This is the canonical fresh-agent entrypoint and the only required first command. It performs read-only hosted reachability, executable model availability, auth/quota, and payment rail checks and returns data.stage, data.next_command, data.auth_handoff, data.escape_hatches, and data.mutation. Guide mode must report provider_call: false, hosted_create: false, hosted_signup: false, payment_object: false, credit_debit: false, and media_write: false.
|
|
61
61
|
2. Follow data.next_command. Do not run doctor, models list, signup, whoami, quota, dry-run, or payment commands as a setup checklist before the guide asks for them.
|
|
62
62
|
3. If data.stage is prompt_required, rerun data.next_command with the real prompt.
|
|
63
|
-
4. If data.stage is auth_required, run data.next_command, store the returned token in the agent runtime secret store, then rerun the guide once with IMAGE_SKILL_TOKEN or --token-stdin. The signup command uses --agent-contact as an email-shaped durable contact inbox for the restricted agent identity, not as a requirement to find an individual human. Hosted signup returns the raw restricted token only when --show-token is set, and only once; it does not auto-save auth into the public CLI config. Use an agent-owned inbox when available; otherwise use an operator, team, or sponsor inbox that can receive future claim, billing, or abuse notices. Do not block waiting for a person, invent a person, or use a throwaway inbox. example.invalid addresses are only appropriate inside documented harness or proof runs. --human-email remains accepted as a compatibility alias, but the guide must not teach it. --save is local-only (--local) and rejected on the hosted path; the guide must not teach it. Use --no-save only for older hosted instructions, and use --show-token --no-save when the runtime has a separate secret store and needs the raw token once.
|
|
63
|
+
4. If data.stage is auth_required, run data.next_command, store the returned token in the agent runtime secret store, then rerun the guide once with IMAGE_SKILL_TOKEN or --token-stdin. If the runtime does not inject the token automatically, use data.auth_handoff.rerun_guide.with_env or data.auth_handoff.rerun_guide.with_stdin. The signup command uses --agent-contact as an email-shaped durable contact inbox for the restricted agent identity, not as a requirement to find an individual human. Hosted signup returns the raw restricted token only when --show-token is set, and only once; it does not auto-save auth into the public CLI config. Use an agent-owned inbox when available; otherwise use an operator, team, or sponsor inbox that can receive future claim, billing, or abuse notices. Do not block waiting for a person, invent a person, or use a throwaway inbox. example.invalid addresses are only appropriate inside documented harness or proof runs. --human-email remains accepted as a compatibility alias, but the guide must not teach it. --save is local-only (--local) and rejected on the hosted path; the guide must not teach it. Use --no-save only for older hosted instructions, and use --show-token --no-save when the runtime has a separate secret store and needs the raw token once.
|
|
64
64
|
5. If data.stage is quota_required, follow the payment commands in data.checks.payments.suggested_commands, then rerun the guide once. One Image Skill credit is $0.01. Credit quotes grant prepaid value units; create/edit operations debit model-priced credits reported as cost.credit_pricing. Starter preview currently gives bounded free-preview credits plus a four-job daily cap.
|
|
65
|
-
6. If data.stage is ready_to_create, run data.next_command for the first bounded create. Use 0.05 only when intentionally budget-capping to a lower-cost/lower-resolution path; the quality-default first create generally needs the guide's returned max_estimated_usd_per_image. Add --output-count N only after models show confirms the selected create model supports more than one output; credit_pricing.credits_required is the total debit across outputs, while max_estimated_usd_per_image remains a per-image guard.
|
|
65
|
+
6. If data.stage is ready_to_create, run data.next_command for the first bounded create. If the guide authenticated from env or stdin, prefer data.auth_handoff.next_command.with_env or data.auth_handoff.next_command.with_stdin so auth follows the create. Use 0.05 only when intentionally budget-capping to a lower-cost/lower-resolution path; the quality-default first create generally needs the guide's returned max_estimated_usd_per_image. Add --output-count N only after models show confirms the selected create model supports more than one output; credit_pricing.credits_required is the total debit across outputs, while max_estimated_usd_per_image remains a per-image guard.
|
|
66
66
|
7. After create, use image-skill jobs show JOB_ID to recover status, cost, safety, timestamps, and final assets; image-skill assets get ASSET_URL_OR_ID --output ./result.png to fetch the generated asset without repeating provider work; and image-skill activity list --subject JOB_ID to find ledger events, trace, usage, and asset links to cite.
|
|
67
67
|
8. Leave image-skill feedback create if the first-run flow is confusing, blocked, missing an affordance, or easier through a direct provider than through Image Skill. Use image-skill activity show FEEDBACK_ID only when you need to confirm the feedback entered the hosted ledger.
|
|
68
68
|
|
|
@@ -103,7 +103,7 @@ Core commands:
|
|
|
103
103
|
- image-skill activity list --limit 20 --json
|
|
104
104
|
- image-skill activity list --subject JOB_OR_ASSET_OR_FEEDBACK_OR_TRACE --json
|
|
105
105
|
- image-skill activity show EVENT_OR_JOB_OR_ASSET_OR_FEEDBACK_OR_TRACE --json
|
|
106
|
-
- image-skill feedback create --type
|
|
106
|
+
- image-skill feedback create --type user_feedback --title TITLE --body BODY --command COMMAND --expected EXPECTED --actual ACTUAL --proof-needed PROOF --surface cli,docs --evidence trace:TRACE_ID --severity medium --confidence high --next-state watch --json
|
|
107
107
|
|
|
108
108
|
Hosted API endpoints:
|
|
109
109
|
- POST https://api.image-skill.com/v1/agent-signups creates or rotates a restricted unclaimed agent token. Request JSON prefers agent_contact as the email-shaped durable contact inbox for the restricted agent identity; human_email remains accepted only as a legacy compatibility alias. The contact is not a requirement that an autonomous agent stop until a specific human is present. Response JSON returns data.agent_contact as the redacted contact and returns the token once as data.token. Store it in the agent runtime secret store; never put it in prompts, logs, issue text, or feedback.
|