feat(core): Add support for building LLM applications (#7235)

This extracts all core and editor changes from #7246 and #7137, so that
we can get these changes merged first.

ADO-1120

[DB Tests](https://github.com/n8n-io/n8n/actions/runs/6379749011)
[E2E Tests](https://github.com/n8n-io/n8n/actions/runs/6379751480)
[Workflow Tests](https://github.com/n8n-io/n8n/actions/runs/6379752828)

---------

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2023-10-02 17:33:43 +02:00
committed by GitHub
parent 04dfcd73be
commit 00a4b8b0c6
93 changed files with 6209 additions and 728 deletions

View File

@@ -1,9 +1,11 @@
import type {
AI_NODE_CREATOR_VIEW,
CREDENTIAL_EDIT_MODAL_KEY,
SignInType,
FAKE_DOOR_FEATURES,
TRIGGER_NODE_CREATOR_VIEW,
REGULAR_NODE_CREATOR_VIEW,
AI_OTHERS_NODE_CREATOR_VIEW,
} from './constants';
import type { IMenuItem } from 'n8n-design-system';
@@ -41,6 +43,7 @@ import type {
IUserSettings,
IN8nUISettings,
BannerName,
INodeExecutionData,
INodeProperties,
} from 'n8n-workflow';
import type { BulkCommand, Undoable } from '@/models/history';
@@ -164,6 +167,22 @@ export interface INodeTranslationHeaders {
};
}
export interface IAiDataContent {
data: INodeExecutionData[] | null;
inOut: 'input' | 'output';
type: NodeConnectionType;
metadata: {
executionTime: number;
startTime: number;
};
}
export interface IAiData {
data: IAiDataContent[];
node: string;
runIndex: number;
}
export interface IStartRunData {
workflowData: IWorkflowData;
startNodes?: string[];
@@ -740,12 +759,24 @@ export type ActionsRecord<T extends SimplifiedNodeType[]> = {
export type SimplifiedNodeType = Pick<
INodeTypeDescription,
'displayName' | 'description' | 'name' | 'group' | 'icon' | 'iconUrl' | 'codex' | 'defaults'
| 'displayName'
| 'description'
| 'name'
| 'group'
| 'icon'
| 'iconUrl'
| 'codex'
| 'defaults'
| 'outputs'
>;
export interface SubcategoryItemProps {
description?: string;
iconType?: string;
icon?: string;
iconProps?: {
color?: string;
};
panelClass?: string;
title?: string;
subcategory?: string;
defaults?: INodeParameters;
@@ -891,7 +922,7 @@ export interface WorkflowsState {
activeWorkflowExecution: IExecutionsSummary | null;
currentWorkflowExecutions: IExecutionsSummary[];
activeExecutionId: string | null;
executingNode: string | null;
executingNode: string[];
executionWaitingForWebhook: boolean;
finishedExecutionsCount: number;
nodeMetadata: NodeMetadataMap;
@@ -939,7 +970,7 @@ export interface IRootState {
endpointWebhook: string;
endpointWebhookTest: string;
executionId: string | null;
executingNode: string | null;
executingNode: string[];
executionWaitingForWebhook: boolean;
pushConnectionActive: boolean;
saveDataErrorExecution: string;
@@ -1013,7 +1044,7 @@ export type NewCredentialsModal = ModalState & {
showAuthSelector?: boolean;
};
export type IRunDataDisplayMode = 'table' | 'json' | 'binary' | 'schema' | 'html';
export type IRunDataDisplayMode = 'table' | 'json' | 'binary' | 'schema' | 'html' | 'ai';
export type NodePanelType = 'input' | 'output';
export interface TargetItem {
@@ -1080,6 +1111,7 @@ export interface UIState {
stateIsDirty: boolean;
lastSelectedNode: string | null;
lastSelectedNodeOutputIndex: number | null;
lastSelectedNodeEndpointUuid: string | null;
nodeViewOffsetPosition: XYPosition;
nodeViewMoveInProgress: boolean;
selectedNodes: INodeUi[];
@@ -1109,12 +1141,17 @@ export type IFakeDoorLocation =
| 'credentialsModal'
| 'workflowShareModal';
export type NodeFilterType = typeof REGULAR_NODE_CREATOR_VIEW | typeof TRIGGER_NODE_CREATOR_VIEW;
export type NodeFilterType =
| typeof REGULAR_NODE_CREATOR_VIEW
| typeof TRIGGER_NODE_CREATOR_VIEW
| typeof AI_NODE_CREATOR_VIEW
| typeof AI_OTHERS_NODE_CREATOR_VIEW;
export type NodeCreatorOpenSource =
| ''
| 'no_trigger_execution_tooltip'
| 'plus_endpoint'
| 'add_input_endpoint'
| 'trigger_placeholder_button'
| 'tab'
| 'node_connection_action'