|
1 | | -// Import blocks |
2 | | -import { AgentBlock } from './blocks/agent' |
3 | | -import { AirtableBlock } from './blocks/airtable' |
4 | | -import { ApiBlock } from './blocks/api' |
5 | | -import { BrowserUseBlock } from './blocks/browser_use' |
6 | | -// import { AutoblocksBlock } from './blocks/autoblocks' |
7 | | -import { ConditionBlock } from './blocks/condition' |
8 | | -import { ConfluenceBlock } from './blocks/confluence' |
9 | | -import { GoogleDocsBlock } from './blocks/google_docs' |
10 | | -import { GoogleDriveBlock } from './blocks/drive' |
11 | | -import { ElevenLabsBlock } from './blocks/elevenlabs' |
12 | | -import { EvaluatorBlock } from './blocks/evaluator' |
13 | | -import { ExaBlock } from './blocks/exa' |
14 | | -import { FileBlock } from './blocks/file' |
15 | | -import { FirecrawlBlock } from './blocks/firecrawl' |
16 | | -import { FunctionBlock } from './blocks/function' |
17 | | -import { GitHubBlock } from './blocks/github' |
18 | | -import { GmailBlock } from './blocks/gmail' |
19 | | -import { GoogleSearchBlock } from './blocks/google' |
20 | | -// import { GuestyBlock } from './blocks/guesty' |
21 | | -import { ImageGeneratorBlock } from './blocks/image_generator' |
22 | | -import { JinaBlock } from './blocks/jina' |
23 | | -import { LinkupBlock } from './blocks/linkup' |
24 | | -import { MistralParseBlock } from './blocks/mistral_parse' |
25 | | -import { JiraBlock } from './blocks/jira' |
26 | | -import { NotionBlock } from './blocks/notion' |
27 | | -import { OpenAIBlock } from './blocks/openai' |
28 | | -import { PerplexityBlock } from './blocks/perplexity' |
29 | | -import { PineconeBlock } from './blocks/pinecone' |
30 | | -import { RedditBlock } from './blocks/reddit' |
31 | | -import { RouterBlock } from './blocks/router' |
32 | | -import { SerperBlock } from './blocks/serper' |
33 | | -import { GoogleSheetsBlock } from './blocks/google_sheets' |
34 | | -import { SlackBlock } from './blocks/slack' |
35 | | -import { StagehandBlock } from './blocks/stagehand' |
36 | | -import { StagehandAgentBlock } from './blocks/stagehand_agent' |
37 | | -import { StarterBlock } from './blocks/starter' |
38 | | -import { SupabaseBlock } from './blocks/supabase' |
39 | | -import { TavilyBlock } from './blocks/tavily' |
40 | | -import { ThinkingBlock } from './blocks/thinking' |
41 | | -import { TranslateBlock } from './blocks/translate' |
42 | | -import { TwilioSMSBlock } from './blocks/twilio' |
43 | | -import { TypeformBlock } from './blocks/typeform' |
44 | | -import { VisionBlock } from './blocks/vision' |
45 | | -import { WhatsAppBlock } from './blocks/whatsapp' |
46 | | -import { XBlock } from './blocks/x' |
47 | | -import { YouTubeBlock } from './blocks/youtube' |
48 | | -import { BlockConfig } from './types' |
49 | | -import { Mem0Block } from './blocks/mem0' |
50 | | -import { S3Block } from './blocks/s3' |
51 | | -import { TelegramBlock } from './blocks/telegram' |
52 | | -import { ClayBlock } from './blocks/clay' |
| 1 | +import { |
| 2 | + registry, |
| 3 | + getAllBlocks, |
| 4 | + getBlock, |
| 5 | + getBlocksByCategory, |
| 6 | + getAllBlockTypes, |
| 7 | + isValidBlockType |
| 8 | +} from './registry' |
53 | 9 |
|
54 | | -// Export blocks for ease of use |
55 | 10 | export { |
56 | | - AgentBlock, |
57 | | - AirtableBlock, |
58 | | - ApiBlock, |
59 | | - BrowserUseBlock, |
60 | | - // AutoblocksBlock, |
61 | | - ElevenLabsBlock, |
62 | | - Mem0Block, |
63 | | - MistralParseBlock, |
64 | | - FunctionBlock, |
65 | | - VisionBlock, |
66 | | - FirecrawlBlock, |
67 | | - // GuestyBlock, |
68 | | - FileBlock, |
69 | | - GoogleSearchBlock, |
70 | | - JinaBlock, |
71 | | - LinkupBlock, |
72 | | - JiraBlock, |
73 | | - TranslateBlock, |
74 | | - SlackBlock, |
75 | | - GitHubBlock, |
76 | | - ConditionBlock, |
77 | | - SerperBlock, |
78 | | - TavilyBlock, |
79 | | - RouterBlock, |
80 | | - EvaluatorBlock, |
81 | | - YouTubeBlock, |
82 | | - NotionBlock, |
83 | | - GmailBlock, |
84 | | - SupabaseBlock, |
85 | | - XBlock, |
86 | | - StarterBlock, |
87 | | - PineconeBlock, |
88 | | - OpenAIBlock, |
89 | | - ExaBlock, |
90 | | - RedditBlock, |
91 | | - GoogleDriveBlock, |
92 | | - GoogleDocsBlock, |
93 | | - WhatsAppBlock, |
94 | | - GoogleSheetsBlock, |
95 | | - PerplexityBlock, |
96 | | - ConfluenceBlock, |
97 | | - TwilioSMSBlock, |
98 | | - ImageGeneratorBlock, |
99 | | - TypeformBlock, |
100 | | - ThinkingBlock, |
101 | | - StagehandBlock, |
102 | | - StagehandAgentBlock, |
103 | | - S3Block, |
104 | | - TelegramBlock, |
105 | | - ClayBlock, |
| 11 | + registry, |
| 12 | + getBlock, |
| 13 | + getBlocksByCategory, |
| 14 | + getAllBlockTypes, |
| 15 | + isValidBlockType, |
| 16 | + getAllBlocks |
106 | 17 | } |
107 | 18 |
|
108 | | -// Registry of all block configurations, alphabetically sorted |
109 | | -const blocks: Record<string, BlockConfig> = { |
110 | | - agent: AgentBlock, |
111 | | - airtable: AirtableBlock, |
112 | | - api: ApiBlock, |
113 | | - browser_use: BrowserUseBlock, |
114 | | - // autoblocks: AutoblocksBlock, |
115 | | - condition: ConditionBlock, |
116 | | - confluence: ConfluenceBlock, |
117 | | - elevenlabs: ElevenLabsBlock, |
118 | | - evaluator: EvaluatorBlock, |
119 | | - exa: ExaBlock, |
120 | | - firecrawl: FirecrawlBlock, |
121 | | - file: FileBlock, |
122 | | - function: FunctionBlock, |
123 | | - github: GitHubBlock, |
124 | | - gmail: GmailBlock, |
125 | | - google_docs: GoogleDocsBlock, |
126 | | - google_drive: GoogleDriveBlock, |
127 | | - google_search: GoogleSearchBlock, |
128 | | - google_sheets: GoogleSheetsBlock, |
129 | | - // guesty: GuestyBlock, |
130 | | - image_generator: ImageGeneratorBlock, |
131 | | - jina: JinaBlock, |
132 | | - linkup: LinkupBlock, |
133 | | - jira: JiraBlock, |
134 | | - mem0: Mem0Block, |
135 | | - mistral_parse: MistralParseBlock, |
136 | | - notion: NotionBlock, |
137 | | - openai: OpenAIBlock, |
138 | | - perplexity: PerplexityBlock, |
139 | | - pinecone: PineconeBlock, |
140 | | - reddit: RedditBlock, |
141 | | - router: RouterBlock, |
142 | | - s3: S3Block, |
143 | | - serper: SerperBlock, |
144 | | - stagehand: StagehandBlock, |
145 | | - stagehand_agent: StagehandAgentBlock, |
146 | | - slack: SlackBlock, |
147 | | - starter: StarterBlock, |
148 | | - supabase: SupabaseBlock, |
149 | | - tavily: TavilyBlock, |
150 | | - thinking: ThinkingBlock, |
151 | | - translate: TranslateBlock, |
152 | | - twilio_sms: TwilioSMSBlock, |
153 | | - typeform: TypeformBlock, |
154 | | - vision: VisionBlock, |
155 | | - whatsapp: WhatsAppBlock, |
156 | | - x: XBlock, |
157 | | - youtube: YouTubeBlock, |
158 | | - telegram: TelegramBlock, |
159 | | - clay: ClayBlock, |
160 | | -} |
161 | | - |
162 | | -// Helper functions |
163 | | -export const getBlock = (type: string): BlockConfig | undefined => blocks[type] |
164 | | - |
165 | | -export const getBlocksByCategory = (category: 'blocks' | 'tools'): BlockConfig[] => |
166 | | - Object.values(blocks).filter((block) => block.category === category) |
167 | | - |
168 | | -export const getAllBlockTypes = (): string[] => Object.keys(blocks) |
169 | | - |
170 | | -export const isValidBlockType = (type: string): type is string => type in blocks |
171 | | - |
172 | | -export const getAllBlocks = (): BlockConfig[] => Object.values(blocks) |
| 19 | +export type { BlockConfig } from './types' |
0 commit comments