@stablebaseline/sdk 0.4.5 → 0.5.0

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
@@ -623,7 +623,7 @@ interface paths {
623
623
  patch?: never;
624
624
  trace?: never;
625
625
  };
626
- "/tools/designWhiteboard": {
626
+ "/tools/autoDesignWhiteboard": {
627
627
  parameters: {
628
628
  query?: never;
629
629
  header?: never;
@@ -633,10 +633,10 @@ interface paths {
633
633
  get?: never;
634
634
  put?: never;
635
635
  /**
636
- * designWhiteboard
637
- * @description Design a complete, visually polished whiteboard from a natural-language goal using the PREMIUM multi-agent pipeline (the same one the in-app assistant uses): it browses the stencil/icon library, composes the board, renders it, critiques the rendered image, and refines — far better than hand-placing shapes. COST + APPROVAL: this costs 50 credits per board and requires the user's explicit approval. Call it FIRST without `confirm` to get the exact cost + the workspace credit balance; show that to the user and only call again with `confirm: true` once they agree. If they decline (or lack credits), build the board directly with the standard whiteboard tools (addWhiteboardElements / insertWhiteboardDiagram / listWhiteboardStencils) at no extra charge. It runs in the BACKGROUND and returns immediately with a sessionId; the board fills in over 1-3 minutes. The 50 credits are refunded automatically if the design fails on our side. Optional `designProfile: 'branded-executive'` instead builds an ON-BRAND, fully-editable McKinsey-style SLIDE DECK themed by the org's brand kit (palette/fonts) — use it when the user wants polished branded business slides; it builds in-process and the board is ready on return. Optional `designProfile: 'illustrated'` instead builds an editable-illustration board: pick it for illustrated, image-based, picture-style, richly-drawn or educational explainer boards (e.g. illustrate photosynthesis, an illustrated diagram of the water cycle, a textbook-style visual). It generates a rich text-free vector illustration and overlays real, editable text labels with leader lines on top. It is gated per organisation; if it is not enabled the call returns a clear message, so fall back to the standard design. Optional `designProfile: 'image'` instead builds a single, polished, on-brand IMAGE board with all the text baked into the picture (no editable shapes): pick 'image' when the user wants a single finished image, poster or infographic they will refine by AI mask edits rather than by moving editable shapes. It is also gated per organisation; if it is not enabled the call returns a clear message.
636
+ * autoDesignWhiteboard
637
+ * @description Auto-design a complete, visually polished whiteboard from a natural-language goal using the PREMIUM multi-agent pipeline (the same one the in-app assistant uses): it browses the stencil/icon library, composes the WHOLE board, renders it, critiques the rendered image, and refines — far better than hand-placing shapes. This is the one-shot whole-board designer; it is NOT a conversation (for a deck you can chat with and refine turn by turn use designDeckInWhiteboard, and for a refinable illustration use designIllustrationInWhiteboard). COST + APPROVAL: this costs 50 credits per board and requires the user's explicit approval. Call it FIRST without `confirm` to get the exact cost + the workspace credit balance; show that to the user and only call again with `confirm: true` once they agree. If they decline (or lack credits), build the board directly with the standard whiteboard tools (addWhiteboardElements / insertWhiteboardDiagram / listWhiteboardStencils) at no extra charge. It runs in the BACKGROUND and returns immediately with a sessionId; the board fills in over 1-3 minutes. The 50 credits are refunded automatically if the design fails on our side. Optional `designProfile: 'branded-executive'` instead builds an ON-BRAND, fully-editable McKinsey-style SLIDE DECK themed by the org's brand kit (palette/fonts) — use it when the user wants polished branded business slides; it builds in-process and the board is ready on return. Optional `designProfile: 'illustrated'` instead builds an editable-illustration board: pick it for illustrated, image-based, picture-style, richly-drawn or educational explainer boards (e.g. illustrate photosynthesis, an illustrated diagram of the water cycle, a textbook-style visual). It generates a rich text-free vector illustration and overlays real, editable text labels with leader lines on top. It is available to every organisation and costs the same flat 50 credits (credits are the only gate). Optional `designProfile: 'image'` instead builds a single, polished, on-brand IMAGE board with all the text baked into the picture (no editable shapes): pick 'image' when the user wants a single finished image, poster or infographic they will refine by AI mask edits rather than by moving editable shapes. It is also available to every organisation at the same flat 50 credits.
638
638
  */
639
- post: operations["designWhiteboard"];
639
+ post: operations["autoDesignWhiteboard"];
640
640
  delete?: never;
641
641
  options?: never;
642
642
  head?: never;
@@ -654,7 +654,7 @@ interface paths {
654
654
  put?: never;
655
655
  /**
656
656
  * designComponent
657
- * @description Design ONE reusable, on-brand SLIDE COMPONENT and add it to the org's component library so every future branded deck (designWhiteboard designProfile:'branded-executive') can use it. This is the self-improving design loop: an agent AUTHORS the component as a declarative template (a gradient/shadow/curve SVG skin + a native editable PPTX shape + reflowing bound-text slots), RENDERS it, a vision critic COMPARES the render to your brief and lists gaps, and it FIXES + re-renders until polished — then validates and stores it. Use it to grow the deck component catalogue beyond the built-ins (e.g. a 'kpi.delta' stat with an up/down arrow, a 'quote.card', a 'logo.strip'). Browse-first: if a component with this `key` already exists it is reused (pass force:true to redesign). Provide example `sampleSlots` so it can lay out real content, and a `projectId` for the small preview board it builds. Returns the stored component, the per-round critique trail, and the preview board id. It uses a few AI calls + renders (no flat credit charge); the new component is then free to reuse forever.
657
+ * @description Design ONE reusable, on-brand SLIDE COMPONENT and add it to the org's component library so every future branded deck (autoDesignWhiteboard designProfile:'branded-executive') can use it. This is the self-improving design loop: an agent AUTHORS the component as a declarative template (a gradient/shadow/curve SVG skin + a native editable PPTX shape + reflowing bound-text slots), RENDERS it, a vision critic COMPARES the render to your brief and lists gaps, and it FIXES + re-renders until polished — then validates and stores it. Use it to grow the deck component catalogue beyond the built-ins (e.g. a 'kpi.delta' stat with an up/down arrow, a 'quote.card', a 'logo.strip'). Browse-first: if a component with this `key` already exists it is reused (pass force:true to redesign). Provide example `sampleSlots` so it can lay out real content, and a `projectId` for the small preview board it builds. Returns the stored component, the per-round critique trail, and the preview board id. It uses a few AI calls + renders (no flat credit charge); the new component is then free to reuse forever.
658
658
  */
659
659
  post: operations["designComponent"];
660
660
  delete?: never;
@@ -674,7 +674,7 @@ interface paths {
674
674
  put?: never;
675
675
  /**
676
676
  * editWhiteboardImageRegion
677
- * @description Mask-edit (inpaint) one region of an image element on a whiteboard. Given the target image element id and a paint MASK (a PNG where WHITE marks the area to regenerate and BLACK is kept), it regenerates only the masked region using the prompt and replaces the image IN PLACE (same position + size). This is mainly used by the in-app image-board mask editor for boards designed with designProfile:'image'. It costs a small flat credit charge (refunded automatically if the edit fails on our side). It is gated per organisation behind the same 'whiteboard_design_image' feature as the image design profile; if that is not enabled the call returns a clear message.
677
+ * @description Mask-edit (inpaint) one region of an image element on a whiteboard. Given the target image element id and a paint MASK (a PNG where WHITE marks the area to regenerate and BLACK is kept), it regenerates only the masked region using the prompt and replaces the image IN PLACE (same position + size). This is mainly used by the in-app image-board mask editor for boards designed with designProfile:'image'. It is available to every organisation; the small flat credit charge is the only gate (refunded automatically if the edit fails on our side).
678
678
  */
679
679
  post: operations["editWhiteboardImageRegion"];
680
680
  delete?: never;
@@ -683,7 +683,7 @@ interface paths {
683
683
  patch?: never;
684
684
  trace?: never;
685
685
  };
686
- "/tools/designDeck": {
686
+ "/tools/designDeckInWhiteboard": {
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
- * 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.
696
+ * designDeckInWhiteboard
697
+ * @description Create or refine a slide deck INSIDE an existing 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 getDeckReplyInWhiteboard for the result. Use for building or editing slide decks / presentations. WHITEBOARD IS REQUIRED: a deck always lives inside a whiteboard, so documentId (the whiteboard's id) is required. If you do NOT already have a whiteboard id, ASK THE USER which whiteboard they want the deck designed in — do NOT create a whiteboard automatically. Only call createWhiteboard first if the user explicitly asks for a brand-new board; otherwise use the id of the whiteboard they name. 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["designDeck"];
699
+ post: operations["designDeckInWhiteboard"];
700
700
  delete?: never;
701
701
  options?: never;
702
702
  head?: never;
703
703
  patch?: never;
704
704
  trace?: never;
705
705
  };
706
- "/tools/getDeckReply": {
706
+ "/tools/designIllustrationInWhiteboard": {
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
- * 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.
716
+ * designIllustrationInWhiteboard
717
+ * @description Create or refine a standalone ILLUSTRATION INSIDE an existing whiteboard by conversing with the AI design agent. This is the illustration sibling of designDeckInWhiteboard: same conversation, same follow-up flow, but it makes ONE on-brand illustration placed on the board (not a slide deck). Send a brief for a NEW illustration, a change to an existing one, or an answer to the agent's question. The agent generates the illustration, places it on the board, and if the brief is ambiguous it asks ONE clarifying question (answer with the same sessionId). Returns immediately; poll getDeckReplyInWhiteboard for the result. Use it when the user wants a picture they can talk about and refine turn by turn (e.g. 'draw a friendly robot onboarding a new team', then 'make it warmer', 'add a second robot'). For a quick one-shot illustration with no follow-up, use generateIllustrationInWhiteboard instead. WHITEBOARD IS REQUIRED: an illustration always lives inside a whiteboard, so documentId (the whiteboard's id) is required. If you do NOT already have a whiteboard id, ASK THE USER which whiteboard they want the illustration designed in do NOT create a whiteboard automatically. Only call createWhiteboard first if the user explicitly asks for a brand-new board; otherwise use the id of the whiteboard they name. 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. 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 illustration's id), status, turnType, started, awaitingUser, needsConfirmation, insufficientCredits, and assistantMessage.
718
718
  */
719
- post: operations["getDeckReply"];
719
+ post: operations["designIllustrationInWhiteboard"];
720
720
  delete?: never;
721
721
  options?: never;
722
722
  head?: never;
723
723
  patch?: never;
724
724
  trace?: never;
725
725
  };
726
- "/tools/designInWhiteboard": {
726
+ "/tools/getDeckReplyInWhiteboard": {
727
727
  parameters: {
728
728
  query?: never;
729
729
  header?: never;
@@ -733,30 +733,10 @@ interface paths {
733
733
  get?: never;
734
734
  put?: never;
735
735
  /**
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.
736
+ * getDeckReplyInWhiteboard
737
+ * @description Get the design agent's reply after calling designDeckInWhiteboard OR designIllustrationInWhiteboard: the status (thinking/building/ready) and EITHER the finished result (a deck's slide count + preview, or the placed illustration) OR a clarifying question to answer (call the SAME tool you started with, passing the sessionId + your answer). Poll until ready or a question appears. Give it the whiteboard documentId and the deckId (both returned by the tool you called). It returns the build status ('generating' while working, 'ready' when 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 the SAME design tool 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 or illustration has already been placed on the whiteboard; a deck can also be exported with exportFromWhiteboard. If a turn failed or produced no change, the user was not charged.
738
738
  */
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"];
739
+ post: operations["getDeckReplyInWhiteboard"];
760
740
  delete?: never;
761
741
  options?: never;
762
742
  head?: never;
@@ -783,46 +763,6 @@ interface paths {
783
763
  patch?: never;
784
764
  trace?: never;
785
765
  };
786
- "/tools/getDesignStatusInWhiteboard": {
787
- parameters: {
788
- query?: never;
789
- header?: never;
790
- path?: never;
791
- cookie?: never;
792
- };
793
- get?: never;
794
- put?: never;
795
- /**
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.
798
- */
799
- post: operations["getDesignStatusInWhiteboard"];
800
- delete?: never;
801
- options?: never;
802
- head?: never;
803
- patch?: never;
804
- trace?: never;
805
- };
806
- "/tools/generateInWhiteboard": {
807
- parameters: {
808
- query?: never;
809
- header?: never;
810
- path?: never;
811
- cookie?: never;
812
- };
813
- get?: never;
814
- put?: never;
815
- /**
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.
818
- */
819
- post: operations["generateInWhiteboard"];
820
- delete?: never;
821
- options?: never;
822
- head?: never;
823
- patch?: never;
824
- trace?: never;
825
- };
826
766
  "/tools/createWhiteboard": {
827
767
  parameters: {
828
768
  query?: never;
@@ -1054,7 +994,7 @@ interface paths {
1054
994
  put?: never;
1055
995
  /**
1056
996
  * getWhiteboardImage
1057
- * @description Render a whiteboard to an IMAGE so you can SEE it and confirm your edits look right, then iterate — like taking a screenshot. Returns the rendered board as a viewable image attached to the result. Pass elementIds to render only specific shapes (e.g. to inspect one section/slide), region:{x,y,width,height} to capture an exact scene-coordinate window (e.g. the user's viewport), theme:'light' for the fastest single-variant render, format:'svg' for vector markup, or background to set the canvas colour. Unchanged boards return instantly from a content-keyed cache. Call this after addWhiteboardElements/updateWhiteboardScene to check layout, overlaps, labels and alignment before continuing.
997
+ * @description Render a whiteboard to a raster IMAGE so you can SEE it and confirm your edits look right, then iterate — like taking a screenshot. Returns the rendered board as a viewable image attached to the result (always raster: a JPEG light variant and/or a PNG dark variant; there is no vector/SVG output, so for a vector export of a single diagram use getDiagramImage). Pass elementIds to render only specific shapes (e.g. to inspect one section/slide), region:{x,y,width,height} to capture an exact scene-coordinate window (e.g. the user's viewport), theme:'light' for the fastest single-variant render, or background to set the canvas colour. Unchanged boards return instantly from a content-keyed cache. Call this after addWhiteboardElements/updateWhiteboardScene to check layout, overlaps, labels and alignment before continuing.
1058
998
  */
1059
999
  post: operations["getWhiteboardImage"];
1060
1000
  delete?: never;
@@ -6780,7 +6720,7 @@ interface operations {
6780
6720
  };
6781
6721
  };
6782
6722
  };
6783
- designWhiteboard: {
6723
+ autoDesignWhiteboard: {
6784
6724
  parameters: {
6785
6725
  query?: never;
6786
6726
  header?: never;
@@ -6801,7 +6741,7 @@ interface operations {
6801
6741
  /** @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 + balance. */
6802
6742
  confirm?: boolean;
6803
6743
  /**
6804
- * @description Optional. 'standard' (default) = the general multi-agent design. 'agentic' = an AI-chat-style agentic slide composer that drives the whiteboard tools and self-corrects from renders, composing ONE polished slide. 'agentic-deck' = the same agentic composer run over a planned storyline, building a multi-slide deck (each slide on its own frame, tiled left to right). 'branded-executive' = an on-brand, McKinsey-style editable SLIDE DECK themed by the org's brand kit (pair with brandKitId, or omit for the org default). 'illustrated' = an editable-illustration board: a rich text-free vector illustration with real editable text labels and leader lines placed on top. 'image' = a single polished, on-brand IMAGE board with all the text baked into the picture (no editable shapes), which the user then refines with AI mask edits. 'illustrated' and 'image' are each gated per organisation; if not enabled the call returns a clear message.
6744
+ * @description Optional. 'standard' (default) = the general multi-agent design. 'agentic' = an AI-chat-style agentic slide composer that drives the whiteboard tools and self-corrects from renders, composing ONE polished slide. 'agentic-deck' = the same agentic composer run over a planned storyline, building a multi-slide deck (each slide on its own frame, tiled left to right). 'branded-executive' = an on-brand, McKinsey-style editable SLIDE DECK themed by the org's brand kit (pair with brandKitId, or omit for the org default). 'illustrated' = an editable-illustration board: a rich text-free vector illustration with real editable text labels and leader lines placed on top. 'image' = a single polished, on-brand IMAGE board with all the text baked into the picture (no editable shapes), which the user then refines with AI mask edits. Every profile is available to every organisation; the flat credit fee is the only gate.
6805
6745
  * @enum {string}
6806
6746
  */
6807
6747
  designProfile?: "standard" | "branded-executive" | "illustrated" | "image" | "agentic" | "agentic-deck";
@@ -7074,7 +7014,7 @@ interface operations {
7074
7014
  };
7075
7015
  };
7076
7016
  };
7077
- designDeck: {
7017
+ designDeckInWhiteboard: {
7078
7018
  parameters: {
7079
7019
  query?: never;
7080
7020
  header?: never;
@@ -7084,11 +7024,11 @@ interface operations {
7084
7024
  requestBody?: {
7085
7025
  content: {
7086
7026
  "application/json": {
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. */
7027
+ /** @description The whiteboard the deck lives in. REQUIRED: a deck cannot exist without a whiteboard, and this is that whiteboard's id. If you do not already have a whiteboard id, ASK THE USER which whiteboard to design the deck in — never create one automatically. Only call createWhiteboard first if the user explicitly wants a new board. */
7088
7028
  documentId: string;
7089
7029
  /** @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
7030
  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. */
7031
+ /** @description The design conversation to continue, as returned by an earlier designDeckInWhiteboard 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
7032
  sessionId?: string;
7093
7033
  /** @description Optional. An existing deck to continue designing (usually you pass sessionId instead; when both are given the session's deck wins). */
7094
7034
  deckId?: string;
@@ -7187,7 +7127,7 @@ interface operations {
7187
7127
  };
7188
7128
  };
7189
7129
  };
7190
- getDeckReply: {
7130
+ designIllustrationInWhiteboard: {
7191
7131
  parameters: {
7192
7132
  query?: never;
7193
7133
  header?: never;
@@ -7197,95 +7137,31 @@ interface operations {
7197
7137
  requestBody?: {
7198
7138
  content: {
7199
7139
  "application/json": {
7200
- /** @description The whiteboard that hosts the deck. */
7140
+ /** @description The whiteboard the illustration lives in. REQUIRED: an illustration cannot exist without a whiteboard, and this is that whiteboard's id. If you do not already have a whiteboard id, ASK THE USER which whiteboard to design the illustration in — never create one automatically. Only call createWhiteboard first if the user explicitly wants a new board. */
7201
7141
  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. */
7286
- documentId?: string;
7287
- /** @description Ignored. Deprecated tool — use designDeck. */
7288
- message?: string;
7142
+ /** @description This turn's message in plain language: the illustration brief on the first turn, a change 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. */
7143
+ message: string;
7144
+ /** @description The design conversation to continue, as returned by an earlier designIllustrationInWhiteboard call. Pass it together with message to answer a question, make a change, or send a follow-up. Omit on the very first call to start a new conversation. */
7145
+ sessionId?: string;
7146
+ /** @description Optional. An existing illustration to continue refining (usually you pass sessionId instead; when both are given the session's illustration wins). The id is called deckId because illustrations and decks share the same conversation spine. */
7147
+ deckId?: string;
7148
+ /** @description Optional title. If omitted, a clear one is derived from the brief. */
7149
+ title?: string;
7150
+ /** @description Optional brand kit id (from listBrandKits) to colour-condition the illustration. If omitted, the organisation's effective brand is used. */
7151
+ brandKitId?: string;
7152
+ /** @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. */
7153
+ attachments?: {
7154
+ /** @description A public https URL to the image. */
7155
+ url?: string;
7156
+ /** @description The image as base64 (no data: prefix). Provide mediaType alongside it. */
7157
+ data?: string;
7158
+ /** @description The image MIME type, e.g. 'image/png' or 'image/jpeg'. */
7159
+ mediaType?: string;
7160
+ /** @description Optional human-readable name for the image. */
7161
+ name?: string;
7162
+ }[];
7163
+ /** @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. */
7164
+ confirm?: boolean;
7289
7165
  };
7290
7166
  };
7291
7167
  };
@@ -7357,7 +7233,7 @@ interface operations {
7357
7233
  };
7358
7234
  };
7359
7235
  };
7360
- editInWhiteboard: {
7236
+ getDeckReplyInWhiteboard: {
7361
7237
  parameters: {
7362
7238
  query?: never;
7363
7239
  header?: never;
@@ -7367,12 +7243,10 @@ interface operations {
7367
7243
  requestBody?: {
7368
7244
  content: {
7369
7245
  "application/json": {
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;
7246
+ /** @description The whiteboard that hosts the deck or illustration (it lives inside the board). REQUIRED. */
7247
+ documentId: string;
7248
+ /** @description The deck or illustration to poll, as returned by designDeckInWhiteboard or designIllustrationInWhiteboard. */
7249
+ deckId: string;
7376
7250
  };
7377
7251
  };
7378
7252
  };
@@ -7456,7 +7330,7 @@ interface operations {
7456
7330
  "application/json": {
7457
7331
  /** @description The whiteboard that hosts the design. */
7458
7332
  documentId: string;
7459
- /** @description The design to export (the deck id), as returned by designInWhiteboard. */
7333
+ /** @description The design to export (the deck id), as returned by designDeckInWhiteboard. */
7460
7334
  designId: string;
7461
7335
  /**
7462
7336
  * @description Which engine. 'deck' (default).
@@ -7541,193 +7415,6 @@ interface operations {
7541
7415
  };
7542
7416
  };
7543
7417
  };
7544
- getDesignStatusInWhiteboard: {
7545
- parameters: {
7546
- query?: never;
7547
- header?: never;
7548
- path?: never;
7549
- cookie?: never;
7550
- };
7551
- requestBody?: {
7552
- content: {
7553
- "application/json": {
7554
- /** @description Ignored. Deprecated tool — use getDeckReply. */
7555
- documentId?: 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;
7660
- };
7661
- };
7662
- };
7663
- responses: {
7664
- /** @description Tool result (shape varies per tool — refer to the tool's docs for the exact return value). */
7665
- 200: {
7666
- headers: {
7667
- [name: string]: unknown;
7668
- };
7669
- content: {
7670
- "application/json": {
7671
- [key: string]: unknown;
7672
- };
7673
- };
7674
- };
7675
- /** @description Validation error. */
7676
- 400: {
7677
- headers: {
7678
- [name: string]: unknown;
7679
- };
7680
- content: {
7681
- "application/json": components["schemas"]["ErrorResponse"];
7682
- };
7683
- };
7684
- /** @description Missing or invalid credentials. */
7685
- 401: {
7686
- headers: {
7687
- [name: string]: unknown;
7688
- };
7689
- content: {
7690
- "application/json": components["schemas"]["ErrorResponse"];
7691
- };
7692
- };
7693
- /** @description Authenticated but lacking the required permission or feature flag. */
7694
- 403: {
7695
- headers: {
7696
- [name: string]: unknown;
7697
- };
7698
- content: {
7699
- "application/json": components["schemas"]["ErrorResponse"];
7700
- };
7701
- };
7702
- /** @description Resource not found. */
7703
- 404: {
7704
- headers: {
7705
- [name: string]: unknown;
7706
- };
7707
- content: {
7708
- "application/json": components["schemas"]["ErrorResponse"];
7709
- };
7710
- };
7711
- /** @description Body did not match the tool's input schema. */
7712
- 422: {
7713
- headers: {
7714
- [name: string]: unknown;
7715
- };
7716
- content: {
7717
- "application/json": components["schemas"]["ErrorResponse"];
7718
- };
7719
- };
7720
- /** @description Server error. */
7721
- 500: {
7722
- headers: {
7723
- [name: string]: unknown;
7724
- };
7725
- content: {
7726
- "application/json": components["schemas"]["ErrorResponse"];
7727
- };
7728
- };
7729
- };
7730
- };
7731
7418
  createWhiteboard: {
7732
7419
  parameters: {
7733
7420
  query?: never;
@@ -8378,6 +8065,8 @@ interface operations {
8378
8065
  align?: "left" | "center" | "right";
8379
8066
  /** @description Optional original filename (for storage + type hinting). */
8380
8067
  fileName?: string;
8068
+ /** @description Lock the placed image so it cannot be moved, resized, or deleted by hand (e.g. a deck-owned framed slide image that changes only via the deck conversation). Defaults to false. */
8069
+ locked?: boolean;
8381
8070
  };
8382
8071
  };
8383
8072
  };
@@ -8853,11 +8542,6 @@ interface operations {
8853
8542
  "application/json": {
8854
8543
  /** @description The whiteboard's documentId. */
8855
8544
  documentId: string;
8856
- /**
8857
- * @description png (default — a viewable raster) or svg (vector markup).
8858
- * @enum {string}
8859
- */
8860
- format?: "png" | "svg";
8861
8545
  /** @description Render only these element ids (plus their bound labels + group peers) instead of the whole board. */
8862
8546
  elementIds?: string[];
8863
8547
  /** @description Canvas background colour (default white), e.g. '#ffffff' or 'transparent'. */