Create a NEW flow that starts as a complete, vetted application rather than an empty file tree — the fastest path to a working build when an FBB (a Final Business Blueprint: a whole app) matches what the user wants. For an app the user merely DESCRIBED, use start_build (the website's own start picks the FBB); this verb is for when the user asked YOU to copy one. Find one with search_blueprints({ kind: "fbb" }). The app's screens, navigation and command-frame wiring are copied byte-exact from the build the FBB points at, its custom tables are re-created under THIS organization's names (the copied code already uses those names — keep them), and a fill-in request is raised for each secret it reads. This ALWAYS creates a new flow: an FBB cannot be merged into an existing build (there are no screen-graph merge semantics). To add parts to a build you already have, use apply_blueprint_widgets instead. THE COPY ENDS YOUR TURN. It is the finished deliverable, not step one — the app is vetted and already runs. When it returns, say its `report` line and stop: do NOT preview, validate, edit or extend it, and do not start on anything else the user described. The result names the tools not to call.
View input schema
{
"type": "object",
"properties": {
"blueprintId": {
"type": "string",
"description": "The exact FBB id, e.g. 'flow.coffee-quick-service'. An id without a version suffix resolves to the newest published version."
},
"title": {
"description": "Name for the new flow. Defaults to the blueprint's title.",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"flowId": {
"description": "NOT SUPPORTED — passing this returns an error. An FBB replaces an app's entire screen graph, so it can only start a NEW build. It is declared here purely so a caller that assumes otherwise fails loudly instead of having the field stripped and getting a second flow it never asked for. To add parts to an existing build, use apply_blueprint_widgets({ flowId, picks }).",
"type": "string"
},
"supersedesFlowId": {
"description": "The EMPTY placeholder flow you were told to build into, when a starter prompt pinned you to one before you knew an FBB would be used. This does NOT write into that flow — nothing can — it marks it as abandoned in favour of the flow created here, so the human's already-open builder tab follows you instead of watching an empty workspace forever. Pass the flow id from your instructions. Ignored (reported back as superseded:false) if that flow has any files, so it can never redirect a real build.",
"type": "string"
},
"agent": {
"type": "string"
},
"hubToken": {
"type": "string"
},
"device": {
"description": "Override the copy's default preview device (the frame the builder opens it in): a surface word (mobile, tablet, kiosk, …), a get_scaffold profile, a skin (iphone, ipad, …) or a full DeviceConfig. Omit to follow the blueprint's surface. Changeable later with set_flow_device.",
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "A device word: a surface (desktop, tablet, mobile, kiosk, kitchen-display, menu-board, drive-thru), a get_scaffold profile (portrait-handheld, counter-tablet, wall-kiosk, tv-display), or a skin (browser, macbook, ipad, iphone, android, kiosk, terminal, final-register, final-register-cfd, final-touch, final-touch-pro)."
},
{
"type": "object",
"properties": {
"device": {
"type": "string"
},
"orientation": {
"type": "string"
},
"responsivePreset": {
"type": "string"
},
"customWidth": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customHeight": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"device",
"orientation",
"responsivePreset"
],
"description": "A full DeviceConfig: device (browser|macbook|ipad|iphone|android|kiosk|terminal|final-register|final-register-cfd|final-touch|final-touch-pro|custom), orientation (portrait|landscape), responsivePreset (desktop|tablet|mobile|custom), optional customWidth/customHeight."
}
]
},
"theme": {
"type": "string",
"enum": [
"light",
"dark"
]
},
"palette": {
"type": "string",
"enum": [
"final",
"mono",
"ocean",
"sunset",
"forest",
"grape",
"candy",
"custom"
]
},
"customColors": {
"type": "object",
"properties": {
"primary": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
},
"accent": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
},
"background": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
}
},
"required": [
"primary",
"accent",
"background"
]
},
"color": {
"description": "A colour the user asked for, as they said it (\"pink\", \"dark green\", \"navy and gold\", or a hex). Resolved to a full custom palette for the flow's appearance — prefer this over guessing customColors hexes. Ignored when customColors is also given.",
"type": "string",
"minLength": 1,
"maxLength": 60
},
"shape": {
"type": "string",
"enum": [
"sharp",
"rounded",
"round"
]
},
"fonts": {
"type": "object",
"properties": {
"heading": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
}
}
},
"required": [
"blueprintId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}