Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
18cee3d
docs: reorganize into topic/ontology IA with a builder-first rewrite
ouiliame Jun 6, 2026
ce5b32e
feat(docs): spec-driven BlockPreview for block reference heroes
ouiliame Jun 8, 2026
2a9230d
fix(docs): correct stale navigation and removed-feature references
ouiliame Jun 8, 2026
841e73c
fix(docs): repair broken /docs-prefixed enterprise links
ouiliame Jun 9, 2026
099d14e
fix(docs): refresh stale workflow-preview example blocks
ouiliame Jun 9, 2026
bdba6bd
fix(docs): align BlockPreview input/output handles to the card edge
ouiliame Jun 9, 2026
1260685
docs(blocks): rewrite Agent reference to match the current block
ouiliame Jun 9, 2026
0913574
docs(blocks): rewrite API reference to match the current block
ouiliame Jun 9, 2026
8df8e46
docs(blocks): rewrite Condition reference to match the current block
ouiliame Jun 9, 2026
5d214ba
docs(blocks): restore Best Practices + multi-example workflows on Con…
ouiliame Jun 9, 2026
b06228e
docs(blocks): restore Best Practices on Agent reference
ouiliame Jun 9, 2026
4b11b8d
docs(blocks): restore Best Practices on API reference
ouiliame Jun 9, 2026
3feeefc
docs(blocks): rewrite Function reference to match the current block
ouiliame Jun 9, 2026
83c025a
docs(blocks): rewrite Router reference to match the current block
ouiliame Jun 9, 2026
3dbcc8b
docs(blocks): restore the classify and lead-qual examples on Router
ouiliame Jun 9, 2026
bd9d87f
docs(blocks): rewrite Response reference to match the current block
ouiliame Jun 9, 2026
e771efe
docs(blocks): rewrite Variables reference to match the current block
ouiliame Jun 9, 2026
9ecfebf
docs(blocks): rewrite Wait reference to match the current block
ouiliame Jun 9, 2026
7aa2d80
docs(blocks): polish Credential reference (frontmatter, fold redundan…
ouiliame Jun 9, 2026
7d411eb
docs(blocks): render the shared-credential example + icon fallback fo…
ouiliame Jun 9, 2026
d2acb94
docs(blocks): rewrite Evaluator reference to match the current block
ouiliame Jun 9, 2026
00f2614
docs(blocks): render the Credential route-by-logic example too
ouiliame Jun 9, 2026
553e8b5
docs(blocks): render Guardrails examples + light accuracy pass
ouiliame Jun 9, 2026
557cb35
docs(blocks): render Human-in-the-Loop examples + frontmatter
ouiliame Jun 9, 2026
135cdd4
docs(blocks): render Webhook examples + frontmatter
ouiliame Jun 9, 2026
aebf100
docs(blocks): add example + pageType to Workflow block reference
ouiliame Jun 9, 2026
47d6a7b
docs(blocks): container rendering for Loop/Parallel + render the Loop…
ouiliame Jun 9, 2026
0d058ea
docs(blocks): fix the Loop container's Start-pill connector
ouiliame Jun 9, 2026
19c309f
docs(blocks): render the Parallel example + frontmatter (last core bl…
ouiliame Jun 9, 2026
a79cf1a
docs(blocks): prose glow-up for Guardrails to match the agent/conditi…
ouiliame Jun 9, 2026
227b0aa
docs(blocks): prose glow-up for Loop to match the agent/condition voice
ouiliame Jun 9, 2026
20ca934
docs(blocks): prose glow-up for Parallel to match the agent/condition…
ouiliame Jun 9, 2026
c7b6fa5
docs(blocks): prose glow-up for Human-in-the-Loop
ouiliame Jun 9, 2026
1a2f40b
docs(blocks): re-enrich Loop prose (fuller, explanatory — not terse)
ouiliame Jun 9, 2026
6e1f266
docs(blocks): re-balance Parallel prose to the Agent/Condition register
ouiliame Jun 9, 2026
f4089cd
docs(blocks): restore the Notification channel detail on HITL
ouiliame Jun 9, 2026
645bbcc
docs(blocks): builder-voice polish on the Credential intro
ouiliame Jun 9, 2026
cc32437
docs(triggers): rewrite Start trigger in the builder voice
ouiliame Jun 9, 2026
a59cb88
docs(triggers): rewrite Schedule trigger in the builder voice
ouiliame Jun 9, 2026
5e635b2
docs(triggers): refocus Webhook trigger on the generic (native) trigger
ouiliame Jun 9, 2026
ea4b1e9
docs(triggers): builder-voice glow-up for RSS
ouiliame Jun 9, 2026
82d625c
docs(triggers): rewrite Table trigger off the auto-generated card
ouiliame Jun 9, 2026
22a8eab
docs(triggers): frame the index around native triggers + separate the…
ouiliame Jun 9, 2026
f037c73
docs: promote Core Blocks + Core Triggers into the Workflows area
ouiliame Jun 9, 2026
1405f79
docs: merge block/trigger overviews into the Workflows overview; Core…
ouiliame Jun 9, 2026
5f886b4
docs: split integration triggers into their own Reference accordion
ouiliame Jun 9, 2026
ab1dd37
docs(workflows): trim the overview back to an introduction
ouiliame Jun 9, 2026
88e7912
docs: relocate email-polling + trigger-priority out of the overview
ouiliame Jun 9, 2026
5ebd28e
docs: spec for per-service integration pages (block index, triggers b…
ouiliame Jun 9, 2026
d90c668
feat(docs-gen): emit per-service integration pages (actions + Trigger…
ouiliame Jun 9, 2026
151576c
feat(docs): unify tools + triggers into per-service /integrations pages
ouiliame Jun 9, 2026
f99ff92
fix(docs): recover the hand-written manual-content intros on integrat…
ouiliame Jun 9, 2026
aa9bf0d
docs(scripts): rewrite the generator README for the integrations model
ouiliame Jun 9, 2026
e09059b
Merge remote-tracking branch 'origin/staging' into feat/docs-reorg
ouiliame Jun 9, 2026
33cc459
docs: regenerate integration docs from staging-synced apps/sim
ouiliame Jun 9, 2026
64c68de
fix(docs-gen): don't let stale-doc cleanup delete hand-written integr…
ouiliame Jun 9, 2026
fd58363
fix(docs-gen): stop cleanup/writer filter mismatch from eating manual…
ouiliame Jun 9, 2026
d1f51a1
fix(docs): recover staging's enriched Table doc + never drop manual c…
ouiliame Jun 9, 2026
215f3e9
docs(workspaces): de-philosophize the fundamentals prose
ouiliame Jun 9, 2026
a9026c3
fix(docs): restore #blocks and #triggers anchors on the workflows ove…
ouiliame Jun 9, 2026
6769487
docs: restore the genuinely useful reference bits the rewrite dropped
ouiliame Jun 9, 2026
d80d7f9
docs(blocks): rework the Agent intro — encyclopedia register
ouiliame Jun 9, 2026
033b74d
docs(integrations): add the HubSpot setup guide for the Marketplace l…
ouiliame Jun 9, 2026
8357027
docs(integrations): rewrite the Integrations guide for the sidebar flow
ouiliame Jun 9, 2026
19a75a7
docs: move Building agents directly after Workflows in the sidebar
ouiliame Jun 9, 2026
2c1161a
docs: fill the visual slots coverable by existing components
ouiliame Jun 9, 2026
8ca47c7
docs(components): run-inspector OutputBundle + lightbox with block in…
ouiliame Jun 9, 2026
a4f62f0
Merge remote-tracking branch 'origin/staging' into feat/docs-reorg
ouiliame Jun 9, 2026
f6a1868
docs: regenerate after staging merge — AppConfig joins integrations/
ouiliame Jun 9, 2026
46e75dc
docs: redirect the retired tools/ and trigger URLs to integrations/
ouiliame Jun 9, 2026
367912b
docs(getting-started): rewrite — current UI, cut the post-tutorial pa…
ouiliame Jun 9, 2026
f037f6e
docs: de-fluff the Tier-1 heavy pages (logging, mcp, passing-files, p…
ouiliame Jun 9, 2026
b6db2a1
docs: tier-2 fluff trims (costs, enterprise, mailer, skills)
ouiliame Jun 9, 2026
8f6cf81
docs(skills): update to the Skills tab on the Integrations page + doc…
ouiliame Jun 9, 2026
08385f0
docs(building-agents): render the lead-scorer running example on choo…
ouiliame Jun 9, 2026
31570d1
docs: visuals manifest — every screenshot and walkthrough, with status
ouiliame Jun 9, 2026
6ba31fb
docs(tables): rewrite workflow columns around the real lead-scoring e…
ouiliame Jun 9, 2026
641a281
Merge remote-tracking branch 'origin/staging' into feat/docs-reorg
ouiliame Jun 9, 2026
e7f242a
docs: regenerate after staging merge — Slack trigger update + file bl…
ouiliame Jun 9, 2026
54e9c4e
docs(tables): playbook prose pass on workflow columns + restore File …
ouiliame Jun 9, 2026
c3688ba
docs(tables): per-row execution inspection on workflow columns
ouiliame Jun 9, 2026
2240b3e
docs(workflows): drop the confusing 'order by hand' sentence
ouiliame Jun 9, 2026
f081750
docs(workflows): fix the over-claim about independent blocks
ouiliame Jun 9, 2026
b90b3db
docs(workflows): accuracy audit of how-it-runs against the executor
ouiliame Jun 9, 2026
d2b215d
docs(logs): real captures on the overview + prose matched to the UI
ouiliame Jun 9, 2026
5da5a25
docs(workflows): one reference syntax, named sources — untangle varia…
ouiliame Jun 9, 2026
03a433e
docs(workflows): verify the reference model against the resolver; fix…
ouiliame Jun 9, 2026
d4a0245
docs(building-agents): workflow-as-tool is agent-decided, not the Wor…
ouiliame Jun 9, 2026
979506a
docs: theme-aware previews + enrichments vs workflow groups split
ouiliame Jun 10, 2026
ba8b465
docs(tables): don't enumerate the enrichment catalog; don't assert a …
ouiliame Jun 10, 2026
f7c0b49
docs(components): per-branch source handles — conditions and routers …
ouiliame Jun 10, 2026
55056de
docs(components): inspector shows branch rows
ouiliame Jun 10, 2026
dedd5bb
docs(components): branch handle ids match the app's workflow represen…
ouiliame Jun 10, 2026
f1e56fa
Merge remote-tracking branch 'origin/staging' into feat/docs-reorg
ouiliame Jun 10, 2026
fde93de
docs: agent skills mint /integrations/ docs links and describe the ne…
ouiliame Jun 10, 2026
774d3a7
docs(workflows): execution semantics, not simultaneity
ouiliame Jun 10, 2026
45f4c58
docs(workflows): errors are execution semantics — own section on how-…
ouiliame Jun 10, 2026
41bdc46
Merge remote-tracking branch 'origin/staging' into feat/docs-reorg
ouiliame Jun 10, 2026
9469bc4
docs: data-driven additions from the platform-metrics read
ouiliame Jun 10, 2026
e175ae9
Merge remote-tracking branch 'origin/staging' into feat/docs-reorg
ouiliame Jun 10, 2026
4b546b1
docs: regenerate after staging merge (integration validation batch + …
ouiliame Jun 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions apps/docs/app/[lang]/[[...slug]]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ import type { ApiPageProps } from 'fumadocs-openapi/ui'
import { createAPIPage } from 'fumadocs-openapi/ui'
import { Pre } from 'fumadocs-ui/components/codeblock'
import defaultMdxComponents from 'fumadocs-ui/mdx'
import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/page'
import { DocsBody, DocsPage, DocsTitle } from 'fumadocs-ui/page'
import { notFound } from 'next/navigation'
import { PageFooter } from '@/components/docs-layout/page-footer'
import { PageNavigationArrows } from '@/components/docs-layout/page-navigation-arrows'
import { LLMCopyButton } from '@/components/page-actions'
import { PageTypeBadge } from '@/components/page-type-badge'
import { StructuredData } from '@/components/structured-data'
import { CodeBlock } from '@/components/ui/code-block'
import { Heading } from '@/components/ui/heading'
Expand Down Expand Up @@ -173,7 +174,6 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
<PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} />
</div>
<DocsTitle className='mb-2'>{data.title}</DocsTitle>
<DocsDescription>{data.description}</DocsDescription>
</div>
<DocsBody>
<APIPage {...apiProps} />
Expand Down Expand Up @@ -222,8 +222,8 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
</div>
<PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} />
</div>
{data.pageType && <PageTypeBadge type={data.pageType} className='mb-3' />}
<DocsTitle className='mb-2'>{data.title}</DocsTitle>
<DocsDescription>{data.description}</DocsDescription>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Page subtitle no longer renders

Medium Severity

The layout no longer renders DocsDescription, so frontmatter description values added on rewritten reference pages never appear in the page body. Metadata and structured data still use data.description, but readers only see the title and optional page-type badge.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f081750. Configure here.

</div>
<DocsBody>
<MDX
Expand Down
19 changes: 19 additions & 0 deletions apps/docs/components/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7391,3 +7391,22 @@ export function WizaIcon(props: SVGProps<SVGSVGElement>) {
</svg>
)
}

export function WaitIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
viewBox='0 0 24 24'
fill='none'
stroke='currentColor'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
xmlns='http://www.w3.org/2000/svg'
>
<circle cx='12' cy='12' r='10' />
<line x1='10' x2='10' y1='15' y2='9' />
<line x1='14' x2='14' y1='15' y2='9' />
</svg>
)
}
44 changes: 44 additions & 0 deletions apps/docs/components/page-type-badge.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import type { DocsPageType } from '@/lib/source'
import { cn } from '@/lib/utils'

const CONFIG = {
tutorial: { label: 'Tutorial', className: 'text-[#33c482] border-[#33c482]/30 bg-[#33c482]/10' },
guide: {
label: 'Guide',
className: 'text-blue-600 border-blue-500/30 bg-blue-500/10 dark:text-blue-400',
},
reference: {
label: 'Reference',
className: 'text-violet-600 border-violet-500/30 bg-violet-500/10 dark:text-violet-400',
},
concept: {
label: 'Concept',
className: 'text-amber-600 border-amber-500/30 bg-amber-500/10 dark:text-amber-400',
},
} as const satisfies Record<DocsPageType, { label: string; className: string }>

interface PageTypeBadgeProps {
type: DocsPageType
className?: string
}

/**
* Small label that tells the reader which Diátaxis mode a page is — learning,
* task, lookup, or understanding. Rendered only when a page declares `type`.
*/
export function PageTypeBadge({ type, className }: PageTypeBadgeProps) {
const config = CONFIG[type]
if (!config) return null

return (
<span
className={cn(
'inline-flex items-center rounded-full border px-2 py-0.5 font-medium text-[11px] uppercase tracking-[0.04em]',
config.className,
className
)}
>
{config.label}
</span>
)
}
209 changes: 209 additions & 0 deletions apps/docs/components/workflow-preview/block-display-specs.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
/**
* A hand-authored block, described as what the builder canvas displays.
*
* - `rows` are the visible sub-block rows; use `'-'` for an empty/unset field (the canvas
* shows a dash), or a representative value where the field has a default.
* - `branches` render one output handle per entry (Condition's if/else-if/else, Router's
* routes); when set, also set `hideSourceHandle: true` so the single output is replaced.
* - `showError: true` adds the bottom `Error` row + red handle (action blocks, not triggers).
* - `hideTargetHandle: true` for triggers (entry points — no input).
* - `bgColor` is the resolved hex; the Agent uses Sim green `#33C482` (`var(--brand)`).
*/
export interface BlockDisplaySpec {
name: string
/** Block type — drives the header icon (see `BLOCK_ICONS`). */
type: string
/** Resolved brand color (hex). */
bgColor: string
rows: Array<{ title: string; value: string }>
branches?: string[]
showError?: boolean
hideTargetHandle?: boolean
hideSourceHandle?: boolean
}

/**
* Display specs for the block reference previews — one per block, edited to match exactly
* what the builder canvas shows. Source of truth for the `<BlockPreview>` heroes.
*/

export const BLOCK_DISPLAY_SPECS: Record<string, BlockDisplaySpec> = {
agent: {
name: 'Agent',
type: 'agent',
bgColor: '#33C482',
showError: true,
rows: [
{ title: 'Messages', value: '-' },
{ title: 'Model', value: 'claude-sonnet-4-6' },
{ title: 'Files', value: '-' },
{ title: 'Tools', value: '-' },
{ title: 'Skills', value: '-' },
{ title: 'Memory', value: 'None' },
{ title: 'Response Format', value: '-' },
],
},
api: {
name: 'API',
type: 'api',
bgColor: '#2F55FF',
showError: true,
rows: [
{ title: 'URL', value: '-' },
{ title: 'Method', value: 'GET' },
{ title: 'Query Params', value: '-' },
{ title: 'Headers', value: '-' },
{ title: 'Body', value: '-' },
],
},
condition: {
name: 'Condition',
type: 'condition',
bgColor: '#FF752F',
showError: true,
hideSourceHandle: true,
rows: [],
branches: ['if', 'else if', 'else'],
},
credential: {
name: 'Credential',
type: 'credential',
bgColor: '#6366F1',
showError: true,
rows: [
{ title: 'Operation', value: 'Select Credential' },
{ title: 'Credential', value: '-' },
],
},
evaluator: {
name: 'Evaluator',
type: 'evaluator',
bgColor: '#4D5FFF',
showError: true,
rows: [
{ title: 'Evaluation Metrics', value: '-' },
{ title: 'Content', value: '-' },
{ title: 'Model', value: 'claude-sonnet-4-6' },
],
},
function: {
name: 'Function',
type: 'function',
bgColor: '#FF402F',
showError: true,
rows: [
{ title: 'Language', value: 'JavaScript' },
{ title: 'Code', value: '-' },
],
},
guardrails: {
name: 'Guardrails',
type: 'guardrails',
bgColor: '#3D642D',
showError: true,
rows: [
{ title: 'Content to Validate', value: '-' },
{ title: 'Validation Type', value: 'Valid JSON' },
],
},
response: {
name: 'Response',
type: 'response',
bgColor: '#2F55FF',
showError: true,
hideSourceHandle: true,
rows: [
{ title: 'Response Data Mode', value: 'Builder' },
{ title: 'Response Structure', value: '-' },
{ title: 'Status Code', value: '-' },
{ title: 'Response Headers', value: '-' },
],
},
router: {
name: 'Router',
type: 'router',
bgColor: '#28C43F',
showError: true,
hideSourceHandle: true,
rows: [{ title: 'Context', value: '-' }],
branches: ['route 1'],
},
variables: {
name: 'Variables',
type: 'variables',
bgColor: '#8B5CF6',
showError: true,
rows: [{ title: 'Variable Assignments', value: '-' }],
},
wait: {
name: 'Wait',
type: 'wait',
bgColor: '#F59E0B',
showError: true,
rows: [
{ title: 'Wait Amount', value: '-' },
{ title: 'Unit', value: 'Seconds' },
],
},
webhook: {
name: 'Webhook',
type: 'webhook',
bgColor: '#10B981',
showError: true,
rows: [
{ title: 'Webhook URL', value: '-' },
{ title: 'Payload', value: '-' },
{ title: 'Signing Secret', value: '-' },
{ title: 'Additional Headers', value: '-' },
],
},
workflow: {
name: 'Workflow',
type: 'workflow',
bgColor: '#6366F1',
showError: true,
rows: [
{ title: 'Select Workflow', value: '-' },
{ title: 'Input Variable', value: '-' },
],
},
human_in_the_loop: {
name: 'Human in the Loop',
type: 'human_in_the_loop',
bgColor: '#10B981',
showError: true,
rows: [
{ title: 'Display Data', value: '-' },
{ title: 'Notification', value: '-' },
{ title: 'Resume Form', value: '-' },
],
},
schedule: {
name: 'Schedule',
type: 'schedule',
bgColor: '#6366F1',
hideTargetHandle: true,
rows: [
{ title: 'Run frequency', value: 'Every X Minutes' },
{ title: 'Interval (minutes)', value: '-' },
],
},
rss: {
name: 'RSS Feed',
type: 'rss',
bgColor: '#F97316',
hideTargetHandle: true,
rows: [{ title: 'Feed URL', value: '-' }],
},
webhook_trigger: {
name: 'Webhook',
type: 'webhook',
bgColor: '#10B981',
hideTargetHandle: true,
rows: [
{ title: 'Webhook URL', value: '-' },
{ title: 'Require Authentication', value: '-' },
{ title: 'Input Format', value: '-' },
],
},
}
Loading