@artblocks/abx-cli 0.1.0-alpha.23 → 0.1.0-alpha.26

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +322 -0
  2. package/dist/commands/deploy.d.ts +27 -4
  3. package/dist/commands/deploy.d.ts.map +1 -1
  4. package/dist/commands/deploy.js +220 -70
  5. package/dist/commands/deploy.js.map +1 -1
  6. package/dist/commands/project.d.ts.map +1 -1
  7. package/dist/commands/project.js +15 -0
  8. package/dist/commands/project.js.map +1 -1
  9. package/dist/commands/scaffold.d.ts.map +1 -1
  10. package/dist/commands/scaffold.js +27 -4
  11. package/dist/commands/scaffold.js.map +1 -1
  12. package/dist/commands/storage.d.ts +14 -0
  13. package/dist/commands/storage.d.ts.map +1 -1
  14. package/dist/commands/storage.js +31 -4
  15. package/dist/commands/storage.js.map +1 -1
  16. package/dist/config.d.ts +13 -0
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +25 -1
  19. package/dist/config.js.map +1 -1
  20. package/dist/conformance.d.ts.map +1 -1
  21. package/dist/conformance.js +20 -1
  22. package/dist/conformance.js.map +1 -1
  23. package/dist/flag-allowlists.d.ts.map +1 -1
  24. package/dist/flag-allowlists.js +4 -0
  25. package/dist/flag-allowlists.js.map +1 -1
  26. package/dist/kind.d.ts +8 -0
  27. package/dist/kind.d.ts.map +1 -1
  28. package/dist/kind.js +17 -0
  29. package/dist/kind.js.map +1 -1
  30. package/dist/main.js +38 -8
  31. package/dist/main.js.map +1 -1
  32. package/dist/output.d.ts.map +1 -1
  33. package/dist/output.js +59 -2
  34. package/dist/output.js.map +1 -1
  35. package/dist/ownerops.d.ts +51 -0
  36. package/dist/ownerops.d.ts.map +1 -1
  37. package/dist/ownerops.js +152 -5
  38. package/dist/ownerops.js.map +1 -1
  39. package/dist/provision.d.ts.map +1 -1
  40. package/dist/provision.js +6 -1
  41. package/dist/provision.js.map +1 -1
  42. package/dist/remote.d.ts +20 -0
  43. package/dist/remote.d.ts.map +1 -1
  44. package/dist/remote.js +38 -0
  45. package/dist/remote.js.map +1 -1
  46. package/dist/riskgate.d.ts +19 -0
  47. package/dist/riskgate.d.ts.map +1 -1
  48. package/dist/riskgate.js +31 -1
  49. package/dist/riskgate.js.map +1 -1
  50. package/dist/schema.js +4 -4
  51. package/dist/schema.js.map +1 -1
  52. package/dist/script-chunks.d.ts +8 -0
  53. package/dist/script-chunks.d.ts.map +1 -0
  54. package/dist/script-chunks.js +35 -0
  55. package/dist/script-chunks.js.map +1 -0
  56. package/dist/signer.d.ts.map +1 -1
  57. package/dist/signer.js +4 -1
  58. package/dist/signer.js.map +1 -1
  59. package/package.json +6 -6
  60. package/skill/SKILL.md +18 -8
  61. package/skill/reference/code-projects.md +3 -3
  62. package/skill/reference/decisions.md +3 -3
  63. package/skill/reference/hosting.md +15 -4
  64. package/skill/reference/operating.md +27 -1
  65. package/skill/reference/setup.md +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,327 @@
1
1
  # @artblocks/abx-cli
2
2
 
3
+ ## 0.1.0-alpha.26
4
+
5
+ ### Patch Changes
6
+
7
+ - 77a6248: Fixes from the 2026-08-18 eight-room agent sweep of the content-addressed lanes (ipfs · arweave ·
8
+ preferred gateways). The v11 gateway projection worked end to end on a live testnet round trip — bare
9
+ CID on chain, one `set-gateway` tx, byte-identical content id before and after — but the surfaces
10
+ around it lied, hid, or degraded in five ways that cold agents hit immediately.
11
+
12
+ **Both `AbxGenerator` addresses in the manifest had a broken EIP-55 checksum.** The addresses were
13
+ right; the casing was mangled in transcription. viem validates checksums, so
14
+ `readContract`/`writeContract` against the recorded value threw `Address "0x2c1b7Cf6…" is invalid` —
15
+ `abx verify` could not run its on-chain-URI check on **either** testnet. Corrected in
16
+ `deployments.ts` and the docs mirror, with the code at both fixed addresses re-confirmed on chain
17
+ (identical bytecode, as CREATE2 requires). The per-entry equality tests stayed green through all of
18
+ it because they compared against the same mangled string, so the manifest now carries a **property
19
+ test**: every recorded address must be a valid checksum.
20
+
21
+ **A deploy narrated the upload gateway as if it were the served URL.** With
22
+ `--onchain-uri --backend ipfs`, the progress line printed the backend's own locator
23
+ (`https://gateway.pinata.cloud/ipfs/<cid>/0.png`) while the chain got a bare CID served from
24
+ somewhere else entirely — in one run, from `ipfs.io`, because that is the floor and no preference was
25
+ written. The line now shows the URL the token will actually carry, resolved through the same
26
+ precedence that decides what gets written (`--ipfs-gateway`/`--arweave-gateway` → `--gateway` for the
27
+ backend in use → env → floor), and says whether that prefix is the project's choice or the public
28
+ default filling a silence.
29
+
30
+ **`--ipfs-gateway` / `--arweave-gateway` were absent from every deploy command's `--help`.** They
31
+ appeared only in `set-gateway --help` and the skill's reference pages, so an agent reading the CLI
32
+ alone could not find the flags the CLI itself tells you to use. All three deploy commands now name
33
+ them, with the floors (`https://ipfs.io/ipfs/`, `https://arweave.net/`) and the upload-vs-serving
34
+ distinction stated where the decision is made.
35
+
36
+ **`abx storage upload` handed `abx attach` a locator that silently downgraded the attachment.** It
37
+ printed `abx attach <address> <key> https://gateway.pinata.cloud/ipfs/<cid>/file.png` — and `attach`
38
+ picks the on-chain representation from the scheme, so an `https://` locator stores a plain `url` with
39
+ the gateway host welded into the value: no `set-gateway` repoint, exactly the coupling the
40
+ content-addressed representations exist to remove. Following the command's own printed next step was
41
+ the wrong move — and the skill had promised the scheme form all along, so the doc was right and the
42
+ command was wrong. It now hands back `ipfs://<cid>/file.png` / `ar://<txid>/file.png` (both in the prose
43
+ hint and as `attachLocator` in `--json`), keeps the https URL as the browsable one, and says why they
44
+ differ.
45
+
46
+ **`.abx-self-host/` is now self-ignoring.** It holds this node's projection and, for the Arweave
47
+ backend, a signing-capable key that carries prepaid upload credits. This repo gitignores that
48
+ directory and the skill said so — but a _creator's_ repo does not, so a first `--backend arweave` run
49
+ could leave a key staged for commit with nothing having said a word. The CLI writes a `.gitignore`
50
+ containing `*` inside the directory before anything sensitive lands there: it ignores the whole tree
51
+ regardless of the enclosing repo's config, needs no edit to a file we don't own, and never overwrites
52
+ one that already exists.
53
+
54
+ The **local-gateway warning** also stopped over-claiming. It said a `127.0.0.1` gateway means "the
55
+ served image URL resolves only on THIS machine" — true when the gateway host was welded into the
56
+ field, false now that the field holds a bare CID, and it aimed the creator at the wrong repair. It now
57
+ names the damage that is still real: bytes pinned only to a local node cannot be retrieved by anyone,
58
+ and no gateway can serve content that was never pinned publicly.
59
+
60
+ Also: `abx storage status --json` no longer warns `unrecognized flag(s), ignored: --json` about a flag
61
+ its own usage documents and that visibly works (a readout contradicting itself is worse than no
62
+ readout), and the `--unsigned` epilogue names `abx add <address>` rather than `abx index <address>`,
63
+ which fails on a node that never registered the project — the common case for a tx handed to someone
64
+ else's signer.
65
+
66
+ - 77a6248: Fixes from the 2026-08-18 six-room agent sweep of the hosted-services lane (managed provider ·
67
+ self-hosting · conformance). Three surfaces reported a credential problem as something else.
68
+
69
+ **`abx remote --conformance` blamed the service for our key.** With a rejected token it correctly
70
+ reported `the provided token was rejected (401)` — and then ran the authed-tier probes anyway. Each
71
+ one 401s, and each asserts on a 400, so one stale key produced four further failures reading
72
+ `bytes for a REFERENCED output (image) → 401 (expected 400; accepting this is how a resolver becomes
73
+ an object store)`. That is an accusation against the operator, and it is the exact inverse of what
74
+ this command is for: conformance is meant to be checkable from OUTSIDE, before you sign up. A cold
75
+ agent hit it and had to choose between believing five ✗ marks and explaining them away — it chose to
76
+ explain them away and told the creator the service was trustworthy. Now a rejected token skips the
77
+ authed tiers with one note (naming the descriptor's own signup URL), the public tier still runs in
78
+ full, and the run reports the one failure that is real. 401 is also handled like 403 inside the probe
79
+ helper, which already knew a credential problem is not a conformance verdict.
80
+
81
+ **`abx doctor` reported a dead credential as configured.** It printed `remotes: meridian` for a token
82
+ the service rejects, because it only checked that the variable was _present_. Doctor is the command a
83
+ creator is told to run first, so the 401 surfaced much later, from `abx remote <name>`, after that
84
+ line had already been trusted. Same class as an RPC that answers `[]` because it pruned its logs:
85
+ presence is not capability. It now makes one cheap authed call per named remote and reports
86
+ `✓ good · 1 project(s) visible` or `✗ meridian — token rejected (401) — fix or rotate
87
+ ABX_REMOTE_MERIDIAN_TOKEN`. A short timeout with no backoff keeps it quick, a 403 stays a note
88
+ (provider scoping is not a misconfiguration), and an unreachable provider is a soft note rather than
89
+ a ✗ — nothing here can fail doctor for a reason the creator cannot act on.
90
+
91
+ **`abx deploy-effects` told operators to set a variable that is never read.** The Fly scaffold's
92
+ storage-secrets block emitted `fly secrets set ABX_ARWEAVE_KEY=…`; no such variable exists anywhere in
93
+ the toolkit. A hosted runner cannot use the CLI's managed key file either (that path is on the
94
+ operator's machine), so the line now names `ARWEAVE_JWK` with the JWK inline, which is the form that
95
+ actually works remotely.
96
+
97
+ **A remote register on a self-resolving project claimed a win it did not deliver.** `abx add --remote`
98
+ printed its successes and stopped. But a project whose `tokenURIRenderer` is set answers `tokenURI`
99
+ from the chain, so marketplaces and wallets read that document and never touch the service — the
100
+ registration is still worth having (indexing, the live view, managed rendering) and changes nothing a
101
+ collector sees. A cold agent, told "put it on a hosted service so it shows up properly", had to
102
+ reconstruct that from `state` → `tokenuri` → `contracturi` → the docs → a raw curl before it could
103
+ answer honestly. The register now says it, and the skill states the inverse rule the reference pages
104
+ never had: a resolver adds nothing marketplace-facing to a project that already resolves on-chain.
105
+
106
+ `abx verify`'s help also stopped contradicting itself — "no server needed" read as "needs nothing"
107
+ while the command refuses until the project is registered locally with `abx add`. It now says "no
108
+ resolver in the path" and names the prerequisite.
109
+
110
+ Skill: stop asserting third-party prices and free tiers. Two rooms in one sweep quoted plan costs to a
111
+ creator — one lifted "free tier" from our own `hosting.md` (Fly's has since changed), the other
112
+ invented a monthly Pinata figure out of nothing. We cannot keep another company's pricing current, so
113
+ the skill now says to name the provider and point at its pricing page, and to compare _shapes_
114
+ (pay-once vs. monthly; lapses vs. nothing-to-renew) which stay true. Turbo's under-100 KB free tier
115
+ stays, because the CLI enforces and prints it. The never-read-`.env` rule also moved to the top of
116
+ SKILL.md: an agent listed and read files while orienting, before it reached that rule twenty lines
117
+ down, and printed credentials into its own transcript.
118
+
119
+ - Updated dependencies [77a6248]
120
+ - Updated dependencies [77a6248]
121
+ - @artblocks/abx-sdk@0.1.0-alpha.18
122
+ - @artblocks/abx-indexer@0.1.0-alpha.19
123
+ - @artblocks/abx-storage@0.1.0-alpha.18
124
+ - @artblocks/abx-token-api@0.1.0-alpha.21
125
+
126
+ ## 0.1.0-alpha.25
127
+
128
+ ### Minor Changes
129
+
130
+ - c5b8ec3: `ipfs` and `arweave` metadata fields now resolve on both planes, through a gateway the collection
131
+ chooses — renderer **spec v11**.
132
+
133
+ These are the two representations that are content-addressed, the two where the locator IS the
134
+ integrity hash, and the two this protocol tells creators to prefer. They were also the two the
135
+ on-chain renderer could not serve. So `abx deploy --onchain-uri --backend ipfs|arweave` worked around
136
+ it by baking a gateway HOST into a `url` field, which welded a hostname the creator could never
137
+ migrate and made `abx_provenance` report `source: url` for bytes that live on IPFS.
138
+
139
+ The fix separates the two facts that the baked URL had fused. The CID/txid stays in the field, as
140
+ identity, under that field's own lock. The HTTPS prefix becomes a project-wide preference in two
141
+ reserved collection-scope fields, `abx_gateway_ipfs` / `abx_gateway_arweave`, with `https://ipfs.io/ipfs/`
142
+ and `https://arweave.net/` as floors. The renderer, the canonical generator, and the off-chain
143
+ resolver all read those two fields and apply the same wrap, so a token served from the chain and from
144
+ a resolver produces the same URL.
145
+
146
+ A dead or slow gateway is now a **repoint**, not a rewrite:
147
+
148
+ ```bash
149
+ abx set-gateway 0xYourContract --ipfs https://your-dedicated.mypinata.cloud/ipfs/
150
+ ```
151
+
152
+ One transaction, every token, no re-upload — and it works on fields you have already locked, because
153
+ the locked value is the CID and the gateway was never in it.
154
+
155
+ **What changes for you**
156
+
157
+ - `--onchain-uri --backend ipfs|arweave` writes the bare CID (or `cid/{id}.ext` for the O(1) directory)
158
+ as an `ipfs`/`arweave` field instead of a gateway URL as `url`/`url-template`. `--backend cloud` is
159
+ unchanged — an HTTPS CDN locator _is_ the address.
160
+ - New `abx set-gateway <addr> [--ipfs <prefix>] [--arweave <prefix>]` (`none` clears to the public
161
+ default). Two flags, so a project can pay for a dedicated IPFS gateway and leave Arweave public.
162
+ - New `--ipfs-gateway` / `--arweave-gateway` on every deploy command. Plain `--gateway` (the
163
+ storage/upload gateway) seeds the preference for the backend in use, so passing it still does what
164
+ you meant. Nothing is written when no gateway is named — silence keeps the floor live.
165
+ - `abx set-field` refuses the two gateway keys and points at `set-gateway`, which validates the
166
+ prefix, the scope and the representation. Every way to set them by hand fails silently.
167
+ - The `display.gateway` contract param is **superseded and no longer read**. It could name only one
168
+ prefix for both schemes and existed only on code projects.
169
+ - SDK: `projectGatewayPrefix`, `projectGatewayUrl`, `gatewayPrefixFrom`, `contentIdFromLocator`,
170
+ `GATEWAY_FIELD`, `GATEWAY_FLOOR`. For a host running its own resolver, `ABX_IPFS_GATEWAY` /
171
+ `ABX_ARWEAVE_GATEWAY` are now a **floor**: a project that stated a preference on chain gets that
172
+ preference from every conforming resolver, and host config only fills a silence.
173
+
174
+ **New canonical addresses** (both testnets; nothing else moved — no token implementation, factory, or
175
+ `initialize` ABI changed):
176
+
177
+ | Contract | Address |
178
+ | -------------------------------- | -------------------------------------------- |
179
+ | `AbxMetadataRenderer` (spec v11) | `0x85C1aE1F076d808fF7c1729F21B85038Fa16105E` |
180
+ | `AbxGenerator` (Sepolia) | `0xb7104AdFa6Fb5615e46E2a681A2Ff043B08fADB5` |
181
+ | `AbxGenerator` (Base Sepolia) | `0x2c1b7Cf6C54E4acBcB54FCc395f7Af88eB4fC8Ce` |
182
+
183
+ Also fixes a crash on `abx deploy-code --copies`: an undefined `bytes` reference threw a
184
+ `ReferenceError` at the end of the dry-run plan and, worse, at the confirmation prompt of a real
185
+ deploy.
186
+
187
+ ### Patch Changes
188
+
189
+ - Updated dependencies [c5b8ec3]
190
+ - Updated dependencies [5b29f53]
191
+ - @artblocks/abx-sdk@0.1.0-alpha.17
192
+ - @artblocks/abx-token-api@0.1.0-alpha.20
193
+ - @artblocks/abx-indexer@0.1.0-alpha.18
194
+ - @artblocks/abx-storage@0.1.0-alpha.17
195
+
196
+ ## 0.1.0-alpha.24
197
+
198
+ ### Patch Changes
199
+
200
+ - 9c287c0: The CLI no longer double-wraps a data URI, lie about managed rendering, or hand zsh an unquoted schema.
201
+
202
+ - Inline `image` that is already a `data:` URI is refused — the renderer wraps bytes itself, and
203
+ storing one produced a blank token with no warning.
204
+ - Surfaces consult `render.attached` on the public resolver before warning that local `fs` means
205
+ "placeholder forever".
206
+ - Undeclared-param advice no longer tells you to schema-declare keys an augment hook supplies.
207
+ - `--schema` Select/Range examples (help and errors) are quoted so zsh does not glob them.
208
+ - `attach --help` states URI pairs and `--file` are mutually exclusive.
209
+ - The skill refuses unfilled `⟨your idea⟩` placeholders and documents one-EOA nonce serialization
210
+ plus "no replace-script CLI".
211
+
212
+ Reported in the 2026-08-18 tester batch (feedback 111e2489, a07e0449, 4cedba82, 52487cde, d5423af5, 58984086, 735ed464, 7ff05a6b).
213
+
214
+ - b5744a1: `deploy-series` no longer uploads your art before checking it can sign the deploy
215
+
216
+ The signing lanes were checked at _signing_ time, which is the end of a deploy. Off-chain custody
217
+ (`--backend arweave|ipfs|cloud`) uploads the art near the start, before any transaction exists. So
218
+ `abx deploy-series --dir … --onchain-uri --backend arweave` with no key and no `--dry-run` minted a
219
+ Turbo identity and pushed the files, then discovered it could never have deployed. Under Turbo's
220
+ 100 KB free tier that upload _succeeds_ — so a run that was always going to fail published the
221
+ creator's work permanently.
222
+
223
+ `assertLaneCanSign` refuses the keyless hot lane and names all three lanes plus the preview. The rule
224
+ it enforces is the sibling of the `--dry-run` guard on every signing choke point: **a spend or a
225
+ publish never precedes the check that this run can be signed at all.**
226
+
227
+ It sits at the spend, not at the front door. A _validation_ refusal (an ipfs-shaped `--image-base`, a
228
+ missing `--name`, off-chain metadata with no public URL) must still reach a creator who has no key,
229
+ because it costs nothing to check and is the more specific answer — so the four image deploy bodies
230
+ assert just before their first byte leaves. `abx deploy` (1/1) turned out never to have been exposed:
231
+ it needs the deployer address to predict the clone, so it already refused before uploading.
232
+ `deploy-code` has no deploy-time upload and is untouched.
233
+
234
+ Found by a cold agent that forgot `--dry-run` once and watched it try to spend anyway.
235
+
236
+ - 9c287c0: PostParams commands refuse unsupported contract kinds before any signing prompt.
237
+
238
+ `set-schema`, `configure-param`, and `retire-param` used to surface a raw viem revert on a 1/1 or
239
+ plain Series. They now detect the kind first and fail as a capability mismatch: SeriesCode /
240
+ EditionCode only. Help text says the same.
241
+
242
+ Reported in the 2026-08-18 tester batch (feedback e47b8ed5, 018ec58a).
243
+
244
+ - b5744a1: An RPC that has pruned its log history is now detected, named, and routed around
245
+
246
+ A public endpoint that no longer holds old logs does not fail your scan — it answers `eth_getLogs`
247
+ with `[]` and HTTP 200, which is a success. Everything downstream believed it:
248
+
249
+ - **`abx doctor` graded it `best`.** The archive probe was
250
+ `getLogs({address: zeroAddress, fromBlock: old, toBlock: old})` and counted any non-throw as archive
251
+ access — but `zeroAddress` never emits logs, so an empty result is exactly what a _perfect_ archive
252
+ node returns too. The assertion could not fail; it only ever caught endpoints that _error_ on old
253
+ blocks. `ARCHIVE_DEPTH` was also 100k blocks, which on a 2-second chain is inside the retained window
254
+ of the very endpoints that prune.
255
+ - **The client never failed over.** The read transport is a viem `fallback` across every configured
256
+ endpoint, and `fallback` rotates on an _error_. So every retry asked the same endpoint the same
257
+ question, and a project whose logs sit ready on the SECOND configured endpoint reconstructed as
258
+ empty.
259
+ - **`abx add` then registered the project with no state at all**, after grinding half a million blocks,
260
+ and suggested re-running `--full` "in a minute" — advice that can never work for a pruned index.
261
+
262
+ Measured on the two default Base Sepolia endpoints, same address and same window: one returns zero
263
+ logs for the project's entire history, the other returns them instantly. Ethereum Sepolia's keyless
264
+ default endpoint shows the same shape past a few hundred thousand blocks.
265
+
266
+ - **The probe asserts on something that must come back.** Blocks are retained by everyone; receipts
267
+ and the log index are what get pruned. `probeHistoryAt` (new SDK export) reads the probe block, asks
268
+ for one of its transactions' receipts, and — when that receipt carries a log — requires `getLogs` to
269
+ return that same log. No hardcoded address, no fixture block. `ARCHIVE_DEPTH` is now 500k.
270
+ It fails **safe**: a probe block with no transactions, or whose transactions logged nothing, keeps the
271
+ old lenient verdict rather than inventing a failure.
272
+ - **`abx doctor` names a reachable endpoint that can't serve history**, with the fault and the fix
273
+ ("history pruned ~500000 blocks back … list a full-archive endpoint FIRST in `ABX_RPC_URLS_<CHAIN>`").
274
+ Collapsing to the best endpoint hid this, and ordering is what decides who answers the scan.
275
+ - **An empty scan now retries each endpoint on its own** before giving up, and says which one served
276
+ the logs. Cheap by construction: each endpoint is first asked whether it holds history at _this
277
+ project's_ deploy block — three calls — and only one that passes gets a scan.
278
+ - **`SelfHostIndexer.reindex(address, {rpcUrl})`** pins a single endpoint instead of the pool, which is
279
+ what makes that rotation expressible. Clients are pooled per (chain, endpoint), so the default path
280
+ is unchanged.
281
+ - The final failure message now separates the two cases it had merged: a project you _just_ deployed
282
+ (transient, retry) from one that is not new (retention — check `abx doctor`).
283
+
284
+ Found by direct probing during the 2026-08-17 agent sweep, after an `abx add` of a 12-day-old Base
285
+ Sepolia edition reconstructed zero of its 18 events.
286
+
287
+ - 9c287c0: On-chain script chunks no longer insert a newline in the middle of a token.
288
+
289
+ The generator joins chunks with `'\n'`. A fixed 22 kB slice could split `mass` into `ma` + `ss`,
290
+ producing a SyntaxError on chain while `abx verify` still went green. Template-mode deploys now
291
+ split at an existing newline so that join is byte-identical to the source, refuse a 22 kB+ span
292
+ with no newline, and parse the program before any gas.
293
+
294
+ Reported in the 2026-08-18 tester batch (feedback 38455765, 038d7ed2, 8c256d9d, 50e53193).
295
+
296
+ - b5744a1: Four wording fixes from the 2026-08-17 agent sweep
297
+
298
+ - **A broken sentence at a decision point.** An edition's allocation warning read _"To sell 250, raise
299
+ this id's cap is not possible (caps only decrease) — set --allocation 15"_ — pattern-matched off the
300
+ 721 branch, where "redeploy a Series with a higher `--max`" fits the grammar and an edition's
301
+ decrease-only cap does not. Now: _"Selling 250 isn't reachable: this id's cap can only ever
302
+ DECREASE."_ The warning stays a warning: allocation is a ceiling, over-allocating isn't destructive,
303
+ and holding reserves is legitimate.
304
+ - **`abx help`'s `--copies` line promised a guard that doesn't exist**, claiming deploy-code's edition
305
+ lane is "--script only, no --dep/--code-dir/--image-renderer". `--dep`/`--dep-registry` are fully
306
+ wired on EditionCode and `abx help deploy-code` already documented them as working — only the
307
+ top-level summary was stale, which is the line an agent reads first. The flag allowlist's comment
308
+ said the same thing and is corrected too.
309
+ - **`reference/decisions.md` pattern 4** stated `--onchain-uri` for a 1/1 inline SVG without the size
310
+ crossover the same file gives 58 lines later, so the row alone pointed the wrong way for the 2.4 KB
311
+ example art.
312
+ - **The eval harness** now allowlists `ABX_CHAIN=<chain> abx …` in a clean room (`Bash(abx:*)` does not
313
+ match an env-prefixed command, which left three rooms unable to reach a contract on the non-default
314
+ chain), and `docs/agent-eval/README.md` records both that trap and the one where a room reaches
315
+ outside its sandbox via `abx skill install --global`.
316
+
317
+ - Updated dependencies [9c287c0]
318
+ - Updated dependencies [b5744a1]
319
+ - Updated dependencies [9c287c0]
320
+ - @artblocks/abx-sdk@0.1.0-alpha.16
321
+ - @artblocks/abx-indexer@0.1.0-alpha.17
322
+ - @artblocks/abx-storage@0.1.0-alpha.16
323
+ - @artblocks/abx-token-api@0.1.0-alpha.19
324
+
3
325
  ## 0.1.0-alpha.23
4
326
 
5
327
  ### Patch Changes
@@ -64,6 +64,21 @@ export declare const imageUrlField: (url: string) => OnChainFieldInput;
64
64
  /** An `image` field as a `url-template` — `{id}` is substituted with the tokenId at render, so ONE
65
65
  * (collection-scope) field addresses a whole pinned directory / Arweave manifest. */
66
66
  export declare const imageUrlTemplateField: (template: string) => OnChainFieldInput;
67
+ /**
68
+ * An `image` field carrying a CONTENT-ADDRESSED identity — the bare CID / txid, with the serving
69
+ * gateway supplied at read time from the collection's `abx_gateway_*` preference (renderer spec v11).
70
+ *
71
+ * This replaces what `--onchain-uri --backend ipfs|arweave` used to write. That path stored the
72
+ * backend's gateway HTTPS URL as a `url` field, which looked identical in a marketplace and was
73
+ * wrong in two ways that only showed up later: the creator's chosen gateway host was welded into a
74
+ * value they might have locked, so a dead gateway became a dead token rather than a repoint; and
75
+ * `abx_provenance` reported `source: url` for bytes that live on IPFS, so the chain stopped saying
76
+ * where the work actually was. The CID is identity and the gateway is a preference — one field each.
77
+ *
78
+ * `{id}` in the value still substitutes at read (the O(1) directory pattern), so a collection-scope
79
+ * `ipfs` field addresses a whole pinned folder exactly as `url-template` does for a plain CDN.
80
+ */
81
+ export declare const imageContentAddressedField: (network: "ipfs" | "arweave", contentId: string) => OnChainFieldInput;
67
82
  export declare const looksLikeSvg: (s: string) => boolean;
68
83
  /**
69
84
  * Does the IMAGE itself end up on-chain for this deploy? Two ways it can:
@@ -95,7 +110,8 @@ export type RemoteEthUpload = {
95
110
  export declare function prepareContent(imagePath: string | undefined, clone: Address, overrides: StorageOverrides, store?: boolean, // false for --dry-run: compute the hash but don't custody bytes
96
111
  onChain?: boolean, // true (--onchain-uri): put the image ON-CHAIN (inline SVG) so it self-resolves
97
112
  remoteEth?: RemoteEthUpload, // wallet-lane Turbo uploads: sign+pay with the connected browser wallet
98
- walletAddr?: string): Promise<{
113
+ walletAddr?: string, // the deployer wallet — checked for existing Turbo credits if the managed key is short
114
+ gatewayFlags?: Flags): Promise<{
99
115
  tokenFields: OnChainFieldInput[];
100
116
  contentNote: string;
101
117
  }>;
@@ -107,9 +123,16 @@ walletAddr?: string): Promise<{
107
123
  export declare function parseDeployTraits(flags: Flags): OpenSeaAttribute[];
108
124
  /** Encode creator traits as the on-chain `attributes` field (inline JSON bytes) — for `--traits-onchain`. */
109
125
  export declare const attributesInlineField: (attrs: OpenSeaAttribute[]) => OnChainFieldInput;
110
- /** Warn when IPFS/Arweave custody is pointed at a LOCAL gateway: the served image URL
111
- * (`<gateway>/ipfs/<cid>`) would resolve only on this machine, so marketplaces/wallets can't
112
- * load it — a pinning service + a PUBLIC gateway is part of operating off-chain custody. */
126
+ /**
127
+ * Warn when IPFS/Arweave custody is pointed at a LOCAL gateway.
128
+ *
129
+ * Two distinct problems ride on one flag, and the warning names the one that actually applies. The
130
+ * bytes are pinned only to a node on this machine, so nothing off it can retrieve them — that is the
131
+ * real damage and it survives any later `set-gateway`. It ALSO used to weld that localhost host into
132
+ * the on-chain value; since the field holds a bare CID it no longer does (the serving prefix is the
133
+ * collection's preference), so promising "the served URL resolves only on THIS machine" would now be
134
+ * false and would point the creator at the wrong repair.
135
+ */
113
136
  export declare function localGatewayWarning(flags: Flags): string | null;
114
137
  /** A readout line for an optional creator text field — states exactly what's written (and where),
115
138
  * or that NOTHING is, so the deploy never silently invents one. */
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}