@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stablebaseline/sdk",
3
- "version": "0.4.5",
3
+ "version": "0.5.0",
4
4
  "description": "TypeScript SDK for the Stable Baseline REST API. End-to-end agent-managed company brain — docs, diagrams, plans, and a self-learning Knowledge Graph. 184 tools across 19 categories.",
5
5
  "homepage": "https://stablebaseline.io",
6
6
  "repository": {
@@ -624,7 +624,7 @@ export interface paths {
624
624
  patch?: never;
625
625
  trace?: never;
626
626
  };
627
- "/tools/designWhiteboard": {
627
+ "/tools/autoDesignWhiteboard": {
628
628
  parameters: {
629
629
  query?: never;
630
630
  header?: never;
@@ -634,10 +634,10 @@ export interface paths {
634
634
  get?: never;
635
635
  put?: never;
636
636
  /**
637
- * designWhiteboard
638
- * @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.
637
+ * autoDesignWhiteboard
638
+ * @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.
639
639
  */
640
- post: operations["designWhiteboard"];
640
+ post: operations["autoDesignWhiteboard"];
641
641
  delete?: never;
642
642
  options?: never;
643
643
  head?: never;
@@ -655,7 +655,7 @@ export interface paths {
655
655
  put?: never;
656
656
  /**
657
657
  * designComponent
658
- * @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.
658
+ * @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.
659
659
  */
660
660
  post: operations["designComponent"];
661
661
  delete?: never;
@@ -675,7 +675,7 @@ export interface paths {
675
675
  put?: never;
676
676
  /**
677
677
  * editWhiteboardImageRegion
678
- * @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.
678
+ * @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).
679
679
  */
680
680
  post: operations["editWhiteboardImageRegion"];
681
681
  delete?: never;
@@ -684,7 +684,7 @@ export interface paths {
684
684
  patch?: never;
685
685
  trace?: never;
686
686
  };
687
- "/tools/designDeck": {
687
+ "/tools/designDeckInWhiteboard": {
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
- * 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.
697
+ * designDeckInWhiteboard
698
+ * @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.
699
699
  */
700
- post: operations["designDeck"];
700
+ post: operations["designDeckInWhiteboard"];
701
701
  delete?: never;
702
702
  options?: never;
703
703
  head?: never;
704
704
  patch?: never;
705
705
  trace?: never;
706
706
  };
707
- "/tools/getDeckReply": {
707
+ "/tools/designIllustrationInWhiteboard": {
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
- * 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.
717
+ * designIllustrationInWhiteboard
718
+ * @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.
719
719
  */
720
- post: operations["getDeckReply"];
720
+ post: operations["designIllustrationInWhiteboard"];
721
721
  delete?: never;
722
722
  options?: never;
723
723
  head?: never;
724
724
  patch?: never;
725
725
  trace?: never;
726
726
  };
727
- "/tools/designInWhiteboard": {
727
+ "/tools/getDeckReplyInWhiteboard": {
728
728
  parameters: {
729
729
  query?: never;
730
730
  header?: never;
@@ -734,30 +734,10 @@ export interface paths {
734
734
  get?: never;
735
735
  put?: never;
736
736
  /**
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.
737
+ * getDeckReplyInWhiteboard
738
+ * @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.
739
739
  */
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"];
740
+ post: operations["getDeckReplyInWhiteboard"];
761
741
  delete?: never;
762
742
  options?: never;
763
743
  head?: never;
@@ -784,46 +764,6 @@ export interface paths {
784
764
  patch?: never;
785
765
  trace?: never;
786
766
  };
787
- "/tools/getDesignStatusInWhiteboard": {
788
- parameters: {
789
- query?: never;
790
- header?: never;
791
- path?: never;
792
- cookie?: never;
793
- };
794
- get?: never;
795
- put?: never;
796
- /**
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.
799
- */
800
- post: operations["getDesignStatusInWhiteboard"];
801
- delete?: never;
802
- options?: never;
803
- head?: never;
804
- patch?: never;
805
- trace?: never;
806
- };
807
- "/tools/generateInWhiteboard": {
808
- parameters: {
809
- query?: never;
810
- header?: never;
811
- path?: never;
812
- cookie?: never;
813
- };
814
- get?: never;
815
- put?: never;
816
- /**
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.
819
- */
820
- post: operations["generateInWhiteboard"];
821
- delete?: never;
822
- options?: never;
823
- head?: never;
824
- patch?: never;
825
- trace?: never;
826
- };
827
767
  "/tools/createWhiteboard": {
828
768
  parameters: {
829
769
  query?: never;
@@ -1055,7 +995,7 @@ export interface paths {
1055
995
  put?: never;
1056
996
  /**
1057
997
  * getWhiteboardImage
1058
- * @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.
998
+ * @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.
1059
999
  */
1060
1000
  post: operations["getWhiteboardImage"];
1061
1001
  delete?: never;
@@ -6781,7 +6721,7 @@ export interface operations {
6781
6721
  };
6782
6722
  };
6783
6723
  };
6784
- designWhiteboard: {
6724
+ autoDesignWhiteboard: {
6785
6725
  parameters: {
6786
6726
  query?: never;
6787
6727
  header?: never;
@@ -6802,7 +6742,7 @@ export interface operations {
6802
6742
  /** @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. */
6803
6743
  confirm?: boolean;
6804
6744
  /**
6805
- * @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.
6745
+ * @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.
6806
6746
  * @enum {string}
6807
6747
  */
6808
6748
  designProfile?: "standard" | "branded-executive" | "illustrated" | "image" | "agentic" | "agentic-deck";
@@ -7075,7 +7015,7 @@ export interface operations {
7075
7015
  };
7076
7016
  };
7077
7017
  };
7078
- designDeck: {
7018
+ designDeckInWhiteboard: {
7079
7019
  parameters: {
7080
7020
  query?: never;
7081
7021
  header?: never;
@@ -7085,11 +7025,11 @@ export interface operations {
7085
7025
  requestBody?: {
7086
7026
  content: {
7087
7027
  "application/json": {
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. */
7028
+ /** @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. */
7089
7029
  documentId: string;
7090
7030
  /** @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
7031
  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. */
7032
+ /** @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. */
7093
7033
  sessionId?: string;
7094
7034
  /** @description Optional. An existing deck to continue designing (usually you pass sessionId instead; when both are given the session's deck wins). */
7095
7035
  deckId?: string;
@@ -7188,7 +7128,7 @@ export interface operations {
7188
7128
  };
7189
7129
  };
7190
7130
  };
7191
- getDeckReply: {
7131
+ designIllustrationInWhiteboard: {
7192
7132
  parameters: {
7193
7133
  query?: never;
7194
7134
  header?: never;
@@ -7198,95 +7138,31 @@ export interface operations {
7198
7138
  requestBody?: {
7199
7139
  content: {
7200
7140
  "application/json": {
7201
- /** @description The whiteboard that hosts the deck. */
7141
+ /** @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. */
7202
7142
  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. */
7287
- documentId?: string;
7288
- /** @description Ignored. Deprecated tool — use designDeck. */
7289
- message?: string;
7143
+ /** @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. */
7144
+ message: string;
7145
+ /** @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. */
7146
+ sessionId?: string;
7147
+ /** @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. */
7148
+ deckId?: string;
7149
+ /** @description Optional title. If omitted, a clear one is derived from the brief. */
7150
+ title?: string;
7151
+ /** @description Optional brand kit id (from listBrandKits) to colour-condition the illustration. If omitted, the organisation's effective brand is used. */
7152
+ brandKitId?: string;
7153
+ /** @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. */
7154
+ attachments?: {
7155
+ /** @description A public https URL to the image. */
7156
+ url?: string;
7157
+ /** @description The image as base64 (no data: prefix). Provide mediaType alongside it. */
7158
+ data?: string;
7159
+ /** @description The image MIME type, e.g. 'image/png' or 'image/jpeg'. */
7160
+ mediaType?: string;
7161
+ /** @description Optional human-readable name for the image. */
7162
+ name?: string;
7163
+ }[];
7164
+ /** @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. */
7165
+ confirm?: boolean;
7290
7166
  };
7291
7167
  };
7292
7168
  };
@@ -7358,7 +7234,7 @@ export interface operations {
7358
7234
  };
7359
7235
  };
7360
7236
  };
7361
- editInWhiteboard: {
7237
+ getDeckReplyInWhiteboard: {
7362
7238
  parameters: {
7363
7239
  query?: never;
7364
7240
  header?: never;
@@ -7368,12 +7244,10 @@ export interface operations {
7368
7244
  requestBody?: {
7369
7245
  content: {
7370
7246
  "application/json": {
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;
7247
+ /** @description The whiteboard that hosts the deck or illustration (it lives inside the board). REQUIRED. */
7248
+ documentId: string;
7249
+ /** @description The deck or illustration to poll, as returned by designDeckInWhiteboard or designIllustrationInWhiteboard. */
7250
+ deckId: string;
7377
7251
  };
7378
7252
  };
7379
7253
  };
@@ -7457,7 +7331,7 @@ export interface operations {
7457
7331
  "application/json": {
7458
7332
  /** @description The whiteboard that hosts the design. */
7459
7333
  documentId: string;
7460
- /** @description The design to export (the deck id), as returned by designInWhiteboard. */
7334
+ /** @description The design to export (the deck id), as returned by designDeckInWhiteboard. */
7461
7335
  designId: string;
7462
7336
  /**
7463
7337
  * @description Which engine. 'deck' (default).
@@ -7542,193 +7416,6 @@ export interface operations {
7542
7416
  };
7543
7417
  };
7544
7418
  };
7545
- getDesignStatusInWhiteboard: {
7546
- parameters: {
7547
- query?: never;
7548
- header?: never;
7549
- path?: never;
7550
- cookie?: never;
7551
- };
7552
- requestBody?: {
7553
- content: {
7554
- "application/json": {
7555
- /** @description Ignored. Deprecated tool — use getDeckReply. */
7556
- documentId?: 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;
7661
- };
7662
- };
7663
- };
7664
- responses: {
7665
- /** @description Tool result (shape varies per tool — refer to the tool's docs for the exact return value). */
7666
- 200: {
7667
- headers: {
7668
- [name: string]: unknown;
7669
- };
7670
- content: {
7671
- "application/json": {
7672
- [key: string]: unknown;
7673
- };
7674
- };
7675
- };
7676
- /** @description Validation error. */
7677
- 400: {
7678
- headers: {
7679
- [name: string]: unknown;
7680
- };
7681
- content: {
7682
- "application/json": components["schemas"]["ErrorResponse"];
7683
- };
7684
- };
7685
- /** @description Missing or invalid credentials. */
7686
- 401: {
7687
- headers: {
7688
- [name: string]: unknown;
7689
- };
7690
- content: {
7691
- "application/json": components["schemas"]["ErrorResponse"];
7692
- };
7693
- };
7694
- /** @description Authenticated but lacking the required permission or feature flag. */
7695
- 403: {
7696
- headers: {
7697
- [name: string]: unknown;
7698
- };
7699
- content: {
7700
- "application/json": components["schemas"]["ErrorResponse"];
7701
- };
7702
- };
7703
- /** @description Resource not found. */
7704
- 404: {
7705
- headers: {
7706
- [name: string]: unknown;
7707
- };
7708
- content: {
7709
- "application/json": components["schemas"]["ErrorResponse"];
7710
- };
7711
- };
7712
- /** @description Body did not match the tool's input schema. */
7713
- 422: {
7714
- headers: {
7715
- [name: string]: unknown;
7716
- };
7717
- content: {
7718
- "application/json": components["schemas"]["ErrorResponse"];
7719
- };
7720
- };
7721
- /** @description Server error. */
7722
- 500: {
7723
- headers: {
7724
- [name: string]: unknown;
7725
- };
7726
- content: {
7727
- "application/json": components["schemas"]["ErrorResponse"];
7728
- };
7729
- };
7730
- };
7731
- };
7732
7419
  createWhiteboard: {
7733
7420
  parameters: {
7734
7421
  query?: never;
@@ -8379,6 +8066,8 @@ export interface operations {
8379
8066
  align?: "left" | "center" | "right";
8380
8067
  /** @description Optional original filename (for storage + type hinting). */
8381
8068
  fileName?: string;
8069
+ /** @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. */
8070
+ locked?: boolean;
8382
8071
  };
8383
8072
  };
8384
8073
  };
@@ -8854,11 +8543,6 @@ export interface operations {
8854
8543
  "application/json": {
8855
8544
  /** @description The whiteboard's documentId. */
8856
8545
  documentId: string;
8857
- /**
8858
- * @description png (default — a viewable raster) or svg (vector markup).
8859
- * @enum {string}
8860
- */
8861
- format?: "png" | "svg";
8862
8546
  /** @description Render only these element ids (plus their bound labels + group peers) instead of the whole board. */
8863
8547
  elementIds?: string[];
8864
8548
  /** @description Canvas background colour (default white), e.g. '#ffffff' or 'transparent'. */