@dxos/plugin-graph 0.8.4-main.c85a9c8dae → 0.8.4-main.cb12b3f963

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 (47) hide show
  1. package/dist/lib/browser/GraphPlugin-6JDSI47S.mjs +9 -0
  2. package/dist/lib/browser/GraphPlugin-6JDSI47S.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-S2DLYPRU.mjs +22 -0
  4. package/dist/lib/browser/chunk-S2DLYPRU.mjs.map +7 -0
  5. package/dist/lib/browser/{graph-KGMD75RR.mjs → graph-RCKCHDM6.mjs} +12 -4
  6. package/dist/lib/browser/graph-RCKCHDM6.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +31 -30
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/plugin.mjs +7 -0
  11. package/dist/lib/browser/plugin.mjs.map +7 -0
  12. package/dist/lib/node-esm/GraphPlugin-76Z465LW.mjs +10 -0
  13. package/dist/lib/node-esm/GraphPlugin-76Z465LW.mjs.map +7 -0
  14. package/dist/lib/node-esm/chunk-L7LOKNKX.mjs +24 -0
  15. package/dist/lib/node-esm/chunk-L7LOKNKX.mjs.map +7 -0
  16. package/dist/lib/node-esm/{graph-AKMWV2C7.mjs → graph-P7F6HXZB.mjs} +12 -4
  17. package/dist/lib/node-esm/graph-P7F6HXZB.mjs.map +7 -0
  18. package/dist/lib/node-esm/index.mjs +31 -30
  19. package/dist/lib/node-esm/index.mjs.map +4 -4
  20. package/dist/lib/node-esm/meta.json +1 -1
  21. package/dist/lib/node-esm/plugin.mjs +8 -0
  22. package/dist/lib/node-esm/plugin.mjs.map +7 -0
  23. package/dist/types/src/GraphPlugin.d.ts +1 -0
  24. package/dist/types/src/GraphPlugin.d.ts.map +1 -1
  25. package/dist/types/src/GraphPlugin.test.d.ts +2 -0
  26. package/dist/types/src/GraphPlugin.test.d.ts.map +1 -0
  27. package/dist/types/src/action.d.ts +1 -1
  28. package/dist/types/src/action.d.ts.map +1 -1
  29. package/dist/types/src/graph.d.ts.map +1 -1
  30. package/dist/types/src/hooks/useNode.d.ts +14 -1
  31. package/dist/types/src/hooks/useNode.d.ts.map +1 -1
  32. package/dist/types/src/index.d.ts +3 -2
  33. package/dist/types/src/index.d.ts.map +1 -1
  34. package/dist/types/src/plugin.d.ts +2 -0
  35. package/dist/types/src/plugin.d.ts.map +1 -0
  36. package/dist/types/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +26 -17
  38. package/src/GraphPlugin.test.ts +26 -0
  39. package/src/GraphPlugin.ts +5 -3
  40. package/src/action.ts +2 -1
  41. package/src/graph.ts +10 -5
  42. package/src/hooks/useNode.ts +21 -4
  43. package/src/index.ts +10 -2
  44. package/src/meta.ts +1 -1
  45. package/src/plugin.ts +7 -0
  46. package/dist/lib/browser/graph-KGMD75RR.mjs.map +0 -7
  47. package/dist/lib/node-esm/graph-AKMWV2C7.mjs.map +0 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-graph",
3
- "version": "0.8.4-main.c85a9c8dae",
3
+ "version": "0.8.4-main.cb12b3f963",
4
4
  "description": "DXOS Surface plugin for constructing knowledge graphs",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -12,48 +12,57 @@
12
12
  "author": "DXOS.org",
13
13
  "sideEffects": true,
14
14
  "type": "module",
15
+ "imports": {
16
+ "#plugin": "./src/GraphPlugin.ts",
17
+ "#hooks": "./src/hooks/index.ts",
18
+ "#meta": "./src/meta.ts"
19
+ },
15
20
  "exports": {
16
21
  ".": {
17
22
  "source": "./src/index.ts",
18
23
  "types": "./dist/types/src/index.d.ts",
19
24
  "browser": "./dist/lib/browser/index.mjs",
20
25
  "node": "./dist/lib/node-esm/index.mjs"
26
+ },
27
+ "./plugin": {
28
+ "source": "./src/plugin.ts",
29
+ "types": "./dist/types/src/plugin.d.ts",
30
+ "browser": "./dist/lib/browser/plugin.mjs",
31
+ "node": "./dist/lib/node-esm/plugin.mjs"
21
32
  }
22
33
  },
23
34
  "types": "dist/types/src/index.d.ts",
24
- "typesVersions": {
25
- "*": {}
26
- },
27
35
  "files": [
28
36
  "dist",
29
37
  "src"
30
38
  ],
31
39
  "dependencies": {
32
- "@dxos/async": "0.8.4-main.c85a9c8dae",
33
- "@dxos/app-toolkit": "0.8.4-main.c85a9c8dae",
34
- "@dxos/app-framework": "0.8.4-main.c85a9c8dae",
35
- "@dxos/util": "0.8.4-main.c85a9c8dae",
36
- "@dxos/operation": "0.8.4-main.c85a9c8dae",
37
- "@dxos/debug": "0.8.4-main.c85a9c8dae",
38
- "@dxos/effect": "0.8.4-main.c85a9c8dae",
39
- "@dxos/app-graph": "0.8.4-main.c85a9c8dae"
40
+ "@dxos/app-toolkit": "0.8.4-main.cb12b3f963",
41
+ "@dxos/app-framework": "0.8.4-main.cb12b3f963",
42
+ "@dxos/async": "0.8.4-main.cb12b3f963",
43
+ "@dxos/app-graph": "0.8.4-main.cb12b3f963",
44
+ "@dxos/debug": "0.8.4-main.cb12b3f963",
45
+ "@dxos/effect": "0.8.4-main.cb12b3f963",
46
+ "@dxos/compute": "0.8.4-main.cb12b3f963",
47
+ "@dxos/util": "0.8.4-main.cb12b3f963",
48
+ "@dxos/operation": "0.8.4-main.cb12b3f963"
40
49
  },
41
50
  "devDependencies": {
42
51
  "@effect-atom/atom-react": "^0.5.0",
43
52
  "@effect/platform": "0.94.4",
44
53
  "@types/react": "~19.2.7",
45
54
  "@types/react-dom": "~19.2.3",
46
- "effect": "3.19.16",
55
+ "effect": "3.20.0",
47
56
  "react": "~19.2.3",
48
57
  "react-dom": "~19.2.3",
49
- "vite": "^7.1.11",
50
- "@dxos/react-client": "0.8.4-main.c85a9c8dae",
51
- "@dxos/storybook-utils": "0.8.4-main.c85a9c8dae"
58
+ "vite": "^8.0.10",
59
+ "@dxos/react-client": "0.8.4-main.cb12b3f963",
60
+ "@dxos/storybook-utils": "0.8.4-main.cb12b3f963"
52
61
  },
53
62
  "peerDependencies": {
54
63
  "@effect-atom/atom-react": "^0.5.0",
55
64
  "@effect/platform": "0.94.4",
56
- "effect": "3.19.16",
65
+ "effect": "3.20.0",
57
66
  "react": "~19.2.3",
58
67
  "react-dom": "~19.2.3"
59
68
  },
@@ -0,0 +1,26 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { describe, test } from 'vitest';
6
+
7
+ import { OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
8
+ import { createTestApp } from '@dxos/app-framework/testing';
9
+
10
+ import { GraphPlugin } from '#plugin';
11
+
12
+ import { meta } from './meta';
13
+
14
+ const moduleId = (name: string) => `${meta.id}.module.${name}`;
15
+
16
+ describe('GraphPlugin', () => {
17
+ test('modules activate on the expected events', async ({ expect }) => {
18
+ // Use createTestApp directly — createComposerTestApp already includes GraphPlugin.
19
+ await using harness = await createTestApp({
20
+ plugins: [GraphPlugin(), OperationPlugin(), RuntimePlugin()],
21
+ });
22
+
23
+ // Graph activates on Startup; fires SetupAppGraph + SetupMetadata before, AppGraphReady after.
24
+ expect(harness.manager.getActive()).toContain(moduleId('Graph'));
25
+ });
26
+ });
@@ -5,7 +5,7 @@
5
5
  import { ActivationEvents, Capability, Plugin } from '@dxos/app-framework';
6
6
  import { AppActivationEvents } from '@dxos/app-toolkit';
7
7
 
8
- import { meta } from './meta';
8
+ import { meta } from '#meta';
9
9
 
10
10
  const Graph = Capability.lazy('Graph', () => import('./graph'));
11
11
 
@@ -17,9 +17,11 @@ const Graph = Capability.lazy('Graph', () => import('./graph'));
17
17
  export const GraphPlugin = Plugin.define(meta).pipe(
18
18
  Plugin.addModule({
19
19
  activatesOn: ActivationEvents.Startup,
20
- activatesBefore: [AppActivationEvents.SetupAppGraph, AppActivationEvents.SetupMetadata],
21
- activatesAfter: [AppActivationEvents.AppGraphReady],
20
+ firesBeforeActivation: [AppActivationEvents.SetupAppGraph],
21
+ firesAfterActivation: [AppActivationEvents.AppGraphReady],
22
22
  activate: Graph,
23
23
  }),
24
24
  Plugin.make,
25
25
  );
26
+
27
+ export default GraphPlugin;
package/src/action.ts CHANGED
@@ -7,8 +7,9 @@ import * as Function from 'effect/Function';
7
7
 
8
8
  import { Capability, type CapabilityManager } from '@dxos/app-framework';
9
9
  import { type Node } from '@dxos/app-graph';
10
+ import { Operation } from '@dxos/compute';
10
11
  import { runAndForwardErrors } from '@dxos/effect';
11
- import { Operation, type OperationInvoker } from '@dxos/operation';
12
+ import { OperationInvoker } from '@dxos/operation';
12
13
 
13
14
  /**
14
15
  * Run an action with required layers: Operation.Service, Capability.Service, and captured context.
package/src/graph.ts CHANGED
@@ -12,12 +12,12 @@ import { AppCapabilities } from '@dxos/app-toolkit';
12
12
  // TODO(wittjosiah): Remove or restore graph caching.
13
13
  // import { meta } from './meta';
14
14
 
15
- // const KEY = `${meta.id}/app-graph`;
15
+ // const KEY = `${meta.id}.app-graph`;
16
16
 
17
17
  export default Capability.makeModule(
18
18
  Effect.fnUntraced(function* () {
19
19
  const registry = yield* Capability.get(Capabilities.AtomRegistry);
20
- const extensionsAtom = yield* Capability.atom(AppCapabilities.AppGraphBuilder);
20
+ const extensionsByModuleAtom = yield* Capability.atomByModule(AppCapabilities.AppGraphBuilder);
21
21
 
22
22
  const builder = GraphBuilder.from(/* localStorage.getItem(KEY) ?? */ undefined, registry);
23
23
  // const interval = setInterval(() => {
@@ -25,9 +25,14 @@ export default Capability.makeModule(
25
25
  // }, 5_000);
26
26
 
27
27
  const unsubscribe = registry.subscribe(
28
- extensionsAtom,
29
- (extensions) => {
30
- const next = GraphBuilder.flattenExtensions(extensions);
28
+ extensionsByModuleAtom,
29
+ (extensionsByModule) => {
30
+ const next: GraphBuilder.BuilderExtension[] = [];
31
+ for (const [moduleId, extensions] of Object.entries(extensionsByModule)) {
32
+ for (const ext of GraphBuilder.flattenExtensions(extensions)) {
33
+ next.push({ ...ext, id: `${moduleId}.${ext.id}` });
34
+ }
35
+ }
31
36
  const current = Record.values(registry.get(builder.extensions));
32
37
  const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));
33
38
  removed.forEach((extension) => GraphBuilder.removeExtension(builder, extension.id));
@@ -4,6 +4,7 @@
4
4
 
5
5
  import { useAtomValue } from '@effect-atom/atom-react';
6
6
  import * as Option from 'effect/Option';
7
+ import { useMemo } from 'react';
7
8
 
8
9
  import { type Graph, type Node } from '@dxos/app-graph';
9
10
 
@@ -17,7 +18,8 @@ import { type Graph, type Node } from '@dxos/app-graph';
17
18
  */
18
19
  // TODO(wittjosiah): Factor out to @dxos/app-graph/react.
19
20
  export const useNode = <T = any>(graph: Graph.ReadableGraph, id?: string): Node.Node<T> | undefined => {
20
- return Option.getOrElse(useAtomValue(graph.node(id ?? '')), () => undefined);
21
+ const atom = useMemo(() => graph.node(id ?? ''), [graph, id]);
22
+ return Option.getOrElse(useAtomValue(atom), () => undefined);
21
23
  };
22
24
 
23
25
  export const useConnections = (
@@ -28,11 +30,26 @@ export const useConnections = (
28
30
  return useAtomValue(graph.connections(id ?? '', relation));
29
31
  };
30
32
 
33
+ /**
34
+ * React hook to get actions available for a node.
35
+ *
36
+ * @param graph Graph containing the node.
37
+ * @param id Id of the node.
38
+ * @returns Actions available for the node.
39
+ */
31
40
  export const useActions = (graph: Graph.ReadableGraph, id?: string): Node.Node[] => {
32
- return useAtomValue(graph.actions(id ?? ''));
41
+ const atom = useMemo(() => graph.actions(id ?? ''), [graph, id]);
42
+ return useAtomValue(atom);
33
43
  };
34
44
 
35
- /** Subscribe to just the edge topology (inbound/outbound IDs) of a node without subscribing to node content. */
45
+ /**
46
+ * Subscribe to just the edge topology (inbound/outbound IDs) of a node without subscribing to node content.
47
+ *
48
+ * @param graph Graph containing the node.
49
+ * @param id Id of the node.
50
+ * @returns Edge topology for the node.
51
+ */
36
52
  export const useEdges = (graph: Graph.ReadableGraph, id?: string): Graph.Edges => {
37
- return useAtomValue(graph.edges(id ?? ''));
53
+ const atom = useMemo(() => graph.edges(id ?? ''), [graph, id]);
54
+ return useAtomValue(atom);
38
55
  };
package/src/index.ts CHANGED
@@ -2,9 +2,17 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { Plugin } from '@dxos/app-framework';
6
+
7
+ import { meta } from './meta';
8
+
9
+ export const GraphPlugin = Plugin.lazy(meta, () => import('./GraphPlugin'));
10
+
11
+ export * from './meta';
12
+
5
13
  export * from '@dxos/app-graph';
6
14
 
7
15
  export * from './action';
8
- export * from './GraphPlugin';
16
+ // TODO(wittjosiah): Hooks should not be exported from the plugin package at all.
17
+ // Either refactor callers to not need them or factor them out to a shared package.
9
18
  export * from './hooks';
10
- export * from './meta';
package/src/meta.ts CHANGED
@@ -6,7 +6,7 @@ import { type Plugin } from '@dxos/app-framework';
6
6
  import { trim } from '@dxos/util';
7
7
 
8
8
  export const meta: Plugin.Meta = {
9
- id: 'dxos.org/plugin/graph',
9
+ id: 'org.dxos.plugin.graph',
10
10
  name: 'Graph',
11
11
  description: trim`
12
12
  Graph database layer providing relationship modeling and queries for workspace objects.
package/src/plugin.ts ADDED
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // Eager re-export of `GraphPlugin`. See `@dxos/plugin-testing/src/core.ts`
6
+ // for the rationale.
7
+ export * from './GraphPlugin';
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/graph.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Record from 'effect/Record';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Graph, GraphBuilder, Node } from '@dxos/app-graph';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n\n// TODO(wittjosiah): Remove or restore graph caching.\n// import { meta } from './meta';\n\n// const KEY = `${meta.id}/app-graph`;\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const extensionsAtom = yield* Capability.atom(AppCapabilities.AppGraphBuilder);\n\n const builder = GraphBuilder.from(/* localStorage.getItem(KEY) ?? */ undefined, registry);\n // const interval = setInterval(() => {\n // localStorage.setItem(KEY, builder.graph.pickle());\n // }, 5_000);\n\n const unsubscribe = registry.subscribe(\n extensionsAtom,\n (extensions) => {\n const next = GraphBuilder.flattenExtensions(extensions);\n const current = Record.values(registry.get(builder.extensions));\n const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));\n removed.forEach((extension) => GraphBuilder.removeExtension(builder, extension.id));\n next.forEach((extension) => GraphBuilder.addExtension(builder, extension));\n },\n { immediate: true },\n );\n\n // await builder.initialize();\n void Graph.expand(builder.graph, Node.RootId, 'child');\n\n setupDevtools(builder.graph);\n\n return Capability.contributes(\n AppCapabilities.AppGraph,\n { graph: builder.graph, explore: GraphBuilder.explore },\n () =>\n Effect.sync(() => {\n // clearInterval(interval);\n unsubscribe();\n }),\n );\n }),\n);\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: Graph.ExpandableGraph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],
5
- "mappings": ";AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,OAAOC,cAAcC,YAAY;AAC1C,SAASC,uBAAuB;AAOhC,IAAA,gBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,aAAaC,YAAY;AAChE,QAAMC,iBAAiB,OAAOP,WAAWQ,KAAKC,gBAAgBC,eAAe;AAE7E,QAAMC,UAAUC,aAAaC;;IAAwCC;IAAWX;EAAAA;AAKhF,QAAMY,cAAcZ,SAASa,UAC3BT,gBACA,CAACU,eAAAA;AACC,UAAMC,OAAON,aAAaO,kBAAkBF,UAAAA;AAC5C,UAAMG,UAAiBC,cAAOlB,SAASC,IAAIO,QAAQM,UAAU,CAAA;AAC7D,UAAMK,UAAUF,QAAQG,OAAO,CAAC,EAAEC,GAAE,MAAO,CAACN,KAAKO,KAAK,CAAC,EAAED,IAAIE,OAAM,MAAOA,WAAWF,EAAAA,CAAAA;AACrFF,YAAQK,QAAQ,CAACC,cAAchB,aAAaiB,gBAAgBlB,SAASiB,UAAUJ,EAAE,CAAA;AACjFN,SAAKS,QAAQ,CAACC,cAAchB,aAAakB,aAAanB,SAASiB,SAAAA,CAAAA;EACjE,GACA;IAAEG,WAAW;EAAK,CAAA;AAIpB,OAAKC,MAAMC,OAAOtB,QAAQuB,OAAOC,KAAKC,QAAQ,OAAA;AAE9CC,gBAAc1B,QAAQuB,KAAK;AAE3B,SAAOlC,WAAWsC,YAChB7B,gBAAgB8B,UAChB;IAAEL,OAAOvB,QAAQuB;IAAOM,SAAS5B,aAAa4B;EAAQ,GACtD,MACSC,YAAK,MAAA;AAEV1B,gBAAAA;EACF,CAAA,CAAA;AAEN,CAAA,CAAA;AAIF,IAAMsB,gBAAgB,CAACH,UAAAA;AACpBQ,aAAmBC,aAAa,CAAC;AACjCD,aAAmBC,SAAST,QAAQA;AACvC;",
6
- "names": ["Effect", "Record", "Capabilities", "Capability", "Graph", "GraphBuilder", "Node", "AppCapabilities", "Capability", "makeModule", "fnUntraced", "registry", "get", "Capabilities", "AtomRegistry", "extensionsAtom", "atom", "AppCapabilities", "AppGraphBuilder", "builder", "GraphBuilder", "from", "undefined", "unsubscribe", "subscribe", "extensions", "next", "flattenExtensions", "current", "values", "removed", "filter", "id", "some", "nextId", "forEach", "extension", "removeExtension", "addExtension", "immediate", "Graph", "expand", "graph", "Node", "RootId", "setupDevtools", "contributes", "AppGraph", "explore", "sync", "globalThis", "composer"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/graph.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Record from 'effect/Record';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Graph, GraphBuilder, Node } from '@dxos/app-graph';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n\n// TODO(wittjosiah): Remove or restore graph caching.\n// import { meta } from './meta';\n\n// const KEY = `${meta.id}/app-graph`;\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const extensionsAtom = yield* Capability.atom(AppCapabilities.AppGraphBuilder);\n\n const builder = GraphBuilder.from(/* localStorage.getItem(KEY) ?? */ undefined, registry);\n // const interval = setInterval(() => {\n // localStorage.setItem(KEY, builder.graph.pickle());\n // }, 5_000);\n\n const unsubscribe = registry.subscribe(\n extensionsAtom,\n (extensions) => {\n const next = GraphBuilder.flattenExtensions(extensions);\n const current = Record.values(registry.get(builder.extensions));\n const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));\n removed.forEach((extension) => GraphBuilder.removeExtension(builder, extension.id));\n next.forEach((extension) => GraphBuilder.addExtension(builder, extension));\n },\n { immediate: true },\n );\n\n // await builder.initialize();\n void Graph.expand(builder.graph, Node.RootId, 'child');\n\n setupDevtools(builder.graph);\n\n return Capability.contributes(\n AppCapabilities.AppGraph,\n { graph: builder.graph, explore: GraphBuilder.explore },\n () =>\n Effect.sync(() => {\n // clearInterval(interval);\n unsubscribe();\n }),\n );\n }),\n);\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: Graph.ExpandableGraph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,OAAOC,cAAcC,YAAY;AAC1C,SAASC,uBAAuB;AAOhC,IAAA,gBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,aAAaC,YAAY;AAChE,QAAMC,iBAAiB,OAAOP,WAAWQ,KAAKC,gBAAgBC,eAAe;AAE7E,QAAMC,UAAUC,aAAaC;;IAAwCC;IAAWX;EAAAA;AAKhF,QAAMY,cAAcZ,SAASa,UAC3BT,gBACA,CAACU,eAAAA;AACC,UAAMC,OAAON,aAAaO,kBAAkBF,UAAAA;AAC5C,UAAMG,UAAiBC,cAAOlB,SAASC,IAAIO,QAAQM,UAAU,CAAA;AAC7D,UAAMK,UAAUF,QAAQG,OAAO,CAAC,EAAEC,GAAE,MAAO,CAACN,KAAKO,KAAK,CAAC,EAAED,IAAIE,OAAM,MAAOA,WAAWF,EAAAA,CAAAA;AACrFF,YAAQK,QAAQ,CAACC,cAAchB,aAAaiB,gBAAgBlB,SAASiB,UAAUJ,EAAE,CAAA;AACjFN,SAAKS,QAAQ,CAACC,cAAchB,aAAakB,aAAanB,SAASiB,SAAAA,CAAAA;EACjE,GACA;IAAEG,WAAW;EAAK,CAAA;AAIpB,OAAKC,MAAMC,OAAOtB,QAAQuB,OAAOC,KAAKC,QAAQ,OAAA;AAE9CC,gBAAc1B,QAAQuB,KAAK;AAE3B,SAAOlC,WAAWsC,YAChB7B,gBAAgB8B,UAChB;IAAEL,OAAOvB,QAAQuB;IAAOM,SAAS5B,aAAa4B;EAAQ,GACtD,MACSC,YAAK,MAAA;AAEV1B,gBAAAA;EACF,CAAA,CAAA;AAEN,CAAA,CAAA;AAIF,IAAMsB,gBAAgB,CAACH,UAAAA;AACpBQ,aAAmBC,aAAa,CAAC;AACjCD,aAAmBC,SAAST,QAAQA;AACvC;",
6
- "names": ["Effect", "Record", "Capabilities", "Capability", "Graph", "GraphBuilder", "Node", "AppCapabilities", "Capability", "makeModule", "fnUntraced", "registry", "get", "Capabilities", "AtomRegistry", "extensionsAtom", "atom", "AppCapabilities", "AppGraphBuilder", "builder", "GraphBuilder", "from", "undefined", "unsubscribe", "subscribe", "extensions", "next", "flattenExtensions", "current", "values", "removed", "filter", "id", "some", "nextId", "forEach", "extension", "removeExtension", "addExtension", "immediate", "Graph", "expand", "graph", "Node", "RootId", "setupDevtools", "contributes", "AppGraph", "explore", "sync", "globalThis", "composer"]
7
- }