apple / swift (push) Successful in 5m38s
windows-host / package (push) Successful in 19m0s
ci / web (push) Successful in 56s
ci / docs-site (push) Successful in 1m4s
windows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 3m15s
windows-msix / package (x64, C:\Users\Public\ffmpeg, , x86_64-pc-windows-msvc, C:\t) (push) Successful in 3m21s
ci / bench (push) Successful in 5m41s
ci / rust-arm64 (push) Successful in 9m32s
ci / rust (push) Failing after 12m19s
windows / build (aarch64-pc-windows-msvc) (push) Successful in 4m46s
android / android (push) Successful in 17m49s
decky / build-publish (push) Successful in 1m11s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 16s
arch / build-publish (push) Successful in 19m46s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 39s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 11s
docker / build-push (ci, ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 11s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 12s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 22s
windows / build (x86_64-pc-windows-msvc) (push) Failing after 5m22s
deb / build-publish (push) Successful in 9m9s
deb / build-publish-client-arm64 (push) Successful in 7m26s
deb / build-publish-host (push) Successful in 9m46s
flatpak / build-publish (push) Failing after 8m33s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 15m57s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 21m56s
docker / build-push-arm64cross (push) Successful in 9s
docker / deploy-docs (push) Successful in 11s
apple / screenshots (push) Successful in 25m51s
Emulation-and-beyond libraries need more than a title and a poster. Every library shape (GameEntry, CustomEntry, CustomInput, ProviderEntryInput) now carries a shared, flattened GameMeta: platform, description, developer, publisher, release_year, genres, tags, region, players. All fields are optional and flat on the wire, so existing library.json files, provider plugins, and clients keep working unchanged. - Installed-store scanners (Steam, Lutris, Heroic, Epic, GOG, Xbox) stamp platform=PC; custom/provider entries carry whatever was authored. - GET /library grows a ?platform= filter (case-insensitive) beside ?provider=. - Console: the add/edit form gets a Details section (round-tripping every field, since update replaces the entry), the poster tile a platform badge (non-PC only — the store badge already implies PC) and the year. - plugin-kit: ProviderEntry accepts the same fields (new GameMeta schema, spread flat); SDK + OpenAPI spec regenerated. - pf-client-core decodes platform for future client badges. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
// @punktfunk/plugin-kit — Effect-based framework for punktfunk plugins.
|
|
export * from "./errors.js";
|
|
export {
|
|
atomicWriteFile,
|
|
ensureStateDir,
|
|
pluginIngestDir,
|
|
pluginStateDir,
|
|
statePath,
|
|
} from "./paths.js";
|
|
export {
|
|
HostClient,
|
|
hostClientFromFacade,
|
|
type HostClientService,
|
|
PluginInfo,
|
|
pluginInfoLayer,
|
|
type PluginInfoService,
|
|
} from "./host-client.js";
|
|
export { loggingLayer } from "./logging.js";
|
|
export { type ConfigService, makeConfigService } from "./config.js";
|
|
export { type CacheStore, makeCacheStore } from "./cache-store.js";
|
|
export {
|
|
Artwork,
|
|
DetectHint,
|
|
GameMeta,
|
|
LaunchSpec,
|
|
PrepStep,
|
|
ProviderClient,
|
|
type ProviderClientService,
|
|
ProviderEntry,
|
|
} from "./reconcile.js";
|
|
export {
|
|
definePluginKit,
|
|
type PluginKitDef,
|
|
runPluginKitDirect,
|
|
} from "./runtime.js";
|
|
export {
|
|
type LastSync,
|
|
makeSyncEngine,
|
|
type SyncEngine,
|
|
type SyncEngineOptions,
|
|
type SyncOutcome,
|
|
type SyncReason,
|
|
type SyncSettings,
|
|
type SyncStatus,
|
|
} from "./sync-engine.js";
|
|
export { httpApiEnv, serveUi, type ServeUiOptions } from "./ui-server.js";
|
|
export { sseRoute, type SseRouteOptions } from "./sse.js";
|
|
export { type CliCommand, runPluginCli } from "./cli.js";
|