@helix3/helix-cli 0.1.6-helix3.34 → 0.1.6-helix3.36
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/dist/bundle.js +1 -1
- package/dist/bundle.js.map +1 -1
- package/dist/currency.d.ts +21 -0
- package/dist/currency.js +88 -0
- package/dist/currency.js.map +1 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +1 -0
- package/dist/install.js +3 -3
- package/dist/install.js.map +1 -1
- package/dist/lib.d.ts +25 -1
- package/dist/lib.js +86 -1
- package/dist/lib.js.map +1 -1
- package/dist/resolve.d.ts +1 -0
- package/dist/resolve.js +3 -0
- package/dist/resolve.js.map +1 -1
- package/dist/screenshot/captureScreenshots.d.ts +41 -0
- package/dist/screenshot/captureScreenshots.js +189 -0
- package/dist/screenshot/captureScreenshots.js.map +1 -0
- package/dist/screenshot/encodeImagePreview.d.ts +5 -0
- package/dist/screenshot/encodeImagePreview.js +42 -0
- package/dist/screenshot/encodeImagePreview.js.map +1 -0
- package/dist/screenshot/staticServe.d.ts +5 -0
- package/dist/screenshot/staticServe.js +77 -0
- package/dist/screenshot/staticServe.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -1
package/dist/lib.js
CHANGED
|
@@ -35,9 +35,16 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
};
|
|
36
36
|
})();
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.TOOLCHAIN_PACKAGES = exports.initAbilityTemplate = exports.initTemplate = exports.defaultClientTokenName = exports.browserLogin = exports.jwtExpiresAtIso = exports.clearCredentials = exports.saveCredentials = exports.loadCredentials = exports.HELIX_SCOPE = exports.HELIX_ENV = exports.DEFAULT_WEB_URL = exports.DEFAULT_API_URL = exports.credsEnvMismatchWarning = exports.apiUrlMatchesEnv = exports.MODULES_DIR = exports.LOCKFILE = exports.INSTALLED_INDEX = exports.installWorld = exports.resolvePins = exports.normalizePinRange = exports.loadInstalledIndexValidator = exports.loadVendoredValidator = exports.installLocalAbility = exports.checkAbilityBundle = exports.checkPackageBundle = exports.MULTIPLAYER_CONFIG_FILENAME = exports.multiplayerConfigBundleFile = exports.checkBundle = exports.uploadToTicket = exports.HelixApi = exports.ApiError = void 0;
|
|
38
|
+
exports.TOOLCHAIN_PACKAGES = exports.initAbilityTemplate = exports.initTemplate = exports.defaultClientTokenName = exports.browserLogin = exports.jwtExpiresAtIso = exports.clearCredentials = exports.saveCredentials = exports.loadCredentials = exports.HELIX_SCOPE = exports.HELIX_ENV = exports.DEFAULT_WEB_URL = exports.DEFAULT_API_URL = exports.credsEnvMismatchWarning = exports.apiUrlMatchesEnv = exports.ADVISORY_SYSTEMS = exports.assessWorldCurrency = exports.WORLD_MANIFEST_LOCATIONS = exports.MODULES_DIR = exports.LOCKFILE = exports.INSTALLED_INDEX = exports.installWorld = exports.resolvePins = exports.normalizePinRange = exports.loadInstalledIndexValidator = exports.loadVendoredValidator = exports.installLocalAbility = exports.checkAbilityBundle = exports.checkPackageBundle = exports.MULTIPLAYER_CONFIG_FILENAME = exports.multiplayerConfigBundleFile = exports.checkBundle = exports.uploadToTicket = exports.HelixApi = exports.ApiError = void 0;
|
|
39
39
|
exports.importCharacter = importCharacter;
|
|
40
|
+
exports.captureScreenshots = captureScreenshots;
|
|
41
|
+
exports.encodeImagePreview = encodeImagePreview;
|
|
40
42
|
exports.publishWorld = publishWorld;
|
|
43
|
+
exports.mediaContentTypeFromExtension = mediaContentTypeFromExtension;
|
|
44
|
+
exports.assertMediaSizeOk = assertMediaSizeOk;
|
|
45
|
+
exports.assertMediaSlotWritable = assertMediaSlotWritable;
|
|
46
|
+
exports.setWorldMedia = setWorldMedia;
|
|
47
|
+
exports.clearWorldMedia = clearWorldMedia;
|
|
41
48
|
exports.publishPackage = publishPackage;
|
|
42
49
|
exports.listPackages = listPackages;
|
|
43
50
|
exports.getPackageManifest = getPackageManifest;
|
|
@@ -79,6 +86,10 @@ Object.defineProperty(exports, "installWorld", { enumerable: true, get: function
|
|
|
79
86
|
Object.defineProperty(exports, "INSTALLED_INDEX", { enumerable: true, get: function () { return install_1.INSTALLED_INDEX; } });
|
|
80
87
|
Object.defineProperty(exports, "LOCKFILE", { enumerable: true, get: function () { return install_1.LOCKFILE; } });
|
|
81
88
|
Object.defineProperty(exports, "MODULES_DIR", { enumerable: true, get: function () { return install_1.MODULES_DIR; } });
|
|
89
|
+
Object.defineProperty(exports, "WORLD_MANIFEST_LOCATIONS", { enumerable: true, get: function () { return install_1.WORLD_MANIFEST_LOCATIONS; } });
|
|
90
|
+
var currency_1 = require("./currency");
|
|
91
|
+
Object.defineProperty(exports, "assessWorldCurrency", { enumerable: true, get: function () { return currency_1.assessWorldCurrency; } });
|
|
92
|
+
Object.defineProperty(exports, "ADVISORY_SYSTEMS", { enumerable: true, get: function () { return currency_1.ADVISORY_SYSTEMS; } });
|
|
82
93
|
var config_2 = require("./config");
|
|
83
94
|
Object.defineProperty(exports, "apiUrlMatchesEnv", { enumerable: true, get: function () { return config_2.apiUrlMatchesEnv; } });
|
|
84
95
|
Object.defineProperty(exports, "credsEnvMismatchWarning", { enumerable: true, get: function () { return config_2.credsEnvMismatchWarning; } });
|
|
@@ -104,6 +115,18 @@ async function importCharacter(opts) {
|
|
|
104
115
|
const mod = await Promise.resolve().then(() => __importStar(require('./character/importCharacter')));
|
|
105
116
|
return mod.importCharacter(opts);
|
|
106
117
|
}
|
|
118
|
+
// Headless screenshot capture (`helix screenshot`) as a programmatic API. Pulls in Playwright, so it
|
|
119
|
+
// is loaded lazily at call time — requiring lib.js stays fast.
|
|
120
|
+
async function captureScreenshots(opts) {
|
|
121
|
+
const mod = await Promise.resolve().then(() => __importStar(require('./screenshot/captureScreenshots')));
|
|
122
|
+
return mod.captureScreenshots(opts);
|
|
123
|
+
}
|
|
124
|
+
// Downscaled JPEG preview of a captured image (base64) — a compact stand-in for shipping a full-size
|
|
125
|
+
// PNG, e.g. as an MCP image content block. Pulls in sharp, so it is loaded lazily at call time.
|
|
126
|
+
async function encodeImagePreview(file, maxWidth) {
|
|
127
|
+
const mod = await Promise.resolve().then(() => __importStar(require('./screenshot/encodeImagePreview')));
|
|
128
|
+
return mod.encodeImagePreview(file, maxWidth);
|
|
129
|
+
}
|
|
107
130
|
const UPLOAD_CONCURRENCY = 6;
|
|
108
131
|
// Validate + resolve-or-create world + upload + finalize. Throws ApiError /
|
|
109
132
|
// Error with human-readable messages on any failure.
|
|
@@ -157,8 +180,70 @@ async function publishWorld(root, creds, onProgress = () => undefined) {
|
|
|
157
180
|
buildNumber: build.buildNumber,
|
|
158
181
|
playUrl: detail.playUrl,
|
|
159
182
|
worldUrl: `${creds.apiUrl}/api/v1/instant-worlds/${manifest.slug}`,
|
|
183
|
+
worldId: detail.id,
|
|
184
|
+
hasCustomThumbnail: detail.hasCustomThumbnail,
|
|
160
185
|
};
|
|
161
186
|
}
|
|
187
|
+
const MEDIA_CONTENT_TYPES = { '.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.webp': 'image/webp' };
|
|
188
|
+
const THUMBNAIL_MAX_BYTES = 8 * 1024 * 1024;
|
|
189
|
+
const PREVIEW_MAX_BYTES = 32 * 1024 * 1024;
|
|
190
|
+
// Content type from file extension — png/jpg/jpeg/webp only. Pure/testable without touching disk.
|
|
191
|
+
function mediaContentTypeFromExtension(file) {
|
|
192
|
+
const ext = (0, node_path_1.extname)(file).toLowerCase();
|
|
193
|
+
const contentType = MEDIA_CONTENT_TYPES[ext];
|
|
194
|
+
if (!contentType)
|
|
195
|
+
throw new Error(`unsupported media file type "${ext || file}" — use png, jpg/jpeg, or webp`);
|
|
196
|
+
return contentType;
|
|
197
|
+
}
|
|
198
|
+
// Client-side size cap check — a friendlier failure than the server's 400 (world-media.ts:35-36).
|
|
199
|
+
function assertMediaSizeOk(size, kind) {
|
|
200
|
+
const max = kind === 'preview' ? PREVIEW_MAX_BYTES : THUMBNAIL_MAX_BYTES;
|
|
201
|
+
if (size > max) {
|
|
202
|
+
throw new Error(`file is ${(size / 1024 / 1024).toFixed(1)} MiB — the ${kind} limit is ${(max / 1024 / 1024).toFixed(0)} MiB`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// Anti-churn gate: an occupied slot refuses without an explicit --overwrite. Pure/testable —
|
|
206
|
+
// no HTTP — so every slot/overwrite combination is covered without mocking the API.
|
|
207
|
+
function assertMediaSlotWritable(world, kind, overwrite) {
|
|
208
|
+
const occupied = kind === 'thumbnail' ? world.hasCustomThumbnail : world.previewMediaUrl !== null;
|
|
209
|
+
if (!occupied || overwrite)
|
|
210
|
+
return;
|
|
211
|
+
const current = kind === 'thumbnail' ? world.thumbnailUrl : world.previewMediaUrl;
|
|
212
|
+
throw new Error(`The ${kind} slot is already set (${current}) — pass --overwrite to replace it (an explicit human decision, never automatic).`);
|
|
213
|
+
}
|
|
214
|
+
// Resolve the world (gate on the occupied-slot check) -> presign -> PUT -> finalize. Throws a clear
|
|
215
|
+
// Error on a refused slot, unsupported file type, oversize file, or any ApiError from the server.
|
|
216
|
+
async function setWorldMedia(slug, file, opts = {}) {
|
|
217
|
+
const kind = opts.kind ?? 'thumbnail';
|
|
218
|
+
const creds = (0, config_1.loadCredentials)();
|
|
219
|
+
if (!creds)
|
|
220
|
+
throw new Error('Not logged in (or token expired). Run: helix login');
|
|
221
|
+
const api = api_1.HelixApi.forCredentials(creds);
|
|
222
|
+
const world = await api.requestItem('GET', `/api/v1/instant-worlds/${slug}`);
|
|
223
|
+
assertMediaSlotWritable(world, kind, opts.overwrite ?? false);
|
|
224
|
+
const contentType = mediaContentTypeFromExtension(file);
|
|
225
|
+
const bytes = (0, node_fs_1.readFileSync)(file);
|
|
226
|
+
assertMediaSizeOk(bytes.byteLength, kind);
|
|
227
|
+
const ticket = await api.requestItem('POST', `/api/v1/instant-worlds/${world.id}/media/upload`, {
|
|
228
|
+
contentType,
|
|
229
|
+
size: bytes.byteLength,
|
|
230
|
+
kind,
|
|
231
|
+
});
|
|
232
|
+
await (0, api_1.uploadToTicket)(ticket.url, bytes, ticket.contentType, ticket.cacheControl);
|
|
233
|
+
return api.requestItem('POST', `/api/v1/instant-worlds/${world.id}/media/finalize`, {
|
|
234
|
+
key: ticket.key,
|
|
235
|
+
kind,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
// Clear a media slot back to the generated placeholder.
|
|
239
|
+
async function clearWorldMedia(slug, kind) {
|
|
240
|
+
const creds = (0, config_1.loadCredentials)();
|
|
241
|
+
if (!creds)
|
|
242
|
+
throw new Error('Not logged in (or token expired). Run: helix login');
|
|
243
|
+
const api = api_1.HelixApi.forCredentials(creds);
|
|
244
|
+
const world = await api.requestItem('GET', `/api/v1/instant-worlds/${slug}`);
|
|
245
|
+
return api.requestItem('DELETE', `/api/v1/instant-worlds/${world.id}/media?kind=${kind}`);
|
|
246
|
+
}
|
|
162
247
|
// Validate the bundle → create the version (presigned tickets per code/asset
|
|
163
248
|
// channel) → upload → finalize. Admin-only on the server.
|
|
164
249
|
async function publishPackage(root, creds, onProgress = () => undefined) {
|
package/dist/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
|
package/dist/resolve.d.ts
CHANGED
|
@@ -54,4 +54,5 @@ export type ResolvedPins = {
|
|
|
54
54
|
abilities: ResolvedPackage[];
|
|
55
55
|
};
|
|
56
56
|
export declare function normalizePinRange(range: string): string;
|
|
57
|
+
export declare function defaultDeps(apiUrl: string): Promise<ResolveDeps>;
|
|
57
58
|
export declare function resolvePins(apiUrl: string, pins: WorldPins, deps?: ResolveDeps): Promise<ResolvedPins>;
|
package/dist/resolve.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizePinRange = normalizePinRange;
|
|
4
|
+
exports.defaultDeps = defaultDeps;
|
|
4
5
|
exports.resolvePins = resolvePins;
|
|
5
6
|
const api_1 = require("./api");
|
|
6
7
|
const ability_1 = require("./ability");
|
|
@@ -66,6 +67,8 @@ async function resolveOne(deps, kind, slug, range) {
|
|
|
66
67
|
...(typeof detail.manifest.three === 'string' ? { three: detail.manifest.three } : {}),
|
|
67
68
|
};
|
|
68
69
|
}
|
|
70
|
+
// Exported so other callers needing the live catalog (e.g. `assessWorldCurrency`) reuse this exact
|
|
71
|
+
// wiring — an unauthenticated HelixApi + the vendored semver primitives — instead of re-deriving it.
|
|
69
72
|
async function defaultDeps(apiUrl) {
|
|
70
73
|
const v = await (0, ability_1.loadVendoredValidator)();
|
|
71
74
|
if (!v.satisfiesSystemPin || !v.parseSemver || !v.compareSemver) {
|
package/dist/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":";;AAuDA,8CAQC;
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { LaunchOptions } from 'playwright';
|
|
2
|
+
export type CapturePose = {
|
|
3
|
+
position: [number, number, number];
|
|
4
|
+
lookAt?: [number, number, number];
|
|
5
|
+
fov?: number;
|
|
6
|
+
};
|
|
7
|
+
export type BrowserKey = 'bundled' | 'chrome' | 'msedge';
|
|
8
|
+
export type CaptureScreenshotsOptions = {
|
|
9
|
+
directory: string;
|
|
10
|
+
outDir: string;
|
|
11
|
+
shots?: string[];
|
|
12
|
+
width?: number;
|
|
13
|
+
height?: number;
|
|
14
|
+
preview?: boolean;
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
blindMs?: number;
|
|
17
|
+
pose?: CapturePose;
|
|
18
|
+
/** Diagnostic override: launch only this candidate, no fallback (default: try the whole chain). */
|
|
19
|
+
browser?: BrowserKey;
|
|
20
|
+
onProgress?: (message: string) => void;
|
|
21
|
+
};
|
|
22
|
+
export type CaptureScreenshotsResult = {
|
|
23
|
+
written: string[];
|
|
24
|
+
declaredShots: string[];
|
|
25
|
+
};
|
|
26
|
+
export type BrowserCandidate = {
|
|
27
|
+
key: BrowserKey;
|
|
28
|
+
label: string;
|
|
29
|
+
launchOptions: LaunchOptions;
|
|
30
|
+
};
|
|
31
|
+
export declare function browserCandidates(): BrowserCandidate[];
|
|
32
|
+
export declare function selectBrowserCandidates(browser: BrowserKey | undefined): BrowserCandidate[];
|
|
33
|
+
export type LaunchAttempt = {
|
|
34
|
+
key: BrowserKey;
|
|
35
|
+
label: string;
|
|
36
|
+
message: string;
|
|
37
|
+
};
|
|
38
|
+
export declare function composeLaunchFailure(attempts: LaunchAttempt[]): string;
|
|
39
|
+
export type HelperTimeoutState = 'absent' | 'present';
|
|
40
|
+
export declare function composeTimeoutDiagnosis(state: HelperTimeoutState, errors: string[]): string;
|
|
41
|
+
export declare function captureScreenshots(opts: CaptureScreenshotsOptions): Promise<CaptureScreenshotsResult>;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.browserCandidates = browserCandidates;
|
|
37
|
+
exports.selectBrowserCandidates = selectBrowserCandidates;
|
|
38
|
+
exports.composeLaunchFailure = composeLaunchFailure;
|
|
39
|
+
exports.composeTimeoutDiagnosis = composeTimeoutDiagnosis;
|
|
40
|
+
exports.captureScreenshots = captureScreenshots;
|
|
41
|
+
// Headless capture for `helix screenshot`: serves the built bundle, drives the in-page screenshot
|
|
42
|
+
// helper (window.__helixScreenshots) via Playwright, and writes the resulting PNGs to disk. The
|
|
43
|
+
// helper itself ships in @helix/engine-core/screenshot — this module only speaks its window
|
|
44
|
+
// protocol and never imports the engine.
|
|
45
|
+
const node_fs_1 = require("node:fs");
|
|
46
|
+
const node_path_1 = require("node:path");
|
|
47
|
+
const staticServe_1 = require("./staticServe");
|
|
48
|
+
// Software-GL flags: headless Chromium has no real GPU, so WebGL must render via SwiftShader.
|
|
49
|
+
const HEADLESS_GL_ARGS = ['--use-angle=swiftshader', '--enable-unsafe-swiftshader'];
|
|
50
|
+
const PREVIEW_WIDTH = 2560;
|
|
51
|
+
const PREVIEW_HEIGHT = 1440;
|
|
52
|
+
const MAX_DIAGNOSTIC_LINES = 6;
|
|
53
|
+
const DIAGNOSTIC_LINE_MAX_CHARS = 300;
|
|
54
|
+
// Ordered fallback chain for `chromium.launch()`: the pinned bundled build first (most
|
|
55
|
+
// deterministic), then whichever system browser is already installed — so first-run works
|
|
56
|
+
// without the ~150 MB download on machines that already have Chrome or Edge.
|
|
57
|
+
function browserCandidates() {
|
|
58
|
+
return [
|
|
59
|
+
{ key: 'bundled', label: 'bundled Chromium', launchOptions: { headless: true, args: HEADLESS_GL_ARGS } },
|
|
60
|
+
{ key: 'chrome', label: 'system Chrome', launchOptions: { headless: true, args: HEADLESS_GL_ARGS, channel: 'chrome' } },
|
|
61
|
+
{ key: 'msedge', label: 'system Edge', launchOptions: { headless: true, args: HEADLESS_GL_ARGS, channel: 'msedge' } },
|
|
62
|
+
];
|
|
63
|
+
}
|
|
64
|
+
// Pure so the "forced candidate, no fallback" plan is unit-testable without Playwright.
|
|
65
|
+
function selectBrowserCandidates(browser) {
|
|
66
|
+
return browser ? browserCandidates().filter((c) => c.key === browser) : browserCandidates();
|
|
67
|
+
}
|
|
68
|
+
// Pure so the "everything failed" message is unit-testable without Playwright. The install hint only
|
|
69
|
+
// makes sense when the bundled build was among the attempts — forcing a system browser that's simply
|
|
70
|
+
// not installed can't be fixed by `--install`, which only downloads the pinned Chromium.
|
|
71
|
+
function composeLaunchFailure(attempts) {
|
|
72
|
+
const tried = attempts.map((a) => a.label).join(', ');
|
|
73
|
+
const details = attempts.map((a) => ` - ${a.label}: ${a.message}`).join('\n');
|
|
74
|
+
const installHint = attempts.some((a) => a.key === 'bundled')
|
|
75
|
+
? ' — run: helix screenshot --install to download the pinned headless browser (one-time, ~150 MB)'
|
|
76
|
+
: '';
|
|
77
|
+
return `No usable browser found — tried ${tried}${installHint}.\n\n${details}`;
|
|
78
|
+
}
|
|
79
|
+
// Pure so the two timeout causes are unit-testable without Playwright. "absent" — the world never
|
|
80
|
+
// installed window.__helixScreenshots — means a missing integration; "present" — the boot-presence
|
|
81
|
+
// marker landed but ready never flipped — means the world loaded the helper but crashed during boot.
|
|
82
|
+
function composeTimeoutDiagnosis(state, errors) {
|
|
83
|
+
const cause = state === 'absent'
|
|
84
|
+
? 'This world does not integrate @helix/engine-core/screenshot — add the "engine-core" system pin to ' +
|
|
85
|
+
'helix.json alongside humanoid-character, run helix install, wire the three integration lines (see the ' +
|
|
86
|
+
'MCP screenshots doc), and rebuild — or capture a non-deterministic fallback with --blind <ms>.'
|
|
87
|
+
: 'The world loaded the screenshot helper but its boot never completed — this looks like a load/boot ' +
|
|
88
|
+
'failure, not a missing integration. Check that the world runs standalone.';
|
|
89
|
+
if (errors.length === 0)
|
|
90
|
+
return cause;
|
|
91
|
+
return `${cause}\n\npage errors during load:\n${errors.map((line) => ` - ${line}`).join('\n')}`;
|
|
92
|
+
}
|
|
93
|
+
async function captureScreenshots(opts) {
|
|
94
|
+
const onProgress = opts.onProgress ?? (() => undefined);
|
|
95
|
+
const width = opts.width ?? 1280;
|
|
96
|
+
const height = opts.height ?? 720;
|
|
97
|
+
const timeoutMs = opts.timeoutMs ?? 60000;
|
|
98
|
+
(0, node_fs_1.mkdirSync)(opts.outDir, { recursive: true });
|
|
99
|
+
const playwright = await Promise.resolve().then(() => __importStar(require('playwright')));
|
|
100
|
+
const server = await (0, staticServe_1.startStaticServer)(opts.directory);
|
|
101
|
+
let browser;
|
|
102
|
+
const written = [];
|
|
103
|
+
let declaredShots = [];
|
|
104
|
+
try {
|
|
105
|
+
const attempts = [];
|
|
106
|
+
for (const candidate of selectBrowserCandidates(opts.browser)) {
|
|
107
|
+
try {
|
|
108
|
+
browser = await playwright.chromium.launch(candidate.launchOptions);
|
|
109
|
+
onProgress(`using ${candidate.label}`);
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
attempts.push({ key: candidate.key, label: candidate.label, message: err instanceof Error ? err.message : String(err) });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (!browser)
|
|
117
|
+
throw new Error(composeLaunchFailure(attempts));
|
|
118
|
+
const page = await browser.newPage({ viewport: { width, height }, deviceScaleFactor: 1 });
|
|
119
|
+
// Ring buffer of the last few load-time page errors — surfaced in the timeout diagnosis below to
|
|
120
|
+
// tell a boot crash apart from a world that simply never integrated the screenshot helper.
|
|
121
|
+
const pageErrors = [];
|
|
122
|
+
const recordPageError = (line) => {
|
|
123
|
+
const truncated = line.length > DIAGNOSTIC_LINE_MAX_CHARS ? `${line.slice(0, DIAGNOSTIC_LINE_MAX_CHARS)}…` : line;
|
|
124
|
+
pageErrors.push(truncated);
|
|
125
|
+
if (pageErrors.length > MAX_DIAGNOSTIC_LINES)
|
|
126
|
+
pageErrors.shift();
|
|
127
|
+
};
|
|
128
|
+
page.on('pageerror', (err) => recordPageError(err.message));
|
|
129
|
+
page.on('console', (msg) => {
|
|
130
|
+
if (msg.type() === 'error')
|
|
131
|
+
recordPageError(msg.text());
|
|
132
|
+
});
|
|
133
|
+
await page.goto(`http://127.0.0.1:${server.port}/?helixScreenshot=1`);
|
|
134
|
+
const writeCapture = (result, outPath) => {
|
|
135
|
+
const match = /^data:[^;]+;base64,(.+)$/s.exec(result.dataUrl);
|
|
136
|
+
if (!match)
|
|
137
|
+
throw new Error(`capture() returned an unexpected dataUrl for ${outPath}`);
|
|
138
|
+
(0, node_fs_1.writeFileSync)(outPath, Buffer.from(match[1], 'base64'));
|
|
139
|
+
written.push(outPath);
|
|
140
|
+
onProgress(`wrote ${outPath} (${result.width}x${result.height})`);
|
|
141
|
+
if (result.fallback === 'current-view') {
|
|
142
|
+
onProgress(`⚠ "${result.shot ?? outPath}" used the auto-framed current view — no declared shot was captured.`);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
if (opts.blindMs !== undefined) {
|
|
146
|
+
onProgress('⚠ BLIND CAPTURE — no screenshot helper detected on this world. This is a raw canvas snapshot after a fixed ' +
|
|
147
|
+
'delay, NOT a declared shot: framing is non-deterministic, do not treat it as a stable thumbnail source.');
|
|
148
|
+
await page.waitForTimeout(opts.blindMs);
|
|
149
|
+
const buffer = await page.locator('canvas').first().screenshot();
|
|
150
|
+
const outPath = (0, node_path_1.join)(opts.outDir, 'blind.png');
|
|
151
|
+
(0, node_fs_1.writeFileSync)(outPath, buffer);
|
|
152
|
+
written.push(outPath);
|
|
153
|
+
onProgress(`wrote ${outPath}`);
|
|
154
|
+
return { written, declaredShots };
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
await page.waitForFunction('window.__helixScreenshots?.ready === true', undefined, { timeout: timeoutMs });
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
const helperState = await page.evaluate(() => typeof window.__helixScreenshots === 'undefined' ? 'absent' : 'present');
|
|
161
|
+
throw new Error(`Timed out after ${timeoutMs}ms waiting for the screenshot helper (window.__helixScreenshots) to become ready. ` +
|
|
162
|
+
composeTimeoutDiagnosis(helperState, pageErrors));
|
|
163
|
+
}
|
|
164
|
+
declaredShots = await page.evaluate(() => window.__helixScreenshots.shots);
|
|
165
|
+
if (opts.pose) {
|
|
166
|
+
const result = await page.evaluate((pose) => window.__helixScreenshots.capture(null, { pose }), opts.pose);
|
|
167
|
+
writeCapture(result, (0, node_path_1.join)(opts.outDir, 'custom.png'));
|
|
168
|
+
return { written, declaredShots };
|
|
169
|
+
}
|
|
170
|
+
const targets = opts.shots ?? declaredShots;
|
|
171
|
+
for (const name of targets) {
|
|
172
|
+
if (!declaredShots.includes(name)) {
|
|
173
|
+
throw new Error(`unknown shot "${name}" — declared shots: ${declaredShots.join(', ') || '(none)'}`);
|
|
174
|
+
}
|
|
175
|
+
const result = await page.evaluate((shotName) => window.__helixScreenshots.capture(shotName), name);
|
|
176
|
+
writeCapture(result, (0, node_path_1.join)(opts.outDir, `${name}.png`));
|
|
177
|
+
if (opts.preview) {
|
|
178
|
+
const previewResult = await page.evaluate(({ shotName, w, h }) => window.__helixScreenshots.capture(shotName, { width: w, height: h }), { shotName: name, w: PREVIEW_WIDTH, h: PREVIEW_HEIGHT });
|
|
179
|
+
writeCapture(previewResult, (0, node_path_1.join)(opts.outDir, `${name}.preview.png`));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return { written, declaredShots };
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
await browser?.close();
|
|
186
|
+
await server.close();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=captureScreenshots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureScreenshots.js","sourceRoot":"","sources":["../../src/screenshot/captureScreenshots.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.encodeImagePreview = encodeImagePreview;
|
|
37
|
+
async function encodeImagePreview(file, maxWidth) {
|
|
38
|
+
const sharp = (await Promise.resolve().then(() => __importStar(require('sharp')))).default;
|
|
39
|
+
const buffer = await sharp(file).resize({ width: maxWidth, withoutEnlargement: true }).jpeg({ quality: 80 }).toBuffer();
|
|
40
|
+
return { data: buffer.toString('base64'), mimeType: 'image/jpeg' };
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=encodeImagePreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encodeImagePreview.js","sourceRoot":"","sources":["../../src/screenshot/encodeImagePreview.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,gDAIC;AAJM,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,QAAgB;IACrE,MAAM,KAAK,GAAG,CAAC,wDAAa,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxH,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.startStaticServer = startStaticServer;
|
|
4
|
+
// Minimal static file server for `helix screenshot` — serves a built world bundle on an ephemeral
|
|
5
|
+
// localhost port so headless Chromium can navigate to it. Vendored (not imported) from
|
|
6
|
+
// helix-web-engine-new/tools/dev-stack/static-serve.mjs: the CLI takes no cross-repo dependency.
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_http_1 = require("node:http");
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
// .js/.mjs MUST carry a JS mime or the browser refuses <script type=module>; .wasm enables streaming-compile.
|
|
11
|
+
const CONTENT_TYPES = {
|
|
12
|
+
'.html': 'text/html; charset=utf-8',
|
|
13
|
+
'.js': 'text/javascript; charset=utf-8',
|
|
14
|
+
'.mjs': 'text/javascript; charset=utf-8',
|
|
15
|
+
'.css': 'text/css; charset=utf-8',
|
|
16
|
+
'.json': 'application/json; charset=utf-8',
|
|
17
|
+
'.map': 'application/json; charset=utf-8',
|
|
18
|
+
'.wasm': 'application/wasm',
|
|
19
|
+
'.glb': 'model/gltf-binary',
|
|
20
|
+
'.gltf': 'model/gltf+json',
|
|
21
|
+
'.ktx2': 'application/octet-stream',
|
|
22
|
+
'.bin': 'application/octet-stream',
|
|
23
|
+
'.png': 'image/png',
|
|
24
|
+
'.jpg': 'image/jpeg',
|
|
25
|
+
'.jpeg': 'image/jpeg',
|
|
26
|
+
'.svg': 'image/svg+xml',
|
|
27
|
+
'.ico': 'image/x-icon',
|
|
28
|
+
'.woff2': 'font/woff2',
|
|
29
|
+
};
|
|
30
|
+
// Serves `root` on 127.0.0.1 with an OS-assigned port. `/` and any path ending in `/` resolve to
|
|
31
|
+
// index.html; anything that would escape `root` (`..` traversal) is rejected with 403.
|
|
32
|
+
function startStaticServer(root) {
|
|
33
|
+
const normalizedRoot = (0, node_path_1.normalize)(root);
|
|
34
|
+
return new Promise((resolvePromise, reject) => {
|
|
35
|
+
const server = (0, node_http_1.createServer)((req, res) => {
|
|
36
|
+
try {
|
|
37
|
+
const url = new URL(req.url ?? '/', 'http://127.0.0.1');
|
|
38
|
+
let rel = decodeURIComponent(url.pathname);
|
|
39
|
+
if (rel.endsWith('/'))
|
|
40
|
+
rel += 'index.html';
|
|
41
|
+
const full = (0, node_path_1.normalize)((0, node_path_1.join)(normalizedRoot, '.' + (rel.startsWith('/') ? rel : `/${rel}`)));
|
|
42
|
+
if (full !== normalizedRoot && !full.startsWith(normalizedRoot + node_path_1.sep)) {
|
|
43
|
+
res.writeHead(403).end('forbidden');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
let stat;
|
|
47
|
+
try {
|
|
48
|
+
stat = (0, node_fs_1.statSync)(full);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
res.writeHead(404).end('not found');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (stat.isDirectory()) {
|
|
55
|
+
res.writeHead(404).end('not found');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
res.setHeader('Content-Type', CONTENT_TYPES[(0, node_path_1.extname)(full).toLowerCase()] ?? 'application/octet-stream');
|
|
59
|
+
res.setHeader('Content-Length', stat.size);
|
|
60
|
+
(0, node_fs_1.createReadStream)(full).pipe(res);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
res.writeHead(500).end(err instanceof Error ? err.message : String(err));
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
server.on('error', reject);
|
|
67
|
+
server.listen(0, '127.0.0.1', () => {
|
|
68
|
+
const address = server.address();
|
|
69
|
+
const port = typeof address === 'object' && address ? address.port : 0;
|
|
70
|
+
resolvePromise({
|
|
71
|
+
port,
|
|
72
|
+
close: () => new Promise((res) => server.close(() => res())),
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=staticServe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticServe.js","sourceRoot":"","sources":["../../src/screenshot/staticServe.ts"],"names":[],"mappings":"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"}
|