Skip to content

Commit a622de1

Browse files
committed
Merge remote-tracking branch 'origin/staging' into fix/tool-input-one-renderer
2 parents 5818942 + d7b31a8 commit a622de1

743 files changed

Lines changed: 79974 additions & 8515 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.

.agents/skills/add-permission-group-item/SKILL.md

Lines changed: 274 additions & 0 deletions
Large diffs are not rendered by default.

.agents/skills/validate-permission-group-item/SKILL.md

Lines changed: 157 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../.agents/skills/add-permission-group-item
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../.agents/skills/validate-permission-group-item

NOTICE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Sim Studio
22
Copyright 2026 Sim Studio
33

4-
This product includes software developed for the Sim project.
4+
This product includes software developed for the Sim project.

apps/desktop/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@
5050
"@sim/tsconfig": "workspace:*",
5151
"@types/micromatch": "4.0.10",
5252
"@types/node": "24.2.1",
53-
"electron": "43.5.0",
53+
"electron": "43.4.1",
5454
"electron-builder": "26.15.3",
5555
"esbuild": "0.28.1",
56+
"jsdom": "^26.0.0",
5657
"typescript": "^7.0.2",
5758
"vitest": "^4.1.0"
5859
}

apps/docs/app/global.css

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ body {
5454
nominally references; loading a webfont here would make docs the odd one out, not the
5555
aligned one. If the app ever wires that font up for real, add the var back in both
5656
places at once. */
57-
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
58-
"Courier New", monospace;
57+
--font-mono:
58+
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
59+
monospace;
5960
}
6061

6162
/* Pure white light mode background */
@@ -243,14 +244,16 @@ body {
243244

244245
/* Font family utilities */
245246
.font-sans {
246-
font-family: var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
247-
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
247+
font-family:
248+
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
249+
Roboto, "Helvetica Neue", Arial, sans-serif;
248250
}
249251

250252
/* Platform UI font — Season Sans, used by the chip chrome to match the main app */
251253
.font-season {
252-
font-family: var(--font-season), system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial,
253-
"Noto Sans", sans-serif;
254+
font-family:
255+
var(--font-season), system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans",
256+
sans-serif;
254257
}
255258

256259
:root {
@@ -445,8 +448,9 @@ html #nd-sidebar button:not([aria-label*="ollapse"]):not([aria-label*="xpand"])
445448
padding: 5px 0.5rem !important; /* 30px tall overall — the app's chip pill, at its px-2 */
446449
font-weight: 400 !important;
447450
border-radius: 0.5rem !important; /* platform rounded-lg */
448-
font-family: var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
449-
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
451+
font-family:
452+
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
453+
Roboto, "Helvetica Neue", Arial, sans-serif !important;
450454
}
451455

452456
/* Sidebar text — platform --text-body */
@@ -904,8 +908,9 @@ video {
904908
#nd-page:has(.api-page-header) div:not(.font-mono),
905909
#nd-page:has(.api-page-header) label:not(.font-mono),
906910
#nd-page:has(.api-page-header) button:not(.font-mono) {
907-
font-family: var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
908-
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
911+
font-family:
912+
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
913+
Roboto, "Helvetica Neue", Arial, sans-serif;
909914
}
910915

911916
/* Method badge pills — shared background colors (page + sidebar) */

apps/docs/components/icons.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5895,12 +5895,11 @@ export function PipedriveIcon(props: SVGProps<SVGSVGElement>) {
58955895

58965896
export function SailPointIcon(props: SVGProps<SVGSVGElement>) {
58975897
return (
5898-
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'>
5899-
<path
5900-
fill='currentColor'
5901-
d='M7.25 2.4c5.66 1.7 9.2 6.86 9.9 15.35a.75.75 0 0 1-.75.81H7.25a.75.75 0 0 1-.75-.75V3.12a.75.75 0 0 1 .95-.72Z'
5902-
/>
5903-
<rect fill='currentColor' x='3' y='19.9' width='18' height='1.8' rx='.9' />
5898+
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 109.5 107'>
5899+
<path fill='#0033A1' d='M63,0l13.2,78.6H0L63,0z' />
5900+
<path fill='#CC27B0' d='M62.9,0l46.7,78.6H76L62.9,0z' />
5901+
<path fill='#0071CE' d='M0,78.6h76.2l4.8,28.4L0,78.6z' />
5902+
<path fill='#E17FD2' d='M76,78.6h33.5L80.8,107L76,78.6z' />
59045903
</svg>
59055904
)
59065905
}

apps/docs/components/workflow-preview/block-preview.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
'use client'
22

33
import { useMemo } from 'react'
4+
import { type NodeTypes, ReactFlow, ReactFlowProvider } from '@xyflow/react'
45
import { domAnimation, LazyMotion } from 'framer-motion'
5-
import ReactFlow, { type NodeTypes, ReactFlowProvider } from 'reactflow'
6-
import 'reactflow/dist/style.css'
6+
import '@xyflow/react/dist/style.css'
77
import { BLOCK_DISPLAY_WORKFLOWS } from '@/components/workflow-preview/block-display-workflows'
88
import { DocsBlockNode } from '@/components/workflow-preview/docs-block-node'
99
import { toReactFlowElements } from '@/components/workflow-preview/workflow-data'
1010

1111
/** The hero mounts the same node type the canvas uses, so it can never drift. */
12-
const NODE_TYPES: NodeTypes = { previewBlock: DocsBlockNode }
12+
const NODE_TYPES = { previewBlock: DocsBlockNode } satisfies NodeTypes
1313
const PRO_OPTIONS = { hideAttribution: true }
1414
/** `maxZoom` mirrors the previous hand-rolled hero's 1.3 scale. */
1515
const FIT_VIEW_OPTIONS = { padding: 0.2, maxZoom: 1.3 } as const

apps/docs/components/workflow-preview/docs-block-node.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import { type ComponentType, memo } from 'react'
44
import { SubBlockRowView, WorkflowBlockView } from '@sim/workflow-renderer'
5+
import type { Node, NodeProps } from '@xyflow/react'
56
import { m } from 'framer-motion'
6-
import type { NodeProps } from 'reactflow'
77
import { resolveIcon } from '@/components/workflow-preview/block-icons'
88
import {
99
BLOCK_STAGGER,
@@ -16,7 +16,7 @@ const EMPTY_ICON: ComponentType<{ className?: string }> = () => null
1616

1717
const RING_STYLES = 'ring-[1.75px] ring-[var(--brand-secondary)]'
1818

19-
interface DocsBlockData {
19+
export interface DocsBlockData extends Record<string, unknown> {
2020
name: string
2121
blockType: string
2222
bgColor: string
@@ -30,6 +30,8 @@ interface DocsBlockData {
3030
isDimmed?: boolean
3131
}
3232

33+
export type DocsBlockNodeType = Node<DocsBlockData, 'previewBlock'>
34+
3335
/**
3436
* Docs adapter for workflow block nodes: maps the static preview data to the
3537
* shared {@link WorkflowBlockView}'s props. Carries no stores, hooks, or
@@ -38,7 +40,10 @@ interface DocsBlockData {
3840
* `WorkflowPreview` provides the `LazyMotion` feature set). The block's ring is
3941
* driven by `hasRing`/`ringStyles` inside the View.
4042
*/
41-
export const DocsBlockNode = memo(function DocsBlockNode({ id, data }: NodeProps<DocsBlockData>) {
43+
export const DocsBlockNode = memo(function DocsBlockNode({
44+
id,
45+
data,
46+
}: NodeProps<DocsBlockNodeType>) {
4247
const {
4348
name,
4449
blockType,

0 commit comments

Comments
 (0)