Skip to content

Commit 3109104

Browse files
committed
improvement(platform): workspace UI/UX overhaul + integrations catalog
Rework the workspace around the AI-workspace model: a Mothership home, a top-level Skills route, connected-credential and integration-detail pages, and a polished sidebar/settings surface. Replace the notifications store with a unified toast system (provider-level dismiss/pause, countdown ring). Integrations & catalog: - Add a BlockMeta layer (tags + catalog templates) scoped to catalog-visible integrations; every catalog integration carries >=7 grounded templates. - Rework the taxonomy: each block declares category tools|blocks|triggers. 3rd-party services are 'tools'; first-party primitives (postgres, mysql, knowledge, file, search, stt/tts, image/video generators, thinking, etc.) are 'blocks'. Versioned blocks follow the upgrade paradigm (old hidden, latest in toolbar/docs). - Generate integrations.json + tool docs canonically from block configs. Architecture & cleanup: - Consolidate block data extraction behind a single latest-version strategy (getCanonicalBlocksByCategory; version-consistent getBlockMeta). - Unify version-suffix handling in @sim/utils/string (stripVersionSuffix / isVersionedType, with tests); registry, generate-docs, tools/utils, and integrations all route through it. - Repair latent broken barrels, remove dead code, fix BlockMeta-related type errors and 5 broken docs links. Behavior-preserving for block execution and the toolbar's tool/block listing.
1 parent c898e2e commit 3109104

881 files changed

Lines changed: 24509 additions & 15004 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/docs/components/icons.tsx

Lines changed: 26 additions & 34 deletions
Large diffs are not rendered by default.

apps/docs/components/ui/icon-mapping.ts

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import type { ComponentType, SVGProps } from 'react'
66
import {
7-
A2AIcon,
87
AgentMailIcon,
98
AgentPhoneIcon,
109
AgiloftIcon,
@@ -20,7 +19,6 @@ import {
2019
AshbyIcon,
2120
AthenaIcon,
2221
AttioIcon,
23-
AzureDevOpsIcon,
2422
AzureIcon,
2523
BoxCompanyIcon,
2624
BrainIcon,
@@ -96,7 +94,6 @@ import {
9694
HunterIOIcon,
9795
IAMIcon,
9896
IdentityCenterIcon,
99-
ImageIcon,
10097
IncidentioIcon,
10198
InfisicalIcon,
10299
InstantlyIcon,
@@ -127,7 +124,6 @@ import {
127124
MistralIcon,
128125
MondayIcon,
129126
MongoDBIcon,
130-
MySQLIcon,
131127
Neo4jIcon,
132128
NewRelicIcon,
133129
NotionIcon,
@@ -144,7 +140,6 @@ import {
144140
PineconeIcon,
145141
PipedriveIcon,
146142
PolymarketIcon,
147-
PostgresIcon,
148143
PosthogIcon,
149144
ProfoundIcon,
150145
ProspeoIcon,
@@ -165,20 +160,16 @@ import {
165160
SapConcurIcon,
166161
SapS4HanaIcon,
167162
SESIcon,
168-
SearchIcon,
169163
SecretsManagerIcon,
170164
SendgridIcon,
171165
SentryIcon,
172166
SerperIcon,
173167
ServiceNowIcon,
174-
SftpIcon,
175168
ShopifyIcon,
176169
SimilarwebIcon,
177170
SixtyfourIcon,
178171
SlackIcon,
179-
SmtpIcon,
180172
SQSIcon,
181-
SshIcon,
182173
STSIcon,
183174
STTIcon,
184175
StagehandIcon,
@@ -189,9 +180,7 @@ import {
189180
TelegramIcon,
190181
TextractIcon,
191182
TinybirdIcon,
192-
TranslateIcon,
193183
TrelloIcon,
194-
TTSIcon,
195184
TwilioIcon,
196185
TypeformIcon,
197186
UpstashIcon,
@@ -215,7 +204,6 @@ import {
215204
type IconComponent = ComponentType<SVGProps<SVGSVGElement>>
216205

217206
export const blockTypeToIconMap: Record<string, IconComponent> = {
218-
a2a: A2AIcon,
219207
agentmail: AgentMailIcon,
220208
agentphone: AgentPhoneIcon,
221209
agiloft: AgiloftIcon,
@@ -231,7 +219,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
231219
ashby: AshbyIcon,
232220
athena: AthenaIcon,
233221
attio: AttioIcon,
234-
azure_devops: AzureDevOpsIcon,
222+
azure_devops: AzureIcon,
235223
box: BoxCompanyIcon,
236224
brandfetch: BrandfetchIcon,
237225
brightdata: BrightDataIcon,
@@ -271,7 +259,6 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
271259
fathom: FathomIcon,
272260
file: DocumentIcon,
273261
file_v2: DocumentIcon,
274-
file_v3: DocumentIcon,
275262
file_v4: DocumentIcon,
276263
findymail: FindymailIcon,
277264
firecrawl: FirecrawlIcon,
@@ -316,8 +303,6 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
316303
hunter: HunterIOIcon,
317304
iam: IAMIcon,
318305
identity_center: IdentityCenterIcon,
319-
image_generator: ImageIcon,
320-
image_generator_v2: ImageIcon,
321306
imap: MailServerIcon,
322307
incidentio: IncidentioIcon,
323308
infisical: InfisicalIcon,
@@ -355,7 +340,6 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
355340
mistral_parse_v3: MistralIcon,
356341
monday: MondayIcon,
357342
mongodb: MongoDBIcon,
358-
mysql: MySQLIcon,
359343
neo4j: Neo4jIcon,
360344
new_relic: NewRelicIcon,
361345
notion: NotionIcon,
@@ -373,7 +357,6 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
373357
pinecone: PineconeIcon,
374358
pipedrive: PipedriveIcon,
375359
polymarket: PolymarketIcon,
376-
postgresql: PostgresIcon,
377360
posthog: PosthogIcon,
378361
profound: ProfoundIcon,
379362
prospeo: ProspeoIcon,
@@ -395,23 +378,19 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
395378
salesforce: SalesforceIcon,
396379
sap_concur: SapConcurIcon,
397380
sap_s4hana: SapS4HanaIcon,
398-
search: SearchIcon,
399381
secrets_manager: SecretsManagerIcon,
400382
sendgrid: SendgridIcon,
401383
sentry: SentryIcon,
402384
serper: SerperIcon,
403385
servicenow: ServiceNowIcon,
404386
ses: SESIcon,
405-
sftp: SftpIcon,
406387
sharepoint: MicrosoftSharepointIcon,
407388
sharepoint_v2: MicrosoftSharepointIcon,
408389
shopify: ShopifyIcon,
409390
similarweb: SimilarwebIcon,
410391
sixtyfour: SixtyfourIcon,
411392
slack: SlackIcon,
412-
smtp: SmtpIcon,
413393
sqs: SQSIcon,
414-
ssh: SshIcon,
415394
stagehand: StagehandIcon,
416395
stripe: StripeIcon,
417396
sts: STSIcon,
@@ -424,17 +403,14 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
424403
textract: TextractIcon,
425404
textract_v2: TextractIcon,
426405
tinybird: TinybirdIcon,
427-
translate: TranslateIcon,
428406
trello: TrelloIcon,
429-
tts: TTSIcon,
430407
twilio_sms: TwilioIcon,
431408
twilio_voice: TwilioIcon,
432409
typeform: TypeformIcon,
433410
upstash: UpstashIcon,
434411
vercel: VercelIcon,
435412
video_generator: VideoIcon,
436413
video_generator_v2: VideoIcon,
437-
video_generator_v3: VideoIcon,
438414
vision: EyeIcon,
439415
vision_v2: EyeIcon,
440416
wealthbox: WealthboxIcon,
File renamed without changes.

apps/docs/content/docs/en/blocks/meta.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99
"function",
1010
"guardrails",
1111
"human-in-the-loop",
12+
"knowledge",
1213
"loop",
1314
"parallel",
1415
"response",
1516
"router",
17+
"table",
1618
"variables",
1719
"wait",
1820
"webhook",
File renamed without changes.

apps/docs/content/docs/en/mothership/tables.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ Export a full table or a filtered subset as a CSV. The file is saved to your wor
5151

5252
## Using Tables in Workflows
5353

54-
Tables created in Mothership are immediately available in workflows via the [Table tool](/tools/table). Reference a table by name — no additional configuration needed.
54+
Tables created in Mothership are immediately available in workflows via the [Table block](/blocks/table). Reference a table by name — no additional configuration needed.
5555

5656
<FAQ items={[
5757
{ question: "Can Mothership join or combine data from multiple tables?", answer: "Yes. Describe the relationship and what you want — Mothership will query both tables and combine the results." },
5858
{ question: "Is there a row limit?", answer: "There is no hard row limit set by Mothership. Performance for very large tables may vary." },
59-
{ question: "Can I use a table created in Mothership as a workflow data source?", answer: "Yes. All workspace tables are accessible to the Table tool in any workflow." },
59+
{ question: "Can I use a table created in Mothership as a workflow data source?", answer: "Yes. All workspace tables are accessible to the Table block in any workflow." },
6060
]} />

0 commit comments

Comments
 (0)