pixelkiln 0.70.0 → 0.70.1

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/index.d.cts CHANGED
@@ -18329,7 +18329,19 @@ interface RenderGalleryOptions {
18329
18329
  generation?: boolean;
18330
18330
  /** The in-browser editor can be installed and served (`--edit` without `--no-editor`). */
18331
18331
  editor?: boolean;
18332
+ /**
18333
+ * Marks the page's one inline script and stylesheet for a
18334
+ * `galleryContentSecurityPolicy(nonce)` header, so nothing else inline can run.
18335
+ */
18336
+ nonce?: string;
18332
18337
  }
18338
+ /**
18339
+ * The policy the gallery serves its page under. Its own script and styles
18340
+ * run by nonce; media, the review sheet, and the editor all come from this
18341
+ * server; nothing may frame it or post a form anywhere. A prompt or path
18342
+ * that ever reached the DOM as markup could still not run.
18343
+ */
18344
+ declare function galleryContentSecurityPolicy(nonce: string): string;
18333
18345
  declare function renderGallery(snapshot: GallerySnapshot, opts?: RenderGalleryOptions): string;
18334
18346
 
18335
18347
  /**
@@ -19636,11 +19648,24 @@ interface GalleryEditHandlerOptions {
19636
19648
  /** The `edit` callback `serveGallery` expects: validate, apply, rebuild. */
19637
19649
  declare function createGalleryEditHandler(opts: GalleryEditHandlerOptions): (body: unknown) => Promise<GalleryBuild>;
19638
19650
 
19651
+ /**
19652
+ * Estimates this gallery session has made, against its cap, and what
19653
+ * PixelLab reported billing for them, in whatever unit each response named.
19654
+ * Kept apart from the generation budget: PixelLab documents this endpoint in
19655
+ * dollars, and dollars do not convert to generations.
19656
+ */
19657
+ interface SkeletonEstimateSession {
19658
+ used: number;
19659
+ limit: number;
19660
+ spent: Record<string, number>;
19661
+ }
19639
19662
  interface GallerySkeletonHandlers {
19640
19663
  estimate(body: unknown): Promise<{
19641
19664
  set: SkeletonSet;
19642
19665
  source: string;
19666
+ session: SkeletonEstimateSession;
19643
19667
  }>;
19668
+ status(): SkeletonEstimateSession;
19644
19669
  }
19645
19670
 
19646
19671
  /**
@@ -19689,7 +19714,7 @@ interface GalleryServerOptions {
19689
19714
  * `/editor/<release>/<file>` routes that serve the pinned editor build.
19690
19715
  */
19691
19716
  editor?: GalleryEditorHandlers;
19692
- /** Enable `POST /api/skeleton/estimate`, a direct PixelLab call the page confirms first. */
19717
+ /** Enable `POST /api/skeleton/estimate` (a direct PixelLab call the page confirms first) and `GET /api/skeleton`, its session count. */
19693
19718
  skeleton?: GallerySkeletonHandlers;
19694
19719
  }
19695
19720
  interface GalleryServer {
@@ -19977,4 +20002,4 @@ interface WorkspaceStatusReport {
19977
20002
  */
19978
20003
  declare function workspaceStatus(ws: Workspace, dir: string): Promise<WorkspaceStatusReport>;
19979
20004
 
19980
- export { type AdoptResult, type ApproveQualityOptions, type ApprovedQualityReview, type ArtifactBundleManifest, type ArtifactBundleOptions, type ArtifactBundleResult, type ArtifactFile, type ArtifactProvenance, type ArtifactSource, type ArtifactVerification, type Asset, type AssetAudit, type AssetBatch, AssetBatchSchema, AssetSchema, type AtlasSet, type AuditEvaluation, type AuditThresholds, type AuditViolation, type Balance, type BalanceChange, type BalanceInfo, type Base64Image, type BilledAmount, BudgetError, type BuildGalleryOptions, type BuildWorkspaceGalleryOptions, CHARACTER_DIRECTIONS_4, CHARACTER_DIRECTIONS_8, CHARACTER_PROPORTION_PRESETS, type CacheHealthOptions, type CacheHealthReport, type CandidateSelection, type CharacterAnimation, type CharacterAnimationMode, CharacterAnimationModeSchema, CharacterAnimationSchema$1 as CharacterAnimationSchema, type CharacterDirection, CharacterDirectionSchema, type CharacterMode, CharacterModeSchema, type CharacterOutfit, CharacterOutfitSchema, type CharacterPortrait, CharacterPortraitSchema, type CharacterPortraitSize, CharacterPortraitSizeSchema, type CharacterProportions, CharacterProportionsSchema, type CharacterState, CharacterStateSchema, type ComfyUIBinding, type ComfyUIBindings, type ComfyUIFramesOptions, type ComfyUIImageInput, type ComfyUIOptions, ComfyUIProvider, type ContentCacheHealth, type ContentCacheIssue, type CostEstimate, type CostUnit, DEFAULT_HISTORY_LIMIT, DEFAULT_QUALITY_TOLERANCES, DEFAULT_RATE_LIMIT, DEFAULT_TIMEOUT_MS, type DoctorCheck, type DoctorLevel, type DoctorOptions, type DoctorReport, EDITOR_PIN, EDITOR_RELEASE_BASE, EXIT_CODES, EditorInstallError, type EditorInstallOptions, type EditorInstallProgress, type EditorInstallResult, type EditorInstallStatus, type EditorPin, type ErrorCode, FAKE_PNG, FONT_COST_GENERATIONS, FONT_GLYPH_SIZES, FONT_WEIGHTS, FRAME_SET_REVISION_MODES, type FakeOptions, FakeProvider, type FetchResult, type FontGlyphSize, type FontWeight, type GalleryBuild, type GalleryEditHandlerOptions, type GalleryEditMeta, type GalleryEditorHandlers, type GalleryEditorOptions, type GalleryEditorStatus, type GalleryGenerateHandlers, type GalleryGeneration, type GalleryItem, type GalleryMedia, type GalleryOutput, type GalleryProject, type GalleryProjectContext, type GalleryQuality, type GalleryServer, type GalleryServerOptions, type GallerySnapshot, type GalleryState, type GalleryStyle, type GenerateFontOptions, type GenerateFontResult, type GenerateHandlerOptions, type GenerateJob, type GeneratePhase, GenerateRequestError, GenerateRequestSchema, type GenerateStatus, type Generator, GeneratorSchema, type GenericTileset, type GridConfidence, GridConfidenceSchema, HAND_EDIT_DIR, HISTORY_ENV, type HandEditCompanion, HandEditCompanionSchema, type HandEditMember, type HandEditSave, type HandEditSaveInput, type HandEditStart, type HandEditStatus, type HistoryPick, type ImageQualityMetrics, ImageQualityMetricsSchema, InheritedStyleSchema, type InstallRecipeOptions, type InstallRecipeResult, type JobState, type LoadedManifest, type LoadedRecipe, type Lock, type LockEntry, LockEntrySchema, type LockHistoryEntry, LockHistoryEntrySchema, type LockOutput, LockSchema, MAX_DOWNLOAD_BYTES, MAX_HAND_EDIT_BYTES, MAX_RETRIES, MEMBER_SET_REVISION_MODES, MIRRORED_DIRECTION, type ManagedArtifactBundleOptions, type Manifest, ManifestDriftError, type ManifestEdit, ManifestEditError, type ManifestEditResult, ManifestEditSchema, ManifestInputSchema, ManifestSchema, type MapObject, type MapScene, type MapScenePlacement, MapScenePlacementSchema, MapSceneSchema, MediaType, type MountPlacement, type MountedSheet, type NormalizedTileRules, type ObjectAnimationGroup, type OpenProjectOptions, type Orphan, type OrphanGroups, type OutputSelection, type OutputSource, OverwriteRefusedError, PIXEL_ART_FIXER_REVISION, PIXEL_ART_FIXER_URL, type PackedFrame, type PackedSheet, type PackedSource, type PendingQualityReview, type PickResult, type PixelArtFixerDetection, PixelKilnError, type PixelKilnErrorOptions, type PixelLabCharacter, type PixelLabCharacterAnimation, PixelLabClient, PixelLabError, type PixelLabObject, PixelLabProvider, type PixelLabUsage, type Plan, type PlanItem, type PlanState, type PollContext, type PollOptions, type PollResult, type Postprocess, PostprocessSchema, type PrepareReviewOptions, type Project, ProjectError, type Provider, ProviderError, type ProviderFactory, type ProviderInputContext, type ProviderInputScalar, type ProviderInputValue, type ProviderMetadata, type ProviderMode, type ProviderOptionContext, type ProviderSubmission, type QualityBaseline, QualityBaselineSchema, type QualityCheck, type QualityProfile, type QualityProfileInspection, QualityProfileSchema, type QualityProfileState, type QualityRegressionCaseResult, type QualityRegressionReport, type QualitySnapshotResult, QualityToleranceSchema, type QualityTolerances, type RateLimit, type Recipe, type RecipeFileVerification, type RecipeModelVerification, RecipeSchema, type RecipeVerification, type RefineAudit, type RefineFrameSetOptions, type RefineFrameSetResult, type RefineOptions, type RefineQualityProfilesOptions, type RefineQualityProfilesResult, type RefineRecordOptions, type RefineResult, type RefreshContext, type RemoteAsset, type RemoteCharacter, type RemoteCharacterDetail, type RemoteHashCacheHealth, type RenderGalleryOptions, type RenderSheetOptions, type ResolvedBatch, type ResolvedCharacter, type ResolvedMapScene, type ResolvedMirror, type ResolvedObjectPro, type ResolvedOutput, type ResolvedProviderInputs, type ResolvedProviderOptions, type ResolvedQualityInput, type ResolvedQualityProfile, type ResolvedReferenceImage, type ResolvedRevision, type ResolvedRevisionMember, type ResolvedSpec, type ResolvedStyleAnchor, type ResolvedStyleImage, type ResumeAction, type ResumeCommand, type RetroDiffusionOptions, RetroDiffusionProvider, type RetryInit, type RetryOptions, type RetryingFetch, type RevertOptions, type RevertResult, type ReviewReadyInfo, type ReviewSession, type Revision, type RevisionDithering, RevisionDitheringSchema, type RevisionMode, RevisionModeSchema, type RevisionReadiness, RevisionSchema, SHEET_FORMATS, type SalvageAction, type SalvageResult, type ScannedAsset, type ScenarioOptions, ScenarioProvider, type SessionBudget, type SheetAtlas, type SheetFormat, type SheetFormatOptions, type SheetGroup, type SiblingManifest, type SpriteInput, type Style, type StyleAudit, type StyleInput, StyleInputSchema, StyleSchema, type SubmissionCheckpoint, type SubmitContext, type SubmitOptions, type SubmitResult, type TilesPro, type Tileset, type TilesetExport, type TilesetExportOptions, type TilesetFormat, type TilesetTile, UNZOOM_MAX_AREA, UNZOOM_MIN_SIDE, type UiElement, UiElementSchema, type UiPiece, UiPieceSchema, UnsupportedCapabilityError, type UnzoomFileResult, UsageError, type Workspace, type WorkspaceClaims, type WorkspaceDiagnostic, type WorkspaceProject, WorkspaceProjectSchema, type WorkspaceProjectStatus, WorkspaceSchema, type WorkspaceStatusReport, adopt, applyManifestEdit, applyTags, approveQualityRecord, auditStyle, availableProviders, backoffMs, buildGallerySnapshot, buildManifest, buildPlan, buildWorkspaceGallerySnapshot, bundledRecipeRoot, cacheFileName, candidateCount, characterDirections, checkQualityBaseline, checkQualityRecord, clientFromEnv, colorDistance, countNumberedDescriptions, createArtifactBundleManifest, createGalleryEditHandler, createGalleryEditorHandlers, createGenerateHandlers, createProvider, currentEntryOutputPath, currentOutputPath, defaultOpenCommand, defaultUnzoomOut, detachHandEdit, detectMediaType, doctor, editorBaseUrl, editorDir, editorRoute, editorStatus, editorToolsRoot, errorCode, evaluateAudit, exitCodeFor, expectedOutputPath, exportTileset, fallbackOutputRole, fetchAssets, fetchWithRetry, findOrphans, fontOutputPaths, formatCost, frameSetFps, galleryMediaId, galleryMediaRoute, generateFont, generationCost, groupOrphansByStyle, handEditBase, handEditBases, handEditCompanionPath, handEditMembers, handEditPath, handEditProjectPath, hex, historyAfterReplacing, historyLimit, idFromPrompt, imageMetadata, inspectCaches, inspectQualityProfile, inspectRevisionReadiness, installEditor, installRecipe, isFrameSetEntry, isMemberSetEntry, isSensitiveSourceUrl, isometricTileCost, listBundledRecipes, loadClaims, loadLock, loadManifest, loadSiblingManifests, loadWorkspace, lockKey, matchOrphanStyle, measureBalanceChange, measureDecodedImageQuality, measureImageQuality, mediaExtension, mediaTypeFromExtension, memberPath, mergePalettes, mountSprites, mountStyle, normalizeLockOutputPaths, normalizeRefinementPalette, normalizeTerrainTiles, normalizeTileRules, openExternal, openInEditor, openProject, outliers, outputId, packSprites, packStyle, paletteDistance, parentAssetId, parseLock, parseTerrainDescriptions, parseWorkspace, pickHistory, pngSize, poll, portableOutputPath, prepareReview, primaryOutput, proportionsPayload, providerCredentialEnvs, providerFactory, pushTags, qualityFrameOutputPath, qualityRecordPath, quantizeToPalette, readArtifactBundleManifest, readHandEditCompanion, readQualityBaseline, recipeDigest, referencedHashes, refineAsset, refineFrameSet, refineQualityProfiles, registerProvider, remove, renderAsepriteSheet, renderGallery, renderGodotSpriteFrames, renderSalvageSheet, renderSheet, renderSheetDocument, requireApprovedQualitySources, requireBalance, requireDelete, requireList, requireRevisionReady, requireSelectCandidate, resolveEntryOutputs, resolveOutputPath, resolvePackInputs, resolveProject, resolveQualityInputs, resolveRecipe, resolveSpecEntryOutputs, resolveSpecOutputs, resolveSpecs, resolveStyleImages, resolveStyleOutputs, resumeActions, resumeCommandForStatus, retireGeneration, retryAfterMs, revertGeneration, runPicker, runSalvage, saveHandEdit, saveLock, saveWorkspace, scanAssets, selectEntryOutput, serveGallery, sha256, sha256File, shouldPersistSourceUrl, shouldRetry, slugify, snapshotQualityBaseline, sourceIsStem, sourceOutputPath, specHash, spendByUnit, startHandEdit, styleImagesBase64, submit, summarize, tagAdopted, terrainTileCount, tileFeatureOutputCount, tileVariationCount, tilesCost, toPortablePath, totalSpend, unzoomFile, upsert, validateCostEstimate, validateMedia, validateWorkspace, verifyArtifactBundle, verifyRecipe, withArtifactManifest, workspaceClaims, workspaceStatus, writeArtifactBundle, writeManagedArtifactBundle };
20005
+ export { type AdoptResult, type ApproveQualityOptions, type ApprovedQualityReview, type ArtifactBundleManifest, type ArtifactBundleOptions, type ArtifactBundleResult, type ArtifactFile, type ArtifactProvenance, type ArtifactSource, type ArtifactVerification, type Asset, type AssetAudit, type AssetBatch, AssetBatchSchema, AssetSchema, type AtlasSet, type AuditEvaluation, type AuditThresholds, type AuditViolation, type Balance, type BalanceChange, type BalanceInfo, type Base64Image, type BilledAmount, BudgetError, type BuildGalleryOptions, type BuildWorkspaceGalleryOptions, CHARACTER_DIRECTIONS_4, CHARACTER_DIRECTIONS_8, CHARACTER_PROPORTION_PRESETS, type CacheHealthOptions, type CacheHealthReport, type CandidateSelection, type CharacterAnimation, type CharacterAnimationMode, CharacterAnimationModeSchema, CharacterAnimationSchema$1 as CharacterAnimationSchema, type CharacterDirection, CharacterDirectionSchema, type CharacterMode, CharacterModeSchema, type CharacterOutfit, CharacterOutfitSchema, type CharacterPortrait, CharacterPortraitSchema, type CharacterPortraitSize, CharacterPortraitSizeSchema, type CharacterProportions, CharacterProportionsSchema, type CharacterState, CharacterStateSchema, type ComfyUIBinding, type ComfyUIBindings, type ComfyUIFramesOptions, type ComfyUIImageInput, type ComfyUIOptions, ComfyUIProvider, type ContentCacheHealth, type ContentCacheIssue, type CostEstimate, type CostUnit, DEFAULT_HISTORY_LIMIT, DEFAULT_QUALITY_TOLERANCES, DEFAULT_RATE_LIMIT, DEFAULT_TIMEOUT_MS, type DoctorCheck, type DoctorLevel, type DoctorOptions, type DoctorReport, EDITOR_PIN, EDITOR_RELEASE_BASE, EXIT_CODES, EditorInstallError, type EditorInstallOptions, type EditorInstallProgress, type EditorInstallResult, type EditorInstallStatus, type EditorPin, type ErrorCode, FAKE_PNG, FONT_COST_GENERATIONS, FONT_GLYPH_SIZES, FONT_WEIGHTS, FRAME_SET_REVISION_MODES, type FakeOptions, FakeProvider, type FetchResult, type FontGlyphSize, type FontWeight, type GalleryBuild, type GalleryEditHandlerOptions, type GalleryEditMeta, type GalleryEditorHandlers, type GalleryEditorOptions, type GalleryEditorStatus, type GalleryGenerateHandlers, type GalleryGeneration, type GalleryItem, type GalleryMedia, type GalleryOutput, type GalleryProject, type GalleryProjectContext, type GalleryQuality, type GalleryServer, type GalleryServerOptions, type GallerySnapshot, type GalleryState, type GalleryStyle, type GenerateFontOptions, type GenerateFontResult, type GenerateHandlerOptions, type GenerateJob, type GeneratePhase, GenerateRequestError, GenerateRequestSchema, type GenerateStatus, type Generator, GeneratorSchema, type GenericTileset, type GridConfidence, GridConfidenceSchema, HAND_EDIT_DIR, HISTORY_ENV, type HandEditCompanion, HandEditCompanionSchema, type HandEditMember, type HandEditSave, type HandEditSaveInput, type HandEditStart, type HandEditStatus, type HistoryPick, type ImageQualityMetrics, ImageQualityMetricsSchema, InheritedStyleSchema, type InstallRecipeOptions, type InstallRecipeResult, type JobState, type LoadedManifest, type LoadedRecipe, type Lock, type LockEntry, LockEntrySchema, type LockHistoryEntry, LockHistoryEntrySchema, type LockOutput, LockSchema, MAX_DOWNLOAD_BYTES, MAX_HAND_EDIT_BYTES, MAX_RETRIES, MEMBER_SET_REVISION_MODES, MIRRORED_DIRECTION, type ManagedArtifactBundleOptions, type Manifest, ManifestDriftError, type ManifestEdit, ManifestEditError, type ManifestEditResult, ManifestEditSchema, ManifestInputSchema, ManifestSchema, type MapObject, type MapScene, type MapScenePlacement, MapScenePlacementSchema, MapSceneSchema, MediaType, type MountPlacement, type MountedSheet, type NormalizedTileRules, type ObjectAnimationGroup, type OpenProjectOptions, type Orphan, type OrphanGroups, type OutputSelection, type OutputSource, OverwriteRefusedError, PIXEL_ART_FIXER_REVISION, PIXEL_ART_FIXER_URL, type PackedFrame, type PackedSheet, type PackedSource, type PendingQualityReview, type PickResult, type PixelArtFixerDetection, PixelKilnError, type PixelKilnErrorOptions, type PixelLabCharacter, type PixelLabCharacterAnimation, PixelLabClient, PixelLabError, type PixelLabObject, PixelLabProvider, type PixelLabUsage, type Plan, type PlanItem, type PlanState, type PollContext, type PollOptions, type PollResult, type Postprocess, PostprocessSchema, type PrepareReviewOptions, type Project, ProjectError, type Provider, ProviderError, type ProviderFactory, type ProviderInputContext, type ProviderInputScalar, type ProviderInputValue, type ProviderMetadata, type ProviderMode, type ProviderOptionContext, type ProviderSubmission, type QualityBaseline, QualityBaselineSchema, type QualityCheck, type QualityProfile, type QualityProfileInspection, QualityProfileSchema, type QualityProfileState, type QualityRegressionCaseResult, type QualityRegressionReport, type QualitySnapshotResult, QualityToleranceSchema, type QualityTolerances, type RateLimit, type Recipe, type RecipeFileVerification, type RecipeModelVerification, RecipeSchema, type RecipeVerification, type RefineAudit, type RefineFrameSetOptions, type RefineFrameSetResult, type RefineOptions, type RefineQualityProfilesOptions, type RefineQualityProfilesResult, type RefineRecordOptions, type RefineResult, type RefreshContext, type RemoteAsset, type RemoteCharacter, type RemoteCharacterDetail, type RemoteHashCacheHealth, type RenderGalleryOptions, type RenderSheetOptions, type ResolvedBatch, type ResolvedCharacter, type ResolvedMapScene, type ResolvedMirror, type ResolvedObjectPro, type ResolvedOutput, type ResolvedProviderInputs, type ResolvedProviderOptions, type ResolvedQualityInput, type ResolvedQualityProfile, type ResolvedReferenceImage, type ResolvedRevision, type ResolvedRevisionMember, type ResolvedSpec, type ResolvedStyleAnchor, type ResolvedStyleImage, type ResumeAction, type ResumeCommand, type RetroDiffusionOptions, RetroDiffusionProvider, type RetryInit, type RetryOptions, type RetryingFetch, type RevertOptions, type RevertResult, type ReviewReadyInfo, type ReviewSession, type Revision, type RevisionDithering, RevisionDitheringSchema, type RevisionMode, RevisionModeSchema, type RevisionReadiness, RevisionSchema, SHEET_FORMATS, type SalvageAction, type SalvageResult, type ScannedAsset, type ScenarioOptions, ScenarioProvider, type SessionBudget, type SheetAtlas, type SheetFormat, type SheetFormatOptions, type SheetGroup, type SiblingManifest, type SpriteInput, type Style, type StyleAudit, type StyleInput, StyleInputSchema, StyleSchema, type SubmissionCheckpoint, type SubmitContext, type SubmitOptions, type SubmitResult, type TilesPro, type Tileset, type TilesetExport, type TilesetExportOptions, type TilesetFormat, type TilesetTile, UNZOOM_MAX_AREA, UNZOOM_MIN_SIDE, type UiElement, UiElementSchema, type UiPiece, UiPieceSchema, UnsupportedCapabilityError, type UnzoomFileResult, UsageError, type Workspace, type WorkspaceClaims, type WorkspaceDiagnostic, type WorkspaceProject, WorkspaceProjectSchema, type WorkspaceProjectStatus, WorkspaceSchema, type WorkspaceStatusReport, adopt, applyManifestEdit, applyTags, approveQualityRecord, auditStyle, availableProviders, backoffMs, buildGallerySnapshot, buildManifest, buildPlan, buildWorkspaceGallerySnapshot, bundledRecipeRoot, cacheFileName, candidateCount, characterDirections, checkQualityBaseline, checkQualityRecord, clientFromEnv, colorDistance, countNumberedDescriptions, createArtifactBundleManifest, createGalleryEditHandler, createGalleryEditorHandlers, createGenerateHandlers, createProvider, currentEntryOutputPath, currentOutputPath, defaultOpenCommand, defaultUnzoomOut, detachHandEdit, detectMediaType, doctor, editorBaseUrl, editorDir, editorRoute, editorStatus, editorToolsRoot, errorCode, evaluateAudit, exitCodeFor, expectedOutputPath, exportTileset, fallbackOutputRole, fetchAssets, fetchWithRetry, findOrphans, fontOutputPaths, formatCost, frameSetFps, galleryContentSecurityPolicy, galleryMediaId, galleryMediaRoute, generateFont, generationCost, groupOrphansByStyle, handEditBase, handEditBases, handEditCompanionPath, handEditMembers, handEditPath, handEditProjectPath, hex, historyAfterReplacing, historyLimit, idFromPrompt, imageMetadata, inspectCaches, inspectQualityProfile, inspectRevisionReadiness, installEditor, installRecipe, isFrameSetEntry, isMemberSetEntry, isSensitiveSourceUrl, isometricTileCost, listBundledRecipes, loadClaims, loadLock, loadManifest, loadSiblingManifests, loadWorkspace, lockKey, matchOrphanStyle, measureBalanceChange, measureDecodedImageQuality, measureImageQuality, mediaExtension, mediaTypeFromExtension, memberPath, mergePalettes, mountSprites, mountStyle, normalizeLockOutputPaths, normalizeRefinementPalette, normalizeTerrainTiles, normalizeTileRules, openExternal, openInEditor, openProject, outliers, outputId, packSprites, packStyle, paletteDistance, parentAssetId, parseLock, parseTerrainDescriptions, parseWorkspace, pickHistory, pngSize, poll, portableOutputPath, prepareReview, primaryOutput, proportionsPayload, providerCredentialEnvs, providerFactory, pushTags, qualityFrameOutputPath, qualityRecordPath, quantizeToPalette, readArtifactBundleManifest, readHandEditCompanion, readQualityBaseline, recipeDigest, referencedHashes, refineAsset, refineFrameSet, refineQualityProfiles, registerProvider, remove, renderAsepriteSheet, renderGallery, renderGodotSpriteFrames, renderSalvageSheet, renderSheet, renderSheetDocument, requireApprovedQualitySources, requireBalance, requireDelete, requireList, requireRevisionReady, requireSelectCandidate, resolveEntryOutputs, resolveOutputPath, resolvePackInputs, resolveProject, resolveQualityInputs, resolveRecipe, resolveSpecEntryOutputs, resolveSpecOutputs, resolveSpecs, resolveStyleImages, resolveStyleOutputs, resumeActions, resumeCommandForStatus, retireGeneration, retryAfterMs, revertGeneration, runPicker, runSalvage, saveHandEdit, saveLock, saveWorkspace, scanAssets, selectEntryOutput, serveGallery, sha256, sha256File, shouldPersistSourceUrl, shouldRetry, slugify, snapshotQualityBaseline, sourceIsStem, sourceOutputPath, specHash, spendByUnit, startHandEdit, styleImagesBase64, submit, summarize, tagAdopted, terrainTileCount, tileFeatureOutputCount, tileVariationCount, tilesCost, toPortablePath, totalSpend, unzoomFile, upsert, validateCostEstimate, validateMedia, validateWorkspace, verifyArtifactBundle, verifyRecipe, withArtifactManifest, workspaceClaims, workspaceStatus, writeArtifactBundle, writeManagedArtifactBundle };
package/dist/index.d.ts CHANGED
@@ -18329,7 +18329,19 @@ interface RenderGalleryOptions {
18329
18329
  generation?: boolean;
18330
18330
  /** The in-browser editor can be installed and served (`--edit` without `--no-editor`). */
18331
18331
  editor?: boolean;
18332
+ /**
18333
+ * Marks the page's one inline script and stylesheet for a
18334
+ * `galleryContentSecurityPolicy(nonce)` header, so nothing else inline can run.
18335
+ */
18336
+ nonce?: string;
18332
18337
  }
18338
+ /**
18339
+ * The policy the gallery serves its page under. Its own script and styles
18340
+ * run by nonce; media, the review sheet, and the editor all come from this
18341
+ * server; nothing may frame it or post a form anywhere. A prompt or path
18342
+ * that ever reached the DOM as markup could still not run.
18343
+ */
18344
+ declare function galleryContentSecurityPolicy(nonce: string): string;
18333
18345
  declare function renderGallery(snapshot: GallerySnapshot, opts?: RenderGalleryOptions): string;
18334
18346
 
18335
18347
  /**
@@ -19636,11 +19648,24 @@ interface GalleryEditHandlerOptions {
19636
19648
  /** The `edit` callback `serveGallery` expects: validate, apply, rebuild. */
19637
19649
  declare function createGalleryEditHandler(opts: GalleryEditHandlerOptions): (body: unknown) => Promise<GalleryBuild>;
19638
19650
 
19651
+ /**
19652
+ * Estimates this gallery session has made, against its cap, and what
19653
+ * PixelLab reported billing for them, in whatever unit each response named.
19654
+ * Kept apart from the generation budget: PixelLab documents this endpoint in
19655
+ * dollars, and dollars do not convert to generations.
19656
+ */
19657
+ interface SkeletonEstimateSession {
19658
+ used: number;
19659
+ limit: number;
19660
+ spent: Record<string, number>;
19661
+ }
19639
19662
  interface GallerySkeletonHandlers {
19640
19663
  estimate(body: unknown): Promise<{
19641
19664
  set: SkeletonSet;
19642
19665
  source: string;
19666
+ session: SkeletonEstimateSession;
19643
19667
  }>;
19668
+ status(): SkeletonEstimateSession;
19644
19669
  }
19645
19670
 
19646
19671
  /**
@@ -19689,7 +19714,7 @@ interface GalleryServerOptions {
19689
19714
  * `/editor/<release>/<file>` routes that serve the pinned editor build.
19690
19715
  */
19691
19716
  editor?: GalleryEditorHandlers;
19692
- /** Enable `POST /api/skeleton/estimate`, a direct PixelLab call the page confirms first. */
19717
+ /** Enable `POST /api/skeleton/estimate` (a direct PixelLab call the page confirms first) and `GET /api/skeleton`, its session count. */
19693
19718
  skeleton?: GallerySkeletonHandlers;
19694
19719
  }
19695
19720
  interface GalleryServer {
@@ -19977,4 +20002,4 @@ interface WorkspaceStatusReport {
19977
20002
  */
19978
20003
  declare function workspaceStatus(ws: Workspace, dir: string): Promise<WorkspaceStatusReport>;
19979
20004
 
19980
- export { type AdoptResult, type ApproveQualityOptions, type ApprovedQualityReview, type ArtifactBundleManifest, type ArtifactBundleOptions, type ArtifactBundleResult, type ArtifactFile, type ArtifactProvenance, type ArtifactSource, type ArtifactVerification, type Asset, type AssetAudit, type AssetBatch, AssetBatchSchema, AssetSchema, type AtlasSet, type AuditEvaluation, type AuditThresholds, type AuditViolation, type Balance, type BalanceChange, type BalanceInfo, type Base64Image, type BilledAmount, BudgetError, type BuildGalleryOptions, type BuildWorkspaceGalleryOptions, CHARACTER_DIRECTIONS_4, CHARACTER_DIRECTIONS_8, CHARACTER_PROPORTION_PRESETS, type CacheHealthOptions, type CacheHealthReport, type CandidateSelection, type CharacterAnimation, type CharacterAnimationMode, CharacterAnimationModeSchema, CharacterAnimationSchema$1 as CharacterAnimationSchema, type CharacterDirection, CharacterDirectionSchema, type CharacterMode, CharacterModeSchema, type CharacterOutfit, CharacterOutfitSchema, type CharacterPortrait, CharacterPortraitSchema, type CharacterPortraitSize, CharacterPortraitSizeSchema, type CharacterProportions, CharacterProportionsSchema, type CharacterState, CharacterStateSchema, type ComfyUIBinding, type ComfyUIBindings, type ComfyUIFramesOptions, type ComfyUIImageInput, type ComfyUIOptions, ComfyUIProvider, type ContentCacheHealth, type ContentCacheIssue, type CostEstimate, type CostUnit, DEFAULT_HISTORY_LIMIT, DEFAULT_QUALITY_TOLERANCES, DEFAULT_RATE_LIMIT, DEFAULT_TIMEOUT_MS, type DoctorCheck, type DoctorLevel, type DoctorOptions, type DoctorReport, EDITOR_PIN, EDITOR_RELEASE_BASE, EXIT_CODES, EditorInstallError, type EditorInstallOptions, type EditorInstallProgress, type EditorInstallResult, type EditorInstallStatus, type EditorPin, type ErrorCode, FAKE_PNG, FONT_COST_GENERATIONS, FONT_GLYPH_SIZES, FONT_WEIGHTS, FRAME_SET_REVISION_MODES, type FakeOptions, FakeProvider, type FetchResult, type FontGlyphSize, type FontWeight, type GalleryBuild, type GalleryEditHandlerOptions, type GalleryEditMeta, type GalleryEditorHandlers, type GalleryEditorOptions, type GalleryEditorStatus, type GalleryGenerateHandlers, type GalleryGeneration, type GalleryItem, type GalleryMedia, type GalleryOutput, type GalleryProject, type GalleryProjectContext, type GalleryQuality, type GalleryServer, type GalleryServerOptions, type GallerySnapshot, type GalleryState, type GalleryStyle, type GenerateFontOptions, type GenerateFontResult, type GenerateHandlerOptions, type GenerateJob, type GeneratePhase, GenerateRequestError, GenerateRequestSchema, type GenerateStatus, type Generator, GeneratorSchema, type GenericTileset, type GridConfidence, GridConfidenceSchema, HAND_EDIT_DIR, HISTORY_ENV, type HandEditCompanion, HandEditCompanionSchema, type HandEditMember, type HandEditSave, type HandEditSaveInput, type HandEditStart, type HandEditStatus, type HistoryPick, type ImageQualityMetrics, ImageQualityMetricsSchema, InheritedStyleSchema, type InstallRecipeOptions, type InstallRecipeResult, type JobState, type LoadedManifest, type LoadedRecipe, type Lock, type LockEntry, LockEntrySchema, type LockHistoryEntry, LockHistoryEntrySchema, type LockOutput, LockSchema, MAX_DOWNLOAD_BYTES, MAX_HAND_EDIT_BYTES, MAX_RETRIES, MEMBER_SET_REVISION_MODES, MIRRORED_DIRECTION, type ManagedArtifactBundleOptions, type Manifest, ManifestDriftError, type ManifestEdit, ManifestEditError, type ManifestEditResult, ManifestEditSchema, ManifestInputSchema, ManifestSchema, type MapObject, type MapScene, type MapScenePlacement, MapScenePlacementSchema, MapSceneSchema, MediaType, type MountPlacement, type MountedSheet, type NormalizedTileRules, type ObjectAnimationGroup, type OpenProjectOptions, type Orphan, type OrphanGroups, type OutputSelection, type OutputSource, OverwriteRefusedError, PIXEL_ART_FIXER_REVISION, PIXEL_ART_FIXER_URL, type PackedFrame, type PackedSheet, type PackedSource, type PendingQualityReview, type PickResult, type PixelArtFixerDetection, PixelKilnError, type PixelKilnErrorOptions, type PixelLabCharacter, type PixelLabCharacterAnimation, PixelLabClient, PixelLabError, type PixelLabObject, PixelLabProvider, type PixelLabUsage, type Plan, type PlanItem, type PlanState, type PollContext, type PollOptions, type PollResult, type Postprocess, PostprocessSchema, type PrepareReviewOptions, type Project, ProjectError, type Provider, ProviderError, type ProviderFactory, type ProviderInputContext, type ProviderInputScalar, type ProviderInputValue, type ProviderMetadata, type ProviderMode, type ProviderOptionContext, type ProviderSubmission, type QualityBaseline, QualityBaselineSchema, type QualityCheck, type QualityProfile, type QualityProfileInspection, QualityProfileSchema, type QualityProfileState, type QualityRegressionCaseResult, type QualityRegressionReport, type QualitySnapshotResult, QualityToleranceSchema, type QualityTolerances, type RateLimit, type Recipe, type RecipeFileVerification, type RecipeModelVerification, RecipeSchema, type RecipeVerification, type RefineAudit, type RefineFrameSetOptions, type RefineFrameSetResult, type RefineOptions, type RefineQualityProfilesOptions, type RefineQualityProfilesResult, type RefineRecordOptions, type RefineResult, type RefreshContext, type RemoteAsset, type RemoteCharacter, type RemoteCharacterDetail, type RemoteHashCacheHealth, type RenderGalleryOptions, type RenderSheetOptions, type ResolvedBatch, type ResolvedCharacter, type ResolvedMapScene, type ResolvedMirror, type ResolvedObjectPro, type ResolvedOutput, type ResolvedProviderInputs, type ResolvedProviderOptions, type ResolvedQualityInput, type ResolvedQualityProfile, type ResolvedReferenceImage, type ResolvedRevision, type ResolvedRevisionMember, type ResolvedSpec, type ResolvedStyleAnchor, type ResolvedStyleImage, type ResumeAction, type ResumeCommand, type RetroDiffusionOptions, RetroDiffusionProvider, type RetryInit, type RetryOptions, type RetryingFetch, type RevertOptions, type RevertResult, type ReviewReadyInfo, type ReviewSession, type Revision, type RevisionDithering, RevisionDitheringSchema, type RevisionMode, RevisionModeSchema, type RevisionReadiness, RevisionSchema, SHEET_FORMATS, type SalvageAction, type SalvageResult, type ScannedAsset, type ScenarioOptions, ScenarioProvider, type SessionBudget, type SheetAtlas, type SheetFormat, type SheetFormatOptions, type SheetGroup, type SiblingManifest, type SpriteInput, type Style, type StyleAudit, type StyleInput, StyleInputSchema, StyleSchema, type SubmissionCheckpoint, type SubmitContext, type SubmitOptions, type SubmitResult, type TilesPro, type Tileset, type TilesetExport, type TilesetExportOptions, type TilesetFormat, type TilesetTile, UNZOOM_MAX_AREA, UNZOOM_MIN_SIDE, type UiElement, UiElementSchema, type UiPiece, UiPieceSchema, UnsupportedCapabilityError, type UnzoomFileResult, UsageError, type Workspace, type WorkspaceClaims, type WorkspaceDiagnostic, type WorkspaceProject, WorkspaceProjectSchema, type WorkspaceProjectStatus, WorkspaceSchema, type WorkspaceStatusReport, adopt, applyManifestEdit, applyTags, approveQualityRecord, auditStyle, availableProviders, backoffMs, buildGallerySnapshot, buildManifest, buildPlan, buildWorkspaceGallerySnapshot, bundledRecipeRoot, cacheFileName, candidateCount, characterDirections, checkQualityBaseline, checkQualityRecord, clientFromEnv, colorDistance, countNumberedDescriptions, createArtifactBundleManifest, createGalleryEditHandler, createGalleryEditorHandlers, createGenerateHandlers, createProvider, currentEntryOutputPath, currentOutputPath, defaultOpenCommand, defaultUnzoomOut, detachHandEdit, detectMediaType, doctor, editorBaseUrl, editorDir, editorRoute, editorStatus, editorToolsRoot, errorCode, evaluateAudit, exitCodeFor, expectedOutputPath, exportTileset, fallbackOutputRole, fetchAssets, fetchWithRetry, findOrphans, fontOutputPaths, formatCost, frameSetFps, galleryMediaId, galleryMediaRoute, generateFont, generationCost, groupOrphansByStyle, handEditBase, handEditBases, handEditCompanionPath, handEditMembers, handEditPath, handEditProjectPath, hex, historyAfterReplacing, historyLimit, idFromPrompt, imageMetadata, inspectCaches, inspectQualityProfile, inspectRevisionReadiness, installEditor, installRecipe, isFrameSetEntry, isMemberSetEntry, isSensitiveSourceUrl, isometricTileCost, listBundledRecipes, loadClaims, loadLock, loadManifest, loadSiblingManifests, loadWorkspace, lockKey, matchOrphanStyle, measureBalanceChange, measureDecodedImageQuality, measureImageQuality, mediaExtension, mediaTypeFromExtension, memberPath, mergePalettes, mountSprites, mountStyle, normalizeLockOutputPaths, normalizeRefinementPalette, normalizeTerrainTiles, normalizeTileRules, openExternal, openInEditor, openProject, outliers, outputId, packSprites, packStyle, paletteDistance, parentAssetId, parseLock, parseTerrainDescriptions, parseWorkspace, pickHistory, pngSize, poll, portableOutputPath, prepareReview, primaryOutput, proportionsPayload, providerCredentialEnvs, providerFactory, pushTags, qualityFrameOutputPath, qualityRecordPath, quantizeToPalette, readArtifactBundleManifest, readHandEditCompanion, readQualityBaseline, recipeDigest, referencedHashes, refineAsset, refineFrameSet, refineQualityProfiles, registerProvider, remove, renderAsepriteSheet, renderGallery, renderGodotSpriteFrames, renderSalvageSheet, renderSheet, renderSheetDocument, requireApprovedQualitySources, requireBalance, requireDelete, requireList, requireRevisionReady, requireSelectCandidate, resolveEntryOutputs, resolveOutputPath, resolvePackInputs, resolveProject, resolveQualityInputs, resolveRecipe, resolveSpecEntryOutputs, resolveSpecOutputs, resolveSpecs, resolveStyleImages, resolveStyleOutputs, resumeActions, resumeCommandForStatus, retireGeneration, retryAfterMs, revertGeneration, runPicker, runSalvage, saveHandEdit, saveLock, saveWorkspace, scanAssets, selectEntryOutput, serveGallery, sha256, sha256File, shouldPersistSourceUrl, shouldRetry, slugify, snapshotQualityBaseline, sourceIsStem, sourceOutputPath, specHash, spendByUnit, startHandEdit, styleImagesBase64, submit, summarize, tagAdopted, terrainTileCount, tileFeatureOutputCount, tileVariationCount, tilesCost, toPortablePath, totalSpend, unzoomFile, upsert, validateCostEstimate, validateMedia, validateWorkspace, verifyArtifactBundle, verifyRecipe, withArtifactManifest, workspaceClaims, workspaceStatus, writeArtifactBundle, writeManagedArtifactBundle };
20005
+ export { type AdoptResult, type ApproveQualityOptions, type ApprovedQualityReview, type ArtifactBundleManifest, type ArtifactBundleOptions, type ArtifactBundleResult, type ArtifactFile, type ArtifactProvenance, type ArtifactSource, type ArtifactVerification, type Asset, type AssetAudit, type AssetBatch, AssetBatchSchema, AssetSchema, type AtlasSet, type AuditEvaluation, type AuditThresholds, type AuditViolation, type Balance, type BalanceChange, type BalanceInfo, type Base64Image, type BilledAmount, BudgetError, type BuildGalleryOptions, type BuildWorkspaceGalleryOptions, CHARACTER_DIRECTIONS_4, CHARACTER_DIRECTIONS_8, CHARACTER_PROPORTION_PRESETS, type CacheHealthOptions, type CacheHealthReport, type CandidateSelection, type CharacterAnimation, type CharacterAnimationMode, CharacterAnimationModeSchema, CharacterAnimationSchema$1 as CharacterAnimationSchema, type CharacterDirection, CharacterDirectionSchema, type CharacterMode, CharacterModeSchema, type CharacterOutfit, CharacterOutfitSchema, type CharacterPortrait, CharacterPortraitSchema, type CharacterPortraitSize, CharacterPortraitSizeSchema, type CharacterProportions, CharacterProportionsSchema, type CharacterState, CharacterStateSchema, type ComfyUIBinding, type ComfyUIBindings, type ComfyUIFramesOptions, type ComfyUIImageInput, type ComfyUIOptions, ComfyUIProvider, type ContentCacheHealth, type ContentCacheIssue, type CostEstimate, type CostUnit, DEFAULT_HISTORY_LIMIT, DEFAULT_QUALITY_TOLERANCES, DEFAULT_RATE_LIMIT, DEFAULT_TIMEOUT_MS, type DoctorCheck, type DoctorLevel, type DoctorOptions, type DoctorReport, EDITOR_PIN, EDITOR_RELEASE_BASE, EXIT_CODES, EditorInstallError, type EditorInstallOptions, type EditorInstallProgress, type EditorInstallResult, type EditorInstallStatus, type EditorPin, type ErrorCode, FAKE_PNG, FONT_COST_GENERATIONS, FONT_GLYPH_SIZES, FONT_WEIGHTS, FRAME_SET_REVISION_MODES, type FakeOptions, FakeProvider, type FetchResult, type FontGlyphSize, type FontWeight, type GalleryBuild, type GalleryEditHandlerOptions, type GalleryEditMeta, type GalleryEditorHandlers, type GalleryEditorOptions, type GalleryEditorStatus, type GalleryGenerateHandlers, type GalleryGeneration, type GalleryItem, type GalleryMedia, type GalleryOutput, type GalleryProject, type GalleryProjectContext, type GalleryQuality, type GalleryServer, type GalleryServerOptions, type GallerySnapshot, type GalleryState, type GalleryStyle, type GenerateFontOptions, type GenerateFontResult, type GenerateHandlerOptions, type GenerateJob, type GeneratePhase, GenerateRequestError, GenerateRequestSchema, type GenerateStatus, type Generator, GeneratorSchema, type GenericTileset, type GridConfidence, GridConfidenceSchema, HAND_EDIT_DIR, HISTORY_ENV, type HandEditCompanion, HandEditCompanionSchema, type HandEditMember, type HandEditSave, type HandEditSaveInput, type HandEditStart, type HandEditStatus, type HistoryPick, type ImageQualityMetrics, ImageQualityMetricsSchema, InheritedStyleSchema, type InstallRecipeOptions, type InstallRecipeResult, type JobState, type LoadedManifest, type LoadedRecipe, type Lock, type LockEntry, LockEntrySchema, type LockHistoryEntry, LockHistoryEntrySchema, type LockOutput, LockSchema, MAX_DOWNLOAD_BYTES, MAX_HAND_EDIT_BYTES, MAX_RETRIES, MEMBER_SET_REVISION_MODES, MIRRORED_DIRECTION, type ManagedArtifactBundleOptions, type Manifest, ManifestDriftError, type ManifestEdit, ManifestEditError, type ManifestEditResult, ManifestEditSchema, ManifestInputSchema, ManifestSchema, type MapObject, type MapScene, type MapScenePlacement, MapScenePlacementSchema, MapSceneSchema, MediaType, type MountPlacement, type MountedSheet, type NormalizedTileRules, type ObjectAnimationGroup, type OpenProjectOptions, type Orphan, type OrphanGroups, type OutputSelection, type OutputSource, OverwriteRefusedError, PIXEL_ART_FIXER_REVISION, PIXEL_ART_FIXER_URL, type PackedFrame, type PackedSheet, type PackedSource, type PendingQualityReview, type PickResult, type PixelArtFixerDetection, PixelKilnError, type PixelKilnErrorOptions, type PixelLabCharacter, type PixelLabCharacterAnimation, PixelLabClient, PixelLabError, type PixelLabObject, PixelLabProvider, type PixelLabUsage, type Plan, type PlanItem, type PlanState, type PollContext, type PollOptions, type PollResult, type Postprocess, PostprocessSchema, type PrepareReviewOptions, type Project, ProjectError, type Provider, ProviderError, type ProviderFactory, type ProviderInputContext, type ProviderInputScalar, type ProviderInputValue, type ProviderMetadata, type ProviderMode, type ProviderOptionContext, type ProviderSubmission, type QualityBaseline, QualityBaselineSchema, type QualityCheck, type QualityProfile, type QualityProfileInspection, QualityProfileSchema, type QualityProfileState, type QualityRegressionCaseResult, type QualityRegressionReport, type QualitySnapshotResult, QualityToleranceSchema, type QualityTolerances, type RateLimit, type Recipe, type RecipeFileVerification, type RecipeModelVerification, RecipeSchema, type RecipeVerification, type RefineAudit, type RefineFrameSetOptions, type RefineFrameSetResult, type RefineOptions, type RefineQualityProfilesOptions, type RefineQualityProfilesResult, type RefineRecordOptions, type RefineResult, type RefreshContext, type RemoteAsset, type RemoteCharacter, type RemoteCharacterDetail, type RemoteHashCacheHealth, type RenderGalleryOptions, type RenderSheetOptions, type ResolvedBatch, type ResolvedCharacter, type ResolvedMapScene, type ResolvedMirror, type ResolvedObjectPro, type ResolvedOutput, type ResolvedProviderInputs, type ResolvedProviderOptions, type ResolvedQualityInput, type ResolvedQualityProfile, type ResolvedReferenceImage, type ResolvedRevision, type ResolvedRevisionMember, type ResolvedSpec, type ResolvedStyleAnchor, type ResolvedStyleImage, type ResumeAction, type ResumeCommand, type RetroDiffusionOptions, RetroDiffusionProvider, type RetryInit, type RetryOptions, type RetryingFetch, type RevertOptions, type RevertResult, type ReviewReadyInfo, type ReviewSession, type Revision, type RevisionDithering, RevisionDitheringSchema, type RevisionMode, RevisionModeSchema, type RevisionReadiness, RevisionSchema, SHEET_FORMATS, type SalvageAction, type SalvageResult, type ScannedAsset, type ScenarioOptions, ScenarioProvider, type SessionBudget, type SheetAtlas, type SheetFormat, type SheetFormatOptions, type SheetGroup, type SiblingManifest, type SpriteInput, type Style, type StyleAudit, type StyleInput, StyleInputSchema, StyleSchema, type SubmissionCheckpoint, type SubmitContext, type SubmitOptions, type SubmitResult, type TilesPro, type Tileset, type TilesetExport, type TilesetExportOptions, type TilesetFormat, type TilesetTile, UNZOOM_MAX_AREA, UNZOOM_MIN_SIDE, type UiElement, UiElementSchema, type UiPiece, UiPieceSchema, UnsupportedCapabilityError, type UnzoomFileResult, UsageError, type Workspace, type WorkspaceClaims, type WorkspaceDiagnostic, type WorkspaceProject, WorkspaceProjectSchema, type WorkspaceProjectStatus, WorkspaceSchema, type WorkspaceStatusReport, adopt, applyManifestEdit, applyTags, approveQualityRecord, auditStyle, availableProviders, backoffMs, buildGallerySnapshot, buildManifest, buildPlan, buildWorkspaceGallerySnapshot, bundledRecipeRoot, cacheFileName, candidateCount, characterDirections, checkQualityBaseline, checkQualityRecord, clientFromEnv, colorDistance, countNumberedDescriptions, createArtifactBundleManifest, createGalleryEditHandler, createGalleryEditorHandlers, createGenerateHandlers, createProvider, currentEntryOutputPath, currentOutputPath, defaultOpenCommand, defaultUnzoomOut, detachHandEdit, detectMediaType, doctor, editorBaseUrl, editorDir, editorRoute, editorStatus, editorToolsRoot, errorCode, evaluateAudit, exitCodeFor, expectedOutputPath, exportTileset, fallbackOutputRole, fetchAssets, fetchWithRetry, findOrphans, fontOutputPaths, formatCost, frameSetFps, galleryContentSecurityPolicy, galleryMediaId, galleryMediaRoute, generateFont, generationCost, groupOrphansByStyle, handEditBase, handEditBases, handEditCompanionPath, handEditMembers, handEditPath, handEditProjectPath, hex, historyAfterReplacing, historyLimit, idFromPrompt, imageMetadata, inspectCaches, inspectQualityProfile, inspectRevisionReadiness, installEditor, installRecipe, isFrameSetEntry, isMemberSetEntry, isSensitiveSourceUrl, isometricTileCost, listBundledRecipes, loadClaims, loadLock, loadManifest, loadSiblingManifests, loadWorkspace, lockKey, matchOrphanStyle, measureBalanceChange, measureDecodedImageQuality, measureImageQuality, mediaExtension, mediaTypeFromExtension, memberPath, mergePalettes, mountSprites, mountStyle, normalizeLockOutputPaths, normalizeRefinementPalette, normalizeTerrainTiles, normalizeTileRules, openExternal, openInEditor, openProject, outliers, outputId, packSprites, packStyle, paletteDistance, parentAssetId, parseLock, parseTerrainDescriptions, parseWorkspace, pickHistory, pngSize, poll, portableOutputPath, prepareReview, primaryOutput, proportionsPayload, providerCredentialEnvs, providerFactory, pushTags, qualityFrameOutputPath, qualityRecordPath, quantizeToPalette, readArtifactBundleManifest, readHandEditCompanion, readQualityBaseline, recipeDigest, referencedHashes, refineAsset, refineFrameSet, refineQualityProfiles, registerProvider, remove, renderAsepriteSheet, renderGallery, renderGodotSpriteFrames, renderSalvageSheet, renderSheet, renderSheetDocument, requireApprovedQualitySources, requireBalance, requireDelete, requireList, requireRevisionReady, requireSelectCandidate, resolveEntryOutputs, resolveOutputPath, resolvePackInputs, resolveProject, resolveQualityInputs, resolveRecipe, resolveSpecEntryOutputs, resolveSpecOutputs, resolveSpecs, resolveStyleImages, resolveStyleOutputs, resumeActions, resumeCommandForStatus, retireGeneration, retryAfterMs, revertGeneration, runPicker, runSalvage, saveHandEdit, saveLock, saveWorkspace, scanAssets, selectEntryOutput, serveGallery, sha256, sha256File, shouldPersistSourceUrl, shouldRetry, slugify, snapshotQualityBaseline, sourceIsStem, sourceOutputPath, specHash, spendByUnit, startHandEdit, styleImagesBase64, submit, summarize, tagAdopted, terrainTileCount, tileFeatureOutputCount, tileVariationCount, tilesCost, toPortablePath, totalSpend, unzoomFile, upsert, validateCostEstimate, validateMedia, validateWorkspace, verifyArtifactBundle, verifyRecipe, withArtifactManifest, workspaceClaims, workspaceStatus, writeArtifactBundle, writeManagedArtifactBundle };
package/dist/index.js CHANGED
@@ -16404,13 +16404,48 @@ async function buildWorkspaceGallerySnapshot(opts) {
16404
16404
  }
16405
16405
 
16406
16406
  // src/gallery/page.ts
16407
- import { readFileSync as readFileSync5 } from "fs";
16407
+ import { existsSync as existsSync25, readFileSync as readFileSync5 } from "fs";
16408
+
16409
+ // src/gallery/client-bundle.ts
16410
+ import { createRequire } from "module";
16411
+ import { fileURLToPath as fileURLToPath2 } from "url";
16412
+ function bundleGalleryClient(entry = fileURLToPath2(new URL("./client/src/main.ts", import.meta.url))) {
16413
+ const esbuild = createRequire(import.meta.url)("esbuild");
16414
+ const result = esbuild.buildSync({
16415
+ entryPoints: [entry],
16416
+ bundle: true,
16417
+ format: "iife",
16418
+ target: "es2020",
16419
+ platform: "browser",
16420
+ write: false,
16421
+ legalComments: "none",
16422
+ charset: "utf8"
16423
+ });
16424
+ return result.outputFiles[0].text;
16425
+ }
16426
+
16427
+ // src/gallery/page.ts
16428
+ function galleryContentSecurityPolicy(nonce) {
16429
+ return [
16430
+ "default-src 'self'",
16431
+ `script-src 'nonce-${nonce}'`,
16432
+ `style-src 'nonce-${nonce}'`,
16433
+ "img-src 'self' data: blob:",
16434
+ "frame-src 'self'",
16435
+ "connect-src 'self'",
16436
+ "object-src 'none'",
16437
+ "base-uri 'none'",
16438
+ "form-action 'none'",
16439
+ "frame-ancestors 'none'"
16440
+ ].join("; ");
16441
+ }
16408
16442
  var CLIENT_DIR = new URL("./client/", import.meta.url);
16409
16443
  var client;
16410
16444
  function clientAssets() {
16445
+ const prebuilt = new URL("gallery.js", CLIENT_DIR);
16411
16446
  client ??= {
16412
16447
  css: readFileSync5(new URL("gallery.css", CLIENT_DIR), "utf8"),
16413
- js: readFileSync5(new URL("gallery.js", CLIENT_DIR), "utf8")
16448
+ js: existsSync25(prebuilt) ? readFileSync5(prebuilt, "utf8") : bundleGalleryClient()
16414
16449
  };
16415
16450
  return client;
16416
16451
  }
@@ -16422,6 +16457,7 @@ function renderGallery(snapshot, opts = {}) {
16422
16457
  const editor = JSON.stringify(Boolean(opts.editor && opts.session));
16423
16458
  const title = `${snapshot.project?.name ?? "workspace"} | pixelkiln`;
16424
16459
  const { css, js } = clientAssets();
16460
+ const nonce = opts.nonce ? ` nonce="${escapeHtml2(opts.nonce)}"` : "";
16425
16461
  return `<!doctype html>
16426
16462
  <html lang="en">
16427
16463
  <head>
@@ -16429,7 +16465,7 @@ function renderGallery(snapshot, opts = {}) {
16429
16465
  <meta name="viewport" content="width=device-width, initial-scale=1">
16430
16466
  <title>${escapeHtml2(title)}</title>
16431
16467
  <link rel="icon" href="data:,">
16432
- <style>
16468
+ <style${nonce}>
16433
16469
  ${css}</style>
16434
16470
  </head>
16435
16471
  <body>
@@ -16471,7 +16507,7 @@ ${css}</style>
16471
16507
  <div id="drawer-host"></div>
16472
16508
  <div id="dialog-host"></div>
16473
16509
  <datalist id="view-options"><option value="low top-down"><option value="high top-down"><option value="side"><option value="sidescroller"></datalist>
16474
- <script>
16510
+ <script${nonce}>
16475
16511
  const INITIAL = ${data};
16476
16512
  const SESSION = ${session};
16477
16513
  const EDITABLE = ${editable};
@@ -16536,7 +16572,7 @@ var EDITOR_RELEASE_BASE = "https://github.com/gfargo/pixelkiln/releases/download
16536
16572
 
16537
16573
  // src/editor/install.ts
16538
16574
  import { createHash as createHash5 } from "crypto";
16539
- import { existsSync as existsSync25 } from "fs";
16575
+ import { existsSync as existsSync26 } from "fs";
16540
16576
  import { mkdir as mkdir10, readFile as readFile23, rename as rename9, rm as rm11, stat as stat4, writeFile as writeFile13 } from "fs/promises";
16541
16577
  import os2 from "os";
16542
16578
  import path31 from "path";
@@ -16582,7 +16618,7 @@ async function editorStatus(opts = {}) {
16582
16618
  for (const [name, expected] of Object.entries(pin.files)) {
16583
16619
  totalBytes += expected.bytes;
16584
16620
  const file = path31.join(dir, name);
16585
- const info = existsSync25(file) ? await stat4(file).catch(() => null) : null;
16621
+ const info = existsSync26(file) ? await stat4(file).catch(() => null) : null;
16586
16622
  if (info && info.size === expected.bytes && await sha256Of(file) === expected.sha256) {
16587
16623
  installedBytes += expected.bytes;
16588
16624
  } else {
@@ -16964,6 +17000,10 @@ async function serveGallery(opts) {
16964
17000
  }
16965
17001
  }
16966
17002
  if (req.method !== "GET" && req.method !== "HEAD") return fail(405, "the gallery is read-only");
17003
+ if (url2.pathname === "/api/skeleton") {
17004
+ if (!opts.skeleton) return fail(404, "skeleton estimates need the gallery started with --edit");
17005
+ return json(200, opts.skeleton.status());
17006
+ }
16967
17007
  if (url2.pathname === "/api/jobs") {
16968
17008
  if (!opts.generate) return fail(404, "generation is off");
16969
17009
  return json(200, opts.generate.status());
@@ -16997,12 +17037,15 @@ async function serveGallery(opts) {
16997
17037
  try {
16998
17038
  if (url2.pathname === "/") {
16999
17039
  const { snapshot } = await load();
17040
+ const nonce = randomBytes(16).toString("base64");
17000
17041
  res.writeHead(200, {
17001
17042
  "Content-Type": "text/html; charset=utf-8",
17002
17043
  "Cache-Control": "no-store",
17003
- "X-Content-Type-Options": "nosniff"
17044
+ "X-Content-Type-Options": "nosniff",
17045
+ "Content-Security-Policy": galleryContentSecurityPolicy(nonce)
17004
17046
  });
17005
17047
  res.end(renderGallery(snapshot, {
17048
+ nonce,
17006
17049
  ...session ? { session } : {},
17007
17050
  editable: Boolean(opts.edit),
17008
17051
  generation: Boolean(opts.generate),
@@ -17401,7 +17444,7 @@ function createGenerateHandlers(opts) {
17401
17444
 
17402
17445
  // src/pipeline/salvage.ts
17403
17446
  import { readFile as readFile26 } from "fs/promises";
17404
- import { existsSync as existsSync26 } from "fs";
17447
+ import { existsSync as existsSync27 } from "fs";
17405
17448
  import path33 from "path";
17406
17449
  function providerClaimId(provider, objectId) {
17407
17450
  return `${encodeURIComponent(provider)}:${encodeURIComponent(objectId)}`;
@@ -17409,7 +17452,7 @@ function providerClaimId(provider, objectId) {
17409
17452
  async function loadClaims(lockPaths, opts = {}) {
17410
17453
  const claimed = /* @__PURE__ */ new Set();
17411
17454
  for (const p of lockPaths) {
17412
- if (!existsSync26(p)) throw new Error(`Claim lockfile not found: ${p}`);
17455
+ if (!existsSync27(p)) throw new Error(`Claim lockfile not found: ${p}`);
17413
17456
  let parsed;
17414
17457
  try {
17415
17458
  parsed = parseLock(JSON.parse(await readFile26(p, "utf8")));
@@ -17526,7 +17569,7 @@ async function loadSiblingManifests(ownManifestPath, workspaceManifestPaths, cla
17526
17569
  const siblings = [];
17527
17570
  for (const siblingManifestPath of siblingManifestPaths) {
17528
17571
  if (path33.resolve(siblingManifestPath) === own) continue;
17529
- if (!existsSync26(siblingManifestPath)) continue;
17572
+ if (!existsSync27(siblingManifestPath)) continue;
17530
17573
  try {
17531
17574
  const { manifest } = await loadManifest(siblingManifestPath);
17532
17575
  siblings.push({ label: path33.basename(path33.dirname(siblingManifestPath)), manifest });
@@ -18175,6 +18218,7 @@ export {
18175
18218
  fontOutputPaths,
18176
18219
  formatCost,
18177
18220
  frameSetFps,
18221
+ galleryContentSecurityPolicy,
18178
18222
  galleryMediaId,
18179
18223
  galleryMediaRoute,
18180
18224
  generateFont,