@artblocks/abx-effects 0.1.0-alpha.4 → 0.1.0-alpha.6
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/harness.d.ts +73 -15
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +162 -22
- package/dist/harness.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +3 -1
- package/dist/render.js.map +1 -1
- package/package.json +3 -3
package/dist/harness.d.ts
CHANGED
|
@@ -35,6 +35,21 @@ export interface EffectContext {
|
|
|
35
35
|
export interface EffectOutputDecl {
|
|
36
36
|
key: string;
|
|
37
37
|
mimeType: string;
|
|
38
|
+
/**
|
|
39
|
+
* This output's content stitches into the metadata JSON (`specs/protocol/effects.md → Bound vs
|
|
40
|
+
* referenced`) — `traits` today. Bound output is published as capped inline **bytes**, because a
|
|
41
|
+
* locator can't work: the resolver assembles the content into `tokenURI`, so a pointer there would
|
|
42
|
+
* put a third-party fetch on its hottest read.
|
|
43
|
+
*
|
|
44
|
+
* Everything else is **referenced**: the PRODUCER holds the bytes and publishes a reachable
|
|
45
|
+
* locator. The resolver serves referenced output by redirect either way, so handing it the bytes
|
|
46
|
+
* buys no capability and costs it an object store — it refuses them with a `400`.
|
|
47
|
+
*
|
|
48
|
+
* Declared here, next to the mimeType, for the same reason the type is: the serving side must not
|
|
49
|
+
* have to guess. A declaration the resolver doesn't share (an effect whose bindings it doesn't
|
|
50
|
+
* implement) is refused loudly rather than stored unservable.
|
|
51
|
+
*/
|
|
52
|
+
bound?: boolean;
|
|
38
53
|
}
|
|
39
54
|
export interface EffectModule {
|
|
40
55
|
/** Lowercase dot-namespaced effect key (`render`, `inference.caption`, …). */
|
|
@@ -44,9 +59,10 @@ export interface EffectModule {
|
|
|
44
59
|
run(ctx: EffectContext): Promise<Record<string, EffectOutput | null>>;
|
|
45
60
|
}
|
|
46
61
|
/** One artifact registration — the row a runner records (co-located, via `recordArtifact`) or
|
|
47
|
-
*
|
|
48
|
-
* token's data plane without learning any effect's internals. `locator === null` means the
|
|
49
|
-
*
|
|
62
|
+
* registers (`/v1/effect-artifacts`) per declared output, so the resolver can enumerate the
|
|
63
|
+
* token's data plane without learning any effect's internals. `locator === null` means the content
|
|
64
|
+
* isn't reached by pointer: a BOUND output (held with the row / stitched into the JSON), or a
|
|
65
|
+
* co-located producer's bytes in the shared backend at `key`. */
|
|
50
66
|
export interface EffectArtifactRecord {
|
|
51
67
|
key: Hex;
|
|
52
68
|
address: string;
|
|
@@ -64,13 +80,17 @@ export interface RunnerOptions {
|
|
|
64
80
|
storage: StorageBackend;
|
|
65
81
|
effects: EffectModule[];
|
|
66
82
|
environmentId?: string;
|
|
67
|
-
/** When set,
|
|
83
|
+
/** When set, register each artifact with the resolver's control plane
|
|
68
84
|
* (POST /v1/effect-artifacts) so a resolver that does NOT share this backend's disk can serve it
|
|
69
|
-
* — a
|
|
70
|
-
*
|
|
85
|
+
* — a locator for referenced output, capped content for bound output
|
|
86
|
+
* (`specs/protocol/effects.md → Bound vs referenced`). Requires a backend that exposes a locator;
|
|
87
|
+
* the constructor refuses otherwise. Bearer only; never signs on-chain. Omit for the co-located
|
|
88
|
+
* topology (runner + resolver share one backend). */
|
|
71
89
|
adminToken?: string;
|
|
72
|
-
/**
|
|
73
|
-
* idempotent
|
|
90
|
+
/** Re-register artifacts that already exist in storage (not just freshly-rendered ones) — the
|
|
91
|
+
* idempotent repair that restores a resolver which lost its rows, and that lands a publish which
|
|
92
|
+
* failed transiently after the bytes were stored. **Default on** with `adminToken` (it costs a
|
|
93
|
+
* presence probe and a locator string); pass `false` to opt out. */
|
|
74
94
|
republish?: boolean;
|
|
75
95
|
/** Co-located topology: record each declared output into the resolver's artifact registry
|
|
76
96
|
* directly (the shared SQLite store) — the enumeration surface the manifest lists. Recorded on
|
|
@@ -109,6 +129,17 @@ export declare class EffectRunner {
|
|
|
109
129
|
private readonly pending;
|
|
110
130
|
private draining;
|
|
111
131
|
private idleWaiters;
|
|
132
|
+
/**
|
|
133
|
+
* Set once a publish fails for a reason retrying can't fix (a 4xx, an unusable locator). While
|
|
134
|
+
* latched, the runner renders NOTHING: a render whose publish can't land is a render that this
|
|
135
|
+
* runner's own idempotency probe will ask for again on the next sweep, and every sweep after —
|
|
136
|
+
* so continuing would burn Chromium and storage indefinitely to produce an artifact nobody can
|
|
137
|
+
* serve. One actionable error beats an infinite quiet loop. Cleared by fixing the config and
|
|
138
|
+
* restarting, or by an explicit `force` (the operator asserting they've fixed it).
|
|
139
|
+
*/
|
|
140
|
+
private publishLatch;
|
|
141
|
+
/** The startup handshake, run once and reused (see {@link preflight}). */
|
|
142
|
+
private preflightOnce;
|
|
112
143
|
constructor(opts: RunnerOptions);
|
|
113
144
|
/** Merge a notification into the queue and kick the drain. Returns the queue depth. */
|
|
114
145
|
enqueue(address: string, tokenIds?: string[], force?: boolean): number;
|
|
@@ -121,6 +152,20 @@ export declare class EffectRunner {
|
|
|
121
152
|
private drain;
|
|
122
153
|
/** All projects the resolver serves → sweep each code project. */
|
|
123
154
|
sweepAll(): Promise<SweepStats>;
|
|
155
|
+
/**
|
|
156
|
+
* The startup handshake for the publish topology — run once, before any render, so a
|
|
157
|
+
* misconfiguration costs a round trip instead of a Chromium launch. Checks the two things a
|
|
158
|
+
* producer can know up front:
|
|
159
|
+
*
|
|
160
|
+
* - the descriptor declares `abx-control-plane/v1` (which now carries the artifact-registry
|
|
161
|
+
* routes — there is no separate publish capability to negotiate) and serves our chain;
|
|
162
|
+
* - our credential actually works, via one authenticated control-plane read.
|
|
163
|
+
*
|
|
164
|
+
* A service's capabilities and a caller's permissions should never be discoverable only by
|
|
165
|
+
* crashing after the expensive part. Descriptor trouble is a WARNING (a node may be older than
|
|
166
|
+
* this field, and the publish still works); a definitive credential rejection latches.
|
|
167
|
+
*/
|
|
168
|
+
private preflight;
|
|
124
169
|
/** Sweep one project: run every effect for every token whose current output is missing.
|
|
125
170
|
* `opts.force` re-renders even when the current output already exists (the repair lane for a
|
|
126
171
|
* bad/blank/timed-out capture — the art is otherwise deterministic, so a normal sweep skips it). */
|
|
@@ -135,17 +180,30 @@ export declare class EffectRunner {
|
|
|
135
180
|
* is never here — it stays artifact-presence at the settled inputsHash. */
|
|
136
181
|
private reportStatus;
|
|
137
182
|
/**
|
|
138
|
-
*
|
|
139
|
-
* backend's disk can serve it.
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
183
|
+
* Register one stored output with the resolver's control plane so a node that doesn't share this
|
|
184
|
+
* backend's disk can serve it. The form follows the output's DECLARED class
|
|
185
|
+
* (`specs/protocol/effects.md → Bound vs referenced`), and the resolver enforces the same rule
|
|
186
|
+
* from its side — this is one contract, not a preference on either end:
|
|
187
|
+
*
|
|
188
|
+
* - **bound** (`traits`) → the content, capped. The resolver stitches it into the token JSON.
|
|
189
|
+
* - **referenced** (`image`, `print`, …) → a reachable locator from THIS backend. We hold the
|
|
190
|
+
* bytes; the resolver holds a pointer and redirects. If the backend can't produce a locator
|
|
191
|
+
* there is no legal publish, and that is a configuration error we refuse to paper over —
|
|
192
|
+
* the constructor's boot guard normally catches it before a single render is spent.
|
|
193
|
+
*
|
|
194
|
+
* `contentType` is the DECLARED mimeType.
|
|
143
195
|
*/
|
|
144
196
|
private publishArtifact;
|
|
145
197
|
/** Record one artifact row into the co-located registry (`RunnerOptions.recordArtifact`). */
|
|
146
198
|
private record;
|
|
147
|
-
/**
|
|
148
|
-
*
|
|
199
|
+
/**
|
|
200
|
+
* Re-register already-stored outputs for (effect, token) at the current inputsHash — no re-render.
|
|
201
|
+
* Cheap now that referenced output travels as a pointer: a presence probe plus a locator string,
|
|
202
|
+
* no byte read (only a bound output's small content is read). That is why it runs on every skip in
|
|
203
|
+
* the publish topology rather than being opt-in: it self-heals a resolver that lost its rows AND —
|
|
204
|
+
* the case that matters more — a publish that failed transiently after the bytes had already
|
|
205
|
+
* landed here, which the "is the artifact stored?" ledger would otherwise mark done forever.
|
|
206
|
+
*/
|
|
149
207
|
private republishFromStorage;
|
|
150
208
|
/** Re-record registry rows for outputs already stored at the current inputsHash — presence probes
|
|
151
209
|
* only, no byte reads, no re-render. The deterministic-image lane records its stable public URL
|
package/dist/harness.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,WAAW,CAAC;AAEpD,OAAO,
|
|
1
|
+
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"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"}
|
package/dist/harness.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { createServer } from 'node:http';
|
|
2
2
|
import { hexToString } from 'viem';
|
|
3
|
-
import { AbxServiceClient, buildTokenData, contentDigestOf, inputsHash, isCodeProject, renderArtifactKey, } from '@artblocks/abx-sdk';
|
|
3
|
+
import { AbxServiceClient, BOUND_ARTIFACT_MAX_BYTES, CONTROL_PLANE_INTERFACE, buildTokenData, contentDigestOf, inputsHash, isCodeProject, locatorRejectionReason, renderArtifactKey, } from '@artblocks/abx-sdk';
|
|
4
4
|
/** Give up on an artifact key after this many failed runs (a deterministically-crashing script
|
|
5
5
|
* must not hot-loop). In-memory: a runner restart, a NEW inputsHash (the state changed), or an
|
|
6
6
|
* explicit `force` all reset it. The failure itself is reported to the resolver with the error. */
|
|
7
7
|
const MAX_ATTEMPTS = 3;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
|
|
8
|
+
/** A publish that failed for a reason retrying can't fix (400/403/404 — the wrong shape, a token
|
|
9
|
+
* that isn't allowed to write, a route the service doesn't serve). Distinct from a transient one
|
|
10
|
+
* because the response is opposite: stop, don't back off. See {@link EffectRunner.publishLatch}. */
|
|
11
|
+
class PublishConfigError extends Error {
|
|
12
|
+
}
|
|
12
13
|
export class EffectRunner {
|
|
13
14
|
opts;
|
|
14
15
|
log;
|
|
@@ -23,10 +24,31 @@ export class EffectRunner {
|
|
|
23
24
|
pending = new Map();
|
|
24
25
|
draining = false;
|
|
25
26
|
idleWaiters = [];
|
|
27
|
+
/**
|
|
28
|
+
* Set once a publish fails for a reason retrying can't fix (a 4xx, an unusable locator). While
|
|
29
|
+
* latched, the runner renders NOTHING: a render whose publish can't land is a render that this
|
|
30
|
+
* runner's own idempotency probe will ask for again on the next sweep, and every sweep after —
|
|
31
|
+
* so continuing would burn Chromium and storage indefinitely to produce an artifact nobody can
|
|
32
|
+
* serve. One actionable error beats an infinite quiet loop. Cleared by fixing the config and
|
|
33
|
+
* restarting, or by an explicit `force` (the operator asserting they've fixed it).
|
|
34
|
+
*/
|
|
35
|
+
publishLatch = null;
|
|
36
|
+
/** The startup handshake, run once and reused (see {@link preflight}). */
|
|
37
|
+
preflightOnce = null;
|
|
26
38
|
constructor(opts) {
|
|
27
39
|
this.opts = opts;
|
|
28
40
|
this.log = opts.log ?? ((line) => console.log(`[effects] ${line}`));
|
|
29
41
|
this.service = opts.adminToken ? new AbxServiceClient({ baseUrl: opts.resolverUrl, token: opts.adminToken }) : null;
|
|
42
|
+
// Boot guard: in the publish topology (we don't share the resolver's disk), referenced output
|
|
43
|
+
// can ONLY reach it as a locator — so a backend that can't produce one has no lane, and every
|
|
44
|
+
// render would be wasted work ending in a 400. Refuse at construction, where the fix is cheap,
|
|
45
|
+
// rather than after the first expensive capture. (Enforcing beats warning: the prose version of
|
|
46
|
+
// this was the trap agents kept walking into.)
|
|
47
|
+
if (opts.adminToken && !opts.storage.locator) {
|
|
48
|
+
throw new Error(`this storage backend exposes no locator, so a remote resolver could never serve the renders it holds. ` +
|
|
49
|
+
`Either point the runner at a backend that does — cloud/S3 or R2 with a public base, ipfs, or arweave (peers; pick on operational grounds, not durability dogma) — ` +
|
|
50
|
+
`or run co-located with the resolver, sharing one backend and no admin token.`);
|
|
51
|
+
}
|
|
30
52
|
}
|
|
31
53
|
/** Merge a notification into the queue and kick the drain. Returns the queue depth. */
|
|
32
54
|
enqueue(address, tokenIds, force = false) {
|
|
@@ -95,11 +117,70 @@ export class EffectRunner {
|
|
|
95
117
|
}
|
|
96
118
|
return total;
|
|
97
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* The startup handshake for the publish topology — run once, before any render, so a
|
|
122
|
+
* misconfiguration costs a round trip instead of a Chromium launch. Checks the two things a
|
|
123
|
+
* producer can know up front:
|
|
124
|
+
*
|
|
125
|
+
* - the descriptor declares `abx-control-plane/v1` (which now carries the artifact-registry
|
|
126
|
+
* routes — there is no separate publish capability to negotiate) and serves our chain;
|
|
127
|
+
* - our credential actually works, via one authenticated control-plane read.
|
|
128
|
+
*
|
|
129
|
+
* A service's capabilities and a caller's permissions should never be discoverable only by
|
|
130
|
+
* crashing after the expensive part. Descriptor trouble is a WARNING (a node may be older than
|
|
131
|
+
* this field, and the publish still works); a definitive credential rejection latches.
|
|
132
|
+
*/
|
|
133
|
+
async preflight() {
|
|
134
|
+
if (!this.service)
|
|
135
|
+
return;
|
|
136
|
+
if (!this.preflightOnce) {
|
|
137
|
+
this.preflightOnce = (async () => {
|
|
138
|
+
try {
|
|
139
|
+
const d = await this.service.descriptor();
|
|
140
|
+
if (!d.interfaces?.includes(CONTROL_PLANE_INTERFACE)) {
|
|
141
|
+
this.log(`warning: ${this.opts.resolverUrl} declares no ${CONTROL_PLANE_INTERFACE} — publishes may be refused ` +
|
|
142
|
+
`(interfaces: ${d.interfaces?.join(', ') || 'none'})`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
this.log(`warning: could not read the service descriptor (${err.message}) — continuing`);
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
await this.service.listProjects();
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
const status = err.status;
|
|
153
|
+
if (status === 401 || status === 403 || status === 404) {
|
|
154
|
+
this.publishLatch =
|
|
155
|
+
`the resolver at ${this.opts.resolverUrl} rejected our control-plane credential (${status}) — ` +
|
|
156
|
+
`renders would be published nowhere. Check the admin/remote token; nothing has been rendered.`;
|
|
157
|
+
this.log(`publish lane unavailable: ${this.publishLatch}`);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.log(`warning: control-plane preflight failed (${err.message}) — treating as transient`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
})();
|
|
164
|
+
}
|
|
165
|
+
return this.preflightOnce;
|
|
166
|
+
}
|
|
98
167
|
/** Sweep one project: run every effect for every token whose current output is missing.
|
|
99
168
|
* `opts.force` re-renders even when the current output already exists (the repair lane for a
|
|
100
169
|
* bad/blank/timed-out capture — the art is otherwise deterministic, so a normal sweep skips it). */
|
|
101
170
|
async sweepProject(address, tokenIds, opts) {
|
|
102
171
|
const stats = { ran: 0, skipped: 0, failed: 0, errors: [] };
|
|
172
|
+
if (opts?.force)
|
|
173
|
+
this.publishLatch = null; // the operator asserting the config is fixed
|
|
174
|
+
await this.preflight();
|
|
175
|
+
// Latched: render nothing and say why once. Reporting it as a failure (rather than a silent
|
|
176
|
+
// skip) is the point — `abx render` surfaces it, and a hosted runner's logs carry one
|
|
177
|
+
// actionable line instead of a re-render loop nobody notices until the bill arrives.
|
|
178
|
+
if (this.publishLatch) {
|
|
179
|
+
stats.failed += 1;
|
|
180
|
+
stats.errors.push(this.publishLatch);
|
|
181
|
+
this.log(`skipping ${address}: ${this.publishLatch}`);
|
|
182
|
+
return stats;
|
|
183
|
+
}
|
|
103
184
|
const state = await this.getState(address);
|
|
104
185
|
if (!state || !isCodeProject(state))
|
|
105
186
|
return stats;
|
|
@@ -133,6 +214,13 @@ export class EffectRunner {
|
|
|
133
214
|
const line = `${item.effect.key} ${address}/${item.token.tokenId}: ${err.message}`;
|
|
134
215
|
stats.errors.push(line);
|
|
135
216
|
this.log(`${line} (failed)`);
|
|
217
|
+
// A publish that can't succeed by retrying stops the whole pool: every remaining token
|
|
218
|
+
// would render, fail the same way, and be re-rendered next sweep. Fix the config, restart.
|
|
219
|
+
if (err instanceof PublishConfigError) {
|
|
220
|
+
this.publishLatch = `${err.message} — rendering stopped; fix this and restart (or re-run with force)`;
|
|
221
|
+
this.log(`publish lane unavailable: ${this.publishLatch}`);
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
136
224
|
}
|
|
137
225
|
}
|
|
138
226
|
};
|
|
@@ -162,7 +250,7 @@ export class EffectRunner {
|
|
|
162
250
|
// current output exists — idempotent (no re-render). Republish from storage on request so a
|
|
163
251
|
// resolver that lost its volume can be restored without re-rendering (RunnerOptions.republish).
|
|
164
252
|
// (No republish in the deterministic lane: the bytes already live at the public S3 key.)
|
|
165
|
-
if (!detImg && this.opts.adminToken && this.opts.republish)
|
|
253
|
+
if (!detImg && this.opts.adminToken && this.opts.republish !== false)
|
|
166
254
|
await this.republishFromStorage(effect, state, token, hash);
|
|
167
255
|
// Registry repair lane: re-record rows for whatever is stored at the current hash — a cheap
|
|
168
256
|
// local upsert per output, so a wiped artifact registry self-heals on the next sweep.
|
|
@@ -254,14 +342,41 @@ export class EffectRunner {
|
|
|
254
342
|
}
|
|
255
343
|
}
|
|
256
344
|
/**
|
|
257
|
-
*
|
|
258
|
-
* backend's disk can serve it.
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
345
|
+
* Register one stored output with the resolver's control plane so a node that doesn't share this
|
|
346
|
+
* backend's disk can serve it. The form follows the output's DECLARED class
|
|
347
|
+
* (`specs/protocol/effects.md → Bound vs referenced`), and the resolver enforces the same rule
|
|
348
|
+
* from its side — this is one contract, not a preference on either end:
|
|
349
|
+
*
|
|
350
|
+
* - **bound** (`traits`) → the content, capped. The resolver stitches it into the token JSON.
|
|
351
|
+
* - **referenced** (`image`, `print`, …) → a reachable locator from THIS backend. We hold the
|
|
352
|
+
* bytes; the resolver holds a pointer and redirects. If the backend can't produce a locator
|
|
353
|
+
* there is no legal publish, and that is a configuration error we refuse to paper over —
|
|
354
|
+
* the constructor's boot guard normally catches it before a single render is spent.
|
|
355
|
+
*
|
|
356
|
+
* `contentType` is the DECLARED mimeType.
|
|
262
357
|
*/
|
|
263
358
|
async publishArtifact(state, token, hash, effect, decl, output, key) {
|
|
264
|
-
|
|
359
|
+
let body;
|
|
360
|
+
if (decl.bound) {
|
|
361
|
+
if (output.bytes.length > BOUND_ARTIFACT_MAX_BYTES) {
|
|
362
|
+
throw new PublishConfigError(`bound output '${effect.key}/${decl.key}' is ${output.bytes.length}B — over the ${BOUND_ARTIFACT_MAX_BYTES}B cap a resolver accepts. ` +
|
|
363
|
+
`An output this size is referenced, not bound: drop \`bound\` from its declaration so it publishes as a locator.`);
|
|
364
|
+
}
|
|
365
|
+
body = { bytes_base64: Buffer.from(output.bytes).toString('base64') };
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
const locator = (await this.opts.storage.locator?.(key)) ?? null;
|
|
369
|
+
if (!locator) {
|
|
370
|
+
throw new PublishConfigError(`no locator for '${effect.key}/${decl.key}' from this storage backend — a resolver that doesn't share this disk can only serve referenced output by redirect, so it needs a URL. ` +
|
|
371
|
+
`Use a backend that exposes one (cloud/S3 or R2 with a public base, ipfs, arweave), or run this runner co-located with the resolver (drop the admin token and share the backend).`);
|
|
372
|
+
}
|
|
373
|
+
const bad = locatorRejectionReason(locator);
|
|
374
|
+
if (bad) {
|
|
375
|
+
throw new PublishConfigError(`this backend's locator for '${effect.key}/${decl.key}' (${locator}) won't be accepted: ${bad}. ` +
|
|
376
|
+
`A locator must resolve for anyone — check the public base / gateway this backend is configured with.`);
|
|
377
|
+
}
|
|
378
|
+
body = { locator };
|
|
379
|
+
}
|
|
265
380
|
try {
|
|
266
381
|
await this.service.publishEffectArtifact({
|
|
267
382
|
chainId: state.chainId,
|
|
@@ -271,18 +386,29 @@ export class EffectRunner {
|
|
|
271
386
|
output: decl.key,
|
|
272
387
|
effectKey: effect.key,
|
|
273
388
|
contentType: decl.mimeType,
|
|
274
|
-
...
|
|
389
|
+
...body,
|
|
275
390
|
});
|
|
276
391
|
}
|
|
277
392
|
catch (err) {
|
|
278
|
-
|
|
393
|
+
// Classify, because the two cases want opposite behavior. A 4xx will never succeed by
|
|
394
|
+
// retrying, and swallowing it is expensive in a way a log line hides: the work ledger is
|
|
395
|
+
// "custody lacks the artifact at the current hash", so an unpublished render re-renders on
|
|
396
|
+
// EVERY sweep, forever. A 5xx/network failure is transient — leave the artifact missing and
|
|
397
|
+
// let the next sweep retry it.
|
|
398
|
+
const status = err.status;
|
|
399
|
+
const detail = `publish ${decl.key} ${state.address}/${token.tokenId} → ${err.message}`;
|
|
400
|
+
if (status !== undefined && status >= 400 && status < 500 && status !== 408 && status !== 429) {
|
|
401
|
+
throw new PublishConfigError(detail);
|
|
402
|
+
}
|
|
403
|
+
throw new Error(detail);
|
|
279
404
|
}
|
|
280
|
-
this.log(`
|
|
405
|
+
this.log(`registered ${decl.key} ${state.address}/${token.tokenId} ` +
|
|
406
|
+
`(${'locator' in body ? `locator ${body.locator}` : `${output.bytes.length}B bound`})`);
|
|
281
407
|
}
|
|
282
408
|
/** Record one artifact row into the co-located registry (`RunnerOptions.recordArtifact`). */
|
|
283
409
|
async record(state, token, hash, effect, decl, key, locatorOverride) {
|
|
284
|
-
|
|
285
|
-
|
|
410
|
+
// A bound output's content is served from the registry row / shared custody, never a pointer.
|
|
411
|
+
const locator = locatorOverride ?? (decl.bound ? null : ((await this.opts.storage.locator?.(key)) ?? null));
|
|
286
412
|
await this.opts.recordArtifact({
|
|
287
413
|
key,
|
|
288
414
|
address: state.address.toLowerCase(),
|
|
@@ -294,14 +420,28 @@ export class EffectRunner {
|
|
|
294
420
|
locator,
|
|
295
421
|
});
|
|
296
422
|
}
|
|
297
|
-
/**
|
|
298
|
-
*
|
|
423
|
+
/**
|
|
424
|
+
* Re-register already-stored outputs for (effect, token) at the current inputsHash — no re-render.
|
|
425
|
+
* Cheap now that referenced output travels as a pointer: a presence probe plus a locator string,
|
|
426
|
+
* no byte read (only a bound output's small content is read). That is why it runs on every skip in
|
|
427
|
+
* the publish topology rather than being opt-in: it self-heals a resolver that lost its rows AND —
|
|
428
|
+
* the case that matters more — a publish that failed transiently after the bytes had already
|
|
429
|
+
* landed here, which the "is the artifact stored?" ledger would otherwise mark done forever.
|
|
430
|
+
*/
|
|
299
431
|
async republishFromStorage(effect, state, token, hash) {
|
|
300
432
|
for (const decl of effect.outputs) {
|
|
301
433
|
const key = this.artifactKey(state, token, hash, effect, decl.key);
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
434
|
+
if (decl.bound) {
|
|
435
|
+
const stored = await this.opts.storage.get(key);
|
|
436
|
+
if (stored)
|
|
437
|
+
await this.publishArtifact(state, token, hash, effect, decl, stored, key);
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
if (await this.opts.storage.has(key)) {
|
|
441
|
+
// The bytes never leave this backend, so an empty placeholder is all publishArtifact needs
|
|
442
|
+
// for a referenced output — it publishes the locator, not the content.
|
|
443
|
+
await this.publishArtifact(state, token, hash, effect, decl, { bytes: new Uint8Array(), contentType: decl.mimeType }, key);
|
|
444
|
+
}
|
|
305
445
|
}
|
|
306
446
|
}
|
|
307
447
|
/** Re-record registry rows for outputs already stored at the current inputsHash — presence probes
|
package/dist/harness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,YAAY,EAAe,MAAM,cAAc,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,GAAE;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAM,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,YAAY,EAAe,MAAM,cAAc,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,GAAE;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAM,GAAG,YAAY,CAyC9F"}
|
package/dist/render.js
CHANGED
|
@@ -25,8 +25,10 @@ export function renderEffect(defaults = {}) {
|
|
|
25
25
|
return {
|
|
26
26
|
key: 'render',
|
|
27
27
|
outputs: [
|
|
28
|
+
// `traits` is the one BOUND output (its content stitches into `attributes`); `image` and
|
|
29
|
+
// `print` are referenced — the producer holds those bytes and publishes a locator.
|
|
28
30
|
{ key: 'image', mimeType: 'image/png' },
|
|
29
|
-
{ key: 'traits', mimeType: 'application/json' },
|
|
31
|
+
{ key: 'traits', mimeType: 'application/json', bound: true },
|
|
30
32
|
{ key: 'print', mimeType: 'image/png' },
|
|
31
33
|
],
|
|
32
34
|
async run(ctx) {
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAGvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,YAAY,CAAC,WAAiD,EAAE;IAC9E,OAAO;QACL,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE;YACP,EAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAC;YACrC,EAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAC;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artblocks/abx-effects",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ABX Self-Host Toolkit (Layer 3) — the reference effect runner. A deployed, long-running service hosting spine-subscribing effects (render first) behind one harness; stateless via inputsHash addressing. The playwright npm package is a normal (small, browserless) dependency pinned EXACTLY to the Dockerfile.effects base-image tag; browsers install only where captures run (`npx playwright install chromium`).",
|
|
6
6
|
"type": "module",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"playwright": "1.61.1",
|
|
42
42
|
"viem": "^2.21.0",
|
|
43
|
-
"@artblocks/abx-sdk": "0.1.0-alpha.
|
|
44
|
-
"@artblocks/abx-storage": "0.1.0-alpha.
|
|
43
|
+
"@artblocks/abx-sdk": "0.1.0-alpha.6",
|
|
44
|
+
"@artblocks/abx-storage": "0.1.0-alpha.6"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
47
|
"build": "tsc -b tsconfig.build.json"
|