@looop-games/cli 0.1.3 → 0.1.4
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/lib/create.mjs +5 -1
- package/lib/create.test.mjs +4 -0
- package/package.json +1 -1
- package/template/AGENTS.md +7 -1
package/lib/create.mjs
CHANGED
|
@@ -35,7 +35,11 @@ const NAME_OK = /^[a-z0-9][a-z0-9-]{0,40}$/;
|
|
|
35
35
|
// esbuild/workerd pins between releases, and a version-pinned approval would
|
|
36
36
|
// quietly stop covering them on the next bump — the same silent breakage,
|
|
37
37
|
// later. Caught by our first Windows creator, 2026-07-11.
|
|
38
|
-
|
|
38
|
+
// fsevents is macOS-only (an optional dep of the file watchers) — it never
|
|
39
|
+
// installs on Windows, so the entry is simply unused there. Approving it
|
|
40
|
+
// keeps a Mac creator's first install warning-free, and under npm 12 keeps
|
|
41
|
+
// the watcher on native FSEvents instead of silently degrading to polling.
|
|
42
|
+
const ALLOW_SCRIPTS = { esbuild: true, workerd: true, fsevents: true };
|
|
39
43
|
|
|
40
44
|
// Smokes drive a real browser, so playwright ships in every scaffold's
|
|
41
45
|
// devDependencies and the Chromium binary is fetched at create time — a
|
package/lib/create.test.mjs
CHANGED
|
@@ -94,6 +94,10 @@ test('scaffolds a complete standalone game folder', async () => {
|
|
|
94
94
|
// strict npm, 2026-07-11.
|
|
95
95
|
assert.equal(pkg.allowScripts.esbuild, true, 'esbuild postinstall pre-approved (native binary)');
|
|
96
96
|
assert.equal(pkg.allowScripts.workerd, true, 'workerd postinstall pre-approved (native binary)');
|
|
97
|
+
// macOS-only optional dep of the watchers; unused on Windows. Verified
|
|
98
|
+
// against a real npm 11 install of the published scaffold: with these three
|
|
99
|
+
// the install is warning-free on every platform.
|
|
100
|
+
assert.equal(pkg.allowScripts.fsevents, true, 'fsevents postinstall pre-approved (mac watcher)');
|
|
97
101
|
|
|
98
102
|
// The agent-facing surface: instructions + a pointer at the practices docs
|
|
99
103
|
// that ship inside the installed engine bundle.
|
package/package.json
CHANGED
package/template/AGENTS.md
CHANGED
|
@@ -28,13 +28,19 @@ applies. This table routes only what has no skill:
|
|
|
28
28
|
- `npx looop dev` — the full local stack: the game at
|
|
29
29
|
http://localhost:8000/games/{{name}}/index.html, multiplayer on :1999,
|
|
30
30
|
platform services (LLM etc.) on :8788. Leave it running; edits hot-reload.
|
|
31
|
+
**On a new machine the first `dev` signs the creator in: a browser window
|
|
32
|
+
opens, they log in and click Approve (~30 seconds, once per machine). Tell
|
|
33
|
+
them it's coming BEFORE you run it** — an unexplained browser popup mid-build
|
|
34
|
+
reads as something going wrong.
|
|
31
35
|
- `npx looop test` — the per-change gate: runs every `*.test.mjs` (unit, under
|
|
32
36
|
node) and every `*.smoke.mjs` (against a real dev stack it boots itself on
|
|
33
37
|
free ports) in this folder.
|
|
34
38
|
- `npx looop login` — connect this machine to the creator's Looop account
|
|
35
39
|
(once per machine; the first `looop dev` runs it automatically).
|
|
36
40
|
- `npx looop publish` — ship to https://play.looop.games/g/{{name}}.
|
|
37
|
-
|
|
41
|
+
**The first publish permanently claims the name `{{name}}` for the creator's
|
|
42
|
+
account** — from then on only they can update it. `--slug <alt>` publishes an
|
|
43
|
+
A/B copy without touching the live game.
|
|
38
44
|
|
|
39
45
|
## The rules that are physics (not preference)
|
|
40
46
|
|