@bitmagic/cli 0.1.71-dev.0 → 0.1.71-dev.3

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 (59) hide show
  1. package/README.md +15 -6
  2. package/assets/roblox-port/README.md +19 -0
  3. package/assets/roblox-port/SKILL.md +154 -0
  4. package/assets/roblox-port/build-studio-update.mjs +41 -0
  5. package/assets/roblox-port/export-packed-mesh.mjs +166 -0
  6. package/assets/roblox-port/lib.mjs +193 -0
  7. package/assets/roblox-port/port-state.mjs +129 -0
  8. package/assets/roblox-port/references/assets.md +100 -0
  9. package/assets/roblox-port/references/source-and-runtime.md +68 -0
  10. package/assets/roblox-port/references/state-contracts.md +129 -0
  11. package/assets/roblox-port/references/studio-and-updates.md +119 -0
  12. package/assets/roblox-port/references/verification.md +63 -0
  13. package/assets/roblox-port/studio-runtime.luau +347 -0
  14. package/assets/roblox-port/tests/mesh.test.mjs +81 -0
  15. package/assets/roblox-port/tests/state.test.mjs +148 -0
  16. package/assets/roblox-port/tests/studio-mock.luau +109 -0
  17. package/assets/roblox-port/tests/studio-runtime.test.mjs +309 -0
  18. package/assets/skills/publishing-to-poki/SKILL.md +14 -5
  19. package/dist/commands/forge.js +10 -2
  20. package/dist/commands/forge.js.map +1 -1
  21. package/dist/commands/generate.js +12 -0
  22. package/dist/commands/generate.js.map +1 -1
  23. package/dist/forge/edit-target.d.ts +3 -0
  24. package/dist/forge/edit-target.js +14 -2
  25. package/dist/forge/edit-target.js.map +1 -1
  26. package/dist/forge/run-pipeline.js +22 -11
  27. package/dist/forge/run-pipeline.js.map +1 -1
  28. package/dist/generate/model.d.ts +2 -0
  29. package/dist/generate/model.js +1 -0
  30. package/dist/generate/model.js.map +1 -1
  31. package/dist/generate/prop.d.ts +7 -0
  32. package/dist/generate/prop.js +2 -0
  33. package/dist/generate/prop.js.map +1 -1
  34. package/dist/poki/assets.js +6 -2
  35. package/dist/poki/assets.js.map +1 -1
  36. package/dist/poki/check.js +29 -0
  37. package/dist/poki/check.js.map +1 -1
  38. package/dist/poki/handoff.js +4 -1
  39. package/dist/poki/handoff.js.map +1 -1
  40. package/dist/poki/publish.js +9 -2
  41. package/dist/poki/publish.js.map +1 -1
  42. package/dist/poki/service-urls.d.ts +4 -0
  43. package/dist/poki/service-urls.js +38 -0
  44. package/dist/poki/service-urls.js.map +1 -0
  45. package/dist/poki/source-diagnostics.d.ts +3 -0
  46. package/dist/poki/source-diagnostics.js +32 -3
  47. package/dist/poki/source-diagnostics.js.map +1 -1
  48. package/dist/scaffold/project-files.js +1 -1
  49. package/dist/scaffold/project-files.js.map +1 -1
  50. package/dist/scaffold/project.js +2 -0
  51. package/dist/scaffold/project.js.map +1 -1
  52. package/dist/scaffold/roblox-skill-files.d.ts +2 -0
  53. package/dist/scaffold/roblox-skill-files.js +16 -0
  54. package/dist/scaffold/roblox-skill-files.js.map +1 -0
  55. package/dist/scaffold/skill-files.js +2 -1
  56. package/dist/scaffold/skill-files.js.map +1 -1
  57. package/dist/tools/bundles.js +6 -0
  58. package/dist/tools/bundles.js.map +1 -1
  59. package/package.json +4 -4
@@ -0,0 +1,109 @@
1
+ -- Local behavioral model only: this does not replace a native Studio integration test.
2
+ local function newStudio()
3
+ local methods = {}
4
+ local objects = {}
5
+ local model = { running = false, writes = 0, failWrite = nil, beforeWrite = nil }
6
+ local function newObject(className)
7
+ local object = { _props = { ClassName = className, Name = className, Source = "", Enabled = true, Archivable = true, RunContext = "Legacy", LinkedSource = "" }, _attributes = {}, _tags = {} }
8
+ setmetatable(object, {
9
+ __index = function(self, key) return methods[key] or self._props[key] end,
10
+ __newindex = function(self, key, value) self._props[key] = value end,
11
+ })
12
+ table.insert(objects, object)
13
+ return object
14
+ end
15
+ function methods:IsA(className)
16
+ if className == self.ClassName then return true end
17
+ local script = self.ClassName == "Script" or self.ClassName == "LocalScript"
18
+ return (className == "BaseScript" and script) or (className == "LuaSourceContainer" and (script or self.ClassName == "ModuleScript"))
19
+ end
20
+ function methods:GetChildren()
21
+ local children = {}
22
+ for _, object in ipairs(objects) do if object.Parent == self then table.insert(children, object) end end
23
+ return children
24
+ end
25
+ function methods:GetDescendants()
26
+ local result = {}
27
+ local function visit(parent)
28
+ for _, child in ipairs(parent:GetChildren()) do table.insert(result, child); visit(child) end
29
+ end
30
+ visit(self)
31
+ return result
32
+ end
33
+ function methods:SetAttribute(key, value) self._attributes[key] = value end
34
+ function methods:GetAttribute(key) return self._attributes[key] end
35
+ function methods:GetAttributes() return table.clone(self._attributes) end
36
+ function methods:AddTag(tag) self._tags[tag] = true end
37
+ function methods:RemoveTag(tag) self._tags[tag] = nil end
38
+ function methods:GetTags()
39
+ local tags = {}
40
+ for tag in pairs(self._tags) do table.insert(tags, tag) end
41
+ return tags
42
+ end
43
+ function methods:GetFullName()
44
+ return self.Parent and self.Parent:GetFullName() .. "." .. self.Name or self.Name
45
+ end
46
+ function methods:Destroy()
47
+ for _, child in ipairs(self:GetChildren()) do child:Destroy() end
48
+ self.Parent = nil
49
+ end
50
+ local root = newObject("DataModel")
51
+ root.PlaceId = 0; root.GameId = 0; root.CreatorId = 42; root.CreatorType = { Name = "User" }
52
+ local services = {}
53
+ local function encodePrimitive(value)
54
+ if type(value) ~= "string" then return tostring(value) end
55
+ local escaped = value:gsub('[%z\1-\31\\"]', function(character)
56
+ if character == '"' then return '\\"' end
57
+ if character == "\\" then return "\\\\" end
58
+ return string.format("\\u%04x", string.byte(character))
59
+ end)
60
+ return '"' .. escaped .. '"'
61
+ end
62
+ services.HttpService = { JSONEncode = function(_, value) return encodePrimitive(value) end }
63
+ services.RunService = { IsRunning = function() return model.running end }
64
+ services.ScriptEditorService = {
65
+ GetEditorSource = function(_, object) return object.Buffer or object.Source end,
66
+ UpdateSourceAsync = function(_, object, callback)
67
+ model.writes += 1
68
+ if model.writes == model.failWrite then error("Injected source failure") end
69
+ if model.beforeWrite then model.beforeWrite(object) end
70
+ local output = callback(object.Buffer or object.Source)
71
+ object.Source = output
72
+ if object.Buffer then object.Buffer = output end
73
+ if model.afterWrite then model.afterWrite(object) end
74
+ end,
75
+ }
76
+ function methods:GetService(name)
77
+ if not services[name] then
78
+ local object = newObject(name)
79
+ object.Parent = root
80
+ services[name] = object
81
+ end
82
+ return services[name]
83
+ end
84
+ function model:at(parts)
85
+ local object = root:GetService(parts[1])
86
+ for i = 2, #parts do
87
+ local nextObject = nil
88
+ for _, child in ipairs(object:GetChildren()) do if child.Name == parts[i] then nextObject = child end end
89
+ if not nextObject then return nil end
90
+ object = nextObject
91
+ end
92
+ return object
93
+ end
94
+ function model:add(className, parts, source)
95
+ local parent = root:GetService(parts[1])
96
+ for i = 2, #parts - 1 do
97
+ local prefix = {}; for j = 1, i do table.insert(prefix, parts[j]) end
98
+ local child = self:at(prefix)
99
+ if not child then child = newObject("Folder"); child.Name = parts[i]; child.Parent = parent end
100
+ parent = child
101
+ end
102
+ local object = newObject(className)
103
+ object.Name = parts[#parts]; object.Source = source or ""; object.Parent = parent
104
+ return object
105
+ end
106
+ model.game = root
107
+ model.Instance = { new = newObject }
108
+ return model
109
+ end
@@ -0,0 +1,309 @@
1
+ import { test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import fs from 'node:fs';
4
+ import os from 'node:os';
5
+ import path from 'node:path';
6
+ import { spawnSync } from 'node:child_process';
7
+ import { init, prepare, accept, acceptRollback } from '../port-state.mjs';
8
+ import { loadProject, writeJson, validateSnapshot, verifyReadback } from '../lib.mjs';
9
+ import { longString } from '../build-studio-update.mjs';
10
+
11
+ // Opt in with an installed official interpreter. Tests never download or install tools.
12
+ const luau = process.env.LUAU_BIN;
13
+ const runtime = fs.readFileSync(new URL('../studio-runtime.luau', import.meta.url), 'utf8');
14
+ const mock = fs.readFileSync(new URL('./studio-mock.luau', import.meta.url), 'utf8');
15
+ function literal(value) {
16
+ if (value === null) return 'nil';
17
+ if (typeof value === 'string') return longString(value);
18
+ if (Array.isArray(value)) return `{${value.map(literal).join(',')}}`;
19
+ if (typeof value === 'object') return `{${Object.entries(value).map(([k, v]) => `[ ${literal(k)} ]=${literal(v)}`).join(',')}}`;
20
+ return String(value);
21
+ }
22
+ function fixture(t) {
23
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'roblox-luau-'));
24
+ t.after(() => fs.rmSync(dir, { recursive: true, force: true }));
25
+ const source = path.join(dir, 'source'), root = path.join(dir, 'port');
26
+ fs.mkdirSync(source);
27
+ writeJson(path.join(source, 'bitmagic.json'), { gameId: 'local-test', engineVersion: 'test', environment: 'dev' });
28
+ init(source, root);
29
+ fs.writeFileSync(path.join(root, 'generated/shared/Rules.luau'), 'return { damage = 10 }\n');
30
+ fs.writeFileSync(path.join(root, 'generated/server/Main.luau'), 'print("fixture")\n');
31
+ writeJson(path.join(root, 'incoming.json'), { schemaVersion: 1, sourceFiles: ['bitmagic.json'], scripts: [
32
+ { id: 'rules', className: 'ModuleScript', path: ['ReplicatedStorage', 'Port', 'Rules'], file: 'generated/shared/Rules.luau' },
33
+ { id: 'main', className: 'Script', path: ['ServerScriptService', 'Port', 'Main'], file: 'generated/server/Main.luau', enabled: true },
34
+ ] });
35
+ const live = { schemaVersion: 1, mode: 'Edit', target: { projectId: null, targetId: null, placeId: '0', universeId: '0', creatorId: '42', creatorType: 'User' }, buildId: null, pendingRun: null, scripts: [] };
36
+ const run = path.join(dir, 'run'), plan = prepare(root, live, run, { bind: true });
37
+ return { dir, root, run, plan, live, project: loadProject(root) };
38
+ }
39
+ function execute(f, body) {
40
+ const file = path.join(f.dir, 'execution.luau');
41
+ const source = `${mock}\nlocal model = newStudio()\nlocal game, Instance = model.game, model.Instance\nlocal plan = ${literal(f.plan)}\nlocal project = plan.project\nlocal function operation(action, selectedPlan)\nlocal request = {action=action, project=project, plan=selectedPlan or plan, paths={}}\nfor _, s in ipairs(request.plan.generated) do table.insert(request.paths, s.path) end\nfor _, s in ipairs(request.plan.desired) do table.insert(request.paths, s.path) end\n${runtime}\nend\n${body}`;
42
+ fs.writeFileSync(file, source);
43
+ const result = spawnSync(luau, [file], { encoding: 'utf8', timeout: 15000 });
44
+ assert.equal(result.error, undefined);
45
+ assert.equal(result.status, 0, result.stderr);
46
+ return result.stdout.trim().split('\n').filter(Boolean).map(line => JSON.parse(line));
47
+ }
48
+ test('Luau applies exact sources, replays, preserves native content and rolls back', { skip: !luau }, t => {
49
+ const f = fixture(t);
50
+ const [before, applied, replayed, rolledBack] = execute(f, `
51
+ local native = model:add("Part", {"Workspace", "CreatorArt"}); native.Color = "purple"
52
+ print(operation("inspect"))
53
+ print(operation("apply"))
54
+ assert(model:at({"ServerScriptService", "Port", "Main"}).Enabled == true)
55
+ local writes = model.writes
56
+ print(operation("apply"))
57
+ assert(model.writes == writes)
58
+ print(operation("rollback"))
59
+ assert(native.Parent == game:GetService("Workspace") and native.Color == "purple")
60
+ assert(model:at({"ReplicatedStorage", "Port"}) == nil)
61
+ `);
62
+ assert.deepEqual(before, f.live);
63
+ validateSnapshot(applied); verifyReadback(f.plan, applied); verifyReadback(f.plan, replayed);
64
+ accept(f.root, f.run, applied);
65
+ acceptRollback(f.root, f.run, rolledBack);
66
+ });
67
+ test('Luau refuses Play, wrong targets and unowned collisions before mutation', { skip: !luau }, t => {
68
+ const f = fixture(t);
69
+ const [snapshot] = execute(f, `
70
+ model.running = true
71
+ local ok, err = pcall(function() operation("apply") end); assert(not ok and string.find(err, "PLAY_ACTIVE"))
72
+ model.running = false; game.PlaceId = 123
73
+ ok, err = pcall(function() operation("apply") end); assert(not ok and string.find(err, "TARGET_MISMATCH"))
74
+ game.PlaceId = 0
75
+ local other = model:add("ModuleScript", {"ReplicatedStorage", "Port", "Rules"}, "creator source")
76
+ ok = pcall(function() operation("apply") end); assert(not ok and other.Source == "creator source")
77
+ assert(game:GetAttribute("BitmagicPendingRun") == nil and model.writes == 0)
78
+ other:Destroy()
79
+ local extra = model:add("ModuleScript", {"ReplicatedStorage", "CreatorExtra"}, "new managed code")
80
+ extra:SetAttribute("BitmagicTargetId", project.targetId); extra:SetAttribute("BitmagicSourceId", "extra")
81
+ ok, err = pcall(function() operation("apply") end); assert(not ok and string.find(err, "script set changed"))
82
+ assert(model.writes == 0 and game:GetAttribute("BitmagicPendingRun") == nil)
83
+ extra:Destroy()
84
+ print(operation("inspect"))
85
+ `);
86
+ assert.deepEqual(snapshot, f.live);
87
+ });
88
+ test('forward replay finishes an interrupted build commit without rewriting sources', { skip: !luau }, t => {
89
+ const f = fixture(t);
90
+ const [replayed] = execute(f, `
91
+ operation("apply")
92
+ game:SetAttribute("BitmagicPendingRun", plan.runId)
93
+ local writes = model.writes
94
+ print(operation("apply"))
95
+ assert(model.writes == writes)
96
+ `);
97
+ verifyReadback(f.plan, replayed);
98
+ });
99
+ test('Luau resumes an interrupted source batch and can restore the original snapshot', { skip: !luau }, t => {
100
+ const f = fixture(t);
101
+ const [applied, rolledBack] = execute(f, `
102
+ model.failWrite = 2
103
+ local ok = pcall(function() operation("apply") end); assert(not ok)
104
+ assert(game:GetAttribute("BitmagicPendingRun") == plan.runId)
105
+ assert(model:at({"ServerScriptService", "Port", "Main"}).Enabled == false)
106
+ model.failWrite = nil
107
+ print(operation("apply"))
108
+ print(operation("rollback"))
109
+ `);
110
+ verifyReadback(f.plan, applied); acceptRollback(f.root, f.run, rolledBack);
111
+ });
112
+ test('Luau protects concurrent editor buffer changes and later rollback edits', { skip: !luau }, t => {
113
+ const f = fixture(t);
114
+ const [receipt] = execute(f, `
115
+ model.beforeWrite = function(object) object.Buffer = "human unsaved edit" end
116
+ local ok, err = pcall(function() operation("apply") end)
117
+ assert(not ok and string.find(err, "EDIT_CONFLICT"))
118
+ model.beforeWrite = nil
119
+ local object = model:at({"ReplicatedStorage", "Port", "Rules"})
120
+ assert(object.Buffer == "human unsaved edit")
121
+ print(operation("rollback"))
122
+ assert(object.Buffer == "human unsaved edit" and object.Parent ~= nil)
123
+ `);
124
+ assert.equal(receipt.stage, 'rollback-incomplete');
125
+ assert.ok(receipt.failures.length > 0);
126
+ assert.equal(receipt.snapshot.pendingRun, `rollback:${f.plan.runId}`);
127
+ assert.throws(() => acceptRollback(f.root, f.run, receipt), /incomplete/);
128
+ });
129
+ test('committed builds treat a later disable or source revert as a human edit', { skip: !luau }, t => {
130
+ const f = fixture(t);
131
+ const [receipt, retry] = execute(f, `
132
+ operation("apply")
133
+ local script = model:at({"ServerScriptService", "Port", "Main"})
134
+ script.Enabled = false
135
+ local module = model:at({"ReplicatedStorage", "Port", "Rules"})
136
+ module.Buffer = ""
137
+ local writes = model.writes
138
+ local ok = pcall(function() operation("apply") end)
139
+ assert(not ok and model.writes == writes)
140
+ print(operation("rollback"))
141
+ print(operation("rollback"))
142
+ assert(script.Parent ~= nil and script.Enabled == false and module.Buffer == "")
143
+ `);
144
+ assert.equal(receipt.stage, 'rollback-incomplete');
145
+ assert.equal(receipt.failures.length, 2);
146
+ assert.equal(retry.stage, 'rollback-incomplete');
147
+ assert.equal(retry.failures.length, 2);
148
+ });
149
+ test('Luau adoption uses editor buffers and restores original ownership', { skip: !luau }, t => {
150
+ const f = fixture(t);
151
+ const generated = f.plan.generated;
152
+ f.live.scripts = generated.map(s => ({ ...s, id: null, owner: null, runId: null }));
153
+ f.run = path.join(f.dir, 'adopt'); f.plan = prepare(f.root, f.live, f.run, { bind: true, adopt: true });
154
+ const [applied, rollback] = execute(f, `
155
+ for _, before in ipairs(plan.snapshot.scripts) do
156
+ local object = model:add(before.className, before.path, "stale persisted source")
157
+ object.Buffer = before.source
158
+ if object:IsA("BaseScript") then object.Enabled = before.enabled end
159
+ end
160
+ print(operation("apply"))
161
+ print(operation("rollback"))
162
+ `);
163
+ verifyReadback(f.plan, applied); acceptRollback(f.root, f.run, rollback);
164
+ });
165
+ test('Luau updates and renames managed code while retaining children and unchanged scripts', { skip: !luau }, t => {
166
+ const f = fixture(t);
167
+ const [first] = execute(f, 'print(operation("apply"))');
168
+ accept(f.root, f.run, first);
169
+ fs.writeFileSync(path.join(f.root, 'generated/shared/Rules.luau'), 'return { damage = 12 }\n');
170
+ const manifestFile = path.join(f.root, 'incoming.json');
171
+ const manifest = JSON.parse(fs.readFileSync(manifestFile, 'utf8'));
172
+ manifest.scripts[0].path = ['ReplicatedStorage', 'Port', 'NewRules'];
173
+ writeJson(manifestFile, manifest);
174
+ f.run = path.join(f.dir, 'update'); f.plan = prepare(f.root, first, f.run);
175
+ const [applied, rollback] = execute(f, `
176
+ for key, value in pairs({BitmagicProjectId=plan.targetBefore.projectId, BitmagicTargetId=plan.targetBefore.targetId, BitmagicBuildId=plan.buildBefore}) do game:SetAttribute(key, value) end
177
+ for _, before in ipairs(plan.snapshot.scripts) do
178
+ local object = model:add(before.className, before.path, before.source)
179
+ object:SetAttribute("BitmagicSourceId", before.id); object:SetAttribute("BitmagicTargetId", before.owner); object:SetAttribute("BitmagicRunId", before.runId)
180
+ if object:IsA("BaseScript") then object.Enabled = before.enabled end
181
+ end
182
+ local native = model:add("StringValue", {"ReplicatedStorage", "Port", "Rules", "CreatorNote"})
183
+ print(operation("apply"))
184
+ assert(model.writes == 1 and native.Parent == model:at({"ReplicatedStorage", "Port", "NewRules"}))
185
+ print(operation("rollback"))
186
+ assert(native.Parent == model:at({"ReplicatedStorage", "Port", "Rules"}))
187
+ `);
188
+ verifyReadback(f.plan, applied); accept(f.root, f.run, applied); acceptRollback(f.root, f.run, rollback);
189
+ });
190
+
191
+ for (const [name, change, preserved] of [
192
+ ['attribute', 'script:SetAttribute("CreatorRewardId", "keep-me")', 'script:GetAttribute("CreatorRewardId") == "keep-me"'],
193
+ ['tag', 'script:AddTag("CreatorFeature")', '#script:GetTags() == 1'],
194
+ ['Archivable', 'script.Archivable = false', 'script.Archivable == false'],
195
+ ['RunContext', 'script.RunContext = "Client"', 'script.RunContext == "Client"'],
196
+ ['LinkedSource', 'script.LinkedSource = "rbxassetid://42"', 'script.LinkedSource == "rbxassetid://42"'],
197
+ ]) test(`rollback preserves a new script's creator ${name}`, { skip: !luau }, t => {
198
+ const f = fixture(t);
199
+ const [receipt, retry] = execute(f, `
200
+ operation("apply")
201
+ local script = model:at({"ServerScriptService", "Port", "Main"})
202
+ ${change}
203
+ print(operation("rollback"))
204
+ print(operation("rollback"))
205
+ assert(script.Parent ~= nil and ${preserved})
206
+ `);
207
+ for (const result of [receipt, retry]) {
208
+ assert.equal(result.stage, 'rollback-incomplete');
209
+ assert.equal(result.snapshot.pendingRun, `rollback:${f.plan.runId}`);
210
+ assert.equal(result.failures.length, 1);
211
+ }
212
+ });
213
+
214
+ for (const [name, change, preserved] of [
215
+ ['attribute', 'folder:SetAttribute("CreatorFolder", true)', 'folder:GetAttribute("CreatorFolder") == true'],
216
+ ['tag', 'folder:AddTag("KeepFolder")', '#folder:GetTags() == 1'],
217
+ ['Archivable', 'folder.Archivable = false', 'folder.Archivable == false'],
218
+ ['rename', 'model:at({"ServerScriptService", "Port", "Main"}):Destroy(); folder.Name = "CreatorFolder"', 'folder.Name == "CreatorFolder"'],
219
+ ]) test(`rollback preserves an empty created folder's creator ${name}`, { skip: !luau }, t => {
220
+ const f = fixture(t);
221
+ const [receipt] = execute(f, `
222
+ operation("apply")
223
+ local folder = model:at({"ServerScriptService", "Port"})
224
+ ${change}
225
+ print(operation("rollback"))
226
+ assert(folder.Parent ~= nil and #folder:GetChildren() == 0 and ${preserved})
227
+ `);
228
+ assert.equal(receipt.stage, 'rollback-incomplete');
229
+ assert.equal(receipt.failures.length, 1);
230
+ assert.equal(receipt.snapshot.pendingRun, `rollback:${f.plan.runId}`);
231
+ });
232
+
233
+ const seedBefore = `
234
+ for key, value in pairs({BitmagicProjectId=plan.targetBefore.projectId, BitmagicTargetId=plan.targetBefore.targetId, BitmagicBuildId=plan.buildBefore}) do game:SetAttribute(key, value) end
235
+ for _, before in ipairs(plan.snapshot.scripts) do
236
+ local object = model:add(before.className, before.path, before.source)
237
+ object:SetAttribute("BitmagicSourceId", before.id); object:SetAttribute("BitmagicTargetId", before.owner); object:SetAttribute("BitmagicRunId", before.runId)
238
+ if object:IsA("BaseScript") then object.Enabled = before.enabled end
239
+ end
240
+ `;
241
+ test('source updates and rollback preserve creator names with spaces and Unicode', { skip: !luau }, t => {
242
+ const f = fixture(t);
243
+ const [first] = execute(f, 'print(operation("apply"))');
244
+ accept(f.root, f.run, first);
245
+ first.scripts.find(s => s.id === 'rules').path = ['ReplicatedStorage', "Creator's Folder", 'Combat Rules — sääntö'];
246
+ fs.writeFileSync(path.join(f.root, 'generated/shared/Rules.luau'), 'return { damage = 12 }\n');
247
+ f.run = path.join(f.dir, 'renamed-update'); f.plan = prepare(f.root, first, f.run);
248
+ assert.equal(f.plan.conflicts.length, 0);
249
+ const [applied, restored] = execute(f, `${seedBefore}\nprint(operation("apply"))\nprint(operation("rollback"))`);
250
+ verifyReadback(f.plan, applied);
251
+ assert.deepEqual(applied.scripts.find(s => s.id === 'rules').path, first.scripts.find(s => s.id === 'rules').path);
252
+ accept(f.root, f.run, applied); acceptRollback(f.root, f.run, restored);
253
+ });
254
+ function updateFixture(t) {
255
+ const f = fixture(t);
256
+ const [first] = execute(f, 'print(operation("apply"))');
257
+ accept(f.root, f.run, first);
258
+ fs.writeFileSync(path.join(f.root, 'generated/shared/Rules.luau'), 'return { damage = 12 }\n');
259
+ fs.writeFileSync(path.join(f.root, 'generated/server/Main.luau'), 'print("new main")\n');
260
+ f.run = path.join(f.dir, 'update'); f.plan = prepare(f.root, first, f.run);
261
+ return f;
262
+ }
263
+ test('partial rollback blocks new plans and forward replay until recovery completes', { skip: !luau }, t => {
264
+ const f = updateFixture(t);
265
+ const [applied, partial, retry, restored] = execute(f, `${seedBefore}
266
+ print(operation("apply"))
267
+ local rules = model:at({"ReplicatedStorage", "Port", "Rules"})
268
+ rules.Buffer = "human customization"
269
+ print(operation("rollback"))
270
+ local oldMain
271
+ for _, before in ipairs(plan.snapshot.scripts) do if before.id == "main" then oldMain = before.source end end
272
+ assert(model:at({"ServerScriptService", "Port", "Main"}).Source == oldMain)
273
+ local writes = model.writes
274
+ local ok, err = pcall(function() operation("apply") end)
275
+ assert(not ok and string.find(err, "ROLLBACK_PENDING") and model.writes == writes)
276
+ print(operation("rollback"))
277
+ assert(rules.Buffer == "human customization")
278
+ -- Simulate explicit resolution by putting the conflicted buffer back to the applied source.
279
+ rules.Buffer = plan.generated[1].source
280
+ print(operation("rollback"))
281
+ `);
282
+ accept(f.root, f.run, applied);
283
+ for (const result of [partial, retry]) {
284
+ assert.equal(result.stage, 'rollback-incomplete');
285
+ assert.equal(result.snapshot.buildId, applied.buildId);
286
+ assert.equal(result.snapshot.pendingRun, `rollback:${f.plan.runId}`);
287
+ assert.throws(() => prepare(f.root, result.snapshot, path.join(f.dir, 'blocked-plan')), /PARTIAL_APPLY/);
288
+ assert.throws(() => acceptRollback(f.root, f.run, result), /incomplete/);
289
+ }
290
+ acceptRollback(f.root, f.run, restored);
291
+ });
292
+ test('rollback resumes a source write interrupted before ownership restoration', { skip: !luau }, t => {
293
+ const f = updateFixture(t);
294
+ const [applied, partial, restored] = execute(f, `${seedBefore}
295
+ print(operation("apply"))
296
+ model.afterWrite = function()
297
+ model.afterWrite = nil
298
+ error("Injected interruption after source restoration")
299
+ end
300
+ print(operation("rollback"))
301
+ assert(model:at({"ServerScriptService", "Port", "Main"}):GetAttribute("BitmagicRollbackRun") == plan.runId)
302
+ print(operation("rollback"))
303
+ assert(model:at({"ServerScriptService", "Port", "Main"}):GetAttribute("BitmagicRollbackRun") == nil)
304
+ `);
305
+ assert.equal(partial.stage, 'rollback-incomplete');
306
+ assert.equal(partial.snapshot.pendingRun, `rollback:${f.plan.runId}`);
307
+ accept(f.root, f.run, applied);
308
+ acceptRollback(f.root, f.run, restored);
309
+ });
@@ -41,8 +41,10 @@ not make the next source verification stale; adding a path to `.gitignore` alone
41
41
  - `requests.json` records missing/local and external requests with method, resource type, and
42
42
  matching game source files. Optional authoring fetches must be explicitly gated to local use;
43
43
  do not ignore every 404 or add an empty file merely to make validation pass.
44
- - An external service cannot be bundled as an asset. Multiplayer, account, or AI dependencies
45
- need a separate integration decision; preserve the creator's game requirements.
44
+ - An external service cannot be bundled as an asset. Poki export rejects online-only engine
45
+ APIs, live connection APIs, and known Bitmagic backend URLs in game sources before building.
46
+ Neither `--force` nor a playtest bypasses this rule. Agree on an offline implementation with
47
+ the creator; do not silently drop features or request a backend exception for this exporter.
46
48
 
47
49
  This command creates local artifacts. It does not upload the game, change its Bitmagic listing,
48
50
  or request Poki review. Local SDK checks use a test stub: open the payload folder in
@@ -53,9 +55,16 @@ submission. Return the ZIP path and distinguish local validation from Inspector
53
55
 
54
56
  An engine PLAYING event can occur while a custom title screen, briefing, or chapter picker is
55
57
  still open. A smoke pass does not prove that a session, score submission, or later level works.
56
- Review `serviceRisks` (known game-data, leaderboard identity, and AI calls) as hints, not a complete
57
- network inventory. Preserve online features until the creator chooses an offline alternative
58
- or an approved service integration; do not silently remove them to get a green check.
58
+ Online service references are a hard preflight failure, including callbacks and computed method
59
+ names. The scan is conservative: even an online call behind a runtime condition must be absent
60
+ from the Poki game sources. Keep ordinary Bitmagic behavior in the appropriate source variant;
61
+ do not change that behavior merely to make a Poki export pass.
62
+
63
+ Other game-owned resource APIs (`fetch`, XHR, workers and beacons) require `--poki-playtest`.
64
+ Exercise every such flow, including score submission, score display, and later levels. The
65
+ remaining `serviceRisks` are review hints, not a complete network inventory. Browser-blocked
66
+ requests and caught request errors still fail validation. Preserve the normal SDK/page layout;
67
+ do not hide dependencies by blocking them, swallowing errors, or adding extra game iframes.
59
68
 
60
69
  If help advertises `--poki-playtest`, use it to run a self-contained `.mjs` scenario exporting
61
70
  `default async ({ frame, platform })`. `frame` is the game's Playwright iframe, already past the
@@ -18,8 +18,9 @@
18
18
  * this CLI) who does not know has to go and look, and a forge costs enough that "did I pay for
19
19
  * nothing, and is my project still intact?" is the first question.
20
20
  */
21
+ import { resolveArtStyle } from '../project/art-style.js';
21
22
  import { defineCommand } from 'citty';
22
- import { buildAssetCatalog, createForgedWorkStore, describeEditSeed, EDIT_FORGE_STEPS, seedEditStore, SIDEON_FORGE_STEPS, } from '@bitmagic/world-forger/pipeline/index.js';
23
+ import { buildAssetCatalog, createForgedWorkStore, describeEditSeed, EDIT_FORGE_STEPS, seedEditStore, SIDEON_FORGE_STEPS, LOWPOLY_FORGE_STEPS, } from '@bitmagic/world-forger/pipeline/index.js';
23
24
  import { bakeEverythingPlan, buildEditJobInput, resolveEditTarget } from '../forge/edit-target.js';
24
25
  import { CliError } from '../errors.js';
25
26
  import { createOutput } from '../output.js';
@@ -426,7 +427,9 @@ export async function runForge(args, deps) {
426
427
  // A side-on run is four steps (no level bake) — with the default list the
427
428
  // banners would read [n/5] and "Baking level" would sit pending forever.
428
429
  // An edit keeps the five, with the design step named for what it does.
429
- ...(editing ? { steps: EDIT_FORGE_STEPS } : lane === 'sideon' ? { steps: SIDEON_FORGE_STEPS } : {}),
430
+ ...(lane === 'sideon' ? { steps: SIDEON_FORGE_STEPS }
431
+ : input.artStyle === 'low-poly' ? { steps: LOWPOLY_FORGE_STEPS }
432
+ : editing ? { steps: EDIT_FORGE_STEPS } : {}),
430
433
  });
431
434
  log(resumeJobId !== null
432
435
  ? `Resuming ${editing ? 'edit' : 'forge'} job ${resumeJobId} for game ${context.metadata.gameId}.`
@@ -571,6 +574,7 @@ async function prepareForgeRequest(args, deps) {
571
574
  const target = resolveEditTarget(readWorldJson(projectWorldJsonPath(context.root)), typeof args.level === 'string' ? args.level : undefined);
572
575
  const input = buildEditJobInput({
573
576
  target, editPrompt, gameId: context.metadata.gameId, groundPlane: readGroundPlane(context.root),
577
+ artStyle: resolveArtStyle(context.root),
574
578
  });
575
579
  return {
576
580
  context, environment, storage, input, resumeJobId: null, token: await accessToken(), lane,
@@ -616,10 +620,14 @@ async function prepareForgeRequest(args, deps) {
616
620
  const freshSideon = lane === 'sideon' && resumeJobId === null;
617
621
  const runSpeed = freshSideon ? readCharacterRunSpeed(context.root) : undefined;
618
622
  const blockSize = freshSideon ? readVoxelBlockSize(context.root) : undefined;
623
+ // A low-poly project forges meshes (no bake). Frozen on a fresh run like the lane; a resume
624
+ // replays whatever the job was started with.
625
+ const lowPolyFresh = resumeJobId === null && resolveArtStyle(context.root) === 'low-poly';
619
626
  const input = {
620
627
  ...baseInput,
621
628
  ...(runSpeed !== undefined ? { characterRunSpeed: runSpeed } : {}),
622
629
  ...(blockSize !== undefined ? { voxelBlockSize: blockSize } : {}),
630
+ ...(lowPolyFresh ? { artStyle: 'low-poly' } : {}),
623
631
  lane,
624
632
  };
625
633
  const token = await accessToken();
@@ -1 +1 @@
1
- {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/commands/forge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/commands/forge.ts"],"names":[],"mappings":"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"}