diff --git a/lib/entities/ai-action-invocation.ts b/lib/entities/ai-action-invocation.ts index 2aa39dcea6..96aef8fcec 100644 --- a/lib/entities/ai-action-invocation.ts +++ b/lib/entities/ai-action-invocation.ts @@ -12,6 +12,7 @@ export const AiActionOutputFormat = { RichText: 'RichText', Markdown: 'Markdown', PlainText: 'PlainText', + Suggestion: 'Suggestion', } as const export type AiActionOutputFormatType = @@ -30,8 +31,25 @@ export type AiActionInvocationMetadata = { }[] } +export type AiActionMarkdownBlock = { + type: 'MarkdownBlock' + text: string +} + +export type AiActionSuggestionBlock = { + type: 'SuggestionBlock' + format: 'Text' + fieldId: string + original: string + suggested: string + reason?: string + confidence: number +} + +export type AiActionSuggestionContentBlock = AiActionMarkdownBlock | AiActionSuggestionBlock + export interface InvocationResult { - content: string | RichTextDocument + content: string | RichTextDocument | AiActionSuggestionContentBlock[] type: InvocationResultType metadata: AiActionInvocationMetadata } @@ -50,7 +68,7 @@ export type AiActionInvocationProps = { } export type AiActionInvocationType = { - outputFormat: 'RichText' | 'Markdown' | 'PlainText' + outputFormat: AiActionOutputFormatType variables?: Array< | { value: string diff --git a/lib/entities/ai-action.ts b/lib/entities/ai-action.ts index 7014a5e2c3..ffd218a9ca 100644 --- a/lib/entities/ai-action.ts +++ b/lib/entities/ai-action.ts @@ -9,7 +9,7 @@ import { type AiActionInvocation, } from './ai-action-invocation' -export type VariableType = +export type AiActionVariableType = | 'ResourceLink' | 'Text' | 'StandardInput' @@ -18,33 +18,47 @@ export type VariableType = | 'Reference' | 'SmartContext' -export type ReferenceVariableConfiguration = { +export type AiActionReferenceVariableConfiguration = { allowedEntities: Array<'Entry'> } -export type VariableConfiguration = +export type AiActionVariableConfiguration = | { strict: boolean in: Array } - | ReferenceVariableConfiguration + | AiActionReferenceVariableConfiguration -export type Variable = { - configuration?: VariableConfiguration +export type AiActionVariable = { + configuration?: AiActionVariableConfiguration description?: string name?: string - type: VariableType + type: AiActionVariableType id: string } -export type Instruction = { - variables: Array +export const AiActionScope = { + Entry: 'Entry', + EntryField: 'EntryField', +} as const +export type AiActionScopeType = (typeof AiActionScope)[keyof typeof AiActionScope] + +export const AiActionOutputType = { + Transform: 'Transform', + Suggestion: 'Suggestion', +} as const +export type AiActionOutputTypeType = (typeof AiActionOutputType)[keyof typeof AiActionOutputType] + +export type AiActionInstruction = { + variables: Array template: string } -export type Configuration = { +export type AiActionConfiguration = { modelType: string modelTemperature: number + scope?: AiActionScopeType + outputType?: AiActionOutputTypeType } export type AiActionTestCase = @@ -83,8 +97,8 @@ export type AiActionProps = { } name: string description: string - configuration: Configuration - instruction: Instruction + configuration: AiActionConfiguration + instruction: AiActionInstruction testCases?: Array }