mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-06 03:00:16 -04:00
* fix(billing): should allow restoring subscription (#1728) * fix(already-cancelled-sub): UI should allow restoring subscription * restore functionality fixed * fix * improvement(start): revert to start block * make it work with start block * fix start block persistence * cleanup triggers * debounce status checks * update docs * improvement(start): revert to start block * make it work with start block * fix start block persistence * cleanup triggers * debounce status checks * update docs * SSE v0.1 * v0.2 * v0.3 * v0.4 * v0.5 * v0.6 * broken checkpoint * Executor progress - everything preliminarily tested except while loops and triggers * Executor fixes * Fix var typing * Implement while loop execution * Loop and parallel result agg * Refactor v1 - loops work * Fix var resolution in for each loop * Fix while loop condition and variable resolution * Fix loop iteration counts * Fix loop badges * Clean logs * Fix variable references from start block * Fix condition block * Fix conditional convergence * Dont execute orphaned nodse * Code cleanup 1 and error surfacing * compile time try catch * Some fixes * Fix error throwing * Sentinels v1 * Fix multiple start and end nodes in loop * Edge restoration * Fix reachable nodes execution * Parallel subflows * Fix loop/parallel sentinel convergence * Loops and parallels orchestrator * Split executor * Variable resolution split * Dag phase * Refactor * Refactor * Refactor 3 * Lint + refactor * Lint + cleanup + refactor * Readability * Initial logs * Fix trace spans * Console pills for iters * Add input/output pills * Checkpoint * remove unused code * THIS IS THE COMMIT THAT CAN BREAK A LOT OF THINGS * ANOTHER BIG REFACTOR * Lint + fix tests * Fix webhook * Remove comment * Merge stash * Fix triggers? * Stuff * Fix error port * Lint * Consolidate state * Clean up some var resolution * Remove some var resolution logs * Fix chat * Fix chat triggers * Fix chat trigger fully * Snapshot refactor * Fix mcp and custom tools * Lint * Fix parallel default count and trace span overlay * Agent purple * Fix test * Fix test --------- Co-authored-by: Waleed <walif6@gmail.com> Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com> Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
196 lines
8.0 KiB
TypeScript
196 lines
8.0 KiB
TypeScript
import { AgentBlock } from '@/blocks/blocks/agent'
|
|
import { AirtableBlock } from '@/blocks/blocks/airtable'
|
|
import { ApiBlock } from '@/blocks/blocks/api'
|
|
import { ApiTriggerBlock } from '@/blocks/blocks/api_trigger'
|
|
import { ArxivBlock } from '@/blocks/blocks/arxiv'
|
|
import { BrowserUseBlock } from '@/blocks/blocks/browser_use'
|
|
import { ChatTriggerBlock } from '@/blocks/blocks/chat_trigger'
|
|
import { ClayBlock } from '@/blocks/blocks/clay'
|
|
import { ConditionBlock } from '@/blocks/blocks/condition'
|
|
import { ConfluenceBlock } from '@/blocks/blocks/confluence'
|
|
import { DiscordBlock } from '@/blocks/blocks/discord'
|
|
import { ElevenLabsBlock } from '@/blocks/blocks/elevenlabs'
|
|
import { EvaluatorBlock } from '@/blocks/blocks/evaluator'
|
|
import { ExaBlock } from '@/blocks/blocks/exa'
|
|
import { FileBlock } from '@/blocks/blocks/file'
|
|
import { FirecrawlBlock } from '@/blocks/blocks/firecrawl'
|
|
import { FunctionBlock } from '@/blocks/blocks/function'
|
|
import { GenericWebhookBlock } from '@/blocks/blocks/generic_webhook'
|
|
import { GitHubBlock } from '@/blocks/blocks/github'
|
|
import { GmailBlock } from '@/blocks/blocks/gmail'
|
|
import { GoogleSearchBlock } from '@/blocks/blocks/google'
|
|
import { GoogleCalendarBlock } from '@/blocks/blocks/google_calendar'
|
|
import { GoogleDocsBlock } from '@/blocks/blocks/google_docs'
|
|
import { GoogleDriveBlock } from '@/blocks/blocks/google_drive'
|
|
import { GoogleFormsBlock } from '@/blocks/blocks/google_form'
|
|
import { GoogleSheetsBlock } from '@/blocks/blocks/google_sheets'
|
|
import { GoogleVaultBlock } from '@/blocks/blocks/google_vault'
|
|
import { GuardrailsBlock } from '@/blocks/blocks/guardrails'
|
|
import { HuggingFaceBlock } from '@/blocks/blocks/huggingface'
|
|
import { HunterBlock } from '@/blocks/blocks/hunter'
|
|
import { ImageGeneratorBlock } from '@/blocks/blocks/image_generator'
|
|
import { InputTriggerBlock } from '@/blocks/blocks/input_trigger'
|
|
import { JinaBlock } from '@/blocks/blocks/jina'
|
|
import { JiraBlock } from '@/blocks/blocks/jira'
|
|
import { KnowledgeBlock } from '@/blocks/blocks/knowledge'
|
|
import { LinearBlock } from '@/blocks/blocks/linear'
|
|
import { LinkupBlock } from '@/blocks/blocks/linkup'
|
|
import { ManualTriggerBlock } from '@/blocks/blocks/manual_trigger'
|
|
import { McpBlock } from '@/blocks/blocks/mcp'
|
|
import { Mem0Block } from '@/blocks/blocks/mem0'
|
|
import { MemoryBlock } from '@/blocks/blocks/memory'
|
|
import { MicrosoftExcelBlock } from '@/blocks/blocks/microsoft_excel'
|
|
import { MicrosoftPlannerBlock } from '@/blocks/blocks/microsoft_planner'
|
|
import { MicrosoftTeamsBlock } from '@/blocks/blocks/microsoft_teams'
|
|
import { MistralParseBlock } from '@/blocks/blocks/mistral_parse'
|
|
import { MongoDBBlock } from '@/blocks/blocks/mongodb'
|
|
import { MySQLBlock } from '@/blocks/blocks/mysql'
|
|
import { NotionBlock } from '@/blocks/blocks/notion'
|
|
import { OneDriveBlock } from '@/blocks/blocks/onedrive'
|
|
import { OpenAIBlock } from '@/blocks/blocks/openai'
|
|
import { OutlookBlock } from '@/blocks/blocks/outlook'
|
|
import { ParallelBlock } from '@/blocks/blocks/parallel'
|
|
import { PerplexityBlock } from '@/blocks/blocks/perplexity'
|
|
import { PineconeBlock } from '@/blocks/blocks/pinecone'
|
|
import { PostgreSQLBlock } from '@/blocks/blocks/postgresql'
|
|
import { QdrantBlock } from '@/blocks/blocks/qdrant'
|
|
import { RedditBlock } from '@/blocks/blocks/reddit'
|
|
import { ResendBlock } from '@/blocks/blocks/resend'
|
|
import { ResponseBlock } from '@/blocks/blocks/response'
|
|
import { RouterBlock } from '@/blocks/blocks/router'
|
|
import { S3Block } from '@/blocks/blocks/s3'
|
|
import { ScheduleBlock } from '@/blocks/blocks/schedule'
|
|
import { SerperBlock } from '@/blocks/blocks/serper'
|
|
import { SharepointBlock } from '@/blocks/blocks/sharepoint'
|
|
import { SlackBlock } from '@/blocks/blocks/slack'
|
|
import { StagehandBlock } from '@/blocks/blocks/stagehand'
|
|
import { StagehandAgentBlock } from '@/blocks/blocks/stagehand_agent'
|
|
import { StartTriggerBlock } from '@/blocks/blocks/start_trigger'
|
|
import { StarterBlock } from '@/blocks/blocks/starter'
|
|
import { SupabaseBlock } from '@/blocks/blocks/supabase'
|
|
import { TavilyBlock } from '@/blocks/blocks/tavily'
|
|
import { TelegramBlock } from '@/blocks/blocks/telegram'
|
|
import { ThinkingBlock } from '@/blocks/blocks/thinking'
|
|
import { TranslateBlock } from '@/blocks/blocks/translate'
|
|
import { TwilioSMSBlock } from '@/blocks/blocks/twilio'
|
|
import { TypeformBlock } from '@/blocks/blocks/typeform'
|
|
import { VariablesBlock } from '@/blocks/blocks/variables'
|
|
import { VisionBlock } from '@/blocks/blocks/vision'
|
|
import { WaitBlock } from '@/blocks/blocks/wait'
|
|
import { WealthboxBlock } from '@/blocks/blocks/wealthbox'
|
|
import { WebflowBlock } from '@/blocks/blocks/webflow'
|
|
import { WebhookBlock } from '@/blocks/blocks/webhook'
|
|
import { WhatsAppBlock } from '@/blocks/blocks/whatsapp'
|
|
import { WikipediaBlock } from '@/blocks/blocks/wikipedia'
|
|
import { WorkflowBlock } from '@/blocks/blocks/workflow'
|
|
import { WorkflowInputBlock } from '@/blocks/blocks/workflow_input'
|
|
import { XBlock } from '@/blocks/blocks/x'
|
|
import { YouTubeBlock } from '@/blocks/blocks/youtube'
|
|
import { ZepBlock } from '@/blocks/blocks/zep'
|
|
import type { BlockConfig } from '@/blocks/types'
|
|
|
|
// Registry of all available blocks, alphabetically sorted
|
|
export const registry: Record<string, BlockConfig> = {
|
|
agent: AgentBlock,
|
|
airtable: AirtableBlock,
|
|
api: ApiBlock,
|
|
arxiv: ArxivBlock,
|
|
browser_use: BrowserUseBlock,
|
|
clay: ClayBlock,
|
|
condition: ConditionBlock,
|
|
confluence: ConfluenceBlock,
|
|
discord: DiscordBlock,
|
|
elevenlabs: ElevenLabsBlock,
|
|
evaluator: EvaluatorBlock,
|
|
exa: ExaBlock,
|
|
firecrawl: FirecrawlBlock,
|
|
file: FileBlock,
|
|
function: FunctionBlock,
|
|
generic_webhook: GenericWebhookBlock,
|
|
github: GitHubBlock,
|
|
gmail: GmailBlock,
|
|
guardrails: GuardrailsBlock,
|
|
google_calendar: GoogleCalendarBlock,
|
|
google_docs: GoogleDocsBlock,
|
|
google_drive: GoogleDriveBlock,
|
|
google_forms: GoogleFormsBlock,
|
|
google_search: GoogleSearchBlock,
|
|
google_sheets: GoogleSheetsBlock,
|
|
google_vault: GoogleVaultBlock,
|
|
huggingface: HuggingFaceBlock,
|
|
hunter: HunterBlock,
|
|
image_generator: ImageGeneratorBlock,
|
|
jina: JinaBlock,
|
|
jira: JiraBlock,
|
|
knowledge: KnowledgeBlock,
|
|
linear: LinearBlock,
|
|
linkup: LinkupBlock,
|
|
mcp: McpBlock,
|
|
mem0: Mem0Block,
|
|
zep: ZepBlock,
|
|
microsoft_excel: MicrosoftExcelBlock,
|
|
microsoft_planner: MicrosoftPlannerBlock,
|
|
microsoft_teams: MicrosoftTeamsBlock,
|
|
mistral_parse: MistralParseBlock,
|
|
mongodb: MongoDBBlock,
|
|
mysql: MySQLBlock,
|
|
notion: NotionBlock,
|
|
openai: OpenAIBlock,
|
|
outlook: OutlookBlock,
|
|
onedrive: OneDriveBlock,
|
|
parallel_ai: ParallelBlock,
|
|
perplexity: PerplexityBlock,
|
|
pinecone: PineconeBlock,
|
|
postgresql: PostgreSQLBlock,
|
|
qdrant: QdrantBlock,
|
|
resend: ResendBlock,
|
|
memory: MemoryBlock,
|
|
reddit: RedditBlock,
|
|
response: ResponseBlock,
|
|
router: RouterBlock,
|
|
schedule: ScheduleBlock,
|
|
s3: S3Block,
|
|
serper: SerperBlock,
|
|
sharepoint: SharepointBlock,
|
|
// sms: SMSBlock,
|
|
stagehand: StagehandBlock,
|
|
stagehand_agent: StagehandAgentBlock,
|
|
slack: SlackBlock,
|
|
starter: StarterBlock,
|
|
start_trigger: StartTriggerBlock,
|
|
input_trigger: InputTriggerBlock,
|
|
chat_trigger: ChatTriggerBlock,
|
|
manual_trigger: ManualTriggerBlock,
|
|
api_trigger: ApiTriggerBlock,
|
|
supabase: SupabaseBlock,
|
|
tavily: TavilyBlock,
|
|
telegram: TelegramBlock,
|
|
thinking: ThinkingBlock,
|
|
translate: TranslateBlock,
|
|
twilio_sms: TwilioSMSBlock,
|
|
typeform: TypeformBlock,
|
|
variables: VariablesBlock,
|
|
vision: VisionBlock,
|
|
wait: WaitBlock,
|
|
wealthbox: WealthboxBlock,
|
|
webflow: WebflowBlock,
|
|
webhook: WebhookBlock,
|
|
whatsapp: WhatsAppBlock,
|
|
wikipedia: WikipediaBlock,
|
|
workflow: WorkflowBlock,
|
|
workflow_input: WorkflowInputBlock,
|
|
x: XBlock,
|
|
youtube: YouTubeBlock,
|
|
}
|
|
|
|
export const getBlock = (type: string): BlockConfig | undefined => registry[type]
|
|
|
|
export const getBlocksByCategory = (category: 'blocks' | 'tools' | 'triggers'): BlockConfig[] =>
|
|
Object.values(registry).filter((block) => block.category === category)
|
|
|
|
export const getAllBlockTypes = (): string[] => Object.keys(registry)
|
|
|
|
export const isValidBlockType = (type: string): type is string => type in registry
|
|
|
|
export const getAllBlocks = (): BlockConfig[] => Object.values(registry)
|