@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.
- package/dist/__mocks__/astro-content.d.cts +1 -1
- package/dist/__mocks__/astro-content.d.ts +1 -1
- package/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/count-resources.cjs +1 -0
- package/dist/analytics/count-resources.js +1 -1
- package/dist/analytics/log-build.cjs +3 -1
- package/dist/analytics/log-build.js +4 -4
- package/dist/catalog-to-astro-content-directory.cjs +1 -0
- package/dist/catalog-to-astro-content-directory.js +2 -2
- package/dist/{chunk-4UVFXLPI.js → chunk-3DVHEVHQ.js} +1 -0
- package/dist/{chunk-K3ZVEX2Y.js → chunk-3H2RT3CM.js} +1 -1
- package/dist/{chunk-PWIB7GLR.js → chunk-6C2H2YLW.js} +1 -1
- package/dist/{chunk-D6UVZABG.js → chunk-GNLFCESR.js} +1 -1
- package/dist/{chunk-55D645EH.js → chunk-IR4IAKWS.js} +1 -0
- package/dist/{chunk-YDXB3BD2.js → chunk-O6KT4DPL.js} +1 -1
- package/dist/{chunk-D6IBLY3O.js → chunk-QMORF42U.js} +1 -0
- package/dist/{chunk-5FFRK3S5.js → chunk-UGNBEYJJ.js} +3 -2
- package/dist/{chunk-HSSCHCQA.js → chunk-X5JM6SAH.js} +1 -1
- package/dist/{chunk-B7LKNRMT.js → chunk-Z5A2F2DN.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/docs/development/components/components/04-agent-tools.md +43 -0
- package/dist/docs/development/guides/agents/01-introduction.md +43 -0
- package/dist/docs/development/guides/agents/02-adding-agents.md +152 -0
- package/dist/docs/development/guides/agents/03-adding-tools.md +92 -0
- package/dist/docs/development/guides/agents/04-model-metadata.md +96 -0
- package/dist/docs/development/guides/agents/_category_.json +11 -0
- package/dist/docs/development/guides/agents/adding-to-agents/01-messages.md +122 -0
- package/dist/docs/development/guides/agents/adding-to-agents/02-datastores.md +62 -0
- package/dist/docs/development/guides/agents/adding-to-agents/_category_.json +10 -0
- package/dist/docs/development/guides/agents/ownership/01-owners.md +67 -0
- package/dist/docs/development/guides/agents/ownership/_category_.json +11 -0
- package/dist/docs/development/guides/agents/versioning-and-lifecycle/01-versioning.md +48 -0
- package/dist/docs/development/guides/agents/versioning-and-lifecycle/02-changelog.md +40 -0
- package/dist/docs/development/guides/agents/versioning-and-lifecycle/03-deprecating.md +41 -0
- package/dist/docs/development/guides/agents/versioning-and-lifecycle/_category_.json +11 -0
- package/dist/docs/development/guides/domains/02-creating-domains/03-adding-services-to-domains.md +27 -0
- package/dist/docs/development/guides/flows/03-flow-nodes.md +30 -0
- package/dist/eventcatalog.cjs +5 -1
- package/dist/eventcatalog.config.d.cts +4 -0
- package/dist/eventcatalog.config.d.ts +4 -0
- package/dist/eventcatalog.js +10 -10
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/map-catalog-to-astro.cjs +1 -0
- package/dist/map-catalog-to-astro.js +1 -1
- package/dist/search-indexer.cjs +1 -0
- package/dist/search-indexer.js +1 -1
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/dist/watcher.cjs +1 -0
- package/dist/watcher.js +2 -2
- package/eventcatalog/public/agents/anthropic-dark.svg +1 -0
- package/eventcatalog/public/agents/anthropic-light.svg +1 -0
- package/eventcatalog/public/agents/openai-dark.svg +1 -0
- package/eventcatalog/public/agents/openai-light.svg +1 -0
- package/eventcatalog/public/agents/openai.svg +1 -0
- package/eventcatalog/public/icons/agent/anthropic-dark.svg +1 -0
- package/eventcatalog/public/icons/agent/anthropic-light.svg +1 -0
- package/eventcatalog/public/icons/agent/anthropic.svg +1 -0
- package/eventcatalog/public/icons/agent/gemini.svg +1 -0
- package/eventcatalog/public/icons/agent/openai-dark.svg +1 -0
- package/eventcatalog/public/icons/agent/openai-light.svg +1 -0
- package/eventcatalog/public/icons/agent/openai.svg +1 -0
- package/eventcatalog/public/icons/agents/anthropic-dark.svg +1 -0
- package/eventcatalog/public/icons/agents/anthropic-light.svg +1 -0
- package/eventcatalog/public/icons/agents/anthropic.svg +1 -0
- package/eventcatalog/public/icons/agents/gemini.svg +1 -0
- package/eventcatalog/public/icons/agents/openai-dark.svg +1 -0
- package/eventcatalog/public/icons/agents/openai-light.svg +1 -0
- package/eventcatalog/public/icons/agents/openai.svg +1 -0
- package/eventcatalog/public/icons/protocols/mcp-dark.svg +1 -0
- package/eventcatalog/public/icons/protocols/mcp-light.svg +1 -0
- package/eventcatalog/public/icons/protocols/mcp.svg +1 -0
- package/eventcatalog/public/icons/tools/datadog.svg +1 -0
- package/eventcatalog/public/icons/tools/github.svg +1 -0
- package/eventcatalog/public/icons/tools/hubspot.svg +1 -0
- package/eventcatalog/public/icons/tools/slack.svg +1 -0
- package/eventcatalog/public/icons/tools/snowflake.svg +1 -0
- package/eventcatalog/public/icons/tools/zendesk.svg +1 -0
- package/eventcatalog/src/components/Badge.astro +41 -2
- package/eventcatalog/src/components/Grids/MessageGrid.tsx +16 -11
- package/eventcatalog/src/components/MDX/AgentTools/AgentTools.astro +132 -0
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +2 -0
- package/eventcatalog/src/components/MDX/ResourceRef/ResourceRef.astro +8 -3
- package/eventcatalog/src/components/MDX/components.tsx +2 -0
- package/eventcatalog/src/components/Search/SearchModal.tsx +3 -0
- package/eventcatalog/src/components/Search/search-utils.ts +2 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +3 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +3 -0
- package/eventcatalog/src/components/Tables/Discover/DiscoverTable.tsx +165 -0
- package/eventcatalog/src/components/Tables/Discover/columns.tsx +132 -7
- package/eventcatalog/src/components/Tables/Table.tsx +2 -0
- package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +17 -0
- package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +17 -0
- package/eventcatalog/src/content.config.ts +83 -25
- package/eventcatalog/src/enterprise/collections/resource-docs-utils.ts +7 -4
- package/eventcatalog/src/enterprise/mcp/mcp-server.ts +9 -2
- package/eventcatalog/src/enterprise/tools/catalog-tools.ts +62 -28
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +13 -1
- package/eventcatalog/src/pages/_index.astro +1 -3
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +5 -5
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +5 -2
- package/eventcatalog/src/pages/directory/[type]/index.astro +2 -0
- package/eventcatalog/src/pages/discover/[type]/_index.data.ts +5 -0
- package/eventcatalog/src/pages/discover/[type]/index.astro +69 -23
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId].mdx.ts +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +1 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +47 -2
- package/eventcatalog/src/pages/docs/[type]/[id]/[version].md.ts +2 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version].mdx.ts +2 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +1 -0
- package/eventcatalog/src/pages/docs/llm/llms-full.txt.ts +3 -0
- package/eventcatalog/src/pages/docs/llm/llms.txt.ts +3 -0
- package/eventcatalog/src/pages/docs/teams/[id]/index.astro +24 -1
- package/eventcatalog/src/pages/docs/users/[id]/index.astro +24 -1
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +2 -1
- package/eventcatalog/src/stores/sidebar-store/builders/agent.ts +141 -0
- package/eventcatalog/src/stores/sidebar-store/builders/domain.ts +9 -0
- package/eventcatalog/src/stores/sidebar-store/builders/flow.ts +19 -0
- package/eventcatalog/src/stores/sidebar-store/builders/message.ts +8 -2
- package/eventcatalog/src/stores/sidebar-store/builders/shared.ts +10 -7
- package/eventcatalog/src/stores/sidebar-store/state.ts +121 -2
- package/eventcatalog/src/types/index.ts +3 -1
- package/eventcatalog/src/utils/collection-colors.ts +5 -0
- package/eventcatalog/src/utils/collections/agents.ts +163 -0
- package/eventcatalog/src/utils/collections/commands.ts +3 -2
- package/eventcatalog/src/utils/collections/domains.ts +94 -15
- package/eventcatalog/src/utils/collections/events.ts +3 -2
- package/eventcatalog/src/utils/collections/flows.ts +20 -3
- package/eventcatalog/src/utils/collections/icons.ts +3 -1
- package/eventcatalog/src/utils/collections/messages.ts +35 -5
- package/eventcatalog/src/utils/collections/queries.ts +3 -2
- package/eventcatalog/src/utils/collections/schemas.ts +4 -4
- package/eventcatalog/src/utils/collections/services.ts +1 -1
- package/eventcatalog/src/utils/collections/teams.ts +5 -1
- package/eventcatalog/src/utils/collections/types.ts +1 -0
- package/eventcatalog/src/utils/collections/users.ts +5 -1
- package/eventcatalog/src/utils/collections/util.ts +2 -0
- package/eventcatalog/src/utils/eventcatalog-config/catalog.ts +1 -0
- package/eventcatalog/src/utils/llms.ts +1 -1
- package/eventcatalog/src/utils/node-graphs/agents-node-graph.ts +4 -0
- package/eventcatalog/src/utils/node-graphs/container-node-graph.ts +2 -2
- package/eventcatalog/src/utils/node-graphs/domains-node-graph.ts +42 -9
- package/eventcatalog/src/utils/node-graphs/export-mermaid.ts +20 -0
- package/eventcatalog/src/utils/node-graphs/export-node-graph.ts +4 -0
- package/eventcatalog/src/utils/node-graphs/flows-node-graph.ts +22 -1
- package/eventcatalog/src/utils/node-graphs/message-node-graph.ts +175 -98
- package/eventcatalog/src/utils/node-graphs/services-node-graph.ts +117 -23
- package/eventcatalog/src/utils/node-graphs/utils/utils.ts +30 -0
- package/eventcatalog/src/utils/page-loaders/page-data-loader.ts +2 -0
- package/eventcatalog/src/utils/resource-reference-colors.ts +1 -0
- package/package.json +4 -4
- /package/dist/docs/development/components/components/{04-attachments.md → 05-attachments.md} +0 -0
- /package/dist/docs/development/components/components/{05-channel-information.md → 06-channel-information.md} +0 -0
- /package/dist/docs/development/components/components/{06-design.md → 07-design.md} +0 -0
- /package/dist/docs/development/components/components/{07-entitymap.md → 08-entitymap.md} +0 -0
- /package/dist/docs/development/components/components/{08-flow.md → 09-flow.md} +0 -0
- /package/dist/docs/development/components/components/{09-link.md → 10-link.md} +0 -0
- /package/dist/docs/development/components/components/{10-mermaid-file-loader.md → 11-mermaid-file-loader.md} +0 -0
- /package/dist/docs/development/components/components/{11-message-table.md → 12-message-table.md} +0 -0
- /package/dist/docs/development/components/components/{12-nodegraph.md → 13-nodegraph.md} +0 -0
- /package/dist/docs/development/components/components/{13-openapi.md → 14-openapi.md} +0 -0
- /package/dist/docs/development/components/components/{14-prompt.md → 15-prompt.md} +0 -0
- /package/dist/docs/development/components/components/{15-remote-schema.md → 16-remote-schema.md} +0 -0
- /package/dist/docs/development/components/components/{16-resource-group-table.md → 17-resource-group-table.md} +0 -0
- /package/dist/docs/development/components/components/{17-resource-link.md → 18-resource-link.md} +0 -0
- /package/dist/docs/development/components/components/{18-schema.md → 19-schema.md} +0 -0
- /package/dist/docs/development/components/components/{19-schema-viewer.md → 20-schema-viewer.md} +0 -0
- /package/dist/docs/development/components/components/{20-steps.md → 21-steps.md} +0 -0
- /package/dist/docs/development/components/components/{21-tabs.md → 22-tabs.md} +0 -0
- /package/dist/docs/development/components/components/{22-tiles.md → 23-tiles.md} +0 -0
- /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
|
+

|
|
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
|
+

|
|
@@ -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
|
+

|
|
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,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
|
+
}
|
package/dist/docs/development/guides/domains/02-creating-domains/03-adding-services-to-domains.md
CHANGED
|
@@ -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" />
|
package/dist/eventcatalog.cjs
CHANGED
|
@@ -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.
|
|
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
|
};
|
package/dist/eventcatalog.js
CHANGED
|
@@ -7,19 +7,19 @@ import {
|
|
|
7
7
|
} from "./chunk-WAJIJEI3.js";
|
|
8
8
|
import {
|
|
9
9
|
buildSearchIndex
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QMORF42U.js";
|
|
11
11
|
import {
|
|
12
12
|
watch
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-3H2RT3CM.js";
|
|
14
14
|
import {
|
|
15
15
|
log_build_default
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-UGNBEYJJ.js";
|
|
17
|
+
import "./chunk-6C2H2YLW.js";
|
|
18
|
+
import "./chunk-3DVHEVHQ.js";
|
|
19
19
|
import {
|
|
20
20
|
catalogToAstro
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
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-
|
|
31
|
+
} from "./chunk-Z5A2F2DN.js";
|
|
32
32
|
import {
|
|
33
33
|
logger
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-GNLFCESR.js";
|
|
35
35
|
import {
|
|
36
36
|
VERSION
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-X5JM6SAH.js";
|
|
38
38
|
import {
|
|
39
39
|
getEventCatalogConfigFile,
|
|
40
40
|
verifyRequiredFieldsAreInCatalogConfigFile
|
package/dist/generate.cjs
CHANGED
package/dist/generate.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generate
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
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
|