@alpic80/rivet-core 1.19.1-aidon.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/README.md +176 -0
- package/dist/cjs/bundle.cjs +18915 -0
- package/dist/cjs/bundle.cjs.map +7 -0
- package/dist/esm/api/createProcessor.js +131 -0
- package/dist/esm/api/streaming.js +116 -0
- package/dist/esm/exports.js +32 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/integrations/AudioProvider.js +1 -0
- package/dist/esm/integrations/DatasetProvider.js +92 -0
- package/dist/esm/integrations/EmbeddingGenerator.js +1 -0
- package/dist/esm/integrations/GptTokenizerTokenizer.js +65 -0
- package/dist/esm/integrations/LLMProvider.js +1 -0
- package/dist/esm/integrations/Tokenizer.js +1 -0
- package/dist/esm/integrations/VectorDatabase.js +1 -0
- package/dist/esm/integrations/enableIntegrations.js +3 -0
- package/dist/esm/integrations/integrations.js +19 -0
- package/dist/esm/integrations/openai/OpenAIEmbeddingGenerator.js +23 -0
- package/dist/esm/model/DataValue.js +176 -0
- package/dist/esm/model/Dataset.js +1 -0
- package/dist/esm/model/EditorDefinition.js +1 -0
- package/dist/esm/model/GraphProcessor.js +1198 -0
- package/dist/esm/model/NodeBase.js +1 -0
- package/dist/esm/model/NodeBodySpec.js +1 -0
- package/dist/esm/model/NodeDefinition.js +12 -0
- package/dist/esm/model/NodeGraph.js +14 -0
- package/dist/esm/model/NodeImpl.js +49 -0
- package/dist/esm/model/NodeRegistration.js +144 -0
- package/dist/esm/model/Nodes.js +227 -0
- package/dist/esm/model/PluginLoadSpec.js +1 -0
- package/dist/esm/model/ProcessContext.js +1 -0
- package/dist/esm/model/Project.js +2 -0
- package/dist/esm/model/RivetPlugin.js +1 -0
- package/dist/esm/model/RivetUIContext.js +1 -0
- package/dist/esm/model/Settings.js +1 -0
- package/dist/esm/model/nodes/AbortGraphNode.js +100 -0
- package/dist/esm/model/nodes/AppendToDatasetNode.js +115 -0
- package/dist/esm/model/nodes/ArrayNode.js +144 -0
- package/dist/esm/model/nodes/AssembleMessageNode.js +199 -0
- package/dist/esm/model/nodes/AssemblePromptNode.js +129 -0
- package/dist/esm/model/nodes/AudioNode.js +101 -0
- package/dist/esm/model/nodes/BooleanNode.js +74 -0
- package/dist/esm/model/nodes/CallGraphNode.js +136 -0
- package/dist/esm/model/nodes/ChatNode.js +964 -0
- package/dist/esm/model/nodes/ChunkNode.js +166 -0
- package/dist/esm/model/nodes/CoalesceNode.js +104 -0
- package/dist/esm/model/nodes/CodeNode.js +136 -0
- package/dist/esm/model/nodes/CommentNode.js +69 -0
- package/dist/esm/model/nodes/CompareNode.js +138 -0
- package/dist/esm/model/nodes/ContextNode.js +99 -0
- package/dist/esm/model/nodes/CreateDatasetNode.js +71 -0
- package/dist/esm/model/nodes/DatasetNearestNeigborsNode.js +97 -0
- package/dist/esm/model/nodes/DelayNode.js +105 -0
- package/dist/esm/model/nodes/DelegateFunctionCallNode.js +136 -0
- package/dist/esm/model/nodes/DestructureNode.js +86 -0
- package/dist/esm/model/nodes/EvaluateNode.js +141 -0
- package/dist/esm/model/nodes/ExternalCallNode.js +162 -0
- package/dist/esm/model/nodes/ExtractJsonNode.js +122 -0
- package/dist/esm/model/nodes/ExtractMarkdownCodeBlocksNode.js +100 -0
- package/dist/esm/model/nodes/ExtractObjectPathNode.js +128 -0
- package/dist/esm/model/nodes/ExtractRegexNode.js +201 -0
- package/dist/esm/model/nodes/ExtractYamlNode.js +214 -0
- package/dist/esm/model/nodes/FilterNode.js +73 -0
- package/dist/esm/model/nodes/GetAllDatasetsNode.js +53 -0
- package/dist/esm/model/nodes/GetDatasetRowNode.js +99 -0
- package/dist/esm/model/nodes/GetEmbeddingNode.js +130 -0
- package/dist/esm/model/nodes/GetGlobalNode.js +139 -0
- package/dist/esm/model/nodes/GptFunctionNode.js +169 -0
- package/dist/esm/model/nodes/GraphInputNode.js +130 -0
- package/dist/esm/model/nodes/GraphOutputNode.js +104 -0
- package/dist/esm/model/nodes/GraphReferenceNode.js +128 -0
- package/dist/esm/model/nodes/HashNode.js +97 -0
- package/dist/esm/model/nodes/HttpCallNode.js +257 -0
- package/dist/esm/model/nodes/IfElseNode.js +138 -0
- package/dist/esm/model/nodes/IfNode.js +124 -0
- package/dist/esm/model/nodes/ImageNode.js +107 -0
- package/dist/esm/model/nodes/JoinNode.js +135 -0
- package/dist/esm/model/nodes/ListGraphsNode.js +61 -0
- package/dist/esm/model/nodes/LoadDatasetNode.js +83 -0
- package/dist/esm/model/nodes/LoopControllerNode.js +206 -0
- package/dist/esm/model/nodes/MatchNode.js +137 -0
- package/dist/esm/model/nodes/NumberNode.js +86 -0
- package/dist/esm/model/nodes/ObjectNode.js +121 -0
- package/dist/esm/model/nodes/PassthroughNode.js +78 -0
- package/dist/esm/model/nodes/PlayAudioNode.js +61 -0
- package/dist/esm/model/nodes/PopNode.js +89 -0
- package/dist/esm/model/nodes/PromptNode.js +227 -0
- package/dist/esm/model/nodes/RaceInputsNode.js +86 -0
- package/dist/esm/model/nodes/RaiseEventNode.js +84 -0
- package/dist/esm/model/nodes/RandomNumberNode.js +106 -0
- package/dist/esm/model/nodes/ReadDirectoryNode.js +165 -0
- package/dist/esm/model/nodes/ReadFileNode.js +114 -0
- package/dist/esm/model/nodes/ReplaceDatasetNode.js +118 -0
- package/dist/esm/model/nodes/SetGlobalNode.js +124 -0
- package/dist/esm/model/nodes/ShuffleNode.js +64 -0
- package/dist/esm/model/nodes/SliceNode.js +100 -0
- package/dist/esm/model/nodes/SplitNode.js +101 -0
- package/dist/esm/model/nodes/SubGraphNode.js +181 -0
- package/dist/esm/model/nodes/TextNode.js +97 -0
- package/dist/esm/model/nodes/ToJsonNode.js +78 -0
- package/dist/esm/model/nodes/ToYamlNode.js +68 -0
- package/dist/esm/model/nodes/TrimChatMessagesNode.js +120 -0
- package/dist/esm/model/nodes/URLReferenceNode.js +79 -0
- package/dist/esm/model/nodes/UserInputNode.js +111 -0
- package/dist/esm/model/nodes/VectorNearestNeighborsNode.js +127 -0
- package/dist/esm/model/nodes/VectorStoreNode.js +124 -0
- package/dist/esm/model/nodes/WaitForEventNode.js +88 -0
- package/dist/esm/native/BaseDir.js +32 -0
- package/dist/esm/native/BrowserNativeApi.js +19 -0
- package/dist/esm/native/NativeApi.js +1 -0
- package/dist/esm/plugins/aidon/index.js +2 -0
- package/dist/esm/plugins/aidon/nodes/ChatAidonNode.js +215 -0
- package/dist/esm/plugins/aidon/plugin.js +9 -0
- package/dist/esm/plugins/anthropic/anthropic.js +187 -0
- package/dist/esm/plugins/anthropic/fetchEventSource.js +106 -0
- package/dist/esm/plugins/anthropic/index.js +2 -0
- package/dist/esm/plugins/anthropic/nodes/ChatAnthropicNode.js +652 -0
- package/dist/esm/plugins/anthropic/plugin.js +18 -0
- package/dist/esm/plugins/assemblyAi/LemurActionItemsNode.js +75 -0
- package/dist/esm/plugins/assemblyAi/LemurQaNode.js +155 -0
- package/dist/esm/plugins/assemblyAi/LemurSummaryNode.js +79 -0
- package/dist/esm/plugins/assemblyAi/LemurTaskNode.js +82 -0
- package/dist/esm/plugins/assemblyAi/TranscribeAudioNode.js +125 -0
- package/dist/esm/plugins/assemblyAi/index.js +2 -0
- package/dist/esm/plugins/assemblyAi/lemurHelpers.js +114 -0
- package/dist/esm/plugins/assemblyAi/plugin.js +32 -0
- package/dist/esm/plugins/autoevals/AutoEvalsNode.js +223 -0
- package/dist/esm/plugins/autoevals/index.js +2 -0
- package/dist/esm/plugins/autoevals/plugin.js +8 -0
- package/dist/esm/plugins/gentrace/index.js +2 -0
- package/dist/esm/plugins/gentrace/plugin.js +192 -0
- package/dist/esm/plugins/google/google.js +60 -0
- package/dist/esm/plugins/google/index.js +2 -0
- package/dist/esm/plugins/google/nodes/ChatGoogleNode.js +364 -0
- package/dist/esm/plugins/google/plugin.js +32 -0
- package/dist/esm/plugins/huggingface/index.js +2 -0
- package/dist/esm/plugins/huggingface/nodes/ChatHuggingFace.js +243 -0
- package/dist/esm/plugins/huggingface/nodes/TextToImageHuggingFace.js +189 -0
- package/dist/esm/plugins/huggingface/plugin.js +26 -0
- package/dist/esm/plugins/openai/handleOpenaiError.js +17 -0
- package/dist/esm/plugins/openai/index.js +2 -0
- package/dist/esm/plugins/openai/nodes/AttachAssistantFileNode.js +123 -0
- package/dist/esm/plugins/openai/nodes/CreateAssistantNode.js +289 -0
- package/dist/esm/plugins/openai/nodes/CreateThreadMessageNode.js +176 -0
- package/dist/esm/plugins/openai/nodes/CreateThreadNode.js +157 -0
- package/dist/esm/plugins/openai/nodes/DeleteAssistantNode.js +104 -0
- package/dist/esm/plugins/openai/nodes/DeleteThreadNode.js +97 -0
- package/dist/esm/plugins/openai/nodes/GetAssistantNode.js +118 -0
- package/dist/esm/plugins/openai/nodes/GetOpenAIFileNode.js +100 -0
- package/dist/esm/plugins/openai/nodes/GetThreadNode.js +108 -0
- package/dist/esm/plugins/openai/nodes/ListAssistantsNode.js +202 -0
- package/dist/esm/plugins/openai/nodes/ListOpenAIFilesNode.js +94 -0
- package/dist/esm/plugins/openai/nodes/ListThreadMessagesNode.js +224 -0
- package/dist/esm/plugins/openai/nodes/RunThreadNode.js +630 -0
- package/dist/esm/plugins/openai/nodes/ThreadMessageNode.js +145 -0
- package/dist/esm/plugins/openai/nodes/UploadFileNode.js +121 -0
- package/dist/esm/plugins/openai/plugin.js +44 -0
- package/dist/esm/plugins/pinecone/PineconeVectorDatabase.js +88 -0
- package/dist/esm/plugins/pinecone/index.js +2 -0
- package/dist/esm/plugins/pinecone/plugin.js +19 -0
- package/dist/esm/plugins.js +21 -0
- package/dist/esm/recording/ExecutionRecorder.js +177 -0
- package/dist/esm/recording/RecordedEvents.js +1 -0
- package/dist/esm/utils/assertNever.js +3 -0
- package/dist/esm/utils/base64.js +25 -0
- package/dist/esm/utils/chatMessageToOpenAIChatCompletionMessage.js +60 -0
- package/dist/esm/utils/coerceType.js +322 -0
- package/dist/esm/utils/compatibility.js +27 -0
- package/dist/esm/utils/copyToClipboard.js +10 -0
- package/dist/esm/utils/defaults.js +2 -0
- package/dist/esm/utils/errors.js +7 -0
- package/dist/esm/utils/expectType.js +34 -0
- package/dist/esm/utils/fetchEventSource.js +120 -0
- package/dist/esm/utils/genericUtilFunctions.js +25 -0
- package/dist/esm/utils/getPluginConfig.js +23 -0
- package/dist/esm/utils/handleEscapeCharacters.js +11 -0
- package/dist/esm/utils/index.js +14 -0
- package/dist/esm/utils/inputs.js +16 -0
- package/dist/esm/utils/interpolation.js +6 -0
- package/dist/esm/utils/misc.js +1 -0
- package/dist/esm/utils/newId.js +4 -0
- package/dist/esm/utils/openai.js +219 -0
- package/dist/esm/utils/outputs.js +14 -0
- package/dist/esm/utils/serialization/serialization.js +86 -0
- package/dist/esm/utils/serialization/serializationUtils.js +13 -0
- package/dist/esm/utils/serialization/serialization_v1.js +19 -0
- package/dist/esm/utils/serialization/serialization_v2.js +24 -0
- package/dist/esm/utils/serialization/serialization_v3.js +145 -0
- package/dist/esm/utils/serialization/serialization_v4.js +200 -0
- package/dist/esm/utils/symbols.js +2 -0
- package/dist/esm/utils/time.js +14 -0
- package/dist/esm/utils/typeSafety.js +42 -0
- package/dist/types/api/createProcessor.d.ts +37 -0
- package/dist/types/api/streaming.d.ts +56 -0
- package/dist/types/exports.d.ts +33 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/integrations/AudioProvider.d.ts +4 -0
- package/dist/types/integrations/DatasetProvider.d.ts +33 -0
- package/dist/types/integrations/EmbeddingGenerator.d.ts +3 -0
- package/dist/types/integrations/GptTokenizerTokenizer.d.ts +20 -0
- package/dist/types/integrations/LLMProvider.d.ts +7 -0
- package/dist/types/integrations/Tokenizer.d.ts +11 -0
- package/dist/types/integrations/VectorDatabase.d.ts +7 -0
- package/dist/types/integrations/enableIntegrations.d.ts +1 -0
- package/dist/types/integrations/integrations.d.ts +12 -0
- package/dist/types/integrations/openai/OpenAIEmbeddingGenerator.d.ts +10 -0
- package/dist/types/model/DataValue.d.ts +138 -0
- package/dist/types/model/Dataset.d.ts +19 -0
- package/dist/types/model/EditorDefinition.d.ts +142 -0
- package/dist/types/model/GraphProcessor.d.ts +192 -0
- package/dist/types/model/NodeBase.d.ts +110 -0
- package/dist/types/model/NodeBodySpec.d.ts +19 -0
- package/dist/types/model/NodeDefinition.d.ts +13 -0
- package/dist/types/model/NodeGraph.d.ts +15 -0
- package/dist/types/model/NodeImpl.d.ts +55 -0
- package/dist/types/model/NodeRegistration.d.ts +24 -0
- package/dist/types/model/Nodes.d.ts +84 -0
- package/dist/types/model/PluginLoadSpec.d.ts +17 -0
- package/dist/types/model/ProcessContext.d.ts +69 -0
- package/dist/types/model/Project.d.ts +17 -0
- package/dist/types/model/RivetPlugin.d.ts +45 -0
- package/dist/types/model/RivetUIContext.d.ts +18 -0
- package/dist/types/model/Settings.d.ts +15 -0
- package/dist/types/model/nodes/AbortGraphNode.d.ts +22 -0
- package/dist/types/model/nodes/AppendToDatasetNode.d.ts +21 -0
- package/dist/types/model/nodes/ArrayNode.d.ts +20 -0
- package/dist/types/model/nodes/AssembleMessageNode.d.ts +23 -0
- package/dist/types/model/nodes/AssemblePromptNode.d.ts +20 -0
- package/dist/types/model/nodes/AudioNode.d.ts +20 -0
- package/dist/types/model/nodes/BooleanNode.d.ts +19 -0
- package/dist/types/model/nodes/CallGraphNode.d.ts +16 -0
- package/dist/types/model/nodes/ChatNode.d.ts +77 -0
- package/dist/types/model/nodes/ChunkNode.d.ts +22 -0
- package/dist/types/model/nodes/CoalesceNode.d.ts +14 -0
- package/dist/types/model/nodes/CodeNode.d.ts +21 -0
- package/dist/types/model/nodes/CommentNode.d.ts +20 -0
- package/dist/types/model/nodes/CompareNode.d.ts +19 -0
- package/dist/types/model/nodes/ContextNode.d.ts +24 -0
- package/dist/types/model/nodes/CreateDatasetNode.d.ts +13 -0
- package/dist/types/model/nodes/DatasetNearestNeigborsNode.d.ts +19 -0
- package/dist/types/model/nodes/DelayNode.d.ts +20 -0
- package/dist/types/model/nodes/DelegateFunctionCallNode.d.ts +25 -0
- package/dist/types/model/nodes/DestructureNode.d.ts +18 -0
- package/dist/types/model/nodes/EvaluateNode.d.ts +19 -0
- package/dist/types/model/nodes/ExternalCallNode.d.ts +22 -0
- package/dist/types/model/nodes/ExtractJsonNode.d.ts +13 -0
- package/dist/types/model/nodes/ExtractMarkdownCodeBlocksNode.d.ts +12 -0
- package/dist/types/model/nodes/ExtractObjectPathNode.d.ts +19 -0
- package/dist/types/model/nodes/ExtractRegexNode.d.ts +22 -0
- package/dist/types/model/nodes/ExtractYamlNode.d.ts +21 -0
- package/dist/types/model/nodes/FilterNode.d.ts +13 -0
- package/dist/types/model/nodes/GetAllDatasetsNode.d.ts +14 -0
- package/dist/types/model/nodes/GetDatasetRowNode.d.ts +19 -0
- package/dist/types/model/nodes/GetEmbeddingNode.d.ts +24 -0
- package/dist/types/model/nodes/GetGlobalNode.d.ts +29 -0
- package/dist/types/model/nodes/GptFunctionNode.d.ts +25 -0
- package/dist/types/model/nodes/GraphInputNode.d.ts +24 -0
- package/dist/types/model/nodes/GraphOutputNode.d.ts +22 -0
- package/dist/types/model/nodes/GraphReferenceNode.d.ts +22 -0
- package/dist/types/model/nodes/HashNode.d.ts +17 -0
- package/dist/types/model/nodes/HttpCallNode.d.ts +27 -0
- package/dist/types/model/nodes/IfElseNode.d.ts +18 -0
- package/dist/types/model/nodes/IfNode.d.ts +17 -0
- package/dist/types/model/nodes/ImageNode.d.ts +20 -0
- package/dist/types/model/nodes/JoinNode.d.ts +21 -0
- package/dist/types/model/nodes/ListGraphsNode.d.ts +14 -0
- package/dist/types/model/nodes/LoadDatasetNode.d.ts +17 -0
- package/dist/types/model/nodes/LoopControllerNode.d.ts +20 -0
- package/dist/types/model/nodes/MatchNode.d.ts +19 -0
- package/dist/types/model/nodes/NumberNode.d.ts +21 -0
- package/dist/types/model/nodes/ObjectNode.d.ts +18 -0
- package/dist/types/model/nodes/PassthroughNode.d.ts +14 -0
- package/dist/types/model/nodes/PlayAudioNode.d.ts +15 -0
- package/dist/types/model/nodes/PopNode.d.ts +19 -0
- package/dist/types/model/nodes/PromptNode.d.ts +23 -0
- package/dist/types/model/nodes/RaceInputsNode.d.ts +17 -0
- package/dist/types/model/nodes/RaiseEventNode.d.ts +22 -0
- package/dist/types/model/nodes/RandomNumberNode.d.ts +23 -0
- package/dist/types/model/nodes/ReadDirectoryNode.d.ts +30 -0
- package/dist/types/model/nodes/ReadFileNode.d.ts +23 -0
- package/dist/types/model/nodes/ReplaceDatasetNode.d.ts +21 -0
- package/dist/types/model/nodes/SetGlobalNode.d.ts +23 -0
- package/dist/types/model/nodes/ShuffleNode.d.ts +12 -0
- package/dist/types/model/nodes/SliceNode.d.ts +22 -0
- package/dist/types/model/nodes/SplitNode.d.ts +19 -0
- package/dist/types/model/nodes/SubGraphNode.d.ts +29 -0
- package/dist/types/model/nodes/TextNode.d.ts +18 -0
- package/dist/types/model/nodes/ToJsonNode.d.ts +18 -0
- package/dist/types/model/nodes/ToYamlNode.d.ts +13 -0
- package/dist/types/model/nodes/TrimChatMessagesNode.d.ts +20 -0
- package/dist/types/model/nodes/URLReferenceNode.d.ts +19 -0
- package/dist/types/model/nodes/UserInputNode.d.ts +21 -0
- package/dist/types/model/nodes/VectorNearestNeighborsNode.d.ts +24 -0
- package/dist/types/model/nodes/VectorStoreNode.d.ts +22 -0
- package/dist/types/model/nodes/WaitForEventNode.d.ts +21 -0
- package/dist/types/native/BaseDir.d.ts +29 -0
- package/dist/types/native/BrowserNativeApi.d.ts +11 -0
- package/dist/types/native/NativeApi.d.ts +17 -0
- package/dist/types/plugins/aidon/index.d.ts +2 -0
- package/dist/types/plugins/aidon/nodes/ChatAidonNode.d.ts +3 -0
- package/dist/types/plugins/aidon/plugin.d.ts +2 -0
- package/dist/types/plugins/anthropic/anthropic.d.ts +216 -0
- package/dist/types/plugins/anthropic/fetchEventSource.d.ts +11 -0
- package/dist/types/plugins/anthropic/index.d.ts +2 -0
- package/dist/types/plugins/anthropic/nodes/ChatAnthropicNode.d.ts +30 -0
- package/dist/types/plugins/anthropic/plugin.d.ts +2 -0
- package/dist/types/plugins/assemblyAi/LemurActionItemsNode.d.ts +6 -0
- package/dist/types/plugins/assemblyAi/LemurQaNode.d.ts +22 -0
- package/dist/types/plugins/assemblyAi/LemurSummaryNode.d.ts +8 -0
- package/dist/types/plugins/assemblyAi/LemurTaskNode.d.ts +8 -0
- package/dist/types/plugins/assemblyAi/TranscribeAudioNode.d.ts +7 -0
- package/dist/types/plugins/assemblyAi/index.d.ts +2 -0
- package/dist/types/plugins/assemblyAi/lemurHelpers.d.ts +67 -0
- package/dist/types/plugins/assemblyAi/plugin.d.ts +2 -0
- package/dist/types/plugins/autoevals/AutoEvalsNode.d.ts +8 -0
- package/dist/types/plugins/autoevals/index.d.ts +2 -0
- package/dist/types/plugins/autoevals/plugin.d.ts +2 -0
- package/dist/types/plugins/gentrace/index.d.ts +2 -0
- package/dist/types/plugins/gentrace/plugin.d.ts +5 -0
- package/dist/types/plugins/google/google.d.ts +60 -0
- package/dist/types/plugins/google/index.d.ts +2 -0
- package/dist/types/plugins/google/nodes/ChatGoogleNode.d.ts +27 -0
- package/dist/types/plugins/google/plugin.d.ts +2 -0
- package/dist/types/plugins/huggingface/index.d.ts +2 -0
- package/dist/types/plugins/huggingface/nodes/ChatHuggingFace.d.ts +24 -0
- package/dist/types/plugins/huggingface/nodes/TextToImageHuggingFace.d.ts +20 -0
- package/dist/types/plugins/huggingface/plugin.d.ts +2 -0
- package/dist/types/plugins/openai/handleOpenaiError.d.ts +1 -0
- package/dist/types/plugins/openai/index.d.ts +2 -0
- package/dist/types/plugins/openai/nodes/AttachAssistantFileNode.d.ts +10 -0
- package/dist/types/plugins/openai/nodes/CreateAssistantNode.d.ts +26 -0
- package/dist/types/plugins/openai/nodes/CreateThreadMessageNode.d.ts +15 -0
- package/dist/types/plugins/openai/nodes/CreateThreadNode.d.ts +13 -0
- package/dist/types/plugins/openai/nodes/DeleteAssistantNode.d.ts +8 -0
- package/dist/types/plugins/openai/nodes/DeleteThreadNode.d.ts +8 -0
- package/dist/types/plugins/openai/nodes/GetAssistantNode.d.ts +8 -0
- package/dist/types/plugins/openai/nodes/GetOpenAIFileNode.d.ts +8 -0
- package/dist/types/plugins/openai/nodes/GetThreadNode.d.ts +8 -0
- package/dist/types/plugins/openai/nodes/ListAssistantsNode.d.ts +14 -0
- package/dist/types/plugins/openai/nodes/ListOpenAIFilesNode.d.ts +8 -0
- package/dist/types/plugins/openai/nodes/ListThreadMessagesNode.d.ts +16 -0
- package/dist/types/plugins/openai/nodes/RunThreadNode.d.ts +28 -0
- package/dist/types/plugins/openai/nodes/ThreadMessageNode.d.ts +14 -0
- package/dist/types/plugins/openai/nodes/UploadFileNode.d.ts +7 -0
- package/dist/types/plugins/openai/plugin.d.ts +2 -0
- package/dist/types/plugins/pinecone/PineconeVectorDatabase.d.ts +9 -0
- package/dist/types/plugins/pinecone/index.d.ts +2 -0
- package/dist/types/plugins/pinecone/plugin.d.ts +2 -0
- package/dist/types/plugins.d.ts +20 -0
- package/dist/types/recording/ExecutionRecorder.d.ts +25 -0
- package/dist/types/recording/RecordedEvents.d.ts +100 -0
- package/dist/types/utils/assertNever.d.ts +1 -0
- package/dist/types/utils/base64.d.ts +2 -0
- package/dist/types/utils/chatMessageToOpenAIChatCompletionMessage.d.ts +3 -0
- package/dist/types/utils/coerceType.d.ts +6 -0
- package/dist/types/utils/compatibility.d.ts +3 -0
- package/dist/types/utils/copyToClipboard.d.ts +1 -0
- package/dist/types/utils/defaults.d.ts +2 -0
- package/dist/types/utils/errors.d.ts +2 -0
- package/dist/types/utils/expectType.d.ts +3 -0
- package/dist/types/utils/fetchEventSource.d.ts +12 -0
- package/dist/types/utils/genericUtilFunctions.d.ts +21 -0
- package/dist/types/utils/getPluginConfig.d.ts +2 -0
- package/dist/types/utils/handleEscapeCharacters.d.ts +2 -0
- package/dist/types/utils/index.d.ts +14 -0
- package/dist/types/utils/inputs.d.ts +3 -0
- package/dist/types/utils/interpolation.d.ts +1 -0
- package/dist/types/utils/misc.d.ts +1 -0
- package/dist/types/utils/newId.d.ts +1 -0
- package/dist/types/utils/openai.d.ts +739 -0
- package/dist/types/utils/outputs.d.ts +3 -0
- package/dist/types/utils/serialization/serialization.d.ts +12 -0
- package/dist/types/utils/serialization/serializationUtils.d.ts +6 -0
- package/dist/types/utils/serialization/serialization_v1.d.ts +3 -0
- package/dist/types/utils/serialization/serialization_v2.d.ts +3 -0
- package/dist/types/utils/serialization/serialization_v3.d.ts +19 -0
- package/dist/types/utils/serialization/serialization_v4.d.ts +9 -0
- package/dist/types/utils/symbols.d.ts +3 -0
- package/dist/types/utils/time.d.ts +22 -0
- package/dist/types/utils/typeSafety.d.ts +37 -0
- package/package.json +97 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { GraphId } from '../index.js';
|
|
2
|
+
import type { DataId } from './Project.js';
|
|
3
|
+
export type DataValueDef<Type extends string, RuntimeType> = {
|
|
4
|
+
type: Type;
|
|
5
|
+
value: RuntimeType;
|
|
6
|
+
};
|
|
7
|
+
export type StringDataValue = DataValueDef<'string', string>;
|
|
8
|
+
export type NumberDataValue = DataValueDef<'number', number>;
|
|
9
|
+
export type BoolDataValue = DataValueDef<'boolean', boolean>;
|
|
10
|
+
export type SystemChatMessage = {
|
|
11
|
+
type: 'system';
|
|
12
|
+
message: ChatMessageMessagePart | ChatMessageMessagePart[];
|
|
13
|
+
};
|
|
14
|
+
export type UserChatMessage = {
|
|
15
|
+
type: 'user';
|
|
16
|
+
message: ChatMessageMessagePart | ChatMessageMessagePart[];
|
|
17
|
+
};
|
|
18
|
+
export type AssistantChatMessageFunctionCall = {
|
|
19
|
+
id: string | undefined;
|
|
20
|
+
name: string;
|
|
21
|
+
arguments: string;
|
|
22
|
+
};
|
|
23
|
+
export type ParsedAssistantChatMessageFunctionCall = {
|
|
24
|
+
id: string | undefined;
|
|
25
|
+
name: string;
|
|
26
|
+
arguments: Record<string, unknown>;
|
|
27
|
+
};
|
|
28
|
+
export type AssistantChatMessage = {
|
|
29
|
+
type: 'assistant';
|
|
30
|
+
message: ChatMessageMessagePart | ChatMessageMessagePart[];
|
|
31
|
+
/** @deprecated use function_calls instead */
|
|
32
|
+
function_call: AssistantChatMessageFunctionCall | undefined;
|
|
33
|
+
function_calls: AssistantChatMessageFunctionCall[] | undefined;
|
|
34
|
+
};
|
|
35
|
+
export type FunctionResponseChatMessage = {
|
|
36
|
+
type: 'function';
|
|
37
|
+
message: ChatMessageMessagePart | ChatMessageMessagePart[];
|
|
38
|
+
name: string;
|
|
39
|
+
};
|
|
40
|
+
export type ChatMessage = SystemChatMessage | UserChatMessage | AssistantChatMessage | FunctionResponseChatMessage;
|
|
41
|
+
export type ChatMessageMessagePart = string | {
|
|
42
|
+
type: 'image';
|
|
43
|
+
mediaType: SupportedMediaTypes;
|
|
44
|
+
data: Uint8Array;
|
|
45
|
+
} | {
|
|
46
|
+
type: 'url';
|
|
47
|
+
url: string;
|
|
48
|
+
};
|
|
49
|
+
export type SupportedMediaTypes = 'image/jpeg' | 'image/png' | 'image/gif';
|
|
50
|
+
export type ChatMessageDataValue = DataValueDef<'chat-message', ChatMessage>;
|
|
51
|
+
export type DateDataValue = DataValueDef<'date', string>;
|
|
52
|
+
export type TimeDataValue = DataValueDef<'time', string>;
|
|
53
|
+
export type DateTimeDataValue = DataValueDef<'datetime', string>;
|
|
54
|
+
export type AnyDataValue = DataValueDef<'any', unknown>;
|
|
55
|
+
export type ObjectDataValue = DataValueDef<'object', Record<string, unknown>>;
|
|
56
|
+
export type VectorDataValue = DataValueDef<'vector', number[]>;
|
|
57
|
+
export type BinaryDataValue = DataValueDef<'binary', Uint8Array>;
|
|
58
|
+
export type ImageDataValue = DataValueDef<'image', {
|
|
59
|
+
mediaType: SupportedMediaTypes;
|
|
60
|
+
data: Uint8Array;
|
|
61
|
+
}>;
|
|
62
|
+
export type AudioDataValue = DataValueDef<'audio', {
|
|
63
|
+
mediaType?: string;
|
|
64
|
+
data: Uint8Array;
|
|
65
|
+
}>;
|
|
66
|
+
export type GraphReferenceValue = DataValueDef<'graph-reference', {
|
|
67
|
+
graphId: GraphId;
|
|
68
|
+
graphName: string;
|
|
69
|
+
}>;
|
|
70
|
+
/** GPT function definition */
|
|
71
|
+
export type GptFunction = {
|
|
72
|
+
name: string;
|
|
73
|
+
namespace?: string;
|
|
74
|
+
description: string;
|
|
75
|
+
parameters: object;
|
|
76
|
+
strict: boolean;
|
|
77
|
+
};
|
|
78
|
+
export type GptFunctionDataValue = DataValueDef<'gpt-function', GptFunction>;
|
|
79
|
+
export type ControlFlowExcludedDataValue = DataValueDef<'control-flow-excluded', undefined | 'loop-not-broken'>;
|
|
80
|
+
export type ScalarDataValue = StringDataValue | NumberDataValue | DateDataValue | TimeDataValue | DateTimeDataValue | BoolDataValue | ChatMessageDataValue | ControlFlowExcludedDataValue | AnyDataValue | ObjectDataValue | GptFunctionDataValue | VectorDataValue | ImageDataValue | BinaryDataValue | AudioDataValue | GraphReferenceValue;
|
|
81
|
+
export type ScalarType = ScalarDataValue['type'];
|
|
82
|
+
export type ArrayDataValue<T extends ScalarDataValue> = DataValueDef<`${T['type']}[]`, T['value'][]>;
|
|
83
|
+
export type FunctionDataValue<T extends ScalarOrArrayDataValue> = DataValueDef<`fn<${T['type']}>`, () => T['value']>;
|
|
84
|
+
export type StringArrayDataValue = ArrayDataValue<StringDataValue>;
|
|
85
|
+
export type ArrayDataValues = {
|
|
86
|
+
[P in ScalarDataValue['type']]: ArrayDataValue<Extract<ScalarDataValue, {
|
|
87
|
+
type: P;
|
|
88
|
+
}>>;
|
|
89
|
+
}[ScalarDataValue['type']];
|
|
90
|
+
export type ScalarOrArrayDataValue = ScalarDataValue | ArrayDataValues;
|
|
91
|
+
export type FunctionDataValues = {
|
|
92
|
+
[P in ScalarOrArrayDataValue['type']]: FunctionDataValue<Extract<ScalarOrArrayDataValue, {
|
|
93
|
+
type: P;
|
|
94
|
+
}>>;
|
|
95
|
+
}[ScalarOrArrayDataValue['type']];
|
|
96
|
+
export type DataValue = ScalarDataValue | ArrayDataValues | FunctionDataValues;
|
|
97
|
+
export type DataType = DataValue['type'];
|
|
98
|
+
export type ScalarDataType = ScalarDataValue['type'];
|
|
99
|
+
export type ArrayDataType = ArrayDataValues['type'];
|
|
100
|
+
export type FunctionDataType = FunctionDataValues['type'];
|
|
101
|
+
export type ScalarOrArrayDataType = ScalarOrArrayDataValue['type'];
|
|
102
|
+
export type GetDataValue<Type extends DataType> = Extract<DataValue, {
|
|
103
|
+
type: Type;
|
|
104
|
+
}>;
|
|
105
|
+
/** A reference to large data stored outside the graphs themselves. */
|
|
106
|
+
export type DataRef = {
|
|
107
|
+
refId: DataId;
|
|
108
|
+
};
|
|
109
|
+
export declare const dataTypes: ["any", "any[]", "boolean", "boolean[]", "string", "string[]", "number", "number[]", "date", "date[]", "time", "time[]", "datetime", "datetime[]", "chat-message", "chat-message[]", "control-flow-excluded", "control-flow-excluded[]", "object", "object[]", "fn<string>", "fn<number>", "fn<boolean>", "fn<date>", "fn<time>", "fn<datetime>", "fn<any>", "fn<object>", "fn<chat-message>", "fn<control-flow-excluded>", "fn<string[]>", "fn<number[]>", "fn<boolean[]>", "fn<date[]>", "fn<time[]>", "fn<datetime[]>", "fn<any[]>", "fn<object[]>", "fn<chat-message[]>", "fn<control-flow-excluded[]>", "gpt-function", "gpt-function[]", "fn<gpt-function[]>", "fn<gpt-function>", "vector", "vector[]", "fn<vector>", "fn<vector[]>", "image", "image[]", "fn<image>", "fn<image[]>", "binary", "binary[]", "fn<binary>", "fn<binary[]>", "audio", "audio[]", "fn<audio>", "fn<audio[]>", "graph-reference", "graph-reference[]", "fn<graph-reference>", "fn<graph-reference[]>"];
|
|
110
|
+
export declare const scalarTypes: ["any", "boolean", "string", "number", "date", "time", "datetime", "chat-message", "control-flow-excluded", "object", "gpt-function", "vector", "image", "binary", "audio", "graph-reference"];
|
|
111
|
+
export declare const dataTypeDisplayNames: Record<DataType, string>;
|
|
112
|
+
export declare function isScalarDataValue(value: DataValue | undefined): value is ScalarDataValue;
|
|
113
|
+
export declare function isScalarDataType(type: DataType): type is ScalarDataType;
|
|
114
|
+
export declare function isArrayDataValue(value: DataValue | undefined): value is ArrayDataValues;
|
|
115
|
+
export declare function isArrayDataType(type: DataType): type is ArrayDataType;
|
|
116
|
+
export declare function isFunctionDataType(type: DataType): type is FunctionDataType;
|
|
117
|
+
export declare function isFunctionDataValue(value: DataValue | undefined): value is FunctionDataValues;
|
|
118
|
+
export declare function isNotFunctionDataValue(value: DataValue | undefined): value is ScalarOrArrayDataValue;
|
|
119
|
+
export declare function functionTypeToScalarType(functionType: FunctionDataType): ScalarDataType;
|
|
120
|
+
export declare function arrayTypeToScalarType(arrayType: ArrayDataType): ScalarDataType;
|
|
121
|
+
export declare function getScalarTypeOf(type: DataType): ScalarDataType;
|
|
122
|
+
/** Unwraps a potentially function data value to a concrete value. I.e., evaluates on-demand values. */
|
|
123
|
+
export declare function unwrapDataValue(value: DataValue): ScalarOrArrayDataValue;
|
|
124
|
+
/**
|
|
125
|
+
* Turns a { type: 'string[]', value: string[] } into { type: 'string', value: string }[]
|
|
126
|
+
* or a { type: 'object', value: something[] } into { type: 'object', value: something }[]
|
|
127
|
+
* or a { type: 'any', value: something[] } into { type: 'any', value: something }[]
|
|
128
|
+
* or a { type: 'string', value: string } into [{ type: 'string', value: string }]
|
|
129
|
+
*/
|
|
130
|
+
export declare const arrayizeDataValue: (value: ScalarOrArrayDataValue) => ScalarDataValue[];
|
|
131
|
+
export declare const scalarDefaults: {
|
|
132
|
+
[P in ScalarDataType]: Extract<ScalarDataValue, {
|
|
133
|
+
type: P;
|
|
134
|
+
}>['value'];
|
|
135
|
+
};
|
|
136
|
+
export declare function getDefaultValue<T extends DataType>(type: T): (DataValue & {
|
|
137
|
+
type: T;
|
|
138
|
+
})['value'];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Opaque } from 'type-fest';
|
|
2
|
+
import type { ProjectId } from '../index.js';
|
|
3
|
+
export type DatasetId = Opaque<string, 'DatasetId'>;
|
|
4
|
+
export type DatasetMetadata = {
|
|
5
|
+
id: DatasetId;
|
|
6
|
+
projectId: ProjectId;
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
export type Dataset = {
|
|
11
|
+
id: DatasetId;
|
|
12
|
+
rows: DatasetRow[];
|
|
13
|
+
};
|
|
14
|
+
export type DatasetRow = {
|
|
15
|
+
id: string;
|
|
16
|
+
data: string[];
|
|
17
|
+
/** An optional embedding for the row's data. */
|
|
18
|
+
embedding?: number[];
|
|
19
|
+
};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { type ChartNode, type DataRef, type DataType, type DataValue, type DatasetId } from '../index.js';
|
|
2
|
+
type ExcludeNeverValues<T> = Pick<T, {
|
|
3
|
+
[K in keyof T]: T[K] extends never ? never : K;
|
|
4
|
+
}[keyof T]>;
|
|
5
|
+
type DataOfType<T extends ChartNode, Type> = keyof ExcludeNeverValues<{
|
|
6
|
+
[P in keyof T['data']]-?: NonNullable<T['data'][P]> extends Type ? T['data'][P] : never;
|
|
7
|
+
}>;
|
|
8
|
+
export type SharedEditorDefinitionProps<T extends ChartNode> = {
|
|
9
|
+
label: string;
|
|
10
|
+
helperMessage?: string | ((data: T['data']) => string | undefined);
|
|
11
|
+
autoFocus?: boolean;
|
|
12
|
+
hideIf?: (data: T['data']) => boolean;
|
|
13
|
+
disableIf?: (data: T['data']) => boolean;
|
|
14
|
+
};
|
|
15
|
+
export type StringEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
16
|
+
type: 'string';
|
|
17
|
+
dataKey: DataOfType<T, string>;
|
|
18
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
maxLength?: number;
|
|
21
|
+
};
|
|
22
|
+
export type ToggleEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
23
|
+
type: 'toggle';
|
|
24
|
+
dataKey: DataOfType<T, boolean>;
|
|
25
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
26
|
+
};
|
|
27
|
+
export type DataTypeSelectorEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
28
|
+
type: 'dataTypeSelector';
|
|
29
|
+
dataKey: DataOfType<T, DataType>;
|
|
30
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
31
|
+
};
|
|
32
|
+
export type DatasetSelectorEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
33
|
+
type: 'datasetSelector';
|
|
34
|
+
dataKey: DataOfType<T, DatasetId>;
|
|
35
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
36
|
+
};
|
|
37
|
+
export type AnyDataEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
38
|
+
type: 'anyData';
|
|
39
|
+
dataKey: DataOfType<T, any>;
|
|
40
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
41
|
+
};
|
|
42
|
+
export type DropdownEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
43
|
+
type: 'dropdown';
|
|
44
|
+
dataKey: DataOfType<T, string>;
|
|
45
|
+
options: {
|
|
46
|
+
value: string;
|
|
47
|
+
label: string;
|
|
48
|
+
}[];
|
|
49
|
+
defaultValue?: string;
|
|
50
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
51
|
+
};
|
|
52
|
+
export type GraphSelectorEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
53
|
+
type: 'graphSelector';
|
|
54
|
+
dataKey: DataOfType<T, string>;
|
|
55
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
56
|
+
};
|
|
57
|
+
export type NumberEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
58
|
+
type: 'number';
|
|
59
|
+
defaultValue?: number;
|
|
60
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
61
|
+
min?: number;
|
|
62
|
+
max?: number;
|
|
63
|
+
step?: number;
|
|
64
|
+
} & ({
|
|
65
|
+
dataKey: DataOfType<T, number>;
|
|
66
|
+
allowEmpty?: false;
|
|
67
|
+
} | {
|
|
68
|
+
dataKey: DataOfType<T, number | undefined>;
|
|
69
|
+
allowEmpty: true;
|
|
70
|
+
});
|
|
71
|
+
export type CodeEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
72
|
+
type: 'code';
|
|
73
|
+
dataKey: DataOfType<T, string>;
|
|
74
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
75
|
+
language: string;
|
|
76
|
+
theme?: string;
|
|
77
|
+
height?: number;
|
|
78
|
+
};
|
|
79
|
+
export type ColorEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
80
|
+
type: 'color';
|
|
81
|
+
dataKey: DataOfType<T, string>;
|
|
82
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
83
|
+
};
|
|
84
|
+
export type FilePathBrowserEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
85
|
+
type: 'filePathBrowser';
|
|
86
|
+
dataKey: DataOfType<T, string>;
|
|
87
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
88
|
+
accept?: string;
|
|
89
|
+
};
|
|
90
|
+
export type FileBrowserEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
91
|
+
type: 'fileBrowser';
|
|
92
|
+
dataKey: DataOfType<T, DataRef>;
|
|
93
|
+
mediaTypeDataKey: DataOfType<T, string>;
|
|
94
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
95
|
+
accept?: string;
|
|
96
|
+
};
|
|
97
|
+
export type ImageBrowserEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
98
|
+
type: 'imageBrowser';
|
|
99
|
+
dataKey: DataOfType<T, DataRef>;
|
|
100
|
+
mediaTypeDataKey: DataOfType<T, string>;
|
|
101
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
102
|
+
};
|
|
103
|
+
export type KeyValuePairEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
104
|
+
type: 'keyValuePair';
|
|
105
|
+
dataKey: DataOfType<T, {
|
|
106
|
+
key: string;
|
|
107
|
+
value: string;
|
|
108
|
+
}[]>;
|
|
109
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
110
|
+
keyPlaceholder?: string;
|
|
111
|
+
valuePlaceholder?: string;
|
|
112
|
+
valuesSecret?: boolean;
|
|
113
|
+
};
|
|
114
|
+
export type StringListEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
115
|
+
type: 'stringList';
|
|
116
|
+
dataKey: DataOfType<T, string[] | string>;
|
|
117
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
118
|
+
placeholder?: string;
|
|
119
|
+
};
|
|
120
|
+
export type EditorDefinitionGroup<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
121
|
+
type: 'group';
|
|
122
|
+
defaultOpen?: boolean;
|
|
123
|
+
editors: EditorDefinition<T>[];
|
|
124
|
+
};
|
|
125
|
+
export type CustomEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
126
|
+
type: 'custom';
|
|
127
|
+
customEditorId: string;
|
|
128
|
+
dataKey?: DataOfType<T, any>;
|
|
129
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
130
|
+
data?: any;
|
|
131
|
+
};
|
|
132
|
+
export type DynamicEditorEditor = EditorDefinition<any>['type'] | 'none' | 'auto';
|
|
133
|
+
export type DynamicEditorDefinition<T extends ChartNode> = SharedEditorDefinitionProps<T> & {
|
|
134
|
+
type: 'dynamic';
|
|
135
|
+
dataKey: DataOfType<T, Record<string, DataValue>>;
|
|
136
|
+
dynamicDataKey: string;
|
|
137
|
+
useInputToggleDataKey?: DataOfType<T, boolean>;
|
|
138
|
+
dataType: DataType;
|
|
139
|
+
editor: DynamicEditorEditor;
|
|
140
|
+
};
|
|
141
|
+
export type EditorDefinition<T extends ChartNode> = StringEditorDefinition<T> | ToggleEditorDefinition<T> | DataTypeSelectorEditorDefinition<T> | AnyDataEditorDefinition<T> | DropdownEditorDefinition<T> | NumberEditorDefinition<T> | CodeEditorDefinition<T> | GraphSelectorEditorDefinition<T> | ColorEditorDefinition<T> | GraphSelectorEditorDefinition<T> | FileBrowserEditorDefinition<T> | ImageBrowserEditorDefinition<T> | DatasetSelectorEditorDefinition<T> | KeyValuePairEditorDefinition<T> | EditorDefinitionGroup<T> | StringListEditorDefinition<T> | CustomEditorDefinition<T> | DynamicEditorDefinition<T> | FilePathBrowserEditorDefinition<T>;
|
|
142
|
+
export {};
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { type DataValue, type StringArrayDataValue, type ScalarOrArrayDataValue } from './DataValue.js';
|
|
2
|
+
import type { ChartNode, NodeConnection, NodeId, PortId } from './NodeBase.js';
|
|
3
|
+
import type { GraphId, NodeGraph } from './NodeGraph.js';
|
|
4
|
+
import type { UserInputNode } from './nodes/UserInputNode.js';
|
|
5
|
+
import Emittery from 'emittery';
|
|
6
|
+
import type { Project } from './Project.js';
|
|
7
|
+
import type { InternalProcessContext, ProcessContext, ProcessId } from './ProcessContext.js';
|
|
8
|
+
import type { ExecutionRecorder } from '../recording/ExecutionRecorder.js';
|
|
9
|
+
import type { Opaque } from 'type-fest';
|
|
10
|
+
import type { NodeRegistration } from './NodeRegistration.js';
|
|
11
|
+
export type ProcessEvents = {
|
|
12
|
+
/** Called when processing has started. */
|
|
13
|
+
start: {
|
|
14
|
+
project: Project;
|
|
15
|
+
startGraph: NodeGraph;
|
|
16
|
+
inputs: GraphInputs;
|
|
17
|
+
contextValues: Record<string, DataValue>;
|
|
18
|
+
};
|
|
19
|
+
/** Called when a graph or subgraph has started. */
|
|
20
|
+
graphStart: {
|
|
21
|
+
graph: NodeGraph;
|
|
22
|
+
inputs: GraphInputs;
|
|
23
|
+
};
|
|
24
|
+
/** Called when a graph or subgraph has errored. */
|
|
25
|
+
graphError: {
|
|
26
|
+
graph: NodeGraph;
|
|
27
|
+
error: Error | string;
|
|
28
|
+
};
|
|
29
|
+
/** Called when a graph or a subgraph has finished. */
|
|
30
|
+
graphFinish: {
|
|
31
|
+
graph: NodeGraph;
|
|
32
|
+
outputs: GraphOutputs;
|
|
33
|
+
};
|
|
34
|
+
/** Called when a graph has been aborted. */
|
|
35
|
+
graphAbort: {
|
|
36
|
+
successful: boolean;
|
|
37
|
+
graph: NodeGraph;
|
|
38
|
+
error?: Error | string;
|
|
39
|
+
};
|
|
40
|
+
/** Called when a node has started processing, with the input values for the node. */
|
|
41
|
+
nodeStart: {
|
|
42
|
+
node: ChartNode;
|
|
43
|
+
inputs: Inputs;
|
|
44
|
+
processId: ProcessId;
|
|
45
|
+
};
|
|
46
|
+
/** Called when a node has finished processing, with the output values for the node. */
|
|
47
|
+
nodeFinish: {
|
|
48
|
+
node: ChartNode;
|
|
49
|
+
outputs: Outputs;
|
|
50
|
+
processId: ProcessId;
|
|
51
|
+
};
|
|
52
|
+
/** Called when a node has errored during processing. */
|
|
53
|
+
nodeError: {
|
|
54
|
+
node: ChartNode;
|
|
55
|
+
error: Error | string;
|
|
56
|
+
processId: ProcessId;
|
|
57
|
+
};
|
|
58
|
+
/** Called when a node has been excluded from processing. */
|
|
59
|
+
nodeExcluded: {
|
|
60
|
+
node: ChartNode;
|
|
61
|
+
processId: ProcessId;
|
|
62
|
+
inputs: Inputs;
|
|
63
|
+
outputs: Outputs;
|
|
64
|
+
reason: string;
|
|
65
|
+
};
|
|
66
|
+
/** Called when a user input node requires user input. Call the callback when finished, or call userInput() on the GraphProcessor with the results. */
|
|
67
|
+
userInput: {
|
|
68
|
+
node: UserInputNode;
|
|
69
|
+
inputs: Inputs;
|
|
70
|
+
callback: (values: StringArrayDataValue) => void;
|
|
71
|
+
processId: ProcessId;
|
|
72
|
+
};
|
|
73
|
+
/** Called when a node has partially processed, with the current partial output values for the node. */
|
|
74
|
+
partialOutput: {
|
|
75
|
+
node: ChartNode;
|
|
76
|
+
outputs: Outputs;
|
|
77
|
+
index: number;
|
|
78
|
+
processId: ProcessId;
|
|
79
|
+
};
|
|
80
|
+
/** Called when the outputs of a node have been cleared entirely. If processId is present, only the one process() should be cleared. */
|
|
81
|
+
nodeOutputsCleared: {
|
|
82
|
+
node: ChartNode;
|
|
83
|
+
processId?: ProcessId;
|
|
84
|
+
};
|
|
85
|
+
/** Called when the root graph has errored. The root graph will also throw. */
|
|
86
|
+
error: {
|
|
87
|
+
error: Error | string;
|
|
88
|
+
};
|
|
89
|
+
/** Called when processing has completed. */
|
|
90
|
+
done: {
|
|
91
|
+
results: GraphOutputs;
|
|
92
|
+
};
|
|
93
|
+
/** Called when processing has been aborted. */
|
|
94
|
+
abort: {
|
|
95
|
+
successful: boolean;
|
|
96
|
+
error?: string | Error;
|
|
97
|
+
};
|
|
98
|
+
/** Called when processing has finished either successfully or unsuccessfully. */
|
|
99
|
+
finish: void;
|
|
100
|
+
/** Called for trace level logs. */
|
|
101
|
+
trace: string;
|
|
102
|
+
/** Called when the graph has been paused. */
|
|
103
|
+
pause: void;
|
|
104
|
+
/** Called when the graph has been resumed. */
|
|
105
|
+
resume: void;
|
|
106
|
+
/** Called when a global variable has been set in a graph. */
|
|
107
|
+
globalSet: {
|
|
108
|
+
id: string;
|
|
109
|
+
value: ScalarOrArrayDataValue;
|
|
110
|
+
processId: ProcessId;
|
|
111
|
+
};
|
|
112
|
+
/** Called when an AbortController has been created. Used by node to increase the max event listeners. */
|
|
113
|
+
newAbortController: AbortController;
|
|
114
|
+
} & {
|
|
115
|
+
/** Listen for any user event. */
|
|
116
|
+
[key: `userEvent:${string}`]: DataValue | undefined;
|
|
117
|
+
} & {
|
|
118
|
+
[key: `globalSet:${string}`]: ScalarOrArrayDataValue | undefined;
|
|
119
|
+
};
|
|
120
|
+
export type ProcessEvent = {
|
|
121
|
+
[P in keyof ProcessEvents]: {
|
|
122
|
+
type: P;
|
|
123
|
+
} & ProcessEvents[P];
|
|
124
|
+
}[keyof ProcessEvents];
|
|
125
|
+
export type GraphOutputs = Record<string, DataValue>;
|
|
126
|
+
export type GraphInputs = Record<string, DataValue>;
|
|
127
|
+
export type NodeResults = Map<NodeId, Outputs>;
|
|
128
|
+
export type Inputs = Record<PortId, DataValue | undefined>;
|
|
129
|
+
export type Outputs = Record<PortId, DataValue | undefined>;
|
|
130
|
+
export type ExternalFunctionProcessContext = Omit<InternalProcessContext, 'setGlobal'>;
|
|
131
|
+
export type ExternalFunction = (context: ExternalFunctionProcessContext, ...args: unknown[]) => Promise<DataValue & {
|
|
132
|
+
cost?: number;
|
|
133
|
+
}>;
|
|
134
|
+
export type RaceId = Opaque<string, 'RaceId'>;
|
|
135
|
+
export type LoopInfo = AttachedNodeDataItem & {
|
|
136
|
+
/** ID of the controller of the loop */
|
|
137
|
+
loopControllerId: NodeId;
|
|
138
|
+
/** Nodes add themselves to this as the loop processes */
|
|
139
|
+
nodes: Set<NodeId>;
|
|
140
|
+
iterationCount: number;
|
|
141
|
+
};
|
|
142
|
+
export type AttachedNodeDataItem = {
|
|
143
|
+
propagate: boolean | ((parent: ChartNode, connections: NodeConnection[]) => boolean);
|
|
144
|
+
};
|
|
145
|
+
export type AttachedNodeData = {
|
|
146
|
+
loopInfo?: LoopInfo;
|
|
147
|
+
races?: {
|
|
148
|
+
propagate: boolean;
|
|
149
|
+
raceIds: RaceId[];
|
|
150
|
+
completed: boolean;
|
|
151
|
+
};
|
|
152
|
+
[key: string]: AttachedNodeDataItem | undefined;
|
|
153
|
+
};
|
|
154
|
+
export declare class GraphProcessor {
|
|
155
|
+
#private;
|
|
156
|
+
slowMode: boolean;
|
|
157
|
+
id: string;
|
|
158
|
+
executor?: 'nodejs' | 'browser';
|
|
159
|
+
/** If set, specifies the node(s) that the graph will run TO, instead of the nodes without any dependents. */
|
|
160
|
+
runToNodeIds?: NodeId[];
|
|
161
|
+
/** The interval between nodeFinish events when playing back a recording. I.e. how fast the playback is. */
|
|
162
|
+
recordingPlaybackChatLatency: number;
|
|
163
|
+
warnOnInvalidGraph: boolean;
|
|
164
|
+
get isRunning(): boolean;
|
|
165
|
+
constructor(project: Project, graphId?: GraphId, registry?: NodeRegistration);
|
|
166
|
+
on: Emittery<ProcessEvents>["on"];
|
|
167
|
+
off: Emittery<ProcessEvents>["off"];
|
|
168
|
+
once: Emittery<ProcessEvents>["once"];
|
|
169
|
+
onAny: Emittery<ProcessEvents>["onAny"];
|
|
170
|
+
offAny: Emittery<ProcessEvents>["offAny"];
|
|
171
|
+
onUserEvent(onEvent: string, listener: (event: DataValue | undefined) => void): void;
|
|
172
|
+
offUserEvent(listener: (data: DataValue | undefined) => void): void;
|
|
173
|
+
userInput(nodeId: NodeId, values: StringArrayDataValue): void;
|
|
174
|
+
setExternalFunction(name: string, fn: ExternalFunction): void;
|
|
175
|
+
abort(successful?: boolean, error?: Error | string): Promise<void>;
|
|
176
|
+
pause(): void;
|
|
177
|
+
resume(): void;
|
|
178
|
+
setSlowMode(slowMode: boolean): void;
|
|
179
|
+
events(): AsyncGenerator<ProcessEvent>;
|
|
180
|
+
replayRecording(recorder: ExecutionRecorder): Promise<GraphOutputs>;
|
|
181
|
+
/** Main function for running a graph. Runs a graph and returns the outputs from the output nodes of the graph. */
|
|
182
|
+
processGraph(
|
|
183
|
+
/** Required and optional context available to the nodes and all subgraphs. */
|
|
184
|
+
context: ProcessContext,
|
|
185
|
+
/** Inputs to the main graph. You should pass all inputs required by the GraphInputNodes of the graph. */
|
|
186
|
+
inputs?: Record<string, DataValue>,
|
|
187
|
+
/** Contextual data available to all graphs and subgraphs. Kind of like react context, avoids drilling down data into subgraphs. Be careful when using it. */
|
|
188
|
+
contextValues?: Record<string, DataValue>): Promise<GraphOutputs>;
|
|
189
|
+
getRootProcessor(): GraphProcessor;
|
|
190
|
+
/** Raise a user event on the processor, all subprocessors, and their children. */
|
|
191
|
+
raiseEvent(event: string, data: DataValue): void;
|
|
192
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { Opaque } from 'type-fest';
|
|
2
|
+
import type { DataType } from './DataValue.js';
|
|
3
|
+
import type { GraphId } from '../index.js';
|
|
4
|
+
/** Unique in a NodeGraph. */
|
|
5
|
+
export type NodeId = Opaque<string, 'NodeId'>;
|
|
6
|
+
/** Unique within the inputs of a single node */
|
|
7
|
+
export type PortId = Opaque<string, 'PortId'>;
|
|
8
|
+
/** Base interface for a node in a NodeGraph. All nodes will have this data.*/
|
|
9
|
+
export interface NodeBase {
|
|
10
|
+
/** The type of the node. See Nodes['type']. */
|
|
11
|
+
type: string;
|
|
12
|
+
/** The unique identifier of the node. Unique within a NodeGraph. */
|
|
13
|
+
id: NodeId;
|
|
14
|
+
/** The title of the node. Displayed in the graph. */
|
|
15
|
+
title: string;
|
|
16
|
+
/** A user description/notes for the node */
|
|
17
|
+
description?: string;
|
|
18
|
+
isSplitRun?: boolean;
|
|
19
|
+
/** When splitting, should the executions be ran sequentially instead of in parallel? */
|
|
20
|
+
isSplitSequential?: boolean;
|
|
21
|
+
splitRunMax?: number;
|
|
22
|
+
/** The visual data of the node, including its position. Visual data does not affect its processing. */
|
|
23
|
+
visualData: {
|
|
24
|
+
/** The x-coordinate of the node's position. */
|
|
25
|
+
x: number;
|
|
26
|
+
/** The y-coordinate of the node's position. */
|
|
27
|
+
y: number;
|
|
28
|
+
width?: number;
|
|
29
|
+
/** The accent color of the node in the UI. */
|
|
30
|
+
color?: {
|
|
31
|
+
border: string;
|
|
32
|
+
bg: string;
|
|
33
|
+
};
|
|
34
|
+
/** The z-index, the last grabbed node is on top of all others. */
|
|
35
|
+
zIndex?: number;
|
|
36
|
+
};
|
|
37
|
+
/** The data associated with the node. Typed when using `Nodes` or a subtype. */
|
|
38
|
+
data: unknown;
|
|
39
|
+
/** Alternative sets of data for the node. */
|
|
40
|
+
variants?: ChartNodeVariant<unknown>[];
|
|
41
|
+
tests?: NodeTestGroup[];
|
|
42
|
+
/** If true, the node is disabled and effectively "not ran" */
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/** Base type for a typed node. */
|
|
46
|
+
export type ChartNode<Type extends string = string, Data = unknown> = NodeBase & {
|
|
47
|
+
/** The type of the node. */
|
|
48
|
+
type: Type;
|
|
49
|
+
/** The data associated with the node. */
|
|
50
|
+
data: Data;
|
|
51
|
+
/** Alternative sets of data for the node. */
|
|
52
|
+
variants?: ChartNodeVariant<Data>[];
|
|
53
|
+
};
|
|
54
|
+
export type ChartNodeVariant<Data = unknown> = {
|
|
55
|
+
id: string;
|
|
56
|
+
data: Data;
|
|
57
|
+
};
|
|
58
|
+
export type NodeTestGroup = {
|
|
59
|
+
id: string;
|
|
60
|
+
evaluatorGraphId: GraphId;
|
|
61
|
+
tests: NodeTest[];
|
|
62
|
+
};
|
|
63
|
+
export type NodeTest = {
|
|
64
|
+
conditionText: string;
|
|
65
|
+
};
|
|
66
|
+
/** Represents an input definition of a node. */
|
|
67
|
+
export type NodeInputDefinition = {
|
|
68
|
+
/** The unique identifier of the input. Unique within a single node only. */
|
|
69
|
+
id: PortId;
|
|
70
|
+
/** The title of the input. Shows in the UI. */
|
|
71
|
+
title: string;
|
|
72
|
+
/** Whether the input is required. If it is required, there is no default value, and the node cannot process if this input is not connected. */
|
|
73
|
+
required?: boolean;
|
|
74
|
+
/** The data type of the input. */
|
|
75
|
+
dataType: DataType | Readonly<DataType[]>;
|
|
76
|
+
/** Other data associated with the input. Typed in subtypes. */
|
|
77
|
+
data?: unknown;
|
|
78
|
+
/** The default value of the input, if it is not connected to an output. */
|
|
79
|
+
defaultValue?: unknown;
|
|
80
|
+
/** User-facing description of the port. */
|
|
81
|
+
description?: string;
|
|
82
|
+
/** Will the input value attempt to be coerced into the desired type? */
|
|
83
|
+
coerced?: boolean;
|
|
84
|
+
};
|
|
85
|
+
/** Represents an output definition of a node. */
|
|
86
|
+
export type NodeOutputDefinition = {
|
|
87
|
+
/** The unique identifier of the output. Unique within a single node. */
|
|
88
|
+
id: PortId;
|
|
89
|
+
/** The title of the output. Shown in the UI. */
|
|
90
|
+
title: string;
|
|
91
|
+
/** The data type of the output. */
|
|
92
|
+
dataType: DataType | Readonly<DataType[]>;
|
|
93
|
+
/** The data associated with the output. */
|
|
94
|
+
data?: unknown;
|
|
95
|
+
/** The default value of the output. Some outputs just have a fixed value. */
|
|
96
|
+
defaultValue?: unknown;
|
|
97
|
+
/** User-facing description of the port. */
|
|
98
|
+
description?: string;
|
|
99
|
+
};
|
|
100
|
+
/** Represents a connection between two nodes. */
|
|
101
|
+
export type NodeConnection = {
|
|
102
|
+
/** The unique identifier of the output node. */
|
|
103
|
+
outputNodeId: NodeId;
|
|
104
|
+
/** The unique identifier of the input node. */
|
|
105
|
+
inputNodeId: NodeId;
|
|
106
|
+
/** The unique identifier of the output. */
|
|
107
|
+
outputId: PortId;
|
|
108
|
+
/** The unique identifier of the input. */
|
|
109
|
+
inputId: PortId;
|
|
110
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type NodeBodySpecBase = {
|
|
2
|
+
fontSize?: number;
|
|
3
|
+
fontFamily?: 'monospace' | 'sans-serif';
|
|
4
|
+
};
|
|
5
|
+
export type PlainNodeBodySpec = {
|
|
6
|
+
type: 'plain';
|
|
7
|
+
text: string;
|
|
8
|
+
};
|
|
9
|
+
export type MarkdownNodeBodySpec = {
|
|
10
|
+
type: 'markdown';
|
|
11
|
+
text: string;
|
|
12
|
+
};
|
|
13
|
+
export type ColorizedNodeBodySpec = {
|
|
14
|
+
type: 'colorized';
|
|
15
|
+
language: string;
|
|
16
|
+
text: string;
|
|
17
|
+
theme?: string;
|
|
18
|
+
};
|
|
19
|
+
export type NodeBodySpec = NodeBodySpecBase & (PlainNodeBodySpec | MarkdownNodeBodySpec | ColorizedNodeBodySpec);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChartNode } from './NodeBase.js';
|
|
2
|
+
import type { NodeImplConstructor, PluginNodeImpl } from './NodeImpl.js';
|
|
3
|
+
export type NodeDefinition<T extends ChartNode> = {
|
|
4
|
+
impl: NodeImplConstructor<T>;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
7
|
+
export type PluginNodeDefinition<T extends ChartNode> = {
|
|
8
|
+
impl: PluginNodeImpl<T>;
|
|
9
|
+
displayName: string;
|
|
10
|
+
};
|
|
11
|
+
export type UnknownNodeDefinition = NodeDefinition<ChartNode>;
|
|
12
|
+
export declare function nodeDefinition<T extends ChartNode>(impl: NodeImplConstructor<T>, displayName: string): NodeDefinition<T>;
|
|
13
|
+
export declare function pluginNodeDefinition<T extends ChartNode>(impl: PluginNodeImpl<T>, displayName: string): PluginNodeDefinition<T>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ChartNode, type NodeConnection } from './NodeBase.js';
|
|
2
|
+
import type { Opaque } from 'type-fest';
|
|
3
|
+
import { type AttachedData } from '../utils/serialization/serializationUtils.js';
|
|
4
|
+
export type GraphId = Opaque<string, 'GraphId'>;
|
|
5
|
+
export interface NodeGraph {
|
|
6
|
+
metadata?: {
|
|
7
|
+
id?: GraphId;
|
|
8
|
+
name?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
attachedData?: AttachedData;
|
|
11
|
+
};
|
|
12
|
+
nodes: ChartNode[];
|
|
13
|
+
connections: NodeConnection[];
|
|
14
|
+
}
|
|
15
|
+
export declare function emptyNodeGraph(): NodeGraph;
|