@pebbly/aseprite-ai-artist 0.1.4 → 0.1.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/CHANGELOG.md +80 -0
- package/README.md +108 -149
- package/dist/bridge/client.js +4 -4
- package/dist/bridge/client.js.map +1 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/lib/report.d.ts +2 -0
- package/dist/lib/report.js +15 -1
- package/dist/lib/report.js.map +1 -1
- package/dist/tools/craft.js +1 -1
- package/dist/tools/craft.js.map +1 -1
- package/dist/tools/session.js +13 -3
- package/dist/tools/session.js.map +1 -1
- package/extension/ai-artist.lua +77 -14
- package/extension/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,86 @@ All notable changes to this project are documented here. Format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning is
|
|
5
5
|
[semver](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [0.1.6] — 2026-09-09
|
|
8
|
+
|
|
9
|
+
Mostly documentation and art, plus one thing that should have existed from the
|
|
10
|
+
start. The extension's own code is unchanged from 0.1.5 apart from the version
|
|
11
|
+
string it reports.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **`doctor` and `preflight` now say when the attached extension is older than
|
|
16
|
+
the server.** Aseprite loads the extension once, at startup, so an editor left
|
|
17
|
+
open across an upgrade keeps answering with the old build — silently, for as
|
|
18
|
+
long as that session lasts. Nothing compared the two versions, so this went
|
|
19
|
+
unnoticed for a whole working day: three bugs fixed in 0.1.5 went on being
|
|
20
|
+
worked around by an agent talking to a 0.1.3 extension that reported itself
|
|
21
|
+
perfectly happily. A mismatch is no longer a tick, and `preflight` puts it in
|
|
22
|
+
the directive the agent reads first.
|
|
23
|
+
- `docs/media/src/hero2/` — the generator the hero is built from: a coordinate
|
|
24
|
+
model that emits all 54 frames, a push script, and `compare.py`, which diffs
|
|
25
|
+
the model against Aseprite's own export and currently reports zero differing
|
|
26
|
+
pixels. The scene had been regenerable only from a temporary directory.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- **The hero animation closes its loop.** It ran 36 frames, finished the
|
|
31
|
+
painting and hard-cut back to a blank canvas. Now the robot holds on the
|
|
32
|
+
finished picture, wipes it off, and starts again — 54 frames, tagged `paint`
|
|
33
|
+
(1–33), `hold` (34–37), `erase` (38–52), `reset` (53–54). Frame 54 hands over
|
|
34
|
+
to frame 1 with 60 pixels different, all of them deliberate: the first dab,
|
|
35
|
+
the antenna, one step of the dust clock.
|
|
36
|
+
- **The README is half the prose it was.** Fifteen headings became nine, the
|
|
37
|
+
install is three short steps, and the per-client capability table moved to
|
|
38
|
+
`docs/INSTALL.md`, which is where someone installing actually looks.
|
|
39
|
+
- `docs/INSTALL.md` explains why `npx @pebbly/aseprite-ai-artist` fails inside a
|
|
40
|
+
checkout of this repository. npm resolves the current project as the package,
|
|
41
|
+
skips fetching it, and looks for the binary in `node_modules/.bin` — where a
|
|
42
|
+
package's own bin is never linked. The result is `command not found`, which
|
|
43
|
+
reads like a broken package and is only ever a wrong working directory.
|
|
44
|
+
|
|
45
|
+
## [0.1.5] — 2026-09-09
|
|
46
|
+
|
|
47
|
+
Three commands reported success while doing nothing. That is worse than an
|
|
48
|
+
error: the agent believes the edit landed and builds the next step on top of it.
|
|
49
|
+
All three surfaced while drawing a 35-layer scene through the bridge, none of
|
|
50
|
+
them from a crash.
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
|
|
54
|
+
- **`layer` op `group` could never have worked.** It called
|
|
55
|
+
`Sprite:newGroupLayer()`, which is not in the Aseprite API. Indexing a missing
|
|
56
|
+
field throws rather than returning nil, so the whole batch — every other op in
|
|
57
|
+
it included — rolled back with `Field newGroupLayer does not exist`. The
|
|
58
|
+
method is `newGroup()`.
|
|
59
|
+
- **`cel` op `link` linked nothing and counted everything.** `LinkCels` acts on
|
|
60
|
+
the timeline range, not on the active layer and frame; the old code set those
|
|
61
|
+
and called the command once per target frame, which is a no-op, then reported
|
|
62
|
+
one success per frame. A caller was told a static layer had been shared across
|
|
63
|
+
a cycle while the target frames were still empty. The range now holds the
|
|
64
|
+
source cel and every target together in one call, the reply counts only frames
|
|
65
|
+
that actually ended up sharing the source image, and linking from a frame with
|
|
66
|
+
no cel is now an error naming `copy` as the way to seed one.
|
|
67
|
+
- **`validate` timed out on a large sprite.** Its stray and outline scans asked
|
|
68
|
+
`pixel_to_hex` — a `string.format` — whether a pixel was opaque, for every
|
|
69
|
+
pixel and each of its four neighbours: tens of millions of strings allocated
|
|
70
|
+
to compute a boolean. Presence is now answered without allocating. Measured on
|
|
71
|
+
the 35-layer, 36-frame sprite this was found on, the stray scan went from
|
|
72
|
+
10.5s to 2.2s and found the identical 1373 strays.
|
|
73
|
+
|
|
74
|
+
### Changed
|
|
75
|
+
|
|
76
|
+
- **The per-pixel checks skip hidden layers**, as `outline` and `banding`
|
|
77
|
+
already did. A finding about pixels that never reach the export is noise, and
|
|
78
|
+
a document that keeps its earlier drafts as hidden layers is mostly hidden —
|
|
79
|
+
on the sprite above, 769 of 1042 cels. `validate` now says how many layers it
|
|
80
|
+
passed over, so a clean result cannot quietly mean "clean, because I did not
|
|
81
|
+
look".
|
|
82
|
+
- `validate.run` gets its own 120s budget rather than the shared 20s default. A
|
|
83
|
+
thorough pass over a rigged sprite is legitimately slow, and a timeout reads
|
|
84
|
+
to an agent as "Aseprite is not answering" — the one message that sends it
|
|
85
|
+
looking for a workaround.
|
|
86
|
+
|
|
7
87
|
## [0.1.4] — 2026-09-08
|
|
8
88
|
|
|
9
89
|
### Fixed
|
package/README.md
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
<img src="docs/media/
|
|
3
|
+
<img src="docs/media/hero2.gif" alt="A pixel robot at an easel paints a landscape stroke by stroke under a pendant lamp" width="768">
|
|
4
4
|
|
|
5
5
|
# Aseprite AI Artist
|
|
6
6
|
|
|
7
|
-
**
|
|
8
|
-
copy, not on disk
|
|
7
|
+
**Your coding agent draws pixel art in the Aseprite window you already have
|
|
8
|
+
open.** Not a copy, not a file on disk — the document you are looking at.
|
|
9
9
|
|
|
10
10
|
[](https://www.npmjs.com/package/@pebbly/aseprite-ai-artist)
|
|
11
11
|
[](https://github.com/with-pebbly/aseprite-ai-artist/actions/workflows/ci.yml)
|
|
12
12
|
[](LICENSE)
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
<sub>192×96, 54 frames, one palette. Drawn through this server into a live
|
|
15
|
+
Aseprite window — the paint appears under the brush, every frame. Then the robot
|
|
16
|
+
wipes the canvas clean and starts again, which is why the loop has no seam.</sub>
|
|
17
17
|
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
## What it does
|
|
23
|
+
|
|
24
|
+
You ask for something. It gets drawn, in front of you.
|
|
25
25
|
|
|
26
26
|
> *"Draw me a 32×32 knight in the PICO-8 palette, then a 4-frame idle."*
|
|
27
27
|
|
|
28
|
-
The agent
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
compromised on. In your window, undoable, one Ctrl+Z per edit.
|
|
28
|
+
The agent picks a palette, blocks in a silhouette, **looks at what it drew**,
|
|
29
|
+
shades it, splits it onto layers, animates, tags the cycle, and tells you what it
|
|
30
|
+
had to compromise on. Every edit is one Ctrl+Z.
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
Works with **Claude Code, Codex CLI, Gemini CLI, Cursor, VS Code and Windsurf**
|
|
33
|
+
from the same one-line config.
|
|
34
34
|
|
|
35
35
|
## Install
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
You need [Aseprite](https://www.aseprite.org/) 1.3+ and Node 22.6+. Open Aseprite
|
|
38
|
+
once before you start, so its config folder exists.
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
**1 — Install the extension**
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
npx @pebbly/aseprite-ai-artist install-extension
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
Then
|
|
47
|
-
|
|
46
|
+
Then quit and reopen Aseprite. It only dials out at startup, so an editor left
|
|
47
|
+
running from before the install will never connect.
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
**2 — Connect your agent**
|
|
50
50
|
|
|
51
51
|
<details open>
|
|
52
|
-
<summary><b>Claude Code</b> —
|
|
52
|
+
<summary><b>Claude Code</b> — the plugin, not the bare server</summary>
|
|
53
53
|
|
|
54
54
|
<br>
|
|
55
55
|
|
|
@@ -58,14 +58,14 @@ an editor left running from before the install will never connect.
|
|
|
58
58
|
/plugin install aseprite-ai-artist
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
It brings its own server plus the `/pixel-*` commands, the subagents and the
|
|
62
|
+
preview hooks. Don't also add the server by hand — you'd load all eighteen tools
|
|
63
|
+
twice, on every request.
|
|
64
64
|
|
|
65
65
|
</details>
|
|
66
66
|
|
|
67
67
|
<details>
|
|
68
|
-
<summary><b>Codex
|
|
68
|
+
<summary><b>Codex, Gemini, Cursor, VS Code, Windsurf</b></summary>
|
|
69
69
|
|
|
70
70
|
<br>
|
|
71
71
|
|
|
@@ -73,136 +73,94 @@ would load the same eighteen tools twice, on every request.
|
|
|
73
73
|
npx @pebbly/aseprite-ai-artist install codex # ~/.codex/config.toml
|
|
74
74
|
npx @pebbly/aseprite-ai-artist install gemini # ~/.gemini/settings.json
|
|
75
75
|
npx @pebbly/aseprite-ai-artist install cursor # ~/.cursor/mcp.json
|
|
76
|
-
npx @pebbly/aseprite-ai-artist install --all #
|
|
76
|
+
npx @pebbly/aseprite-ai-artist install --all # all of the above
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
it
|
|
81
|
-
`--agents` also appends a section to your `AGENTS.md`.
|
|
79
|
+
Your existing config is backed up first. `--dry-run` shows the change without
|
|
80
|
+
making it, `--project` writes into the repo instead of your home directory.
|
|
82
81
|
|
|
83
82
|
</details>
|
|
84
83
|
|
|
85
|
-
|
|
84
|
+
Restart the agent afterwards so it picks up the new server.
|
|
86
85
|
|
|
87
|
-
|
|
86
|
+
**3 — Check it**
|
|
88
87
|
|
|
89
88
|
```bash
|
|
90
89
|
npx @pebbly/aseprite-ai-artist doctor
|
|
91
90
|
```
|
|
92
91
|
|
|
93
|
-
Ticks all the way down and you
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
Per-client detail and troubleshooting: **[docs/INSTALL.md](docs/INSTALL.md)**.
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Which agent should do the drawing?
|
|
101
|
-
|
|
102
|
-
Two separate things matter, and they do not point at the same client.
|
|
103
|
-
|
|
104
|
-
**Integration** — how much of the craft a client can actually receive:
|
|
92
|
+
Ticks all the way down and you're ready. If something's missing it says which
|
|
93
|
+
half, instead of making you guess. More detail in
|
|
94
|
+
[docs/INSTALL.md](docs/INSTALL.md).
|
|
105
95
|
|
|
106
|
-
|
|
107
|
-
|---|:--:|:--:|:--:|:--:|
|
|
108
|
-
| Claude Code | ✅ | ✅ | ✅ | ✅ via the plugin |
|
|
109
|
-
| Codex CLI | ✅ | ✅ | ✖ | — |
|
|
110
|
-
| Gemini CLI, Cursor, VS Code, Windsurf | ✅ | ✅ | varies | — |
|
|
96
|
+
## Which model should do the drawing?
|
|
111
97
|
|
|
112
|
-
|
|
113
|
-
|
|
98
|
+
Not a benchmark — a log of what actually drew the art on this page. Models we
|
|
99
|
+
haven't run are listed as untested rather than guessed at.
|
|
114
100
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
a brief and the rulebook alone.
|
|
101
|
+
| Model | What it drew | How it went |
|
|
102
|
+
|---|---|---|
|
|
103
|
+
| **Claude Fable 5.1** | the animation up top | Best so far. One session, no review passes needed. |
|
|
104
|
+
| **Codex CLI** `gpt-5.6-terra`, high reasoning | the harbour below, and the mascot | Strong, but it took five rounds of critique. |
|
|
105
|
+
| **Claude Opus 5** | the server, the rulebook, every review pass | The planner and the critic. Its own drawing attempt got scrapped. |
|
|
106
|
+
| Gemini 3 Pro, Sonnet 5, Cursor, others | — | Untested. Run one and send us the sprite. |
|
|
122
107
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
raw pixel placement at small canvas sizes is weaker.
|
|
128
|
-
- If you have both, split the work: brief and review in Claude Code with
|
|
129
|
-
`pixel-brief` and `pixel-review`, execute the drawing passes in Codex. They
|
|
130
|
-
talk to the same live document through the same bridge, so they can take turns
|
|
131
|
-
on one sprite.
|
|
108
|
+
<div align="center">
|
|
109
|
+
<img src="docs/media/mascot.png" alt="The mascot" width="96"><br>
|
|
110
|
+
<sub><i>the mascot — Codex, from the brief and the rulebook alone</i></sub>
|
|
111
|
+
</div>
|
|
132
112
|
|
|
133
|
-
|
|
134
|
-
still cannot casually widen your palette, because `draw` and `recolor` snap by
|
|
135
|
-
perceptual distance and report every colour they moved. It does not close it.
|
|
113
|
+
**Method mattered more than the model.** Both good results came the same way:
|
|
136
114
|
|
|
137
|
-
|
|
115
|
+
- **Generate, don't hand-place.** Write a small program that emits every frame,
|
|
116
|
+
then push it. Placing pixels one call at a time by eye is where the weak
|
|
117
|
+
attempts died.
|
|
118
|
+
- **Look at frames full-size, one at a time.** A filmstrip is a trap — at that
|
|
119
|
+
size you see what you already know is meant to be there.
|
|
120
|
+
- **Turn reasoning up** before you blame the model. A 32×32 grid is a spatial
|
|
121
|
+
problem.
|
|
138
122
|
|
|
139
|
-
##
|
|
123
|
+
## Why this one
|
|
140
124
|
|
|
141
125
|
**It works everywhere, not just in Claude Code.** Most Aseprite MCP projects put
|
|
142
|
-
their craft knowledge in a Claude Code plugin
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
`rules://` and `skill://` resources *and* as MCP prompts, so every client gets
|
|
146
|
-
them from one source of truth.
|
|
126
|
+
their craft knowledge in a Claude Code plugin, so Codex and Cursor get raw tools
|
|
127
|
+
and none of the discipline. Here the rules and workflows are served over MCP, so
|
|
128
|
+
every client reads the same source of truth.
|
|
147
129
|
|
|
148
130
|
**Eighteen tools, not ninety.** Every tool schema sits in the model's context on
|
|
149
|
-
every turn,
|
|
150
|
-
|
|
151
|
-
|
|
131
|
+
every turn, drawing or not. Grouping by noun with an `op` enum covers the same
|
|
132
|
+
ground at a sixth of the cost — and makes batching the default, so one `draw`
|
|
133
|
+
call is one undo step for you.
|
|
152
134
|
|
|
153
|
-
**
|
|
154
|
-
|
|
135
|
+
**It has to look at its own work.** `look` gives the agent an upscaled preview, a
|
|
136
|
+
one-glyph-per-pixel text grid, a filmstrip and a frame-to-frame diff. `validate`
|
|
137
|
+
then checks the sprite mechanically before anything is called finished.
|
|
155
138
|
|
|
156
|
-
**It
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
139
|
+
**It can't quietly wreck your file.** With Aseprite detached, every tool refuses
|
|
140
|
+
immediately instead of timing out — because an agent that "recovers" by editing
|
|
141
|
+
the `.aseprite` on disk makes changes you never see, and your next save
|
|
142
|
+
overwrites them.
|
|
160
143
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
an agent that "recovers" by editing the `.aseprite` file makes changes you never
|
|
164
|
-
see, and your next save overwrites them.
|
|
165
|
-
|
|
166
|
-
There is [a whole page](docs/RESEARCH.md) on the other projects in this space,
|
|
167
|
-
what was taken from them, and where they are still better.
|
|
168
|
-
|
|
169
|
-
---
|
|
144
|
+
There's [a whole page](docs/RESEARCH.md) on the other projects in this space and
|
|
145
|
+
where they're still better.
|
|
170
146
|
|
|
171
|
-
##
|
|
147
|
+
## What's inside
|
|
172
148
|
|
|
173
|
-
Eighteen
|
|
149
|
+
**Eighteen tools**, grouped by noun — `preflight` · `sprite_info` ·
|
|
150
|
+
`sprite_manage` · `look` · `read_pixels` · `draw` · `select` · `transform` ·
|
|
151
|
+
`recolor` · `layer` · `frame` · `tag` · `cel` · `palette` · `validate` ·
|
|
152
|
+
`reference` · `export` · `tileset`, plus `run_lua` as an escape hatch, off by
|
|
153
|
+
default. Full reference: [docs/TOOLS.md](docs/TOOLS.md).
|
|
174
154
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
| **Structure** | `layer` · `frame` · `tag` · `cel` |
|
|
181
|
-
| **Colour & quality** | `palette` · `validate` |
|
|
182
|
-
| **Assets** | `reference` · `export` · `tileset` |
|
|
155
|
+
**Eleven workflows** the agent follows, served to every client — `pixel-brief` ·
|
|
156
|
+
`pixel-new` · `pixel-palette` · `pixel-draw` · `pixel-shade` · `pixel-rig` ·
|
|
157
|
+
`pixel-animate` · `pixel-tileset` · `pixel-review` · `pixel-fix` ·
|
|
158
|
+
`pixel-export`. In Claude Code you also get four specialists: **pixel-critic**,
|
|
159
|
+
**palette-smith**, **rig-builder**, **animation-director**.
|
|
183
160
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
Workflows the agent follows, served to every client:
|
|
189
|
-
|
|
190
|
-
`pixel-brief` · `pixel-new` · `pixel-palette` · `pixel-draw` · `pixel-shade` ·
|
|
191
|
-
`pixel-rig` · `pixel-animate` · `pixel-tileset` · `pixel-review` · `pixel-fix` ·
|
|
192
|
-
`pixel-export`
|
|
193
|
-
|
|
194
|
-
And in Claude Code, four specialist subagents: **pixel-critic** (visual QA),
|
|
195
|
-
**palette-smith** (colour), **rig-builder** (layer rigs), **animation-director**
|
|
196
|
-
(cycle planning).
|
|
197
|
-
|
|
198
|
-
## The rules
|
|
199
|
-
|
|
200
|
-
The craft is encoded in [`rules/`](rules/) and served as `rules://` resources —
|
|
201
|
-
palette discipline, hue-shifted shading, silhouette and proportion, outlines and
|
|
202
|
-
edges, animation timing, layer rigging, and a review checklist. Skills reference
|
|
203
|
-
rules rather than restating them, so a rule has exactly one place to be wrong.
|
|
204
|
-
|
|
205
|
-
---
|
|
161
|
+
**A rulebook** in [`rules/`](rules/) — palette discipline, hue-shifted shading,
|
|
162
|
+
silhouette, outlines, animation timing, layer rigging, review checklist. Skills
|
|
163
|
+
reference rules rather than restating them, so a rule has one place to be wrong.
|
|
206
164
|
|
|
207
165
|
## How it works
|
|
208
166
|
|
|
@@ -211,38 +169,39 @@ your agent ──stdio/MCP──▶ server ──ws:9932──▶ bridge
|
|
|
211
169
|
```
|
|
212
170
|
|
|
213
171
|
Aseprite's Lua WebSocket is a client only, so the bridge holds the listening
|
|
214
|
-
socket. It runs as its own
|
|
215
|
-
|
|
216
|
-
|
|
172
|
+
socket. It runs as its own process, so restarting the MCP server — which agent
|
|
173
|
+
hosts do freely — doesn't drop your Aseprite connection, and a second agent
|
|
174
|
+
window can attach without stealing the first one's replies. Details in
|
|
175
|
+
[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
|
|
217
176
|
|
|
218
|
-
|
|
219
|
-
|
|
177
|
+
Both ports bind `127.0.0.1` only. `run_lua` is arbitrary code execution inside
|
|
178
|
+
the app holding your unsaved work, and stays off unless you turn it on — full
|
|
179
|
+
threat model in [SECURITY.md](SECURITY.md).
|
|
220
180
|
|
|
221
181
|
## Development
|
|
222
182
|
|
|
223
183
|
```bash
|
|
224
|
-
npm install
|
|
225
|
-
npm
|
|
226
|
-
npm test
|
|
227
|
-
npm run test:
|
|
228
|
-
npm run test:extension # Lua handlers, headless, against a real sprite
|
|
184
|
+
npm install && npm run build
|
|
185
|
+
npm test # TypeScript
|
|
186
|
+
npm run test:pure # Lua that needs no editor — what CI runs
|
|
187
|
+
npm run test:extension # the real handlers, headless, against a real sprite
|
|
229
188
|
```
|
|
230
189
|
|
|
231
|
-
`test:extension`
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
runs anywhere.
|
|
190
|
+
`test:extension` needs Aseprite installed, so CI can't run it.
|
|
191
|
+
|
|
192
|
+
## One more, drawn the same way
|
|
235
193
|
|
|
236
|
-
|
|
194
|
+
<div align="center">
|
|
237
195
|
|
|
238
|
-
|
|
239
|
-
no authentication, because there is nothing remote to authenticate. `run_lua` is
|
|
240
|
-
arbitrary code execution inside the app holding your unsaved work, and is off
|
|
241
|
-
unless you turn it on. Full threat model in [SECURITY.md](SECURITY.md).
|
|
196
|
+
<img src="docs/media/harbour.gif" alt="A pixel-art harbour at night: a lighthouse beam sweeps over the water, windows flicker, smoke drifts from a chimney" width="768">
|
|
242
197
|
|
|
243
|
-
|
|
198
|
+
<sub>256×144, 28 frames, ten layers. Only six of them move — beam, windows,
|
|
199
|
+
water, smoke, boat, stars — each on its own cycle length, which is what keeps an
|
|
200
|
+
ambient loop from feeling mechanical.</sub>
|
|
244
201
|
|
|
245
|
-
|
|
202
|
+
</div>
|
|
203
|
+
|
|
204
|
+
## Licence
|
|
246
205
|
|
|
247
|
-
Aseprite is a trademark of Igara Studio S.A
|
|
248
|
-
|
|
206
|
+
MIT — see [LICENSE](LICENSE). Aseprite is a trademark of Igara Studio S.A.; this
|
|
207
|
+
project isn't affiliated with them.
|
package/dist/bridge/client.js
CHANGED
|
@@ -105,10 +105,10 @@ export class LiveClient {
|
|
|
105
105
|
*/
|
|
106
106
|
// TODO(boundary): only the call sites whose fields feed a summary or a
|
|
107
107
|
// decision declare `expect` — draw.batch, recolor.apply, export.run,
|
|
108
|
-
// session.site, sprite.info. The rest (select, transform,
|
|
109
|
-
// look, palette) still rest on `call<T>` alone. Extend as
|
|
110
|
-
// against a real reply; guessing a field name here turns a
|
|
111
|
-
// a hard error.
|
|
108
|
+
// session.site, sprite.info, validate.run. The rest (select, transform,
|
|
109
|
+
// reference, tileset, look, palette) still rest on `call<T>` alone. Extend as
|
|
110
|
+
// each is checked against a real reply; guessing a field name here turns a
|
|
111
|
+
// working path into a hard error.
|
|
112
112
|
async call(cmd, args = {}, opts = {}) {
|
|
113
113
|
const expect = opts.expect ?? [];
|
|
114
114
|
const timeoutMs = opts.timeoutMs ?? this.timeoutMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/bridge/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/bridge/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAGL,oBAAoB,EAEpB,SAAS,EAET,aAAa,EACb,QAAQ,EACR,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,yFAAyF;AACzF,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAiBjC,MAAM,OAAO,UAAU;IACJ,WAAW,CAAS;IACpB,UAAU,CAAS;IACnB,SAAS,CAAU;IACnB,SAAS,CAAS;IAClB,GAAG,CAAwB;IAEpC,MAAM,GAAqB,IAAI,CAAC;IAChC,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IACrC,GAAG,GAAG,CAAC,CAAC;IACR,cAAc,GAAG,iBAAiB,CAAC;IACnC,cAAc,GAA0B,IAAI,CAAC;IAC7C,MAAM,GAAG,KAAK,CAAC;IACf,WAAW,GAAG,CAAC,CAAC;IAChB,UAAU,GAAkB,IAAI,CAAC;IAEjC,KAAK,GAA4B,IAAI,CAAC;IAE9C,YAAY,OAA0B,EAAE;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACtD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACtE,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACpD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,eAAe;gBAAE,OAAO,IAAI,CAAC;YACtC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,uEAAuE;IACvE,qEAAqE;IACrE,wEAAwE;IACxE,8EAA8E;IAC9E,2EAA2E;IAC3E,kCAAkC;IAClC,KAAK,CAAC,IAAI,CACR,GAAW,EACX,OAAgC,EAAE,EAClC,OAA2D,EAAE;QAE7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,MAAM,YAAY,CAAC,kCAAkC,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,MAAM,YAAY,EAAE,CAAC;QAEhD,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAiB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QAE9C,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,CACJ,IAAI,SAAS,CAAC,SAAS,EAAE,4BAA4B,GAAG,YAAY,SAAS,KAAK,EAAE;oBAClF,GAAG;oBACH,mBAAmB,EAAE,IAAI;iBAC1B,CAAC,CACH,CAAC;YACJ,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;gBACnB,OAAO,EAAE,CAAC,KAAc,EAAE,EAAE;oBAC1B,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,CACJ,IAAI,SAAS,CACX,gBAAgB,EAChB,oCAAoC,GAAG,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;4BAC7F,sFAAsF,EACxF,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAC5C,CACF,CAAC;wBACF,OAAO;oBACT,CAAC;oBACD,OAAO,CAAC,KAAU,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM;gBACN,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,cAAc;YAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa,CAAC,GAAU;QAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,8EAA8E;IAEtE,OAAO;QACb,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,kBAAkB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACrB,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE9D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,8DAA8D;QAChE,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,sEAAsE;YACtE,0EAA0E;YAC1E,8DAA8D;YAC9D,IAAI,CAAC,aAAa,CAChB,YAAY,CAAC,8DAA8D,CAAC,CAC7E,CAAC;YACF,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,wEAAwE;gBACxE,uEAAuE;gBACvE,wDAAwD;gBACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,EAAE,CAAC;oBAC/C,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;oBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,sEAAsE;QACtE,yEAAyE;QACzE,8CAA8C;QAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;IAChC,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QAC7B,MAAM,MAAM,GAAG,KAAoB,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;YACzB,OAAO,CAAC,MAAM,CACZ,IAAI,SAAS,CACX,GAAG,EAAE,IAAI,IAAI,gBAAgB,EAC7B,GAAG,EAAE,OAAO,IAAI,2CAA2C,EAC3D,GAAG,EAAE,OAAO,IAAI,EAAE,CACnB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,WAAW;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,KAAK,CACjB,OAAO,CAAC,QAAQ,EAChB,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EACrG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpC,CAAC;YACF,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAc,EAAE,MAAyB;IAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -213,6 +213,7 @@ async function doctor(opts) {
|
|
|
213
213
|
controlPort: opts.controlPort,
|
|
214
214
|
extensionVersion: live.hello?.extensionVersion,
|
|
215
215
|
asepriteVersion: live.hello?.asepriteVersion,
|
|
216
|
+
serverVersion: packageVersion(),
|
|
216
217
|
}));
|
|
217
218
|
if (pluginUp) {
|
|
218
219
|
lines.push(` features ${live.features.join(", ") || "(none)"}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/report.d.ts
CHANGED
|
@@ -15,5 +15,7 @@ export interface LinkState {
|
|
|
15
15
|
controlPort: number;
|
|
16
16
|
extensionVersion?: string;
|
|
17
17
|
asepriteVersion?: string;
|
|
18
|
+
/** This package's version, to compare against the extension actually attached. */
|
|
19
|
+
serverVersion?: string;
|
|
18
20
|
}
|
|
19
21
|
export declare function linkLines(state: LinkState): [bridge: string, extension: string];
|
package/dist/lib/report.js
CHANGED
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
* product of the command — a user reads them and decides what to go and fix —
|
|
6
6
|
* and cli.ts runs `main()` on import, so it cannot be loaded from a test.
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* The extension is installed separately and only reloads when Aseprite
|
|
10
|
+
* restarts, so an editor left running keeps answering with whatever build it
|
|
11
|
+
* started with — for hours, across several `npx` upgrades. Nothing compared the
|
|
12
|
+
* two versions, so a bug fixed days ago went on being worked around by whoever
|
|
13
|
+
* was drawing. A tick that says nothing about this is the wrong tick.
|
|
14
|
+
*/
|
|
15
|
+
function staleExtension(state) {
|
|
16
|
+
const { extensionVersion: ext, serverVersion: server } = state;
|
|
17
|
+
return Boolean(ext && server && ext !== server);
|
|
18
|
+
}
|
|
8
19
|
export function linkLines(state) {
|
|
9
20
|
const bridge = !state.bridgeUp
|
|
10
21
|
? `✗ Bridge could not reach or start it on :${state.controlPort}`
|
|
@@ -14,7 +25,10 @@ export function linkLines(state) {
|
|
|
14
25
|
// nothing about whether the user's setup works.
|
|
15
26
|
: `· Bridge not running — started one to test, stopping it again below`;
|
|
16
27
|
const extension = state.pluginUp
|
|
17
|
-
?
|
|
28
|
+
? staleExtension(state)
|
|
29
|
+
? `! Aseprite extension ${state.extensionVersion} attached, but this server is ${state.serverVersion} — ` +
|
|
30
|
+
"run `install-extension` and restart Aseprite"
|
|
31
|
+
: `✓ Aseprite extension ${state.extensionVersion ?? "?"} on Aseprite ${state.asepriteVersion ?? "?"}`
|
|
18
32
|
: state.bridgeUp
|
|
19
33
|
? "✗ Aseprite extension not connected — open Aseprite, or run `install-extension` and restart it"
|
|
20
34
|
// Without a bridge the extension has nothing to attach to, so its state is
|
package/dist/lib/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/lib/report.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/lib/report.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,KAAgB;IACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC/D,OAAO,OAAO,CAAC,GAAG,IAAI,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAgB;IACxC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ;QAC5B,CAAC,CAAC,4DAA4D,KAAK,CAAC,WAAW,EAAE;QACjF,CAAC,CAAC,KAAK,CAAC,iBAAiB;YACvB,CAAC,CAAC,2CAA2C,KAAK,CAAC,WAAW,EAAE;YAChE,2EAA2E;YAC3E,gDAAgD;YAChD,CAAC,CAAC,qFAAqF,CAAC;IAE5F,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ;QAC9B,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;YACrB,CAAC,CAAC,4BAA4B,KAAK,CAAC,gBAAgB,iCAAiC,KAAK,CAAC,aAAa,KAAK;gBAC3G,8CAA8C;YAChD,CAAC,CAAC,4BAA4B,KAAK,CAAC,gBAAgB,IAAI,GAAG,gBAAgB,KAAK,CAAC,eAAe,IAAI,GAAG,EAAE;QAC3G,CAAC,CAAC,KAAK,CAAC,QAAQ;YACd,CAAC,CAAC,mGAAmG;YACrG,2EAA2E;YAC3E,sEAAsE;YACtE,wCAAwC;YACxC,CAAC,CAAC,uEAAuE,CAAC;IAE9E,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/tools/craft.js
CHANGED
|
@@ -119,7 +119,7 @@ export function registerCraftTools(server, live) {
|
|
|
119
119
|
annotations: { readOnlyHint: true, openWorldHint: false },
|
|
120
120
|
}, async (args) => {
|
|
121
121
|
try {
|
|
122
|
-
const data = await live.call("validate.run", args);
|
|
122
|
+
const data = await live.call("validate.run", args, { expect: ["findings"], timeoutMs: 120_000 });
|
|
123
123
|
const errors = data.findings.filter((f) => f.severity === "error");
|
|
124
124
|
const warnings = data.findings.filter((f) => f.severity === "warning");
|
|
125
125
|
const passed = errors.length === 0 && (!args.strict || warnings.length === 0);
|
package/dist/tools/craft.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craft.js","sourceRoot":"","sources":["../../src/tools/craft.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"craft.js","sourceRoot":"","sources":["../../src/tools/craft.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/session.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { fail, ok, targetShape } from "./kit.js";
|
|
3
|
+
import { packageVersion } from "../lib/version.js";
|
|
3
4
|
export function registerSessionTools(server, live) {
|
|
4
5
|
server.registerTool("preflight", {
|
|
5
6
|
title: "Preflight",
|
|
@@ -46,6 +47,14 @@ export function registerSessionTools(server, live) {
|
|
|
46
47
|
: "The bridge is not running. Ask the user to run `npx @pebbly/aseprite-ai-artist doctor`.",
|
|
47
48
|
}, "NOT READY — Aseprite is not connected. Do not attempt to edit files on disk instead.");
|
|
48
49
|
}
|
|
50
|
+
// Aseprite loads the extension once, at startup, so an editor left open
|
|
51
|
+
// across an upgrade keeps answering with the old build — and the agent
|
|
52
|
+
// spends the session working around bugs that were fixed weeks ago. Say
|
|
53
|
+
// so up front; it is the first thing preflight is asked.
|
|
54
|
+
const stale = base.extensionVersion !== null && base.extensionVersion !== packageVersion()
|
|
55
|
+
? `The attached extension is ${String(base.extensionVersion)} but this server is ${packageVersion()}. ` +
|
|
56
|
+
"Tell the user to run `install-extension` and restart Aseprite before trusting a command that misbehaves. "
|
|
57
|
+
: "";
|
|
49
58
|
try {
|
|
50
59
|
const site = await live.call("session.site", {}, { expect: ["openSprites"] });
|
|
51
60
|
const sprite = site.sprite;
|
|
@@ -62,9 +71,10 @@ export function registerSessionTools(server, live) {
|
|
|
62
71
|
layers: Number(sprite.layers ?? 0),
|
|
63
72
|
}
|
|
64
73
|
: null,
|
|
65
|
-
directive:
|
|
66
|
-
|
|
67
|
-
|
|
74
|
+
directive: stale +
|
|
75
|
+
(sprite
|
|
76
|
+
? "Ready. Call sprite_info before your first edit so you are working from the real layer, frame and palette state."
|
|
77
|
+
: "Ready, but no sprite is open. Use sprite_manage with op 'new' or 'open' first."),
|
|
68
78
|
}, sprite
|
|
69
79
|
? `READY — Aseprite ${base.asepriteVersion}, active sprite ${String(sprite.name)} (${String(sprite.width)}×${String(sprite.height)}).`
|
|
70
80
|
: "READY — Aseprite is connected but no sprite is open.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"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"}
|
package/extension/ai-artist.lua
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
--------------------------------------------------------------------------------
|
|
16
16
|
|
|
17
17
|
local PROTOCOL_VERSION = 1
|
|
18
|
-
local EXTENSION_VERSION = "0.1.
|
|
18
|
+
local EXTENSION_VERSION = "0.1.6"
|
|
19
19
|
|
|
20
20
|
-- Optional capabilities. The wire version stays 1 across builds; new command
|
|
21
21
|
-- families are gated on these flags plus the loud unsupported_command reply,
|
|
@@ -105,6 +105,21 @@ local function pixel_to_hex(sprite, value)
|
|
|
105
105
|
end
|
|
106
106
|
end
|
|
107
107
|
|
|
108
|
+
-- "Is there paint here?" without asking which colour. The scans in validate
|
|
109
|
+
-- test presence far more often than they read a colour — every opaque pixel
|
|
110
|
+
-- plus its four neighbours — and pixel_to_hex answers with a string.format,
|
|
111
|
+
-- so it allocated tens of millions of strings to compute a boolean.
|
|
112
|
+
local function pixel_is_opaque(sprite, value)
|
|
113
|
+
local pc = app.pixelColor
|
|
114
|
+
if sprite.colorMode == ColorMode.INDEXED then
|
|
115
|
+
if value == sprite.transparentColor then return false end
|
|
116
|
+
return value < #sprite.palettes[1]
|
|
117
|
+
elseif sprite.colorMode == ColorMode.GRAY then
|
|
118
|
+
return pc.grayaA(value) ~= 0
|
|
119
|
+
end
|
|
120
|
+
return pc.rgbaA(value) ~= 0
|
|
121
|
+
end
|
|
122
|
+
|
|
108
123
|
-- Convert a Color into the raw pixel value this sprite's colour mode stores.
|
|
109
124
|
local function color_to_pixel(sprite, color)
|
|
110
125
|
local pc = app.pixelColor
|
|
@@ -1322,7 +1337,10 @@ local function apply_layer_op(s, op)
|
|
|
1322
1337
|
return
|
|
1323
1338
|
end
|
|
1324
1339
|
if kind == "group" then
|
|
1325
|
-
|
|
1340
|
+
-- Sprite:newGroup(), not newGroupLayer(): the latter does not exist, and
|
|
1341
|
+
-- indexing a missing field throws rather than returning nil, so the whole
|
|
1342
|
+
-- batch transaction rolled back with "Field newGroupLayer does not exist".
|
|
1343
|
+
local group = s:newGroup()
|
|
1326
1344
|
group.name = op.name or "group"
|
|
1327
1345
|
for _, name in ipairs(op.names or {}) do find_layer(s, name).parent = group end
|
|
1328
1346
|
return
|
|
@@ -1573,15 +1591,42 @@ H["cel.apply"] = function(args)
|
|
|
1573
1591
|
s:newCel(dstLayer, dstFrame, src.image:clone(), src.position)
|
|
1574
1592
|
applied = 1
|
|
1575
1593
|
elseif op == "link" then
|
|
1576
|
-
|
|
1594
|
+
-- LinkCels acts on the timeline range, not on app.layer/app.frame. The
|
|
1595
|
+
-- previous version set those and called the command once per frame, which
|
|
1596
|
+
-- linked nothing at all — and still counted one success per frame, so a
|
|
1597
|
+
-- caller was told a static layer had been shared across a cycle when the
|
|
1598
|
+
-- target frames were still empty. The range has to hold the source cel
|
|
1599
|
+
-- and every target together, in one call.
|
|
1600
|
+
local targets = args.frames or {}
|
|
1601
|
+
if #targets == 0 then
|
|
1602
|
+
fault("invalid_args", "cel op 'link' needs 'frames' — the frames to share this cel with.")
|
|
1603
|
+
end
|
|
1604
|
+
local source = get_cel(s, layer, frame, false)
|
|
1605
|
+
if not source then
|
|
1606
|
+
fault("invalid_args", "No cel on '" .. layer.name .. "' frame " .. frame.frameNumber ..
|
|
1607
|
+
" to link from. Draw it there first, or use op 'copy'.")
|
|
1608
|
+
end
|
|
1609
|
+
|
|
1610
|
+
local numbers = { frame.frameNumber }
|
|
1611
|
+
for _, n in ipairs(targets) do numbers[#numbers + 1] = find_frame(s, n).frameNumber end
|
|
1612
|
+
|
|
1577
1613
|
preserving_site(function()
|
|
1578
|
-
app.
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
end
|
|
1614
|
+
app.sprite = s
|
|
1615
|
+
app.range.layers = { layer }
|
|
1616
|
+
app.range.frames = numbers
|
|
1617
|
+
app.command.LinkCels()
|
|
1618
|
+
pcall(function() app.range:clear() end)
|
|
1584
1619
|
end)
|
|
1620
|
+
|
|
1621
|
+
-- Count what happened rather than what was asked for: linking replaces
|
|
1622
|
+
-- the shared image, so a target counts only if it now holds the same
|
|
1623
|
+
-- image object as the source does afterwards.
|
|
1624
|
+
local shared = layer:cel(frame)
|
|
1625
|
+
local id = shared and shared.image.id
|
|
1626
|
+
for _, n in ipairs(targets) do
|
|
1627
|
+
local c = layer:cel(find_frame(s, n))
|
|
1628
|
+
if c and id and c.image.id == id then applied = applied + 1 end
|
|
1629
|
+
end
|
|
1585
1630
|
elseif op == "unlink" then
|
|
1586
1631
|
preserving_site(function()
|
|
1587
1632
|
app.layer = layer; app.frame = frame; app.command.UnlinkCel(); applied = 1
|
|
@@ -2911,6 +2956,13 @@ H["validate.run"] = function(args)
|
|
|
2911
2956
|
end
|
|
2912
2957
|
end
|
|
2913
2958
|
|
|
2959
|
+
-- Hidden layers are skipped by the per-pixel scans, the way outline and
|
|
2960
|
+
-- banding already skipped them: a finding about pixels that do not reach the
|
|
2961
|
+
-- export is noise, and a document that keeps its earlier drafts around as
|
|
2962
|
+
-- hidden layers is mostly hidden — on the sprite this was measured against,
|
|
2963
|
+
-- 769 of 1042 cels, which is where the 20s budget went.
|
|
2964
|
+
local hidden_skipped = 0
|
|
2965
|
+
|
|
2914
2966
|
for _, layer in ipairs(s.layers) do
|
|
2915
2967
|
if not layer.isGroup then
|
|
2916
2968
|
if wanted.layers and #layer.cels == 0 then
|
|
@@ -2918,22 +2970,24 @@ H["validate.run"] = function(args)
|
|
|
2918
2970
|
"Layer '" .. layer.name .. "' has no cels on any frame.", { layer = layer.name })
|
|
2919
2971
|
end
|
|
2920
2972
|
|
|
2973
|
+
if not layer.isVisible then hidden_skipped = hidden_skipped + 1 end
|
|
2974
|
+
|
|
2921
2975
|
for _, cel in ipairs(layer.cels) do
|
|
2922
2976
|
local img = cel.image
|
|
2923
2977
|
|
|
2924
|
-
if wanted.strays then
|
|
2978
|
+
if wanted.strays and layer.isVisible then
|
|
2925
2979
|
-- A lone opaque pixel with no opaque neighbour is nearly always a
|
|
2926
2980
|
-- misplaced click or an off-by-one in generated coordinates.
|
|
2927
2981
|
local strays = 0
|
|
2928
2982
|
local first = nil
|
|
2929
2983
|
for y = 0, img.height - 1 do
|
|
2930
2984
|
for x = 0, img.width - 1 do
|
|
2931
|
-
if
|
|
2985
|
+
if pixel_is_opaque(s, img:getPixel(x, y)) then
|
|
2932
2986
|
local neighbours = 0
|
|
2933
2987
|
for _, d in ipairs({ { 1, 0 }, { -1, 0 }, { 0, 1 }, { 0, -1 } }) do
|
|
2934
2988
|
local nx, ny = x + d[1], y + d[2]
|
|
2935
2989
|
if nx >= 0 and ny >= 0 and nx < img.width and ny < img.height
|
|
2936
|
-
and
|
|
2990
|
+
and pixel_is_opaque(s, img:getPixel(nx, ny)) then neighbours = neighbours + 1 end
|
|
2937
2991
|
end
|
|
2938
2992
|
if neighbours == 0 then
|
|
2939
2993
|
strays = strays + 1
|
|
@@ -2950,7 +3004,7 @@ H["validate.run"] = function(args)
|
|
|
2950
3004
|
end
|
|
2951
3005
|
end
|
|
2952
3006
|
|
|
2953
|
-
if wanted.antialiasing and s.colorMode ~= ColorMode.INDEXED then
|
|
3007
|
+
if wanted.antialiasing and layer.isVisible and s.colorMode ~= ColorMode.INDEXED then
|
|
2954
3008
|
local semi = 0
|
|
2955
3009
|
for y = 0, img.height - 1 do
|
|
2956
3010
|
for x = 0, img.width - 1 do
|
|
@@ -2989,7 +3043,7 @@ H["validate.run"] = function(args)
|
|
|
2989
3043
|
for _, d in ipairs({ { 1, 0 }, { -1, 0 }, { 0, 1 }, { 0, -1 } }) do
|
|
2990
3044
|
local nx, ny = x + d[1], y + d[2]
|
|
2991
3045
|
if nx < 0 or ny < 0 or nx >= img.width or ny >= img.height
|
|
2992
|
-
or
|
|
3046
|
+
or not pixel_is_opaque(s, img:getPixel(nx, ny)) then exposed = true end
|
|
2993
3047
|
end
|
|
2994
3048
|
if exposed then
|
|
2995
3049
|
total = total + 1
|
|
@@ -3085,6 +3139,15 @@ H["validate.run"] = function(args)
|
|
|
3085
3139
|
end
|
|
3086
3140
|
end
|
|
3087
3141
|
|
|
3142
|
+
-- Say what was not looked at, rather than letting a clean result imply the
|
|
3143
|
+
-- whole document was checked.
|
|
3144
|
+
if hidden_skipped > 0 then
|
|
3145
|
+
add_finding(findings, "layers", "note",
|
|
3146
|
+
hidden_skipped .. " hidden layer(s) were not scanned for strays, outline, banding or " ..
|
|
3147
|
+
"antialiasing — those checks describe what the sprite shows. Make a layer visible to include it.",
|
|
3148
|
+
{ count = hidden_skipped })
|
|
3149
|
+
end
|
|
3150
|
+
|
|
3088
3151
|
return { sprite = sprite_display_name(s), findings = findings }
|
|
3089
3152
|
end
|
|
3090
3153
|
|
package/extension/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "aseprite-ai-artist",
|
|
3
3
|
"displayName": "Aseprite AI Artist",
|
|
4
4
|
"description": "Lets a coding agent draw in this Aseprite session over a local WebSocket link. Connects to 127.0.0.1 only; nothing leaves the machine.",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.6",
|
|
6
6
|
"author": "with-pebbly",
|
|
7
7
|
"publisher": "with-pebbly",
|
|
8
8
|
"license": "MIT",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pebbly/aseprite-ai-artist",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Agent-native control layer for Aseprite. MCP server (2025-11-25 spec, designed forward to 2026-07-28) + cross-agent skills for Claude Code, Codex, Gemini CLI and Cursor.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|