@artblocks/abx-cli 0.1.0-alpha.5 → 0.1.0-alpha.7
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/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/main.js +233 -75
- package/dist/main.js.map +1 -1
- package/dist/prompt.d.ts +17 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +19 -0
- package/dist/prompt.js.map +1 -0
- package/dist/signer.d.ts.map +1 -1
- package/dist/signer.js +7 -0
- package/dist/signer.js.map +1 -1
- package/dist/update-check.d.ts +31 -4
- package/dist/update-check.d.ts.map +1 -1
- package/dist/update-check.js +62 -11
- package/dist/update-check.js.map +1 -1
- package/package.json +4 -4
- package/skill/SKILL.md +6 -4
package/dist/prompt.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive-prompt helpers.
|
|
3
|
+
*
|
|
4
|
+
* These live outside `main.ts` on purpose: `main.ts` calls `main()` at module scope, so importing it
|
|
5
|
+
* from a test RUNS the CLI. Anything worth unit-testing belongs in a module that only defines things.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Does this answer to a `[Y/n]` prompt mean "no"?
|
|
9
|
+
*
|
|
10
|
+
* Used by `abx doctor`'s offer to install/resync the agent skill, which defaults to YES so the
|
|
11
|
+
* documented flow (`npm i -g @artblocks/abx-cli` → `abx doctor`) sets the agent up in one pass. Since
|
|
12
|
+
* Enter accepts, the exact refusal set is what matters: an over-eager match would refuse a "yes", and
|
|
13
|
+
* a sloppy `/^n/i` would swallow anything starting with n. Only the explicit forms decline; the caller
|
|
14
|
+
* maps EOF (Ctrl-D) to `'n'` so a closed stream never writes files.
|
|
15
|
+
*/
|
|
16
|
+
export declare function declinesSkillInstall(answer: string): boolean;
|
|
17
|
+
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE5D"}
|
package/dist/prompt.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive-prompt helpers.
|
|
3
|
+
*
|
|
4
|
+
* These live outside `main.ts` on purpose: `main.ts` calls `main()` at module scope, so importing it
|
|
5
|
+
* from a test RUNS the CLI. Anything worth unit-testing belongs in a module that only defines things.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Does this answer to a `[Y/n]` prompt mean "no"?
|
|
9
|
+
*
|
|
10
|
+
* Used by `abx doctor`'s offer to install/resync the agent skill, which defaults to YES so the
|
|
11
|
+
* documented flow (`npm i -g @artblocks/abx-cli` → `abx doctor`) sets the agent up in one pass. Since
|
|
12
|
+
* Enter accepts, the exact refusal set is what matters: an over-eager match would refuse a "yes", and
|
|
13
|
+
* a sloppy `/^n/i` would swallow anything starting with n. Only the explicit forms decline; the caller
|
|
14
|
+
* maps EOF (Ctrl-D) to `'n'` so a closed stream never writes files.
|
|
15
|
+
*/
|
|
16
|
+
export function declinesSkillInstall(answer) {
|
|
17
|
+
return /^n(o|ope)?$/i.test(answer.trim());
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,MAAM,CAAC;AAG7C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhD,uGAAuG;AACvG,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAE9F,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;gGAC4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAiBD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAqED;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAShG;AAyFD;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,6FAA6F;IAC7F,IAAI,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C;oGACgG;IAChG,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,yEAAyE;IACzE,KAAK,IAAI,IAAI,CAAC;CACf;AASD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoJ1F"}
|
package/dist/signer.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createServer } from 'node:http';
|
|
2
2
|
import { writeFileSync } from 'node:fs';
|
|
3
3
|
import { makePublicClient, makeWalletClient, resolveChain, } from '@artblocks/abx-sdk';
|
|
4
|
+
import { faucetHint } from './config.js';
|
|
4
5
|
/** Announce the wallet sign-page URL: a stable, greppable line for humans/agents, plus an
|
|
5
6
|
* optional file write so a backgrounding agent can read the URL without parsing stdout. */
|
|
6
7
|
function announceSignUrl(signUrl, file) {
|
|
@@ -270,6 +271,12 @@ export async function openWalletSession(opts) {
|
|
|
270
271
|
const signUrl = `http://localhost:${boundPort}`;
|
|
271
272
|
console.log(`\n ${purple('◆')} ${bold('wallet signing')} ${dim(`(${chain.name}${opts.total ? `, ${opts.total} transactions` : ''})`)}`);
|
|
272
273
|
console.log(`\n Open ${bold(signUrl)} , connect a wallet${opts.expectedSigner ? ` (${opts.expectedSigner})` : ''}, and approve each step.`);
|
|
274
|
+
// Funding, said out loud at the one moment it matters. `warnUnfunded` can't help here: on the
|
|
275
|
+
// wallet lane without --for we don't know the address until the browser connects, so an empty
|
|
276
|
+
// wallet's first and only signal used to be a failed transaction. Name the requirement and the
|
|
277
|
+
// fix BEFORE they go pick a wallet, not after it reverts.
|
|
278
|
+
console.log(` ${dim(`Use a wallet holding a little ${chain.name} ETH — it pays gas, and it's free test ETH, not real money.`)}`);
|
|
279
|
+
console.log(` ${dim(`None yet? ${faucetHint(opts.chainKey)}.`)}`);
|
|
273
280
|
announceSignUrl(signUrl, opts.signUrlFile);
|
|
274
281
|
console.log(` ${dim('The key never touches this process — only signed tx hashes come back. Ctrl-C to cancel.')}\n`);
|
|
275
282
|
const onSigint = () => fail(new Error('cancelled'));
|
package/dist/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
|
package/dist/update-check.d.ts
CHANGED
|
@@ -11,15 +11,42 @@ export declare function readCliVersion(): string;
|
|
|
11
11
|
export declare function compareVersions(a: string, b: string): number;
|
|
12
12
|
/** True when `latest` is a strictly newer release than `current`. */
|
|
13
13
|
export declare function isNewer(latest: string, current: string): boolean;
|
|
14
|
-
/** GET the `latest` dist-tag's version from the npm registry. Aborts after {@link TIMEOUT_MS};
|
|
15
|
-
* returns null on any failure (offline, timeout, non-200, malformed body) — never throws. */
|
|
16
|
-
export declare function fetchLatestVersion(pkg?: string): Promise<string | null>;
|
|
17
14
|
/**
|
|
18
|
-
*
|
|
15
|
+
* The npm dist-tag channel a version belongs to, or null for a stable release.
|
|
16
|
+
* `0.1.0-alpha.5` → `alpha`; `0.1.0` → null; `1.0.0-5` → null (a bare numeric prerelease
|
|
17
|
+
* identifier is a version counter, not a channel name).
|
|
18
|
+
*
|
|
19
|
+
* Why this exists: the update check must not depend on prereleases living under `latest`.
|
|
20
|
+
* Today they do — `ci:publish` runs `pnpm -r publish` with no `--tag`, so npm points `latest`
|
|
21
|
+
* at each new alpha and asking for `/latest` happens to find it. That breaks the moment a
|
|
22
|
+
* stable release ships and the pipeline starts publishing prereleases under `--tag alpha`:
|
|
23
|
+
* `/latest` would only ever report the stable, and the nudge would go SILENT for every alpha
|
|
24
|
+
* user with nothing erroring. Resolving the running version's own channel alongside `latest`
|
|
25
|
+
* makes the check correct in both eras, whichever tag the pipeline uses.
|
|
26
|
+
*/
|
|
27
|
+
export declare function prereleaseChannel(version: string): string | null;
|
|
28
|
+
/** GET the version a dist-tag currently points at. Aborts after {@link TIMEOUT_MS}; returns null
|
|
29
|
+
* on any failure (offline, timeout, 404 for a tag that was never set, malformed body) — never throws. */
|
|
30
|
+
export declare function fetchDistTagVersion(tag: string, pkg?: string): Promise<string | null>;
|
|
31
|
+
/** The greatest of a set of semver strings, skipping nulls; null if none are usable. */
|
|
32
|
+
export declare function newestOf(versions: Array<string | null | undefined>): string | null;
|
|
33
|
+
/**
|
|
34
|
+
* The newest version published on any dist-tag relevant to `current`: `latest`, plus the running
|
|
35
|
+
* version's own prerelease channel when it has one ({@link prereleaseChannel}). Both are requested
|
|
36
|
+
* in parallel, so the wall clock stays one {@link TIMEOUT_MS} rather than two. Null when every
|
|
37
|
+
* request fails.
|
|
38
|
+
*/
|
|
39
|
+
export declare function fetchNewestPublished(current: string, pkg?: string): Promise<string | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Resolve the newest published version IF it is newer than `current`, else null. Reads a disk
|
|
19
42
|
* cache first and only hits the network when the cache is older than {@link TTL_MS}. On a network
|
|
20
43
|
* failure it still stamps the cache (backing off a full TTL instead of retrying every command).
|
|
21
44
|
* Swallows every error — the update check must never break or slow a real command.
|
|
22
45
|
*
|
|
46
|
+
* The cache is keyed by release channel as well as time: which dist-tags matter depends on the
|
|
47
|
+
* running version, so an entry computed on another channel (an alpha → stable upgrade, or back) is
|
|
48
|
+
* a miss rather than a day-stale answer. Entries written before this key existed simply miss once.
|
|
49
|
+
*
|
|
23
50
|
* `now` is injectable so tests can drive TTL behavior deterministically.
|
|
24
51
|
*/
|
|
25
52
|
export declare function checkForCliUpdate(current: string, now?: number): Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AA6BA;;;oFAGoF;AACpF,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA+B5D;AAED,qEAAqE;AACrE,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAiBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE;AAED;0GAC0G;AAC1G,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxF;AAED,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,CAIlF;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAI7F;AAMD;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8BzG;AAED;oDACoD;AACpD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMtD,CAAC;AAEF;;oFAEoF;AACpF,eAAO,MAAM,iBAAiB,UAO7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUnE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CASjD"}
|
package/dist/update-check.js
CHANGED
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
* offline, in CI, or opted out (ABX_NO_UPDATE_CHECK / --no-update-check — see main.ts).
|
|
9
9
|
* The check lives in the CLI binary, so it fires no matter which agent (Claude, Codex,
|
|
10
10
|
* Cursor, …) drives `abx` — one implementation, every agent covered.
|
|
11
|
+
*
|
|
12
|
+
* What it asks npm: the `latest` dist-tag AND (when the running version is a prerelease) that
|
|
13
|
+
* version's own channel tag, taking whichever is newer. Deliberately NOT just `latest` — see
|
|
14
|
+
* {@link prereleaseChannel} for the silent-failure mode that would otherwise arrive the day a
|
|
15
|
+
* stable release ships.
|
|
11
16
|
*/
|
|
12
17
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
13
18
|
import { dirname, join, resolve } from 'node:path';
|
|
@@ -15,7 +20,10 @@ import { fileURLToPath } from 'node:url';
|
|
|
15
20
|
import { homedir } from 'node:os';
|
|
16
21
|
const REGISTRY = 'https://registry.npmjs.org';
|
|
17
22
|
const PKG = '@artblocks/abx-cli';
|
|
18
|
-
|
|
23
|
+
// How long a check is cached. 6h rather than a day because releases land fast in the alpha line: a
|
|
24
|
+
// 24h cache let someone work a whole session — deploys included — against a CLI that had been
|
|
25
|
+
// superseded that morning and never hear about it. 6h caps that at roughly one sitting.
|
|
26
|
+
const TTL_MS = 6 * 60 * 60 * 1000;
|
|
19
27
|
const TIMEOUT_MS = 1500; // never hang a command on a slow/offline network
|
|
20
28
|
/** Read the running CLI's own version from its package.json. Resolves the same in dev
|
|
21
29
|
* (src/update-check.ts → packages/cli/package.json) and published (dist/update-check.js →
|
|
@@ -96,14 +104,33 @@ function parseSemver(v) {
|
|
|
96
104
|
pre: preStr ? preStr.split('.') : [],
|
|
97
105
|
};
|
|
98
106
|
}
|
|
99
|
-
/**
|
|
100
|
-
*
|
|
101
|
-
|
|
107
|
+
/**
|
|
108
|
+
* The npm dist-tag channel a version belongs to, or null for a stable release.
|
|
109
|
+
* `0.1.0-alpha.5` → `alpha`; `0.1.0` → null; `1.0.0-5` → null (a bare numeric prerelease
|
|
110
|
+
* identifier is a version counter, not a channel name).
|
|
111
|
+
*
|
|
112
|
+
* Why this exists: the update check must not depend on prereleases living under `latest`.
|
|
113
|
+
* Today they do — `ci:publish` runs `pnpm -r publish` with no `--tag`, so npm points `latest`
|
|
114
|
+
* at each new alpha and asking for `/latest` happens to find it. That breaks the moment a
|
|
115
|
+
* stable release ships and the pipeline starts publishing prereleases under `--tag alpha`:
|
|
116
|
+
* `/latest` would only ever report the stable, and the nudge would go SILENT for every alpha
|
|
117
|
+
* user with nothing erroring. Resolving the running version's own channel alongside `latest`
|
|
118
|
+
* makes the check correct in both eras, whichever tag the pipeline uses.
|
|
119
|
+
*/
|
|
120
|
+
export function prereleaseChannel(version) {
|
|
121
|
+
const first = parseSemver(version).pre[0];
|
|
122
|
+
if (!first || /^\d+$/.test(first))
|
|
123
|
+
return null;
|
|
124
|
+
return first;
|
|
125
|
+
}
|
|
126
|
+
/** GET the version a dist-tag currently points at. Aborts after {@link TIMEOUT_MS}; returns null
|
|
127
|
+
* on any failure (offline, timeout, 404 for a tag that was never set, malformed body) — never throws. */
|
|
128
|
+
export async function fetchDistTagVersion(tag, pkg = PKG) {
|
|
102
129
|
const ctrl = new AbortController();
|
|
103
130
|
const timer = setTimeout(() => ctrl.abort(), TIMEOUT_MS);
|
|
104
131
|
try {
|
|
105
|
-
// Scoped packages encode the '/' as %2F; the
|
|
106
|
-
const res = await fetch(`${REGISTRY}/${pkg.replace('/', '%2F')}
|
|
132
|
+
// Scoped packages encode the '/' as %2F; the /<tag> endpoint returns that version's document.
|
|
133
|
+
const res = await fetch(`${REGISTRY}/${pkg.replace('/', '%2F')}/${encodeURIComponent(tag)}`, { signal: ctrl.signal });
|
|
107
134
|
if (!res.ok)
|
|
108
135
|
return null;
|
|
109
136
|
const body = (await res.json());
|
|
@@ -116,19 +143,42 @@ export async function fetchLatestVersion(pkg = PKG) {
|
|
|
116
143
|
clearTimeout(timer);
|
|
117
144
|
}
|
|
118
145
|
}
|
|
146
|
+
/** The greatest of a set of semver strings, skipping nulls; null if none are usable. */
|
|
147
|
+
export function newestOf(versions) {
|
|
148
|
+
const found = versions.filter((v) => typeof v === 'string' && v.length > 0);
|
|
149
|
+
if (!found.length)
|
|
150
|
+
return null;
|
|
151
|
+
return found.reduce((max, v) => (compareVersions(v, max) > 0 ? v : max));
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* The newest version published on any dist-tag relevant to `current`: `latest`, plus the running
|
|
155
|
+
* version's own prerelease channel when it has one ({@link prereleaseChannel}). Both are requested
|
|
156
|
+
* in parallel, so the wall clock stays one {@link TIMEOUT_MS} rather than two. Null when every
|
|
157
|
+
* request fails.
|
|
158
|
+
*/
|
|
159
|
+
export async function fetchNewestPublished(current, pkg = PKG) {
|
|
160
|
+
const channel = prereleaseChannel(current);
|
|
161
|
+
const tags = channel ? ['latest', channel] : ['latest'];
|
|
162
|
+
return newestOf(await Promise.all(tags.map((t) => fetchDistTagVersion(t, pkg))));
|
|
163
|
+
}
|
|
119
164
|
function cachePath() {
|
|
120
165
|
return join(homedir(), '.cache', 'abx', 'update-check.json');
|
|
121
166
|
}
|
|
122
167
|
/**
|
|
123
|
-
* Resolve the
|
|
168
|
+
* Resolve the newest published version IF it is newer than `current`, else null. Reads a disk
|
|
124
169
|
* cache first and only hits the network when the cache is older than {@link TTL_MS}. On a network
|
|
125
170
|
* failure it still stamps the cache (backing off a full TTL instead of retrying every command).
|
|
126
171
|
* Swallows every error — the update check must never break or slow a real command.
|
|
127
172
|
*
|
|
173
|
+
* The cache is keyed by release channel as well as time: which dist-tags matter depends on the
|
|
174
|
+
* running version, so an entry computed on another channel (an alpha → stable upgrade, or back) is
|
|
175
|
+
* a miss rather than a day-stale answer. Entries written before this key existed simply miss once.
|
|
176
|
+
*
|
|
128
177
|
* `now` is injectable so tests can drive TTL behavior deterministically.
|
|
129
178
|
*/
|
|
130
179
|
export async function checkForCliUpdate(current, now = Date.now()) {
|
|
131
180
|
let latest = null;
|
|
181
|
+
const channel = prereleaseChannel(current) ?? '';
|
|
132
182
|
try {
|
|
133
183
|
const path = cachePath();
|
|
134
184
|
let cache = {};
|
|
@@ -139,16 +189,17 @@ export async function checkForCliUpdate(current, now = Date.now()) {
|
|
|
139
189
|
catch {
|
|
140
190
|
cache = {};
|
|
141
191
|
}
|
|
142
|
-
const
|
|
192
|
+
const sameChannel = (cache.channel ?? '') === channel;
|
|
193
|
+
const fresh = sameChannel && typeof cache.checkedAt === 'number' && now - cache.checkedAt < TTL_MS;
|
|
143
194
|
if (fresh) {
|
|
144
195
|
latest = typeof cache.latest === 'string' ? cache.latest : null;
|
|
145
196
|
}
|
|
146
197
|
else {
|
|
147
|
-
const fetched = await
|
|
148
|
-
latest = fetched ?? (typeof cache.latest === 'string' ? cache.latest : null);
|
|
198
|
+
const fetched = await fetchNewestPublished(current);
|
|
199
|
+
latest = fetched ?? (sameChannel && typeof cache.latest === 'string' ? cache.latest : null);
|
|
149
200
|
try {
|
|
150
201
|
mkdirSync(dirname(path), { recursive: true });
|
|
151
|
-
writeFileSync(path, JSON.stringify({ checkedAt: now, latest }));
|
|
202
|
+
writeFileSync(path, JSON.stringify({ checkedAt: now, latest, channel }));
|
|
152
203
|
}
|
|
153
204
|
catch {
|
|
154
205
|
/* a read-only HOME just means we re-check next run */
|
package/dist/update-check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artblocks/abx-cli",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.7",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ABX CLI ('abx') — the agentic UX surface of the Self-Host Toolkit (Layer 3). Deploy, index, serve, and demo a self-hosted ABX project end to end. Wraps the SDK; runs a different implementation and the protocol works identically.",
|
|
6
6
|
"type": "module",
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"viem": "^2.21.0",
|
|
41
|
+
"@artblocks/abx-indexer": "0.1.0-alpha.1",
|
|
42
|
+
"@artblocks/abx-storage": "0.1.0-alpha.0",
|
|
41
43
|
"@artblocks/abx-sdk": "0.1.0-alpha.0",
|
|
42
|
-
"@artblocks/abx-
|
|
43
|
-
"@artblocks/abx-token-api": "0.1.0-alpha.2",
|
|
44
|
-
"@artblocks/abx-storage": "0.1.0-alpha.0"
|
|
44
|
+
"@artblocks/abx-token-api": "0.1.0-alpha.3"
|
|
45
45
|
},
|
|
46
46
|
"optionalDependencies": {
|
|
47
47
|
"@artblocks/abx-effects": "0.1.0-alpha.0"
|
package/skill/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: abx-self-host
|
|
|
3
3
|
description: Launch and operate a self-hosted ABX NFT end to end with the ABX CLI (`abx`) on testnet — a 1/1 (`abx deploy`), a multi-token Series from a folder of media (`abx deploy-series`), or a generative/code drop (`abx deploy-code`). Covers on-chain vs off-chain metadata, storage custody (local disk, S3/R2, IPFS, Arweave), deploy + mint (now or pre-warmed at a predicted address), rendered thumbnails and on-chain traits for code art, primary sales via the shared fixed-price minter, and owner ops (transfer, refresh, re-point URIs, royalties, lock fields, pause/unpause, supply cap, delegate minting). Use when the user wants to self-host an ABX project, take an image to an NFT on testnet, deploy a collection from a folder of images, launch generative/code art, mint or run a primary sale, refresh a listing, operate a project they launched, choose a storage backend, or stand up hosting they own.
|
|
4
4
|
compatibility: Drives the abx CLI (@artblocks/abx-cli). Co-versioned with it — install/refresh with `abx skill install` so this skill matches the CLI's `abx version`. Requires Node 22.5+.
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.1.0-alpha.
|
|
6
|
+
version: "0.1.0-alpha.7"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# ABX Self-Host Toolkit (`abx`)
|
|
@@ -15,7 +15,9 @@ L3 agentic surface: image → live self-hosted NFT the creator owns — a **1/1*
|
|
|
15
15
|
## Read first (every session)
|
|
16
16
|
|
|
17
17
|
- **YOU run the `abx` commands — never tell the creator to run one.** You have a shell; use it. Run `doctor`, `ls`, `--dry-run`, `tokenuri`, `state`, `refresh`, `balance`, etc. yourself and read the output — don't paste a command and wait for them to run it or copy back results. The creator's hands-on steps are approving in their **browser wallet** (`--sign`), giving you a value you asked for (their address, a name), and **looking at the art in `abx preview`** — you run that command, but the URL it prints is theirs to open and play with ([Phase 0](#phase-0--make-the-work-first-skip-every-gate-below-until-its-good)). Even "next steps" after a deploy: **run the read-only ones** (`tokenuri` to prove it resolves) and **offer to run** the actions (`refresh`, `unpause`, `mint`) — don't hand over a list of commands to run. Exceptions: a genuinely interactive/again-in-their-env command (an OS login, `gcloud auth`), and the **in-chain Solidity lane's Foundry step** (`forge build/test/deploy` a renderer — `abx` never compiles/deploys Solidity; see [Code projects](#code-projects-generative--code-based-drops)) — then run it if you have the tool, else hand it over.
|
|
18
|
-
- **
|
|
18
|
+
- **Version drift — act on it, never just report it.** Two checks, both yours to fix, both **before** you deploy anything:
|
|
19
|
+
- **Skill ⇄ CLI.** This skill is co-versioned with the CLI. Run `abx version`, compare to this file's frontmatter `metadata.version`. Differ → `abx skill install`, then reload the skill before continuing.
|
|
20
|
+
- **CLI ⇄ npm.** If any `abx` command prints **`update available`**, upgrade it yourself: `npm i -g @artblocks/abx-cli@latest` (global install) or `npm i --save-dev @artblocks/abx-cli@latest` (project-local — match however it was installed), then `abx skill install`, then reload. Do **not** relay the notice and carry on: a stale CLI can hold canonical addresses that have since moved, so it deploys against dead singletons, and a mid-run `… is not a function` is usually this. You have a shell — upgrading is your job, not the creator's.
|
|
19
21
|
- **Resolve the CLI before you install anything — local beats global.** Probe `npx --no-install abx version` (project-local), then `abx version` (global); only install if both miss, and default to the **project-local** `npm install --save-dev @artblocks/abx-cli`. The package is `@artblocks/abx-cli`; `@artblocks/abx-sdk` is the library and ships no binary. Full ladder + why `--no-install` matters → [Setup](#setup--environment).
|
|
20
22
|
- **`abx doctor` first, always** — full preflight (Node, pnpm, RPC, signing key, storage). Fix any ✗ before deploying ([Setup](#setup--environment)). A missing public-base-url is not a "set up IPFS" signal: for tiny art go on-chain, for larger art pick an off-chain backend — see [Quick start](#quick-start).
|
|
21
23
|
- **Never collect secrets in chat.** Keys, `PINATA_JWT`, S3 secrets → the project's `.env`. The Arweave/Turbo key is a CLI-managed file (`.abx-self-host/arweave-key.json`) — never paste it. Name the var/file; never take the value.
|
|
@@ -65,8 +67,8 @@ Route by the **content** first, then apply the gates below. The three paths diff
|
|
|
65
67
|
| | **Demo** (`abx demo`) | **Real launch** (`abx deploy` → operate) |
|
|
66
68
|
|---|---|---|
|
|
67
69
|
| Art | generative-from-address | the creator's `--image` |
|
|
68
|
-
| Storage |
|
|
69
|
-
| Host URL |
|
|
70
|
+
| Storage | none — the SVG is inlined **on-chain** | a permanence decision |
|
|
71
|
+
| Host URL | none — nothing is hosted, nothing to bake | a public URL baked on-chain (off-chain custody only) |
|
|
70
72
|
| Key | any funded testnet key (the active `ABX_CHAIN`) | the wallet that should **own** it |
|
|
71
73
|
| Decisions | none — just run it | the framework below |
|
|
72
74
|
|