Files
atelier/manifest.ts
pastilhasandClaude Opus 5 bc11b3ea9d sharp ^0.35.3, to meet av-club
plugin npm dependencies are INTERSECTED into one plugins/node_modules, and
^0.33 and ^0.35 do not overlap — a 0.x caret pins the minor, so the install
failed outright rather than picking one. av-club could not come down: its
vocabulary exposes autoOrient as an input option, which is sharp 0.34+.

atelier calls exactly one sharp method, .metadata(), in
sidecar/generations/inspect.ts. resolved to 0.35.4.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 22:36:07 +01:00

55 lines
2.9 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { PluginManifest } from '@@/plugins/manifest';
// Atelier — image generation as a service: a provider-shaped API over OpenAI's image endpoints,
// storing what it makes so every image has a durable reference inside Officer.
//
// Extracted 2026-08-20 from a standalone server (~/officer-dev/dockers/officer-atelier) that predates
// the plugin system. See PLUGIN.md for what moved, what did not, and why — most notably that the
// `atelier` Postgres database stays separate rather than folding into officer_db (both `collections`
// and `provider_settings` had rows on the machine this was extracted from), and that generated images
// are now served through an authenticated route instead of an unauthenticated `PUBLIC_URL`.
//
// api/router.ts a thin auth-gated proxy — no Atelier knowledge, and it must never grow app logic
// sidecar/ the whole image-generation contract: providers, the queue, the database
// web/ three panels — Generate, Gallery, Collections — and a layout
//
// Providers (which adapter, which model, whose key) is NOT a panel — it moved to
// Settings → Integrations → Atelier, per PLUGIN.md's "Providers as a settings screen" decision.
export const manifest: PluginManifest = {
publisher: 'officerdev',
version: '2026.08.27.01',
platform: '>=1.0.0',
label: 'Atelier',
summary: 'Image generation — prompt, gallery, collections, backed by OpenAI’s image models',
/** image generation you play with; not a work tool. */
tags: ['Personal', 'Fun'],
icon: 'Palette',
color: '#f59e0b',
// `sharp` measures the width, height and alpha channel of a written image (sidecar/generations/
// inspect.ts) — load-bearing, not incidental: it is how a `background: transparent` request that
// silently produced an opaque image gets caught.
//
// A range, not a pin. Every plugin's declarations merge into one shared install at
// `plugins/node_modules/`, so the next plugin that wants sharp shares this copy rather than adding
// another 50 MB of platform binaries. See src/servers/plugins/npm-deps.ts.
npmDependencies: {
// ^0.35 since 2026-08-28, moved up to meet av-club. These are INTERSECTED across every plugin into
// one `plugins/node_modules/`, and `^0.33` and `^0.35` do not overlap — a 0.x caret pins the minor,
// so the two ranges could not both be satisfied and the install failed outright. av-club could not
// come down: its vocabulary exposes `autoOrient` as an INPUT option, which is sharp 0.34+, and the
// owner asked for the current release on both rather than a floor. Atelier calls exactly one
// sharp method, `.metadata()`, in `sidecar/generations/inspect.ts`.
sharp: '^0.35.3',
},
permissions: [
{
key: 'atelier',
label: 'Atelier',
description: 'Image generation: prompts, gallery, collections and provider configuration',
},
],
};