揭秘 Stitch SDK 零LLM代码生成管线:从 MCP 工具清单到强类型 TypeScript SDK 的完整指南
【免费下载链接】stitch-sdkGenerate UI screens from text prompts and extract their HTML and screenshots programmatically.项目地址https://gitcode.com/gh_mirrors/st/stitch-sdk点击查看免费下载Stitch SDK 是一个让你用一句话文本就能生成 UI 界面、并程序化提取其 HTML 和截图的 TypeScript SDK。它的有趣之处在于SDK 本身并不是靠大模型写出来的而是一条零LLM代码生成管线——先抓取 MCP 工具清单再由确定性脚本编译成强类型 TypeScript SDK。本文将带你完整看懂这条管线的三个阶段、锁文件机制以及那些防止悄悄丢数据的护栏设计。️ 先看懂全貌一条 3 阶段管线传统做法是把 API 文档丢给 LLM 让它生成 SDK但输出不稳定、每次都不一样。Stitch SDK 走的是另一条路LLM 只在设计阶段提供领域知识代码生成本身 100% 确定、可复现。整条管线在 RELEASING.md 中有明确顺序阶段做什么产物谁来做Stage 1 · 抓取连接 Stitch MCP 服务器调用tools/listtools-manifest.json脚本 scripts/capture-tools.tsStage 2 · 设计把工具映射到领域模型类与方法绑定domain-map.json人 / Agent 依据 IR 规范Stage 3 · 生成校验 IR 并发射 TypeScript 源码packages/sdk/generated/src/脚本 scripts/generate-sdk.tsStage 4构建、测试、锁文件完整性校验可发布的 npm 包CI scripts/validate-generated.ts文件头注释直接写明了原则见 scripts/generate-sdk.tsDeterministic — no LLM involved.确定性生成无 LLM 参与 第一阶段从 MCP 服务器抓取原始工具清单第一步是最老实的一步scripts/capture-tools.ts 用真实的StitchToolClient连上 Stitch 的 MCP 端点调用listToolsRaw()把服务器原样返回的工具 schema一字不改地写入 tools-manifest.json。当前清单共收录了 15 个工具比如create_project、generate_screen_from_text、edit_screens、get_screen等每个工具都带有完整的inputSchema/outputSchemaJSON Schema例如设备类型的枚举值、projects/{project}这样的资源名格式全部原样保留。两个值得注意的工程细节原始即真相manifest 存的是RAW数据如果服务器 schema 有缺陷修复动作发生在加载时见 packages/sdk/src/schema-repair.ts修复记录会写进锁文件而不是悄悄改掉原始事实来源。原子写入先写.tmp再rename配合 stitch-sdk.lock 的 SHA-256 哈希防止半截文件污染管线。 第二阶段domain-map.json——管线的中间表示这是整条管线里唯一需要设计品味的一步。domain-map.json 把 15 个平铺的 MCP 工具组织成 4 个领域类Stitch → Project → Screen / DesignSystem也就是你最终看到的面向对象 API。它由两部分构成结构由 scripts/ir-schema.ts 中的 Zod schema 严格约束1.classes——领域类声明声明每个类的构造参数、工厂方法如stitch.project(id)这种不发 API 调用就能拿到句柄的方法、以及手写的副作用方法。例如 Screen 类的getHtml/getImage属于二进制下载无法生成必须手写见 domain-map.json。2.bindings——工具到方法的绑定每条绑定声明调用哪个工具、挂在哪个类的哪个方法上、参数从哪来、返回值如何从响应中投影出来。看一个真实例子——generate方法domain-map.json{ tool: generate_screen_from_text, class: Project, method: generate, args: { projectId: { from: self }, prompt: { from: param }, deviceType: { from: param, optional: true, default: DESKTOP } }, returns: { class: Screen, kind: generation, projection: [ { prop: outputComponents, each: true }, { prop: design }, { prop: screens, each: true } ] } }参数来源ArgSpec有四种self实例自身字段、selfArray、param调用者传入、computed模板拼接如projects/{projectId}/screens/{screenId}。而projection是精华所在——它把如何从原始响应里取出屏幕列表写成了结构化步骤prop/index/each/find取代了不可校验的字符串路径。返回值为kind: generation时强制要求用each收集全部结果防止一次生成多个屏幕却只取到第一个的经典 bug。⚙️ 第三阶段确定性发射 TypeScriptscripts/generate-sdk.ts 读取两份输入经过校验后输出 packages/sdk/generated/src/ 下的 8 个文件。核心机制有四个① JSON Schema → TypeScript 类型jsonSchemaToTs()把工具 schema 递归翻译成 TS 类型enum变联合类型MOBILE | DESKTOP | ...$defs变具名接口数组元素是联合类型时还会自动加括号(A | B)[]以避免优先级陷阱。② 投影步骤 → 投影代码emitProjection()把上面的 projection 步骤翻译成真实代码简单链变成可选链raw?.outputComponents?.[0]each步骤展开成flatMapfind步骤生成(arr ?? []).find(c ...)扫描式取值。③ 参数签名必需参数在前可选项归入 options所有可选参数被收集成一个尾部的options?: { ... }对象。好处是未来服务器新增参数时老签名不破坏——这也是 screen.ts 里edit(prompt, deviceTypeOrOptions?, modelId?)这种签名的由来。④ 响应对象自动缓存带cache声明的方法如getHtmlUrl会先生成一段缓存检查生成响应里已经有这个 URL 就直接返回不发新请求调用后还会writeBack合并回this.data。这些细节能省掉大量重复 API 调用。生成结果长什么样看 packages/sdk/generated/src/screen.ts——每个方法都有 JSDoc 注明它来自哪个 MCP 工具参数类型从 schema 推导返回PromiseGenerationScreen, EditScreensResponse连枚举值都是精确的联合类型async edit(prompt: string, deviceTypeOrOptions?: ... | { ... }): PromiseGenerationScreen, EditScreensResponse 锁文件让重新生成变得可审计每份生成文件的头部都写着AUTO-GENERATED ... DO NOT EDIT并嵌入两个源文件的 SHA-256 前缀。stitch-sdk.lock 则记录了三段哈希manifest、domain-map 和整个生成目录。这带来三个可验证的性质字节级可复现同一份输入任意机器上生成出的文件逐字节一致哈希用相对路径、POSIX 规范化跨机器可移植幂等连续跑两次内容没变就零 diff连generatedAt时间戳都不动CI 可校验scripts/validate-generated.ts 在 CI 里重新计算哈希发现提交了与锁文件不符的旧代码会直接红灯杜绝发布过期 SDK。️ 护栏把LLM 容易犯的错变成硬错误这条管线最有意思的部分是它把历史上真实踩过的坑全部变成了编译期/生成期就爆炸的检查护栏触发条件效果.strict()的 IR schemadomain-map 里出现未知字段直接报错——被静默丢弃的键意味着设计者以为生效了投影校验validateProjection()对数组 schema 直接取属性、路径不存在的属性生成前抛出并给出修复提示无界数组 lint对无maxItems的数组取index/find单元素警告可能悄悄截断数据对generate_*/edit_*/apply_*等生成类工具升级为硬错误generate-sdk.ts副作用冲突检查手写扩展方法与生成方法同名报错扩展方法不得遮蔽生成方法并校验 spec 文件存在损坏的锁文件锁不是合法 JSON拒绝运行绝不静默重置那会无声丢弃历史记录换句话说以前靠人肉 review 才能发现的生成类工具只返回第一个屏幕这类数据截断问题现在会在bun run generate阶段直接以❌报错并终止。 小结零 LLM 到底省掉了什么可复现同样的输入永远得到同样的 SDK哈希可审计而不是再生成一次试试可校验IR 的每个字段都被 schema 约束投影路径在生成前就对着 outputSchema 逐段验证可演化服务器新增工具时重跑 Stage 1 抓取 Stage 3 生成即可手写扩展方法与生成代码有清晰的边界和命名保护。如果你想动手体验仓库是只读的公开镜像完整流程命令capture → generate → build → test → validate都列在 RELEASING.md 中测试套件里还有 scripts/test/codegen-snapshot.test.ts 用 fixture 对真实管线做快照回归。对 SDK 使用侧的入门如何用stitch.project()生成屏幕、取 HTML 与截图可继续阅读 packages/sdk/README.md。赞分享【免费下载链接】stitch-sdkGenerate UI screens from text prompts and extract their HTML and screenshots programmatically.项目地址https://gitcode.com/gh_mirrors/st/stitch-sdk点击查看免费下载相关推荐Wails自动绑定生成机制揭秘从Go代码到TypeScript类型定义的完整指南Wails自动绑定生成机制揭秘从Go代码到TypeScript类型定义的完整指南 Wails框架的自动绑定生成机制是其最强大的功能之一能够将Go语言的后端代桌面应用跨平台CLI前端Higress WASM Go SDK 实现 MCP Server 完整指南从工具开发到 REST-to-MCP 零代码转换Higress WASM Go SDK 实现 MCP Server 完整指南从工具开发到 REST to MCP 零代码转换 本篇技术指南围绕 HigressAPI网关后端云原生LLM 网关人工智能MCP 服务Stitch SDK接入Vercel AI SDK:让Gemini自主调用MCP工具生成UI界面Stitch SDK接入Vercel AI SDK:让Gemini自主调用MCP工具生成UI界面 Stitch SDK 是一款开源的 Text to UI 开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2.8 万亿参数 Kimi K3 拆解:MoE 架构与长上下文接入 TaoToken 实战(2026.8 最新)

2.8 万亿参数 Kimi K3 拆解:MoE 架构与长上下文接入 TaoToken 实战(2026.8 最新)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:54:48 阅读更多 →
2011年机器人主题公园商业计划书拆解:重资产科技文旅项目测算框架

2011年机器人主题公园商业计划书拆解:重资产科技文旅项目测算框架

简介:这份《机器人人工智能主题公园商业项目计划书样本》面向文旅项目策划者、创业团队、投资分析人员及高校科研转化团队,提供一份集科普、娱乐、教育于一体的新型业态完整商业计划范本,帮助解决从项目立项、市场论证到融资落地全流程的框架…

2026/10/11 14:54:48 阅读更多 →
BP神经网络短期负荷预测实战:数据窗口、参数调优与翻车排查

BP神经网络短期负荷预测实战:数据窗口、参数调优与翻车排查

简介:基于BP神经网络的短期电力负荷预测MATLAB实现资源,面向电力系统分析人员、电气工程专业学生以及机器学习入门者,解决历史负荷数据建模与未来用电需求预测问题。资源提供完整代码与配套数据,其中mainbp.m为神经网络搭建、训练…

2026/10/11 14:54:48 阅读更多 →

最新新闻

Cursor 接入实时行情:一段 JSON 让 AI 编码助手原生掌握全球市场数据|TaoToken 统一 Key 通道实践

Cursor 接入实时行情:一段 JSON 让 AI 编码助手原生掌握全球市场数据|TaoToken 统一 Key 通道实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 15:38:11 阅读更多 →
Photoshop修图实战决策指南:从功能操作到视觉控制

Photoshop修图实战决策指南:从功能操作到视觉控制

简介:这是一份面向Photoshop初学者与备考学员的系统性复习资料,聚焦核心操作原理与高频考点梳理,助力快速掌握图像处理关键技能。文档以清晰大纲形式组织,覆盖九大模块:从矢量图与像素图的本质区别、分辨率与色彩模式等…

2026/10/11 15:38:11 阅读更多 →
培训项目设计工具与开发:从PPT到可执行教学系统的六步法

培训项目设计工具与开发:从PPT到可执行教学系统的六步法

简介:这份PPT文档面向企业培训管理者、人力资源从业者及培训项目设计初学者,系统梳理培训从知识技能传授、对接业务需求到推动知识创造与共享的角色演变,帮助读者理解如何将培训与经营战略目标挂钩,设计出真正支撑企业竞争力提升的…

2026/10/11 15:38:11 阅读更多 →
数据库原理实验全流程指南:从ER图设计到SQL实现与排错

数据库原理实验全流程指南:从ER图设计到SQL实现与排错

简介:郑州大学数据库原理实验报告是一份面向《数据库系统原理》课程的完整实验材料,适合计算机类本科生及需要熟悉DBMS操作的初学者。报告覆盖认识DBMS系统、万里数据库GreatSQL安装与使用、操作系统环境配置等核心环节,详细记录了关闭SELinu…

2026/10/11 15:38:11 阅读更多 →
Rhino使用手册:从NURBS曲线曲面到模型自检的完整建模流程

Rhino使用手册:从NURBS曲线曲面到模型自检的完整建模流程

简介:作为Rhino(犀牛)软件的中文使用手册PDF,这份资源面向工业设计、建筑设计、产品设计等领域的3D建模初学者与进阶用户,系统讲解NURBS建模原理、界面操作、物件编辑、精确建模、曲面分析与渲染等核心功能&#xff0c…

2026/10/11 15:38:10 阅读更多 →
30类水果病害YOLO数据集:预划分+可视化诊断+训练避坑指南

30类水果病害YOLO数据集:预划分+可视化诊断+训练避坑指南

简介:本资源是一套专为YOLO系列目标检测模型(如YOLOv5/v8)定制的高质量农业视觉数据集,面向计算机视觉初学者、农业AI应用开发者及科研人员,解决水果与植物叶片病害、缺陷的细粒度识别与定位难题。数据集覆盖苹果、番茄…

2026/10/11 15:37:10 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →