@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.
package/dist/index.d.cts CHANGED
@@ -683,7 +683,7 @@ interface paths {
683
683
  patch?: never;
684
684
  trace?: never;
685
685
  };
686
- "/tools/exportDeck": {
686
+ "/tools/designDeck": {
687
687
  parameters: {
688
688
  query?: never;
689
689
  header?: never;
@@ -693,17 +693,17 @@ interface paths {
693
693
  get?: never;
694
694
  put?: never;
695
695
  /**
696
- * exportDeck
697
- * @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.
696
+ * designDeck
697
+ * @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.
698
698
  */
699
- post: operations["exportDeck"];
699
+ post: operations["designDeck"];
700
700
  delete?: never;
701
701
  options?: never;
702
702
  head?: never;
703
703
  patch?: never;
704
704
  trace?: never;
705
705
  };
706
- "/tools/generateIllustration": {
706
+ "/tools/getDeckReply": {
707
707
  parameters: {
708
708
  query?: never;
709
709
  header?: never;
@@ -713,17 +713,17 @@ interface paths {
713
713
  get?: never;
714
714
  put?: never;
715
715
  /**
716
- * generateIllustration
717
- * @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.
716
+ * getDeckReply
717
+ * @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.
718
718
  */
719
- post: operations["generateIllustration"];
719
+ post: operations["getDeckReply"];
720
720
  delete?: never;
721
721
  options?: never;
722
722
  head?: never;
723
723
  patch?: never;
724
724
  trace?: never;
725
725
  };
726
- "/tools/designDeck": {
726
+ "/tools/designInWhiteboard": {
727
727
  parameters: {
728
728
  query?: never;
729
729
  header?: never;
@@ -733,17 +733,57 @@ interface paths {
733
733
  get?: never;
734
734
  put?: never;
735
735
  /**
736
- * designDeck
737
- * @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.
736
+ * designInWhiteboard
737
+ * @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.
738
738
  */
739
- post: operations["designDeck"];
739
+ post: operations["designInWhiteboard"];
740
+ delete?: never;
741
+ options?: never;
742
+ head?: never;
743
+ patch?: never;
744
+ trace?: never;
745
+ };
746
+ "/tools/editInWhiteboard": {
747
+ parameters: {
748
+ query?: never;
749
+ header?: never;
750
+ path?: never;
751
+ cookie?: never;
752
+ };
753
+ get?: never;
754
+ put?: never;
755
+ /**
756
+ * editInWhiteboard
757
+ * @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.
758
+ */
759
+ post: operations["editInWhiteboard"];
760
+ delete?: never;
761
+ options?: never;
762
+ head?: never;
763
+ patch?: never;
764
+ trace?: never;
765
+ };
766
+ "/tools/exportFromWhiteboard": {
767
+ parameters: {
768
+ query?: never;
769
+ header?: never;
770
+ path?: never;
771
+ cookie?: never;
772
+ };
773
+ get?: never;
774
+ put?: never;
775
+ /**
776
+ * exportFromWhiteboard
777
+ * @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.
778
+ */
779
+ post: operations["exportFromWhiteboard"];
740
780
  delete?: never;
741
781
  options?: never;
742
782
  head?: never;
743
783
  patch?: never;
744
784
  trace?: never;
745
785
  };
746
- "/tools/editDeck": {
786
+ "/tools/getDesignStatusInWhiteboard": {
747
787
  parameters: {
748
788
  query?: never;
749
789
  header?: never;
@@ -753,17 +793,17 @@ interface paths {
753
793
  get?: never;
754
794
  put?: never;
755
795
  /**
756
- * editDeck
757
- * @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.
796
+ * getDesignStatusInWhiteboard
797
+ * @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.
758
798
  */
759
- post: operations["editDeck"];
799
+ post: operations["getDesignStatusInWhiteboard"];
760
800
  delete?: never;
761
801
  options?: never;
762
802
  head?: never;
763
803
  patch?: never;
764
804
  trace?: never;
765
805
  };
766
- "/tools/insertDeckIntoWhiteboard": {
806
+ "/tools/generateInWhiteboard": {
767
807
  parameters: {
768
808
  query?: never;
769
809
  header?: never;
@@ -773,10 +813,10 @@ interface paths {
773
813
  get?: never;
774
814
  put?: never;
775
815
  /**
776
- * insertDeckIntoWhiteboard
777
- * @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.
816
+ * generateInWhiteboard
817
+ * @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.
778
818
  */
779
- post: operations["insertDeckIntoWhiteboard"];
819
+ post: operations["generateInWhiteboard"];
780
820
  delete?: never;
781
821
  options?: never;
782
822
  head?: never;
@@ -7034,7 +7074,7 @@ interface operations {
7034
7074
  };
7035
7075
  };
7036
7076
  };
7037
- exportDeck: {
7077
+ designDeck: {
7038
7078
  parameters: {
7039
7079
  query?: never;
7040
7080
  header?: never;
@@ -7044,15 +7084,38 @@ interface operations {
7044
7084
  requestBody?: {
7045
7085
  content: {
7046
7086
  "application/json": {
7047
- /** @description The id of an existing, finished ('ready') deck to export. */
7048
- deckId: string;
7087
+ /** @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. */
7088
+ documentId: string;
7089
+ /** @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. */
7090
+ message: string;
7091
+ /** @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. */
7092
+ sessionId?: string;
7093
+ /** @description Optional. An existing deck to continue designing (usually you pass sessionId instead; when both are given the session's deck wins). */
7094
+ deckId?: string;
7049
7095
  /**
7050
- * @description Output format. 'pptx' (default) = editable PowerPoint; 'pdf' = vector PDF; 'png' = one base64 image per slide; 'html' = the deck's self-contained HTML.
7096
+ * @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).
7051
7097
  * @enum {string}
7052
7098
  */
7053
- format?: "pptx" | "pdf" | "png" | "html";
7054
- /** @description Optional brand kit id (reserved for future per-export theming; the deck is already branded, so this is usually unnecessary). */
7099
+ kind?: "deck" | "illustration" | "design" | "express";
7100
+ /** @description Optional title. If omitted, a clear one is derived from the brief. */
7101
+ title?: string;
7102
+ /** @description Optional brand kit id (from listBrandKits) to theme the deck. If omitted, the organisation's effective brand is used. */
7055
7103
  brandKitId?: string;
7104
+ /** @description Optional target number of slides for a build turn (the composer adjusts to fit the story). Typical 6 to 12. */
7105
+ slideCount?: number;
7106
+ /** @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. */
7107
+ attachments?: {
7108
+ /** @description A public https URL to the image. */
7109
+ url?: string;
7110
+ /** @description The image as base64 (no data: prefix). Provide mediaType alongside it. */
7111
+ data?: string;
7112
+ /** @description The image MIME type, e.g. 'image/png' or 'image/jpeg'. */
7113
+ mediaType?: string;
7114
+ /** @description Optional human-readable name for the image. */
7115
+ name?: string;
7116
+ }[];
7117
+ /** @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. */
7118
+ confirm?: boolean;
7056
7119
  };
7057
7120
  };
7058
7121
  };
@@ -7124,7 +7187,7 @@ interface operations {
7124
7187
  };
7125
7188
  };
7126
7189
  };
7127
- generateIllustration: {
7190
+ getDeckReply: {
7128
7191
  parameters: {
7129
7192
  query?: never;
7130
7193
  header?: never;
@@ -7134,18 +7197,95 @@ interface operations {
7134
7197
  requestBody?: {
7135
7198
  content: {
7136
7199
  "application/json": {
7137
- /** @description Plain-language description of the illustration to generate (e.g. 'a friendly robot assistant helping a small team'). */
7138
- prompt: string;
7139
- /** @description Optional output width in px (rounded to a multiple of 64, 512 to 2048). Default 1024. */
7140
- width?: number;
7141
- /** @description Optional output height in px (rounded to a multiple of 64, 512 to 2048). Default 1024. */
7142
- height?: number;
7143
- /** @description Optional extra style hint appended to the prompt (e.g. 'isometric', 'soft gradients, pastel'). */
7144
- style?: string;
7145
- /** @description Optional brand kit id to colour-condition the illustration. Defaults to the organisation's effective brand. */
7146
- brandKitId?: string;
7147
- /** @description Optional document this illustration is for (used only for usage logging and provenance). */
7200
+ /** @description The whiteboard that hosts the deck. */
7201
+ documentId: string;
7202
+ /** @description The deck to poll, as returned by designDeck. */
7203
+ deckId: string;
7204
+ };
7205
+ };
7206
+ };
7207
+ responses: {
7208
+ /** @description Tool result (shape varies per tool refer to the tool's docs for the exact return value). */
7209
+ 200: {
7210
+ headers: {
7211
+ [name: string]: unknown;
7212
+ };
7213
+ content: {
7214
+ "application/json": {
7215
+ [key: string]: unknown;
7216
+ };
7217
+ };
7218
+ };
7219
+ /** @description Validation error. */
7220
+ 400: {
7221
+ headers: {
7222
+ [name: string]: unknown;
7223
+ };
7224
+ content: {
7225
+ "application/json": components["schemas"]["ErrorResponse"];
7226
+ };
7227
+ };
7228
+ /** @description Missing or invalid credentials. */
7229
+ 401: {
7230
+ headers: {
7231
+ [name: string]: unknown;
7232
+ };
7233
+ content: {
7234
+ "application/json": components["schemas"]["ErrorResponse"];
7235
+ };
7236
+ };
7237
+ /** @description Authenticated but lacking the required permission or feature flag. */
7238
+ 403: {
7239
+ headers: {
7240
+ [name: string]: unknown;
7241
+ };
7242
+ content: {
7243
+ "application/json": components["schemas"]["ErrorResponse"];
7244
+ };
7245
+ };
7246
+ /** @description Resource not found. */
7247
+ 404: {
7248
+ headers: {
7249
+ [name: string]: unknown;
7250
+ };
7251
+ content: {
7252
+ "application/json": components["schemas"]["ErrorResponse"];
7253
+ };
7254
+ };
7255
+ /** @description Body did not match the tool's input schema. */
7256
+ 422: {
7257
+ headers: {
7258
+ [name: string]: unknown;
7259
+ };
7260
+ content: {
7261
+ "application/json": components["schemas"]["ErrorResponse"];
7262
+ };
7263
+ };
7264
+ /** @description Server error. */
7265
+ 500: {
7266
+ headers: {
7267
+ [name: string]: unknown;
7268
+ };
7269
+ content: {
7270
+ "application/json": components["schemas"]["ErrorResponse"];
7271
+ };
7272
+ };
7273
+ };
7274
+ };
7275
+ designInWhiteboard: {
7276
+ parameters: {
7277
+ query?: never;
7278
+ header?: never;
7279
+ path?: never;
7280
+ cookie?: never;
7281
+ };
7282
+ requestBody?: {
7283
+ content: {
7284
+ "application/json": {
7285
+ /** @description Ignored. Deprecated tool — use designDeck. */
7148
7286
  documentId?: string;
7287
+ /** @description Ignored. Deprecated tool — use designDeck. */
7288
+ message?: string;
7149
7289
  };
7150
7290
  };
7151
7291
  };
@@ -7217,7 +7357,7 @@ interface operations {
7217
7357
  };
7218
7358
  };
7219
7359
  };
7220
- designDeck: {
7360
+ editInWhiteboard: {
7221
7361
  parameters: {
7222
7362
  query?: never;
7223
7363
  header?: never;
@@ -7227,20 +7367,12 @@ interface operations {
7227
7367
  requestBody?: {
7228
7368
  content: {
7229
7369
  "application/json": {
7230
- /** @description The deck to build, in plain language (topic, audience, and what it should cover). */
7231
- goal: string;
7232
- /** @description The project to create the deck in. Required when no deckId is given (a deck must live in a project). */
7233
- projectId: string;
7234
- /** @description Optional deck title. If omitted, a clear title is derived from the goal. */
7235
- title?: string;
7236
- /** @description Optional. An existing deck to rebuild. If omitted, a new deck is created in projectId. */
7237
- deckId?: string;
7238
- /** @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. */
7239
- brandKitId?: string;
7240
- /** @description Optional target number of slides (the composer adjusts to fit the story). Typical 6 to 12. */
7241
- slideCount?: number;
7242
- /** @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. */
7243
- confirm?: boolean;
7370
+ /** @description Ignored. Deprecated tool use designDeck. */
7371
+ documentId?: string;
7372
+ /** @description Ignored. Deprecated tool use designDeck. */
7373
+ designId?: string;
7374
+ /** @description Ignored. Deprecated tool use designDeck. */
7375
+ instruction?: string;
7244
7376
  };
7245
7377
  };
7246
7378
  };
@@ -7312,7 +7444,7 @@ interface operations {
7312
7444
  };
7313
7445
  };
7314
7446
  };
7315
- editDeck: {
7447
+ exportFromWhiteboard: {
7316
7448
  parameters: {
7317
7449
  query?: never;
7318
7450
  header?: never;
@@ -7322,14 +7454,22 @@ interface operations {
7322
7454
  requestBody?: {
7323
7455
  content: {
7324
7456
  "application/json": {
7325
- /** @description The id of the finished deck to edit. */
7326
- deckId: string;
7327
- /** @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 ...'). */
7328
- instruction: string;
7329
- /** @description Optional 1-based slide number to focus the edit on. Omit to let the builder find the right slide(s) from the instruction. */
7330
- slideIndex?: number;
7331
- /** @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. */
7332
- confirm?: boolean;
7457
+ /** @description The whiteboard that hosts the design. */
7458
+ documentId: string;
7459
+ /** @description The design to export (the deck id), as returned by designInWhiteboard. */
7460
+ designId: string;
7461
+ /**
7462
+ * @description Which engine. 'deck' (default).
7463
+ * @enum {string}
7464
+ */
7465
+ kind?: "deck";
7466
+ /**
7467
+ * @description Output format. 'pptx' (default) = editable PowerPoint; 'pdf' = vector PDF; 'png' = one base64 image per slide; 'html' = the design's self-contained HTML.
7468
+ * @enum {string}
7469
+ */
7470
+ format?: "pptx" | "pdf" | "png" | "html";
7471
+ /** @description Optional brand kit id (reserved for future per-export theming; the design is already branded, so this is usually unnecessary). */
7472
+ brandKitId?: string;
7333
7473
  };
7334
7474
  };
7335
7475
  };
@@ -7401,7 +7541,7 @@ interface operations {
7401
7541
  };
7402
7542
  };
7403
7543
  };
7404
- insertDeckIntoWhiteboard: {
7544
+ getDesignStatusInWhiteboard: {
7405
7545
  parameters: {
7406
7546
  query?: never;
7407
7547
  header?: never;
@@ -7411,12 +7551,112 @@ interface operations {
7411
7551
  requestBody?: {
7412
7552
  content: {
7413
7553
  "application/json": {
7414
- /** @description The id of an existing, finished ('ready') deck whose slides to place on a whiteboard. */
7415
- deckId: string;
7416
- /** @description Optional existing whiteboard to place the slides on. When omitted, a new whiteboard is created in projectId. */
7554
+ /** @description Ignored. Deprecated tool use getDeckReply. */
7417
7555
  documentId?: string;
7418
- /** @description Optional project to create the new whiteboard in when documentId is omitted. Defaults to the deck's own project. */
7419
- projectId?: string;
7556
+ /** @description Ignored. Deprecated tool use getDeckReply. */
7557
+ designId?: string;
7558
+ };
7559
+ };
7560
+ };
7561
+ responses: {
7562
+ /** @description Tool result (shape varies per tool — refer to the tool's docs for the exact return value). */
7563
+ 200: {
7564
+ headers: {
7565
+ [name: string]: unknown;
7566
+ };
7567
+ content: {
7568
+ "application/json": {
7569
+ [key: string]: unknown;
7570
+ };
7571
+ };
7572
+ };
7573
+ /** @description Validation error. */
7574
+ 400: {
7575
+ headers: {
7576
+ [name: string]: unknown;
7577
+ };
7578
+ content: {
7579
+ "application/json": components["schemas"]["ErrorResponse"];
7580
+ };
7581
+ };
7582
+ /** @description Missing or invalid credentials. */
7583
+ 401: {
7584
+ headers: {
7585
+ [name: string]: unknown;
7586
+ };
7587
+ content: {
7588
+ "application/json": components["schemas"]["ErrorResponse"];
7589
+ };
7590
+ };
7591
+ /** @description Authenticated but lacking the required permission or feature flag. */
7592
+ 403: {
7593
+ headers: {
7594
+ [name: string]: unknown;
7595
+ };
7596
+ content: {
7597
+ "application/json": components["schemas"]["ErrorResponse"];
7598
+ };
7599
+ };
7600
+ /** @description Resource not found. */
7601
+ 404: {
7602
+ headers: {
7603
+ [name: string]: unknown;
7604
+ };
7605
+ content: {
7606
+ "application/json": components["schemas"]["ErrorResponse"];
7607
+ };
7608
+ };
7609
+ /** @description Body did not match the tool's input schema. */
7610
+ 422: {
7611
+ headers: {
7612
+ [name: string]: unknown;
7613
+ };
7614
+ content: {
7615
+ "application/json": components["schemas"]["ErrorResponse"];
7616
+ };
7617
+ };
7618
+ /** @description Server error. */
7619
+ 500: {
7620
+ headers: {
7621
+ [name: string]: unknown;
7622
+ };
7623
+ content: {
7624
+ "application/json": components["schemas"]["ErrorResponse"];
7625
+ };
7626
+ };
7627
+ };
7628
+ };
7629
+ generateInWhiteboard: {
7630
+ parameters: {
7631
+ query?: never;
7632
+ header?: never;
7633
+ path?: never;
7634
+ cookie?: never;
7635
+ };
7636
+ requestBody?: {
7637
+ content: {
7638
+ "application/json": {
7639
+ /** @description The whiteboard to generate the asset into (the asset is placed on this board). */
7640
+ documentId: string;
7641
+ /** @description Plain-language description of the asset to generate (e.g. 'a friendly robot assistant helping a small team'). */
7642
+ prompt: string;
7643
+ /**
7644
+ * @description What to make. 'illustration' (default).
7645
+ * @enum {string}
7646
+ */
7647
+ kind?: "illustration";
7648
+ /** @description Optional output width in px (rounded to a multiple of 64, 512 to 2048). Default 1024. */
7649
+ width?: number;
7650
+ /** @description Optional output height in px (rounded to a multiple of 64, 512 to 2048). Default 1024. */
7651
+ height?: number;
7652
+ /** @description Optional extra style hint appended to the prompt (e.g. 'isometric', 'soft gradients, pastel'). */
7653
+ style?: string;
7654
+ /** @description Optional brand kit id to colour-condition the asset. Defaults to the organisation's effective brand. */
7655
+ brandKitId?: string;
7656
+ /** @description Optional x position on the board. Omit to auto-place. */
7657
+ x?: number;
7658
+ /** @description Optional y position on the board. Omit to auto-place. */
7659
+ y?: number;
7420
7660
  };
7421
7661
  };
7422
7662
  };
@@ -7930,6 +8170,10 @@ interface operations {
7930
8170
  columns?: (string | Record<string, never>)[];
7931
8171
  /** @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']]. */
7932
8172
  rows?: (string | number)[][];
8173
+ /** @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. */
8174
+ customData?: {
8175
+ [key: string]: unknown;
8176
+ };
7933
8177
  } & {
7934
8178
  [key: string]: unknown;
7935
8179
  })[];