@eventcatalog/core 5.0.0-beta.5 → 5.0.0-beta.6
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/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +1 -1
- package/dist/analytics/log-build.js +4 -4
- package/dist/{chunk-43AEF3JE.js → chunk-56CD2NH6.js} +1 -1
- package/dist/{chunk-YYMBYOQR.js → chunk-DE3QHVJP.js} +1 -1
- package/dist/{chunk-XQXMSQA5.js → chunk-L2IRFOE7.js} +1 -1
- package/dist/{chunk-SHHO3JJI.js → chunk-QBP3BBSV.js} +1 -1
- package/dist/{chunk-EBDTVZDW.js → chunk-XMPFHLK4.js} +4 -4
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +1 -1
- package/dist/eventcatalog.js +11 -11
- package/dist/federation/federate.js +4 -4
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/runtime-dependencies/@hocuspocus__provider.mjs +3 -0
- package/dist/runtime-dependencies/@hocuspocus__server.mjs +3 -0
- package/dist/runtime-dependencies/@mcp-b__webmcp-local-relay.mjs +3 -0
- package/dist/runtime-dependencies/@mcp-b__webmcp-polyfill.mjs +3 -0
- package/dist/runtime-dependencies/manifest.json +8 -0
- package/dist/runtime-dependencies/react-hotkeys-hook.mjs +3 -0
- package/dist/runtime-dependencies/y-protocols.mjs +3 -0
- package/dist/runtime-dependencies/y-protocols__awareness.mjs +3 -0
- package/dist/runtime-dependencies/yjs.mjs +3 -0
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/eventcatalog/astro.config.mjs +2 -0
- package/eventcatalog/integrations/studio-server.mjs +17 -0
- package/eventcatalog/src/features/integrations/eventcatalog-features.ts +20 -1
- package/eventcatalog/src/features/mcp/apps/canvas/shared.ts +39 -0
- package/eventcatalog/src/features/mcp/apps/canvas/styles.css +22 -0
- package/eventcatalog/src/features/mcp/apps/canvas/view.tsx +269 -0
- package/eventcatalog/src/features/mcp/apps/generated/canvas.html +209 -0
- package/eventcatalog/src/features/mcp/apps/generated/viewer.html +2 -2
- package/eventcatalog/src/features/mcp/apps/shared/app-view.tsx +2 -1
- package/eventcatalog/src/features/mcp/mcp-apps.ts +6 -3
- package/eventcatalog/src/features/mcp/mcp-server.ts +17 -4
- package/eventcatalog/src/features/studio/agent-choreography.ts +378 -0
- package/eventcatalog/src/features/studio/canvas-actions.ts +287 -0
- package/eventcatalog/src/features/studio/canvas-doc.ts +280 -0
- package/eventcatalog/src/features/studio/catalog-resources.ts +152 -0
- package/eventcatalog/src/features/studio/catalog.ts +171 -0
- package/eventcatalog/src/features/studio/components/CanvasControls.tsx +153 -0
- package/eventcatalog/src/features/studio/components/CanvasHeader.tsx +332 -0
- package/eventcatalog/src/features/studio/components/Comments.tsx +455 -0
- package/eventcatalog/src/features/studio/components/ConnectAgentDialog.tsx +217 -0
- package/eventcatalog/src/features/studio/components/ContainerChooser.tsx +145 -0
- package/eventcatalog/src/features/studio/components/JoinForm.tsx +58 -0
- package/eventcatalog/src/features/studio/components/LeftPanel.tsx +218 -0
- package/eventcatalog/src/features/studio/components/Presence.tsx +284 -0
- package/eventcatalog/src/features/studio/components/PropertiesPanel.tsx +75 -0
- package/eventcatalog/src/features/studio/components/StudioDesigner.tsx +760 -0
- package/eventcatalog/src/features/studio/components/canvas-nodes.tsx +79 -0
- package/eventcatalog/src/features/studio/components/icons.ts +48 -0
- package/eventcatalog/src/features/studio/components/status.ts +22 -0
- package/eventcatalog/src/features/studio/edges.ts +54 -0
- package/eventcatalog/src/features/studio/flow-state.ts +92 -0
- package/eventcatalog/src/features/studio/grouping.ts +133 -0
- package/eventcatalog/src/features/studio/hooks/presence-sender.ts +46 -0
- package/eventcatalog/src/features/studio/hooks/presence-store.ts +115 -0
- package/eventcatalog/src/features/studio/hooks/use-canvas-webmcp.ts +337 -0
- package/eventcatalog/src/features/studio/hooks/use-comments.ts +47 -0
- package/eventcatalog/src/features/studio/hooks/use-follow-camera.ts +99 -0
- package/eventcatalog/src/features/studio/hooks/use-studio-flow.ts +423 -0
- package/eventcatalog/src/features/studio/layout.ts +39 -0
- package/eventcatalog/src/features/studio/levels.ts +216 -0
- package/eventcatalog/src/features/studio/node-types.ts +173 -0
- package/eventcatalog/src/features/studio/pages/[id].astro +38 -0
- package/eventcatalog/src/features/studio/pages/index.astro +8 -0
- package/eventcatalog/src/features/studio/pages/webmcp-relay.ts +27 -0
- package/eventcatalog/src/features/studio/placement.ts +197 -0
- package/eventcatalog/src/features/studio/server/canvas-mcp.ts +475 -0
- package/eventcatalog/src/features/studio/server/runtime.ts +215 -0
- package/eventcatalog/src/features/studio/server/tool-icons.ts +30 -0
- package/eventcatalog/src/features/studio/studio.css +89 -0
- package/eventcatalog/src/features/studio/tool-sync.ts +75 -0
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +9 -2
- package/eventcatalog/src/utils/feature.ts +4 -0
- package/package.json +9 -2
- package/eventcatalog/public/studio-bg.png +0 -0
- package/eventcatalog/src/components/Studio/StudioPageModal.tsx +0 -150
- package/eventcatalog/src/pages/studio.astro +0 -316
- package/dist/{chunk-ZEY2XUJN.js → chunk-AYNZXUB5.js} +7 -7
|
@@ -176,7 +176,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
176
176
|
var import_os = __toESM(require("os"), 1);
|
|
177
177
|
|
|
178
178
|
// package.json
|
|
179
|
-
var version = "5.0.0-beta.
|
|
179
|
+
var version = "5.0.0-beta.6";
|
|
180
180
|
|
|
181
181
|
// src/constants.ts
|
|
182
182
|
var VERSION = version;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
log_build_default
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-SHHO3JJI.js";
|
|
5
|
-
import "../chunk-ZAZHAVKB.js";
|
|
3
|
+
} from "../chunk-XMPFHLK4.js";
|
|
6
4
|
import "../chunk-PIYJM642.js";
|
|
7
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-ZAZHAVKB.js";
|
|
6
|
+
import "../chunk-QBP3BBSV.js";
|
|
7
|
+
import "../chunk-L2IRFOE7.js";
|
|
8
8
|
import "../chunk-RFIXKATC.js";
|
|
9
9
|
export {
|
|
10
10
|
log_build_default as default
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
getLicenseAnalytics
|
|
3
|
+
} from "./chunk-PIYJM642.js";
|
|
4
4
|
import {
|
|
5
5
|
countResources,
|
|
6
6
|
hashCatalogContent,
|
|
7
7
|
serializeCounts
|
|
8
8
|
} from "./chunk-ZAZHAVKB.js";
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
} from "./chunk-
|
|
10
|
+
raiseEvent
|
|
11
|
+
} from "./chunk-QBP3BBSV.js";
|
|
12
12
|
import {
|
|
13
13
|
getEventCatalogConfigFile,
|
|
14
14
|
verifyRequiredFieldsAreInCatalogConfigFile
|
package/dist/constants.cjs
CHANGED
package/dist/constants.js
CHANGED
package/dist/eventcatalog.cjs
CHANGED
|
@@ -181,7 +181,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
181
181
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
182
182
|
|
|
183
183
|
// package.json
|
|
184
|
-
var version = "5.0.0-beta.
|
|
184
|
+
var version = "5.0.0-beta.6";
|
|
185
185
|
|
|
186
186
|
// src/constants.ts
|
|
187
187
|
var VERSION = version;
|
package/dist/eventcatalog.js
CHANGED
|
@@ -4,27 +4,27 @@ import {
|
|
|
4
4
|
import "./chunk-CA4U2JP7.js";
|
|
5
5
|
import {
|
|
6
6
|
log_build_default
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-SHHO3JJI.js";
|
|
9
|
-
import "./chunk-ZAZHAVKB.js";
|
|
7
|
+
} from "./chunk-XMPFHLK4.js";
|
|
10
8
|
import {
|
|
11
9
|
getLicenseStatus,
|
|
12
10
|
printLicenseStatus
|
|
13
11
|
} from "./chunk-PIYJM642.js";
|
|
12
|
+
import "./chunk-ZAZHAVKB.js";
|
|
14
13
|
import {
|
|
15
14
|
FederationConflictError,
|
|
16
15
|
FederationDiagnosticError,
|
|
17
16
|
federateCatalog
|
|
18
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-AYNZXUB5.js";
|
|
18
|
+
import "./chunk-5EPNFDT5.js";
|
|
19
|
+
import "./chunk-A2RZR3U4.js";
|
|
20
|
+
import "./chunk-R7Z5ALYI.js";
|
|
19
21
|
import {
|
|
20
22
|
getFederationDiagnosticCounts,
|
|
21
23
|
getVisibleFederationDiagnostics
|
|
22
24
|
} from "./chunk-JJPB6EOZ.js";
|
|
23
|
-
import "./chunk-WRNH5C3U.js";
|
|
24
|
-
import "./chunk-5EPNFDT5.js";
|
|
25
|
-
import "./chunk-A2RZR3U4.js";
|
|
26
25
|
import "./chunk-SDZQJTJW.js";
|
|
27
26
|
import "./chunk-352FGP6W.js";
|
|
27
|
+
import "./chunk-WRNH5C3U.js";
|
|
28
28
|
import {
|
|
29
29
|
getProjectOutDir,
|
|
30
30
|
isAuthEnabled,
|
|
@@ -33,10 +33,10 @@ import {
|
|
|
33
33
|
} from "./chunk-MDWB5HLO.js";
|
|
34
34
|
import {
|
|
35
35
|
generate
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-DE3QHVJP.js";
|
|
37
37
|
import {
|
|
38
38
|
logger
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-56CD2NH6.js";
|
|
40
40
|
import {
|
|
41
41
|
resolve_catalog_dependencies_default
|
|
42
42
|
} from "./chunk-36RYTYT5.js";
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
import {
|
|
51
51
|
watch
|
|
52
52
|
} from "./chunk-U63GDPPY.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-QBP3BBSV.js";
|
|
54
54
|
import {
|
|
55
55
|
getAstroConfigPath
|
|
56
56
|
} from "./chunk-VIJJ7JKH.js";
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
} from "./chunk-LFQJXLHG.js";
|
|
67
67
|
import {
|
|
68
68
|
VERSION
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-L2IRFOE7.js";
|
|
70
70
|
import {
|
|
71
71
|
getEventCatalogConfigFile,
|
|
72
72
|
verifyRequiredFieldsAreInCatalogConfigFile
|
|
@@ -2,14 +2,14 @@ import {
|
|
|
2
2
|
FederationConflictError,
|
|
3
3
|
FederationDiagnosticError,
|
|
4
4
|
federateCatalog
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-JJPB6EOZ.js";
|
|
7
|
-
import "../chunk-WRNH5C3U.js";
|
|
5
|
+
} from "../chunk-AYNZXUB5.js";
|
|
8
6
|
import "../chunk-5EPNFDT5.js";
|
|
9
7
|
import "../chunk-A2RZR3U4.js";
|
|
8
|
+
import "../chunk-R7Z5ALYI.js";
|
|
9
|
+
import "../chunk-JJPB6EOZ.js";
|
|
10
10
|
import "../chunk-SDZQJTJW.js";
|
|
11
11
|
import "../chunk-352FGP6W.js";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-WRNH5C3U.js";
|
|
13
13
|
import "../chunk-RFIXKATC.js";
|
|
14
14
|
export {
|
|
15
15
|
FederationConflictError,
|
package/dist/generate.cjs
CHANGED
|
@@ -112,7 +112,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
|
|
|
112
112
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
113
113
|
|
|
114
114
|
// package.json
|
|
115
|
-
var version = "5.0.0-beta.
|
|
115
|
+
var version = "5.0.0-beta.6";
|
|
116
116
|
|
|
117
117
|
// src/constants.ts
|
|
118
118
|
var VERSION = version;
|
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-DE3QHVJP.js";
|
|
4
|
+
import "./chunk-56CD2NH6.js";
|
|
5
|
+
import "./chunk-L2IRFOE7.js";
|
|
6
6
|
import "./chunk-RFIXKATC.js";
|
|
7
7
|
export {
|
|
8
8
|
generate
|
|
@@ -34,7 +34,11 @@
|
|
|
34
34
|
"@heroicons/react/24/outline/RectangleGroupIcon": "@heroicons__react__24__outline__RectangleGroupIcon.mjs",
|
|
35
35
|
"@heroicons/react/24/outline/ServerIcon": "@heroicons__react__24__outline__ServerIcon.mjs",
|
|
36
36
|
"@heroicons/react/24/solid": "@heroicons__react__24__solid.mjs",
|
|
37
|
+
"@hocuspocus/provider": "@hocuspocus__provider.mjs",
|
|
38
|
+
"@hocuspocus/server": "@hocuspocus__server.mjs",
|
|
37
39
|
"@iconify-json/logos": "@iconify-json__logos.mjs",
|
|
40
|
+
"@mcp-b/webmcp-local-relay": "@mcp-b__webmcp-local-relay.mjs",
|
|
41
|
+
"@mcp-b/webmcp-polyfill": "@mcp-b__webmcp-polyfill.mjs",
|
|
38
42
|
"@mermaid-js/layout-elk": "@mermaid-js__layout-elk.mjs",
|
|
39
43
|
"@mermaid-js/layout-elk/dist/mermaid-layout-elk.core.mjs": "@mermaid-js__layout-elk__dist__mermaid-layout-elk.core.mjs.mjs",
|
|
40
44
|
"@modelcontextprotocol/ext-apps": "@modelcontextprotocol__ext-apps.mjs",
|
|
@@ -107,6 +111,7 @@
|
|
|
107
111
|
"react-dom": "react-dom.mjs",
|
|
108
112
|
"react-dom/client": "react-dom__client.mjs",
|
|
109
113
|
"react-dom/server": "react-dom__server.mjs",
|
|
114
|
+
"react-hotkeys-hook": "react-hotkeys-hook.mjs",
|
|
110
115
|
"react-markdown": "react-markdown.mjs",
|
|
111
116
|
"react-syntax-highlighter": "react-syntax-highlighter.mjs",
|
|
112
117
|
"react-syntax-highlighter/dist/cjs/styles/prism": "react-syntax-highlighter__dist__cjs__styles__prism.mjs",
|
|
@@ -139,6 +144,9 @@
|
|
|
139
144
|
"unist-util-visit": "unist-util-visit.mjs",
|
|
140
145
|
"update-notifier": "update-notifier.mjs",
|
|
141
146
|
"uuid": "uuid.mjs",
|
|
147
|
+
"y-protocols": "y-protocols.mjs",
|
|
148
|
+
"y-protocols/awareness": "y-protocols__awareness.mjs",
|
|
149
|
+
"yjs": "yjs.mjs",
|
|
142
150
|
"zod": "zod.mjs",
|
|
143
151
|
"zod/v4": "zod__v4.mjs"
|
|
144
152
|
}
|
package/dist/utils/cli-logger.js
CHANGED
|
@@ -27,6 +27,7 @@ import expressiveCode from 'astro-expressive-code';
|
|
|
27
27
|
// preprocessors and the rehype plugin below load those same package defaults.
|
|
28
28
|
import expressiveCodeConfig from './ec.config.mjs';
|
|
29
29
|
import ecstudioWatcher from './integrations/ecstudio-watcher.mjs';
|
|
30
|
+
import studioServer from './integrations/studio-server.mjs';
|
|
30
31
|
import eventCatalogIntegration from './src/features/integrations/eventcatalog-features.ts';
|
|
31
32
|
import eventCatalogRuntime, { getDevServerFileSystem, packageDirectory } from './integrations/eventcatalog-runtime.mjs';
|
|
32
33
|
import config from './src/utils/eventcatalog-config/source.ts';
|
|
@@ -139,6 +140,7 @@ export default defineConfig({
|
|
|
139
140
|
catalogAssets({ projectDirectory, generatedDirectory: join(runtimeDirectory, 'public') }),
|
|
140
141
|
effectiveOutput !== 'server' && compress && (await loadAstroCompressIntegration(projectDirectory)),
|
|
141
142
|
ecstudioWatcher(),
|
|
143
|
+
studioServer(),
|
|
142
144
|
eventCatalogIntegration(),
|
|
143
145
|
linkValidation(config.linkValidation),
|
|
144
146
|
].filter(Boolean),
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getStudioRuntime } from '../src/features/studio/server/runtime.ts';
|
|
2
|
+
import { isCanvasEnabled } from '../src/utils/feature.ts';
|
|
3
|
+
|
|
4
|
+
// Collaborative canvases: the collaboration WebSocket (Yjs over Hocuspocus), on the dev server's port.
|
|
5
|
+
// The runtime is shared with server code (e.g. MCP tools) through globalThis.
|
|
6
|
+
export default function studioServer() {
|
|
7
|
+
return {
|
|
8
|
+
name: 'eventcatalog-studio-server',
|
|
9
|
+
hooks: {
|
|
10
|
+
'astro:server:setup': ({ server, logger }) => {
|
|
11
|
+
if (!isCanvasEnabled() || !server.httpServer) return;
|
|
12
|
+
getStudioRuntime().attach(server.httpServer);
|
|
13
|
+
logger.info('Collaboration server ready at /_eventcatalog/studio');
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
isFullCatalogAPIEnabled,
|
|
14
14
|
isDevMode,
|
|
15
15
|
isSSR,
|
|
16
|
+
isCanvasEnabled,
|
|
16
17
|
} from '../../utils/feature';
|
|
17
18
|
import { getCustomPageRoutes, isApiRoute, listCustomPageFiles, resolveCustomPagesPrefix } from '../custom-pages/routes';
|
|
18
19
|
|
|
@@ -111,7 +112,8 @@ export default function eventCatalogIntegration(): AstroIntegration {
|
|
|
111
112
|
}
|
|
112
113
|
|
|
113
114
|
// Handle routes for MCP Server (requires SSR)
|
|
114
|
-
|
|
115
|
+
// Also for canvases, so agents can join them (the canvas tools are on the MCP server)
|
|
116
|
+
if (isEventCatalogMCPEnabled() || isCanvasEnabled()) {
|
|
115
117
|
params.injectRoute({
|
|
116
118
|
pattern: '/docs/mcp/[...path]',
|
|
117
119
|
entrypoint: path.join(packageDirectory, 'src/features/mcp/mcp-server.ts'),
|
|
@@ -173,6 +175,23 @@ export default function eventCatalogIntegration(): AstroIntegration {
|
|
|
173
175
|
entrypoint: path.join(packageDirectory, 'src/features/visualizer-layout/reset.ts'),
|
|
174
176
|
});
|
|
175
177
|
}
|
|
178
|
+
|
|
179
|
+
// Collaborative canvases in EventCatalog Studio (/studio starts one). Their WebSocket server is in
|
|
180
|
+
// integrations/studio-server.mjs.
|
|
181
|
+
if (isCanvasEnabled()) {
|
|
182
|
+
params.injectRoute({
|
|
183
|
+
pattern: '/studio',
|
|
184
|
+
entrypoint: path.join(packageDirectory, 'src/features/studio/pages/index.astro'),
|
|
185
|
+
});
|
|
186
|
+
params.injectRoute({
|
|
187
|
+
pattern: '/studio/[id]',
|
|
188
|
+
entrypoint: path.join(packageDirectory, 'src/features/studio/pages/[id].astro'),
|
|
189
|
+
});
|
|
190
|
+
params.injectRoute({
|
|
191
|
+
pattern: '/webmcp-relay/[file]',
|
|
192
|
+
entrypoint: path.join(packageDirectory, 'src/features/studio/pages/webmcp-relay.ts'),
|
|
193
|
+
});
|
|
194
|
+
}
|
|
176
195
|
},
|
|
177
196
|
'astro:server:setup': ({ server }) => {
|
|
178
197
|
// When custom page files appear or disappear, refresh the manifest.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Shared by the canvas MCP App (client) and the MCP server: no server-only imports here
|
|
2
|
+
import type { CatalogRelation, CatalogResource } from '../../../studio/catalog-resources';
|
|
3
|
+
|
|
4
|
+
export const CANVAS_RESOURCE_URI = 'ui://eventcatalog/canvas.html';
|
|
5
|
+
/** Key of the payload in openCanvas results' `_meta` */
|
|
6
|
+
export const CANVAS_META_KEY = 'eventcatalog/canvas';
|
|
7
|
+
/** App-only tool the view loads the canvas from when the host doesn't pass the result's `_meta` */
|
|
8
|
+
export const CANVAS_VIEW_TOOL = 'getCanvasView';
|
|
9
|
+
/** App-only tool the view loads the catalog (for dragging resources in) from */
|
|
10
|
+
export const CANVAS_CATALOG_TOOL = 'getCanvasCatalog';
|
|
11
|
+
/** App-only tool the view syncs through when the chat's sandbox blocks the collaboration WebSocket */
|
|
12
|
+
export const CANVAS_SYNC_TOOL = 'syncCanvas';
|
|
13
|
+
|
|
14
|
+
/** A canvas listed in the view's picker */
|
|
15
|
+
export type CanvasListItem = { canvasId: string; title?: string; people: string[]; nodeCount: number; openComments: number };
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* What the view shows: a canvas (it connects to it itself, so people and agents edit it live), or, when opened
|
|
19
|
+
* without one (e.g. from ChatGPT's sidebar), a list of canvases to open or start.
|
|
20
|
+
*/
|
|
21
|
+
export type CanvasPayload = CanvasView | CanvasHome;
|
|
22
|
+
|
|
23
|
+
export type CanvasHome = { view: 'home'; canvases: CanvasListItem[] };
|
|
24
|
+
|
|
25
|
+
export type CanvasView = {
|
|
26
|
+
view: 'canvas';
|
|
27
|
+
canvasId: string;
|
|
28
|
+
title?: string;
|
|
29
|
+
/** The collaboration WebSocket, e.g. wss://catalog.example.com/_eventcatalog/studio */
|
|
30
|
+
socketUrl: string;
|
|
31
|
+
/** The canvas in EventCatalog */
|
|
32
|
+
canvasUrl: string;
|
|
33
|
+
/** The EventCatalog MCP server, for "Connect your agent" */
|
|
34
|
+
mcpUrl: string;
|
|
35
|
+
/** What to call the user on the canvas, when the agent knows their name */
|
|
36
|
+
userName?: string;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export type CanvasCatalog = { resources: CatalogResource[]; relations: CatalogRelation[] };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The canvas view's Tailwind stylesheet (with Tailwind's base reset) and EventCatalog's theme variables,
|
|
3
|
+
* built from the classes of the collaborative canvas components it renders.
|
|
4
|
+
*/
|
|
5
|
+
@import 'tailwindcss' source(none);
|
|
6
|
+
@import '../../../../styles/theme.css';
|
|
7
|
+
@import '../../../studio/studio.css';
|
|
8
|
+
|
|
9
|
+
@source './*.tsx';
|
|
10
|
+
@source '../../../studio/components/*.{ts,tsx}';
|
|
11
|
+
|
|
12
|
+
body {
|
|
13
|
+
margin: 0;
|
|
14
|
+
background: rgb(var(--ec-page-bg));
|
|
15
|
+
color: rgb(var(--ec-page-text));
|
|
16
|
+
font-family:
|
|
17
|
+
ui-sans-serif,
|
|
18
|
+
system-ui,
|
|
19
|
+
-apple-system,
|
|
20
|
+
'Segoe UI',
|
|
21
|
+
sans-serif;
|
|
22
|
+
}
|