@stablebaseline/sdk 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -684,7 +684,7 @@ export interface paths {
684
684
  patch?: never;
685
685
  trace?: never;
686
686
  };
687
- "/tools/exportDeck": {
687
+ "/tools/designDeck": {
688
688
  parameters: {
689
689
  query?: never;
690
690
  header?: never;
@@ -694,17 +694,17 @@ export interface paths {
694
694
  get?: never;
695
695
  put?: never;
696
696
  /**
697
- * exportDeck
698
- * @description Export an already-generated slide DECK (from the branded HTML-deck pipeline) to an editable PowerPoint (PPTX), PDF, PNG images, or raw HTML. Give it the deckId of a deck whose status is 'ready'; it downloads the deck's stored HTML and renders it in a headless browser via the export worker. 'pptx' = native, fully-editable PowerPoint (real shapes and text, not screenshots); 'pdf' = vector, one page per slide; 'png' = one image per slide (returned as a base64 array); 'html' = the self-contained deck HTML. Returns the file as base64 in `data` (pptx/pdf/html) or per-slide base64 in `slides` (png). The deck must be finished; a deck that is still generating, failed, or archived returns a clear message.
697
+ * designDeck
698
+ * @description Create or refine a slide deck on a whiteboard by conversing with the AI design agent. Send a brief for a NEW deck, a change to an EXISTING one, or an answer to the agent's question. The agent builds a polished, on-brand deck and places it on the board; if the brief is ambiguous it asks ONE clarifying question (answer with the same sessionId). Returns immediately; poll getDeckReply for the result. Use for building or editing slide decks / presentations. The deck lives in a whiteboard, so it needs an existing whiteboard documentId: if you do not have one, create it first with createWhiteboard and pass its documentId here. FIRST vs FOLLOW-UP: the first call (from nothing) builds; a follow-up call (an answer, a change, or a new instruction) passes the sessionId (or the deckId) plus the new message. kind:'deck' (default) is the premium on-brand HTML deck; kind:'express' builds the native, deterministic branded-executive deck directly on the whiteboard (faster, lower fidelity, one-shot, not conversational). COST + APPROVAL: a build costs 50 credits and an edit 10; a clarifying question is FREE. Call FIRST without confirm to get the exact cost plus the workspace balance, show it to the user, and only call again with confirm:true once they agree. The fee is auto-refunded if a turn produces no change or fails. Returns sessionId (the conversation), deckId (the deck), status, turnType, started, awaitingUser, needsConfirmation, insufficientCredits, and assistantMessage. Export the finished deck with exportFromWhiteboard.
699
699
  */
700
- post: operations["exportDeck"];
700
+ post: operations["designDeck"];
701
701
  delete?: never;
702
702
  options?: never;
703
703
  head?: never;
704
704
  patch?: never;
705
705
  trace?: never;
706
706
  };
707
- "/tools/generateIllustration": {
707
+ "/tools/getDeckReply": {
708
708
  parameters: {
709
709
  query?: never;
710
710
  header?: never;
@@ -714,17 +714,17 @@ export interface paths {
714
714
  get?: never;
715
715
  put?: never;
716
716
  /**
717
- * generateIllustration
718
- * @description Generate a standalone, on-brand ILLUSTRATION (raw pixels) from a plain-language prompt, the one thing native shapes and diagrams cannot make. Returns a durable image URL you can insert into a whiteboard or document. Colour-conditioned to the organisation's brand (or a specific brandKitId) and rendered in a clean flat-vector editorial style with NO text, letters, or numbers baked in. Costs a small flat credit charge (refunded automatically if generation fails on our side); an identical prompt reuses a cached image at no charge.
717
+ * getDeckReply
718
+ * @description Get the design agent's reply after calling designDeck: the status (thinking/building/ready) and EITHER the finished deck (slide count + preview) OR a clarifying question to answer (call designDeck with the sessionId + your answer). Poll until ready or a question appears. Give it the whiteboard documentId and the deckId (both returned by designDeck). It returns the build status ('generating' while working, 'ready' when the deck is finished, 'failed' if it failed) plus, once ready, the slide count and a thumbnail image URL. IMPORTANT for the conversation: if the agent asked a CLARIFYING QUESTION instead of doing the work, this returns awaitingUser:true with pendingQuestion (and assistantMessage) — relay that question to the user, then call designDeck again with the same sessionId and the user's answer as message to continue. It also returns the full conversation (history + status + pending question). A turn usually takes about 1 to 3 minutes, so poll every 15 to 30 seconds until it is 'ready' or awaitingUser is true. When ready, the deck has already been placed on the whiteboard; you can also export it with exportFromWhiteboard. If a turn failed or produced no change, the user was not charged.
719
719
  */
720
- post: operations["generateIllustration"];
720
+ post: operations["getDeckReply"];
721
721
  delete?: never;
722
722
  options?: never;
723
723
  head?: never;
724
724
  patch?: never;
725
725
  trace?: never;
726
726
  };
727
- "/tools/designDeck": {
727
+ "/tools/designInWhiteboard": {
728
728
  parameters: {
729
729
  query?: never;
730
730
  header?: never;
@@ -734,17 +734,57 @@ export interface paths {
734
734
  get?: never;
735
735
  put?: never;
736
736
  /**
737
- * designDeck
738
- * @description Design a complete, branded HTML slide deck from a plain-language goal using the premium agentic deck builder. COST-GATED (50 credits): the first call (confirm unset) returns the cost quote plus the workspace balance so you can ask the user; only a call with confirm:true charges the flat fee and builds the deck. The deck is themed to the organisation's brand (or a brandKitId), composed slide by slide, rendered and self-corrected, then saved as a finished deck you can export with exportDeck (pptx/pdf/png/html). The fee is auto-refunded if the build fails or produces nothing. If the user would rather not spend the credits, build slides another way. Requires a projectId for a new deck, or a deckId to rebuild an existing one.
737
+ * designInWhiteboard
738
+ * @description DEPRECATED use designDeck instead. This tool no longer designs anything; it returns a short message pointing you at designDeck (to build or edit a slide deck on a whiteboard) or at createWhiteboard + addWhiteboardElements (for manual whiteboard content). It has NO side effects and runs no design. It is kept only so existing callers get a clear message; it will be upgraded in a future update.
739
739
  */
740
- post: operations["designDeck"];
740
+ post: operations["designInWhiteboard"];
741
+ delete?: never;
742
+ options?: never;
743
+ head?: never;
744
+ patch?: never;
745
+ trace?: never;
746
+ };
747
+ "/tools/editInWhiteboard": {
748
+ parameters: {
749
+ query?: never;
750
+ header?: never;
751
+ path?: never;
752
+ cookie?: never;
753
+ };
754
+ get?: never;
755
+ put?: never;
756
+ /**
757
+ * editInWhiteboard
758
+ * @description DEPRECATED — use designDeck instead. An edit is just another turn in the design conversation, and designDeck handles build AND edit. This tool no longer edits anything; it returns a short message pointing you at designDeck. It has NO side effects and runs no design. It is kept only so existing callers get a clear message; it will be upgraded in a future update.
759
+ */
760
+ post: operations["editInWhiteboard"];
761
+ delete?: never;
762
+ options?: never;
763
+ head?: never;
764
+ patch?: never;
765
+ trace?: never;
766
+ };
767
+ "/tools/exportFromWhiteboard": {
768
+ parameters: {
769
+ query?: never;
770
+ header?: never;
771
+ path?: never;
772
+ cookie?: never;
773
+ };
774
+ get?: never;
775
+ put?: never;
776
+ /**
777
+ * exportFromWhiteboard
778
+ * @description Export a design that lives in a whiteboard to an editable PowerPoint (PPTX), PDF, PNG images, or raw HTML. Give it the whiteboard documentId and the designId (the deck). kind:'deck' (default) renders the finished deck via the export worker: 'pptx' = native, fully-editable PowerPoint (real shapes and text, not screenshots); 'pdf' = vector, one page per slide; 'png' = one image per slide (returned as a base64 array); 'html' = the self-contained deck HTML. Returns the file as base64 in data (pptx/pdf/html) or per-slide base64 in slides (png). The design must be finished; one that is still generating, failed, or archived returns a clear message.
779
+ */
780
+ post: operations["exportFromWhiteboard"];
741
781
  delete?: never;
742
782
  options?: never;
743
783
  head?: never;
744
784
  patch?: never;
745
785
  trace?: never;
746
786
  };
747
- "/tools/editDeck": {
787
+ "/tools/getDesignStatusInWhiteboard": {
748
788
  parameters: {
749
789
  query?: never;
750
790
  header?: never;
@@ -754,17 +794,17 @@ export interface paths {
754
794
  get?: never;
755
795
  put?: never;
756
796
  /**
757
- * editDeck
758
- * @description Make a targeted change to an existing, finished deck using the agentic deck builder. COST-GATED (10 credits): the first call (confirm unset) returns the cost quote plus balance; only confirm:true charges the fee and applies the edit. Loads the deck's current HTML, makes ONLY the requested change (leaving other slides intact), renders to verify it, and re-saves. The fee is auto-refunded if the edit makes no change or fails.
797
+ * getDesignStatusInWhiteboard
798
+ * @description DEPRECATED use getDeckReply instead. This tool no longer reads any status; it returns a short message pointing you at getDeckReply (poll it after calling designDeck to get the agent's reply the deck, or a clarifying question). It has NO side effects. It is kept only so existing callers get a clear message; it will be upgraded in a future update.
759
799
  */
760
- post: operations["editDeck"];
800
+ post: operations["getDesignStatusInWhiteboard"];
761
801
  delete?: never;
762
802
  options?: never;
763
803
  head?: never;
764
804
  patch?: never;
765
805
  trace?: never;
766
806
  };
767
- "/tools/insertDeckIntoWhiteboard": {
807
+ "/tools/generateInWhiteboard": {
768
808
  parameters: {
769
809
  query?: never;
770
810
  header?: never;
@@ -774,10 +814,10 @@ export interface paths {
774
814
  get?: never;
775
815
  put?: never;
776
816
  /**
777
- * insertDeckIntoWhiteboard
778
- * @description Render a FINISHED slide DECK's pages into framed images on a WHITEBOARD: one Excalidraw frame per slide, laid out as a horizontal row of pages so the whole deck appears on the board to pan across, annotate around, and edit beside. Give it the deckId of a deck whose status is 'ready'; it renders each slide to a PNG (via the export worker) and drops each image inside its own 1280x720 frame named 'Slide N'. Pass an existing whiteboard documentId to place the slides on it, or a projectId to create a new board (defaults to the deck's own project; the new board is named '<deck title> (deck)'). Returns the documentId, the number of slide frames placed, and the board title. The deck must be finished; a deck that is still generating, failed, or archived returns a clear message.
817
+ * generateInWhiteboard
818
+ * @description Generate an on-brand ASSET inside a whiteboard and place it on the board. kind:'illustration' (default) makes a standalone, on-brand illustration (raw pixels, the one thing native shapes and diagrams cannot make) from a plain-language prompt, colour-conditioned to the organisation's brand (or a specific brandKitId), in a clean flat-vector editorial style with NO text, letters, or numbers baked in. It is stored and dropped onto the whiteboard as an image element. Costs a small flat credit charge (refunded automatically if generation fails on our side); an identical prompt reuses a cached image at no charge. Returns the durable image URL and confirms it was placed.
779
819
  */
780
- post: operations["insertDeckIntoWhiteboard"];
820
+ post: operations["generateInWhiteboard"];
781
821
  delete?: never;
782
822
  options?: never;
783
823
  head?: never;
@@ -7035,7 +7075,7 @@ export interface operations {
7035
7075
  };
7036
7076
  };
7037
7077
  };
7038
- exportDeck: {
7078
+ designDeck: {
7039
7079
  parameters: {
7040
7080
  query?: never;
7041
7081
  header?: never;
@@ -7045,15 +7085,38 @@ export interface operations {
7045
7085
  requestBody?: {
7046
7086
  content: {
7047
7087
  "application/json": {
7048
- /** @description The id of an existing, finished ('ready') deck to export. */
7049
- deckId: string;
7088
+ /** @description The whiteboard to design into. REQUIRED: the deck lives in this whiteboard. Create one first with createWhiteboard if you do not already have its id. */
7089
+ documentId: string;
7090
+ /** @description This turn's message in plain language: the design brief on the first turn, an edit instruction later, or the user's ANSWER to a clarifying question the agent asked. On a follow-up turn, pass this together with the sessionId (or deckId) from the earlier call. */
7091
+ message: string;
7092
+ /** @description The design conversation to continue, as returned by an earlier designDeck call. Pass it together with message to answer a question, make an edit, or send a follow-up. Omit on the very first call to start a new conversation. */
7093
+ sessionId?: string;
7094
+ /** @description Optional. An existing deck to continue designing (usually you pass sessionId instead; when both are given the session's deck wins). */
7095
+ deckId?: string;
7050
7096
  /**
7051
- * @description Output format. 'pptx' (default) = editable PowerPoint; 'pdf' = vector PDF; 'png' = one base64 image per slide; 'html' = the deck's self-contained HTML.
7097
+ * @description Which engine. 'deck' (default) = the premium on-brand HTML deck (conversational, build + edit); 'illustration' and 'design' are conversational variants. 'express' = the native, deterministic branded-executive deck (faster, lower fidelity, one-shot, not conversational).
7052
7098
  * @enum {string}
7053
7099
  */
7054
- format?: "pptx" | "pdf" | "png" | "html";
7055
- /** @description Optional brand kit id (reserved for future per-export theming; the deck is already branded, so this is usually unnecessary). */
7100
+ kind?: "deck" | "illustration" | "design" | "express";
7101
+ /** @description Optional title. If omitted, a clear one is derived from the brief. */
7102
+ title?: string;
7103
+ /** @description Optional brand kit id (from listBrandKits) to theme the deck. If omitted, the organisation's effective brand is used. */
7056
7104
  brandKitId?: string;
7105
+ /** @description Optional target number of slides for a build turn (the composer adjusts to fit the story). Typical 6 to 12. */
7106
+ slideCount?: number;
7107
+ /** @description Optional reference images for THIS turn (up to 8; images only). The agent lifts palette, layout, and tone from them (it does not pixel-copy). Non-image attachments are ignored. */
7108
+ attachments?: {
7109
+ /** @description A public https URL to the image. */
7110
+ url?: string;
7111
+ /** @description The image as base64 (no data: prefix). Provide mediaType alongside it. */
7112
+ data?: string;
7113
+ /** @description The image MIME type, e.g. 'image/png' or 'image/jpeg'. */
7114
+ mediaType?: string;
7115
+ /** @description Optional human-readable name for the image. */
7116
+ name?: string;
7117
+ }[];
7118
+ /** @description Set true ONLY after the user has approved the cost (50 for a build, 10 for an edit). Leave unset/false on the first call of a turn to receive the cost quote plus balance. A clarifying question turn is never charged. */
7119
+ confirm?: boolean;
7057
7120
  };
7058
7121
  };
7059
7122
  };
@@ -7125,7 +7188,7 @@ export interface operations {
7125
7188
  };
7126
7189
  };
7127
7190
  };
7128
- generateIllustration: {
7191
+ getDeckReply: {
7129
7192
  parameters: {
7130
7193
  query?: never;
7131
7194
  header?: never;
@@ -7135,18 +7198,95 @@ export interface operations {
7135
7198
  requestBody?: {
7136
7199
  content: {
7137
7200
  "application/json": {
7138
- /** @description Plain-language description of the illustration to generate (e.g. 'a friendly robot assistant helping a small team'). */
7139
- prompt: string;
7140
- /** @description Optional output width in px (rounded to a multiple of 64, 512 to 2048). Default 1024. */
7141
- width?: number;
7142
- /** @description Optional output height in px (rounded to a multiple of 64, 512 to 2048). Default 1024. */
7143
- height?: number;
7144
- /** @description Optional extra style hint appended to the prompt (e.g. 'isometric', 'soft gradients, pastel'). */
7145
- style?: string;
7146
- /** @description Optional brand kit id to colour-condition the illustration. Defaults to the organisation's effective brand. */
7147
- brandKitId?: string;
7148
- /** @description Optional document this illustration is for (used only for usage logging and provenance). */
7201
+ /** @description The whiteboard that hosts the deck. */
7202
+ documentId: string;
7203
+ /** @description The deck to poll, as returned by designDeck. */
7204
+ deckId: string;
7205
+ };
7206
+ };
7207
+ };
7208
+ responses: {
7209
+ /** @description Tool result (shape varies per tool refer to the tool's docs for the exact return value). */
7210
+ 200: {
7211
+ headers: {
7212
+ [name: string]: unknown;
7213
+ };
7214
+ content: {
7215
+ "application/json": {
7216
+ [key: string]: unknown;
7217
+ };
7218
+ };
7219
+ };
7220
+ /** @description Validation error. */
7221
+ 400: {
7222
+ headers: {
7223
+ [name: string]: unknown;
7224
+ };
7225
+ content: {
7226
+ "application/json": components["schemas"]["ErrorResponse"];
7227
+ };
7228
+ };
7229
+ /** @description Missing or invalid credentials. */
7230
+ 401: {
7231
+ headers: {
7232
+ [name: string]: unknown;
7233
+ };
7234
+ content: {
7235
+ "application/json": components["schemas"]["ErrorResponse"];
7236
+ };
7237
+ };
7238
+ /** @description Authenticated but lacking the required permission or feature flag. */
7239
+ 403: {
7240
+ headers: {
7241
+ [name: string]: unknown;
7242
+ };
7243
+ content: {
7244
+ "application/json": components["schemas"]["ErrorResponse"];
7245
+ };
7246
+ };
7247
+ /** @description Resource not found. */
7248
+ 404: {
7249
+ headers: {
7250
+ [name: string]: unknown;
7251
+ };
7252
+ content: {
7253
+ "application/json": components["schemas"]["ErrorResponse"];
7254
+ };
7255
+ };
7256
+ /** @description Body did not match the tool's input schema. */
7257
+ 422: {
7258
+ headers: {
7259
+ [name: string]: unknown;
7260
+ };
7261
+ content: {
7262
+ "application/json": components["schemas"]["ErrorResponse"];
7263
+ };
7264
+ };
7265
+ /** @description Server error. */
7266
+ 500: {
7267
+ headers: {
7268
+ [name: string]: unknown;
7269
+ };
7270
+ content: {
7271
+ "application/json": components["schemas"]["ErrorResponse"];
7272
+ };
7273
+ };
7274
+ };
7275
+ };
7276
+ designInWhiteboard: {
7277
+ parameters: {
7278
+ query?: never;
7279
+ header?: never;
7280
+ path?: never;
7281
+ cookie?: never;
7282
+ };
7283
+ requestBody?: {
7284
+ content: {
7285
+ "application/json": {
7286
+ /** @description Ignored. Deprecated tool — use designDeck. */
7149
7287
  documentId?: string;
7288
+ /** @description Ignored. Deprecated tool — use designDeck. */
7289
+ message?: string;
7150
7290
  };
7151
7291
  };
7152
7292
  };
@@ -7218,7 +7358,7 @@ export interface operations {
7218
7358
  };
7219
7359
  };
7220
7360
  };
7221
- designDeck: {
7361
+ editInWhiteboard: {
7222
7362
  parameters: {
7223
7363
  query?: never;
7224
7364
  header?: never;
@@ -7228,20 +7368,12 @@ export interface operations {
7228
7368
  requestBody?: {
7229
7369
  content: {
7230
7370
  "application/json": {
7231
- /** @description The deck to build, in plain language (topic, audience, and what it should cover). */
7232
- goal: string;
7233
- /** @description The project to create the deck in. Required when no deckId is given (a deck must live in a project). */
7234
- projectId: string;
7235
- /** @description Optional deck title. If omitted, a clear title is derived from the goal. */
7236
- title?: string;
7237
- /** @description Optional. An existing deck to rebuild. If omitted, a new deck is created in projectId. */
7238
- deckId?: string;
7239
- /** @description Optional brand kit id (from listBrandKits) to theme the deck. If omitted, the organisation's effective brand is used. Create one from a logo or a .pptx/.docx via createBrandKit. */
7240
- brandKitId?: string;
7241
- /** @description Optional target number of slides (the composer adjusts to fit the story). Typical 6 to 12. */
7242
- slideCount?: number;
7243
- /** @description Set true ONLY after the user has approved the 50-credit cost. Leave unset/false on the first call to receive the cost quote plus balance. */
7244
- confirm?: boolean;
7371
+ /** @description Ignored. Deprecated tool use designDeck. */
7372
+ documentId?: string;
7373
+ /** @description Ignored. Deprecated tool use designDeck. */
7374
+ designId?: string;
7375
+ /** @description Ignored. Deprecated tool use designDeck. */
7376
+ instruction?: string;
7245
7377
  };
7246
7378
  };
7247
7379
  };
@@ -7313,7 +7445,7 @@ export interface operations {
7313
7445
  };
7314
7446
  };
7315
7447
  };
7316
- editDeck: {
7448
+ exportFromWhiteboard: {
7317
7449
  parameters: {
7318
7450
  query?: never;
7319
7451
  header?: never;
@@ -7323,14 +7455,22 @@ export interface operations {
7323
7455
  requestBody?: {
7324
7456
  content: {
7325
7457
  "application/json": {
7326
- /** @description The id of the finished deck to edit. */
7327
- deckId: string;
7328
- /** @description The change to make, in plain language (e.g. 'change the title slide subhead to ...', 'make slide 3 a bar chart of these numbers ...'). */
7329
- instruction: string;
7330
- /** @description Optional 1-based slide number to focus the edit on. Omit to let the builder find the right slide(s) from the instruction. */
7331
- slideIndex?: number;
7332
- /** @description Set true ONLY after the user has approved the 10-credit cost. Leave unset/false on the first call to receive the cost quote plus balance. */
7333
- confirm?: boolean;
7458
+ /** @description The whiteboard that hosts the design. */
7459
+ documentId: string;
7460
+ /** @description The design to export (the deck id), as returned by designInWhiteboard. */
7461
+ designId: string;
7462
+ /**
7463
+ * @description Which engine. 'deck' (default).
7464
+ * @enum {string}
7465
+ */
7466
+ kind?: "deck";
7467
+ /**
7468
+ * @description Output format. 'pptx' (default) = editable PowerPoint; 'pdf' = vector PDF; 'png' = one base64 image per slide; 'html' = the design's self-contained HTML.
7469
+ * @enum {string}
7470
+ */
7471
+ format?: "pptx" | "pdf" | "png" | "html";
7472
+ /** @description Optional brand kit id (reserved for future per-export theming; the design is already branded, so this is usually unnecessary). */
7473
+ brandKitId?: string;
7334
7474
  };
7335
7475
  };
7336
7476
  };
@@ -7402,7 +7542,7 @@ export interface operations {
7402
7542
  };
7403
7543
  };
7404
7544
  };
7405
- insertDeckIntoWhiteboard: {
7545
+ getDesignStatusInWhiteboard: {
7406
7546
  parameters: {
7407
7547
  query?: never;
7408
7548
  header?: never;
@@ -7412,12 +7552,112 @@ export interface operations {
7412
7552
  requestBody?: {
7413
7553
  content: {
7414
7554
  "application/json": {
7415
- /** @description The id of an existing, finished ('ready') deck whose slides to place on a whiteboard. */
7416
- deckId: string;
7417
- /** @description Optional existing whiteboard to place the slides on. When omitted, a new whiteboard is created in projectId. */
7555
+ /** @description Ignored. Deprecated tool use getDeckReply. */
7418
7556
  documentId?: string;
7419
- /** @description Optional project to create the new whiteboard in when documentId is omitted. Defaults to the deck's own project. */
7420
- projectId?: string;
7557
+ /** @description Ignored. Deprecated tool use getDeckReply. */
7558
+ designId?: string;
7559
+ };
7560
+ };
7561
+ };
7562
+ responses: {
7563
+ /** @description Tool result (shape varies per tool — refer to the tool's docs for the exact return value). */
7564
+ 200: {
7565
+ headers: {
7566
+ [name: string]: unknown;
7567
+ };
7568
+ content: {
7569
+ "application/json": {
7570
+ [key: string]: unknown;
7571
+ };
7572
+ };
7573
+ };
7574
+ /** @description Validation error. */
7575
+ 400: {
7576
+ headers: {
7577
+ [name: string]: unknown;
7578
+ };
7579
+ content: {
7580
+ "application/json": components["schemas"]["ErrorResponse"];
7581
+ };
7582
+ };
7583
+ /** @description Missing or invalid credentials. */
7584
+ 401: {
7585
+ headers: {
7586
+ [name: string]: unknown;
7587
+ };
7588
+ content: {
7589
+ "application/json": components["schemas"]["ErrorResponse"];
7590
+ };
7591
+ };
7592
+ /** @description Authenticated but lacking the required permission or feature flag. */
7593
+ 403: {
7594
+ headers: {
7595
+ [name: string]: unknown;
7596
+ };
7597
+ content: {
7598
+ "application/json": components["schemas"]["ErrorResponse"];
7599
+ };
7600
+ };
7601
+ /** @description Resource not found. */
7602
+ 404: {
7603
+ headers: {
7604
+ [name: string]: unknown;
7605
+ };
7606
+ content: {
7607
+ "application/json": components["schemas"]["ErrorResponse"];
7608
+ };
7609
+ };
7610
+ /** @description Body did not match the tool's input schema. */
7611
+ 422: {
7612
+ headers: {
7613
+ [name: string]: unknown;
7614
+ };
7615
+ content: {
7616
+ "application/json": components["schemas"]["ErrorResponse"];
7617
+ };
7618
+ };
7619
+ /** @description Server error. */
7620
+ 500: {
7621
+ headers: {
7622
+ [name: string]: unknown;
7623
+ };
7624
+ content: {
7625
+ "application/json": components["schemas"]["ErrorResponse"];
7626
+ };
7627
+ };
7628
+ };
7629
+ };
7630
+ generateInWhiteboard: {
7631
+ parameters: {
7632
+ query?: never;
7633
+ header?: never;
7634
+ path?: never;
7635
+ cookie?: never;
7636
+ };
7637
+ requestBody?: {
7638
+ content: {
7639
+ "application/json": {
7640
+ /** @description The whiteboard to generate the asset into (the asset is placed on this board). */
7641
+ documentId: string;
7642
+ /** @description Plain-language description of the asset to generate (e.g. 'a friendly robot assistant helping a small team'). */
7643
+ prompt: string;
7644
+ /**
7645
+ * @description What to make. 'illustration' (default).
7646
+ * @enum {string}
7647
+ */
7648
+ kind?: "illustration";
7649
+ /** @description Optional output width in px (rounded to a multiple of 64, 512 to 2048). Default 1024. */
7650
+ width?: number;
7651
+ /** @description Optional output height in px (rounded to a multiple of 64, 512 to 2048). Default 1024. */
7652
+ height?: number;
7653
+ /** @description Optional extra style hint appended to the prompt (e.g. 'isometric', 'soft gradients, pastel'). */
7654
+ style?: string;
7655
+ /** @description Optional brand kit id to colour-condition the asset. Defaults to the organisation's effective brand. */
7656
+ brandKitId?: string;
7657
+ /** @description Optional x position on the board. Omit to auto-place. */
7658
+ x?: number;
7659
+ /** @description Optional y position on the board. Omit to auto-place. */
7660
+ y?: number;
7421
7661
  };
7422
7662
  };
7423
7663
  };
@@ -7931,6 +8171,10 @@ export interface operations {
7931
8171
  columns?: (string | Record<string, never>)[];
7932
8172
  /** @description For type:'table' — data rows; each row is an array of cell values (string|number) aligned to columns, e.g. [['T-1','Sam','Done'],['T-2','Lee','WIP']]. */
7933
8173
  rows?: (string | number)[][];
8174
+ /** @description Arbitrary Excalidraw customData stored on the element (e.g. a slide frame's { deckId } so a board frame resolves back to its source deck). Merged with any builder-set customData. */
8175
+ customData?: {
8176
+ [key: string]: unknown;
8177
+ };
7934
8178
  } & {
7935
8179
  [key: string]: unknown;
7936
8180
  })[];