Концепції, цінність і типові сценарії
Концепції, цінність і типові сценарії
Preparing Ring content
Preparing Ring content
Preparing Ring content
Generative Gallery — це спільне медіаполе Ring Platform для створення NFT, форм товарів мультивендорного магазину та Image/Video chat на панелі деталей File Cabinet. Оператори завантажують зображення або генерують варіанти через ImageConductor, збагачують промпти за допомогою Ghost-write (TextConductor + вебпошук), а історію зберігають у прихованому tool chat (genmedia:…), який не захаращує Messages.
Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Засновники бачать операторську цінність і поверхні; розробники — модулі, білінг і перевірені шляхи.
| Поверхня | Роль |
|---|---|
| Майстер створення NFT | Обкладинка колекції + mint-медіа через GenerativeMediaField (scope: 'nft') |
| Форма товару продавця / адміністратора | Галерея зображень товару (scope: 'product'); Agent Knowledge Research — окремий шлях WebConductor, див. Store |
| Панель деталей File Cabinet | Image chat / Video chat → GenerativeMediaEditorFsModal (scope: 'cabinet'); збереження поруч із джерелом |
| Галерея деталей товару | Для смужки надає перевагу derivatives.thumb / webpUrl; lightbox використовує оригінал |
| Картки новин / hero / OG | pickImageSrc → card / hero / og; за наявності — розмитий LQIP |
| Аватар | avatarThumb (sync_thumb) має перевагу над оригіналом photoURL |
| Бульбашки зображень у чаті | MessageAttachment.derivatives.thumb має перевагу над оригінальним URL |
| Mint NFT + лістинги | Off-chain Metaplex JSON (image, необов’язковий animation_url, properties.files) |
SSOT-модуль: features/generative-media/. Області: nft | product | cabinet | editor.
generative_gallery / genmedia:).…/alt; Generative Gallery створює або покращує пікселі. Додавання до галереї з research залишається явною дією Use in gallery.{name}-enhanced-… або {name}-enlive-…, тому оригінали залишаються недоторканими.Залежність: Conversation.type проти metadata.kind — tool chats повторно використовують product channel.
Той самий процес: Generative Gallery під час create/mint/list для member.
Той самий процес: поле галереї товару плюс WebConductor Agent Knowledge Research.
Наступний крок: Image/Video chat на панелі деталей і збереження поруч із parentId.
Generative Gallery — це спільне медіаполе Ring Platform для створення NFT, форм товарів мультивендорного магазину та Image/Video chat на панелі деталей File Cabinet. Оператори завантажують зображення або генерують варіанти через ImageConductor, збагачують промпти за допомогою Ghost-write (TextConductor + вебпошук), а історію зберігають у прихованому tool chat (genmedia:…), який не захаращує Messages.
Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Засновники бачать операторську цінність і поверхні; розробники — модулі, білінг і перевірені шляхи.
| Поверхня | Роль |
|---|---|
| Майстер створення NFT | Обкладинка колекції + mint-медіа через GenerativeMediaField (scope: 'nft') |
| Форма товару продавця / адміністратора | Галерея зображень товару (scope: 'product'); Agent Knowledge Research — окремий шлях WebConductor, див. Store |
| Панель деталей File Cabinet | Image chat / Video chat → GenerativeMediaEditorFsModal (scope: 'cabinet'); збереження поруч із джерелом |
| Галерея деталей товару | Для смужки надає перевагу derivatives.thumb / webpUrl; lightbox використовує оригінал |
| Картки новин / hero / OG | pickImageSrc → card / hero / og; за наявності — розмитий LQIP |
| Аватар | avatarThumb (sync_thumb) має перевагу над оригіналом photoURL |
| Бульбашки зображень у чаті | MessageAttachment.derivatives.thumb має перевагу над оригінальним URL |
| Mint NFT + лістинги | Off-chain Metaplex JSON (image, необов’язковий animation_url, properties.files) |
SSOT-модуль: features/generative-media/. Області: nft | product | cabinet | editor.
generative_gallery / genmedia:).…/alt; Generative Gallery створює або покращує пікселі. Додавання до галереї з research залишається явною дією Use in gallery.{name}-enhanced-… або {name}-enlive-…, тому оригінали залишаються недоторканими.Залежність: Conversation.type проти metadata.kind — tool chats повторно використовують product channel.
Той самий процес: Generative Gallery під час create/mint/list для member.
Той самий процес: поле галереї товару плюс WebConductor Agent Knowledge Research.
Наступний крок: Image/Video chat на панелі деталей і збереження поруч із parentId.
Generative Gallery — це спільне медіаполе Ring Platform для створення NFT, форм товарів мультивендорного магазину та Image/Video chat на панелі деталей File Cabinet. Оператори завантажують зображення або генерують варіанти через ImageConductor, збагачують промпти за допомогою Ghost-write (TextConductor + вебпошук), а історію зберігають у прихованому tool chat (genmedia:…), який не захаращує Messages.
Використовуйте вкладки Founder / Developer на бічній панелі документації, щоб відфільтрувати цю сторінку. Засновники бачать операторську цінність і поверхні; розробники — модулі, білінг і перевірені шляхи.
| Поверхня | Роль |
|---|---|
| Майстер створення NFT | Обкладинка колекції + mint-медіа через GenerativeMediaField (scope: 'nft') |
| Форма товару продавця / адміністратора | Галерея зображень товару (scope: 'product'); Agent Knowledge Research — окремий шлях WebConductor, див. Store |
| Панель деталей File Cabinet | Image chat / Video chat → GenerativeMediaEditorFsModal (scope: 'cabinet'); збереження поруч із джерелом |
| Галерея деталей товару | Для смужки надає перевагу derivatives.thumb / webpUrl; lightbox використовує оригінал |
| Картки новин / hero / OG | pickImageSrc → card / hero / og; за наявності — розмитий LQIP |
| Аватар | avatarThumb (sync_thumb) має перевагу над оригіналом photoURL |
| Бульбашки зображень у чаті | MessageAttachment.derivatives.thumb має перевагу над оригінальним URL |
| Mint NFT + лістинги | Off-chain Metaplex JSON (image, необов’язковий animation_url, properties.files) |
SSOT-модуль: features/generative-media/. Області: nft | product | cabinet | editor.
generative_gallery / genmedia:).…/alt; Generative Gallery створює або покращує пікселі. Додавання до галереї з research залишається явною дією Use in gallery.{name}-enhanced-… або {name}-enlive-…, тому оригінали залишаються недоторканими.Залежність: Conversation.type проти metadata.kind — tool chats повторно використовують product channel.
Той самий процес: Generative Gallery під час create/mint/list для member.
Той самий процес: поле галереї товару плюс WebConductor Agent Knowledge Research.
Наступний крок: Image/Video chat на панелі деталей і збереження поруч із parentId.
GENERATIVE_CREDIT_*).ring_filebase, щоб завантаження повертали повну карту derivatives.| Іменування | {base}-enhanced-{ts}.{ext} для зображень; {base}-enlive-{ts}.{ext} для відео (base з імені файлу джерела) |
| Батьківський елемент | parentId: genSourceNode.parentId — сусідній файл джерела, а не новий кореневий дамп |
| Pipeline | cabinet.genmedia.sibling_save у scripts/PIPELINES.md |
| Шлях | Роль |
|---|---|
features/generative-media/types.ts | GalleryItem, області nft | product | cabinet | editor, buildGenMediaChatKey → genmedia:scope:entity:page:field |
features/generative-media/billing.ts | Credit-first WalletConductor.spendCredits + журнал generative_usage |
features/generative-media/service.ts | Прихований tool chat, upload, Ghost-write, ходи ImageConductor / video |
features/generative-media/nft-metadata.ts | Metaplex JSON + помічники завантаження |
features/generative-media/parse-product-images.ts | Галерея URL FormData для vendor/admin |
features/generative-media/components/generative-media-field.tsx | Віджет SSOT із вкладками Upload | Generate |
features/generative-media/components/generative-media-editor-fs-modal.tsx | Повноекранна історія + Ghost-write + Use this image |
app/_actions/generative-media.ts | listGenMediaMessagesAction, runGenMediaImageAction, runGhostWriteAction, … |
lib/file/media-asset.ts | SSOT відображення pickImageSrc / pickGalleryDisplayUrl |
features/chat/services/conversation-service.ts | isHiddenToolConversation |
Потрібна сесія — усі server actions generative-media викликають auth(); без автентифікації → Unauthorized.
Область NFT потребує member+ — requireMember = true, коли scope === 'nft'.
Області product / cabinet — автентифікований actor (форма vendor/admin або шлях власника cabinet).
| Дія | Env key | Кредити за замовчуванням |
|---|---|---|
| Ghost-write | GENERATIVE_CREDIT_GHOST_WRITE | 5 |
| Image gen | GENERATIVE_CREDIT_IMAGE | 15 |
| Video gen (ціна є; studio polish TBD) | GENERATIVE_CREDIT_VIDEO | 50 |
Потік: м’яка ідемпотентність за referenceId у generative_usage → перевірка балансу → WalletConductor.spendCredits → рядок журналу.
| Поле | Значення |
|---|---|
type | 'product' |
metadata.kind | 'generative_gallery' |
metadata.hiddenFromInbox | true |
metadata.productId / subject | genmedia:{scope}:{entity}:{page}:{field} |
Чати product-agent магазину також використовують type: 'product' із реальним productId каталогу та без tool kind — вони залишаються видимими у Messages.
Залежність: витрачання кредитів для generative billing.
GENERATIVE_CREDIT_*).ring_filebase, щоб завантаження повертали повну карту derivatives.| Іменування | {base}-enhanced-{ts}.{ext} для зображень; {base}-enlive-{ts}.{ext} для відео (base з імені файлу джерела) |
| Батьківський елемент | parentId: genSourceNode.parentId — сусідній файл джерела, а не новий кореневий дамп |
| Pipeline | cabinet.genmedia.sibling_save у scripts/PIPELINES.md |
| Шлях | Роль |
|---|---|
features/generative-media/types.ts | GalleryItem, області nft | product | cabinet | editor, buildGenMediaChatKey → genmedia:scope:entity:page:field |
features/generative-media/billing.ts | Credit-first WalletConductor.spendCredits + журнал generative_usage |
features/generative-media/service.ts | Прихований tool chat, upload, Ghost-write, ходи ImageConductor / video |
features/generative-media/nft-metadata.ts | Metaplex JSON + помічники завантаження |
features/generative-media/parse-product-images.ts | Галерея URL FormData для vendor/admin |
features/generative-media/components/generative-media-field.tsx | Віджет SSOT із вкладками Upload | Generate |
features/generative-media/components/generative-media-editor-fs-modal.tsx | Повноекранна історія + Ghost-write + Use this image |
app/_actions/generative-media.ts | listGenMediaMessagesAction, runGenMediaImageAction, runGhostWriteAction, … |
lib/file/media-asset.ts | SSOT відображення pickImageSrc / pickGalleryDisplayUrl |
features/chat/services/conversation-service.ts | isHiddenToolConversation |
Потрібна сесія — усі server actions generative-media викликають auth(); без автентифікації → Unauthorized.
Область NFT потребує member+ — requireMember = true, коли scope === 'nft'.
Області product / cabinet — автентифікований actor (форма vendor/admin або шлях власника cabinet).
| Дія | Env key | Кредити за замовчуванням |
|---|---|---|
| Ghost-write | GENERATIVE_CREDIT_GHOST_WRITE | 5 |
| Image gen | GENERATIVE_CREDIT_IMAGE | 15 |
| Video gen (ціна є; studio polish TBD) | GENERATIVE_CREDIT_VIDEO | 50 |
Потік: м’яка ідемпотентність за referenceId у generative_usage → перевірка балансу → WalletConductor.spendCredits → рядок журналу.
| Поле | Значення |
|---|---|
type | 'product' |
metadata.kind | 'generative_gallery' |
metadata.hiddenFromInbox | true |
metadata.productId / subject | genmedia:{scope}:{entity}:{page}:{field} |
Чати product-agent магазину також використовують type: 'product' із реальним productId каталогу та без tool kind — вони залишаються видимими у Messages.
Залежність: витрачання кредитів для generative billing.
GENERATIVE_CREDIT_*).ring_filebase, щоб завантаження повертали повну карту derivatives.| Іменування | {base}-enhanced-{ts}.{ext} для зображень; {base}-enlive-{ts}.{ext} для відео (base з імені файлу джерела) |
| Батьківський елемент | parentId: genSourceNode.parentId — сусідній файл джерела, а не новий кореневий дамп |
| Pipeline | cabinet.genmedia.sibling_save у scripts/PIPELINES.md |
| Шлях | Роль |
|---|---|
features/generative-media/types.ts | GalleryItem, області nft | product | cabinet | editor, buildGenMediaChatKey → genmedia:scope:entity:page:field |
features/generative-media/billing.ts | Credit-first WalletConductor.spendCredits + журнал generative_usage |
features/generative-media/service.ts | Прихований tool chat, upload, Ghost-write, ходи ImageConductor / video |
features/generative-media/nft-metadata.ts | Metaplex JSON + помічники завантаження |
features/generative-media/parse-product-images.ts | Галерея URL FormData для vendor/admin |
features/generative-media/components/generative-media-field.tsx | Віджет SSOT із вкладками Upload | Generate |
features/generative-media/components/generative-media-editor-fs-modal.tsx | Повноекранна історія + Ghost-write + Use this image |
app/_actions/generative-media.ts | listGenMediaMessagesAction, runGenMediaImageAction, runGhostWriteAction, … |
lib/file/media-asset.ts | SSOT відображення pickImageSrc / pickGalleryDisplayUrl |
features/chat/services/conversation-service.ts | isHiddenToolConversation |
Потрібна сесія — усі server actions generative-media викликають auth(); без автентифікації → Unauthorized.
Область NFT потребує member+ — requireMember = true, коли scope === 'nft'.
Області product / cabinet — автентифікований actor (форма vendor/admin або шлях власника cabinet).
| Дія | Env key | Кредити за замовчуванням |
|---|---|---|
| Ghost-write | GENERATIVE_CREDIT_GHOST_WRITE | 5 |
| Image gen | GENERATIVE_CREDIT_IMAGE | 15 |
| Video gen (ціна є; studio polish TBD) | GENERATIVE_CREDIT_VIDEO | 50 |
Потік: м’яка ідемпотентність за referenceId у generative_usage → перевірка балансу → WalletConductor.spendCredits → рядок журналу.
| Поле | Значення |
|---|---|
type | 'product' |
metadata.kind | 'generative_gallery' |
metadata.hiddenFromInbox | true |
metadata.productId / subject | genmedia:{scope}:{entity}:{page}:{field} |
Чати product-agent магазину також використовують type: 'product' із реальним productId каталогу та без tool kind — вони залишаються видимими у Messages.
Залежність: витрачання кредитів для generative billing.