@alpic80/rivet-core 1.19.1-aidon.3 → 1.24.0-aidon.3

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.
Files changed (129) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/bundle.cjs +4512 -1240
  3. package/dist/cjs/bundle.cjs.map +4 -4
  4. package/dist/esm/api/createProcessor.js +8 -17
  5. package/dist/esm/api/looseDataValue.js +16 -0
  6. package/dist/esm/exports.js +2 -0
  7. package/dist/esm/integrations/CodeRunner.js +36 -0
  8. package/dist/esm/integrations/DatasetProvider.js +1 -1
  9. package/dist/esm/integrations/GptTokenizerTokenizer.js +7 -4
  10. package/dist/esm/integrations/openai/OpenAIEmbeddingGenerator.js +1 -1
  11. package/dist/esm/model/DataValue.js +14 -2
  12. package/dist/esm/model/GraphProcessor.js +276 -107
  13. package/dist/esm/model/NodeBase.js +11 -1
  14. package/dist/esm/model/NodeImpl.js +8 -0
  15. package/dist/esm/model/Nodes.js +31 -4
  16. package/dist/esm/model/ProjectReferenceLoader.js +1 -0
  17. package/dist/esm/model/nodes/AssembleMessageNode.js +12 -2
  18. package/dist/esm/model/nodes/AssemblePromptNode.js +22 -0
  19. package/dist/esm/model/nodes/CallGraphNode.js +3 -4
  20. package/dist/esm/model/nodes/ChatLoopNode.js +150 -0
  21. package/dist/esm/model/nodes/ChatNode.js +7 -934
  22. package/dist/esm/model/nodes/ChatNodeBase.js +1277 -0
  23. package/dist/esm/model/nodes/ChunkNode.js +2 -2
  24. package/dist/esm/model/nodes/CodeNode.js +40 -5
  25. package/dist/esm/model/nodes/CronNode.js +248 -0
  26. package/dist/esm/model/nodes/DelegateFunctionCallNode.js +37 -12
  27. package/dist/esm/model/nodes/DestructureNode.js +1 -1
  28. package/dist/esm/model/nodes/DocumentNode.js +183 -0
  29. package/dist/esm/model/nodes/ExtractJsonNode.js +4 -4
  30. package/dist/esm/model/nodes/ExtractRegexNode.js +10 -11
  31. package/dist/esm/model/nodes/GetAllDatasetsNode.js +1 -1
  32. package/dist/esm/model/nodes/GetEmbeddingNode.js +1 -1
  33. package/dist/esm/model/nodes/HttpCallNode.js +3 -1
  34. package/dist/esm/model/nodes/IfNode.js +5 -0
  35. package/dist/esm/model/nodes/LoopControllerNode.js +1 -1
  36. package/dist/esm/model/nodes/LoopUntilNode.js +214 -0
  37. package/dist/esm/model/nodes/ObjectNode.js +1 -1
  38. package/dist/esm/model/nodes/PromptNode.js +29 -6
  39. package/dist/esm/model/nodes/RaceInputsNode.js +1 -2
  40. package/dist/esm/model/nodes/ReadAllFilesNode.js +210 -0
  41. package/dist/esm/model/nodes/ReadDirectoryNode.js +31 -25
  42. package/dist/esm/model/nodes/ReferencedGraphAliasNode.js +199 -0
  43. package/dist/esm/model/nodes/ReplaceDatasetNode.js +1 -1
  44. package/dist/esm/model/nodes/SliceNode.js +0 -1
  45. package/dist/esm/model/nodes/SplitNode.js +1 -1
  46. package/dist/esm/model/nodes/SubGraphNode.js +0 -1
  47. package/dist/esm/model/nodes/TextNode.js +9 -4
  48. package/dist/esm/model/nodes/ToMarkdownTableNode.js +119 -0
  49. package/dist/esm/model/nodes/ToTreeNode.js +133 -0
  50. package/dist/esm/model/nodes/{GptFunctionNode.js → ToolNode.js} +10 -10
  51. package/dist/esm/model/nodes/UserInputNode.js +10 -12
  52. package/dist/esm/model/nodes/WriteFileNode.js +147 -0
  53. package/dist/esm/native/BrowserNativeApi.js +16 -1
  54. package/dist/esm/plugins/aidon/nodes/ChatAidonNode.js +5 -5
  55. package/dist/esm/plugins/anthropic/anthropic.js +29 -14
  56. package/dist/esm/plugins/anthropic/fetchEventSource.js +3 -2
  57. package/dist/esm/plugins/anthropic/nodes/ChatAnthropicNode.js +264 -147
  58. package/dist/esm/plugins/anthropic/plugin.js +9 -1
  59. package/dist/esm/plugins/assemblyAi/LemurQaNode.js +1 -1
  60. package/dist/esm/plugins/assemblyAi/LemurSummaryNode.js +1 -1
  61. package/dist/esm/plugins/gentrace/plugin.js +6 -6
  62. package/dist/esm/plugins/google/google.js +120 -6
  63. package/dist/esm/plugins/google/nodes/ChatGoogleNode.js +219 -56
  64. package/dist/esm/plugins/google/plugin.js +13 -6
  65. package/dist/esm/plugins/openai/nodes/RunThreadNode.js +2 -2
  66. package/dist/esm/plugins/openai/nodes/ThreadMessageNode.js +1 -1
  67. package/dist/esm/recording/ExecutionRecorder.js +59 -4
  68. package/dist/esm/utils/base64.js +13 -0
  69. package/dist/esm/utils/chatMessageToOpenAIChatCompletionMessage.js +15 -2
  70. package/dist/esm/utils/coerceType.js +4 -1
  71. package/dist/esm/utils/fetchEventSource.js +1 -1
  72. package/dist/esm/utils/interpolation.js +108 -3
  73. package/dist/esm/utils/openai.js +106 -50
  74. package/dist/esm/utils/paths.js +80 -0
  75. package/dist/esm/utils/serialization/serialization_v4.js +5 -0
  76. package/dist/types/api/createProcessor.d.ts +11 -5
  77. package/dist/types/api/looseDataValue.d.ts +4 -0
  78. package/dist/types/api/streaming.d.ts +1 -1
  79. package/dist/types/exports.d.ts +2 -0
  80. package/dist/types/integrations/CodeRunner.d.ts +18 -0
  81. package/dist/types/integrations/DatasetProvider.d.ts +1 -1
  82. package/dist/types/model/DataValue.d.ts +29 -6
  83. package/dist/types/model/EditorDefinition.d.ts +6 -1
  84. package/dist/types/model/GraphProcessor.d.ts +14 -7
  85. package/dist/types/model/NodeBase.d.ts +4 -0
  86. package/dist/types/model/NodeImpl.d.ts +5 -4
  87. package/dist/types/model/Nodes.d.ts +13 -4
  88. package/dist/types/model/ProcessContext.d.ts +16 -1
  89. package/dist/types/model/Project.d.ts +19 -7
  90. package/dist/types/model/ProjectReferenceLoader.d.ts +5 -0
  91. package/dist/types/model/RivetPlugin.d.ts +6 -0
  92. package/dist/types/model/RivetUIContext.d.ts +5 -1
  93. package/dist/types/model/Settings.d.ts +1 -0
  94. package/dist/types/model/nodes/AssemblePromptNode.d.ts +4 -1
  95. package/dist/types/model/nodes/ChatLoopNode.d.ts +21 -0
  96. package/dist/types/model/nodes/ChatNode.d.ts +2 -62
  97. package/dist/types/model/nodes/ChatNodeBase.d.ts +85 -0
  98. package/dist/types/model/nodes/CodeNode.d.ts +8 -2
  99. package/dist/types/model/nodes/CronNode.d.ts +34 -0
  100. package/dist/types/model/nodes/DelegateFunctionCallNode.d.ts +1 -0
  101. package/dist/types/model/nodes/DocumentNode.d.ts +28 -0
  102. package/dist/types/model/nodes/GetAllDatasetsNode.d.ts +2 -2
  103. package/dist/types/model/nodes/LoopUntilNode.d.ts +32 -0
  104. package/dist/types/model/nodes/ObjectNode.d.ts +2 -2
  105. package/dist/types/model/nodes/PromptNode.d.ts +2 -0
  106. package/dist/types/model/nodes/RaceInputsNode.d.ts +1 -2
  107. package/dist/types/model/nodes/ReadAllFilesNode.d.ts +30 -0
  108. package/dist/types/model/nodes/ReadDirectoryNode.d.ts +1 -1
  109. package/dist/types/model/nodes/ReferencedGraphAliasNode.d.ts +31 -0
  110. package/dist/types/model/nodes/SplitNode.d.ts +2 -2
  111. package/dist/types/model/nodes/ToMarkdownTableNode.d.ts +19 -0
  112. package/dist/types/model/nodes/ToTreeNode.d.ts +21 -0
  113. package/dist/types/model/nodes/UserInputNode.d.ts +2 -3
  114. package/dist/types/model/nodes/WriteFileNode.d.ts +23 -0
  115. package/dist/types/native/BrowserNativeApi.d.ts +8 -5
  116. package/dist/types/native/NativeApi.d.ts +12 -1
  117. package/dist/types/plugins/anthropic/anthropic.d.ts +94 -13
  118. package/dist/types/plugins/anthropic/nodes/ChatAnthropicNode.d.ts +7 -2
  119. package/dist/types/plugins/google/google.d.ts +101 -18
  120. package/dist/types/plugins/google/nodes/ChatGoogleNode.d.ts +3 -2
  121. package/dist/types/recording/RecordedEvents.d.ts +3 -0
  122. package/dist/types/utils/base64.d.ts +2 -1
  123. package/dist/types/utils/chatMessageToOpenAIChatCompletionMessage.d.ts +3 -1
  124. package/dist/types/utils/interpolation.d.ts +3 -0
  125. package/dist/types/utils/openai.d.ts +127 -21
  126. package/dist/types/utils/paths.d.ts +8 -0
  127. package/dist/types/utils/serialization/serialization_v3.d.ts +1 -0
  128. package/package.json +15 -11
  129. /package/dist/types/model/nodes/{GptFunctionNode.d.ts → ToolNode.d.ts} +0 -0
@@ -0,0 +1,85 @@
1
+ import { type ChatMessage } from '../DataValue.js';
2
+ import type { EditorDefinition } from '../EditorDefinition.js';
3
+ import type { ChartNode, NodeInputDefinition } from '../NodeBase.js';
4
+ import type { ChatNode } from './ChatNode.js';
5
+ import type { Inputs, Outputs } from '../GraphProcessor.js';
6
+ import type { InternalProcessContext } from '../ProcessContext.js';
7
+ export type ChatNodeConfigData = {
8
+ model: string;
9
+ temperature: number;
10
+ useTopP: boolean;
11
+ top_p?: number;
12
+ maxTokens: number;
13
+ stop?: string;
14
+ presencePenalty?: number;
15
+ frequencyPenalty?: number;
16
+ enableFunctionUse?: boolean;
17
+ user?: string;
18
+ numberOfChoices?: number;
19
+ endpoint?: string;
20
+ overrideModel?: string;
21
+ overrideMaxTokens?: number;
22
+ headers?: {
23
+ key: string;
24
+ value: string;
25
+ }[];
26
+ seed?: number;
27
+ toolChoice?: 'none' | 'auto' | 'function';
28
+ toolChoiceFunction?: string;
29
+ responseFormat?: '' | 'text' | 'json' | 'json_schema';
30
+ parallelFunctionCalling?: boolean;
31
+ additionalParameters?: {
32
+ key: string;
33
+ value: string;
34
+ }[];
35
+ responseSchemaName?: string;
36
+ useServerTokenCalculation?: boolean;
37
+ outputUsage?: boolean;
38
+ usePredictedOutput?: boolean;
39
+ reasoningEffort?: '' | 'low' | 'medium' | 'high';
40
+ modalitiesIncludeText?: boolean;
41
+ modalitiesIncludeAudio?: boolean;
42
+ audioVoice?: string;
43
+ audioFormat?: 'wav' | 'mp3' | 'flac' | 'opus' | 'pcm16';
44
+ };
45
+ export type ChatNodeData = ChatNodeConfigData & {
46
+ useModelInput: boolean;
47
+ useTemperatureInput: boolean;
48
+ useTopPInput: boolean;
49
+ useTopP: boolean;
50
+ useUseTopPInput: boolean;
51
+ useMaxTokensInput: boolean;
52
+ useStop: boolean;
53
+ useStopInput: boolean;
54
+ usePresencePenaltyInput: boolean;
55
+ useFrequencyPenaltyInput: boolean;
56
+ useUserInput?: boolean;
57
+ useNumberOfChoicesInput?: boolean;
58
+ useEndpointInput?: boolean;
59
+ useHeadersInput?: boolean;
60
+ useSeedInput?: boolean;
61
+ useToolChoiceInput?: boolean;
62
+ useToolChoiceFunctionInput?: boolean;
63
+ useResponseFormatInput?: boolean;
64
+ useAdditionalParametersInput?: boolean;
65
+ useResponseSchemaNameInput?: boolean;
66
+ useAudioVoiceInput?: boolean;
67
+ useAudioFormatInput?: boolean;
68
+ useReasoningEffortInput?: boolean;
69
+ /** Given the same set of inputs, return the same output without hitting GPT */
70
+ cache: boolean;
71
+ useAsGraphPartialOutput?: boolean;
72
+ };
73
+ export declare const ChatNodeBase: {
74
+ defaultData: () => ChatNodeData;
75
+ getInputDefinitions: (data: ChatNodeData) => NodeInputDefinition[];
76
+ getOutputDefinitions: (data: ChatNodeData) => NodeInputDefinition[];
77
+ getEditors: () => EditorDefinition<ChatNode>[];
78
+ getBody: (data: ChatNodeData) => string | undefined;
79
+ process: (data: ChatNodeData, node: ChartNode, inputs: Inputs, context: InternalProcessContext) => Promise<Outputs>;
80
+ };
81
+ export declare function getChatNodeMessages(inputs: Inputs): {
82
+ messages: ChatMessage[];
83
+ systemPrompt: import("../DataValue.js").DataValue | undefined;
84
+ };
85
+ export declare function getCostForTokens(tokenCount: number, costPerThousand: number): number;
@@ -1,13 +1,19 @@
1
1
  import { type ChartNode, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
2
2
  import { NodeImpl, type NodeUIData } from '../NodeImpl.js';
3
- import { type DataValue } from '../DataValue.js';
4
3
  import { type EditorDefinition } from '../EditorDefinition.js';
5
4
  import { type NodeBodySpec } from '../NodeBodySpec.js';
5
+ import type { InternalProcessContext } from '../ProcessContext.js';
6
+ import type { Inputs, Outputs } from '../GraphProcessor.js';
6
7
  export type CodeNode = ChartNode<'code', CodeNodeData>;
7
8
  export type CodeNodeData = {
8
9
  code: string;
9
10
  inputNames: string | string[];
10
11
  outputNames: string | string[];
12
+ allowFetch?: boolean;
13
+ allowRequire?: boolean;
14
+ allowRivet?: boolean;
15
+ allowProcess?: boolean;
16
+ allowConsole?: boolean;
11
17
  };
12
18
  export declare class CodeNodeImpl extends NodeImpl<CodeNode> {
13
19
  static create(): CodeNode;
@@ -16,6 +22,6 @@ export declare class CodeNodeImpl extends NodeImpl<CodeNode> {
16
22
  getEditors(): EditorDefinition<CodeNode>[];
17
23
  getBody(): string | NodeBodySpec | undefined;
18
24
  static getUIData(): NodeUIData;
19
- process(inputs: Record<string, DataValue>): Promise<Record<string, DataValue>>;
25
+ process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
20
26
  }
21
27
  export declare const codeNode: import("../NodeDefinition.js").NodeDefinition<CodeNode>;
@@ -0,0 +1,34 @@
1
+ import type { ChartNode, NodeInputDefinition, NodeOutputDefinition } from '../NodeBase.js';
2
+ import type { GraphId } from '../NodeGraph.js';
3
+ import { NodeImpl, type NodeBody } from '../NodeImpl.js';
4
+ import type { EditorDefinition } from '../EditorDefinition.js';
5
+ import type { RivetUIContext } from '../RivetUIContext.js';
6
+ import type { InternalProcessContext } from '../ProcessContext.js';
7
+ import type { Inputs, Outputs } from '../GraphProcessor.js';
8
+ type ScheduleType = 'interval' | 'cron';
9
+ export type CronNode = ChartNode<'cron', CronNodeData>;
10
+ export type CronNodeData = {
11
+ targetGraph: GraphId | undefined;
12
+ scheduleType: ScheduleType;
13
+ schedule: string;
14
+ executeImmediately?: boolean;
15
+ useTargetGraphInput?: boolean;
16
+ };
17
+ export declare class CronNodeImpl extends NodeImpl<CronNode> {
18
+ static create(): CronNode;
19
+ getInputDefinitions(): NodeInputDefinition[];
20
+ getOutputDefinitions(): NodeOutputDefinition[];
21
+ static getUIData(): {
22
+ infoBoxBody: string;
23
+ infoBoxTitle: string;
24
+ contextMenuTitle: string;
25
+ group: string[];
26
+ };
27
+ getEditors(): EditorDefinition<CronNode>[];
28
+ private parseSchedule;
29
+ private getNextRunTime;
30
+ getBody(context: RivetUIContext): NodeBody;
31
+ process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
32
+ }
33
+ export declare const cronNode: import("../NodeDefinition.js").NodeDefinition<CronNode>;
34
+ export {};
@@ -12,6 +12,7 @@ export type DelegateFunctionCallNodeData = {
12
12
  value: GraphId;
13
13
  }[];
14
14
  unknownHandler: GraphId | undefined;
15
+ autoDelegate: boolean;
15
16
  };
16
17
  export declare class DelegateFunctionCallNodeImpl extends NodeImpl<DelegateFunctionCallNode> {
17
18
  static create(): DelegateFunctionCallNode;
@@ -0,0 +1,28 @@
1
+ import { type ChartNode, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
2
+ import { NodeImpl, type NodeUIData } from '../NodeImpl.js';
3
+ import { type DataRef, type EditorDefinition, type Inputs, type InternalProcessContext, type NodeBody, type Outputs, type SupportedDocumentMediaTypes } from '../../index.js';
4
+ import type { RivetUIContext } from '../RivetUIContext.js';
5
+ export type DocumentNode = ChartNode<'document', DocumentNodeData>;
6
+ type DocumentNodeData = {
7
+ data?: DataRef;
8
+ useDataInput: boolean;
9
+ mediaType?: SupportedDocumentMediaTypes;
10
+ useMediaTypeInput: boolean;
11
+ title: string;
12
+ useTitleInput: boolean;
13
+ context: string;
14
+ useContextInput: boolean;
15
+ enableCitations: boolean;
16
+ useEnableCitationsInput: boolean;
17
+ };
18
+ export declare class DocumentNodeImpl extends NodeImpl<DocumentNode> {
19
+ static create(): DocumentNode;
20
+ getInputDefinitions(): NodeInputDefinition[];
21
+ getOutputDefinitions(): NodeOutputDefinition[];
22
+ getEditors(): EditorDefinition<DocumentNode>[];
23
+ static getUIData(): NodeUIData;
24
+ getBody(_context: RivetUIContext): NodeBody | Promise<NodeBody>;
25
+ process(inputData: Inputs, context: InternalProcessContext): Promise<Outputs>;
26
+ }
27
+ export declare const documentNode: import("../NodeDefinition.js").NodeDefinition<DocumentNode>;
28
+ export {};
@@ -1,4 +1,4 @@
1
- import type { ChartNode, EditorDefinition, Inputs, InternalProcessContext, NodeInputDefinition, NodeOutputDefinition, NodeUIData, Outputs } from '../../index.js';
1
+ import type { ChartNode, EditorDefinition, InternalProcessContext, NodeInputDefinition, NodeOutputDefinition, NodeUIData, Outputs } from '../../index.js';
2
2
  import { NodeImpl } from '../NodeImpl.js';
3
3
  export type GetAllDatasetsNode = ChartNode<'getAllDatasets', GetAllDatasetsNodeData>;
4
4
  type GetAllDatasetsNodeData = {};
@@ -8,7 +8,7 @@ export declare class GetAllDatasetsNodeImpl extends NodeImpl<GetAllDatasetsNode>
8
8
  getOutputDefinitions(): NodeOutputDefinition[];
9
9
  static getUIData(): NodeUIData;
10
10
  getEditors(): EditorDefinition<GetAllDatasetsNode>[] | Promise<EditorDefinition<GetAllDatasetsNode>[]>;
11
- process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
11
+ process(context: InternalProcessContext): Promise<Outputs>;
12
12
  }
13
13
  export declare const getAllDatasetsNode: import("../NodeDefinition.js").NodeDefinition<GetAllDatasetsNode>;
14
14
  export {};
@@ -0,0 +1,32 @@
1
+ import { type ChartNode, type NodeConnection, type NodeId, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
2
+ import { NodeImpl, type NodeUIData } from '../NodeImpl.js';
3
+ import { type Inputs, type Outputs } from '../GraphProcessor.js';
4
+ import { type GraphId } from '../NodeGraph.js';
5
+ import { type Project } from '../Project.js';
6
+ import { type DataValue } from '../DataValue.js';
7
+ import { type InternalProcessContext } from '../ProcessContext.js';
8
+ import { type EditorDefinition } from '../EditorDefinition.js';
9
+ import type { RivetUIContext } from '../RivetUIContext.js';
10
+ type ConditionType = 'allOutputsSet' | 'inputEqual';
11
+ export type LoopUntilNode = ChartNode<'loopUntil', LoopUntilNodeData>;
12
+ export type LoopUntilNodeData = {
13
+ targetGraph: GraphId | undefined;
14
+ conditionType: ConditionType;
15
+ maxIterations?: number;
16
+ inputToCheck?: string;
17
+ targetValue?: string;
18
+ /** Data for each of the inputs of the subgraph */
19
+ inputData?: Record<string, DataValue>;
20
+ };
21
+ export declare class LoopUntilNodeImpl extends NodeImpl<LoopUntilNode> {
22
+ static create(): LoopUntilNode;
23
+ getInputDefinitions(_connections: NodeConnection[], _nodes: Record<NodeId, ChartNode>, project: Project): NodeInputDefinition[];
24
+ getOutputDefinitions(_connections: NodeConnection[], _nodes: Record<NodeId, ChartNode>, project: Project): NodeOutputDefinition[];
25
+ getEditors(context: RivetUIContext): EditorDefinition<LoopUntilNode>[];
26
+ static getUIData(): NodeUIData;
27
+ getBody(context: RivetUIContext): string;
28
+ private shouldBreak;
29
+ process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
30
+ }
31
+ export declare const loopUntilNode: import("../NodeDefinition.js").NodeDefinition<LoopUntilNode>;
32
+ export {};
@@ -1,4 +1,4 @@
1
- import { type ChartNode, type NodeConnection, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
1
+ import { type ChartNode, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
2
2
  import { NodeImpl, type NodeUIData } from '../NodeImpl.js';
3
3
  import { type DataValue } from '../DataValue.js';
4
4
  import { type EditorDefinition } from '../EditorDefinition.js';
@@ -8,7 +8,7 @@ export type ObjectNodeData = {
8
8
  };
9
9
  export declare class ObjectNodeImpl extends NodeImpl<ObjectNode> {
10
10
  static create(): ObjectNode;
11
- getInputDefinitions(connections: NodeConnection[]): NodeInputDefinition[];
11
+ getInputDefinitions(): NodeInputDefinition[];
12
12
  getOutputDefinitions(): NodeOutputDefinition[];
13
13
  getEditors(): EditorDefinition<ObjectNode>[];
14
14
  static getUIData(): NodeUIData;
@@ -10,6 +10,8 @@ export type PromptNodeData = {
10
10
  useNameInput?: boolean;
11
11
  enableFunctionCall?: boolean;
12
12
  computeTokenCount?: boolean;
13
+ isCacheBreakpoint?: boolean;
14
+ useIsCacheBreakpointInput?: boolean;
13
15
  };
14
16
  export declare class PromptNodeImpl extends NodeImpl<PromptNode> {
15
17
  static create(): PromptNode;
@@ -1,7 +1,6 @@
1
1
  import { type ChartNode, type NodeInputDefinition, type NodeOutputDefinition, type NodeConnection } from '../NodeBase.js';
2
2
  import { NodeImpl, type NodeUIData } from '../NodeImpl.js';
3
3
  import { type Inputs, type Outputs } from '../GraphProcessor.js';
4
- import { type InternalProcessContext } from '../ProcessContext.js';
5
4
  import { type EditorDefinition } from '../../index.js';
6
5
  export type RaceInputsNode = ChartNode<'raceInputs', RaceInputsNodeData>;
7
6
  export type RaceInputsNodeData = {};
@@ -12,6 +11,6 @@ export declare class RaceInputsNodeImpl extends NodeImpl<RaceInputsNode> {
12
11
  getOutputDefinitions(): NodeOutputDefinition[];
13
12
  getEditors(): EditorDefinition<RaceInputsNode>[];
14
13
  static getUIData(): NodeUIData;
15
- process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
14
+ process(inputs: Inputs): Promise<Outputs>;
16
15
  }
17
16
  export declare const raceInputsNode: import("../NodeDefinition.js").NodeDefinition<RaceInputsNode>;
@@ -0,0 +1,30 @@
1
+ import { type ChartNode, type PortId, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
2
+ import { type DataValue } from '../DataValue.js';
3
+ import { NodeImpl, type NodeBody, type NodeUIData } from '../NodeImpl.js';
4
+ import { type InternalProcessContext } from '../ProcessContext.js';
5
+ import type { EditorDefinition } from '../EditorDefinition.js';
6
+ import type { Inputs } from '../GraphProcessor.js';
7
+ export type ReadAllFilesNode = ChartNode<'readAllFiles', ReadAllFilesNodeData>;
8
+ type ReadAllFilesNodeData = {
9
+ path: string;
10
+ usePathInput: boolean;
11
+ recursive: boolean;
12
+ useRecursiveInput: boolean;
13
+ filterGlobs: string[];
14
+ useFilterGlobsInput: boolean;
15
+ ignores?: string[];
16
+ useIgnoresInput: boolean;
17
+ asBinary?: boolean;
18
+ errorOnMissingFile?: boolean;
19
+ };
20
+ export declare class ReadAllFilesNodeImpl extends NodeImpl<ReadAllFilesNode> {
21
+ static create(): ReadAllFilesNode;
22
+ getInputDefinitions(): NodeInputDefinition[];
23
+ getOutputDefinitions(): NodeOutputDefinition[];
24
+ getEditors(): EditorDefinition<ReadAllFilesNode>[];
25
+ getBody(): NodeBody;
26
+ static getUIData(): NodeUIData;
27
+ process(inputs: Inputs, context: InternalProcessContext): Promise<Record<PortId, DataValue>>;
28
+ }
29
+ export declare const readAllFilesNode: import("../NodeDefinition.js").NodeDefinition<ReadAllFilesNode>;
30
+ export {};
@@ -24,7 +24,7 @@ export declare class ReadDirectoryNodeImpl extends NodeImpl<ReadDirectoryNode> {
24
24
  getOutputDefinitions(): NodeOutputDefinition[];
25
25
  getBody(): string | NodeBodySpec | undefined;
26
26
  static getUIData(): NodeUIData;
27
- process(inputData: Inputs, context: InternalProcessContext): Promise<Outputs>;
27
+ process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
28
28
  }
29
29
  export declare const readDirectoryNode: import("../NodeDefinition.js").NodeDefinition<ReadDirectoryNode>;
30
30
  export {};
@@ -0,0 +1,31 @@
1
+ import { type ChartNode, type NodeConnection, type NodeId, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
2
+ import { NodeImpl, type NodeBody, type NodeUIData } from '../NodeImpl.js';
3
+ import { type Inputs, type Outputs } from '../GraphProcessor.js';
4
+ import { type GraphId } from '../NodeGraph.js';
5
+ import { type Project, type ProjectId } from '../Project.js';
6
+ import { type DataValue } from '../DataValue.js';
7
+ import { type InternalProcessContext } from '../ProcessContext.js';
8
+ import type { RivetUIContext } from '../RivetUIContext.js';
9
+ import type { EditorDefinition } from '../EditorDefinition.js';
10
+ export type ReferencedGraphAliasNode = ChartNode & {
11
+ type: 'referencedGraphAlias';
12
+ data: {
13
+ projectId: ProjectId;
14
+ graphId: GraphId;
15
+ useErrorOutput?: boolean;
16
+ outputCostDuration?: boolean;
17
+ /** Data for each of the inputs of the referenced graph */
18
+ inputData?: Record<string, DataValue>;
19
+ };
20
+ };
21
+ export declare class ReferencedGraphAliasNodeImpl extends NodeImpl<ReferencedGraphAliasNode> {
22
+ static create(): ReferencedGraphAliasNode;
23
+ getInputDefinitions(_connections: NodeConnection[], _nodes: Record<NodeId, ChartNode>, _project: Project, referencedProjects: Record<ProjectId, Project>): NodeInputDefinition[];
24
+ getGraphOutputs(referencedProject: Project): NodeOutputDefinition[];
25
+ getOutputDefinitions(_connections: NodeConnection[], _nodes: Record<NodeId, ChartNode>, _project: Project, referencedProjects: Record<ProjectId, Project>): NodeOutputDefinition[];
26
+ getEditors(context: RivetUIContext): EditorDefinition<ReferencedGraphAliasNode>[];
27
+ getBody(context: RivetUIContext): NodeBody | Promise<NodeBody>;
28
+ static getUIData(): NodeUIData;
29
+ process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
30
+ }
31
+ export declare const referencedGraphAliasNode: import("../NodeDefinition.js").NodeDefinition<ReferencedGraphAliasNode>;
@@ -1,4 +1,4 @@
1
- import type { ChartNode, NodeInputDefinition, NodeOutputDefinition, NodeUIData, EditorDefinition, Inputs, InternalProcessContext, Outputs, NodeBodySpec } from '../../index.js';
1
+ import type { ChartNode, NodeInputDefinition, NodeOutputDefinition, NodeUIData, EditorDefinition, Inputs, Outputs, NodeBodySpec } from '../../index.js';
2
2
  import { NodeImpl } from '../NodeImpl.js';
3
3
  export type SplitNode = ChartNode<'split', SplitNodeData>;
4
4
  type SplitNodeData = {
@@ -13,7 +13,7 @@ export declare class SplitNodeImpl extends NodeImpl<SplitNode> {
13
13
  static getUIData(): NodeUIData;
14
14
  getEditors(): EditorDefinition<SplitNode>[] | Promise<EditorDefinition<SplitNode>[]>;
15
15
  getBody(): string | NodeBodySpec | NodeBodySpec[] | undefined;
16
- process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
16
+ process(inputs: Inputs): Promise<Outputs>;
17
17
  }
18
18
  export declare const splitNode: import("../NodeDefinition.js").NodeDefinition<SplitNode>;
19
19
  export {};
@@ -0,0 +1,19 @@
1
+ import { type ChartNode, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
2
+ import { NodeImpl, type NodeUIData } from '../NodeImpl.js';
3
+ import { type Inputs, type Outputs } from '../GraphProcessor.js';
4
+ import { type EditorDefinition } from '../../index.js';
5
+ export type ToMarkdownTableNode = ChartNode<'toMarkdownTable', ToMarkdownTableNodeData>;
6
+ export type ToMarkdownTableNodeData = {
7
+ includeHeaders?: boolean;
8
+ alignPipes?: boolean;
9
+ };
10
+ export declare class ToMarkdownTableNodeImpl extends NodeImpl<ToMarkdownTableNode> {
11
+ static create(): ToMarkdownTableNode;
12
+ getInputDefinitions(): NodeInputDefinition[];
13
+ getOutputDefinitions(): NodeOutputDefinition[];
14
+ getEditors(): EditorDefinition<ToMarkdownTableNode>[];
15
+ getBody(): string | undefined;
16
+ static getUIData(): NodeUIData;
17
+ process(inputs: Inputs): Promise<Outputs>;
18
+ }
19
+ export declare const toMarkdownTableNode: import("../NodeDefinition.js").NodeDefinition<ToMarkdownTableNode>;
@@ -0,0 +1,21 @@
1
+ import { type ChartNode, type NodeInputDefinition, type PortId, type NodeOutputDefinition } from '../NodeBase.js';
2
+ import { NodeImpl, type NodeUIData } from '../NodeImpl.js';
3
+ import { type DataValue } from '../DataValue.js';
4
+ import { type EditorDefinition } from '../EditorDefinition.js';
5
+ export type ToTreeNode = ChartNode<'toTree', ToTreeNodeData>;
6
+ export type ToTreeNodeData = {
7
+ format: string;
8
+ childrenProperty: string;
9
+ useSortAlphabetically: boolean;
10
+ };
11
+ export declare class ToTreeNodeImpl extends NodeImpl<ToTreeNode> {
12
+ static create(): ToTreeNode;
13
+ getInputDefinitions(): NodeInputDefinition[];
14
+ getOutputDefinitions(): NodeOutputDefinition[];
15
+ getEditors(): EditorDefinition<ToTreeNode>[];
16
+ getBody(): string;
17
+ static getUIData(): NodeUIData;
18
+ buildTree(objects: unknown[], parentPath?: string, level?: number, isLast?: boolean): string;
19
+ process(inputs: Record<PortId, DataValue>): Promise<Record<PortId, DataValue>>;
20
+ }
21
+ export declare const toTreeNode: import("../NodeDefinition.js").NodeDefinition<ToTreeNode>;
@@ -1,7 +1,7 @@
1
1
  import { NodeImpl, type NodeUIData } from '../NodeImpl.js';
2
2
  import type { ChartNode, NodeInputDefinition, NodeOutputDefinition } from '../NodeBase.js';
3
- import type { ArrayDataValue, StringDataValue } from '../DataValue.js';
4
3
  import { type Outputs, type Inputs, type EditorDefinition, type NodeBodySpec } from '../../index.js';
4
+ import { type InternalProcessContext } from '../ProcessContext.js';
5
5
  export type UserInputNode = ChartNode<'userInput', UserInputNodeData>;
6
6
  export type UserInputNodeData = {
7
7
  prompt: string;
@@ -15,7 +15,6 @@ export declare class UserInputNodeImpl extends NodeImpl<UserInputNode> {
15
15
  getEditors(): EditorDefinition<UserInputNode>[];
16
16
  getBody(): string | NodeBodySpec | undefined;
17
17
  static getUIData(): NodeUIData;
18
- process(): Promise<Outputs>;
19
- getOutputValuesFromUserInput(questions: Inputs, answers: ArrayDataValue<StringDataValue>): Outputs;
18
+ process(inputs: Inputs, context: InternalProcessContext): Promise<Outputs>;
20
19
  }
21
20
  export declare const userInputNode: import("../NodeDefinition.js").NodeDefinition<UserInputNode>;
@@ -0,0 +1,23 @@
1
+ import { type ChartNode, type PortId, type NodeInputDefinition, type NodeOutputDefinition } from '../NodeBase.js';
2
+ import { type DataValue } from '../DataValue.js';
3
+ import { NodeImpl, type NodeBody, type NodeUIData } from '../NodeImpl.js';
4
+ import { type InternalProcessContext } from '../ProcessContext.js';
5
+ import type { EditorDefinition } from '../EditorDefinition.js';
6
+ export type WriteFileNode = ChartNode<'writeFile', WriteFileNodeData>;
7
+ type WriteFileNodeData = {
8
+ path: string;
9
+ usePathOutput: boolean;
10
+ asBinary?: boolean;
11
+ overwriteExistingFile?: boolean;
12
+ };
13
+ export declare class WriteFileNodeImpl extends NodeImpl<WriteFileNode> {
14
+ static create(): WriteFileNode;
15
+ getInputDefinitions(): NodeInputDefinition[];
16
+ getOutputDefinitions(): NodeOutputDefinition[];
17
+ static getUIData(): NodeUIData;
18
+ getEditors(): EditorDefinition<WriteFileNode>[];
19
+ getBody(): NodeBody;
20
+ process(inputData: Record<PortId, DataValue>, context: InternalProcessContext): Promise<Record<PortId, DataValue>>;
21
+ }
22
+ export declare const writeFileNode: import("../NodeDefinition.js").NodeDefinition<WriteFileNode>;
23
+ export {};
@@ -1,11 +1,14 @@
1
1
  import { type BaseDir } from './BaseDir.js';
2
- import { type NativeApi } from './NativeApi.js';
2
+ import { type NativeApi, type Status } from './NativeApi.js';
3
3
  export declare class BrowserNativeApi implements NativeApi {
4
+ createdir(_path: string, _recursive?: boolean, _baseDir?: BaseDir): Promise<Status>;
4
5
  readdir(_path: string, _baseDir: BaseDir): Promise<string[]>;
5
6
  readTextFile(_path: string, _baseDir: BaseDir): Promise<string>;
6
7
  readBinaryFile(_path: string, _baseDir: BaseDir): Promise<Blob>;
7
- writeTextFile(_path: string, _data: string, _baseDir?: BaseDir): Promise<void>;
8
- exec(command: string, args: string[], options?: {
9
- cwd?: string | undefined;
10
- } | undefined): Promise<void>;
8
+ writeTextFile(_path: string, _data: string, _baseDir?: BaseDir): Promise<Status>;
9
+ writeBinaryFile(_path: string, _data: Uint8Array, _baseDir?: BaseDir): Promise<Status>;
10
+ exists(_path: string, _baseDir?: BaseDir): Promise<boolean>;
11
+ join(..._paths: string[]): Promise<string>;
12
+ uniqueFilename(_path: string, _baseDir?: BaseDir): Promise<string>;
13
+ exec(): Promise<void>;
11
14
  }
@@ -6,11 +6,22 @@ export type ReadDirOptions = {
6
6
  relative?: boolean;
7
7
  ignores?: string[];
8
8
  };
9
+ export type Status = {
10
+ success: true;
11
+ } | {
12
+ success: false;
13
+ error: unknown;
14
+ };
9
15
  export interface NativeApi {
16
+ createdir(path: string, recursive?: boolean, baseDir?: BaseDir): Promise<Status>;
10
17
  readdir(path: string, baseDir?: BaseDir, options?: ReadDirOptions): Promise<string[]>;
11
18
  readTextFile(path: string, baseDir?: BaseDir): Promise<string>;
12
19
  readBinaryFile(path: string, baseDir?: BaseDir): Promise<Blob>;
13
- writeTextFile(path: string, data: string, baseDir?: BaseDir): Promise<void>;
20
+ writeTextFile(path: string, data: string, baseDir?: BaseDir): Promise<Status>;
21
+ writeBinaryFile(path: string, data: Uint8Array, baseDir?: BaseDir): Promise<Status>;
22
+ exists(path: string, baseDir?: BaseDir): Promise<boolean>;
23
+ join(...paths: string[]): Promise<string>;
24
+ uniqueFilename(path: string, baseDir?: BaseDir): Promise<string>;
14
25
  exec(command: string, args: string[], options?: {
15
26
  cwd?: string;
16
27
  }): Promise<void>;