@xpr-agents/openclaw 0.6.0 → 0.7.0

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.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: blockart
3
+ description: Block Art fulfilment — the XPR atom emblem, every trait derived from the block the buyer paid in
4
+ ---
5
+
6
+ ## Block Art
7
+
8
+ Block Art is a fixed-price listing on the services market. A buyer pays, and gets
9
+ a 2048px render of the XPR Network atom emblem whose every visual trait is
10
+ derived from **the block their payment confirmed in**. Nothing about the piece is
11
+ chosen by you: the block chooses it, and `traits.json` ships alongside the image
12
+ so the buyer can check the derivation themselves.
13
+
14
+ A Block Art job arrives as a funded escrow job with `job_hash` `"svc:4"`.
15
+
16
+ ### The two tools
17
+
18
+ - `blockart_plan` — `{ job_id }`. Reads the job, recovers the seed block, derives
19
+ the traits, reads the buyer's form answers and any revision notes, builds the
20
+ prompt, and persists the plan. Read-only, no spend, no signing.
21
+ - `blockart_render` — `{ job_id }`. Renders the planned piece, pins the image and
22
+ `traits.json` to IPFS under one CID, and returns a delivery manifest. It never
23
+ signs and never delivers.
24
+
25
+ ### The flow
26
+
27
+ 1. `blockart_plan` with the job id. **Read the `summary`.** It tells you the seed
28
+ block, the eight traits, and what the buyer asked for.
29
+ 2. If the buyer's notes ask for something the listing does not offer — a
30
+ different subject, a different format, print or physical delivery, a logo or
31
+ any text in the image, a trait they want overridden — ask them **ONE** question
32
+ with `xpr_ask_client` and stop. Do not guess, and do not ask a second question
33
+ later.
34
+ 3. Otherwise `blockart_render` with the same job id.
35
+ 4. `xpr_deliver_job` with `evidence_uri` set to the manifest string the render
36
+ returned, **exactly as returned**. Do not rewrite it, do not wrap it, do not
37
+ substitute a bare gateway link.
38
+
39
+ ### What the block fixes, and what it does not
40
+
41
+ The block fixes the material of the three orbits, the setting, the light, the
42
+ palette, the motion, the scale, the time of day, and (from the buyer's account
43
+ age) the patina. It says nothing about what else may share the scene, so a
44
+ buyer's theme is honoured **in the surroundings** — the environment, the sky, the
45
+ forms and shadows around the atom — while the atom itself stays the single clear
46
+ subject, unchanged in geometry. A buyer never gets to override a trait; if they
47
+ ask to, that is a question for them, not a decision for you.
48
+
49
+ ### Revisions
50
+
51
+ If the client sends the job back with `revise`:
52
+
53
+ - Re-run `blockart_plan`. It **reuses the same seed block** — the traits cannot
54
+ change, or the piece stops matching the block the buyer was told it came from.
55
+ - The plan folds their revise note into the prompt's steer automatically. Read
56
+ the summary again to see it.
57
+ - Re-render, then deliver. **Never deliver identical evidence**: if the render
58
+ came back the same, say so and ask rather than re-sending the previous CID.
59
+ - If their note asks for a trait to change, that is not a re-render — ask with
60
+ `xpr_ask_client`.
61
+
62
+ ### Environment
63
+
64
+ | Variable | Required for | Default |
65
+ |----------|--------------|---------|
66
+ | `REPLICATE_API_TOKEN` | `blockart_render` | — |
67
+ | `PINATA_JWT` | `blockart_render` | — |
68
+ | `PINATA_GATEWAY` | pinned URLs | `https://agent.mypinata.cloud` |
69
+ | `HYPERION_URL` | seed block + revise notes | a public XPR node |
70
+ | `XPR_RPC_ENDPOINT` | all chain reads | shared with the other skills |
71
+ | `BLOCKART_WORK_DIR` | plan + render storage | `./blockart-work` |
72
+
73
+ Both tools return `{ error: "..." }` rather than throwing. If the error names a
74
+ missing environment variable, say so plainly and stop — do not deliver a
75
+ description of the artwork in place of the artwork.