@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,102 @@
1
+ /**
2
+ * `abx submit-app` — optional post-deploy listing in the ABX App Store.
3
+ *
4
+ * Not part of deploy. A creator (or the agent driving them) opts in after the
5
+ * collection exists: mint one entry token through the store's gated minter, then
6
+ * write catalog copy as the registry's TokenOwner params. Same transactions as
7
+ * the store's `/submit` page; the CLI is the agent path.
8
+ *
9
+ * Catalog copy is NOT the collection's `--name` / `--description`. Those are NFT
10
+ * metadata. The store wants outcome copy — what someone can do — and this command
11
+ * requires those fields on purpose so an agent cannot silently reuse deploy flags.
12
+ */
13
+ import { type Address, type PreparedTx } from '@artblocks/abx-sdk';
14
+ import { type Flags } from '../flags.js';
15
+ /** Matches the App Store registry schema (`lib/submissions.ts` in abx-app-store). */
16
+ export declare const APP_CATEGORIES: readonly ["Create", "Games", "Physical world", "Records", "Coordination", "Utilities", "Developer tools"];
17
+ export declare const APP_STAGES: readonly ["Live", "Prototype", "Concept"];
18
+ export declare const APP_TONES: readonly ["acid", "coral", "blue", "violet", "amber", "mint"];
19
+ export declare const APP_RELATIONSHIP = "built-on-abx";
20
+ export declare const SUBMIT_APP_CATALOG_NOTE = "The on-chain listing is updated. Hosted catalog refresh timing is provider-owned; verify the displayed copy separately. Re-run this command to change the on-chain copy (no second mint).";
21
+ declare const PARAM_KEYS: readonly ["name", "summary", "description", "url", "urlLabel", "image", "mark", "tone", "category", "relationships", "stage", "tags"];
22
+ type ParamKey = (typeof PARAM_KEYS)[number];
23
+ /** Sequencer/RPC per-tx gas cap. A full param dump in one multicall exceeds it. */
24
+ export declare const MAX_CALLS_PER_TX = 3;
25
+ export type SubmitAppEntry = {
26
+ name: string;
27
+ summary: string;
28
+ description: string;
29
+ url: string;
30
+ urlLabel: string;
31
+ image: string;
32
+ mark: string;
33
+ tone: (typeof APP_TONES)[number];
34
+ category: (typeof APP_CATEGORIES)[number];
35
+ stage: (typeof APP_STAGES)[number];
36
+ tags: string[];
37
+ };
38
+ export type AppStoreAddresses = {
39
+ registry: Address;
40
+ minter: Address;
41
+ };
42
+ /**
43
+ * Catalog copy from flags. Requires name / summary / description so deploy identity
44
+ * cannot silently become the listing.
45
+ */
46
+ export declare function parseSubmitAppEntry(flags: Flags): SubmitAppEntry;
47
+ export declare function paramValues(entry: SubmitAppEntry): Record<ParamKey, string>;
48
+ export declare function resolveAppStoreAddresses(chainKey: string, flags?: Flags, env?: NodeJS.ProcessEnv): AppStoreAddresses;
49
+ export declare function chunkItems<T>(items: T[], size?: number): T[][];
50
+ export declare function buildParamOps(args: {
51
+ registry: Address;
52
+ tokenId: bigint;
53
+ entry: SubmitAppEntry;
54
+ chainId: number;
55
+ }): PreparedTx[];
56
+ export declare function batchParamOps(ops: PreparedTx[]): PreparedTx[];
57
+ /**
58
+ * Bounded, backed-off retry for ONLY the first metadata write immediately following a mint THIS
59
+ * run performed.
60
+ *
61
+ * `pinGas` (packages/sdk/src/execute.ts) is a provable-floor lie detector: it re-tries an estimate
62
+ * only when the number it got back is BELOW a gas floor it can compute in advance from bytes stored
63
+ * on-chain (its own docs walk through why). None of `buildParamOps`'s writes carry a `gasFloor` — a
64
+ * param write has no on-chain bytes to compute one from — so an estimate revert on any of them
65
+ * surfaces through `pinGas` immediately, with zero retries: `if (floor === 0n) throw err`. That is
66
+ * the right GENERAL behavior — an unfloored estimate revert is usually a real rejection ("caller is
67
+ * not the token owner"), and teaching `pinGas` to retry every unfloored revert would hide real ones
68
+ * behind a multi-second stall on every write the CLI makes, not just this one.
69
+ *
70
+ * This ONE call site is different in a way `pinGas` has no way to see: the token being written to is
71
+ * one THIS SAME PROCESS just minted a few lines up. Its estimate reverting is very likely the same
72
+ * read-after-write lag `execute.ts` already retries the nonce and the code-deposit gas for — the RPC
73
+ * answering the estimate hasn't caught up to the mint's block yet, so the registry's owner-gated
74
+ * param check reads a token that (from that node's point of view) does not exist yet — just on a
75
+ * write `pinGas` has no floor to detect it with. So the retry lives here, scoped to exactly the one
76
+ * write our own just-broadcast mint could have caused to fail this way (see `resumableConfigError`
77
+ * for what happens once the bound is spent).
78
+ */
79
+ export declare const FIRST_METADATA_WRITE_RETRY_DELAYS_MS: readonly [2000, 4000, 8000];
80
+ /**
81
+ * Takes a `send` thunk rather than a tx + lane opts so the retry policy is testable on its own — a
82
+ * fake `send` that fails a scripted number of times before succeeding, no RPC or signing involved —
83
+ * the same shape `sendMintThenParams` above already uses for its lane-agnostic send injection.
84
+ */
85
+ export declare function withFirstMetadataWriteRetry<T>(send: () => Promise<T>, delaysMs?: readonly number[]): Promise<T>;
86
+ /**
87
+ * Wrap an exhausted retry as an explicit resumable result instead of a bare estimate error. The mint
88
+ * already happened and is irreversible, and the collection's `claimed` gate — read at the top of
89
+ * `cmdSubmitApp`, before either lane decides whether to build a mint tx at all — means the NEXT
90
+ * invocation, even seconds later once the RPC has caught up, is guaranteed to skip straight to
91
+ * writing metadata onto THIS token rather than minting a second one (see `cmdSubmitApp`'s `claimed`
92
+ * read and its `if (claimed) { … } else { … }` branch just below it — a fresh mint is only ever
93
+ * prepared in the `else`). So the fix is always the same command again, never a different one — name
94
+ * that explicitly rather than leaving a raw revert on screen with no next step.
95
+ */
96
+ export declare function resumableConfigError(args: {
97
+ tokenId: bigint;
98
+ cause: unknown;
99
+ }): Error;
100
+ export declare function cmdSubmitApp(address: string | undefined, flags: Flags): Promise<void>;
101
+ export {};
102
+ //# sourceMappingURL=submit-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-app.d.ts","sourceRoot":"","sources":["../../src/commands/submit-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAOL,KAAK,OAAO,EAEZ,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAC,KAAK,KAAK,EAAW,MAAM,aAAa,CAAC;AAWjD,qFAAqF;AACrF,eAAO,MAAM,cAAc,2GAQjB,CAAC;AAEX,eAAO,MAAM,UAAU,2CAA4C,CAAC;AACpE,eAAO,MAAM,SAAS,+DAAgE,CAAC;AACvF,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,uBAAuB,8LACyJ,CAAC;AAE9L,QAAA,MAAM,UAAU,uIAaN,CAAC;AAEX,KAAK,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAgElC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,CAAC;AA4DrE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAchE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAe3E;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,KAAU,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,iBAAiB,CAenB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,SAAmB,GAAG,CAAC,EAAE,EAAE,CAKxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,UAAU,EAAE,CA+Bf;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAQ7D;AAoCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,oCAAoC,6BAAiC,CAAC;AAEnF;;;;GAIG;AACH,wBAAsB,2BAA2B,CAAC,CAAC,EACjD,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,QAAQ,GAAE,SAAS,MAAM,EAAyC,GACjE,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAC,GAAG,KAAK,CAOnF;AASD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAuR3F"}