@eventcatalog/core 5.7.1 → 5.7.4

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.
Files changed (43) hide show
  1. package/dist/analytics/analytics.cjs +1 -1
  2. package/dist/analytics/analytics.js +2 -2
  3. package/dist/analytics/log-build.cjs +1 -1
  4. package/dist/analytics/log-build.js +3 -3
  5. package/dist/{chunk-GRC67WHC.js → chunk-GOIDVIMH.js} +1 -1
  6. package/dist/{chunk-HZ3XZKUT.js → chunk-L2PFSX4L.js} +1 -1
  7. package/dist/{chunk-36XVRD36.js → chunk-PLTHZFTW.js} +1 -1
  8. package/dist/{chunk-CPF5WE3R.js → chunk-PXYVJK54.js} +1 -1
  9. package/dist/{chunk-AXWTR2FV.js → chunk-RUG7AIT5.js} +1 -1
  10. package/dist/constants.cjs +1 -1
  11. package/dist/constants.js +1 -1
  12. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/01-what-is-eventcatalog-assistant.md +8 -0
  13. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md +24 -0
  14. package/dist/docs/development/studio/01-introduction.md +2 -1
  15. package/dist/docs/development/studio/04-collaborate-on-a-canvas.md +10 -2
  16. package/dist/docs/development/studio/05-connect-your-agent.md +4 -0
  17. package/dist/docs/development/studio/07-reference.md +40 -7
  18. package/dist/docs/development/studio/draw-with-ai.md +96 -0
  19. package/dist/eventcatalog.cjs +1 -1
  20. package/dist/eventcatalog.js +5 -5
  21. package/dist/generate.cjs +1 -1
  22. package/dist/generate.js +3 -3
  23. package/dist/utils/cli-logger.cjs +1 -1
  24. package/dist/utils/cli-logger.js +2 -2
  25. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +113 -8
  26. package/eventcatalog/src/components/ChatPanel/panel-width.ts +28 -0
  27. package/eventcatalog/src/components/MDX/Steps/Step.astro +4 -2
  28. package/eventcatalog/src/components/SchemaExplorer/DiffViewer.tsx +2 -103
  29. package/eventcatalog/src/components/SchemaExplorer/diff-dark-styles.ts +104 -0
  30. package/eventcatalog/src/features/mcp/apps/generated/canvas.html +71 -71
  31. package/eventcatalog/src/features/mcp/apps/generated/viewer.html +1 -1
  32. package/eventcatalog/src/features/studio/components/StudioDesigner.tsx +25 -3
  33. package/eventcatalog/src/features/studio/hooks/use-canvas-webmcp.ts +1 -1
  34. package/eventcatalog/src/features/studio/server/canvas-mcp.ts +1 -1
  35. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_ChangelogPage.astro +297 -0
  36. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.spec.ts +101 -0
  37. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +76 -47
  38. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +4 -168
  39. package/eventcatalog/src/pages/docs/services/[id]/[version]/changelog/index.astro +14 -0
  40. package/eventcatalog/src/pages/docs/services/[id]/changelog/index.astro +3 -3
  41. package/eventcatalog/src/utils/node-graphs/domain-levels-node-graph.ts +112 -28
  42. package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +24 -10
  43. package/package.json +4 -4
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(analytics_exports);
36
36
  var import_os = __toESM(require("os"), 1);
37
37
 
38
38
  // package.json
39
- var version = "5.7.1";
39
+ var version = "5.7.4";
40
40
 
41
41
  // src/constants.ts
42
42
  var VERSION = version;
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "../chunk-GRC67WHC.js";
3
+ } from "../chunk-GOIDVIMH.js";
4
4
  import "../chunk-CPW6G62V.js";
5
- import "../chunk-HZ3XZKUT.js";
5
+ import "../chunk-L2PFSX4L.js";
6
6
  export {
7
7
  raiseEvent
8
8
  };
@@ -169,7 +169,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
169
169
  var import_os = __toESM(require("os"), 1);
170
170
 
171
171
  // package.json
172
- var version = "5.7.1";
172
+ var version = "5.7.4";
173
173
 
174
174
  // src/constants.ts
175
175
  var VERSION = version;
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  log_build_default
3
- } from "../chunk-36XVRD36.js";
3
+ } from "../chunk-PLTHZFTW.js";
4
4
  import "../chunk-AD7CL772.js";
5
- import "../chunk-GRC67WHC.js";
5
+ import "../chunk-GOIDVIMH.js";
6
6
  import "../chunk-YRZK7HKX.js";
7
7
  import "../chunk-CA6WCQ2T.js";
8
8
  import "../chunk-CPW6G62V.js";
9
- import "../chunk-HZ3XZKUT.js";
9
+ import "../chunk-L2PFSX4L.js";
10
10
  import "../chunk-4G7FSRPN.js";
11
11
  export {
12
12
  log_build_default as default
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-CPW6G62V.js";
5
5
  import {
6
6
  VERSION
7
- } from "./chunk-HZ3XZKUT.js";
7
+ } from "./chunk-L2PFSX4L.js";
8
8
 
9
9
  // src/analytics/analytics.js
10
10
  import os from "os";
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "5.7.1";
2
+ var version = "5.7.4";
3
3
 
4
4
  // src/constants.ts
5
5
  var VERSION = version;
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-AD7CL772.js";
4
4
  import {
5
5
  raiseEvent
6
- } from "./chunk-GRC67WHC.js";
6
+ } from "./chunk-GOIDVIMH.js";
7
7
  import {
8
8
  countResources,
9
9
  hashCatalogContent,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-HZ3XZKUT.js";
3
+ } from "./chunk-L2PFSX4L.js";
4
4
 
5
5
  // src/utils/cli-logger.ts
6
6
  import pc from "picocolors";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-CPF5WE3R.js";
3
+ } from "./chunk-PXYVJK54.js";
4
4
  import {
5
5
  cleanup,
6
6
  getEventCatalogConfigFile
@@ -25,7 +25,7 @@ __export(constants_exports, {
25
25
  module.exports = __toCommonJS(constants_exports);
26
26
 
27
27
  // package.json
28
- var version = "5.7.1";
28
+ var version = "5.7.4";
29
29
 
30
30
  // src/constants.ts
31
31
  var VERSION = version;
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-HZ3XZKUT.js";
3
+ } from "./chunk-L2PFSX4L.js";
4
4
  export {
5
5
  VERSION
6
6
  };
@@ -18,3 +18,11 @@ It is embedded directly into your documentation site, enabling users to quickly
18
18
  The assistant integrates with your preferred AI models using the [AI SDK](https://ai-sdk.dev/), giving you full control over which models power the experience.
19
19
 
20
20
  ![EventCatalog Assistant](./images/example.png)
21
+
22
+ ## Draw with AI in Studio
23
+
24
+ <AddedIn version="5.7.1" />
25
+
26
+ On an [EventCatalog Studio](/docs/development/studio/introduction) canvas, the assistant can draw for you. Choose **Draw with AI** and describe what you want to design: the assistant draws it on the canvas, live, using the resources in your catalog. It can also review a design and flag risks with hotspots, or walk you through how something works, step by step.
27
+
28
+ See [Draw with AI](/docs/development/studio/draw-with-ai).
@@ -78,6 +78,30 @@ export const configuration = {
78
78
  }
79
79
  ```
80
80
 
81
+ #### Passing options to your provider
82
+
83
+ <AddedIn version="5.7.1" />
84
+
85
+ Use `configuration.providerOptions` to pass settings that only your model provider understands. They're passed to the [AI SDK's `providerOptions`](https://ai-sdk.dev/docs/foundations/prompts), keyed by the provider's name.
86
+
87
+ For example, to set how much effort an Anthropic model puts into its answers:
88
+
89
+ ```js title="eventcatalog.chat.js"
90
+ import { anthropic } from '@ai-sdk/anthropic';
91
+
92
+ export default async () => {
93
+ return anthropic('claude-haiku-5-5');
94
+ }
95
+
96
+ export const configuration = {
97
+ providerOptions: {
98
+ anthropic: { effort: 'medium' },
99
+ },
100
+ }
101
+ ```
102
+
103
+ Lower effort answers faster and costs less, which suits most drawing with [Draw with AI](/docs/development/studio/draw-with-ai). Raise it for harder questions. See your provider's page in the [AI SDK docs](https://ai-sdk.dev/providers/ai-sdk-providers) for the options it accepts.
104
+
81
105
  Once you have configured your model, restart EventCatalog and you can start asking questions about your architecture.
82
106
 
83
107
  ### Troubleshooting
@@ -31,7 +31,7 @@ With Studio:
31
31
  - **You sketch what's new next to what exists.** Add proposed services, messages and data stores, and connect them to the resources they change.
32
32
  - **Team collaboration.** Everyone on a canvas sees each other's pointers and edits, and can comment and flag risks.
33
33
  - **You record the decision.** Mark a canvas as proposed, accepted or rejected, with a note, so you can see later what was decided and why.
34
- - **AI agents work with you.** Agents connect through the [MCP server](/docs/development/ask-your-architecture/mcp-server/introduction) and edit the same canvas, using the resources in your catalog.
34
+ - **AI works with you.** Choose [Draw with AI](/docs/development/studio/draw-with-ai) and describe what you want: the assistant draws it on the canvas with the model you configure. Agents such as Claude and Cursor can also connect through the [MCP server](/docs/development/ask-your-architecture/mcp-server/introduction) and edit the same canvas, using the resources in your catalog.
35
35
 
36
36
  :::info Studio doesn't change your catalog
37
37
  A canvas is a design, kept separately from your catalog files. Adding, editing or deleting anything on a canvas never changes your documentation.
@@ -57,4 +57,5 @@ Try [EventCatalog Studio on the web](https://www.eventcatalog.studio/). It runs
57
57
 
58
58
  - [Create a canvas](/docs/development/studio/create-a-canvas)
59
59
  - [Collaborate on a canvas](/docs/development/studio/collaborate-on-a-canvas)
60
+ - [Draw with AI](/docs/development/studio/draw-with-ai)
60
61
  - [Connect your agent to a canvas](/docs/development/studio/connect-your-agent)
@@ -46,9 +46,17 @@ A hotspot flags a risk on a node or a spot, such as a single point of failure or
46
46
  2. Click the node at risk.
47
47
  3. Pick **Critical**, **Warning** or **Info**, and add a short title and, if you want, why it matters.
48
48
 
49
- **Hotspots** at the bottom of the canvas lists every hotspot. At L1 and L2, hotspots inside a domain or system are shown on that domain or system, so zooming out never hides a risk.
49
+ Click a marker to open its hotspot beside it. It shows the title, why it matters, and who flagged it and when. Edit or remove it from its header, or press <kbd>Delete</kbd> to remove it.
50
50
 
51
- ![A warning hotspot on the Instalment Plans database](./img/hotspots.png)
51
+ **Hotspots** at the bottom of the canvas lists every hotspot, most severe first, with the node it's on. Click a row, or rest the pointer on it, to go to that hotspot and open it. The list stays open, so you can work through them one by one.
52
+
53
+ At L1 and L2, hotspots inside a domain or system are shown on that domain or system, so zooming out never hides a risk. Deleting a node deletes its hotspots too.
54
+
55
+ ![The Hotspots list on a Payments canvas, with the critical "Shared database single point of failure" hotspot open beside the Payment Database](./img/hotspot-list.png)
56
+
57
+ :::tip Let the assistant find risks
58
+ Ask the assistant to review a canvas with [Draw with AI](/docs/development/studio/draw-with-ai#ask-it-to-review-a-design), and it flags what it finds with hotspots.
59
+ :::
52
60
 
53
61
  ## Add notes and text
54
62
 
@@ -12,6 +12,10 @@ description: Bring Claude, ChatGPT, Cursor or another AI agent onto a canvas to
12
12
 
13
13
  AI agents can join a canvas and work on it with you, live. An agent can add resources from your catalog, sketch new components, connect them, tidy the layout, comment and change the status.
14
14
 
15
+ :::tip No agent to connect?
16
+ [Draw with AI](/docs/development/studio/draw-with-ai) uses the EventCatalog Assistant, built into your catalog, to draw on the canvas with the model you configure.
17
+ :::
18
+
15
19
  Agents join like a person does. Each one has its own pointer and name, and you see what it's doing ("Connecting InstalmentPlanApproved to Notification Service") as it works. Choose **Follow** on the "is working" banner to move your view with it.
16
20
 
17
21
  ![Claude connecting an event to the Notification Service while two people are on the canvas](./img/studio-collaboration.png)
@@ -111,10 +111,15 @@ The bottom of the menu shows the connection status, for example **Connected**.
111
111
 
112
112
  ### Right-click menus
113
113
 
114
+ Items are grouped, with their shortcuts on the right. On a locked canvas, only the items that don't change it are shown.
115
+
114
116
  | On | Items |
115
117
  |---|---|
116
- | A node | Add comment, Add hotspot, Add a note, Edit details, Copy, Duplicate, Delete |
117
- | The canvas | Add comment, Add hotspot, Add a sticky note, Paste here, Reorder diagram |
118
+ | A node | Edit details · Cut, Copy, Paste, Duplicate · Add comment, Add hotspot, Add note · Delete |
119
+ | A sticky note or text | Edit text · Cut, Copy, Paste, Duplicate · Colour (sticky notes) · Add comment · Delete |
120
+ | The canvas | Paste here · Add sticky note, Add comment, Add hotspot · Reorder diagram |
121
+
122
+ **Cut** is offered at L3, where nodes can be copied.
118
123
 
119
124
  ### Statuses
120
125
 
@@ -136,8 +141,10 @@ The bottom of the menu shows the connection status, for example **Connected**.
136
141
  | Title | Up to 120 characters, for example "Single point of failure" |
137
142
  | Description | Optional. Why it matters, and what to do about it |
138
143
 
139
- - A hotspot is on a node, and moves with it, or on a spot on the canvas.
140
- - The **Hotspots** list shows the most severe first.
144
+ - A hotspot is on a node, and moves with it, or on a spot on the canvas. Deleting a node deletes its hotspots, and undo brings them back.
145
+ - A marker shows the severity's icon, with a count when there's more than one hotspot on it. Click it to open the hotspot beside it.
146
+ - An open hotspot shows its title, description, and who flagged it and when. Edit or remove it from its header, or press <kbd>Delete</kbd> to remove it.
147
+ - The **Hotspots** list at the bottom left has one row per hotspot, most severe first, with the node it's on. Click a row, or rest the pointer on it, to go to that hotspot and open it.
141
148
  - At L1 and L2, hotspots inside a domain or system are shown on that domain or system.
142
149
 
143
150
  ### Studio page
@@ -178,7 +185,7 @@ New components start at version `0.0.1`.
178
185
  | People | Actor | Someone who uses it |
179
186
  | | Team | Who owns what |
180
187
 
181
- Sticky notes and text are added from the toolbar.
188
+ Sticky notes and text are added from the toolbar. Agents and the [assistant](/docs/development/studio/draw-with-ai) can add them too, and they're always placed clear of other nodes.
182
189
 
183
190
  ### Catalog resources
184
191
 
@@ -221,8 +228,8 @@ When Studio is on, the [EventCatalog MCP server](/docs/development/ask-your-arch
221
228
  | `openCanvas` | Shows a canvas in the chat, in clients that support MCP Apps |
222
229
  | `listCanvases` | Lists canvases and who is on each one |
223
230
  | `createCanvas` | Creates a canvas and returns its link |
224
- | `getCanvas` | Reads a canvas: its nodes, connections, comments and who is on it |
225
- | `addToCanvas` | Adds catalog resources or new components, and connects them |
231
+ | `getCanvas` | Reads a canvas: its nodes, connections, hotspots, comments and who is on it |
232
+ | `addToCanvas` | Adds catalog resources, new components, sticky notes and text, and connects them |
226
233
  | `updateCanvasNode` | Renames, describes, versions or moves a node |
227
234
  | `connectCanvasNodes` | Connects nodes |
228
235
  | `removeFromCanvas` | Removes nodes or connections |
@@ -234,6 +241,12 @@ When Studio is on, the [EventCatalog MCP server](/docs/development/ask-your-arch
234
241
 
235
242
  Every tool takes an optional `agentName`, the name people on the canvas see. It defaults to the name of the client, for example Claude, Claude Code, ChatGPT or Cursor.
236
243
 
244
+ `addToCanvas` can bring more than one resource at a time:
245
+
246
+ - `contents: true` on a catalog domain or system adds it with everything in it: its systems, services, messages and data stores, connected and laid out.
247
+ - `connections` on a catalog service or message adds what it connects to. For a service: `sends`, `receives` and `dataStores`. For a message: `senders` and `receivers`.
248
+ - A node with type `note` is a sticky note, and type `text` is text on the canvas, with an optional `fontSize`.
249
+
237
250
  ### How agents appear
238
251
 
239
252
  - An agent has its own pointer and name on the canvas.
@@ -244,6 +257,25 @@ Every tool takes an optional `agentName`, the name people on the canvas see. It
244
257
 
245
258
  When WebMCP is turned on in the **Connect your AI agent** dialog, the open canvas offers agents in the browser these tools: `get_canvas`, `search_catalog`, `add_to_canvas`, `update_node`, `connect_nodes`, `remove_from_canvas`, `layout_canvas`, `set_canvas_status`, `add_comment`, `reply_to_comment`, `resolve_comment` and `show_nodes`.
246
259
 
260
+ ## Assistant tools {#assistant-tools}
261
+
262
+ When you [draw with AI](/docs/development/studio/draw-with-ai), the EventCatalog Assistant works on the canvas it was opened on with these tools, using the model in `eventcatalog.chat.js`. They're only offered when Studio is on.
263
+
264
+ | Tool | What it does |
265
+ |---|---|
266
+ | `getCanvas` | Reads the canvas: its nodes, connections, hotspots and comments |
267
+ | `addToCanvas` | Adds catalog resources, new components, sticky notes and text, like the [MCP tool](#mcp-tools) |
268
+ | `updateCanvasNode` | Renames, describes, versions, moves or resizes the text of a node |
269
+ | `connectCanvasNodes` | Connects nodes |
270
+ | `removeFromCanvas` | Removes nodes or connections |
271
+ | `layoutCanvas` | Lays out the whole canvas, when you ask it to |
272
+ | `addHotspot` | Flags a node or a spot with a critical, warning or info hotspot |
273
+ | `showOnCanvas` | Takes your view to nodes and highlights them |
274
+ | `walkThrough` | Shows a step-by-step walkthrough in the chat, with each step's nodes |
275
+
276
+ - The assistant appears on the canvas as **EventCatalog AI**, with its own pointer, like other agents. It works about three times as fast as an MCP agent, because you're waiting on it in the chat.
277
+ - After a turn where it added nodes or connections, the canvas is laid out again, with sticky notes and text kept beside what they're about.
278
+
247
279
  ## Keyboard shortcuts {#keyboard-shortcuts}
248
280
 
249
281
  Press <kbd>?</kbd> on a canvas to see these shortcuts. On Windows and Linux, use <kbd>Ctrl</kbd> instead of <kbd>⌘</kbd>.
@@ -270,6 +302,7 @@ Press <kbd>?</kbd> on a canvas to see these shortcuts. On Windows and Linux, use
270
302
  | Select everything | <kbd>⌘</kbd> <kbd>A</kbd> |
271
303
  | Select several | <kbd>⇧</kbd> + click |
272
304
  | Delete what's selected | <kbd>Delete</kbd> |
305
+ | Remove the open hotspot | <kbd>Delete</kbd> |
273
306
  | Duplicate | <kbd>⌘</kbd> <kbd>D</kbd> |
274
307
  | Copy / paste | <kbd>⌘</kbd> <kbd>C</kbd> / <kbd>⌘</kbd> <kbd>V</kbd> |
275
308
  | Undo / redo | <kbd>⌘</kbd> <kbd>Z</kbd> / <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>Z</kbd> |
@@ -0,0 +1,96 @@
1
+ ---
2
+ sidebar_position: 4.5
3
+ keywords:
4
+ - EventCatalog Studio
5
+ - Draw with AI
6
+ - AI architecture diagrams
7
+ - EventCatalog Assistant
8
+ sidebar_label: Draw with AI
9
+ title: Draw with AI
10
+ description: Describe what you want to design, and the assistant draws it on the canvas with the model you configure.
11
+ ---
12
+
13
+ import AddedIn from '@site/src/components/MDX/AddedIn';
14
+
15
+ <AddedIn version="5.7.1" />
16
+
17
+ Describe what you want to design, and the [EventCatalog Assistant](/docs/development/ask-your-architecture/eventcatalog-assistant/what-is-eventcatalog-assistant) draws it on the canvas while you watch. It uses the resources in your catalog and the AI model you configure.
18
+
19
+ ![The assistant drawing a buy now, pay later design on a canvas, with its pointer on the canvas and its progress in the chat](./img/draw-with-ai.png)
20
+
21
+ ## Before you start
22
+
23
+ Draw with AI uses the EventCatalog Assistant, so your catalog needs:
24
+
25
+ - Studio turned on. It's on in `eventcatalog dev`; see [Run Studio in production](/docs/development/studio/run-studio-in-production) for a deployed catalog.
26
+ - A model configured in `eventcatalog.chat.js`. See [Configure the assistant](/docs/development/ask-your-architecture/eventcatalog-assistant/configuration).
27
+
28
+ **Draw with AI** only appears on a canvas when the assistant is available.
29
+
30
+ ## Draw on a canvas
31
+
32
+ 1. Open a canvas, or start one from a diagram with **Open in Studio**.
33
+ 2. Choose **Draw with AI** at the top right. The assistant opens beside the canvas.
34
+ 3. Describe what you want, for example "Map out the Payments domain", and press <kbd>Enter</kbd>.
35
+
36
+ The assistant reads the canvas, finds what you asked about in your catalog, and draws it with its own pointer, one step at a time. The chat shows what it's doing ("Reading the canvas", "Drawing on the canvas"). Your view follows it while it works; choose **Stop** on the "Following" banner to look around on your own.
37
+
38
+ When it's finished, the assistant tidies the layout and keeps sticky notes and text beside what they're about.
39
+
40
+ Everyone on the canvas sees the assistant's pointer and changes, as they see each other's.
41
+
42
+ ## What it draws
43
+
44
+ - **Resources from your catalog**, with their real names, versions and summaries. A domain or system arrives with everything in it. A service or message can arrive with what it sends, receives and connects to.
45
+ - **New components** for what isn't in your catalog yet, such as a proposed service or event. They start at version `0.0.1`.
46
+ - **Sticky notes and text**, when you ask for them or ask for a review: assumptions, open questions, a title or headings.
47
+
48
+ Connections between catalog resources come from your catalog, not from the model. If the assistant can't find something you asked for, it says so in its reply.
49
+
50
+ :::info Your catalog doesn't change
51
+ Like everything on a canvas, what the assistant draws is a design. It never changes your catalog files.
52
+ :::
53
+
54
+ ## Ask it to review a design
55
+
56
+ Ask the assistant to review a canvas, and it flags what it finds with [hotspots](/docs/development/studio/collaborate-on-a-canvas#flag-a-risk-with-a-hotspot) on the nodes they're about, marked **Critical**, **Warning** or **Info**. It can add sticky notes with suggestions too.
57
+
58
+ The hotspots it flags are listed under its reply. Click one to go to it on the canvas. Each one says **Flagged by EventCatalog AI**, so your team can tell them apart from their own.
59
+
60
+ ![The assistant's review of the Payments domain, listing six hotspots it flagged on the canvas](./img/draw-with-ai-review.png)
61
+
62
+ ## Ask how something works
63
+
64
+ Ask "walk me through how checkout works", and the assistant answers with a walkthrough: one step at a time, each with what happens and the nodes involved. Hover or click a step to go to its nodes on the canvas.
65
+
66
+ When the assistant mentions something on the canvas, its name in the reply links to it. Hover or click it to go there.
67
+
68
+ ![A step-by-step walkthrough in the chat, with the nodes for the current step highlighted on the canvas](./img/draw-with-ai-walkthrough.png)
69
+
70
+ ## Things to ask
71
+
72
+ When you open the assistant on a canvas, it suggests a few things to ask:
73
+
74
+ - **Create a new diagram**: the assistant asks what to draw.
75
+ - **Review my architecture, highlight any issues**: it flags problems with hotspots and adds sticky notes with its review.
76
+ - **How could we improve this architecture?**: it flags risks and suggests improvements on sticky notes.
77
+
78
+ Other things to try:
79
+
80
+ - "Map out the Payments domain"
81
+ - "Design how we could add buy now, pay later to checkout"
82
+ - "Add a fraud check between checkout and the Payment API"
83
+ - "How could we split the Order Service?"
84
+ - "Walk me through what happens when a payment fails"
85
+
86
+ After each answer, the assistant suggests follow-up questions based on what's on the canvas.
87
+
88
+ ## Choosing a model
89
+
90
+ The assistant uses the model in `eventcatalog.chat.js`, so you choose the provider, the model and who pays for it. Your catalog talks to your provider directly.
91
+
92
+ A small, fast model is enough for most drawing. To trade speed for more careful answers, pass your provider's options with [`configuration.providerOptions`](/docs/development/ask-your-architecture/eventcatalog-assistant/configuration#configuring-eventcatalogchatjs), for example Anthropic's `effort`.
93
+
94
+ ## The assistant and other agents
95
+
96
+ The assistant draws with the same canvas actions as agents that [connect through MCP](/docs/development/studio/connect-your-agent), such as Claude, Cursor or VS Code, and appears on the canvas the same way. It also has a few tools of its own: flagging hotspots, taking you to nodes, and walkthroughs. See the [reference](/docs/development/studio/reference#assistant-tools).
@@ -174,7 +174,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
174
174
  var import_picocolors = __toESM(require("picocolors"), 1);
175
175
 
176
176
  // package.json
177
- var version = "5.7.1";
177
+ var version = "5.7.4";
178
178
 
179
179
  // src/constants.ts
180
180
  var VERSION = version;
@@ -7,12 +7,12 @@ import {
7
7
  import "./chunk-CA4U2JP7.js";
8
8
  import {
9
9
  log_build_default
10
- } from "./chunk-36XVRD36.js";
10
+ } from "./chunk-PLTHZFTW.js";
11
11
  import {
12
12
  getLicenseStatus,
13
13
  printLicenseStatus
14
14
  } from "./chunk-AD7CL772.js";
15
- import "./chunk-GRC67WHC.js";
15
+ import "./chunk-GOIDVIMH.js";
16
16
  import "./chunk-YRZK7HKX.js";
17
17
  import "./chunk-CA6WCQ2T.js";
18
18
  import "./chunk-CPW6G62V.js";
@@ -39,10 +39,10 @@ import {
39
39
  } from "./chunk-NKNOXQ62.js";
40
40
  import {
41
41
  generate
42
- } from "./chunk-AXWTR2FV.js";
42
+ } from "./chunk-RUG7AIT5.js";
43
43
  import {
44
44
  logger
45
- } from "./chunk-CPF5WE3R.js";
45
+ } from "./chunk-PXYVJK54.js";
46
46
  import {
47
47
  resolve_catalog_dependencies_default
48
48
  } from "./chunk-PD7KTSYN.js";
@@ -79,7 +79,7 @@ import {
79
79
  } from "./chunk-LFQJXLHG.js";
80
80
  import {
81
81
  VERSION
82
- } from "./chunk-HZ3XZKUT.js";
82
+ } from "./chunk-L2PFSX4L.js";
83
83
  import {
84
84
  getEventCatalogConfigFile,
85
85
  verifyRequiredFieldsAreInCatalogConfigFile
package/dist/generate.cjs CHANGED
@@ -105,7 +105,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
105
105
  var import_picocolors = __toESM(require("picocolors"), 1);
106
106
 
107
107
  // package.json
108
- var version = "5.7.1";
108
+ var version = "5.7.4";
109
109
 
110
110
  // src/constants.ts
111
111
  var VERSION = version;
package/dist/generate.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generate
3
- } from "./chunk-AXWTR2FV.js";
4
- import "./chunk-CPF5WE3R.js";
5
- import "./chunk-HZ3XZKUT.js";
3
+ } from "./chunk-RUG7AIT5.js";
4
+ import "./chunk-PXYVJK54.js";
5
+ import "./chunk-L2PFSX4L.js";
6
6
  import "./chunk-4G7FSRPN.js";
7
7
  export {
8
8
  generate
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(cli_logger_exports);
36
36
  var import_picocolors = __toESM(require("picocolors"), 1);
37
37
 
38
38
  // package.json
39
- var version = "5.7.1";
39
+ var version = "5.7.4";
40
40
 
41
41
  // src/constants.ts
42
42
  var VERSION = version;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  logger
3
- } from "../chunk-CPF5WE3R.js";
4
- import "../chunk-HZ3XZKUT.js";
3
+ } from "../chunk-PXYVJK54.js";
4
+ import "../chunk-L2PFSX4L.js";
5
5
  export {
6
6
  logger
7
7
  };