From 494a6bc1419211dd06be7f9d7000224554fae295 Mon Sep 17 00:00:00 2001 From: David East Date: Mon, 1 Jun 2026 04:17:37 +0000 Subject: [PATCH] feat: support Design.md workflow for design system creation Stitch recently added the ability to create design systems from markdown files (DESIGN.md). This is a two-step workflow: 1. Upload a markdown file describing the design language to a project 2. Create a design system from that uploaded file, which Stitch interprets and converts into actionable design tokens SDK (domain classes): const instance = await project.uploadDesignMd(btoa(markdown)); const ds = await project.createDesignSystemFromDesignMd(instance, 'DESKTOP'); Agent (callTool / tool definitions): Both tools are also registered in the tool definitions, so agents using callTool or the ADK/AI SDK adapters can discover and invoke them directly. This brings the SDK to full MCP tool coverage (14/14) across both modalities. --- packages/sdk/generated/domain-map.json | 37 + packages/sdk/generated/src/designsystem.ts | 10 +- packages/sdk/generated/src/index.ts | 6 +- packages/sdk/generated/src/project.ts | 57 +- .../sdk/generated/src/responses.generated.ts | 40 +- packages/sdk/generated/src/screen.ts | 10 +- packages/sdk/generated/src/stitch.ts | 10 +- .../sdk/generated/src/tool-definitions.ts | 529 +- packages/sdk/generated/src/types.generated.ts | 206 +- packages/sdk/generated/stitch-sdk.lock | 22 +- packages/sdk/generated/tools-manifest.json | 4693 ++++++++++++++++- packages/sdk/test/unit/design-system.test.ts | 97 + .../sdk/test/unit/tool-definitions.test.ts | 2 +- 13 files changed, 5504 insertions(+), 215 deletions(-) diff --git a/packages/sdk/generated/domain-map.json b/packages/sdk/generated/domain-map.json index 55186a3..17b51ea 100644 --- a/packages/sdk/generated/domain-map.json +++ b/packages/sdk/generated/domain-map.json @@ -423,6 +423,43 @@ ], "array": true } + }, + { + "tool": "upload_design_md", + "class": "Project", + "method": "uploadDesignMd", + "args": { + "projectId": { + "from": "self" + }, + "designMdBase64": { + "from": "param" + } + }, + "returns": { + "projection": [] + } + }, + { + "tool": "create_design_system_from_design_md", + "class": "Project", + "method": "createDesignSystemFromDesignMd", + "args": { + "projectId": { + "from": "self" + }, + "selectedScreenInstance": { + "from": "param" + }, + "deviceType": { + "from": "param", + "optional": true + } + }, + "returns": { + "class": "DesignSystem", + "projection": [] + } } ] } diff --git a/packages/sdk/generated/src/designsystem.ts b/packages/sdk/generated/src/designsystem.ts index 77fd0d1..001f4d8 100644 --- a/packages/sdk/generated/src/designsystem.ts +++ b/packages/sdk/generated/src/designsystem.ts @@ -2,13 +2,14 @@ * AUTO-GENERATED by scripts/generate-sdk.ts DO NOT EDIT — changes will be overwritten. -Source: tools-manifest.json (sha256:2f1a623ec115...) - domain-map.json (sha256:0ee09d686be6...) -Generated: 2026-06-01T03:47:10.743Z +Source: tools-manifest.json (sha256:d831990b27e9...) + domain-map.json (sha256:715639788724...) +Generated: 2026-06-01T04:11:36.685Z */ import { type StitchToolClient } from "../../src/client.js"; import { StitchError } from "../../src/spec/errors.js"; import { + ComponentTokens, DesignTheme, File, ProjectMetadata, @@ -29,7 +30,10 @@ import { PrototypeLinks, PrototypeState, PrototypeV2Spec, + Question, + QuestionsAsked, ScreenMetadata, + SessionEvent, SessionOutputComponent, VariantOptions, SelectedScreenInstance, diff --git a/packages/sdk/generated/src/index.ts b/packages/sdk/generated/src/index.ts index c732d95..db2d8e9 100644 --- a/packages/sdk/generated/src/index.ts +++ b/packages/sdk/generated/src/index.ts @@ -2,9 +2,9 @@ * AUTO-GENERATED by scripts/generate-sdk.ts DO NOT EDIT — changes will be overwritten. -Source: tools-manifest.json (sha256:2f1a623ec115...) - domain-map.json (sha256:0ee09d686be6...) -Generated: 2026-06-01T03:47:10.743Z +Source: tools-manifest.json (sha256:d831990b27e9...) + domain-map.json (sha256:715639788724...) +Generated: 2026-06-01T04:11:36.685Z */ export { Stitch } from "./stitch.js"; export { Project } from "./project.js"; diff --git a/packages/sdk/generated/src/project.ts b/packages/sdk/generated/src/project.ts index 3dd3b50..a7fed44 100644 --- a/packages/sdk/generated/src/project.ts +++ b/packages/sdk/generated/src/project.ts @@ -2,13 +2,14 @@ * AUTO-GENERATED by scripts/generate-sdk.ts DO NOT EDIT — changes will be overwritten. -Source: tools-manifest.json (sha256:2f1a623ec115...) - domain-map.json (sha256:0ee09d686be6...) -Generated: 2026-06-01T03:47:10.743Z +Source: tools-manifest.json (sha256:d831990b27e9...) + domain-map.json (sha256:715639788724...) +Generated: 2026-06-01T04:11:36.685Z */ import { type StitchToolClient } from "../../src/client.js"; import { StitchError } from "../../src/spec/errors.js"; import { + ComponentTokens, DesignTheme, File, ProjectMetadata, @@ -29,7 +30,10 @@ import { PrototypeLinks, PrototypeState, PrototypeV2Spec, + Question, + QuestionsAsked, ScreenMetadata, + SessionEvent, SessionOutputComponent, VariantOptions, SelectedScreenInstance, @@ -40,6 +44,8 @@ import { GetScreenResponse, CreateDesignSystemResponse, ListDesignSystemsResponse, + UploadDesignMdResponse, + CreateDesignSystemFromDesignMdResponse, } from "./responses.generated.js"; import { Screen } from "./screen.js"; import { DesignSystem } from "./designsystem.js"; @@ -187,6 +193,51 @@ export class Project { } } + /** + * Uploads DESIGN.md to a Stitch project. Use this tool when the user wants to create a design system from a DESIGN.md file. + * Tool: upload_design_md + */ + async uploadDesignMd(designMdBase64: string): Promise { + try { + const raw = await this.client.callTool( + "upload_design_md", + { projectId: this.projectId, designMdBase64 }, + ); + return raw || ""; + } catch (error) { + throw StitchError.fromUnknown(error); + } + } + + /** + * Creates a design system for a project, with user uploaded DESIGN.md file, and displays the design system in the UI. + * Tool: create_design_system_from_design_md + */ + async createDesignSystemFromDesignMd( + selectedScreenInstance: SelectedScreenInstance, + deviceType?: + | "DEVICE_TYPE_UNSPECIFIED" + | "MOBILE" + | "DESKTOP" + | "TABLET" + | "AGNOSTIC", + ): Promise { + try { + const raw = + await this.client.callTool( + "create_design_system_from_design_md", + { projectId: this.projectId, selectedScreenInstance, deviceType }, + ); + return this.client.entities.resolve( + DesignSystem, + ["projectId", "assetId"], + { ...raw, projectId: this.projectId }, + ); + } catch (error) { + throw StitchError.fromUnknown(error); + } + } + /** Create a DesignSystem handle from an existing ID without an API call. */ designSystem(id: string): DesignSystem { return this.client.entities.resolve( diff --git a/packages/sdk/generated/src/responses.generated.ts b/packages/sdk/generated/src/responses.generated.ts index 6d8acfd..bc1a50e 100644 --- a/packages/sdk/generated/src/responses.generated.ts +++ b/packages/sdk/generated/src/responses.generated.ts @@ -1,4 +1,5 @@ import { + ComponentTokens, DesignTheme, File, ProjectMetadata, @@ -19,7 +20,10 @@ import { PrototypeLinks, PrototypeState, PrototypeV2Spec, + Question, + QuestionsAsked, ScreenMetadata, + SessionEvent, SessionOutputComponent, VariantOptions, SelectedScreenInstance, @@ -28,9 +32,9 @@ import { * AUTO-GENERATED by scripts/generate-sdk.ts DO NOT EDIT — changes will be overwritten. -Source: tools-manifest.json (sha256:2f1a623ec115...) - domain-map.json (sha256:0ee09d686be6...) -Generated: 2026-06-01T03:47:10.743Z +Source: tools-manifest.json (sha256:d831990b27e9...) + domain-map.json (sha256:715639788724...) +Generated: 2026-06-01T04:11:36.685Z */ /** Response message for create_project. */ @@ -140,6 +144,31 @@ export interface GenerateVariantsResponse { sessionId?: string; } +/** Response message for upload_design_md. */ +export interface UploadDesignMdResponse { + groupId?: string; + groupName?: string; + height?: number; + hidden?: boolean; + id?: string; + isFavourite?: boolean; + isResized?: boolean; + label?: string; + sourceAsset?: string; + sourceScreen?: string; + textContent?: string; + type?: + | "SCREEN_INSTANCE_TYPE_UNSPECIFIED" + | "SCREEN_INSTANCE" + | "DESIGN_SYSTEM_INSTANCE" + | "GROUP_INSTANCE" + | "TEXT_INSTANCE"; + variantScreenInstance?: ScreenInstance; + width?: number; + x?: number; + y?: number; +} + /** Response message for create_design_system. */ export interface CreateDesignSystemResponse { copiedFrom?: string; @@ -148,6 +177,11 @@ export interface CreateDesignSystemResponse { version?: string; } +/** Response message for create_design_system_from_design_md. */ +export interface CreateDesignSystemFromDesignMdResponse { + assetId?: string; +} + /** Response message for update_design_system. */ export interface UpdateDesignSystemResponse { copiedFrom?: string; diff --git a/packages/sdk/generated/src/screen.ts b/packages/sdk/generated/src/screen.ts index d2bd636..2a7bdb4 100644 --- a/packages/sdk/generated/src/screen.ts +++ b/packages/sdk/generated/src/screen.ts @@ -2,13 +2,14 @@ * AUTO-GENERATED by scripts/generate-sdk.ts DO NOT EDIT — changes will be overwritten. -Source: tools-manifest.json (sha256:2f1a623ec115...) - domain-map.json (sha256:0ee09d686be6...) -Generated: 2026-06-01T03:47:10.743Z +Source: tools-manifest.json (sha256:d831990b27e9...) + domain-map.json (sha256:715639788724...) +Generated: 2026-06-01T04:11:36.685Z */ import { type StitchToolClient } from "../../src/client.js"; import { StitchError } from "../../src/spec/errors.js"; import { + ComponentTokens, DesignTheme, File, ProjectMetadata, @@ -29,7 +30,10 @@ import { PrototypeLinks, PrototypeState, PrototypeV2Spec, + Question, + QuestionsAsked, ScreenMetadata, + SessionEvent, SessionOutputComponent, VariantOptions, SelectedScreenInstance, diff --git a/packages/sdk/generated/src/stitch.ts b/packages/sdk/generated/src/stitch.ts index 06eccd6..05040a7 100644 --- a/packages/sdk/generated/src/stitch.ts +++ b/packages/sdk/generated/src/stitch.ts @@ -2,13 +2,14 @@ * AUTO-GENERATED by scripts/generate-sdk.ts DO NOT EDIT — changes will be overwritten. -Source: tools-manifest.json (sha256:2f1a623ec115...) - domain-map.json (sha256:0ee09d686be6...) -Generated: 2026-06-01T03:47:10.743Z +Source: tools-manifest.json (sha256:d831990b27e9...) + domain-map.json (sha256:715639788724...) +Generated: 2026-06-01T04:11:36.685Z */ import { type StitchToolClient } from "../../src/client.js"; import { StitchError } from "../../src/spec/errors.js"; import { + ComponentTokens, DesignTheme, File, ProjectMetadata, @@ -29,7 +30,10 @@ import { PrototypeLinks, PrototypeState, PrototypeV2Spec, + Question, + QuestionsAsked, ScreenMetadata, + SessionEvent, SessionOutputComponent, VariantOptions, SelectedScreenInstance, diff --git a/packages/sdk/generated/src/tool-definitions.ts b/packages/sdk/generated/src/tool-definitions.ts index 491f6ba..dddf0ac 100644 --- a/packages/sdk/generated/src/tool-definitions.ts +++ b/packages/sdk/generated/src/tool-definitions.ts @@ -2,9 +2,9 @@ * AUTO-GENERATED by scripts/generate-sdk.ts DO NOT EDIT — changes will be overwritten. -Source: tools-manifest.json (sha256:2f1a623ec115...) - domain-map.json (sha256:0ee09d686be6...) -Generated: 2026-06-01T03:47:10.743Z +Source: tools-manifest.json (sha256:d831990b27e9...) + domain-map.json (sha256:715639788724...) +Generated: 2026-06-01T04:11:36.685Z */ /** JSON Schema property descriptor for a tool parameter. */ export interface ToolPropertySchema { @@ -147,10 +147,15 @@ export const toolDefinitions: ToolDefinition[] = [ { name: "generate_screen_from_text", description: - 'Generates a new screen within a project from a text prompt.\n\n**Instructions for Tool Call:**\n* This action can take a few minutes to complete. Please be patient. DO NOT RETRY.\n* If the tool call fails due to connection error, the generation process may still succeed. Please try to get the screen with `get_screen` method later.\n\n**Output:**\n* **`output_components`**: If `output_components` contains text, return it to the user. If `output_components` contains suggestions (e.g. "Yes, make them all"), present these suggestions to the user. If the user accepts one of the suggestions, call `generate_screen_from_text` again with `prompt` set to the accepted suggestion.\n', + 'Generates a new screen within a project from a text prompt.\n\n**Instructions for Tool Call:**\n* This action can take a few minutes to complete. Please be patient. DO NOT RETRY.\n* If the tool fails with a timeout, don\'t retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up.\n* If the tool call fails due to connection error, the generation process may still succeed. Please try to get the screen with `get_screen` method later.\n\n**Output:**\n* **`output_components`**: If `output_components` contains text, return it to the user. If `output_components` contains suggestions (e.g. "Yes, make them all"), present these suggestions to the user. If the user accepts one of the suggestions, call `generate_screen_from_text` again with `prompt` set to the accepted suggestion.\n', inputSchema: { description: "Request message for GenerateScreenFromText.", properties: { + designSystem: { + description: + "Optional. The design system id to use for generating the new screen, should always be configured for design consistency, via `get_project` or `list_assets` methods. If not provided, a default design system will be used. Example: `assets/15996705518239280238`.", + type: "string", + }, deviceType: { description: "The type of device that captured the screenshot, e.g., mobile or desktop.", @@ -269,7 +274,7 @@ export const toolDefinitions: ToolDefinition[] = [ { name: "generate_variants", description: - "Generates variants of existing screens within a project using a text prompt.\n", + "Generates variants of existing screens within a project using a text prompt.\n\n**Instructions for Tool Call:**\n* If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up.\n", inputSchema: { $defs: { VariantOptions: { @@ -393,6 +398,28 @@ export const toolDefinitions: ToolDefinition[] = [ type: "object", }, }, + { + name: "upload_design_md", + description: + "Uploads DESIGN.md to a Stitch project. Use this tool when the user wants to create a design system from a DESIGN.md file.\n\n**Instructions for Tool Call:**\n* Call `create_design_system_from_design_md` tool immediately after this tool to create the design system from the uploaded DESIGN.md, and display the design system in the UI.\n", + inputSchema: { + description: "Request message for UploadDesignMd.", + properties: { + designMdBase64: { + description: + "Required. The base64-encoded DESIGN.md content. The decoded content must be valid UTF-8; uploads with invalid UTF-8 bytes will be rejected. Run `base64 -w 0 ` to get the base64-encoded string.", + type: "string", + }, + projectId: { + description: + "Required. The project ID to upload the DESIGN.md to, example: '4044680601076201931', without the `projects/` prefix.", + type: "string", + }, + }, + required: ["projectId", "designMdBase64"], + type: "object", + }, + }, { name: "create_design_system", description: @@ -452,6 +479,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM_SANS", "IBM_PLEX_SANS", "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN", ], type: "string", "x-google-enum-descriptions": [ @@ -484,6 +547,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM Sans font.", "IBM Plex Sans font.", "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font.", ], }, colorMode: { @@ -568,6 +667,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM_SANS", "IBM_PLEX_SANS", "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN", ], type: "string", "x-google-enum-descriptions": [ @@ -600,6 +735,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM Sans font.", "IBM Plex Sans font.", "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font.", ], }, labelFont: { @@ -634,6 +805,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM_SANS", "IBM_PLEX_SANS", "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN", ], type: "string", "x-google-enum-descriptions": [ @@ -666,6 +873,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM Sans font.", "IBM Plex Sans font.", "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font.", ], }, overrideNeutralColor: { @@ -792,6 +1035,66 @@ export const toolDefinitions: ToolDefinition[] = [ type: "object", }, }, + { + name: "create_design_system_from_design_md", + description: + "Creates a design system for a project, with user uploaded DESIGN.md file, and displays the design system in the UI.\n\n**Instructions for Tool Call:**\n* Should call `upload_design_md` tool first to upload DESIGN.md to a Stitch project.\n", + inputSchema: { + $defs: { + SelectedScreenInstance: { + description: + "A screen instance to be edited by the agent, selected by the user.", + properties: { + id: { + description: + "Required. The id of the screen instance, **NOT** the source screen id. This is available in the screen instances in the Project info, fetched by `get_project`.", + type: "string", + }, + sourceScreen: { + description: + "Required. The source screen of the screen instance. The resource name of the source screen. Format: projects/{project}/screens/{screen}", + type: "string", + }, + }, + required: ["id", "sourceScreen"], + type: "object", + }, + }, + description: "Request message for CreateDesignSystemFromDesignMd.", + properties: { + deviceType: { + description: "Optional. The device type of the screen.", + enum: [ + "DEVICE_TYPE_UNSPECIFIED", + "MOBILE", + "DESKTOP", + "TABLET", + "AGNOSTIC", + ], + type: "string", + "x-google-enum-descriptions": [ + "Unspecified device type.", + "A design for a mobile device.", + "A design for a desktop device.", + "A design for a tablet device.", + "A design that is not tied to a specific device.", + ], + }, + projectId: { + description: + "Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix.", + type: "string", + }, + selectedScreenInstance: { + $ref: "#/$defs/SelectedScreenInstance", + description: + "Required. The screen instance to create the design system from, which is created by UploadDesignMd RPC.", + }, + }, + required: ["projectId", "selectedScreenInstance"], + type: "object", + }, + }, { name: "update_design_system", description: @@ -851,6 +1154,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM_SANS", "IBM_PLEX_SANS", "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN", ], type: "string", "x-google-enum-descriptions": [ @@ -883,6 +1222,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM Sans font.", "IBM Plex Sans font.", "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font.", ], }, colorMode: { @@ -967,6 +1342,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM_SANS", "IBM_PLEX_SANS", "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN", ], type: "string", "x-google-enum-descriptions": [ @@ -999,6 +1410,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM Sans font.", "IBM Plex Sans font.", "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font.", ], }, labelFont: { @@ -1033,6 +1480,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM_SANS", "IBM_PLEX_SANS", "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN", ], type: "string", "x-google-enum-descriptions": [ @@ -1065,6 +1548,42 @@ export const toolDefinitions: ToolDefinition[] = [ "DM Sans font.", "IBM Plex Sans font.", "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font.", ], }, overrideNeutralColor: { diff --git a/packages/sdk/generated/src/types.generated.ts b/packages/sdk/generated/src/types.generated.ts index 70c5596..d847d37 100644 --- a/packages/sdk/generated/src/types.generated.ts +++ b/packages/sdk/generated/src/types.generated.ts @@ -2,12 +2,17 @@ * AUTO-GENERATED by scripts/generate-sdk.ts DO NOT EDIT — changes will be overwritten. -Source: tools-manifest.json (sha256:2f1a623ec115...) - domain-map.json (sha256:0ee09d686be6...) -Generated: 2026-06-01T03:47:10.743Z +Source: tools-manifest.json (sha256:d831990b27e9...) + domain-map.json (sha256:715639788724...) +Generated: 2026-06-01T04:11:36.685Z */ -/** The theme of the design. Next ID: 23 LINT.IfChange */ +/** A component style token in a design system. */ +export interface ComponentTokens { + tokens?: Record; +} + +/** The theme of the design. Next ID: 27 LINT.IfChange */ export interface DesignTheme { backgroundDark?: string; backgroundLight?: string; @@ -40,7 +45,44 @@ export interface DesignTheme { | "GEIST" | "DM_SANS" | "IBM_PLEX_SANS" - | "SORA"; + | "SORA" + | "ANYBODY" + | "ANTON" + | "ARCHIVO_NARROW" + | "ATKINSON_HYPERLEGIBLE_NEXT" + | "BARLOW_CONDENSED" + | "BEBAS_NEUE" + | "BODONI_MODA" + | "BRICOLAGE_GROTESQUE" + | "CHIVO" + | "CLIMATE_CRISIS" + | "COMFORTAA" + | "COURIER_PRIME" + | "FIRA_SANS" + | "GOOGLE_SANS" + | "GOOGLE_SANS_CODE" + | "GOOGLE_SANS_FLEX" + | "GOOGLE_SANS_MONO" + | "GOOGLE_SANS_TEXT" + | "IBM_PLEX_SERIF" + | "JETBRAINS_MONO" + | "KARLA" + | "LIBRE_FRANKLIN" + | "MERRIWEATHER" + | "NOTO_SANS" + | "OPEN_SANS" + | "OSWALD" + | "OUTFIT" + | "PLAYFAIR_DISPLAY" + | "POIRET_ONE" + | "QUESTRIAL" + | "QUICKSAND" + | "RALEWAY" + | "ROBOTO_FLEX" + | "SPACE_MONO" + | "SYNE" + | "VOLLKORN"; + bodyFontFamily?: string; colorMode?: "COLOR_MODE_UNSPECIFIED" | "LIGHT" | "DARK"; colorVariant?: | "COLOR_VARIANT_UNSPECIFIED" @@ -53,6 +95,7 @@ export interface DesignTheme { | "CONTENT" | "RAINBOW" | "FRUIT_SALAD"; + components?: Record; customColor?: string; description?: string; designMd?: string; @@ -85,7 +128,43 @@ export interface DesignTheme { | "GEIST" | "DM_SANS" | "IBM_PLEX_SANS" - | "SORA"; + | "SORA" + | "ANYBODY" + | "ANTON" + | "ARCHIVO_NARROW" + | "ATKINSON_HYPERLEGIBLE_NEXT" + | "BARLOW_CONDENSED" + | "BEBAS_NEUE" + | "BODONI_MODA" + | "BRICOLAGE_GROTESQUE" + | "CHIVO" + | "CLIMATE_CRISIS" + | "COMFORTAA" + | "COURIER_PRIME" + | "FIRA_SANS" + | "GOOGLE_SANS" + | "GOOGLE_SANS_CODE" + | "GOOGLE_SANS_FLEX" + | "GOOGLE_SANS_MONO" + | "GOOGLE_SANS_TEXT" + | "IBM_PLEX_SERIF" + | "JETBRAINS_MONO" + | "KARLA" + | "LIBRE_FRANKLIN" + | "MERRIWEATHER" + | "NOTO_SANS" + | "OPEN_SANS" + | "OSWALD" + | "OUTFIT" + | "PLAYFAIR_DISPLAY" + | "POIRET_ONE" + | "QUESTRIAL" + | "QUICKSAND" + | "RALEWAY" + | "ROBOTO_FLEX" + | "SPACE_MONO" + | "SYNE" + | "VOLLKORN"; headlineFont?: | "FONT_UNSPECIFIED" | "BE_VIETNAM_PRO" @@ -115,7 +194,44 @@ export interface DesignTheme { | "GEIST" | "DM_SANS" | "IBM_PLEX_SANS" - | "SORA"; + | "SORA" + | "ANYBODY" + | "ANTON" + | "ARCHIVO_NARROW" + | "ATKINSON_HYPERLEGIBLE_NEXT" + | "BARLOW_CONDENSED" + | "BEBAS_NEUE" + | "BODONI_MODA" + | "BRICOLAGE_GROTESQUE" + | "CHIVO" + | "CLIMATE_CRISIS" + | "COMFORTAA" + | "COURIER_PRIME" + | "FIRA_SANS" + | "GOOGLE_SANS" + | "GOOGLE_SANS_CODE" + | "GOOGLE_SANS_FLEX" + | "GOOGLE_SANS_MONO" + | "GOOGLE_SANS_TEXT" + | "IBM_PLEX_SERIF" + | "JETBRAINS_MONO" + | "KARLA" + | "LIBRE_FRANKLIN" + | "MERRIWEATHER" + | "NOTO_SANS" + | "OPEN_SANS" + | "OSWALD" + | "OUTFIT" + | "PLAYFAIR_DISPLAY" + | "POIRET_ONE" + | "QUESTRIAL" + | "QUICKSAND" + | "RALEWAY" + | "ROBOTO_FLEX" + | "SPACE_MONO" + | "SYNE" + | "VOLLKORN"; + headlineFontFamily?: string; labelFont?: | "FONT_UNSPECIFIED" | "BE_VIETNAM_PRO" @@ -145,7 +261,44 @@ export interface DesignTheme { | "GEIST" | "DM_SANS" | "IBM_PLEX_SANS" - | "SORA"; + | "SORA" + | "ANYBODY" + | "ANTON" + | "ARCHIVO_NARROW" + | "ATKINSON_HYPERLEGIBLE_NEXT" + | "BARLOW_CONDENSED" + | "BEBAS_NEUE" + | "BODONI_MODA" + | "BRICOLAGE_GROTESQUE" + | "CHIVO" + | "CLIMATE_CRISIS" + | "COMFORTAA" + | "COURIER_PRIME" + | "FIRA_SANS" + | "GOOGLE_SANS" + | "GOOGLE_SANS_CODE" + | "GOOGLE_SANS_FLEX" + | "GOOGLE_SANS_MONO" + | "GOOGLE_SANS_TEXT" + | "IBM_PLEX_SERIF" + | "JETBRAINS_MONO" + | "KARLA" + | "LIBRE_FRANKLIN" + | "MERRIWEATHER" + | "NOTO_SANS" + | "OPEN_SANS" + | "OSWALD" + | "OUTFIT" + | "PLAYFAIR_DISPLAY" + | "POIRET_ONE" + | "QUESTRIAL" + | "QUICKSAND" + | "RALEWAY" + | "ROBOTO_FLEX" + | "SPACE_MONO" + | "SYNE" + | "VOLLKORN"; + labelFontFamily?: string; namedColors?: Record; overrideNeutralColor?: string; overridePrimaryColor?: string; @@ -181,7 +334,7 @@ export interface ProjectMetadata { userRole?: "ROLE_UNSPECIFIED" | "OWNER" | "READER"; } -/** An instance of a screen on the project. Next ID: 15 */ +/** An instance of a screen on the project. */ export interface ScreenInstance { groupId?: string; groupName?: string; @@ -197,7 +350,6 @@ export interface ScreenInstance { | "SCREEN_INSTANCE" | "DESIGN_SYSTEM_INSTANCE" | "GROUP_INSTANCE"; - variantScreenInstance?: ScreenInstance; width?: number; x?: number; y?: number; @@ -389,6 +541,25 @@ export interface PrototypeV2Spec { states?: PrototypeState[]; } +/** A single structured question the agent asks the user. */ +export interface Question { + options?: string[]; + questionId?: string; + responseType?: + | "QUESTION_RESPONSE_TYPE_UNSPECIFIED" + | "FREEFORM_TEXT" + | "MULTIPLE_CHOICE" + | "SINGLE_CHOICE" + | "YES_NO" + | "RATING_SCALE"; + text?: string; +} + +/** A set of questions sent from the agent to the user. */ +export interface QuestionsAsked { + questions?: Question[]; +} + /** The metadata of a screen. */ export interface ScreenMetadata { agentType?: @@ -412,7 +583,9 @@ export interface ScreenMetadata { | "TABLE" | "MERMAID" | "CHECKLIST" - | "CHART"; + | "CHART" + | "PDF" + | "FIGMA"; isRemixed?: boolean; prototypeSpec?: PrototypeV2Spec; status?: "SCREEN_STATUS_UNSPECIFIED" | "IN_PROGRESS" | "COMPLETE" | "FAILED"; @@ -421,11 +594,22 @@ export interface ScreenMetadata { summary?: string; } +/** Flexible session events carrying JSON payload. */ +export interface SessionEvent { + actor?: string; + eventId?: string; + eventPayload?: Record; + eventTime?: string; + eventType?: string; +} + /** A partial output of the session. */ export interface SessionOutputComponent { design?: Design; designSystem?: Asset; progressUpdates?: ProgressUpdates; + questionsAsked?: QuestionsAsked; + sessionEvent?: SessionEvent; suggestion?: string; text?: string; } diff --git a/packages/sdk/generated/stitch-sdk.lock b/packages/sdk/generated/stitch-sdk.lock index 1fadebd..a325ca7 100644 --- a/packages/sdk/generated/stitch-sdk.lock +++ b/packages/sdk/generated/stitch-sdk.lock @@ -1,23 +1,23 @@ { "schemaVersion": 1, "generated": { - "generatedAt": "2026-06-01T03:47:10.968Z", - "sourceHash": "sha256:8ef8a51da19f0061e7a97d11bf81ef7a57b0fbc886bf748dea49f763318140c8", - "manifestHash": "sha256:2f1a623ec115abb1b93a059223ce201160fe433aeb23436e76408e09391cfede", - "domainMapHash": "sha256:0ee09d686be6bb6a832f7ad8bb46be2c046d3f7c1f2681d3171114394760e3fe", + "generatedAt": "2026-06-01T04:11:36.921Z", + "sourceHash": "sha256:7069fffc2c4b2d9e4ae1f6d0aac5ca0ba54af5833fc843647351874baac6fafc", + "manifestHash": "sha256:d831990b27e9ceb013d230c5ffcbab7165b7f54645118391ca656a368c467579", + "domainMapHash": "sha256:71563978872456664fc52de9f35bdaf8537b1595d24e66038fbab741747244b4", "fileCount": 8 }, "domainMap": { - "generatedAt": "2026-06-01T03:47:10.969Z", - "sourceHash": "sha256:0ee09d686be6bb6a832f7ad8bb46be2c046d3f7c1f2681d3171114394760e3fe", - "manifestHash": "sha256:2f1a623ec115abb1b93a059223ce201160fe433aeb23436e76408e09391cfede", + "generatedAt": "2026-06-01T04:11:36.921Z", + "sourceHash": "sha256:71563978872456664fc52de9f35bdaf8537b1595d24e66038fbab741747244b4", + "manifestHash": "sha256:d831990b27e9ceb013d230c5ffcbab7165b7f54645118391ca656a368c467579", "classCount": 4, - "bindingCount": 13 + "bindingCount": 15 }, "manifest": { - "capturedAt": "2026-04-03T00:32:58.625Z", - "sourceHash": "sha256:2f1a623ec115abb1b93a059223ce201160fe433aeb23436e76408e09391cfede", - "toolCount": 12, + "capturedAt": "2026-06-01T04:06:40.767Z", + "sourceHash": "sha256:d831990b27e9ceb013d230c5ffcbab7165b7f54645118391ca656a368c467579", + "toolCount": 14, "serverUrl": "https://stitch.googleapis.com/mcp" } } diff --git a/packages/sdk/generated/tools-manifest.json b/packages/sdk/generated/tools-manifest.json index cee15a2..fd13a98 100644 --- a/packages/sdk/generated/tools-manifest.json +++ b/packages/sdk/generated/tools-manifest.json @@ -20,8 +20,21 @@ "name": "create_project", "outputSchema": { "$defs": { + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -64,7 +77,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -96,8 +145,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -137,6 +226,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -182,7 +278,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -214,7 +346,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -248,7 +416,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -280,8 +484,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -314,7 +558,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -346,8 +626,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -487,7 +807,7 @@ "type": "object" }, "ScreenInstance": { - "description": "An instance of a screen on the project. Next ID: 15", + "description": "An instance of a screen on the project. Next ID: 17", "properties": { "groupId": { "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", @@ -514,6 +834,10 @@ "description": "Optional. Whether this screen is marked as a favourite by the user.", "type": "boolean" }, + "isResized": { + "description": "Optional. Whether this screen has been resized by the user.", + "type": "boolean" + }, "label": { "description": "Optional. The screen label.", "type": "string" @@ -526,20 +850,26 @@ "description": "Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}", "type": "string" }, + "textContent": { + "description": "Optional. Text content for TEXT_INSTANCE nodes.", + "type": "string" + }, "type": { "description": "Optional. The type of screen instance.", "enum": [ "SCREEN_INSTANCE_TYPE_UNSPECIFIED", "SCREEN_INSTANCE", "DESIGN_SYSTEM_INSTANCE", - "GROUP_INSTANCE" + "GROUP_INSTANCE", + "TEXT_INSTANCE" ], "type": "string", "x-google-enum-descriptions": [ "The unspecified value.", "A screen instance.", "A design system instance.", - "A group instance." + "A group instance.", + "A text instance." ] }, "variantScreenInstance": { @@ -653,7 +983,7 @@ "readOnly": true }, "deviceType": { - "description": "Output only. The device type of the project.", + "description": "Optional. The device type of the project.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", @@ -661,7 +991,6 @@ "TABLET", "AGNOSTIC" ], - "readOnly": true, "type": "string", "x-google-enum-descriptions": [ "Unspecified device type.", @@ -777,8 +1106,21 @@ "name": "get_project", "outputSchema": { "$defs": { + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -821,7 +1163,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -853,8 +1231,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -894,6 +1312,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -939,7 +1364,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -971,7 +1432,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -1005,7 +1502,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -1037,8 +1570,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -1071,7 +1644,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -1103,8 +1712,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -1244,7 +1893,7 @@ "type": "object" }, "ScreenInstance": { - "description": "An instance of a screen on the project. Next ID: 15", + "description": "An instance of a screen on the project. Next ID: 17", "properties": { "groupId": { "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", @@ -1271,6 +1920,10 @@ "description": "Optional. Whether this screen is marked as a favourite by the user.", "type": "boolean" }, + "isResized": { + "description": "Optional. Whether this screen has been resized by the user.", + "type": "boolean" + }, "label": { "description": "Optional. The screen label.", "type": "string" @@ -1283,20 +1936,26 @@ "description": "Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}", "type": "string" }, + "textContent": { + "description": "Optional. Text content for TEXT_INSTANCE nodes.", + "type": "string" + }, "type": { "description": "Optional. The type of screen instance.", "enum": [ "SCREEN_INSTANCE_TYPE_UNSPECIFIED", "SCREEN_INSTANCE", "DESIGN_SYSTEM_INSTANCE", - "GROUP_INSTANCE" + "GROUP_INSTANCE", + "TEXT_INSTANCE" ], "type": "string", "x-google-enum-descriptions": [ "The unspecified value.", "A screen instance.", "A design system instance.", - "A group instance." + "A group instance.", + "A text instance." ] }, "variantScreenInstance": { @@ -1410,7 +2069,7 @@ "readOnly": true }, "deviceType": { - "description": "Output only. The device type of the project.", + "description": "Optional. The device type of the project.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", @@ -1418,7 +2077,6 @@ "TABLET", "AGNOSTIC" ], - "readOnly": true, "type": "string", "x-google-enum-descriptions": [ "Unspecified device type.", @@ -1531,8 +2189,21 @@ "name": "list_projects", "outputSchema": { "$defs": { + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -1575,7 +2246,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -1607,8 +2314,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -1648,6 +2395,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -1693,7 +2447,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -1725,7 +2515,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -1759,7 +2585,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -1791,8 +2653,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -1825,7 +2727,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -1857,8 +2795,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -1996,7 +2974,7 @@ "readOnly": true }, "deviceType": { - "description": "Output only. The device type of the project.", + "description": "Optional. The device type of the project.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", @@ -2004,7 +2982,6 @@ "TABLET", "AGNOSTIC" ], - "readOnly": true, "type": "string", "x-google-enum-descriptions": [ "Unspecified device type.", @@ -2118,7 +3095,7 @@ "type": "object" }, "ScreenInstance": { - "description": "An instance of a screen on the project. Next ID: 15", + "description": "An instance of a screen on the project. Next ID: 17", "properties": { "groupId": { "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", @@ -2145,6 +3122,10 @@ "description": "Optional. Whether this screen is marked as a favourite by the user.", "type": "boolean" }, + "isResized": { + "description": "Optional. Whether this screen has been resized by the user.", + "type": "boolean" + }, "label": { "description": "Optional. The screen label.", "type": "string" @@ -2157,20 +3138,26 @@ "description": "Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}", "type": "string" }, + "textContent": { + "description": "Optional. Text content for TEXT_INSTANCE nodes.", + "type": "string" + }, "type": { "description": "Optional. The type of screen instance.", "enum": [ "SCREEN_INSTANCE_TYPE_UNSPECIFIED", "SCREEN_INSTANCE", "DESIGN_SYSTEM_INSTANCE", - "GROUP_INSTANCE" + "GROUP_INSTANCE", + "TEXT_INSTANCE" ], "type": "string", "x-google-enum-descriptions": [ "The unspecified value.", "A screen instance.", "A design system instance.", - "A group instance." + "A group instance.", + "A text instance." ] }, "variantScreenInstance": { @@ -2605,10 +3592,14 @@ "openWorldHint": false, "readOnlyHint": false }, - "description": "Generates a new screen within a project from a text prompt.\n\n**Instructions for Tool Call:**\n* This action can take a few minutes to complete. Please be patient. DO NOT RETRY.\n* If the tool call fails due to connection error, the generation process may still succeed. Please try to get the screen with `get_screen` method later.\n\n**Output:**\n* **`output_components`**: If `output_components` contains text, return it to the user. If `output_components` contains suggestions (e.g. \"Yes, make them all\"), present these suggestions to the user. If the user accepts one of the suggestions, call `generate_screen_from_text` again with `prompt` set to the accepted suggestion.\n", + "description": "Generates a new screen within a project from a text prompt.\n\n**Instructions for Tool Call:**\n* This action can take a few minutes to complete. Please be patient. DO NOT RETRY.\n* If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up.\n* If the tool call fails due to connection error, the generation process may still succeed. Please try to get the screen with `get_screen` method later.\n\n**Output:**\n* **`output_components`**: If `output_components` contains text, return it to the user. If `output_components` contains suggestions (e.g. \"Yes, make them all\"), present these suggestions to the user. If the user accepts one of the suggestions, call `generate_screen_from_text` again with `prompt` set to the accepted suggestion.\n", "inputSchema": { "description": "Request message for GenerateScreenFromText.", "properties": { + "designSystem": { + "description": "Optional. The design system id to use for generating the new screen, should always be configured for design consistency, via `get_project` or `list_assets` methods. If not provided, a default design system will be used. Example: `assets/15996705518239280238`.", + "type": "string" + }, "deviceType": { "description": "The type of device that captured the screenshot, e.g., mobile or desktop.", "enum": [ @@ -2748,6 +3739,19 @@ }, "type": "object" }, + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "Design": { "description": "A generated design, which is a collection of multiple screens. Note: do not add new fields to this message or rely on it for any logic. For any Screen property, add it to Screen message instead. Design is a deprecated hierarchical container for screens and is only used for backward compatibility.", "properties": { @@ -2813,7 +3817,7 @@ "type": "string" }, "styleGuidelines": { - "description": "Optional. Freeform text description of the style guidelines.", + "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { @@ -2824,7 +3828,7 @@ "type": "object" }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -2867,7 +3871,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -2899,8 +3939,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -2940,6 +4020,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -2985,7 +4072,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -3017,7 +4140,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -3051,7 +4210,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -3083,8 +4278,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -3117,7 +4352,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -3149,8 +4420,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -3389,6 +4700,60 @@ }, "type": "object" }, + "Question": { + "description": "A single structured question the agent asks the user.", + "properties": { + "options": { + "description": "Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.", + "items": { + "type": "string" + }, + "type": "array" + }, + "questionId": { + "description": "An optional unique identifier for correlating answers to questions.", + "type": "string" + }, + "responseType": { + "description": "The expected response type.", + "enum": [ + "QUESTION_RESPONSE_TYPE_UNSPECIFIED", + "FREEFORM_TEXT", + "MULTIPLE_CHOICE", + "SINGLE_CHOICE", + "YES_NO", + "RATING_SCALE" + ], + "type": "string", + "x-google-enum-descriptions": [ + "Unspecified response type.", + "Open-ended text input.", + "Select one or more options from a list.", + "Select exactly one option from a list.", + "Simple yes / no.", + "Numeric rating on a scale." + ] + }, + "text": { + "description": "The question text displayed to the user.", + "type": "string" + } + }, + "type": "object" + }, + "QuestionsAsked": { + "description": "A set of questions sent from the agent to the user.", + "properties": { + "questions": { + "description": "The list of questions asked by the agent.", + "items": { + "$ref": "#/$defs/Question" + }, + "type": "array" + } + }, + "type": "object" + }, "Screen": { "description": "A generated screen.", "properties": { @@ -3516,9 +4881,19 @@ "GEMINI_3_AGENT" ], "type": "string", + "x-google-enum-deprecated": [ + false, + true, + false, + false, + false, + false, + false, + false + ], "x-google-enum-descriptions": [ "Unspecified agent type. The service will pick one.", - "The turbo agent, faster and with figma export.", + "Deprecated: Turbo agent is no longer supported.", "This agent uses Gemini 3.0 Flash. The \"PRO\" name is a legacy from when it used Gemini 2.5 Pro.", "The image agent, produces image screens.", "The Genie agent prototype agent.", @@ -3547,7 +4922,9 @@ "TABLE", "MERMAID", "CHECKLIST", - "CHART" + "CHART", + "PDF", + "FIGMA" ], "type": "string", "x-google-enum-descriptions": [ @@ -3561,7 +4938,9 @@ "Displays the screen as a data table (CSV).", "Displays the screen as a mermaid diagram.", "Agent only: The document node is displayed as an interactive checklist.", - "Agent only: The document node is displayed as an interactive Chart.js chart." + "Agent only: The document node is displayed as an interactive Chart.js chart.", + "Displays the screen as a PDF document.", + "Displays the screen as a Figma file." ] }, "isRemixed": { @@ -3606,6 +4985,41 @@ }, "type": "object" }, + "SessionEvent": { + "description": "Flexible session events carrying JSON payload.", + "properties": { + "actor": { + "description": "Output only. The actor who triggered the event.", + "readOnly": true, + "type": "string" + }, + "eventId": { + "description": "Output only. Unique identifier for the event.", + "readOnly": true, + "type": "string" + }, + "eventPayload": { + "additionalProperties": { + "description": "Properties of the object." + }, + "description": "Output only. Payload carrying flexible event data.", + "readOnly": true, + "type": "object" + }, + "eventTime": { + "description": "Output only. Time when the event occurred.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "eventType": { + "description": "Output only. Type of the event.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SessionOutputComponent": { "description": "A partial output of the session.", "properties": { @@ -3623,6 +5037,16 @@ "description": "Output only. Progress updates from the agent.", "readOnly": true }, + "questionsAsked": { + "$ref": "#/$defs/QuestionsAsked", + "description": "Output only. Structured questions asked by the agent.", + "readOnly": true + }, + "sessionEvent": { + "$ref": "#/$defs/SessionEvent", + "description": "Output only. Flexible session events carrying JSON payload.", + "readOnly": true + }, "suggestion": { "description": "The agent generates a suggested response to be displayed to the user.", "type": "string" @@ -3883,6 +5307,19 @@ }, "type": "object" }, + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "Design": { "description": "A generated design, which is a collection of multiple screens. Note: do not add new fields to this message or rely on it for any logic. For any Screen property, add it to Screen message instead. Design is a deprecated hierarchical container for screens and is only used for backward compatibility.", "properties": { @@ -3948,7 +5385,7 @@ "type": "string" }, "styleGuidelines": { - "description": "Optional. Freeform text description of the style guidelines.", + "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { @@ -3959,7 +5396,7 @@ "type": "object" }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -4002,7 +5439,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -4034,8 +5507,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -4075,6 +5588,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -4120,7 +5640,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -4152,7 +5708,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -4186,7 +5778,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -4218,8 +5846,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -4252,7 +5920,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -4284,8 +5988,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -4524,6 +6268,60 @@ }, "type": "object" }, + "Question": { + "description": "A single structured question the agent asks the user.", + "properties": { + "options": { + "description": "Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.", + "items": { + "type": "string" + }, + "type": "array" + }, + "questionId": { + "description": "An optional unique identifier for correlating answers to questions.", + "type": "string" + }, + "responseType": { + "description": "The expected response type.", + "enum": [ + "QUESTION_RESPONSE_TYPE_UNSPECIFIED", + "FREEFORM_TEXT", + "MULTIPLE_CHOICE", + "SINGLE_CHOICE", + "YES_NO", + "RATING_SCALE" + ], + "type": "string", + "x-google-enum-descriptions": [ + "Unspecified response type.", + "Open-ended text input.", + "Select one or more options from a list.", + "Select exactly one option from a list.", + "Simple yes / no.", + "Numeric rating on a scale." + ] + }, + "text": { + "description": "The question text displayed to the user.", + "type": "string" + } + }, + "type": "object" + }, + "QuestionsAsked": { + "description": "A set of questions sent from the agent to the user.", + "properties": { + "questions": { + "description": "The list of questions asked by the agent.", + "items": { + "$ref": "#/$defs/Question" + }, + "type": "array" + } + }, + "type": "object" + }, "Screen": { "description": "A generated screen.", "properties": { @@ -4651,9 +6449,19 @@ "GEMINI_3_AGENT" ], "type": "string", + "x-google-enum-deprecated": [ + false, + true, + false, + false, + false, + false, + false, + false + ], "x-google-enum-descriptions": [ "Unspecified agent type. The service will pick one.", - "The turbo agent, faster and with figma export.", + "Deprecated: Turbo agent is no longer supported.", "This agent uses Gemini 3.0 Flash. The \"PRO\" name is a legacy from when it used Gemini 2.5 Pro.", "The image agent, produces image screens.", "The Genie agent prototype agent.", @@ -4682,7 +6490,9 @@ "TABLE", "MERMAID", "CHECKLIST", - "CHART" + "CHART", + "PDF", + "FIGMA" ], "type": "string", "x-google-enum-descriptions": [ @@ -4696,7 +6506,9 @@ "Displays the screen as a data table (CSV).", "Displays the screen as a mermaid diagram.", "Agent only: The document node is displayed as an interactive checklist.", - "Agent only: The document node is displayed as an interactive Chart.js chart." + "Agent only: The document node is displayed as an interactive Chart.js chart.", + "Displays the screen as a PDF document.", + "Displays the screen as a Figma file." ] }, "isRemixed": { @@ -4741,6 +6553,41 @@ }, "type": "object" }, + "SessionEvent": { + "description": "Flexible session events carrying JSON payload.", + "properties": { + "actor": { + "description": "Output only. The actor who triggered the event.", + "readOnly": true, + "type": "string" + }, + "eventId": { + "description": "Output only. Unique identifier for the event.", + "readOnly": true, + "type": "string" + }, + "eventPayload": { + "additionalProperties": { + "description": "Properties of the object." + }, + "description": "Output only. Payload carrying flexible event data.", + "readOnly": true, + "type": "object" + }, + "eventTime": { + "description": "Output only. Time when the event occurred.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "eventType": { + "description": "Output only. Type of the event.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SessionOutputComponent": { "description": "A partial output of the session.", "properties": { @@ -4758,6 +6605,16 @@ "description": "Output only. Progress updates from the agent.", "readOnly": true }, + "questionsAsked": { + "$ref": "#/$defs/QuestionsAsked", + "description": "Output only. Structured questions asked by the agent.", + "readOnly": true + }, + "sessionEvent": { + "$ref": "#/$defs/SessionEvent", + "description": "Output only. Flexible session events carrying JSON payload.", + "readOnly": true + }, "suggestion": { "description": "The agent generates a suggested response to be displayed to the user.", "type": "string" @@ -4868,7 +6725,7 @@ "openWorldHint": false, "readOnlyHint": false }, - "description": "Generates variants of existing screens within a project using a text prompt.\n", + "description": "Generates variants of existing screens within a project using a text prompt.\n\n**Instructions for Tool Call:**\n* If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up.\n", "inputSchema": { "$defs": { "VariantOptions": { @@ -5079,6 +6936,19 @@ }, "type": "object" }, + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "Design": { "description": "A generated design, which is a collection of multiple screens. Note: do not add new fields to this message or rely on it for any logic. For any Screen property, add it to Screen message instead. Design is a deprecated hierarchical container for screens and is only used for backward compatibility.", "properties": { @@ -5144,7 +7014,7 @@ "type": "string" }, "styleGuidelines": { - "description": "Optional. Freeform text description of the style guidelines.", + "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { @@ -5155,7 +7025,7 @@ "type": "object" }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -5198,7 +7068,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -5230,8 +7136,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -5271,7 +7217,14 @@ "Fruit salad variant." ] }, - "customColor": { + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, + "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, @@ -5316,7 +7269,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -5348,7 +7337,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -5382,7 +7407,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -5414,8 +7475,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -5448,7 +7549,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -5480,8 +7617,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -5720,6 +7897,60 @@ }, "type": "object" }, + "Question": { + "description": "A single structured question the agent asks the user.", + "properties": { + "options": { + "description": "Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.", + "items": { + "type": "string" + }, + "type": "array" + }, + "questionId": { + "description": "An optional unique identifier for correlating answers to questions.", + "type": "string" + }, + "responseType": { + "description": "The expected response type.", + "enum": [ + "QUESTION_RESPONSE_TYPE_UNSPECIFIED", + "FREEFORM_TEXT", + "MULTIPLE_CHOICE", + "SINGLE_CHOICE", + "YES_NO", + "RATING_SCALE" + ], + "type": "string", + "x-google-enum-descriptions": [ + "Unspecified response type.", + "Open-ended text input.", + "Select one or more options from a list.", + "Select exactly one option from a list.", + "Simple yes / no.", + "Numeric rating on a scale." + ] + }, + "text": { + "description": "The question text displayed to the user.", + "type": "string" + } + }, + "type": "object" + }, + "QuestionsAsked": { + "description": "A set of questions sent from the agent to the user.", + "properties": { + "questions": { + "description": "The list of questions asked by the agent.", + "items": { + "$ref": "#/$defs/Question" + }, + "type": "array" + } + }, + "type": "object" + }, "Screen": { "description": "A generated screen.", "properties": { @@ -5847,9 +8078,19 @@ "GEMINI_3_AGENT" ], "type": "string", + "x-google-enum-deprecated": [ + false, + true, + false, + false, + false, + false, + false, + false + ], "x-google-enum-descriptions": [ "Unspecified agent type. The service will pick one.", - "The turbo agent, faster and with figma export.", + "Deprecated: Turbo agent is no longer supported.", "This agent uses Gemini 3.0 Flash. The \"PRO\" name is a legacy from when it used Gemini 2.5 Pro.", "The image agent, produces image screens.", "The Genie agent prototype agent.", @@ -5878,7 +8119,9 @@ "TABLE", "MERMAID", "CHECKLIST", - "CHART" + "CHART", + "PDF", + "FIGMA" ], "type": "string", "x-google-enum-descriptions": [ @@ -5892,7 +8135,9 @@ "Displays the screen as a data table (CSV).", "Displays the screen as a mermaid diagram.", "Agent only: The document node is displayed as an interactive checklist.", - "Agent only: The document node is displayed as an interactive Chart.js chart." + "Agent only: The document node is displayed as an interactive Chart.js chart.", + "Displays the screen as a PDF document.", + "Displays the screen as a Figma file." ] }, "isRemixed": { @@ -5937,6 +8182,41 @@ }, "type": "object" }, + "SessionEvent": { + "description": "Flexible session events carrying JSON payload.", + "properties": { + "actor": { + "description": "Output only. The actor who triggered the event.", + "readOnly": true, + "type": "string" + }, + "eventId": { + "description": "Output only. Unique identifier for the event.", + "readOnly": true, + "type": "string" + }, + "eventPayload": { + "additionalProperties": { + "description": "Properties of the object." + }, + "description": "Output only. Payload carrying flexible event data.", + "readOnly": true, + "type": "object" + }, + "eventTime": { + "description": "Output only. Time when the event occurred.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "eventType": { + "description": "Output only. Type of the event.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SessionOutputComponent": { "description": "A partial output of the session.", "properties": { @@ -5954,6 +8234,16 @@ "description": "Output only. Progress updates from the agent.", "readOnly": true }, + "questionsAsked": { + "$ref": "#/$defs/QuestionsAsked", + "description": "Output only. Structured questions asked by the agent.", + "readOnly": true + }, + "sessionEvent": { + "$ref": "#/$defs/SessionEvent", + "description": "Output only. Flexible session events carrying JSON payload.", + "readOnly": true + }, "suggestion": { "description": "The agent generates a suggested response to be displayed to the user.", "type": "string" @@ -6057,6 +8347,176 @@ "type": "object" } }, + { + "annotations": { + "destructiveHint": true, + "idempotentHint": false, + "openWorldHint": false, + "readOnlyHint": false + }, + "description": "Uploads DESIGN.md to a Stitch project. Use this tool when the user wants to create a design system from a DESIGN.md file.\n\n**Instructions for Tool Call:**\n* Call `create_design_system_from_design_md` tool immediately after this tool to create the design system from the uploaded DESIGN.md, and display the design system in the UI.\n", + "inputSchema": { + "description": "Request message for UploadDesignMd.", + "properties": { + "designMdBase64": { + "description": "Required. The base64-encoded DESIGN.md content. The decoded content must be valid UTF-8; uploads with invalid UTF-8 bytes will be rejected. Run `base64 -w 0 ` to get the base64-encoded string.", + "type": "string" + }, + "projectId": { + "description": "Required. The project ID to upload the DESIGN.md to, example: '4044680601076201931', without the `projects/` prefix.", + "type": "string" + } + }, + "required": ["projectId", "designMdBase64"], + "type": "object" + }, + "name": "upload_design_md", + "outputSchema": { + "description": "An instance of a screen on the project. Next ID: 17", + "properties": { + "groupId": { + "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", + "type": "string" + }, + "groupName": { + "description": "Optional. Human-readable name for the group (e.g., \"Warm Minimalism\", \"Ethereal Glow\").", + "type": "string" + }, + "height": { + "description": "Optional. The screen height.", + "format": "int32", + "type": "integer" + }, + "hidden": { + "description": "Optional. User driven action hiding screen from the canvas.", + "type": "boolean" + }, + "id": { + "description": "Optional. The screen instance id.", + "type": "string" + }, + "isFavourite": { + "description": "Optional. Whether this screen is marked as a favourite by the user.", + "type": "boolean" + }, + "isResized": { + "description": "Optional. Whether this screen has been resized by the user.", + "type": "boolean" + }, + "label": { + "description": "Optional. The screen label.", + "type": "string" + }, + "sourceAsset": { + "description": "Optional. The resource name of the source asset. Format: assets/{asset}", + "type": "string" + }, + "sourceScreen": { + "description": "Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}", + "type": "string" + }, + "textContent": { + "description": "Optional. Text content for TEXT_INSTANCE nodes.", + "type": "string" + }, + "type": { + "description": "Optional. The type of screen instance.", + "enum": [ + "SCREEN_INSTANCE_TYPE_UNSPECIFIED", + "SCREEN_INSTANCE", + "DESIGN_SYSTEM_INSTANCE", + "GROUP_INSTANCE", + "TEXT_INSTANCE" + ], + "type": "string", + "x-google-enum-descriptions": [ + "The unspecified value.", + "A screen instance.", + "A design system instance.", + "A group instance.", + "A text instance." + ] + }, + "variantScreenInstance": { + "$ref": "#/$defs/ScreenInstance", + "description": "Optional. The variant Screen Instance." + }, + "width": { + "description": "Optional. The screen width.", + "format": "int32", + "type": "integer" + }, + "x": { + "description": "Optional. The x position of the screen.", + "format": "int32", + "type": "integer" + }, + "y": { + "description": "Optional. The y position of the screen.", + "format": "int32", + "type": "integer" + } + }, + "type": "object", + "$defs": { + "ScreenInstance": { + "type": "object", + "description": "An instance of a screen on the project.", + "properties": { + "groupId": { + "type": "string" + }, + "groupName": { + "type": "string" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "isFavourite": { + "type": "boolean" + }, + "label": { + "type": "string" + }, + "sourceAsset": { + "type": "string" + }, + "sourceScreen": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "SCREEN_INSTANCE_TYPE_UNSPECIFIED", + "SCREEN_INSTANCE", + "DESIGN_SYSTEM_INSTANCE", + "GROUP_INSTANCE" + ] + }, + "width": { + "type": "integer", + "format": "int32" + }, + "x": { + "type": "integer", + "format": "int32" + }, + "y": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, { "annotations": { "destructiveHint": true, @@ -6116,7 +8576,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -6148,7 +8644,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "colorMode": { @@ -6228,7 +8760,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -6260,7 +8828,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "labelFont": { @@ -6294,7 +8898,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -6326,7 +8966,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "overrideNeutralColor": { @@ -6441,6 +9117,19 @@ "name": "create_design_system", "outputSchema": { "$defs": { + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "DesignSystem": { "description": "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange", "properties": { @@ -6453,7 +9142,7 @@ "type": "string" }, "styleGuidelines": { - "description": "Optional. Freeform text description of the style guidelines.", + "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { @@ -6464,7 +9153,7 @@ "type": "object" }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -6507,7 +9196,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -6539,8 +9264,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -6580,6 +9345,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -6625,7 +9397,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -6657,7 +9465,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -6691,7 +9535,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -6723,8 +9603,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -6757,7 +9677,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -6789,8 +9745,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -6928,6 +9924,76 @@ "type": "object" } }, + { + "annotations": { + "destructiveHint": true, + "idempotentHint": false, + "openWorldHint": false, + "readOnlyHint": false + }, + "description": "Creates a design system for a project, with user uploaded DESIGN.md file, and displays the design system in the UI.\n\n**Instructions for Tool Call:**\n* Should call `upload_design_md` tool first to upload DESIGN.md to a Stitch project.\n", + "inputSchema": { + "$defs": { + "SelectedScreenInstance": { + "description": "A screen instance to be edited by the agent, selected by the user.", + "properties": { + "id": { + "description": "Required. The id of the screen instance, **NOT** the source screen id. This is available in the screen instances in the Project info, fetched by `get_project`.", + "type": "string" + }, + "sourceScreen": { + "description": "Required. The source screen of the screen instance. The resource name of the source screen. Format: projects/{project}/screens/{screen}", + "type": "string" + } + }, + "required": ["id", "sourceScreen"], + "type": "object" + } + }, + "description": "Request message for CreateDesignSystemFromDesignMd.", + "properties": { + "deviceType": { + "description": "Optional. The device type of the screen.", + "enum": [ + "DEVICE_TYPE_UNSPECIFIED", + "MOBILE", + "DESKTOP", + "TABLET", + "AGNOSTIC" + ], + "type": "string", + "x-google-enum-descriptions": [ + "Unspecified device type.", + "A design for a mobile device.", + "A design for a desktop device.", + "A design for a tablet device.", + "A design that is not tied to a specific device." + ] + }, + "projectId": { + "description": "Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix.", + "type": "string" + }, + "selectedScreenInstance": { + "$ref": "#/$defs/SelectedScreenInstance", + "description": "Required. The screen instance to create the design system from, which is created by UploadDesignMd RPC." + } + }, + "required": ["projectId", "selectedScreenInstance"], + "type": "object" + }, + "name": "create_design_system_from_design_md", + "outputSchema": { + "description": "Response message for CreateDesignSystemFromDesignMd.", + "properties": { + "assetId": { + "description": "The asset id of the design system. Example: '15996705518239280238', without the `assets/` prefix.", + "type": "string" + } + }, + "type": "object" + } + }, { "annotations": { "destructiveHint": true, @@ -6987,7 +10053,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -7019,7 +10121,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "colorMode": { @@ -7099,7 +10237,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -7131,7 +10305,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "labelFont": { @@ -7165,7 +10375,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -7197,7 +10443,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "overrideNeutralColor": { @@ -7317,6 +10599,19 @@ "name": "update_design_system", "outputSchema": { "$defs": { + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "DesignSystem": { "description": "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange", "properties": { @@ -7329,7 +10624,7 @@ "type": "string" }, "styleGuidelines": { - "description": "Optional. Freeform text description of the style guidelines.", + "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { @@ -7340,7 +10635,7 @@ "type": "object" }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -7383,7 +10678,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -7415,8 +10746,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -7456,6 +10827,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -7501,7 +10879,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -7533,7 +10947,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -7567,7 +11017,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -7599,8 +11085,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -7633,7 +11159,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -7665,8 +11227,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -7848,6 +11450,19 @@ }, "type": "object" }, + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "DesignSystem": { "description": "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange", "properties": { @@ -7860,7 +11475,7 @@ "type": "string" }, "styleGuidelines": { - "description": "Optional. Freeform text description of the style guidelines.", + "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { @@ -7871,7 +11486,7 @@ "type": "object" }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -7914,7 +11529,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -7946,8 +11597,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -7987,6 +11678,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -8032,7 +11730,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -8064,7 +11798,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -8098,7 +11868,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -8130,8 +11936,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -8164,7 +12010,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -8196,8 +12078,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -8462,6 +12384,19 @@ }, "type": "object" }, + "ComponentTokens": { + "description": "A component style token in a design system.", + "properties": { + "tokens": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.", + "type": "object" + } + }, + "type": "object" + }, "Design": { "description": "A generated design, which is a collection of multiple screens. Note: do not add new fields to this message or rely on it for any logic. For any Screen property, add it to Screen message instead. Design is a deprecated hierarchical container for screens and is only used for backward compatibility.", "properties": { @@ -8527,7 +12462,7 @@ "type": "string" }, "styleGuidelines": { - "description": "Optional. Freeform text description of the style guidelines.", + "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { @@ -8538,7 +12473,7 @@ "type": "object" }, "DesignTheme": { - "description": "The theme of the design. Next ID: 23 LINT.IfChange", + "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, @@ -8581,7 +12516,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -8613,8 +12584,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "bodyFontFamily": { + "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", @@ -8654,6 +12665,13 @@ "Fruit salad variant." ] }, + "components": { + "additionalProperties": { + "$ref": "#/$defs/ComponentTokens" + }, + "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", + "type": "object" + }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" @@ -8699,7 +12717,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -8731,7 +12785,43 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." ] }, "headlineFont": { @@ -8765,7 +12855,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -8797,8 +12923,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "headlineFontFamily": { + "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "labelFont": { "description": "Optional. Label font.", @@ -8831,7 +12997,43 @@ "GEIST", "DM_SANS", "IBM_PLEX_SANS", - "SORA" + "SORA", + "ANYBODY", + "ANTON", + "ARCHIVO_NARROW", + "ATKINSON_HYPERLEGIBLE_NEXT", + "BARLOW_CONDENSED", + "BEBAS_NEUE", + "BODONI_MODA", + "BRICOLAGE_GROTESQUE", + "CHIVO", + "CLIMATE_CRISIS", + "COMFORTAA", + "COURIER_PRIME", + "FIRA_SANS", + "GOOGLE_SANS", + "GOOGLE_SANS_CODE", + "GOOGLE_SANS_FLEX", + "GOOGLE_SANS_MONO", + "GOOGLE_SANS_TEXT", + "IBM_PLEX_SERIF", + "JETBRAINS_MONO", + "KARLA", + "LIBRE_FRANKLIN", + "MERRIWEATHER", + "NOTO_SANS", + "OPEN_SANS", + "OSWALD", + "OUTFIT", + "PLAYFAIR_DISPLAY", + "POIRET_ONE", + "QUESTRIAL", + "QUICKSAND", + "RALEWAY", + "ROBOTO_FLEX", + "SPACE_MONO", + "SYNE", + "VOLLKORN" ], "type": "string", "x-google-enum-descriptions": [ @@ -8863,8 +13065,48 @@ "Geist font.", "DM Sans font.", "IBM Plex Sans font.", - "Sora font." - ] + "Sora font.", + "Anybody font.", + "Anton font.", + "Archivo Narrow font.", + "Atkinson Hyperlegible Next font.", + "Barlow Condensed font.", + "Bebas Neue font.", + "Bodoni Moda font.", + "Bricolage Grotesque font.", + "Chivo font.", + "Climate Crisis font.", + "Comfortaa font.", + "Courier Prime font.", + "Fira Sans font.", + "Google Sans font.", + "Google Sans Code font.", + "Google Sans Flex font.", + "Google Sans Mono font.", + "Google Sans Text font.", + "IBM Plex Serif font.", + "JetBrains Mono font.", + "Karla font.", + "Libre Franklin font.", + "Merriweather font.", + "Noto Sans font.", + "Open Sans font.", + "Oswald font.", + "Outfit font.", + "Playfair Display font.", + "Poiret One font.", + "Questrial font.", + "Quicksand font.", + "Raleway font.", + "Roboto Flex font.", + "Space Mono font.", + "Syne font.", + "Vollkorn font." + ] + }, + "labelFontFamily": { + "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", + "type": "string" }, "namedColors": { "additionalProperties": { @@ -9103,6 +13345,60 @@ }, "type": "object" }, + "Question": { + "description": "A single structured question the agent asks the user.", + "properties": { + "options": { + "description": "Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.", + "items": { + "type": "string" + }, + "type": "array" + }, + "questionId": { + "description": "An optional unique identifier for correlating answers to questions.", + "type": "string" + }, + "responseType": { + "description": "The expected response type.", + "enum": [ + "QUESTION_RESPONSE_TYPE_UNSPECIFIED", + "FREEFORM_TEXT", + "MULTIPLE_CHOICE", + "SINGLE_CHOICE", + "YES_NO", + "RATING_SCALE" + ], + "type": "string", + "x-google-enum-descriptions": [ + "Unspecified response type.", + "Open-ended text input.", + "Select one or more options from a list.", + "Select exactly one option from a list.", + "Simple yes / no.", + "Numeric rating on a scale." + ] + }, + "text": { + "description": "The question text displayed to the user.", + "type": "string" + } + }, + "type": "object" + }, + "QuestionsAsked": { + "description": "A set of questions sent from the agent to the user.", + "properties": { + "questions": { + "description": "The list of questions asked by the agent.", + "items": { + "$ref": "#/$defs/Question" + }, + "type": "array" + } + }, + "type": "object" + }, "Screen": { "description": "A generated screen.", "properties": { @@ -9230,9 +13526,19 @@ "GEMINI_3_AGENT" ], "type": "string", + "x-google-enum-deprecated": [ + false, + true, + false, + false, + false, + false, + false, + false + ], "x-google-enum-descriptions": [ "Unspecified agent type. The service will pick one.", - "The turbo agent, faster and with figma export.", + "Deprecated: Turbo agent is no longer supported.", "This agent uses Gemini 3.0 Flash. The \"PRO\" name is a legacy from when it used Gemini 2.5 Pro.", "The image agent, produces image screens.", "The Genie agent prototype agent.", @@ -9261,7 +13567,9 @@ "TABLE", "MERMAID", "CHECKLIST", - "CHART" + "CHART", + "PDF", + "FIGMA" ], "type": "string", "x-google-enum-descriptions": [ @@ -9275,7 +13583,9 @@ "Displays the screen as a data table (CSV).", "Displays the screen as a mermaid diagram.", "Agent only: The document node is displayed as an interactive checklist.", - "Agent only: The document node is displayed as an interactive Chart.js chart." + "Agent only: The document node is displayed as an interactive Chart.js chart.", + "Displays the screen as a PDF document.", + "Displays the screen as a Figma file." ] }, "isRemixed": { @@ -9320,6 +13630,41 @@ }, "type": "object" }, + "SessionEvent": { + "description": "Flexible session events carrying JSON payload.", + "properties": { + "actor": { + "description": "Output only. The actor who triggered the event.", + "readOnly": true, + "type": "string" + }, + "eventId": { + "description": "Output only. Unique identifier for the event.", + "readOnly": true, + "type": "string" + }, + "eventPayload": { + "additionalProperties": { + "description": "Properties of the object." + }, + "description": "Output only. Payload carrying flexible event data.", + "readOnly": true, + "type": "object" + }, + "eventTime": { + "description": "Output only. Time when the event occurred.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "eventType": { + "description": "Output only. Type of the event.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SessionOutputComponent": { "description": "A partial output of the session.", "properties": { @@ -9337,6 +13682,16 @@ "description": "Output only. Progress updates from the agent.", "readOnly": true }, + "questionsAsked": { + "$ref": "#/$defs/QuestionsAsked", + "description": "Output only. Structured questions asked by the agent.", + "readOnly": true + }, + "sessionEvent": { + "$ref": "#/$defs/SessionEvent", + "description": "Output only. Flexible session events carrying JSON payload.", + "readOnly": true + }, "suggestion": { "description": "The agent generates a suggested response to be displayed to the user.", "type": "string" diff --git a/packages/sdk/test/unit/design-system.test.ts b/packages/sdk/test/unit/design-system.test.ts index ee73447..1fa7c31 100644 --- a/packages/sdk/test/unit/design-system.test.ts +++ b/packages/sdk/test/unit/design-system.test.ts @@ -245,4 +245,101 @@ describe("DesignSystem Domain Class", () => { expect(screens[0].id).toBe("s-1"); }); }); + + // ── Project.uploadDesignMd() ────────────────────────────────── + + describe("Project.uploadDesignMd()", () => { + it("should call upload_design_md with projectId from self and base64 content", async () => { + const project = mockClient.entities.resolve( + Project, + ["projectId"], + projectId, + ); + + const mockScreenInstance = { + id: "si-design-md", + sourceScreen: `projects/${projectId}/screens/screen-md`, + type: "DESIGN_SYSTEM_INSTANCE", + }; + + (mockClient.callTool as Mock).mockResolvedValue(mockScreenInstance); + + const designMd = btoa("# My Design System\n\nprimary: #ff0000"); + const result = await project.uploadDesignMd(designMd); + + expect(mockClient.callTool).toHaveBeenCalledWith("upload_design_md", { + projectId, + designMdBase64: designMd, + }); + expect(result).toEqual(mockScreenInstance); + }); + }); + + // ── Project.createDesignSystemFromDesignMd() ────────────────── + + describe("Project.createDesignSystemFromDesignMd()", () => { + it("should call create_design_system_from_design_md with screen instance and return DesignSystem", async () => { + const project = mockClient.entities.resolve( + Project, + ["projectId"], + projectId, + ); + + const selectedScreenInstance = { + id: "si-design-md", + sourceScreen: `projects/${projectId}/screens/screen-md`, + }; + + (mockClient.callTool as Mock).mockResolvedValue({ + assetId, + }); + + const ds = await project.createDesignSystemFromDesignMd( + selectedScreenInstance, + "DESKTOP", + ); + + expect(mockClient.callTool).toHaveBeenCalledWith( + "create_design_system_from_design_md", + { + projectId, + selectedScreenInstance, + deviceType: "DESKTOP", + }, + ); + expect(ds).toBeInstanceOf(DesignSystem); + expect(ds.assetId).toBe(assetId); + expect(ds.projectId).toBe(projectId); + }); + + it("should work without optional deviceType", async () => { + const project = mockClient.entities.resolve( + Project, + ["projectId"], + projectId, + ); + + (mockClient.callTool as Mock).mockResolvedValue({ + assetId, + }); + + const ds = await project.createDesignSystemFromDesignMd({ + id: "si-1", + sourceScreen: `projects/${projectId}/screens/s-1`, + }); + + expect(mockClient.callTool).toHaveBeenCalledWith( + "create_design_system_from_design_md", + { + projectId, + selectedScreenInstance: { + id: "si-1", + sourceScreen: `projects/${projectId}/screens/s-1`, + }, + deviceType: undefined, + }, + ); + expect(ds).toBeInstanceOf(DesignSystem); + }); + }); }); diff --git a/packages/sdk/test/unit/tool-definitions.test.ts b/packages/sdk/test/unit/tool-definitions.test.ts index 9ae0de7..ed94bf2 100644 --- a/packages/sdk/test/unit/tool-definitions.test.ts +++ b/packages/sdk/test/unit/tool-definitions.test.ts @@ -45,7 +45,7 @@ describe("Generated toolDefinitions", () => { expect(names).toContain("list_design_systems"); expect(names).toContain("update_design_system"); expect(names).toContain("apply_design_system"); - expect(names).toHaveLength(12); + expect(names).toHaveLength(14); }); it("each definition has name, description, and inputSchema", () => {