|
|
@@ -407,7 +407,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.composer\', () => ctx.slots.register(\n { name: \'conversation.composer\', select: owner => null },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:119',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:145',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.composer.bar',
|
|
|
@@ -443,7 +443,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.composer.bar\', () => ctx.slots.register(\n { name: \'conversation.composer.bar\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:137',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:163',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.composer.dock',
|
|
|
@@ -501,7 +501,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.composer.dock\', () => ctx.slots.register(\n { name: \'conversation.composer.dock\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:131',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:157',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.details.tool',
|
|
|
@@ -565,7 +565,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.hero.agentPreset\', () => ctx.slots.register(\n { name: \'conversation.hero.agentPreset\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:125',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:151',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.hero.brand.mark',
|
|
|
@@ -591,7 +591,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
occupants: [],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.hero.brand.mark\', () => ctx.slots.register(\n { name: \'conversation.hero.brand.mark\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:123',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:149',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.hero.workspace',
|
|
|
@@ -621,7 +621,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.hero.workspace\', () => ctx.slots.register(\n { name: \'conversation.hero.workspace\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:121',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:147',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.hero.workspace.directoryFlow',
|
|
|
@@ -656,15 +656,16 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
key: 'conversation.input.attachments',
|
|
|
kind: 'single',
|
|
|
scope: 'session-maybe',
|
|
|
- summary: 'Optional draft-image rail and drop target.',
|
|
|
- doc: 'Optional draft-image rail and drop target.',
|
|
|
+ summary: 'Optional draft-attachment rail and drop target.',
|
|
|
+ doc: 'Optional draft-attachment rail and drop target.',
|
|
|
registerOptions: [],
|
|
|
ownerProps: [
|
|
|
- '/** Input state handed to the optional attachment presentation plugin. */\nexport interface ComposerAttachmentsOwnerProps {\n /** Browser-owned draft images in input order. */\n attachments: readonly ComposerAttachment[]\n /** Whether a document-level file drop may add images now. */\n canAcceptDrop: boolean\n /** Add one dropped batch through the composer\'s validation path. */\n onAddImages: (files: readonly File[]) => void\n /** Remove one draft image through the Conversation service. */\n onRemoveImage: (id: DraftAttachmentId) => void\n /** Display-ready limits for the drop invitation. */\n dropLimits?: { readonly count: number; readonly size: string } | undefined\n}',
|
|
|
+ '/** Input state handed to the optional attachment presentation plugin. */\nexport interface ComposerAttachmentsOwnerProps {\n /** Browser-owned draft attachments in input order. */\n attachments: readonly ComposerAttachment[]\n /** Whether a document-level file drop may add attachments now. */\n canAcceptDrop: boolean\n /** Add one dropped batch through the composer\'s validation path. */\n onAddFiles: (files: readonly File[]) => void\n /** Remove one draft attachment through the Conversation service. */\n onRemoveAttachment: (id: DraftAttachmentId) => void\n /** Current per-draft upload states for file-kind attachments. */\n uploads: DraftFileUploads\n /** Restart one failed file upload. */\n onRetryFile: (id: DraftAttachmentId) => void\n /** Display-ready limits for the drop invitation. */\n dropLimits?: { readonly count: number; readonly size: string } | undefined\n}',
|
|
|
],
|
|
|
ownerPropsReferences: [
|
|
|
'ComposerAttachment',
|
|
|
'DraftAttachmentId',
|
|
|
+ 'DraftFileUploads',
|
|
|
],
|
|
|
standardProps: [
|
|
|
'useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>',
|
|
|
@@ -687,7 +688,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.attachments\', () => ctx.slots.register(\n { name: \'conversation.input.attachments\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:139',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:165',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.input.dock',
|
|
|
@@ -747,7 +748,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.dock\', () => ctx.slots.register(\n { name: \'conversation.input.dock\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:127',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:153',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.input.left',
|
|
|
@@ -803,7 +804,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
occupants: [],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.left\', () => ctx.slots.register(\n { name: \'conversation.input.left\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:133',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:159',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.input.model',
|
|
|
@@ -839,7 +840,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.model\', () => ctx.slots.register(\n { name: \'conversation.input.model\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:147',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:173',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.input.overlay',
|
|
|
@@ -893,7 +894,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.overlay\', () => ctx.slots.register(\n { name: \'conversation.input.overlay\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:129',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:155',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.input.plan',
|
|
|
@@ -929,7 +930,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.plan\', () => ctx.slots.register(\n { name: \'conversation.input.plan\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:145',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:171',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.input.right',
|
|
|
@@ -985,7 +986,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
occupants: [],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.right\', () => ctx.slots.register(\n { name: \'conversation.input.right\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:135',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:161',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.message.images',
|
|
|
@@ -995,7 +996,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
doc: 'Renderer for one consecutive group of durable message images. The owner\nsupplies image references, an authorized loader, and alignment. A\nregistration replaces the shipped gallery; without one, images are omitted.',
|
|
|
registerOptions: [],
|
|
|
ownerProps: [
|
|
|
- '/** Message image group handed to the optional attachment presentation plugin. */\nexport interface MessageImagesOwnerProps {\n /** Durable references or submission-echo previews in source order. */\n images: readonly MessageImageSource[]\n /** Session-authorized image URL loader for the durable arm. */\n loadImage: MessageImageLoader\n /** Horizontal placement inside the owning record. */\n align: \'start\' | \'end\'\n}',
|
|
|
+ '/** Message image group handed to the optional attachment presentation plugin. */\nexport interface MessageImagesOwnerProps {\n /** Durable references or submission-echo previews in source order. */\n images: readonly MessageImageSource[]\n /** Session-authorized image URL loader for the durable arm. */\n loadImage: MessageImageLoader\n /** Horizontal placement inside the owning record. */\n align: \'start\' | \'end\'\n /** Force every image into the compact message-attachment tile size. */\n compact?: boolean\n}',
|
|
|
],
|
|
|
ownerPropsReferences: [
|
|
|
'Message',
|
|
|
@@ -1059,7 +1060,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.session\', () => ctx.slots.register(\n { name: \'conversation.session\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:95',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:121',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.session.header',
|
|
|
@@ -1093,7 +1094,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.session.header\', () => ctx.slots.register(\n { name: \'conversation.session.header\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:97',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:123',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.session.header.actions',
|
|
|
@@ -1151,7 +1152,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.session.header.actions\', () => ctx.slots.register(\n { name: \'conversation.session.header.actions\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:105',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:131',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.session.header.lineage',
|
|
|
@@ -1189,7 +1190,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.session.header.lineage\', () => ctx.slots.register(\n { name: \'conversation.session.header.lineage\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:99',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:125',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.session.header.utilities',
|
|
|
@@ -1244,7 +1245,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.session.header.utilities\', () => ctx.slots.register(\n { name: \'conversation.session.header.utilities\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:111',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:137',
|
|
|
},
|
|
|
{
|
|
|
key: 'conversation.trajectory.images',
|
|
|
@@ -1254,7 +1255,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
doc: 'Renderer for one group of durable record images in the Trajectory\nledger. The owner supplies image references, an authorized loader, and\nalignment. A registration replaces the shipped gallery; without one,\nimages are omitted.',
|
|
|
registerOptions: [],
|
|
|
ownerProps: [
|
|
|
- '/** Message image group handed to the optional attachment presentation plugin. */\nexport interface MessageImagesOwnerProps {\n /** Durable references or submission-echo previews in source order. */\n images: readonly MessageImageSource[]\n /** Session-authorized image URL loader for the durable arm. */\n loadImage: MessageImageLoader\n /** Horizontal placement inside the owning record. */\n align: \'start\' | \'end\'\n}',
|
|
|
+ '/** Message image group handed to the optional attachment presentation plugin. */\nexport interface MessageImagesOwnerProps {\n /** Durable references or submission-echo previews in source order. */\n images: readonly MessageImageSource[]\n /** Session-authorized image URL loader for the durable arm. */\n loadImage: MessageImageLoader\n /** Horizontal placement inside the owning record. */\n align: \'start\' | \'end\'\n /** Force every image into the compact message-attachment tile size. */\n compact?: boolean\n}',
|
|
|
],
|
|
|
ownerPropsReferences: [
|
|
|
'Message',
|
|
|
@@ -1342,7 +1343,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
],
|
|
|
replaceRisk: 'none',
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.view\', () => ctx.slots.register(\n { name: \'conversation.view\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
- source: 'packages/client/ui-conversation/src/client/contract/slots.ts:117',
|
|
|
+ source: 'packages/client/ui-conversation/src/client/contract/slots.ts:143',
|
|
|
},
|
|
|
{
|
|
|
key: 'details',
|