@bitmagic/cli 0.1.83-dev.7 → 0.1.83

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 (48) hide show
  1. package/README.md +24 -7
  2. package/dist/bug-report/dev-view.d.ts +10 -0
  3. package/dist/bug-report/dev-view.js +35 -0
  4. package/dist/bug-report/dev-view.js.map +1 -0
  5. package/dist/bug-report/send.d.ts +54 -0
  6. package/dist/bug-report/send.js +143 -0
  7. package/dist/bug-report/send.js.map +1 -0
  8. package/dist/cli.d.ts +24 -0
  9. package/dist/cli.js +2 -0
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/pages.js +6 -14
  12. package/dist/commands/pages.js.map +1 -1
  13. package/dist/commands/report-bug.d.ts +42 -0
  14. package/dist/commands/report-bug.js +98 -0
  15. package/dist/commands/report-bug.js.map +1 -0
  16. package/dist/commands/upgrade.d.ts +9 -2
  17. package/dist/commands/upgrade.js +27 -6
  18. package/dist/commands/upgrade.js.map +1 -1
  19. package/dist/editor/bug-report-panel.d.ts +23 -0
  20. package/dist/editor/bug-report-panel.js +191 -0
  21. package/dist/editor/bug-report-panel.js.map +1 -0
  22. package/dist/editor/hud-replay-page.d.ts +9 -0
  23. package/dist/editor/hud-replay-page.js +11 -1
  24. package/dist/editor/hud-replay-page.js.map +1 -1
  25. package/dist/editor/server.js +54 -1
  26. package/dist/editor/server.js.map +1 -1
  27. package/dist/editor/shell-page.js +11 -0
  28. package/dist/editor/shell-page.js.map +1 -1
  29. package/dist/publish/bundle.js +3 -5
  30. package/dist/publish/bundle.js.map +1 -1
  31. package/dist/publish/source-zip.d.ts +6 -0
  32. package/dist/publish/source-zip.js +1 -1
  33. package/dist/publish/source-zip.js.map +1 -1
  34. package/dist/scaffold/game-migration.d.ts +25 -63
  35. package/dist/scaffold/game-migration.js +30 -439
  36. package/dist/scaffold/game-migration.js.map +1 -1
  37. package/dist/scaffold/import-codemod.d.ts +4 -3
  38. package/dist/scaffold/import-codemod.js +16 -34
  39. package/dist/scaffold/import-codemod.js.map +1 -1
  40. package/dist/scaffold/project-files.js +19 -13
  41. package/dist/scaffold/project-files.js.map +1 -1
  42. package/dist/scaffold/skill-files.js +16 -2
  43. package/dist/scaffold/skill-files.js.map +1 -1
  44. package/dist/vendor/hud-theme/engine/hud/fonts.js +6 -4
  45. package/package.json +4 -4
  46. package/dist/scaffold/legacy-game-baselines.d.ts +0 -14
  47. package/dist/scaffold/legacy-game-baselines.js +0 -218
  48. package/dist/scaffold/legacy-game-baselines.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-bug.js","sourceRoot":"","sources":["../../src/commands/report-bug.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,4BAA4B,EAA4B,MAAM,uBAAuB,CAAC;AAoB9I,SAAS,WAAW;IAClB,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,oCAAoC,QAAQ,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACxJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,QAAQ,CAAC,GAAG,QAAQ,mEAAmE,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC7H,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAmB,EAAE,OAAsB,WAAW,EAAE;IACzF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC;IAEpC,oFAAoF;IACpF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,QAAQ,CAAC,+FAA+F,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC9I,CAAC;IACD,MAAM,WAAW,GAAG,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,4BAA4B,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3G,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAE3I,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC;QACE,IAAI;QACJ,QAAQ;QACR,WAAW;QACX,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK;QACpC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,aAAa,EAAE,uBAAuB,CAAC,IAAI,CAAC;KAC7C,EACD,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACrB,GAAG,CACJ,CAAC;IAEF,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,YAAY,MAAM,CAAC,cAAc,CAAC,MAAM,+BAA+B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;QAAE,GAAG,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,YAAY,EAAE,MAAM,CAAC,kBAAkB,IAAI,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpH,GAAG,CAAC,uBAAuB,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9H,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;IAC5C,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,gHAAgH;KAC9H;IACD,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+FAA+F;SAC7G;QACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;QAC1E,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,iGAAiG;YAC9G,mBAAmB,EAAE,6CAA6C;SACnE;QACD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;QACpF,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,kEAAkE;SAChF;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -62,8 +62,15 @@ export declare function reportMissingDesignDoc(output: Output, root: string): bo
62
62
  * the common case, and not news.
63
63
  */
64
64
  export declare function reportImportCodemod(output: Output, result: ImportCodemodResult | null, skipped: string | undefined): void;
65
- /** Say what `--migrate-game` did, or why it left Game.ts alone. */
66
- export declare function reportGameMigration(output: Output, outcome: GameMigrationOutcome | null): void;
65
+ /**
66
+ * Say what `--migrate-game` did, or why it left Game.ts alone. Without the flag, a Game.ts that is
67
+ * still the old whole class gets a pointer to it; either way a Game.ts left old gets the guide
68
+ * the project's agent can follow by hand (`guide` is null on an engine that predates it).
69
+ */
70
+ export declare function reportGameMigration(output: Output, outcome: GameMigrationOutcome | null, legacy: {
71
+ stillLegacy: boolean;
72
+ guide: string | null;
73
+ }): void;
67
74
  /** What the post-upgrade CLI check found, for the `--json` result. */
68
75
  export interface CliUpdateStatus {
69
76
  /** The CLI that ran this upgrade. '' when its own package.json could not be read. */
@@ -16,7 +16,7 @@ import { DEPENDENCIES, DEV_DEPENDENCIES } from '../scaffold/project-files.js';
16
16
  import { loadProjectContext, projectBin } from '../project/context.js';
17
17
  import { spawnBinSync } from '../project/spawn-bin.js';
18
18
  import { loadProjectTypeScript, runImportCodemod } from '../scaffold/import-codemod.js';
19
- import { GAME_FILE, migrateGameFile } from '../scaffold/game-migration.js';
19
+ import { GAME_FILE, gameMigrationGuide, isLegacyGameFile, migrateGameFile } from '../scaffold/game-migration.js';
20
20
  import { addCommand, detectPackageManager } from '../project/package-manager.js';
21
21
  import { isOlderSemverVersion } from '../project/version-compare.js';
22
22
  import { fetchTagVersion } from '../update/check.js';
@@ -222,10 +222,22 @@ export function reportImportCodemod(output, result, skipped) {
222
222
  output.info(` ${call}`);
223
223
  }
224
224
  }
225
- /** Say what `--migrate-game` did, or why it left Game.ts alone. */
226
- export function reportGameMigration(output, outcome) {
227
- if (outcome === null)
225
+ /**
226
+ * Say what `--migrate-game` did, or why it left Game.ts alone. Without the flag, a Game.ts that is
227
+ * still the old whole class gets a pointer to it; either way a Game.ts left old gets the guide
228
+ * the project's agent can follow by hand (`guide` is null on an engine that predates it).
229
+ */
230
+ export function reportGameMigration(output, outcome, legacy) {
231
+ if (outcome === null) {
232
+ if (!legacy.stillLegacy)
233
+ return;
234
+ output.info('');
235
+ output.info(`${GAME_FILE} is still the old whole \`class VoxelGame\` (not \`extends VoxelGameBase\`), so every load logs [deprecated] warnings.`);
236
+ output.info(' Run `bitmagic upgrade --migrate-game` to rewrite it into a VoxelGameBase subclass.');
237
+ if (legacy.guide !== null)
238
+ output.info(` When it cannot, migrate it by hand, or have your agent do it, following ${legacy.guide}.`);
228
239
  return;
240
+ }
229
241
  output.info('');
230
242
  if (outcome.status === 'already-migrated') {
231
243
  output.info(`${GAME_FILE} already extends VoxelGameBase; nothing to migrate.`);
@@ -234,6 +246,9 @@ export function reportGameMigration(output, outcome) {
234
246
  if (outcome.status === 'skipped') {
235
247
  output.info(`Left ${GAME_FILE} unchanged: ${outcome.reason}`);
236
248
  output.info(' It keeps working as it is; the engine adopts the spawner, vehicles and player loader it hands over.');
249
+ if (legacy.stillLegacy && legacy.guide !== null) {
250
+ output.info(` To migrate it by hand, or have your agent do it, follow ${legacy.guide}.`);
251
+ }
237
252
  return;
238
253
  }
239
254
  output.info(`Migrated ${GAME_FILE} to \`class VoxelGame extends VoxelGameBase\` (it type-checks).`);
@@ -381,7 +396,7 @@ export const upgradeCommand = defineCommand({
381
396
  if (args['migrate-game'] === true) {
382
397
  gameMigration = ts === null
383
398
  ? { status: 'skipped', reason: noTypeScript }
384
- : migrateGameFile({ root: context.root, ts, typeCheck: () => projectTypeCheck(context.root) });
399
+ : migrateGameFile({ root: context.root, ts, typeCheck: () => projectTypeCheck(context.root), templatesDir, template: context.metadata.template });
385
400
  }
386
401
  output.info('');
387
402
  if (result.environmentPinned !== undefined) {
@@ -445,7 +460,9 @@ export const upgradeCommand = defineCommand({
445
460
  // environment's line — which is the same rule AGENTS.md hands the agent.
446
461
  const cliUpdate = await reportCliUpdate(output, result.previousEngineVersion !== result.engineVersion, currentCliVersion(), updateTagForEnvironment(environment.name));
447
462
  reportImportCodemod(output, codemod, codemodSkipped);
448
- reportGameMigration(output, gameMigration);
463
+ // Read after the migration ran: a Game.ts it rewrote is no longer old.
464
+ const legacyGame = { stillLegacy: isLegacyGameFile(context.root), guide: gameMigrationGuide(context.root) };
465
+ reportGameMigration(output, gameMigration, legacyGame);
449
466
  const mismatches = printDependencyReport(output, context.root);
450
467
  reportAgentsMd(output, result.agentsMd);
451
468
  const needsDesignDoc = reportMissingDesignDoc(output, context.root);
@@ -463,6 +480,10 @@ export const upgradeCommand = defineCommand({
463
480
  importCodemodSkipped: codemodSkipped ?? null,
464
481
  // Null unless --migrate-game was passed.
465
482
  gameMigration,
483
+ // True while src/work/Game.ts is still the old whole class (it logs deprecation warnings);
484
+ // the guide is the rewrite an agent can follow by hand, null on an engine without it.
485
+ legacyGameFile: legacyGame.stillLegacy,
486
+ gameMigrationGuide: legacyGame.stillLegacy ? legacyGame.guide : null,
466
487
  // The install command is printed as prose; an agent gets the structured form instead of
467
488
  // parsing it back out of a sentence.
468
489
  missingDependencies: mismatches,
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The "Report bug…" dialog, opened from the ⋯ menu — the dev view's counterpart of the Creator's
3
+ * "Report Bug" button, and the same report `bitmagic report-bug` files (`bug-report/send.ts`).
4
+ *
5
+ * The page gathers the two things only it has: a screenshot (the engine takes it, through
6
+ * `captureGamePng()`) and the runtime errors the game has posted as 'GAME_RUNTIME_ERRORS' since the
7
+ * page opened. The sidecar's `POST /api/bug-report` adds the source ZIP and the versions and sends
8
+ * it, so the page never holds a token.
9
+ *
10
+ * Exports its behaviour as a string like `motion-panel.ts`, for the same reason: it has to sit
11
+ * inside the shell's IIFE, where `captureGamePng`, `loaded` and `frame` are in scope. Same
12
+ * template-literal rules as the host: **no backticks**, every colour a `--bm-*` token.
13
+ */
14
+ /** Errors kept for a report — api-server keeps the last 20 anyway. */
15
+ export declare const BUG_REPORT_MAX_ERRORS = 20;
16
+ export declare const BUG_REPORT_PANEL_CSS = "\n /* Level with the other dialogs: each opens from its own control and they never stack. */\n #bug-overlay { z-index: 10; }\n #bug-dialog { width: min(480px, 94vw); padding: 20px; }\n #bug-dialog p { margin: 0 0 12px; font-size: 13px; color: var(--bm-text-muted); }\n #bug-description { width: 100%; min-height: 120px; resize: vertical; box-sizing: border-box; }\n .bug-check { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; cursor: pointer; }\n .bug-check input { accent-color: var(--bm-aqua); }\n #bug-errors { margin-top: 10px; font-size: 12px; color: var(--bm-text-muted); }\n #bug-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }\n #bug-note { display: none; margin-top: 12px; padding: 12px; border-radius: 6px; font-size: 12px;\n background: var(--bm-surface-alt); border: 1px solid var(--bm-border-muted);\n color: var(--bm-text-muted); }\n #bug-note.show { display: block; }\n #bug-note.error { color: var(--bm-pink); }\n";
17
+ export declare const BUG_REPORT_PANEL_HTML = " <div id=\"bug-overlay\" class=\"bm-overlay\">\n <div id=\"bug-dialog\" class=\"bm-dialog\">\n <h2>Report a bug</h2>\n <p>Something wrong with Bitmagic itself \u2014 the engine, the CLI or this view? Tell the team.\n The report goes to Bitmagic, not to your agent.</p>\n <textarea id=\"bug-description\" class=\"bm-input\" maxlength=\"2000\"\n placeholder=\"What did you do, what did you expect, and what happened instead?\"></textarea>\n <label class=\"bug-check\"><input id=\"bug-screenshot\" type=\"checkbox\" checked> Attach a screenshot of the game</label>\n <label class=\"bug-check\"><input id=\"bug-source\" type=\"checkbox\" checked> Attach the project source (no engine, assets or credential files)</label>\n <div id=\"bug-errors\"></div>\n <div id=\"bug-actions\">\n <button id=\"bug-cancel\" class=\"bm-pill bm-pill--ghost\" type=\"button\">Cancel</button>\n <button id=\"bug-send\" class=\"bm-pill bm-pill--primary\" type=\"button\" disabled>Send report</button>\n </div>\n <div id=\"bug-note\"></div>\n </div>\n </div>\n";
18
+ /**
19
+ * Behaviour, spliced into the shell's IIFE after its helpers are defined. Exposes
20
+ * 'rememberRuntimeErrors(data)' for the shell's message switch and 'closeBugReportPanel()' for its
21
+ * Escape chain.
22
+ */
23
+ export declare const BUG_REPORT_PANEL_JS = "\n // ---- Report bug: description + screenshot + runtime errors -> sidecar -> api-server ---------\n var bugToggle = document.getElementById('bug-report');\n var bugOverlay = document.getElementById('bug-overlay');\n var bugDescription = document.getElementById('bug-description');\n var bugScreenshot = document.getElementById('bug-screenshot');\n var bugSource = document.getElementById('bug-source');\n var bugErrors = document.getElementById('bug-errors');\n var bugCancel = document.getElementById('bug-cancel');\n var bugSend = document.getElementById('bug-send');\n var bugNote = document.getElementById('bug-note');\n var BUG_MAX_ERRORS = 20;\n // Keyed by message: the engine re-sends an error with a higher count each time it repeats.\n var bugRuntimeErrors = new Map();\n var bugSending = false;\n\n /** Called from the message switch with a 'GAME_RUNTIME_ERRORS' batch. */\n function rememberRuntimeErrors(data) {\n var errors = data && Array.isArray(data.errors) ? data.errors : [];\n errors.forEach(function (error) {\n if (!error || typeof error.message !== 'string') return;\n // Re-inserted, so the map's order is most-recently-seen last.\n bugRuntimeErrors.delete(error.message);\n bugRuntimeErrors.set(error.message, error);\n });\n while (bugRuntimeErrors.size > BUG_MAX_ERRORS) {\n bugRuntimeErrors.delete(bugRuntimeErrors.keys().next().value);\n }\n }\n\n function bugRuntimeErrorLines() {\n var lines = [];\n bugRuntimeErrors.forEach(function (error) {\n var count = typeof error.count === 'number' && error.count > 1 ? ' (x' + error.count + ')' : '';\n var frame = typeof error.stack === 'string' && error.stack ? '\\n ' + error.stack.split('\\n')[0] : '';\n lines.push(error.message + count + frame);\n });\n return lines;\n }\n\n function setBugNote(text, isError) {\n bugNote.textContent = text;\n bugNote.classList.toggle('show', text !== '');\n bugNote.classList.toggle('error', isError === true);\n }\n\n function syncBugSend() {\n bugSend.disabled = bugSending || bugDescription.value.trim() === '';\n }\n\n function openBugReportPanel() {\n setBugNote('', false);\n var count = bugRuntimeErrors.size;\n bugErrors.textContent = count === 0\n ? 'No runtime errors seen since this page opened.'\n : count + ' runtime error' + (count === 1 ? '' : 's') + ' seen since this page opened will be attached.';\n bugScreenshot.disabled = !loaded;\n if (!loaded) bugScreenshot.checked = false;\n syncBugSend();\n bugOverlay.classList.add('show');\n bugDescription.focus();\n }\n\n /** Returns whether it was open \u2014 the Escape handler's contract, like closeMotionPanel. */\n function closeBugReportPanel() {\n if (!bugOverlay.classList.contains('show')) return false;\n bugOverlay.classList.remove('show');\n frame.focus();\n return true;\n }\n\n function blobToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onload = function () {\n var url = String(reader.result || '');\n resolve(url.slice(url.indexOf(',') + 1));\n };\n reader.onerror = function () { reject(new Error('the screenshot could not be read')); };\n reader.readAsDataURL(blob);\n });\n }\n\n async function sendBugReportFromPanel() {\n if (bugSending) return;\n var description = bugDescription.value.trim();\n if (description === '') return;\n bugSending = true;\n syncBugSend();\n setBugNote('Sending the report\u2026', false);\n\n var screenshot = null;\n if (bugScreenshot.checked && loaded) {\n try {\n screenshot = await blobToBase64(await captureGamePng());\n } catch (error) {\n // A report without a picture is still a report.\n screenshot = null;\n }\n }\n\n try {\n var response = await fetch('/api/bug-report', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n description: description,\n includeSource: bugSource.checked,\n screenshotPngBase64: screenshot,\n runtimeErrors: bugRuntimeErrorLines(),\n }),\n });\n var result = await response.json().catch(function () { return {}; });\n if (!response.ok || !result.ok) {\n setBugNote(result.error || ('The report could not be sent (HTTP ' + response.status + ').'), true);\n return;\n }\n bugDescription.value = '';\n var warnings = Array.isArray(result.warnings) && result.warnings.length > 0 ? ' ' + result.warnings.join(' ') : '';\n setBugNote('Thank you \u2014 the report is sent (id ' + result.reportId + ').' + warnings, false);\n } catch (error) {\n setBugNote('The report could not be sent: ' + (error && error.message ? error.message : String(error)), true);\n } finally {\n bugSending = false;\n syncBugSend();\n }\n }\n\n bugToggle.addEventListener('click', openBugReportPanel);\n bugCancel.addEventListener('click', function () { closeBugReportPanel(); });\n bugOverlay.addEventListener('click', function (event) {\n if (event.target === bugOverlay) closeBugReportPanel();\n });\n bugDescription.addEventListener('input', syncBugSend);\n bugSend.addEventListener('click', function () { void sendBugReportFromPanel(); });\n";
@@ -0,0 +1,191 @@
1
+ /**
2
+ * The "Report bug…" dialog, opened from the ⋯ menu — the dev view's counterpart of the Creator's
3
+ * "Report Bug" button, and the same report `bitmagic report-bug` files (`bug-report/send.ts`).
4
+ *
5
+ * The page gathers the two things only it has: a screenshot (the engine takes it, through
6
+ * `captureGamePng()`) and the runtime errors the game has posted as 'GAME_RUNTIME_ERRORS' since the
7
+ * page opened. The sidecar's `POST /api/bug-report` adds the source ZIP and the versions and sends
8
+ * it, so the page never holds a token.
9
+ *
10
+ * Exports its behaviour as a string like `motion-panel.ts`, for the same reason: it has to sit
11
+ * inside the shell's IIFE, where `captureGamePng`, `loaded` and `frame` are in scope. Same
12
+ * template-literal rules as the host: **no backticks**, every colour a `--bm-*` token.
13
+ */
14
+ /** Errors kept for a report — api-server keeps the last 20 anyway. */
15
+ export const BUG_REPORT_MAX_ERRORS = 20;
16
+ export const BUG_REPORT_PANEL_CSS = `
17
+ /* Level with the other dialogs: each opens from its own control and they never stack. */
18
+ #bug-overlay { z-index: 10; }
19
+ #bug-dialog { width: min(480px, 94vw); padding: 20px; }
20
+ #bug-dialog p { margin: 0 0 12px; font-size: 13px; color: var(--bm-text-muted); }
21
+ #bug-description { width: 100%; min-height: 120px; resize: vertical; box-sizing: border-box; }
22
+ .bug-check { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; cursor: pointer; }
23
+ .bug-check input { accent-color: var(--bm-aqua); }
24
+ #bug-errors { margin-top: 10px; font-size: 12px; color: var(--bm-text-muted); }
25
+ #bug-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
26
+ #bug-note { display: none; margin-top: 12px; padding: 12px; border-radius: 6px; font-size: 12px;
27
+ background: var(--bm-surface-alt); border: 1px solid var(--bm-border-muted);
28
+ color: var(--bm-text-muted); }
29
+ #bug-note.show { display: block; }
30
+ #bug-note.error { color: var(--bm-pink); }
31
+ `;
32
+ export const BUG_REPORT_PANEL_HTML = ` <div id="bug-overlay" class="bm-overlay">
33
+ <div id="bug-dialog" class="bm-dialog">
34
+ <h2>Report a bug</h2>
35
+ <p>Something wrong with Bitmagic itself — the engine, the CLI or this view? Tell the team.
36
+ The report goes to Bitmagic, not to your agent.</p>
37
+ <textarea id="bug-description" class="bm-input" maxlength="2000"
38
+ placeholder="What did you do, what did you expect, and what happened instead?"></textarea>
39
+ <label class="bug-check"><input id="bug-screenshot" type="checkbox" checked> Attach a screenshot of the game</label>
40
+ <label class="bug-check"><input id="bug-source" type="checkbox" checked> Attach the project source (no engine, assets or credential files)</label>
41
+ <div id="bug-errors"></div>
42
+ <div id="bug-actions">
43
+ <button id="bug-cancel" class="bm-pill bm-pill--ghost" type="button">Cancel</button>
44
+ <button id="bug-send" class="bm-pill bm-pill--primary" type="button" disabled>Send report</button>
45
+ </div>
46
+ <div id="bug-note"></div>
47
+ </div>
48
+ </div>
49
+ `;
50
+ /**
51
+ * Behaviour, spliced into the shell's IIFE after its helpers are defined. Exposes
52
+ * 'rememberRuntimeErrors(data)' for the shell's message switch and 'closeBugReportPanel()' for its
53
+ * Escape chain.
54
+ */
55
+ export const BUG_REPORT_PANEL_JS = `
56
+ // ---- Report bug: description + screenshot + runtime errors -> sidecar -> api-server ---------
57
+ var bugToggle = document.getElementById('bug-report');
58
+ var bugOverlay = document.getElementById('bug-overlay');
59
+ var bugDescription = document.getElementById('bug-description');
60
+ var bugScreenshot = document.getElementById('bug-screenshot');
61
+ var bugSource = document.getElementById('bug-source');
62
+ var bugErrors = document.getElementById('bug-errors');
63
+ var bugCancel = document.getElementById('bug-cancel');
64
+ var bugSend = document.getElementById('bug-send');
65
+ var bugNote = document.getElementById('bug-note');
66
+ var BUG_MAX_ERRORS = ${BUG_REPORT_MAX_ERRORS};
67
+ // Keyed by message: the engine re-sends an error with a higher count each time it repeats.
68
+ var bugRuntimeErrors = new Map();
69
+ var bugSending = false;
70
+
71
+ /** Called from the message switch with a 'GAME_RUNTIME_ERRORS' batch. */
72
+ function rememberRuntimeErrors(data) {
73
+ var errors = data && Array.isArray(data.errors) ? data.errors : [];
74
+ errors.forEach(function (error) {
75
+ if (!error || typeof error.message !== 'string') return;
76
+ // Re-inserted, so the map's order is most-recently-seen last.
77
+ bugRuntimeErrors.delete(error.message);
78
+ bugRuntimeErrors.set(error.message, error);
79
+ });
80
+ while (bugRuntimeErrors.size > BUG_MAX_ERRORS) {
81
+ bugRuntimeErrors.delete(bugRuntimeErrors.keys().next().value);
82
+ }
83
+ }
84
+
85
+ function bugRuntimeErrorLines() {
86
+ var lines = [];
87
+ bugRuntimeErrors.forEach(function (error) {
88
+ var count = typeof error.count === 'number' && error.count > 1 ? ' (x' + error.count + ')' : '';
89
+ var frame = typeof error.stack === 'string' && error.stack ? '\\n ' + error.stack.split('\\n')[0] : '';
90
+ lines.push(error.message + count + frame);
91
+ });
92
+ return lines;
93
+ }
94
+
95
+ function setBugNote(text, isError) {
96
+ bugNote.textContent = text;
97
+ bugNote.classList.toggle('show', text !== '');
98
+ bugNote.classList.toggle('error', isError === true);
99
+ }
100
+
101
+ function syncBugSend() {
102
+ bugSend.disabled = bugSending || bugDescription.value.trim() === '';
103
+ }
104
+
105
+ function openBugReportPanel() {
106
+ setBugNote('', false);
107
+ var count = bugRuntimeErrors.size;
108
+ bugErrors.textContent = count === 0
109
+ ? 'No runtime errors seen since this page opened.'
110
+ : count + ' runtime error' + (count === 1 ? '' : 's') + ' seen since this page opened will be attached.';
111
+ bugScreenshot.disabled = !loaded;
112
+ if (!loaded) bugScreenshot.checked = false;
113
+ syncBugSend();
114
+ bugOverlay.classList.add('show');
115
+ bugDescription.focus();
116
+ }
117
+
118
+ /** Returns whether it was open — the Escape handler's contract, like closeMotionPanel. */
119
+ function closeBugReportPanel() {
120
+ if (!bugOverlay.classList.contains('show')) return false;
121
+ bugOverlay.classList.remove('show');
122
+ frame.focus();
123
+ return true;
124
+ }
125
+
126
+ function blobToBase64(blob) {
127
+ return new Promise(function (resolve, reject) {
128
+ var reader = new FileReader();
129
+ reader.onload = function () {
130
+ var url = String(reader.result || '');
131
+ resolve(url.slice(url.indexOf(',') + 1));
132
+ };
133
+ reader.onerror = function () { reject(new Error('the screenshot could not be read')); };
134
+ reader.readAsDataURL(blob);
135
+ });
136
+ }
137
+
138
+ async function sendBugReportFromPanel() {
139
+ if (bugSending) return;
140
+ var description = bugDescription.value.trim();
141
+ if (description === '') return;
142
+ bugSending = true;
143
+ syncBugSend();
144
+ setBugNote('Sending the report…', false);
145
+
146
+ var screenshot = null;
147
+ if (bugScreenshot.checked && loaded) {
148
+ try {
149
+ screenshot = await blobToBase64(await captureGamePng());
150
+ } catch (error) {
151
+ // A report without a picture is still a report.
152
+ screenshot = null;
153
+ }
154
+ }
155
+
156
+ try {
157
+ var response = await fetch('/api/bug-report', {
158
+ method: 'POST',
159
+ headers: { 'Content-Type': 'application/json' },
160
+ body: JSON.stringify({
161
+ description: description,
162
+ includeSource: bugSource.checked,
163
+ screenshotPngBase64: screenshot,
164
+ runtimeErrors: bugRuntimeErrorLines(),
165
+ }),
166
+ });
167
+ var result = await response.json().catch(function () { return {}; });
168
+ if (!response.ok || !result.ok) {
169
+ setBugNote(result.error || ('The report could not be sent (HTTP ' + response.status + ').'), true);
170
+ return;
171
+ }
172
+ bugDescription.value = '';
173
+ var warnings = Array.isArray(result.warnings) && result.warnings.length > 0 ? ' ' + result.warnings.join(' ') : '';
174
+ setBugNote('Thank you — the report is sent (id ' + result.reportId + ').' + warnings, false);
175
+ } catch (error) {
176
+ setBugNote('The report could not be sent: ' + (error && error.message ? error.message : String(error)), true);
177
+ } finally {
178
+ bugSending = false;
179
+ syncBugSend();
180
+ }
181
+ }
182
+
183
+ bugToggle.addEventListener('click', openBugReportPanel);
184
+ bugCancel.addEventListener('click', function () { closeBugReportPanel(); });
185
+ bugOverlay.addEventListener('click', function (event) {
186
+ if (event.target === bugOverlay) closeBugReportPanel();
187
+ });
188
+ bugDescription.addEventListener('input', syncBugSend);
189
+ bugSend.addEventListener('click', function () { void sendBugReportFromPanel(); });
190
+ `;
191
+ //# sourceMappingURL=bug-report-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bug-report-panel.js","sourceRoot":"","sources":["../../src/editor/bug-report-panel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;CAenC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;CAiBpC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;yBAWV,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4H7C,CAAC"}
@@ -1,6 +1,15 @@
1
+ import { type EngineCapabilities } from '../scaffold/engine-capabilities.js';
1
2
  export interface HudReplayPageOptions {
2
3
  /** Port vite serves the project (and its `/dist/engine/...`) on. */
3
4
  gamePort: number;
5
+ /**
6
+ * The project's vendored engine's capabilities (`readEngineCapabilities`). With `platformEntry`
7
+ * the page registers the Bitmagic platform (`bitmagic/register.js`) before its first engine
8
+ * import, as the game page does through `bitmagic/boot.js`: the HUD's font link follows the
9
+ * engine's hosting provider, and only the Bitmagic one names Google Fonts — a page that
10
+ * registers nothing would ask for the font beside the page (decision D24).
11
+ */
12
+ capabilities: EngineCapabilities;
4
13
  }
5
14
  /** The import map for the harness: CDN entries as-is, local aliases absolute on the game origin. */
6
15
  export declare function hudReplayImportMap(gamePort: number): Record<string, string>;
@@ -38,6 +38,16 @@
38
38
  */
39
39
  import { CDN_IMPORTS } from '../scaffold/project-files.js';
40
40
  import { importMapEntries } from '../scaffold/aliases.js';
41
+ import { hasEngineCapability } from '../scaffold/engine-capabilities.js';
42
+ /** The page's first import on an engine with the platform package; empty on one without. */
43
+ function platformRegistration(capabilities) {
44
+ if (!hasEngineCapability(capabilities, 'platformEntry'))
45
+ return '';
46
+ return `// Registers the Bitmagic platform (its asset hosting among it) before any engine module is
47
+ // evaluated: imports evaluate in order, and the HUD's font link reads the hosting.
48
+ import 'bitmagic/register.js';
49
+ `;
50
+ }
41
51
  /** The import map for the harness: CDN entries as-is, local aliases absolute on the game origin. */
42
52
  export function hudReplayImportMap(gamePort) {
43
53
  const origin = `http://localhost:${gamePort}`;
@@ -76,7 +86,7 @@ ${JSON.stringify({ imports }, null, 2)}
76
86
  </head>
77
87
  <body>
78
88
  <script type="module">
79
- import { GameHUD } from 'engine/GameHUD.js';
89
+ ${platformRegistration(options.capabilities)}import { GameHUD } from 'engine/GameHUD.js';
80
90
  import * as hudApi from 'engine/hud/index.js';
81
91
 
82
92
  /** Rebuilt whenever the element set changes; kept between same-shape frames. */
@@ -1 +1 @@
1
- {"version":3,"file":"hud-replay-page.js","sourceRoot":"","sources":["../../src/editor/hud-replay-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO1D,oGAAoG;AACpG,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,MAAM,GAAG,oBAAoB,QAAQ,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CACvF,CAAC;IACF,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO;;;;;;+BAMsB,OAAO,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;EAmB7C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2brC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"hud-replay-page.js","sourceRoot":"","sources":["../../src/editor/hud-replay-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAA2B,MAAM,oCAAoC,CAAC;AAelG,4FAA4F;AAC5F,SAAS,oBAAoB,CAAC,YAAgC;IAC5D,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC;QAAE,OAAO,EAAE,CAAC;IACnE,OAAO;;;CAGR,CAAC;AACF,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,MAAM,GAAG,oBAAoB,QAAQ,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CACvF,CAAC;IACF,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO;;;;;;+BAMsB,OAAO,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;EAmB7C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;EAKpC,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsb3C,CAAC;AACF,CAAC"}
@@ -44,6 +44,8 @@ import { findPropAsset, generateAndInstallProp } from '../generate/prop.js';
44
44
  import { generateAndInstallAnimationFromVideo } from '../generate/animation-from-video.js';
45
45
  import { analyseTrimForVideo } from '../generate/trim-analysis.js';
46
46
  import { uploadProjectFile } from '../http/signed-upload.js';
47
+ import { sendBugReport } from '../bug-report/send.js';
48
+ import { DEV_VIEW_BUG_REPORT_BODY_LIMIT_BYTES, parseDevViewBugReport } from '../bug-report/dev-view.js';
47
49
  import { MOTION_BODY_LIMIT_BYTES, baseContentType, motionCommand, motionDoneMessage, parseMotionVideoRequest } from './motion-sink.js';
48
50
  import { resolveEnvironmentForCommand, resolveAuth0ClientId } from '../config/environments.js';
49
51
  import { getAccessToken } from '../auth/session.js';
@@ -268,7 +270,10 @@ export async function startEditorServer(options) {
268
270
  });
269
271
  // The trailer tool's HUD replay harness: a real GameHUD built from this project's vendored engine
270
272
  // (served by vite on the game port), screenshotted by `bitmagic trailer render --ui`.
271
- const hudReplay = renderHudReplayHtml({ gamePort: options.gamePort });
273
+ const hudReplay = renderHudReplayHtml({
274
+ gamePort: options.gamePort,
275
+ capabilities: readEngineCapabilities(path.join(options.root, 'engine')),
276
+ });
272
277
  /** When the page last polled us — the poll carries `?from=shell`; the CLI's own probes do not. */
273
278
  let lastShellPollAt = 0;
274
279
  /** Flipped by `dev` once vite answers; the page defers a restart-reload until then. */
@@ -1369,6 +1374,54 @@ export async function startEditorServer(options) {
1369
1374
  await handleMotionVideo(req, res);
1370
1375
  return;
1371
1376
  }
1377
+ /**
1378
+ * "Report bug…" (bug-report-panel.ts): the dialog's description, screenshot and runtime
1379
+ * errors, sent on with the source ZIP through the same path as `bitmagic report-bug`.
1380
+ * Shell-only, like the runtime token — the report is filed under the creator's login and
1381
+ * carries their source, so no other tab may trigger it through the `*` CORS.
1382
+ */
1383
+ if (req.method === 'POST' && url === '/api/bug-report') {
1384
+ if (!isShellRequest(req.headers, options.port)) {
1385
+ sendJson(res, 403, { ok: false, error: 'Only the dev view may file a bug report' });
1386
+ return;
1387
+ }
1388
+ let parsed;
1389
+ try {
1390
+ parsed = parseDevViewBugReport(JSON.parse((await readBodyBuffer(req, DEV_VIEW_BUG_REPORT_BODY_LIMIT_BYTES)).toString('utf-8')));
1391
+ }
1392
+ catch {
1393
+ sendJson(res, 400, { ok: false, error: 'The report could not be read — is the screenshot too large?' });
1394
+ return;
1395
+ }
1396
+ if (typeof parsed === 'string') {
1397
+ sendJson(res, 400, { ok: false, error: parsed });
1398
+ return;
1399
+ }
1400
+ const auth = await resolveAuth();
1401
+ if (auth === null) {
1402
+ sendJson(res, 200, { ok: false, error: 'You are not logged in. Run `bitmagic login` in your terminal, then send the report again.' });
1403
+ return;
1404
+ }
1405
+ try {
1406
+ const result = await sendBugReport({
1407
+ root: options.root,
1408
+ metadata: options.metadata,
1409
+ environment: auth.environment,
1410
+ token: auth.token,
1411
+ description: parsed.description,
1412
+ surface: 'dev-view',
1413
+ includeSource: parsed.includeSource,
1414
+ ...(parsed.screenshotPng ? { screenshotPng: parsed.screenshotPng } : {}),
1415
+ runtimeErrors: parsed.runtimeErrors,
1416
+ }, { fetch: globalThis.fetch });
1417
+ log(`Bug report sent (id ${result.reportId}).`);
1418
+ sendJson(res, 200, { ok: true, reportId: result.reportId, warnings: result.warnings });
1419
+ }
1420
+ catch (error) {
1421
+ sendJson(res, 200, { ok: false, error: messageOf(error) });
1422
+ }
1423
+ return;
1424
+ }
1372
1425
  if (req.method === 'POST' && url === '/api/editor/motion-analyze') {
1373
1426
  await handleMotionAnalyze(req, res);
1374
1427
  return;