@artblocks/abx-cli 0.1.0-alpha.4 → 0.1.0-alpha.41

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 (189) hide show
  1. package/CHANGELOG.md +161 -0
  2. package/assets/renderer-scaffold/README.md +41 -11
  3. package/assets/renderer-scaffold/foundry.toml +5 -0
  4. package/assets/renderer-scaffold/remappings.txt +1 -1
  5. package/assets/renderer-scaffold/script/DeployHooks.s.sol +24 -0
  6. package/assets/renderer-scaffold/script/Preview.s.sol +99 -0
  7. package/assets/renderer-scaffold/src/MyHooks.sol +20 -0
  8. package/assets/renderer-scaffold/src/MyRenderer.sol +4 -4
  9. package/assets/renderer-scaffold/src/MyTraits.sol +2 -2
  10. package/assets/renderer-scaffold/test/MyRenderer.t.sol +60 -3
  11. package/dist/bin.d.ts +26 -0
  12. package/dist/bin.d.ts.map +1 -0
  13. package/dist/bin.js +63 -0
  14. package/dist/bin.js.map +1 -0
  15. package/dist/capabilities.d.ts +99 -0
  16. package/dist/capabilities.d.ts.map +1 -0
  17. package/dist/capabilities.js +144 -0
  18. package/dist/capabilities.js.map +1 -0
  19. package/dist/commands/auth.d.ts +54 -0
  20. package/dist/commands/auth.d.ts.map +1 -0
  21. package/dist/commands/auth.js +447 -0
  22. package/dist/commands/auth.js.map +1 -0
  23. package/dist/commands/deploy.d.ts +242 -0
  24. package/dist/commands/deploy.d.ts.map +1 -0
  25. package/dist/commands/deploy.js +5429 -0
  26. package/dist/commands/deploy.js.map +1 -0
  27. package/dist/commands/feedback.d.ts +7 -0
  28. package/dist/commands/feedback.d.ts.map +1 -0
  29. package/dist/commands/feedback.js +147 -0
  30. package/dist/commands/feedback.js.map +1 -0
  31. package/dist/commands/maintenance.d.ts +4 -0
  32. package/dist/commands/maintenance.d.ts.map +1 -0
  33. package/dist/commands/maintenance.js +114 -0
  34. package/dist/commands/maintenance.js.map +1 -0
  35. package/dist/commands/project.d.ts +429 -0
  36. package/dist/commands/project.d.ts.map +1 -0
  37. package/dist/commands/project.js +1720 -0
  38. package/dist/commands/project.js.map +1 -0
  39. package/dist/commands/reads.d.ts +85 -0
  40. package/dist/commands/reads.d.ts.map +1 -0
  41. package/dist/commands/reads.js +868 -0
  42. package/dist/commands/reads.js.map +1 -0
  43. package/dist/commands/scaffold.d.ts +89 -0
  44. package/dist/commands/scaffold.d.ts.map +1 -0
  45. package/dist/commands/scaffold.js +738 -0
  46. package/dist/commands/scaffold.js.map +1 -0
  47. package/dist/commands/service.d.ts +67 -0
  48. package/dist/commands/service.d.ts.map +1 -0
  49. package/dist/commands/service.js +748 -0
  50. package/dist/commands/service.js.map +1 -0
  51. package/dist/commands/storage.d.ts +51 -0
  52. package/dist/commands/storage.d.ts.map +1 -0
  53. package/dist/commands/storage.js +399 -0
  54. package/dist/commands/storage.js.map +1 -0
  55. package/dist/commands/submit-app.d.ts +102 -0
  56. package/dist/commands/submit-app.d.ts.map +1 -0
  57. package/dist/commands/submit-app.js +622 -0
  58. package/dist/commands/submit-app.js.map +1 -0
  59. package/dist/config.d.ts +105 -2
  60. package/dist/config.d.ts.map +1 -1
  61. package/dist/config.js +351 -12
  62. package/dist/config.js.map +1 -1
  63. package/dist/conformance.d.ts +31 -0
  64. package/dist/conformance.d.ts.map +1 -0
  65. package/dist/conformance.js +390 -0
  66. package/dist/conformance.js.map +1 -0
  67. package/dist/contract-read-error.d.ts +5 -0
  68. package/dist/contract-read-error.d.ts.map +1 -0
  69. package/dist/contract-read-error.js +37 -0
  70. package/dist/contract-read-error.js.map +1 -0
  71. package/dist/deploy-plan.d.ts +150 -0
  72. package/dist/deploy-plan.d.ts.map +1 -0
  73. package/dist/deploy-plan.js +31 -0
  74. package/dist/deploy-plan.js.map +1 -0
  75. package/dist/deps.d.ts +6 -39
  76. package/dist/deps.d.ts.map +1 -1
  77. package/dist/deps.js +4 -68
  78. package/dist/deps.js.map +1 -1
  79. package/dist/errors.d.ts +20 -0
  80. package/dist/errors.d.ts.map +1 -0
  81. package/dist/errors.js +25 -0
  82. package/dist/errors.js.map +1 -0
  83. package/dist/flag-allowlists.d.ts +53 -0
  84. package/dist/flag-allowlists.d.ts.map +1 -0
  85. package/dist/flag-allowlists.js +184 -0
  86. package/dist/flag-allowlists.js.map +1 -0
  87. package/dist/flags.d.ts +47 -0
  88. package/dist/flags.d.ts.map +1 -1
  89. package/dist/flags.js +125 -1
  90. package/dist/flags.js.map +1 -1
  91. package/dist/jsonout.d.ts +37 -0
  92. package/dist/jsonout.d.ts.map +1 -0
  93. package/dist/jsonout.js +79 -0
  94. package/dist/jsonout.js.map +1 -0
  95. package/dist/kind.d.ts +57 -0
  96. package/dist/kind.d.ts.map +1 -0
  97. package/dist/kind.js +122 -0
  98. package/dist/kind.js.map +1 -0
  99. package/dist/main.js +786 -4838
  100. package/dist/main.js.map +1 -1
  101. package/dist/mintpage.d.ts +17 -2
  102. package/dist/mintpage.d.ts.map +1 -1
  103. package/dist/mintpage.js +241 -54
  104. package/dist/mintpage.js.map +1 -1
  105. package/dist/output.d.ts +179 -0
  106. package/dist/output.d.ts.map +1 -0
  107. package/dist/output.js +780 -0
  108. package/dist/output.js.map +1 -0
  109. package/dist/ownerops.d.ts +381 -57
  110. package/dist/ownerops.d.ts.map +1 -1
  111. package/dist/ownerops.js +2014 -359
  112. package/dist/ownerops.js.map +1 -1
  113. package/dist/preview.d.ts +23 -5
  114. package/dist/preview.d.ts.map +1 -1
  115. package/dist/preview.js +95 -43
  116. package/dist/preview.js.map +1 -1
  117. package/dist/prompt.d.ts +17 -0
  118. package/dist/prompt.d.ts.map +1 -0
  119. package/dist/prompt.js +19 -0
  120. package/dist/prompt.js.map +1 -0
  121. package/dist/provision.d.ts +3 -13
  122. package/dist/provision.d.ts.map +1 -1
  123. package/dist/provision.js +19 -21
  124. package/dist/provision.js.map +1 -1
  125. package/dist/remote.d.ts +157 -52
  126. package/dist/remote.d.ts.map +1 -1
  127. package/dist/remote.js +435 -46
  128. package/dist/remote.js.map +1 -1
  129. package/dist/riskgate.d.ts +62 -0
  130. package/dist/riskgate.d.ts.map +1 -0
  131. package/dist/riskgate.js +234 -0
  132. package/dist/riskgate.js.map +1 -0
  133. package/dist/scaffold.d.ts +12 -0
  134. package/dist/scaffold.d.ts.map +1 -0
  135. package/dist/scaffold.js +56 -0
  136. package/dist/scaffold.js.map +1 -0
  137. package/dist/schema.d.ts +36 -1
  138. package/dist/schema.d.ts.map +1 -1
  139. package/dist/schema.js +121 -26
  140. package/dist/schema.js.map +1 -1
  141. package/dist/script-chunks.d.ts +8 -0
  142. package/dist/script-chunks.d.ts.map +1 -0
  143. package/dist/script-chunks.js +35 -0
  144. package/dist/script-chunks.js.map +1 -0
  145. package/dist/served.d.ts +30 -0
  146. package/dist/served.d.ts.map +1 -0
  147. package/dist/served.js +112 -0
  148. package/dist/served.js.map +1 -0
  149. package/dist/signer.d.ts +13 -0
  150. package/dist/signer.d.ts.map +1 -1
  151. package/dist/signer.js +84 -15
  152. package/dist/signer.js.map +1 -1
  153. package/dist/update-check.d.ts +86 -5
  154. package/dist/update-check.d.ts.map +1 -1
  155. package/dist/update-check.js +161 -20
  156. package/dist/update-check.js.map +1 -1
  157. package/package.json +13 -12
  158. package/skill/SKILL.md +181 -347
  159. package/skill/agents/openai.yaml +4 -0
  160. package/skill/reference/capabilities.md +188 -0
  161. package/skill/reference/code.md +220 -0
  162. package/skill/reference/creator-token.md +94 -0
  163. package/skill/reference/deploy.md +174 -0
  164. package/skill/reference/diagnose.md +178 -0
  165. package/skill/reference/hosting.md +186 -93
  166. package/skill/reference/operate.md +220 -0
  167. package/skill/reference/services.md +121 -0
  168. package/skill/reference/setup.md +154 -36
  169. package/assets/renderer-scaffold/src/interfaces/IAbxFieldRenderer.sol +0 -32
  170. package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +0 -26
  171. package/dist/inspect.d.ts +0 -48
  172. package/dist/inspect.d.ts.map +0 -1
  173. package/dist/inspect.js +0 -184
  174. package/dist/inspect.js.map +0 -1
  175. package/dist/migrate.d.ts +0 -65
  176. package/dist/migrate.d.ts.map +0 -1
  177. package/dist/migrate.js +0 -180
  178. package/dist/migrate.js.map +0 -1
  179. package/dist/onchain-uri.d.ts +0 -97
  180. package/dist/onchain-uri.d.ts.map +0 -1
  181. package/dist/onchain-uri.js +0 -243
  182. package/dist/onchain-uri.js.map +0 -1
  183. package/dist/upload.d.ts +0 -28
  184. package/dist/upload.d.ts.map +0 -1
  185. package/dist/upload.js +0 -41
  186. package/dist/upload.js.map +0 -1
  187. package/skill/reference/code-projects.md +0 -246
  188. package/skill/reference/operating.md +0 -116
  189. package/skill/reference/troubleshooting.md +0 -28
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type Flags } from '../flags.js';
2
+ /**
3
+ * `abx storage backup-key [--out <path>]` — back up the managed Turbo/Arweave key. It signs uploads
4
+ * AND holds prepaid credits, so losing it strands the credits. Low-stakes (a few $ of credit), but
5
+ * we still COPY the file rather than print it — a key pasted into a terminal / agent log is leaked.
6
+ * With no `--out`, just report where it lives and how to back it up.
7
+ */
8
+ export declare function cmdStorageBackupKey(flags: Flags): Promise<void>;
9
+ export declare function cmdStorage(rest: string[]): Promise<void>;
10
+ /**
11
+ * `abx storage status <locator>` — is it **retrievable** yet, not just accepted?
12
+ *
13
+ * The gap this closes: an upload service answers "accepted" the moment it holds your bytes, a gateway
14
+ * answers "serving" only once they reach it, and on Arweave that runs to minutes. Two independent
15
+ * integrators built their own version of this check eight days apart; the second saw 32/32 renders
16
+ * 404 on `arweave.net` while 22/32 already served elsewhere and the uploader said `CONFIRMED`. The
17
+ * expensive part is what a creator does next: a placeholder on a fresh drop reads as a failed render,
18
+ * so you re-run `abx render --force` and re-upload everything for nothing.
19
+ */
20
+ export declare const STORAGE_STATUS_FLAGS: Set<string>;
21
+ export declare function cmdStorageStatus(locator: string | undefined, flags: Flags): Promise<void>;
22
+ /**
23
+ * `abx storage upload <path> [--backend ipfs|arweave|cloud]` — upload one file to a durable
24
+ * backend and print the **locator** to point at. This is the missing first half of the data-plane
25
+ * attach flow (`abx attach` takes a URI it assumes you already have): it hands you an `ipfs://` /
26
+ * `ar://` (content-addressed) or `<publicBase>/<key>` (cloud) URI, then prints the ready-to-run
27
+ * `abx attach` line. Reuses the exact upload path a deploy uses (resolve backend → put → locator),
28
+ * so the locator is identical to what a deploy would bridge.
29
+ */
30
+ export declare function cmdStorageUpload(path: string | undefined, flags: Flags): Promise<void>;
31
+ /**
32
+ * The locator `abx attach` should be handed for an uploaded file.
33
+ *
34
+ * The backends return an UPLOAD-gateway https URL, because that is the production-safe form an NFT
35
+ * `image` needs. `attach` reads the scheme to pick the on-chain representation, so handing it that
36
+ * https URL stores the attachment as a plain `url` — the gateway host welded into the value, no
37
+ * `set-gateway` repoint, exactly the coupling the ipfs/arweave representations exist to avoid. An
38
+ * agent followed this command's own printed next step and silently downgraded the attachment.
39
+ *
40
+ * So for the two content-addressed backends we hand back the scheme form (`ipfs://<cid>/<name>`,
41
+ * `ar://<txid>/<name>`) and keep the https URL as the browsable one. `cloud` is unchanged: an https
42
+ * CDN locator IS its address, with no identity underneath to separate out.
43
+ */
44
+ export declare function attachLocator(backendId: string, locator: string): string;
45
+ /**
46
+ * `abx storage balance` / `abx storage topup --usd <n>` — dispatch to the active provider's
47
+ * funding capability. Generic verbs, provider chosen in config: Turbo exposes prepaid credits;
48
+ * a provider without funding (http-bundler) gets a clear "fund the wallet directly" instead.
49
+ */
50
+ export declare function cmdStorageFunding(sub: 'balance' | 'topup', flags: Flags): Promise<void>;
51
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/commands/storage.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAC,KAAK,KAAK,EAAuC,MAAM,aAAa,CAAC;AAO7E;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,KAAK,iBAuBrD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,iBAiF9C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,aAA6E,CAAC;AAE/G,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA8E/E;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA0G5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,iBAgD7E"}
@@ -0,0 +1,399 @@
1
+ /**
2
+ * `abx storage` — stateless byte-custody commands: show the resolved-effective config, check
3
+ * whether a locator is actually retrievable yet (not just accepted), upload one file and print
4
+ * its locator, and Turbo (arweave) balance/topup. See `abx storage --help` for the sub-commands.
5
+ */
6
+ import { copyFileSync, existsSync, readFileSync, statSync } from 'node:fs';
7
+ import { basename, resolve as resolvePath } from 'node:path';
8
+ import { contentIdFromLocator, makeWalletClient } from '@artblocks/abx-sdk';
9
+ import { arweaveAddress, arweaveFunding, contentTypeFromPath, locatorStatus, probeStorageBackend, resolveBackend, turboBalanceForAddress, uploadAndLocate, } from '@artblocks/abx-storage';
10
+ import { CHAIN, arweaveKeyFilePath, backendResolution, ensureArweaveIdentityForUpload, loadArweaveJwk, noteArweavePlan, storageOptions, storageOverrides, } from '../config.js';
11
+ import { isDryRun, parseFlags, warnStrayFlags } from '../flags.js';
12
+ import { bold, c, dim, g, info, ok, warn } from '../output.js';
13
+ // ── storage ────────────────────────────────────────────────────────────────--
14
+ // Storage is STATELESS — there's no config file. A backend is chosen per command via flags
15
+ // (`--backend …`) or declared in .env (ABX_STORAGE_BACKEND, …); secrets are env-only. `show`
16
+ // prints the resolved-effective config with provenance so there's never a hidden choice.
17
+ /**
18
+ * `abx storage backup-key [--out <path>]` — back up the managed Turbo/Arweave key. It signs uploads
19
+ * AND holds prepaid credits, so losing it strands the credits. Low-stakes (a few $ of credit), but
20
+ * we still COPY the file rather than print it — a key pasted into a terminal / agent log is leaked.
21
+ * With no `--out`, just report where it lives and how to back it up.
22
+ */
23
+ export async function cmdStorageBackupKey(flags) {
24
+ const src = arweaveKeyFilePath();
25
+ if (process.env.ARWEAVE_JWK) {
26
+ info('Turbo identity comes from ARWEAVE_JWK (env), not a managed file — back up that env value yourself.');
27
+ return;
28
+ }
29
+ if (!existsSync(src)) {
30
+ throw new Error(`no managed Arweave key yet at ${src} — it's created on your first Turbo upload (or set ARWEAVE_JWK / ABX_ARWEAVE_KEY_FILE to bring your own). Nothing to back up.`);
31
+ }
32
+ if (!flags.out) {
33
+ const jwk = loadArweaveJwk();
34
+ ok('Turbo/Arweave key — your storage credential');
35
+ if (jwk)
36
+ info(` address ${g(arweaveAddress(jwk))} ${dim('(holds your prepaid upload credits)')}`);
37
+ info(` file ${src}`);
38
+ info(` Back it up: ${bold('abx storage backup-key --out <path>')} ${dim('(copies the file; the key is never printed)')}`);
39
+ info(` ${dim('Low-stakes — only a few $ of upload credit — but lose it and those credits are stranded.')}`);
40
+ return;
41
+ }
42
+ const dest = resolvePath(flags.out);
43
+ if (existsSync(dest))
44
+ throw new Error(`refusing to overwrite ${dest} — choose a new path for the backup.`);
45
+ copyFileSync(src, dest);
46
+ ok(`backed up your Turbo/Arweave key → ${dest}`);
47
+ info(` ${dim(`Keep it private — it signs uploads + holds credits. Restore by setting ABX_ARWEAVE_KEY_FILE to it, or copying it back to ${src}.`)}`);
48
+ }
49
+ export async function cmdStorage(rest) {
50
+ const [sub, ...args] = rest;
51
+ const flags = parseFlags(args);
52
+ if (sub === 'set') {
53
+ throw new Error('`abx storage set` was removed — storage is now stateless (no config file). Choose a backend per command with ' +
54
+ 'flags (e.g. `abx deploy --backend ipfs --gateway https://…`), or declare defaults in .env ' +
55
+ '(ABX_STORAGE_BACKEND, ABX_IPFS_GATEWAY, ABX_S3_BUCKET, ABX_ARWEAVE_PROVIDER, …). See `abx storage show`.');
56
+ }
57
+ if (sub === 'balance' || sub === 'topup') {
58
+ return cmdStorageFunding(sub, flags);
59
+ }
60
+ if (sub === 'upload') {
61
+ return cmdStorageUpload(args[0], flags);
62
+ }
63
+ if (sub === 'backup-key') {
64
+ return cmdStorageBackupKey(flags);
65
+ }
66
+ if (sub === 'status') {
67
+ return cmdStorageStatus(args[0], flags);
68
+ }
69
+ // show (default) — the RESOLVED effective config + where each value came from. No persisted state.
70
+ //
71
+ // Per-command flags are honored here, exactly as `upload`/`status`/`balance` honor them. This used to
72
+ // read env-only, so `abx storage show --backend ipfs --gateway <url>` reported `backend: fs` while its
73
+ // OWN output said "choose per command: --backend … --gateway …" — advertising flags it then discarded.
74
+ // That was invisible until every command grew an unknown-flag notice, which correctly called it out
75
+ // (the flags really were ignored). Showing what a given set of flags WOULD resolve to is the whole
76
+ // point of a resolution preview, and `backendResolution` already reports `source: 'flag'` for it.
77
+ const overrides = storageOverrides(flags);
78
+ const { backend, source } = backendResolution(overrides);
79
+ const opts = storageOptions(overrides);
80
+ const prov = (v, env, dflt) => process.env[env] ? `${v} ${dim('(env ' + env + ')')}` : `${v ?? dflt} ${dim('(default)')}`;
81
+ console.log(bold('\n storage') + dim(' — resolved per-invocation; no config file, secrets in .env'));
82
+ console.log(` backend: ${g(backend)} ${dim('(' + (source === 'flag' ? '--backend' : source === 'env' ? 'env ABX_STORAGE_BACKEND' : 'default') + ')')}`);
83
+ if (opts.cloud)
84
+ info(`cloud: endpoint=${prov(opts.cloud.endpoint, 'ABX_S3_ENDPOINT', '-')} bucket=${prov(opts.cloud.bucket, 'ABX_S3_BUCKET', '-')} region=${prov(opts.cloud.region, 'ABX_S3_REGION', 'auto')} prefix=${prov(opts.cloud.prefix, 'ABX_S3_PREFIX', 'abx/content/')}`);
85
+ if (opts.ipfs)
86
+ info(`ipfs: mode=${prov(opts.ipfs.mode, 'ABX_IPFS_MODE', 'kubo')} gateway=${prov(opts.ipfs.gateway, 'ABX_IPFS_GATEWAY', '-')} apiUrl=${prov(opts.ipfs.apiUrl, 'ABX_IPFS_API_URL', '-')}`);
87
+ if (opts.arweave) {
88
+ info(`arweave: provider=${prov(opts.arweave.provider, 'ABX_ARWEAVE_PROVIDER', 'turbo')} gateway=${prov(opts.arweave.gateway, 'ABX_ARWEAVE_GATEWAY', 'https://arweave.net')}${opts.arweave.uploadUrl ? ` uploadUrl=${opts.arweave.uploadUrl}` : ''}`);
89
+ if ((opts.arweave.provider ?? 'turbo') === 'turbo') {
90
+ const jwk = loadArweaveJwk();
91
+ if (jwk)
92
+ info(` identity ${arweaveAddress(jwk)} ${dim(`(holds upload credits — back up ${arweaveKeyFilePath()})`)}`);
93
+ else
94
+ info(` ${dim('identity created on first upload; free under 100 KB. `abx storage balance` to view credits')}`);
95
+ }
96
+ }
97
+ console.log(dim('\n choose per command: --backend <fs|cloud|ipfs|arweave> [--gateway/--bucket/--region/…] · or declare in .env'));
98
+ console.log(dim(' secrets from env only: ABX_S3_ACCESS_KEY_ID · ABX_S3_SECRET_ACCESS_KEY · PINATA_JWT · ARWEAVE_UPLOAD_TOKEN · ARWEAVE_JWK'));
99
+ // --check goes beyond "is this CONFIGURED" to "does a write actually reach the URL a token
100
+ // would bake on-chain." cloud gets a real PUT (API) + GET (public base) round trip — the only
101
+ // check that catches the R2/S3 endpoint-vs-public-base trap; ipfs/fs reuse their own health()
102
+ // (gateway/API reachability, dir writability — no upload); arweave adds a balance READ, never a
103
+ // paid upload. Exit code is meaningful: 0 ok, 1 any ✗ — so a script can gate a launch on this.
104
+ if (flags.check !== undefined) {
105
+ console.log(dim('\n checking — a real read/write against the resolved config (no paid upload, no ipfs pin)…'));
106
+ try {
107
+ const result = await probeStorageBackend(opts);
108
+ if (result.ok) {
109
+ ok(`${result.backend}: ${result.detail}`);
110
+ }
111
+ else {
112
+ warn(`${result.backend}: ${result.detail}`);
113
+ if (result.putUrl)
114
+ info(` put ${result.putUrl}`);
115
+ if (result.publicUrl)
116
+ info(` get ${result.publicUrl}`);
117
+ process.exitCode = 1;
118
+ }
119
+ }
120
+ catch (err) {
121
+ warn(`${backend}: ${err.message}`);
122
+ process.exitCode = 1;
123
+ }
124
+ }
125
+ console.log('');
126
+ }
127
+ /**
128
+ * `abx storage status <locator>` — is it **retrievable** yet, not just accepted?
129
+ *
130
+ * The gap this closes: an upload service answers "accepted" the moment it holds your bytes, a gateway
131
+ * answers "serving" only once they reach it, and on Arweave that runs to minutes. Two independent
132
+ * integrators built their own version of this check eight days apart; the second saw 32/32 renders
133
+ * 404 on `arweave.net` while 22/32 already served elsewhere and the uploader said `CONFIRMED`. The
134
+ * expensive part is what a creator does next: a placeholder on a fresh drop reads as a failed render,
135
+ * so you re-run `abx render --force` and re-upload everything for nothing.
136
+ */
137
+ export const STORAGE_STATUS_FLAGS = new Set(['json', 'gateway', 'backend', 'primary-only', 'timeout']);
138
+ export async function cmdStorageStatus(locator, flags) {
139
+ if (!locator || locator.startsWith('--')) {
140
+ console.error('usage: abx storage status <locator> [--json] [--gateway <url>] [--primary-only]\n' +
141
+ ' <locator> — ar://<txid> · ipfs://<cid> · an https:// gateway URL · or a bare txid/CID\n');
142
+ process.exitCode = 1;
143
+ return;
144
+ }
145
+ warnStrayFlags(flags, STORAGE_STATUS_FLAGS, 'storage status');
146
+ const jsonMode = flags.json !== undefined;
147
+ // The gateway that matters is the one a baked locator resolves through, so default to the active
148
+ // backend's configured gateway rather than a hardcoded host — otherwise the verdict is about a
149
+ // gateway this project will never use.
150
+ const opts = storageOptions(storageOverrides(flags));
151
+ const configured = flags.gateway ?? opts.arweave?.gateway ?? opts.ipfs?.gateway ?? undefined;
152
+ const status = await locatorStatus(locator, {
153
+ gateway: configured,
154
+ primaryOnly: flags['primary-only'] !== undefined,
155
+ timeoutMs: flags.timeout === undefined ? undefined : Number(flags.timeout),
156
+ });
157
+ if (jsonMode) {
158
+ process.stdout.write(JSON.stringify(status, null, 2) + '\n');
159
+ // A program's whole reason to call this is to gate on it, so the verdict is also the exit code:
160
+ // 0 = ready, 1 = not yet. `until abx storage status <loc> --json; do sleep 10; done` just works.
161
+ if (status.readiness !== 'ready')
162
+ process.exitCode = 1;
163
+ return;
164
+ }
165
+ const probeLine = (p, label) => {
166
+ const verdict = p.serving
167
+ ? `${g('serving')}`
168
+ : p.status !== null
169
+ ? `${c.orange}${p.status}${c.reset}`
170
+ : `${c.orange}no response${c.reset}`;
171
+ const size = p.bytes !== null ? dim(` · ${p.bytes < 1024 ? `${p.bytes} B` : `${(p.bytes / 1024).toFixed(1)} KB`}`) : '';
172
+ const type = p.contentType ? dim(` · ${p.contentType.split(';')[0]}`) : '';
173
+ const why = p.error ? dim(` · ${p.error}`) : '';
174
+ console.log(` ${label} ${bold(p.gateway)} → ${verdict}${size}${type} ${dim(`${p.ms}ms`)}${why}`);
175
+ };
176
+ console.log(`\n ${bold('storage status')} ${dim(`— ${status.network} · ${status.id.length > 60 ? status.id.slice(0, 60) + '…' : status.id}`)}`);
177
+ probeLine(status.primary, dim('your gateway '));
178
+ for (const a of status.alternates)
179
+ probeLine(a, dim('also '));
180
+ console.log('');
181
+ if (status.readiness === 'ready') {
182
+ ok(`${bold('ready')} — your gateway serves these bytes. Safe to reference in a token.`);
183
+ }
184
+ else if (status.readiness === 'propagating') {
185
+ const where = status.alternates.filter((a) => a.serving).map((a) => a.gateway).join(', ');
186
+ warn(`${bold('propagating')} — the data is provably on the network (${where} serves it) but ${bold(status.primary.gateway)} hasn't caught up.`);
187
+ info('Waiting is the fix. Do NOT re-render or re-upload — the bytes are already stored, and a second upload just pays twice.');
188
+ if (status.network === 'arweave') {
189
+ info(`To serve sooner from a gateway that already has it, set ${bold('ABX_ARWEAVE_GATEWAY')} before the upload that bakes the locator ${dim('(it cannot be repaired afterwards — the gateway is part of the stored value).')}`);
190
+ }
191
+ }
192
+ else {
193
+ // Never call this "propagating": from outside, a settling locator and a wrong one look the same.
194
+ warn(`${bold('not retrievable')} — no gateway probed is serving it.`);
195
+ // One exception worth reading the statuses for. Gateways answer 404 for "I don't have these
196
+ // bytes" (settling and wrong are identical there) but 400 for "that isn't a valid id at all".
197
+ // Every probe agreeing on a non-404 client error is real evidence, and it matters because the
198
+ // inverse mistake — waiting out a typo — costs more than a needless re-upload.
199
+ const probes = [status.primary, ...status.alternates];
200
+ const answered = probes.filter((p) => p.status !== null);
201
+ const allInvalid = answered.length > 0 && answered.every((p) => p.status >= 400 && p.status < 500 && p.status !== 404);
202
+ if (allInvalid) {
203
+ info(`every gateway rejected the id itself (${answered.map((p) => p.status).join(', ')}), not merely "don't have it" — so this is very likely a ${bold('malformed locator')} (truncated txid/CID, or a stray character), not propagation. Re-check the value you stored; waiting will not fix it.`);
204
+ }
205
+ else {
206
+ info('Two causes, and this check cannot tell them apart: it is still settling (wait and re-run — minutes on Arweave), or the locator is wrong (a truncated txid/CID, or the upload never completed).');
207
+ }
208
+ }
209
+ console.log(`\n ${dim('gate a script on this:')} ${bold(`abx storage status ${locator} --json`)} ${dim('(exit 0 only when ready)')}\n`);
210
+ if (status.readiness !== 'ready')
211
+ process.exitCode = 1;
212
+ }
213
+ /**
214
+ * `abx storage upload <path> [--backend ipfs|arweave|cloud]` — upload one file to a durable
215
+ * backend and print the **locator** to point at. This is the missing first half of the data-plane
216
+ * attach flow (`abx attach` takes a URI it assumes you already have): it hands you an `ipfs://` /
217
+ * `ar://` (content-addressed) or `<publicBase>/<key>` (cloud) URI, then prints the ready-to-run
218
+ * `abx attach` line. Reuses the exact upload path a deploy uses (resolve backend → put → locator),
219
+ * so the locator is identical to what a deploy would bridge.
220
+ */
221
+ export async function cmdStorageUpload(path, flags) {
222
+ if (!path || path.startsWith('--')) {
223
+ console.error('usage: abx storage upload <path> [--backend ipfs|arweave|cloud] [--key <name>] [--json]\n uploads one file and prints its locator (the URI `abx attach` wants); --json emits it as data.\n');
224
+ process.exitCode = 1;
225
+ return;
226
+ }
227
+ const abs = resolvePath(path);
228
+ // Stat BEFORE reading — a raw `readFileSync` on a missing path or a directory throws a bare
229
+ // Node errno (ENOENT / "EISDIR: illegal operation on a directory, read") that names neither the
230
+ // mistake nor the fix. This command uploads exactly one file (it exists to hand `abx attach` a
231
+ // locator for one asset); a directory has no locator to return, so name that up front instead of
232
+ // crashing partway through. Directory content is NOT pre-uploaded by this command at all — it is
233
+ // uploaded by the deploy commands themselves as part of building the collection (`abx deploy-series
234
+ // --dir <folder>` for a media Series, `abx deploy-code --code-dir <folder>` for a code/generator
235
+ // build), so there is no standalone "upload this folder" step to point at.
236
+ let stat;
237
+ try {
238
+ stat = statSync(abs);
239
+ }
240
+ catch {
241
+ throw new Error(`no file at ${abs} — check the path (abx storage upload <path>).`);
242
+ }
243
+ if (stat.isDirectory()) {
244
+ throw new Error(`${abs} is a directory — \`abx storage upload\` takes a single FILE and hands back a locator for it. ` +
245
+ 'A folder of media is uploaded by the deploy command that builds the collection, not as a separate ' +
246
+ 'pre-upload step: `abx deploy-series --dir <folder> …` (a multi-token image Series) or ' +
247
+ '`abx deploy-code --code-dir <folder> …` (a code/generator build). If you want a locator for one file ' +
248
+ 'in this folder, pass that file\'s path instead.');
249
+ }
250
+ let bytes;
251
+ try {
252
+ bytes = new Uint8Array(readFileSync(abs));
253
+ }
254
+ catch (err) {
255
+ // e.g. EACCES on an unreadable file — same treatment: name the file and the fix, not the errno.
256
+ throw new Error(`can't read ${abs}: ${err.code ?? err.message} — check its permissions.`);
257
+ }
258
+ const contentType = contentTypeFromPath(abs);
259
+ const opts = storageOptions(storageOverrides(flags));
260
+ const backend = resolveBackend(opts);
261
+ if (backend.id === 'fs') {
262
+ throw new Error("the 'fs' backend has no public URL — an attached file must be reachable off this machine. " +
263
+ 'Upload with `--backend arweave` (pay-once permanent) or `--backend ipfs` (keep it pinned), or `--backend cloud` (your S3/R2).');
264
+ }
265
+ const jsonMode = flags.json !== undefined;
266
+ if (!jsonMode)
267
+ noteArweavePlan(opts, bytes.length); // free-vs-credit readout for the arweave lane
268
+ const name = (flags.key && flags.key !== 'true' ? flags.key : basename(abs)).replace(/^\/+/, '');
269
+ // --dry-run: an upload is IRREVERSIBLE and can happen even keyless (Arweave's free tier under
270
+ // 100 KB auto-creates an identity), so a "preview" that actually uploaded would surprise. Show
271
+ // the plan (backend, size, declared type, locator shape) and upload nothing.
272
+ if (isDryRun(flags)) {
273
+ const shape = backend.publicBase ? `${backend.publicBase.replace(/\/+$/, '')}/${name}` : `<${backend.id}-gateway>/<root>/${name}`;
274
+ console.log(`\n ${bold('◆ storage upload')} ${dim('(dry run — nothing uploaded)')}`);
275
+ console.log(` ${dim('file'.padEnd(10))} ${basename(abs)} ${dim(`(${bytes.length} bytes, ${contentType})`)}`);
276
+ console.log(` ${dim('backend'.padEnd(10))} ${backend.id}`);
277
+ // Name the IPFS mode, and say what an absent credential actually means. There is no silent
278
+ // fallback to local `fs` (an earlier skill line wrongly claimed one) — without PINATA_JWT the
279
+ // backend resolves to kubo against a LOCAL node, so a dry run that looked fine would fail at
280
+ // upload for anyone not running one. A preview should surface that, not defer it to the failure.
281
+ if (backend.id === 'ipfs' && !process.env.PINATA_JWT && !process.env.ABX_IPFS_MODE) {
282
+ warn(`no ${bold('PINATA_JWT')} set → this resolves to a LOCAL IPFS node (kubo at ${process.env.ABX_IPFS_API_URL ?? 'http://127.0.0.1:5001'}). The real upload fails unless that node is running — set PINATA_JWT for the managed lane, or ${bold('--backend arweave')} for no-setup permanent storage.`);
283
+ }
284
+ console.log(` ${dim('locator'.padEnd(10))} ${shape} ${dim('(filename preserved → declared type survives)')}`);
285
+ const shapeForAttach = backend.id === 'ipfs' ? `ipfs://<cid>/${name}` : backend.id === 'arweave' ? `ar://<txid>/${name}` : shape;
286
+ console.log(dim(`\n Re-run without --dry-run to upload, then: `) + `${g(`abx attach <address> <key> ${shapeForAttach}`)}\n`);
287
+ return;
288
+ }
289
+ // In --json mode nothing but the JSON may touch stdout; progress still goes out, on stderr.
290
+ const progress = (line) => (jsonMode ? process.stderr.write(line + '\n') : console.log(line));
291
+ progress(` uploading ${bold(basename(abs))} ${dim(`(${bytes.length} bytes, ${contentType})`)} to '${backend.id}' …`);
292
+ // The returned locator MUST carry the filename so the declared mimeType survives when attached
293
+ // (the on-chain field has no MIME slot — the URL extension IS the declaration). uploadAndLocate
294
+ // encapsulates the capability-based branch (cloud key / dir-wrap / bare fallback).
295
+ const { locator, filenamePreserved, fallbackReason } = await uploadAndLocate(backend, name, { bytes, contentType });
296
+ if (!filenamePreserved && fallbackReason) {
297
+ const msg = `couldn't wrap the file with its name (${fallbackReason}) — the locator has no extension, so its declared type will be application/octet-stream when attached.`;
298
+ if (jsonMode)
299
+ process.stderr.write(` ⚠ ${msg}\n`);
300
+ else
301
+ warn(msg);
302
+ }
303
+ // --json: the locator as data, not as prose. An integrator scraped this line, captured the ANSI
304
+ // colour codes along with the URL, wrote the result into a STORED player URL, and only found out
305
+ // when it 404'd in production. A value a program needs must be obtainable without parsing output.
306
+ if (jsonMode) {
307
+ process.stdout.write(JSON.stringify({ locator, attachLocator: attachLocator(backend.id, locator), backend: backend.id, name, bytes: bytes.length, contentType, filenamePreserved }) + '\n');
308
+ return;
309
+ }
310
+ const forAttach = attachLocator(backend.id, locator);
311
+ console.log(` ${g('✓')} uploaded → ${bold(locator)}`);
312
+ if (contentType === 'application/octet-stream') {
313
+ warn(`no known extension on ${basename(abs)} → its declared type will be application/octet-stream when attached.`);
314
+ }
315
+ console.log(dim('\n attach it to a token (pick any key):\n') + ` ${g(`abx attach <address> <key> ${forAttach}`)}\n`);
316
+ if (forAttach !== locator) {
317
+ console.log(dim(` ${bold(forAttach)} — not the https URL above — is what attach wants: it stores the bare id, so a\n`) +
318
+ dim(` gateway change is later one ${bold('abx set-gateway')} tx instead of a re-attach.\n`));
319
+ }
320
+ }
321
+ /**
322
+ * The locator `abx attach` should be handed for an uploaded file.
323
+ *
324
+ * The backends return an UPLOAD-gateway https URL, because that is the production-safe form an NFT
325
+ * `image` needs. `attach` reads the scheme to pick the on-chain representation, so handing it that
326
+ * https URL stores the attachment as a plain `url` — the gateway host welded into the value, no
327
+ * `set-gateway` repoint, exactly the coupling the ipfs/arweave representations exist to avoid. An
328
+ * agent followed this command's own printed next step and silently downgraded the attachment.
329
+ *
330
+ * So for the two content-addressed backends we hand back the scheme form (`ipfs://<cid>/<name>`,
331
+ * `ar://<txid>/<name>`) and keep the https URL as the browsable one. `cloud` is unchanged: an https
332
+ * CDN locator IS its address, with no identity underneath to separate out.
333
+ */
334
+ export function attachLocator(backendId, locator) {
335
+ if (backendId !== 'ipfs' && backendId !== 'arweave')
336
+ return locator;
337
+ const contentId = contentIdFromLocator(backendId, locator);
338
+ if (!contentId)
339
+ return locator;
340
+ return `${backendId === 'ipfs' ? 'ipfs' : 'ar'}://${contentId}`;
341
+ }
342
+ /**
343
+ * `abx storage balance` / `abx storage topup --usd <n>` — dispatch to the active provider's
344
+ * funding capability. Generic verbs, provider chosen in config: Turbo exposes prepaid credits;
345
+ * a provider without funding (http-bundler) gets a clear "fund the wallet directly" instead.
346
+ */
347
+ export async function cmdStorageFunding(sub, flags) {
348
+ const opts = storageOptions(storageOverrides(flags));
349
+ if (opts.backend !== 'arweave') {
350
+ throw new Error(`\`abx storage ${sub}\` applies to the arweave backend; the active backend is '${opts.backend}'. Re-run with \`--backend arweave\` (e.g. \`abx storage ${sub} --backend arweave\`), or set \`ABX_STORAGE_BACKEND=arweave\` in .env.`);
351
+ }
352
+ ensureArweaveIdentityForUpload(opts); // so there's an address to fund / read
353
+ const funding = await arweaveFunding(opts.arweave); // throws a clear reason if the provider has no balance
354
+ const address = await funding.address();
355
+ // The active identity determines what the address IS + how to read the fund note.
356
+ const isEthLane = !!(opts.arweave?.ethSignerKey || opts.arweave?.remoteEth);
357
+ const identityNote = isEthLane
358
+ ? 'This is your Ethereum wallet acting as a Turbo identity (--storage-signer eth) — credits attach to this address.'
359
+ : `This is your Turbo/Arweave key (${arweaveKeyFilePath()}), NOT your Ethereum wallet — credits attach to THIS key.`;
360
+ if (sub === 'balance') {
361
+ const { credits, winc } = await funding.balance();
362
+ ok(`Turbo balance for ${g(address)}`);
363
+ info(` ${bold(credits)} credits ${dim(`(${winc} winc)`)}`);
364
+ info(` ${dim(identityNote)}`);
365
+ // On the managed-key lane, ALSO show the creator's ETH wallet's Turbo balance (queryable by
366
+ // address, no key) so "use my wallet's credits" is visible without a failed upload first.
367
+ if (!isEthLane) {
368
+ let wallet = flags.for;
369
+ if (!wallet)
370
+ try {
371
+ wallet = makeWalletClient({ chainKey: CHAIN }).account.address;
372
+ }
373
+ catch { /* no key */ }
374
+ const wb = wallet ? await turboBalanceForAddress(wallet, 'ethereum') : null;
375
+ if (wb && Number(wb.winc) > 0) {
376
+ info(` ${dim('↳ your ETH wallet')} ${g(wallet)} ${dim('holds')} ${bold(wb.credits)} ${dim('Turbo credits — spend those with')} ${bold('--storage-signer eth')} ${dim('(no top-up needed).')}`);
377
+ }
378
+ else if (wallet) {
379
+ info(` ${dim(`↳ your ETH wallet ${wallet} has no Turbo credits either. (Pass --for <addr> to check a different wallet.)`)}`);
380
+ }
381
+ }
382
+ info(' Under 100 KB always uploads free; credits cover larger files. One-time cost — no recurring fee.');
383
+ return;
384
+ }
385
+ // topup
386
+ const usd = Number(flags.usd);
387
+ if (!Number.isFinite(usd) || usd <= 0) {
388
+ throw new Error('top-up needs a positive --usd amount, e.g. `abx storage topup --usd 10`.');
389
+ }
390
+ const { url } = await funding.topup({ usd });
391
+ ok(`Turbo top-up: $${usd} → ${g(address)}`);
392
+ info(` ${dim(`Funds the address above — ${identityNote}`)}`);
393
+ info(' Pay by card (Stripe) at the link below — one-time, funds permanent storage, no recurring fee:');
394
+ console.log(` ${url}`);
395
+ info(` ${dim('Link not opening? Fallback: go to')} ${bold('https://turbo-topup.com')} ${dim('and fund this exact address:')}`);
396
+ console.log(` ${g(address)}`);
397
+ info(' Credits land on the address above and persist for future uploads. Re-check with `abx storage balance`.');
398
+ }
399
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/commands/storage.ts"],"names":[],"mappings":"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"}