makeables 0.7.0 → 0.9.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.
Files changed (36) hide show
  1. package/README.md +54 -9
  2. package/dist/assets/stickers/moraleja/claude-01.webp +0 -0
  3. package/dist/assets/stickers/moraleja/claude-02.webp +0 -0
  4. package/dist/assets/stickers/moraleja/claude-03.webp +0 -0
  5. package/dist/assets/stickers/moraleja/code-brew-pereira.webp +0 -0
  6. package/dist/assets/stickers/moraleja/code-brew-san-01.webp +0 -0
  7. package/dist/assets/stickers/moraleja/code-brew-san-02.webp +0 -0
  8. package/dist/assets/stickers/moraleja/cooking.webp +0 -0
  9. package/dist/assets/stickers/moraleja/crafter-01.webp +0 -0
  10. package/dist/assets/stickers/moraleja/crafter-station.webp +0 -0
  11. package/dist/assets/stickers/moraleja/curious.webp +0 -0
  12. package/dist/assets/stickers/moraleja/jsi.webp +0 -0
  13. package/dist/assets/stickers/moraleja/kebo-01.webp +0 -0
  14. package/dist/assets/stickers/moraleja/kebo-02.webp +0 -0
  15. package/dist/assets/stickers/moraleja/kebo-03.webp +0 -0
  16. package/dist/assets/stickers/moraleja/kebo-04.webp +0 -0
  17. package/dist/assets/stickers/moraleja/kebo-brand.webp +0 -0
  18. package/dist/assets/stickers/moraleja/maca.webp +0 -0
  19. package/dist/assets/stickers/moraleja/moraleja-01.webp +0 -0
  20. package/dist/assets/stickers/moraleja/moraleja-lfg.webp +0 -0
  21. package/dist/assets/stickers/moraleja/pawboard.webp +0 -0
  22. package/dist/assets/stickers/moraleja/provenance.json +223 -0
  23. package/dist/assets/stickers/moraleja/qwstzw.webp +0 -0
  24. package/dist/assets/stickers/moraleja/repo-o-fake.webp +0 -0
  25. package/dist/assets/stickers/moraleja/she-ships.webp +0 -0
  26. package/dist/assets/stickers/moraleja/ship-or-sink.webp +0 -0
  27. package/dist/assets/stickers/moraleja/shippeando.webp +0 -0
  28. package/dist/assets/stickers/moraleja/shippervivbes.webp +0 -0
  29. package/dist/assets/stickers/moraleja/shipping.webp +0 -0
  30. package/dist/assets/stickers/moraleja/taste.webp +0 -0
  31. package/dist/assets/stickers/moraleja/tsb.webp +0 -0
  32. package/dist/assets/stickers/moraleja/vibing.webp +0 -0
  33. package/dist/{chunk-QJHEOZGN.js → chunk-RFIQNWNF.js} +256 -154
  34. package/dist/cli.js +700 -109
  35. package/dist/{mcp-AOJ6UJSC.js → mcp-HS2XZXSO.js} +1 -1
  36. package/package.json +1 -1
package/README.md CHANGED
@@ -162,15 +162,57 @@ gallery, or install the artwork on the phone. Cards, badges and stickers share `
162
162
  loads `makeables skills get wallet`.
163
163
 
164
164
  ```sh
165
- makeables wallet setup
166
- makeables wallet prep --file card.json --out wallet-preview
167
- makeables wallet list
168
- makeables wallet apply --file card.json --card c-SELECTION --yes
169
- makeables wallet backups
165
+ # Existing public card + previously confirmed saved target:
166
+ makeables wallet install --submission "https://makeables.dev/make/card?submission=UUID" --target mercury-4535 --yes --json
167
+ # First selection, with a user-confirmed label to remember after installation:
168
+ makeables wallet install --submission UUID --remember mercury-4535 --label Mercury --last4 4535 --json
169
+ # Local documents and complete packages also work:
170
+ makeables wallet install --file card.json --json
171
+ # Wait for selection-ready before asking the user to tap. Inspect the preview.
172
+ makeables wallet install --assets "/returned/prepared/assets" --card c-SELECTION --remember mercury-4535 --label Mercury --last4 4535 --yes --json
173
+ makeables wallet targets list --json
174
+ # Register an existing verified backup without touching the phone:
175
+ makeables wallet targets add --target mercury-4535 --backup b-BACKUP --label Mercury --last4 4535 --yes --json
176
+ # Reuse the backupId from the installation receipt when restoration is requested.
170
177
  makeables wallet restore --backup b-BACKUP --yes
171
178
  ```
172
179
 
173
- Wallet runs on a Mac with a USB-connected iPhone. Setup downloads a versioned,
180
+ Public submissions download directly with a bounded timeout and validated file
181
+ hashes. Receipts include a real local package path, byte count and checksum.
182
+ Raw card JSON, `{design: ...}` documents and portable JSON/ZIP packages are
183
+ accepted. The complete artwork is preserved, including vectors and text.
184
+ `wallet prep --submission UUID --out <directory>` prepares without a phone write.
185
+
186
+ Wallet runs on a Mac with a USB-connected iPhone. `install` prepares once,
187
+ returns the next selection step when needed, and applies only with an explicit
188
+ `--target`, `--card` or `--backup` plus `--yes`. Reuse `--assets` to avoid rendering again.
189
+ If saved targets exist and no target is specified, it returns `needs-target`
190
+ with labels to choose from. Use `--scan` to select a different card.
191
+ Names and optional last four digits are **user-confirmed labels**, not details
192
+ retrieved from iOS. The scanner exposes opaque selections only. Each saved alias
193
+ binds to a verified original backup; the helper checks device/card binding again
194
+ before writing. Duplicate aliases fail before installation. `wallet targets
195
+ remove --target <alias>` removes only the label, preserving its backup.
196
+ `targetSaved: false` alongside `status: complete` means artwork installation
197
+ succeeded but the label needs saving; do not repeat the write.
198
+ With a capable companion, selection finishes on the first card event and
199
+ installation reuses its Media connection. Older companions retain a full scan.
200
+ Progress appears on stderr; stdout contains the result, backup verification
201
+ and timing. A failed device operation is never automatically retried.
202
+ `selection-ready` appears only after the activity stream handshake succeeds;
203
+ ask the user to tap at that point. `wallet install --help` shows only that
204
+ command's syntax. JSON result fields live under `data`.
205
+
206
+ Capable companions also reuse the connection during restoration and batch
207
+ removal of added artwork. Restore reports each phase, file counts and the
208
+ verified original backup. Apply returns a restore handoff; both operations
209
+ save private receipts. `wallet backups --backup b-BACKUP` retrieves the current
210
+ backup status and its last completed operation without a card scan. A saved
211
+ success may predate a later failure. Transport durations are part of phase
212
+ timings, not extra time to add to the total. A CLI-only update does not replace
213
+ the companion; check `wallet doctor` capabilities when diagnosing old behavior.
214
+
215
+ Setup downloads a versioned,
174
216
  checksum-verified companion containing the runtime, native bridges and artwork
175
217
  exporter; no source checkout or developer toolchain is required. `apply` changes
176
218
  the artwork of a selected existing card; `restore` removes that custom design
@@ -183,9 +225,12 @@ without touching a device. `MAKEABLES_WALLET_HELPER` selects a compatible local
183
225
  companion for development; `MAKEABLES_WALLET_HOME` and `MAKEABLES_WALLET_BACKUPS`
184
226
  override its private storage locations.
185
227
 
186
- Wallet artwork changes use experimental, unofficial device services. Apply has
187
- been tested on a Wallet card; restoration of an actual Wallet card remains
188
- unverified. Keep the original backups and inspect the guide before device work.
228
+ Wallet artwork changes use experimental, unofficial device services. Apply and
229
+ restoration have been tested on a Wallet card. The September 30, 2026 restore
230
+ used companion 0.2.0's one-shot transport and was visually confirmed by the user.
231
+ The optimized persistent/batched path still needs device validation; this is
232
+ not a broad compatibility or speed guarantee. Keep the original backups and
233
+ inspect the guide before device work.
189
234
 
190
235
  ## Share any design
191
236
 
@@ -0,0 +1,223 @@
1
+ {
2
+ "creator": {
3
+ "label": "moraleja.co",
4
+ "url": "https://moraleja.co"
5
+ },
6
+ "supplied": "2026-09-30",
7
+ "archive": "01. STICKERS-20260930T201956Z-1-001.zip",
8
+ "authorization": "The maintainer supplied these files and explicitly requested all stickers be included in Makeables with moraleja.co credit. This is not an independently verified upstream license or rights-holder grant.",
9
+ "transformation": "Complete source composition rendered with sharp/librsvg. Only fully transparent outer padding trimmed; artwork fitted within 896 px and centered on a transparent 1024 px square, encoded as lossless WebP. Original bytes preserved in apps/web/sticker-sources/moraleja.",
10
+ "entries": [
11
+ {
12
+ "slug": "claude-01",
13
+ "source": "CLAUDE-01.svg",
14
+ "sourceSha256": "7e15a027c8a9c0165f96245871c6503681b631a7bccd2dd3df964932ec91e7ad",
15
+ "preview": "claude-01.webp",
16
+ "previewSha256": "441ac492b0a214fc5e38a7feaf3bcff219234a3d927a37b1627d1218edd1b08e"
17
+ },
18
+ {
19
+ "slug": "claude-02",
20
+ "source": "CLAUDE-02.svg",
21
+ "sourceSha256": "68064527ec12a96b75450ffa2452cb7f76e66670bbfa3003f5defa74803f6447",
22
+ "preview": "claude-02.webp",
23
+ "previewSha256": "74dbaa9ce9240ca5aa66bc53aa4b439b3997568c1f8e1cf86254b27e0b1d20e3"
24
+ },
25
+ {
26
+ "slug": "claude-03",
27
+ "source": "CLAUDE-03.svg",
28
+ "sourceSha256": "48e765d655f12b272f223fc10b37246d0a8cceda9d2cc5f585772f4dd2d16f0a",
29
+ "preview": "claude-03.webp",
30
+ "previewSha256": "63342e00610c3b155b878bec82da30f9956c9ad617b9a65263b1b864265d8afc"
31
+ },
32
+ {
33
+ "slug": "code-brew-pereira",
34
+ "source": "CODE-BREW-PEREIRA.svg",
35
+ "sourceSha256": "21f375bb45cbe0874bb50a238048b10ef3e1b9bffb85f0876212c9f4d33030f5",
36
+ "preview": "code-brew-pereira.webp",
37
+ "previewSha256": "bbe4d36ceae88525a79b90029211255bb6e5a33abcdd87e7673abfc0d4208d45"
38
+ },
39
+ {
40
+ "slug": "code-brew-san-01",
41
+ "source": "CODE-BREW-SAN-01.svg",
42
+ "sourceSha256": "4856cebac16eb465fd9a2e41a8a0640d1d2c2efae0aa8f787ac1f5243b1bfc8a",
43
+ "preview": "code-brew-san-01.webp",
44
+ "previewSha256": "abc29311ca7e914a5fff8498ad42c7d1974a5f6efc5b3adda570406d568ba2fd"
45
+ },
46
+ {
47
+ "slug": "code-brew-san-02",
48
+ "source": "CODE-BREW-SAN-02.svg",
49
+ "sourceSha256": "f1ac7704a523192a321bb2105ab1bf5bf95e2fedcf796840f08017aa86708251",
50
+ "preview": "code-brew-san-02.webp",
51
+ "previewSha256": "0c6224bedbf46f1be5e66f9ff7ae5d81446e43130b831a6875630123e5cf6f89"
52
+ },
53
+ {
54
+ "slug": "cooking",
55
+ "source": "COOKING.svg",
56
+ "sourceSha256": "7fa82becb804d6bd2921169953179a344ef7e31a7804fe59eacfe9875a5e9eb6",
57
+ "preview": "cooking.webp",
58
+ "previewSha256": "466a10a3b4ed2fa17d7664b07dfd003abb4012311e6f2d974a0fbf386d983be8"
59
+ },
60
+ {
61
+ "slug": "crafter-01",
62
+ "source": "CRAFTER-01.svg",
63
+ "sourceSha256": "36eb6172c5bbbe92ef7a144f758811c474d449fffd8f33848b51fa9f1c13bf2b",
64
+ "preview": "crafter-01.webp",
65
+ "previewSha256": "47e88a9ef7408c3e27706e6a3c14236a71b6fa830327b99b554225a83a09fca2"
66
+ },
67
+ {
68
+ "slug": "crafter-station",
69
+ "source": "CRAFTER-STATION.svg",
70
+ "sourceSha256": "e152b14faacbf4784cee5600c28ea85a7fe304d888d87d27f105c31ccfd41486",
71
+ "preview": "crafter-station.webp",
72
+ "previewSha256": "ca7cbe65d9dd67a919859f7266824b79a12f81619f51388376f3ed716f5281a0"
73
+ },
74
+ {
75
+ "slug": "curious",
76
+ "source": "Curious.png",
77
+ "sourceSha256": "953214a5c0ebcc66565767bb471f618f87e3b98dfeb9d21eedd755eba16fe8ea",
78
+ "preview": "curious.webp",
79
+ "previewSha256": "2240e76c15e05e6f412c0b4c3297ba1eda70c9cf6869efcb34f93cfd50282246"
80
+ },
81
+ {
82
+ "slug": "jsi",
83
+ "source": "JSI.svg",
84
+ "sourceSha256": "f5dd7c55fcec492e8833626ecf60e979cca71fc723b6d302a9813c897284cb0a",
85
+ "preview": "jsi.webp",
86
+ "previewSha256": "19be514b3e870679ac674c12d71f342962f8df973a7501e2d954da8078e58bad"
87
+ },
88
+ {
89
+ "slug": "kebo-01",
90
+ "source": "KEBO-01.svg",
91
+ "sourceSha256": "377434e65f58f884484f01de9f3a27efd82f845d8a357588d3a821bf895c88d9",
92
+ "preview": "kebo-01.webp",
93
+ "previewSha256": "ac60b41316743a18ae0b0e3cf2ec4b5e0a9c9786a9170eca995d5cec0747f999"
94
+ },
95
+ {
96
+ "slug": "kebo-02",
97
+ "source": "KEBO-02.svg",
98
+ "sourceSha256": "b6a68683ddb32757c82312bfe745d7b8fdce4829782206c22dc1a6ac7e98aac1",
99
+ "preview": "kebo-02.webp",
100
+ "previewSha256": "02112761ee177e9d028f1516b534838afd83da5771bd5ff77f191a5bf0baa315"
101
+ },
102
+ {
103
+ "slug": "kebo-03",
104
+ "source": "KEBO-03.svg",
105
+ "sourceSha256": "bad412e08c252885297c796233d1d15d773c433682bb4f8309c6e3208feb6cbd",
106
+ "preview": "kebo-03.webp",
107
+ "previewSha256": "8d6a8972f20c953316c8c75febb2fd83b5794e2565804580310f56ec6819862b"
108
+ },
109
+ {
110
+ "slug": "kebo-04",
111
+ "source": "KEBO-04.svg",
112
+ "sourceSha256": "1b722cf7ef6e4fb40df7dfa999fb0b80119168248a62d76dbf34566ebdba33a4",
113
+ "preview": "kebo-04.webp",
114
+ "previewSha256": "04579cde2deb8f2f8fc6bb259efa4bb217da71d2d114affb4839d5fbeb19d609"
115
+ },
116
+ {
117
+ "slug": "kebo-brand",
118
+ "source": "KEBO-BRAND.svg",
119
+ "sourceSha256": "516d9bde705418ef92f80450b60666c30234eca69cf8babd3627bf0d58053248",
120
+ "preview": "kebo-brand.webp",
121
+ "previewSha256": "9766216e9cdb9188db23cfc14f06bf220af4f8b0ea50967b08e7a978168e7919"
122
+ },
123
+ {
124
+ "slug": "maca",
125
+ "source": "MACA.svg",
126
+ "sourceSha256": "efc339c96dfc44c43f52810c2c2553f09968bd4b3200a609cebcd5545b893dcd",
127
+ "preview": "maca.webp",
128
+ "previewSha256": "ea3f23957f4cd846cd1d2f58fc572b1b746ef35219ece06414dae8f1b831e6db"
129
+ },
130
+ {
131
+ "slug": "moraleja-01",
132
+ "source": "MORALEJA-01.svg",
133
+ "sourceSha256": "80fe9cecbaf0cd8512848d4c4dbf946556de7cee1b8006cc72a2c80d2fb917d3",
134
+ "preview": "moraleja-01.webp",
135
+ "previewSha256": "090bb928d52df041fe2dc4161ceda43fa3aaad73a9ac99039756a62d929a0e84"
136
+ },
137
+ {
138
+ "slug": "moraleja-lfg",
139
+ "source": "MORALEJA-LFG.svg",
140
+ "sourceSha256": "b4a5df77b894898cbdad9a885d7f48384025805a97086fbd4bdf32681420f0d3",
141
+ "preview": "moraleja-lfg.webp",
142
+ "previewSha256": "7dc89dfa7014778796eb9f3e1934bfd93698ffcee11e07d3efd11e1f9a054441"
143
+ },
144
+ {
145
+ "slug": "pawboard",
146
+ "source": "PAWBOARD.svg",
147
+ "sourceSha256": "0d463d941147f5fc23d9fc6115a1f616cc979a2c88b1493f23f05a9b6327dc61",
148
+ "preview": "pawboard.webp",
149
+ "previewSha256": "484e462578a50fc01c01b16e1a008ef647737d1016ad512ecce5a3728cb3f470"
150
+ },
151
+ {
152
+ "slug": "qwstzw",
153
+ "source": "Qwstzw.svg",
154
+ "sourceSha256": "653113c9a4852903ad78b202328a82e0c3ff181227d1dadb468e8558c8109067",
155
+ "preview": "qwstzw.webp",
156
+ "previewSha256": "6dc1f4dabf7a369ebdf06275bf6a063e61d602583c119d4b7eb94ee68732264f"
157
+ },
158
+ {
159
+ "slug": "repo-o-fake",
160
+ "source": "REPO-O-FAKE.svg",
161
+ "sourceSha256": "afa71ecbec67be1136a8e90d86d54a4021f0840b91a3cce7f60e3511345cad8f",
162
+ "preview": "repo-o-fake.webp",
163
+ "previewSha256": "94550577c446875cd6caae54de0db8163b17fcfe17944c984ee0a85a836af1fa"
164
+ },
165
+ {
166
+ "slug": "she-ships",
167
+ "source": "SHE-SHIPS.svg",
168
+ "sourceSha256": "ee60583ca97501ee4ba5ff72b56d415dca734a1a4ad901ad8fd89585d6ab9083",
169
+ "preview": "she-ships.webp",
170
+ "previewSha256": "3050e16af0572454be8bc07d82df79d0cca5f3ff7b9194a8c42d42e6aaf0b467"
171
+ },
172
+ {
173
+ "slug": "ship-or-sink",
174
+ "source": "SHIP-OR-SINK.svg",
175
+ "sourceSha256": "ac51df999285ed8ca6192752d94bdf5a95d647096d1c850a6bf45609843b697a",
176
+ "preview": "ship-or-sink.webp",
177
+ "previewSha256": "b0606aae9b3fb5a4561ea10abc317fa0370ca09d58d35d431ad843c004750d53"
178
+ },
179
+ {
180
+ "slug": "shippeando",
181
+ "source": "SHIPPEANDO.svg",
182
+ "sourceSha256": "189d47a3e3b904085d83c8ea73d76b0c123fa665b4dafad60ad578eb5e70bbd3",
183
+ "preview": "shippeando.webp",
184
+ "previewSha256": "3ffb1841720f662d2685ae329602e50fff4ecad560fbb1183777868e0bec7996"
185
+ },
186
+ {
187
+ "slug": "shippervivbes",
188
+ "source": "SHIPPERVIVBES.svg",
189
+ "sourceSha256": "f0355b19d81ba4ae4e4e957f6baf5eb5b2e80b8117bd8321dd261be8b7d54f33",
190
+ "preview": "shippervivbes.webp",
191
+ "previewSha256": "48330fc01398ca3a71f01a1cff24964125a4c13fb5469fd25d1d7b0e1499a288",
192
+ "note": "Source requires Monoblock Bold. The maintainer approved a bold monospace preview fallback on 2026-09-30; original SVG unchanged."
193
+ },
194
+ {
195
+ "slug": "shipping",
196
+ "source": "SHIPPING.svg",
197
+ "sourceSha256": "29a35b46ccaa7d286e1d23bd3d9e2197756ff2104f5f594f8e3e403878173d58",
198
+ "preview": "shipping.webp",
199
+ "previewSha256": "c0930d942a17c5f799d7b6f09e17bcaa86ad3971e8d506be5994d423bf9fc0ed"
200
+ },
201
+ {
202
+ "slug": "taste",
203
+ "source": "TASTE.svg",
204
+ "sourceSha256": "778f92611b061be47a625984e1be95a165a9c2f30c471e9cb4e25f9b6124a03a",
205
+ "preview": "taste.webp",
206
+ "previewSha256": "1aa9ce5056aa33a7813decc6d5de43fee311d4a1487109f0737714654377117c"
207
+ },
208
+ {
209
+ "slug": "tsb",
210
+ "source": "TSB.svg",
211
+ "sourceSha256": "b68f92de19cec3b1d838cb418a795613785aacd3b19b03d6baac9dda95b0174e",
212
+ "preview": "tsb.webp",
213
+ "previewSha256": "3893e7c2e42964fcbd02de230b195e5378092d24bd5d2b9d42e6d9ab4d6df32a"
214
+ },
215
+ {
216
+ "slug": "vibing",
217
+ "source": "VIBING.svg",
218
+ "sourceSha256": "e354f5369e9ffb506846a2547b28519c77f4686ec3a56a3a071c19b7ce5dcbb8",
219
+ "preview": "vibing.webp",
220
+ "previewSha256": "adc8d0872bc636ffc31eb71a2a09b3f9343b998b971cc88cd530d23ac91b5f9c"
221
+ }
222
+ ]
223
+ }