@eventcatalog/core 3.40.2 → 3.41.1

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 (175) hide show
  1. package/dist/__mocks__/astro-content.d.cts +1 -1
  2. package/dist/__mocks__/astro-content.d.ts +1 -1
  3. package/dist/analytics/analytics.cjs +1 -1
  4. package/dist/analytics/analytics.js +2 -2
  5. package/dist/analytics/count-resources.cjs +1 -0
  6. package/dist/analytics/count-resources.js +1 -1
  7. package/dist/analytics/log-build.cjs +3 -1
  8. package/dist/analytics/log-build.js +4 -4
  9. package/dist/catalog-to-astro-content-directory.cjs +1 -0
  10. package/dist/catalog-to-astro-content-directory.js +2 -2
  11. package/dist/{chunk-4UVFXLPI.js → chunk-3DVHEVHQ.js} +1 -0
  12. package/dist/{chunk-K3ZVEX2Y.js → chunk-3H2RT3CM.js} +1 -1
  13. package/dist/{chunk-PWIB7GLR.js → chunk-6C2H2YLW.js} +1 -1
  14. package/dist/{chunk-D6UVZABG.js → chunk-GNLFCESR.js} +1 -1
  15. package/dist/{chunk-55D645EH.js → chunk-IR4IAKWS.js} +1 -0
  16. package/dist/{chunk-YDXB3BD2.js → chunk-O6KT4DPL.js} +1 -1
  17. package/dist/{chunk-D6IBLY3O.js → chunk-QMORF42U.js} +1 -0
  18. package/dist/{chunk-5FFRK3S5.js → chunk-UGNBEYJJ.js} +3 -2
  19. package/dist/{chunk-HSSCHCQA.js → chunk-X5JM6SAH.js} +1 -1
  20. package/dist/{chunk-B7LKNRMT.js → chunk-Z5A2F2DN.js} +1 -1
  21. package/dist/constants.cjs +1 -1
  22. package/dist/constants.js +1 -1
  23. package/dist/docs/development/components/components/04-agent-tools.md +43 -0
  24. package/dist/docs/development/guides/agents/01-introduction.md +43 -0
  25. package/dist/docs/development/guides/agents/02-adding-agents.md +152 -0
  26. package/dist/docs/development/guides/agents/03-adding-tools.md +92 -0
  27. package/dist/docs/development/guides/agents/04-model-metadata.md +96 -0
  28. package/dist/docs/development/guides/agents/_category_.json +11 -0
  29. package/dist/docs/development/guides/agents/adding-to-agents/01-messages.md +122 -0
  30. package/dist/docs/development/guides/agents/adding-to-agents/02-datastores.md +62 -0
  31. package/dist/docs/development/guides/agents/adding-to-agents/_category_.json +10 -0
  32. package/dist/docs/development/guides/agents/ownership/01-owners.md +67 -0
  33. package/dist/docs/development/guides/agents/ownership/_category_.json +11 -0
  34. package/dist/docs/development/guides/agents/versioning-and-lifecycle/01-versioning.md +48 -0
  35. package/dist/docs/development/guides/agents/versioning-and-lifecycle/02-changelog.md +40 -0
  36. package/dist/docs/development/guides/agents/versioning-and-lifecycle/03-deprecating.md +41 -0
  37. package/dist/docs/development/guides/agents/versioning-and-lifecycle/_category_.json +11 -0
  38. package/dist/docs/development/guides/domains/02-creating-domains/03-adding-services-to-domains.md +27 -0
  39. package/dist/docs/development/guides/flows/03-flow-nodes.md +30 -0
  40. package/dist/eventcatalog.cjs +5 -1
  41. package/dist/eventcatalog.config.d.cts +4 -0
  42. package/dist/eventcatalog.config.d.ts +4 -0
  43. package/dist/eventcatalog.js +10 -10
  44. package/dist/generate.cjs +1 -1
  45. package/dist/generate.js +3 -3
  46. package/dist/map-catalog-to-astro.cjs +1 -0
  47. package/dist/map-catalog-to-astro.js +1 -1
  48. package/dist/search-indexer.cjs +1 -0
  49. package/dist/search-indexer.js +1 -1
  50. package/dist/utils/cli-logger.cjs +1 -1
  51. package/dist/utils/cli-logger.js +2 -2
  52. package/dist/watcher.cjs +1 -0
  53. package/dist/watcher.js +2 -2
  54. package/eventcatalog/public/agents/anthropic-dark.svg +1 -0
  55. package/eventcatalog/public/agents/anthropic-light.svg +1 -0
  56. package/eventcatalog/public/agents/openai-dark.svg +1 -0
  57. package/eventcatalog/public/agents/openai-light.svg +1 -0
  58. package/eventcatalog/public/agents/openai.svg +1 -0
  59. package/eventcatalog/public/icons/agent/anthropic-dark.svg +1 -0
  60. package/eventcatalog/public/icons/agent/anthropic-light.svg +1 -0
  61. package/eventcatalog/public/icons/agent/anthropic.svg +1 -0
  62. package/eventcatalog/public/icons/agent/gemini.svg +1 -0
  63. package/eventcatalog/public/icons/agent/openai-dark.svg +1 -0
  64. package/eventcatalog/public/icons/agent/openai-light.svg +1 -0
  65. package/eventcatalog/public/icons/agent/openai.svg +1 -0
  66. package/eventcatalog/public/icons/agents/anthropic-dark.svg +1 -0
  67. package/eventcatalog/public/icons/agents/anthropic-light.svg +1 -0
  68. package/eventcatalog/public/icons/agents/anthropic.svg +1 -0
  69. package/eventcatalog/public/icons/agents/gemini.svg +1 -0
  70. package/eventcatalog/public/icons/agents/openai-dark.svg +1 -0
  71. package/eventcatalog/public/icons/agents/openai-light.svg +1 -0
  72. package/eventcatalog/public/icons/agents/openai.svg +1 -0
  73. package/eventcatalog/public/icons/protocols/mcp-dark.svg +1 -0
  74. package/eventcatalog/public/icons/protocols/mcp-light.svg +1 -0
  75. package/eventcatalog/public/icons/protocols/mcp.svg +1 -0
  76. package/eventcatalog/public/icons/tools/datadog.svg +1 -0
  77. package/eventcatalog/public/icons/tools/github.svg +1 -0
  78. package/eventcatalog/public/icons/tools/hubspot.svg +1 -0
  79. package/eventcatalog/public/icons/tools/slack.svg +1 -0
  80. package/eventcatalog/public/icons/tools/snowflake.svg +1 -0
  81. package/eventcatalog/public/icons/tools/zendesk.svg +1 -0
  82. package/eventcatalog/src/components/Badge.astro +41 -2
  83. package/eventcatalog/src/components/Grids/MessageGrid.tsx +16 -11
  84. package/eventcatalog/src/components/MDX/AgentTools/AgentTools.astro +132 -0
  85. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +2 -0
  86. package/eventcatalog/src/components/MDX/ResourceRef/ResourceRef.astro +8 -3
  87. package/eventcatalog/src/components/MDX/components.tsx +2 -0
  88. package/eventcatalog/src/components/Search/SearchModal.tsx +3 -0
  89. package/eventcatalog/src/components/Search/search-utils.ts +2 -0
  90. package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +3 -0
  91. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +3 -0
  92. package/eventcatalog/src/components/Tables/Discover/DiscoverTable.tsx +165 -0
  93. package/eventcatalog/src/components/Tables/Discover/columns.tsx +132 -7
  94. package/eventcatalog/src/components/Tables/Table.tsx +2 -0
  95. package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +17 -0
  96. package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +17 -0
  97. package/eventcatalog/src/content.config.ts +83 -25
  98. package/eventcatalog/src/enterprise/collections/resource-docs-utils.ts +7 -4
  99. package/eventcatalog/src/enterprise/mcp/mcp-server.ts +9 -2
  100. package/eventcatalog/src/enterprise/tools/catalog-tools.ts +62 -28
  101. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +13 -1
  102. package/eventcatalog/src/pages/_index.astro +1 -3
  103. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +5 -5
  104. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +5 -2
  105. package/eventcatalog/src/pages/directory/[type]/index.astro +2 -0
  106. package/eventcatalog/src/pages/discover/[type]/_index.data.ts +5 -0
  107. package/eventcatalog/src/pages/discover/[type]/index.astro +69 -23
  108. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId].mdx.ts +1 -0
  109. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +1 -0
  110. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +1 -1
  111. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +47 -2
  112. package/eventcatalog/src/pages/docs/[type]/[id]/[version].md.ts +2 -0
  113. package/eventcatalog/src/pages/docs/[type]/[id]/[version].mdx.ts +2 -0
  114. package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +1 -0
  115. package/eventcatalog/src/pages/docs/llm/llms-full.txt.ts +3 -0
  116. package/eventcatalog/src/pages/docs/llm/llms.txt.ts +3 -0
  117. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +24 -1
  118. package/eventcatalog/src/pages/docs/users/[id]/index.astro +24 -1
  119. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +2 -1
  120. package/eventcatalog/src/stores/sidebar-store/builders/agent.ts +141 -0
  121. package/eventcatalog/src/stores/sidebar-store/builders/domain.ts +9 -0
  122. package/eventcatalog/src/stores/sidebar-store/builders/flow.ts +19 -0
  123. package/eventcatalog/src/stores/sidebar-store/builders/message.ts +8 -2
  124. package/eventcatalog/src/stores/sidebar-store/builders/shared.ts +10 -7
  125. package/eventcatalog/src/stores/sidebar-store/state.ts +121 -2
  126. package/eventcatalog/src/types/index.ts +3 -1
  127. package/eventcatalog/src/utils/collection-colors.ts +5 -0
  128. package/eventcatalog/src/utils/collections/agents.ts +163 -0
  129. package/eventcatalog/src/utils/collections/commands.ts +3 -2
  130. package/eventcatalog/src/utils/collections/domains.ts +94 -15
  131. package/eventcatalog/src/utils/collections/events.ts +3 -2
  132. package/eventcatalog/src/utils/collections/flows.ts +20 -3
  133. package/eventcatalog/src/utils/collections/icons.ts +3 -1
  134. package/eventcatalog/src/utils/collections/messages.ts +35 -5
  135. package/eventcatalog/src/utils/collections/queries.ts +3 -2
  136. package/eventcatalog/src/utils/collections/schemas.ts +4 -4
  137. package/eventcatalog/src/utils/collections/services.ts +1 -1
  138. package/eventcatalog/src/utils/collections/teams.ts +5 -1
  139. package/eventcatalog/src/utils/collections/types.ts +1 -0
  140. package/eventcatalog/src/utils/collections/users.ts +5 -1
  141. package/eventcatalog/src/utils/collections/util.ts +2 -0
  142. package/eventcatalog/src/utils/eventcatalog-config/catalog.ts +1 -0
  143. package/eventcatalog/src/utils/llms.ts +1 -1
  144. package/eventcatalog/src/utils/node-graphs/agents-node-graph.ts +4 -0
  145. package/eventcatalog/src/utils/node-graphs/container-node-graph.ts +2 -2
  146. package/eventcatalog/src/utils/node-graphs/domains-node-graph.ts +42 -9
  147. package/eventcatalog/src/utils/node-graphs/export-mermaid.ts +20 -0
  148. package/eventcatalog/src/utils/node-graphs/export-node-graph.ts +4 -0
  149. package/eventcatalog/src/utils/node-graphs/flows-node-graph.ts +22 -1
  150. package/eventcatalog/src/utils/node-graphs/message-node-graph.ts +175 -98
  151. package/eventcatalog/src/utils/node-graphs/services-node-graph.ts +117 -23
  152. package/eventcatalog/src/utils/node-graphs/utils/utils.ts +30 -0
  153. package/eventcatalog/src/utils/page-loaders/page-data-loader.ts +2 -0
  154. package/eventcatalog/src/utils/resource-reference-colors.ts +1 -0
  155. package/package.json +4 -4
  156. /package/dist/docs/development/components/components/{04-attachments.md → 05-attachments.md} +0 -0
  157. /package/dist/docs/development/components/components/{05-channel-information.md → 06-channel-information.md} +0 -0
  158. /package/dist/docs/development/components/components/{06-design.md → 07-design.md} +0 -0
  159. /package/dist/docs/development/components/components/{07-entitymap.md → 08-entitymap.md} +0 -0
  160. /package/dist/docs/development/components/components/{08-flow.md → 09-flow.md} +0 -0
  161. /package/dist/docs/development/components/components/{09-link.md → 10-link.md} +0 -0
  162. /package/dist/docs/development/components/components/{10-mermaid-file-loader.md → 11-mermaid-file-loader.md} +0 -0
  163. /package/dist/docs/development/components/components/{11-message-table.md → 12-message-table.md} +0 -0
  164. /package/dist/docs/development/components/components/{12-nodegraph.md → 13-nodegraph.md} +0 -0
  165. /package/dist/docs/development/components/components/{13-openapi.md → 14-openapi.md} +0 -0
  166. /package/dist/docs/development/components/components/{14-prompt.md → 15-prompt.md} +0 -0
  167. /package/dist/docs/development/components/components/{15-remote-schema.md → 16-remote-schema.md} +0 -0
  168. /package/dist/docs/development/components/components/{16-resource-group-table.md → 17-resource-group-table.md} +0 -0
  169. /package/dist/docs/development/components/components/{17-resource-link.md → 18-resource-link.md} +0 -0
  170. /package/dist/docs/development/components/components/{18-schema.md → 19-schema.md} +0 -0
  171. /package/dist/docs/development/components/components/{19-schema-viewer.md → 20-schema-viewer.md} +0 -0
  172. /package/dist/docs/development/components/components/{20-steps.md → 21-steps.md} +0 -0
  173. /package/dist/docs/development/components/components/{21-tabs.md → 22-tabs.md} +0 -0
  174. /package/dist/docs/development/components/components/{22-tiles.md → 23-tiles.md} +0 -0
  175. /package/dist/docs/development/components/components/{23-visibility.md → 24-visibility.md} +0 -0
@@ -0,0 +1,11 @@
1
+ {
2
+ "label": "Agents",
3
+ "position": 4,
4
+ "collapsible": true,
5
+ "collapsed": true,
6
+ "link": {
7
+ "type": "generated-index",
8
+ "slug": "/agents",
9
+ "description": "A collection of guides to help you understand agents and how they work with EventCatalog."
10
+ }
11
+ }
@@ -0,0 +1,122 @@
1
+ ---
2
+ keywords:
3
+ - EventCatalog agents
4
+ - agent messages
5
+ - sends receives
6
+ sidebar_label: Messages
7
+ title: Adding messages to agents
8
+ description: Connecting agents to the messages they produce and consume.
9
+ ---
10
+
11
+ import AddedIn from '@site/src/components/MDX/AddedIn';
12
+
13
+ <AddedIn version="3.41.0" />
14
+
15
+ An agent can **receive** messages (events, commands, or queries) that trigger its reasoning, and **send** messages as a result of its actions.
16
+
17
+ Connecting agents to messages keeps the full event topology visible in the visualiser and lets your team trace which agents react to which events.
18
+
19
+ ![Agent visualiser showing received events, connected services, and data stores](../img/agent-consuming-messages.png)
20
+
21
+ ## Adding messages to your agent
22
+
23
+ To add messages to an agent you need to define them in either the **sends** or **receives** array within your agent frontmatter API.
24
+
25
+ You need to add the `id` of the message and optionally the `version` of the message.
26
+
27
+ ```md title="/agents/FraudReviewAgent/index.mdx (example)"
28
+ ---
29
+ id: FraudReviewAgent
30
+ ... # other agent frontmatter
31
+ receives:
32
+ # id of the message this agent receives
33
+ - id: PaymentInitiated
34
+ # (optional) The version of the message you want to add.
35
+ # If no version is given the latest version of the message will be used.
36
+ version: 0.0.1
37
+ sends:
38
+ # id of the message this agent sends
39
+ - id: FraudCaseCreated
40
+ version: 0.0.1
41
+ ---
42
+
43
+ <!-- Markdown contents... -->
44
+
45
+ ```
46
+
47
+ The **receives** and **sends** fields in your agent tell EventCatalog which messages this agent either consumes or publishes.
48
+
49
+ :::info The power of versioning
50
+ When you define your messages for your agent you can define the version of them too. This can be powerful if you have multiple versions of your events, commands or queries. Example could be an event raised by another team — you can pin the exact version your agent reasons over so a future change doesn't silently alter its behaviour.
51
+ :::
52
+
53
+ ### Routing messages through channels
54
+
55
+ You can also route your messages through channels. Examples of these could be your brokers, queues, topics, etc.
56
+
57
+ To do this you can use the `to` and `from` fields in your agent frontmatter.
58
+
59
+ This example shows:
60
+ - the `FraudReviewAgent` sending a `FraudCaseCreated` message to the `fraud.events` channel.
61
+ - the `FraudReviewAgent` consuming a `PaymentInitiated` message from the `payments.events` channel.
62
+
63
+ ```md title="/agents/FraudReviewAgent/index.mdx (example)"
64
+ ---
65
+ id: FraudReviewAgent
66
+ ... # other agent frontmatter
67
+
68
+ # Agent sends a message called FraudCaseCreated
69
+ # This message is published to the fraud.events channel (e.g broker)
70
+ sends:
71
+ - id: FraudCaseCreated
72
+ to:
73
+ - id: fraud.events
74
+
75
+ # Agent consumes a message called PaymentInitiated
76
+ # This message is consumed from the payments.events channel (e.g queue)
77
+ receives:
78
+ - id: PaymentInitiated
79
+ from:
80
+ - id: payments.events
81
+ ---
82
+ ```
83
+
84
+ You can read more about routing messages through channels in the [routing messages through channels guide](/docs/development/guides/channels/introduction).
85
+
86
+ ### Using semver versioning
87
+
88
+ <AddedIn version="2.4.0" />
89
+
90
+ You can use [semver](https://semver.org/) syntax when referencing your messages in your agents.
91
+
92
+ ```md title="/agents/FraudReviewAgent/index.mdx (example)"
93
+ ---
94
+ id: FraudReviewAgent
95
+ ... # other agent frontmatter
96
+ receives:
97
+ # Agent receives a message called RiskScoreCalculated
98
+ # The latest minor/patch version of this event will be used
99
+ - id: RiskScoreCalculated
100
+ version: 1.x.x
101
+ sends:
102
+ # Agent sends a message called FraudCaseCreated
103
+ # This pulls the latest patch version of FraudCaseCreated
104
+ - id: FraudCaseCreated
105
+ version: 2.0.x
106
+ # Agent sends a message called FraudEscalated
107
+ # This pulls the latest minor/patch version of FraudEscalated
108
+ - id: FraudEscalated
109
+ version: >1.0.1
110
+ ---
111
+
112
+ <!-- Markdown contents... -->
113
+
114
+ ```
115
+
116
+ Although it's recommended to link to a version of a message it is now optional. If no version is given **latest** is used by default.
117
+
118
+ ### Visualizing messages within an agent
119
+
120
+ When messages get added within your agents EventCatalog will visualize this for you either using the `NodeGraph` component or through the visualizer.
121
+
122
+ ![Agent node graph showing sends and receives connections](../img/agent-visualizer.png)
@@ -0,0 +1,62 @@
1
+ ---
2
+ keywords:
3
+ - EventCatalog agents
4
+ - agent data stores
5
+ - writesTo readsFrom
6
+ sidebar_label: Data stores
7
+ title: Adding data stores to agents
8
+ description: Document the data stores an agent reads from or writes to.
9
+ ---
10
+
11
+ import AddedIn from '@site/src/components/MDX/AddedIn';
12
+
13
+ <AddedIn version="3.41.0" />
14
+
15
+ [Data stores](/docs/development/guides/data/introduction) are containers that hold data in your architecture — databases, caches, object stores, search indexes, and so on. Agents can read from and write to these containers, and documenting those relationships keeps the full data-access picture visible in the visualiser.
16
+
17
+ ## Specify read/write relationships
18
+
19
+ Add `readsFrom` or `writesTo` arrays to your agent's frontmatter. Provide the `id` of the data store and optionally its `version`.
20
+
21
+ ```md title="/agents/FraudReviewAgent/index.mdx (example)"
22
+ ---
23
+ id: FraudReviewAgent
24
+ version: 0.0.1
25
+ readsFrom:
26
+ - id: fraud-analytics-db
27
+ - id: ml-model-store
28
+ version: 2.0.0
29
+ ---
30
+ ```
31
+
32
+ ```md title="/agents/InventoryRebalancingAgent/index.mdx (example)"
33
+ ---
34
+ id: InventoryRebalancingAgent
35
+ version: 0.0.1
36
+ readsFrom:
37
+ - id: inventory-readmodel
38
+ - id: inventory-db
39
+ writesTo:
40
+ - id: rebalancing-audit-log
41
+ ---
42
+ ```
43
+
44
+ If no version is provided, EventCatalog uses the latest version of the data store.
45
+
46
+ ## Visualize data stores
47
+
48
+ When data stores are connected to an agent, EventCatalog visualizes the read/write relationships — either via the `<NodeGraph />` component on the agent page or through the full-screen visualiser.
49
+
50
+ ![Agent visualiser showing data store nodes connected with reads and writes](../img/agent-consuming-messages.png)
51
+
52
+ You can also control the **Containers** section in the agent's sidebar using `detailsPanel`:
53
+
54
+ ```md title="/agents/FraudReviewAgent/index.mdx (example)"
55
+ ---
56
+ id: FraudReviewAgent
57
+ version: 0.0.1
58
+ detailsPanel:
59
+ containers:
60
+ visible: false
61
+ ---
62
+ ```
@@ -0,0 +1,10 @@
1
+ {
2
+ "label": "Adding to agents",
3
+ "position": 7,
4
+ "collapsible": true,
5
+ "collapsed": true,
6
+ "link": {
7
+ "type": "generated-index",
8
+ "slug": "/adding-to-agents"
9
+ }
10
+ }
@@ -0,0 +1,67 @@
1
+ ---
2
+ sidebar_position: 1
3
+ keywords:
4
+ - EventCatalog
5
+ - agents
6
+ - owners
7
+ sidebar_label: Owners
8
+ title: Adding agent owners
9
+ description: Adding owners to agents with EventCatalog.
10
+ ---
11
+
12
+ import AddedIn from '@site/src/components/MDX/AddedIn';
13
+
14
+ <AddedIn version="3.41.0" />
15
+
16
+ Owners in EventCatalog are either **users** or **teams** and are optional. Assigning owners to an agent makes it clear who is responsible for keeping it up to date, responding to incidents, and approving model upgrades.
17
+
18
+ ## Add owners using frontmatter
19
+
20
+ Add the `id` of any user or team to the `owners` array in your agent's frontmatter:
21
+
22
+ ```md title="/agents/FraudReviewAgent/index.mdx (example)"
23
+ ---
24
+ id: FraudReviewAgent
25
+ version: 0.0.1
26
+ owners:
27
+ - dboyne # a user id
28
+ - full-stack # a team id
29
+ ---
30
+ ```
31
+
32
+ :::tip Creating users and teams
33
+ EventCatalog gives you the ability to create users and teams. You can read the documentation to get started.
34
+ :::
35
+
36
+ ## Show owned agents on a team page
37
+
38
+ <AddedIn version="3.41.0" />
39
+
40
+ Teams and users gained an `ownedAgents` array alongside `ownedServices`. Add agent references to a team file to surface owned agents directly on the team's catalog page.
41
+
42
+ ```md title="/teams/full-stack.mdx (example)"
43
+ ---
44
+ id: full-stack
45
+ name: Full Stack Team
46
+ ownedAgents:
47
+ - id: FraudReviewAgent
48
+ version: 0.0.1
49
+ - id: OrderSupportAgent
50
+ ownedServices:
51
+ - id: PaymentService
52
+ version: 0.0.1
53
+ ---
54
+ ```
55
+
56
+ The same field is available on user files:
57
+
58
+ ```md title="/users/dboyne.mdx (example)"
59
+ ---
60
+ id: dboyne
61
+ name: David Boyne
62
+ ownedAgents:
63
+ - id: InventoryRebalancingAgent
64
+ ---
65
+ ```
66
+
67
+ If no `version` is provided, EventCatalog uses the latest version of the agent.
@@ -0,0 +1,11 @@
1
+ {
2
+ "label": "Ownership",
3
+ "position": 6,
4
+ "collapsible": true,
5
+ "collapsed": true,
6
+ "link": {
7
+ "type": "generated-index",
8
+ "slug": "/agents-ownership",
9
+ "description": "A collection of guides to help you manage ownership of agents in EventCatalog."
10
+ }
11
+ }
@@ -0,0 +1,48 @@
1
+ ---
2
+ keywords:
3
+ - versioning
4
+ - agents
5
+ sidebar_label: Versioning
6
+ title: Versioning
7
+ description: Learn how to version agents in EventCatalog.
8
+ ---
9
+
10
+ import AddedIn from '@site/src/components/MDX/AddedIn';
11
+
12
+ <AddedIn version="3.41.0" />
13
+
14
+ All content in EventCatalog can be versioned. Versioning an agent lets you keep a historic snapshot whenever the agent's model, tools, or message connections change in a meaningful way.
15
+
16
+ ## Version an agent
17
+
18
+ 1. Create a `/versioned` directory inside your agent folder if one does not exist yet.
19
+ 1. Create a new folder with the version number you are archiving.
20
+ - Example: `/agents/FraudReviewAgent/versioned/0.0.1`
21
+ 1. Copy `index.mdx` (and any other files) into that folder.
22
+ - Example: `/agents/FraudReviewAgent/versioned/0.0.1/index.mdx`
23
+ - The `version` inside this file should match `0.0.1`.
24
+ 1. Bump the `version` in the root `index.mdx` to the next release.
25
+ - Example: change `version: 0.0.1` to `version: 0.0.2` in `/agents/FraudReviewAgent/index.mdx`.
26
+
27
+ ```
28
+ agents/
29
+ FraudReviewAgent/
30
+ index.mdx ← current version (0.0.2)
31
+ versioned/
32
+ 0.0.1/
33
+ index.mdx ← archived snapshot
34
+ ```
35
+
36
+ ## Navigate versions
37
+
38
+ EventCatalog creates version links automatically on every agent page. Users can also navigate directly by adding the version to the URL (e.g. `/docs/agents/FraudReviewAgent/0.0.1` loads the `0.0.1` snapshot).
39
+
40
+ ## When to version
41
+
42
+ Consider creating a new version when you:
43
+
44
+ - Upgrade the underlying LLM to a new model or snapshot.
45
+ - Add or remove a tool that changes what the agent can reach.
46
+ - Change the messages the agent consumes or produces.
47
+
48
+ Smaller documentation edits (fixing typos, improving descriptions) do not need a new version.
@@ -0,0 +1,40 @@
1
+ ---
2
+ keywords:
3
+ - changelog
4
+ - agents
5
+ sidebar_label: Adding a changelog
6
+ title: Agent changelogs
7
+ description: Adding changelogs to agents in EventCatalog.
8
+ ---
9
+
10
+ import AddedIn from '@site/src/components/MDX/AddedIn';
11
+
12
+ <AddedIn version="3.41.0" />
13
+
14
+ EventCatalog supports changelogs for agents. When you version an agent you can attach a `changelog.mdx` to capture what changed and why.
15
+
16
+ ## Add a changelog
17
+
18
+ 1. Add a `changelog.mdx` to your agent folder (or a versioned snapshot):
19
+ - Current version: `/agents/{Agent}/changelog.mdx`
20
+ - Versioned snapshot: `/agents/{Agent}/versioned/0.0.1/changelog.mdx`
21
+
22
+ ```md title="/agents/FraudReviewAgent/changelog.mdx (example)"
23
+ ---
24
+ createdAt: 2025-06-01
25
+ badges:
26
+ - content: Model upgrade
27
+ backgroundColor: purple
28
+ textColor: purple
29
+ ---
30
+
31
+ ### Upgraded to GPT-4.1
32
+
33
+ The agent now runs on `gpt-4.1` (snapshot `2025-04-14`). Response latency for fraud signal explanations dropped by ~30% compared to the previous model. No changes to tools or message connections.
34
+ ```
35
+
36
+ Navigate to the changelog by clicking the **Changelog** button on the agent page, or visit `/docs/agents/{Agent}/{version}/changelog` directly.
37
+
38
+ ## Why add changelogs?
39
+
40
+ Changelogs give your team the context behind model upgrades, tool additions, and prompt changes. They are especially valuable for agents because behavior can shift when the underlying model changes even without a code deployment.
@@ -0,0 +1,41 @@
1
+ ---
2
+ keywords:
3
+ - EventCatalog
4
+ - agents
5
+ - deprecation
6
+ sidebar_label: Deprecating agents
7
+ title: Deprecating agents
8
+ description: Deprecating agents with EventCatalog.
9
+ ---
10
+
11
+ import AddedIn from '@site/src/components/MDX/AddedIn';
12
+
13
+ <AddedIn version="3.41.0" />
14
+
15
+ Any resource in EventCatalog can be deprecated. Deprecating an agent displays a banner on its page so consumers know it is no longer actively maintained.
16
+
17
+ ## Deprecate using frontmatter
18
+
19
+ Add the `deprecated` field to your agent's frontmatter:
20
+
21
+ ```md title="/agents/FraudReviewAgent/index.mdx (example)"
22
+ ---
23
+ id: FraudReviewAgent
24
+ version: 0.0.1
25
+
26
+ # Deprecated as an object (recommended — gives a date and reason)
27
+ deprecated:
28
+ date: 2025-09-01
29
+ message: |
30
+ This agent has been replaced by **FraudReviewAgentV2**, which uses the updated risk scoring pipeline.
31
+ Contact the [Payments team](mailto:payments@example.com) for migration guidance.
32
+
33
+ # Or deprecated as a simple boolean
34
+ deprecated: true
35
+ ---
36
+ ```
37
+
38
+ Using an object is recommended because it gives readers a date and a reason. The `date` can be in the past (already deprecated) or the future (will be deprecated).
39
+
40
+ - `deprecated.date` — Date in `YYYY-MM-DD` format.
41
+ - `deprecated.message` — Markdown string explaining why the agent is deprecated and what to use instead.
@@ -0,0 +1,11 @@
1
+ {
2
+ "label": "Versioning & lifecycle",
3
+ "position": 5,
4
+ "collapsible": true,
5
+ "collapsed": true,
6
+ "link": {
7
+ "type": "generated-index",
8
+ "slug": "/agents-versioning-and-lifecycle",
9
+ "description": "A collection of guides to help you version and manage the lifecycle of agents in EventCatalog."
10
+ }
11
+ }
@@ -88,3 +88,30 @@ When you view your domain in EventCatalog, the services will be visualized for y
88
88
 
89
89
  You can make as many changes as you want, but if you are adding/removing services you may want to consider versioning your domain. This allows you to keep historic changes, and let others understand why services are coming in/out of a particular domain.
90
90
 
91
+ ## Add agents to a domain
92
+
93
+ <AddedIn version="3.41.0" />
94
+
95
+ [Agents](/docs/development/guides/agents/introduction) can be attached to a domain the same way services can. Add an `agents` array to your domain's frontmatter:
96
+
97
+ ```md title="/domains/Payment/index.mdx (example)"
98
+ ---
99
+ id: Payment
100
+ name: Payment Domain
101
+ version: 0.0.1
102
+ services:
103
+ - id: PaymentService
104
+ version: 0.0.1
105
+ agents:
106
+ - id: FraudReviewAgent
107
+ version: 0.0.1
108
+ # version is optional — latest is used if omitted
109
+ - id: AnotherAgent
110
+ ---
111
+
112
+ <!-- Markdown content... -->
113
+
114
+ ```
115
+
116
+ EventCatalog will show the agents in the domain sidebar and include them in the domain visualiser alongside services.
117
+
@@ -64,6 +64,7 @@ next_steps:
64
64
  - [externalSystem](#externalsystem) — Represents an external system in your flow diagram
65
65
  - [message](#message) — Represents an event, command or query resource in EventCatalog
66
66
  - [service](#service) — Represents a service resource in EventCatalog
67
+ - [agent](#agent) — Represents an agent resource in EventCatalog (added in EventCatalog 3.41.0)
67
68
  - [flow](#flow) — Represents a flow in EventCatalog (added in EventCatalog 2.34.2)
68
69
  - [container](#container) — Represents a data store (container) resource in EventCatalog
69
70
  - [dataProduct](#dataproduct) — Represents a data product resource in EventCatalog
@@ -172,6 +173,35 @@ steps:
172
173
 
173
174
  ---
174
175
 
176
+ ### agent {#agent}
177
+
178
+ <AddedIn version="3.41.0" />
179
+
180
+ Represents and refers to an [agent](/docs/development/guides/agents/introduction) resource in EventCatalog. Agents render as purple/violet nodes in the visualiser so they are easy to distinguish from services. When a flow references an agent, the agent's page shows a back-link to the flow.
181
+
182
+ #### Agent properties
183
+
184
+ | Property | Type | Required | Description |
185
+ |----------|------|----------|-------------|
186
+ | `id` | `string` | **Yes** | The id of the agent in your catalog |
187
+ | `version` | `string` | No | The version to reference (defaults to `latest`) |
188
+
189
+ ```yml
190
+ steps:
191
+ - id: "fraud_review"
192
+ title: "Fraud Review Agent"
193
+ agent:
194
+ id: "FraudReviewAgent"
195
+ version: "0.0.1"
196
+ next_steps:
197
+ - id: "payment_approved"
198
+ label: "Approved"
199
+ - id: "payment_declined"
200
+ label: "Declined"
201
+ ```
202
+
203
+ ---
204
+
175
205
  ### flow
176
206
 
177
207
  <AddedIn version="2.34.2" />
@@ -114,7 +114,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
114
114
  var import_picocolors = __toESM(require("picocolors"), 1);
115
115
 
116
116
  // package.json
117
- var version = "3.40.2";
117
+ var version = "3.41.1";
118
118
 
119
119
  // src/constants.ts
120
120
  var VERSION = version;
@@ -238,6 +238,7 @@ async function raiseEvent(eventData) {
238
238
  // src/analytics/count-resources.js
239
239
  var import_glob = require("glob");
240
240
  var RESOURCE_PATTERNS = {
241
+ agents: ["**/agents/*/index.@(md|mdx)"],
241
242
  events: ["**/events/*/index.@(md|mdx)"],
242
243
  commands: ["**/commands/*/index.@(md|mdx)"],
243
244
  queries: ["**/queries/*/index.@(md|mdx)"],
@@ -284,6 +285,7 @@ var getFeatures = async (configFile) => {
284
285
  };
285
286
  var CLOUD_ANALYTICS_ENDPOINT = "https://api.ecingest.dev/v1/analytics/ingest";
286
287
  var toCloudResourceCounts = (counts) => ({
288
+ agents: counts.agents || 0,
287
289
  domains: counts.domains || 0,
288
290
  services: counts.services || 0,
289
291
  events: counts.events || 0,
@@ -356,6 +358,7 @@ var import_node_fs2 = __toESM(require("fs"), 1);
356
358
  // src/map-catalog-to-astro.js
357
359
  var import_node_path3 = __toESM(require("path"), 1);
358
360
  var COLLECTION_KEYS = [
361
+ "agents",
359
362
  "events",
360
363
  "commands",
361
364
  "services",
@@ -1323,6 +1326,7 @@ var import_node_path8 = __toESM(require("path"), 1);
1323
1326
  var import_glob4 = require("glob");
1324
1327
  var import_gray_matter4 = __toESM(require("gray-matter"), 1);
1325
1328
  var RESOURCE_COLLECTIONS = {
1329
+ agents: { docsPath: "agents", type: "Agent" },
1326
1330
  channels: { docsPath: "channels", type: "Channel" },
1327
1331
  commands: { docsPath: "commands", type: "Command" },
1328
1332
  containers: { docsPath: "containers", type: "Container" },
@@ -190,6 +190,7 @@ interface Config {
190
190
  };
191
191
  };
192
192
  dependencies?: {
193
+ agents?: ResourceDependency[];
193
194
  commands?: ResourceDependency[];
194
195
  events?: ResourceDependency[];
195
196
  services?: ResourceDependency[];
@@ -246,6 +247,9 @@ interface Config {
246
247
  events?: {
247
248
  tableConfiguration?: TableConfiguration;
248
249
  };
250
+ agents?: {
251
+ tableConfiguration?: TableConfiguration;
252
+ };
249
253
  services?: {
250
254
  tableConfiguration?: TableConfiguration;
251
255
  };
@@ -190,6 +190,7 @@ interface Config {
190
190
  };
191
191
  };
192
192
  dependencies?: {
193
+ agents?: ResourceDependency[];
193
194
  commands?: ResourceDependency[];
194
195
  events?: ResourceDependency[];
195
196
  services?: ResourceDependency[];
@@ -246,6 +247,9 @@ interface Config {
246
247
  events?: {
247
248
  tableConfiguration?: TableConfiguration;
248
249
  };
250
+ agents?: {
251
+ tableConfiguration?: TableConfiguration;
252
+ };
249
253
  services?: {
250
254
  tableConfiguration?: TableConfiguration;
251
255
  };
@@ -7,19 +7,19 @@ import {
7
7
  } from "./chunk-WAJIJEI3.js";
8
8
  import {
9
9
  buildSearchIndex
10
- } from "./chunk-D6IBLY3O.js";
10
+ } from "./chunk-QMORF42U.js";
11
11
  import {
12
12
  watch
13
- } from "./chunk-K3ZVEX2Y.js";
13
+ } from "./chunk-3H2RT3CM.js";
14
14
  import {
15
15
  log_build_default
16
- } from "./chunk-5FFRK3S5.js";
17
- import "./chunk-PWIB7GLR.js";
18
- import "./chunk-4UVFXLPI.js";
16
+ } from "./chunk-UGNBEYJJ.js";
17
+ import "./chunk-6C2H2YLW.js";
18
+ import "./chunk-3DVHEVHQ.js";
19
19
  import {
20
20
  catalogToAstro
21
- } from "./chunk-YDXB3BD2.js";
22
- import "./chunk-55D645EH.js";
21
+ } from "./chunk-O6KT4DPL.js";
22
+ import "./chunk-IR4IAKWS.js";
23
23
  import {
24
24
  getProjectOutDir,
25
25
  isAuthEnabled,
@@ -28,13 +28,13 @@ import {
28
28
  } from "./chunk-ULZYHF3V.js";
29
29
  import {
30
30
  generate
31
- } from "./chunk-B7LKNRMT.js";
31
+ } from "./chunk-Z5A2F2DN.js";
32
32
  import {
33
33
  logger
34
- } from "./chunk-D6UVZABG.js";
34
+ } from "./chunk-GNLFCESR.js";
35
35
  import {
36
36
  VERSION
37
- } from "./chunk-HSSCHCQA.js";
37
+ } from "./chunk-X5JM6SAH.js";
38
38
  import {
39
39
  getEventCatalogConfigFile,
40
40
  verifyRequiredFieldsAreInCatalogConfigFile
package/dist/generate.cjs CHANGED
@@ -78,7 +78,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
78
78
  var import_picocolors = __toESM(require("picocolors"), 1);
79
79
 
80
80
  // package.json
81
- var version = "3.40.2";
81
+ var version = "3.41.1";
82
82
 
83
83
  // src/constants.ts
84
84
  var VERSION = version;
package/dist/generate.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generate
3
- } from "./chunk-B7LKNRMT.js";
4
- import "./chunk-D6UVZABG.js";
5
- import "./chunk-HSSCHCQA.js";
3
+ } from "./chunk-Z5A2F2DN.js";
4
+ import "./chunk-GNLFCESR.js";
5
+ import "./chunk-X5JM6SAH.js";
6
6
  import "./chunk-5T63CXKU.js";
7
7
  export {
8
8
  generate
@@ -35,6 +35,7 @@ __export(map_catalog_to_astro_exports, {
35
35
  module.exports = __toCommonJS(map_catalog_to_astro_exports);
36
36
  var import_node_path = __toESM(require("path"), 1);
37
37
  var COLLECTION_KEYS = [
38
+ "agents",
38
39
  "events",
39
40
  "commands",
40
41
  "services",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mapCatalogToAstro
3
- } from "./chunk-55D645EH.js";
3
+ } from "./chunk-IR4IAKWS.js";
4
4
  export {
5
5
  mapCatalogToAstro
6
6
  };