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: '1.0.0', platform: '>=1.0.0', label: 'Atelier', summary: 'Image generation — prompt, gallery, collections, backed by OpenAI’s image models', 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: { sharp: '^0.33.5', }, permissions: [ { key: 'atelier', label: 'Atelier', description: 'Image generation: prompts, gallery, collections and provider configuration', }, ], };