@dxos/plugin-graph 0.11.1 → 0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e

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 (53) hide show
  1. package/dist/lib/GraphPlugin.mjs +12 -16
  2. package/dist/lib/GraphPlugin.mjs.map +1 -1
  3. package/dist/lib/chunk-action.mjs +2 -2
  4. package/dist/lib/chunk-action.mjs.map +1 -1
  5. package/dist/lib/chunk-graph.mjs +15 -10
  6. package/dist/lib/chunk-graph.mjs.map +1 -1
  7. package/dist/lib/chunk-rolldown-runtime.mjs +13 -0
  8. package/dist/lib/hooks.mjs +5 -3
  9. package/dist/lib/hooks.mjs.map +1 -1
  10. package/dist/lib/index.mjs +3 -3
  11. package/dist/lib/meta.mjs +20 -1
  12. package/dist/lib/meta.mjs.map +1 -0
  13. package/dist/lib/plugin.mjs +16 -4
  14. package/dist/lib/plugin.mjs.map +1 -1
  15. package/dist/lib/testing.mjs +20 -2
  16. package/dist/lib/testing.mjs.map +1 -0
  17. package/dist/types/src/GraphPlugin.d.ts +36 -8
  18. package/dist/types/src/GraphPlugin.d.ts.map +1 -1
  19. package/dist/types/src/GraphPlugin.testing.d.ts +40 -0
  20. package/dist/types/src/GraphPlugin.testing.d.ts.map +1 -0
  21. package/dist/types/src/action.d.ts +4 -4
  22. package/dist/types/src/action.d.ts.map +1 -1
  23. package/dist/types/src/graph.d.ts +2 -2
  24. package/dist/types/src/graph.d.ts.map +1 -1
  25. package/dist/types/src/hooks/useActionRunner.d.ts +2 -2
  26. package/dist/types/src/hooks/useActionRunner.d.ts.map +1 -1
  27. package/dist/types/src/hooks/useNode.d.ts +6 -5
  28. package/dist/types/src/hooks/useNode.d.ts.map +1 -1
  29. package/dist/types/src/index.d.ts +2 -2
  30. package/dist/types/src/index.d.ts.map +1 -1
  31. package/dist/types/src/plugin.d.ts +7 -1
  32. package/dist/types/src/plugin.d.ts.map +1 -1
  33. package/dist/types/src/plugin.test.d.ts +2 -0
  34. package/dist/types/src/plugin.test.d.ts.map +1 -0
  35. package/dist/types/src/testing.d.ts +1 -1
  36. package/dist/types/src/testing.d.ts.map +1 -1
  37. package/dist/types/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +21 -26
  39. package/src/GraphPlugin.testing.ts +16 -0
  40. package/src/GraphPlugin.ts +8 -20
  41. package/src/action.ts +6 -5
  42. package/src/graph.ts +21 -13
  43. package/src/hooks/useActionRunner.ts +2 -2
  44. package/src/hooks/useNode.ts +9 -8
  45. package/src/index.ts +2 -4
  46. package/src/meta.ts +1 -1
  47. package/src/{GraphPlugin.test.ts → plugin.test.ts} +1 -2
  48. package/src/plugin.ts +20 -4
  49. package/src/testing.ts +1 -3
  50. package/dist/lib/chunk-meta.mjs +0 -21
  51. package/dist/lib/chunk-meta.mjs.map +0 -1
  52. package/dist/types/src/GraphPlugin.test.d.ts +0 -2
  53. package/dist/types/src/GraphPlugin.test.d.ts.map +0 -1
@@ -1,20 +1,16 @@
1
- import { ActivationEvents, Capability, Plugin } from "@dxos/app-framework";
2
- import { AppActivationEvents } from "@dxos/app-toolkit";
3
- import { meta } from "#meta";
1
+ import { t as __exportAll } from "./chunk-rolldown-runtime.mjs";
2
+ import * as Plugin from "@dxos/app-framework/Plugin";
3
+ import { meta as meta$1 } from "#meta";
4
4
  //#region src/GraphPlugin.ts
5
- var Graph = Capability.lazy("Graph", () => import("./chunk-graph.mjs"));
6
- /**
7
- * Manages the state of the graph for the application.
8
- * Enables other plugins to register node builders to add nodes to the graph.
9
- * This includes actions and annotation each other's nodes.
10
- */
11
- var GraphPlugin = Plugin.define(meta).pipe(Plugin.addModule({
12
- activatesOn: ActivationEvents.Startup,
13
- firesBeforeActivation: [AppActivationEvents.SetupAppGraph],
14
- firesAfterActivation: [AppActivationEvents.AppGraphReady],
15
- activate: Graph
16
- }), Plugin.make);
5
+ var GraphPlugin_exports = /* @__PURE__ */ __exportAll({
6
+ make: () => make,
7
+ meta: () => meta
8
+ });
9
+ /** Plugin metadata, available without loading the plugin body. */
10
+ var meta = meta$1;
11
+ /** Constructs the plugin; the body loads on first enable. */
12
+ var make = Plugin.lazy(meta, () => import("#plugin"));
17
13
  //#endregion
18
- export { GraphPlugin, GraphPlugin as default };
14
+ export { make, meta, GraphPlugin_exports as t };
19
15
 
20
16
  //# sourceMappingURL=GraphPlugin.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphPlugin.mjs","names":[],"sources":["../../src/GraphPlugin.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvents, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '#meta';\n\nconst Graph = Capability.lazy('Graph', () => import('./graph'));\n\n/**\n * Manages the state of the graph for the application.\n * Enables other plugins to register node builders to add nodes to the graph.\n * This includes actions and annotation each other's nodes.\n */\nexport const GraphPlugin = Plugin.define(meta).pipe(\n Plugin.addModule({\n activatesOn: ActivationEvents.Startup,\n firesBeforeActivation: [AppActivationEvents.SetupAppGraph],\n firesAfterActivation: [AppActivationEvents.AppGraphReady],\n activate: Graph,\n }),\n Plugin.make,\n);\n\nexport default GraphPlugin;\n"],"mappings":";;;;AASA,IAAM,QAAQ,WAAW,KAAK,eAAe,OAAO,oBAAU;;;;;;AAO9D,IAAa,cAAc,OAAO,OAAO,IAAI,CAAC,CAAC,KAC7C,OAAO,UAAU;CACf,aAAa,iBAAiB;CAC9B,uBAAuB,CAAC,oBAAoB,aAAa;CACzD,sBAAsB,CAAC,oBAAoB,aAAa;CACxD,UAAU;AACZ,CAAC,GACD,OAAO,IACT"}
1
+ {"version":3,"file":"GraphPlugin.mjs","names":[],"sources":["../../src/GraphPlugin.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Plugin from '@dxos/app-framework/Plugin';\n\nimport { meta as pluginMeta } from '#meta';\n\n/** Plugin metadata, available without loading the plugin body. */\nexport const meta = pluginMeta;\n\n/** Constructs the plugin; the body loads on first enable. */\nexport const make = Plugin.lazy(meta, () => import('#plugin'));\n"],"mappings":";;;;;;;;;AAWA,IAAa,OAAO;;AAGpB,IAAa,OAAO,OAAO,KAAK,YAAY,OAAO,UAAU"}
@@ -1,7 +1,7 @@
1
- import { Capability } from "@dxos/app-framework";
2
1
  import * as Effect from "effect/Effect";
3
2
  import * as Function from "effect/Function";
4
- import { Operation } from "@dxos/compute";
3
+ import * as Capability from "@dxos/app-framework/Capability";
4
+ import * as Operation from "@dxos/compute/Operation";
5
5
  import { EffectEx } from "@dxos/effect";
6
6
  //#region src/action.ts
7
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-action.mjs","names":[],"sources":["../../src/action.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\n\nimport { Capability, type CapabilityManager } from '@dxos/app-framework';\nimport { type Node } from '@dxos/app-graph';\nimport { Operation } from '@dxos/compute';\nimport { EffectEx } from '@dxos/effect';\n\n/**\n * Run an action with required layers: Operation.Service, Capability.Service, and captured context.\n * @param invoker The operation invoker to use for Operation.Service.\n * @param capabilityManager The capability manager for Capability.Service.\n * @param action The action to execute.\n * @param params Parameters to pass to the action.\n */\nexport const runAction = async (\n invoker: Operation.OperationService,\n capabilityManager: CapabilityManager.CapabilityManager,\n action: Node.Action,\n params: Node.InvokeProps = {},\n): Promise<void> =>\n EffectEx.runAndForwardErrors(\n action\n .data(params)\n .pipe(\n Effect.provideService(Operation.Service, invoker),\n Effect.provideService(Capability.Service, capabilityManager),\n action._actionContext ? Effect.provide(action._actionContext) : Function.identity,\n ),\n );\n"],"mappings":";;;;;;;;;;;;;AAmBA,IAAa,YAAY,OACvB,SACA,mBACA,QACA,SAA2B,CAAC,MAE5B,SAAS,oBACP,OACG,KAAK,MAAM,CAAA,CACX,KACC,OAAO,eAAe,UAAU,SAAS,OAAO,GAChD,OAAO,eAAe,WAAW,SAAS,iBAAiB,GAC3D,OAAO,iBAAiB,OAAO,QAAQ,OAAO,cAAc,IAAI,SAAS,QAC3E,CACJ"}
1
+ {"version":3,"file":"chunk-action.mjs","names":[],"sources":["../../src/action.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\n\nimport * as Capability from '@dxos/app-framework/Capability';\nimport type * as CapabilityManager from '@dxos/app-framework/CapabilityManager';\nimport type * as AppGraphNode from '@dxos/app-graph/AppGraphNode';\nimport * as Operation from '@dxos/compute/Operation';\nimport { EffectEx } from '@dxos/effect';\n\n/**\n * Run an action with required layers: Operation.Service, Capability.Service, and captured context.\n * @param invoker The operation invoker to use for Operation.Service.\n * @param capabilityManager The capability manager for Capability.Service.\n * @param action The action to execute.\n * @param params Parameters to pass to the action.\n */\nexport const runAction = async (\n invoker: Operation.OperationService,\n capabilityManager: CapabilityManager.CapabilityManager,\n action: AppGraphNode.Action,\n params: AppGraphNode.InvokeProps = {},\n): Promise<void> =>\n EffectEx.runAndForwardErrors(\n action\n .data(params)\n .pipe(\n Effect.provideService(Operation.Service, invoker),\n Effect.provideService(Capability.Service, capabilityManager),\n action._actionContext ? Effect.provide(action._actionContext) : Function.identity,\n ),\n );\n"],"mappings":";;;;;;;;;;;;;AAoBA,IAAa,YAAY,OACvB,SACA,mBACA,QACA,SAAmC,CAAC,MAEpC,SAAS,oBACP,OACG,KAAK,MAAM,CAAA,CACX,KACC,OAAO,eAAe,UAAU,SAAS,OAAO,GAChD,OAAO,eAAe,WAAW,SAAS,iBAAiB,GAC3D,OAAO,iBAAiB,OAAO,QAAQ,OAAO,cAAc,IAAI,SAAS,QAC3E,CACJ"}
@@ -1,30 +1,35 @@
1
- import { Capabilities, Capability } from "@dxos/app-framework";
2
- import { Graph, GraphBuilder, Node } from "@dxos/app-graph";
3
1
  import * as Effect from "effect/Effect";
4
- import { AppCapabilities, UrlPath } from "@dxos/app-toolkit";
2
+ import * as Capability from "@dxos/app-framework/Capability";
3
+ import * as Capabilities from "@dxos/app-framework/Capabilities";
4
+ import * as AppCapabilities from "@dxos/app-toolkit/AppCapabilities";
5
5
  import * as Record from "effect/Record";
6
+ import * as AppGraph from "@dxos/app-graph/AppGraph";
7
+ import * as AppGraphBuilder from "@dxos/app-graph/AppGraphBuilder";
8
+ import * as UrlPath from "@dxos/app-toolkit/UrlPath";
9
+ import * as GraphNode from "@dxos/graph/GraphNode";
6
10
  //#region src/graph.ts
7
11
  var graph_default = Capability.makeModule(Effect.fnUntraced(function* () {
8
- const registry = yield* Capability.get(Capabilities.AtomRegistry);
12
+ const registry = yield* Capabilities.AtomRegistry;
9
13
  const extensionsByModuleAtom = yield* Capability.atomByModule(AppCapabilities.AppGraphBuilder);
10
- const builder = GraphBuilder.from(void 0, registry, {
14
+ const builder = AppGraphBuilder.from(void 0, registry, {
11
15
  anchorKey: UrlPath.WORKSPACE_KEY,
12
16
  linkedKey: UrlPath.COMPANION_KEY
13
17
  });
14
18
  const unsubscribe = registry.subscribe(extensionsByModuleAtom, (extensionsByModule) => {
15
19
  const next = [];
16
- for (const [moduleId, extensions] of Object.entries(extensionsByModule)) for (const ext of GraphBuilder.flattenExtensions(extensions)) next.push({
20
+ for (const [moduleId, extensions] of Object.entries(extensionsByModule)) for (const ext of AppGraphBuilder.flattenExtensions(extensions)) next.push({
17
21
  ...ext,
18
22
  id: `${moduleId}.${ext.id}`
19
23
  });
20
- Record.values(registry.get(builder.extensions)).filter(({ id }) => !next.some(({ id: nextId }) => nextId === id)).forEach((extension) => GraphBuilder.removeExtension(builder, extension.id));
21
- next.forEach((extension) => GraphBuilder.addExtension(builder, extension));
24
+ Record.values(registry.get(builder.extensions)).filter(({ id }) => !next.some(({ id: nextId }) => nextId === id)).forEach((extension) => AppGraphBuilder.removeExtension(builder, extension.id));
25
+ next.forEach((extension) => AppGraphBuilder.addExtension(builder, extension));
22
26
  }, { immediate: true });
23
- Graph.expand(builder.graph, Node.RootId, "child");
27
+ AppGraph.expandSync(builder.graph, GraphNode.RootId, "child");
24
28
  setupDevtools(builder.graph);
25
- return Capability.contributes(AppCapabilities.AppGraph, builder, () => Effect.sync(() => {
29
+ yield* Effect.addFinalizer(() => Effect.sync(() => {
26
30
  unsubscribe();
27
31
  }));
32
+ return Capability.contribute(AppCapabilities.AppGraph, builder);
28
33
  }));
29
34
  var setupDevtools = (graph) => {
30
35
  globalThis.composer ??= {};
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-graph.mjs","names":[],"sources":["../../src/graph.ts"],"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, UrlPath } 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 extensionsByModuleAtom = yield* Capability.atomByModule(AppCapabilities.AppGraphBuilder);\n\n // The grammar's fixed tiers, configured here rather than declared by an extension: no connector\n // produces their nodes (see `GraphBuilder.UrlGrammar`).\n const builder = GraphBuilder.from(/* localStorage.getItem(KEY) ?? */ undefined, registry, {\n anchorKey: UrlPath.WORKSPACE_KEY,\n linkedKey: UrlPath.COMPANION_KEY,\n });\n // const interval = setInterval(() => {\n // localStorage.setItem(KEY, builder.graph.pickle());\n // }, 5_000);\n\n const unsubscribe = registry.subscribe(\n extensionsByModuleAtom,\n (extensionsByModule) => {\n const next: GraphBuilder.BuilderExtension[] = [];\n for (const [moduleId, extensions] of Object.entries(extensionsByModule)) {\n for (const ext of GraphBuilder.flattenExtensions(extensions)) {\n next.push({\n ...ext,\n id: `${moduleId}.${ext.id}`,\n });\n }\n }\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(AppCapabilities.AppGraph, builder, () =>\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"],"mappings":";;;;;;AAgBA,IAAA,gBAAe,WAAW,WACxB,OAAO,WAAW,aAAa;CAC7B,MAAM,WAAW,OAAO,WAAW,IAAI,aAAa,YAAY;CAChE,MAAM,yBAAyB,OAAO,WAAW,aAAa,gBAAgB,eAAe;CAI7F,MAAM,UAAU,aAAa,KAAwC,KAAA,GAAW,UAAU;EACxF,WAAW,QAAQ;EACnB,WAAW,QAAQ;CACrB,CAAC;CAKD,MAAM,cAAc,SAAS,UAC3B,yBACC,uBAAuB;EACtB,MAAM,OAAwC,CAAC;EAC/C,KAAK,MAAM,CAAC,UAAU,eAAe,OAAO,QAAQ,kBAAkB,GACpE,KAAK,MAAM,OAAO,aAAa,kBAAkB,UAAU,GACzD,KAAK,KAAK;GACR,GAAG;GACH,IAAI,GAAG,SAAS,GAAG,IAAI;EACzB,CAAC;EAKL,OAFuB,OAAO,SAAS,IAAI,QAAQ,UAAU,CAC7C,CAAA,CAAQ,QAAQ,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE,IAAI,aAAa,WAAW,EAAE,CACvF,CAAA,CAAQ,SAAS,cAAc,aAAa,gBAAgB,SAAS,UAAU,EAAE,CAAC;EAClF,KAAK,SAAS,cAAc,aAAa,aAAa,SAAS,SAAS,CAAC;CAC3E,GACA,EAAE,WAAW,KAAK,CACpB;CAGA,MAAW,OAAO,QAAQ,OAAO,KAAK,QAAQ,OAAO;CAErD,cAAc,QAAQ,KAAK;CAE3B,OAAO,WAAW,YAAY,gBAAgB,UAAU,eACtD,OAAO,WAAW;EAEhB,YAAY;CACd,CAAC,CACH;AACF,CAAC,CACH;AAGA,IAAM,iBAAiB,UAAiC;CACtD,WAAoB,aAAa,CAAC;CAClC,WAAoB,SAAS,QAAQ;AACvC"}
1
+ {"version":3,"file":"chunk-graph.mjs","names":[],"sources":["../../src/graph.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Record from 'effect/Record';\n\nimport * as Capabilities from '@dxos/app-framework/Capabilities';\nimport * as Capability from '@dxos/app-framework/Capability';\nimport * as AppGraph from '@dxos/app-graph/AppGraph';\nimport * as AppGraphBuilder from '@dxos/app-graph/AppGraphBuilder';\nimport * as AppCapabilities from '@dxos/app-toolkit/AppCapabilities';\nimport * as UrlPath from '@dxos/app-toolkit/UrlPath';\nimport * as GraphNode from '@dxos/graph/GraphNode';\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* Capabilities.AtomRegistry;\n\n // Live view: extensions contributed by dependency-mode modules (including those enabled\n // later in the session) reach this subscription reactively.\n const extensionsByModuleAtom = yield* Capability.atomByModule(AppCapabilities.AppGraphBuilder);\n\n // The grammar's fixed tiers, configured here rather than declared by an extension: no connector\n // produces their nodes (see `AppGraphBuilder.UrlGrammar`).\n const builder = AppGraphBuilder.from(/* localStorage.getItem(KEY) ?? */ undefined, registry, {\n anchorKey: UrlPath.WORKSPACE_KEY,\n linkedKey: UrlPath.COMPANION_KEY,\n });\n // const interval = setInterval(() => {\n // localStorage.setItem(KEY, builder.graph.pickle());\n // }, 5_000);\n\n const unsubscribe = registry.subscribe(\n extensionsByModuleAtom,\n (extensionsByModule) => {\n const next: AppGraphBuilder.BuilderExtension[] = [];\n for (const [moduleId, extensions] of Object.entries(extensionsByModule)) {\n for (const ext of AppGraphBuilder.flattenExtensions(extensions)) {\n next.push({\n ...ext,\n id: `${moduleId}.${ext.id}`,\n });\n }\n }\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) => AppGraphBuilder.removeExtension(builder, extension.id));\n next.forEach((extension) => AppGraphBuilder.addExtension(builder, extension));\n },\n { immediate: true },\n );\n\n // await builder.initialize();\n void AppGraph.expandSync(builder.graph, GraphNode.RootId, 'child');\n\n setupDevtools(builder.graph);\n\n yield* Effect.addFinalizer(() =>\n Effect.sync(() => {\n // clearInterval(interval);\n unsubscribe();\n }),\n );\n return Capability.contribute(AppCapabilities.AppGraph, builder);\n }),\n);\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: AppGraph.ExpandableGraph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],"mappings":";;;;;;;;;;AAoBA,IAAA,gBAAe,WAAW,WACxB,OAAO,WAAW,aAAa;CAC7B,MAAM,WAAW,OAAO,aAAa;CAIrC,MAAM,yBAAyB,OAAO,WAAW,aAAa,gBAAgB,eAAe;CAI7F,MAAM,UAAU,gBAAgB,KAAwC,KAAA,GAAW,UAAU;EAC3F,WAAW,QAAQ;EACnB,WAAW,QAAQ;CACrB,CAAC;CAKD,MAAM,cAAc,SAAS,UAC3B,yBACC,uBAAuB;EACtB,MAAM,OAA2C,CAAC;EAClD,KAAK,MAAM,CAAC,UAAU,eAAe,OAAO,QAAQ,kBAAkB,GACpE,KAAK,MAAM,OAAO,gBAAgB,kBAAkB,UAAU,GAC5D,KAAK,KAAK;GACR,GAAG;GACH,IAAI,GAAG,SAAS,GAAG,IAAI;EACzB,CAAC;EAKL,OAFuB,OAAO,SAAS,IAAI,QAAQ,UAAU,CAC7C,CAAA,CAAQ,QAAQ,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE,IAAI,aAAa,WAAW,EAAE,CACvF,CAAA,CAAQ,SAAS,cAAc,gBAAgB,gBAAgB,SAAS,UAAU,EAAE,CAAC;EACrF,KAAK,SAAS,cAAc,gBAAgB,aAAa,SAAS,SAAS,CAAC;CAC9E,GACA,EAAE,WAAW,KAAK,CACpB;CAGA,SAAc,WAAW,QAAQ,OAAO,UAAU,QAAQ,OAAO;CAEjE,cAAc,QAAQ,KAAK;CAE3B,OAAO,OAAO,mBACZ,OAAO,WAAW;EAEhB,YAAY;CACd,CAAC,CACH;CACA,OAAO,WAAW,WAAW,gBAAgB,UAAU,OAAO;AAChE,CAAC,CACH;AAGA,IAAM,iBAAiB,UAAoC;CACzD,WAAoB,aAAa,CAAC;CAClC,WAAoB,SAAS,QAAQ;AACvC"}
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ //#endregion
13
+ export { __exportAll as t };
@@ -1,7 +1,7 @@
1
1
  import { t as runAction } from "./chunk-action.mjs";
2
2
  import { useCallback, useMemo } from "react";
3
3
  import { useOperationInvoker, usePluginManager } from "@dxos/app-framework/ui";
4
- import { useAtomValue } from "@effect-atom/atom-react";
4
+ import { useAtomValue } from "@effect/atom-react/Hooks";
5
5
  import * as Option from "effect/Option";
6
6
  //#region src/hooks/useActionRunner.ts
7
7
  /**
@@ -38,7 +38,8 @@ var useConnections = (graph, id, relation) => {
38
38
  * @returns Actions available for the node.
39
39
  */
40
40
  var useActions = (graph, id) => {
41
- return useAtomValue(useMemo(() => graph.actions(id ?? ""), [graph, id]));
41
+ const atom = useMemo(() => graph.actions(id ?? ""), [graph, id]);
42
+ return useAtomValue(atom);
42
43
  };
43
44
  /**
44
45
  * Subscribe to just the edge topology (inbound/outbound IDs) of a node without subscribing to node content.
@@ -48,7 +49,8 @@ var useActions = (graph, id) => {
48
49
  * @returns Edge topology for the node.
49
50
  */
50
51
  var useEdges = (graph, id) => {
51
- return useAtomValue(useMemo(() => graph.edges(id ?? ""), [graph, id]));
52
+ const atom = useMemo(() => graph.edges(id ?? ""), [graph, id]);
53
+ return useAtomValue(atom);
52
54
  };
53
55
  //#endregion
54
56
  export { useActionRunner, useActions, useConnections, useEdges, useNode };
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.mjs","names":[],"sources":["../../src/hooks/useActionRunner.ts","../../src/hooks/useNode.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';\nimport { type Node } from '@dxos/app-graph';\n\nimport { runAction } from '../action';\n\n/**\n * Hook that returns a function to run action Effects.\n * Provides Operation.Service, PluginContextService, and captured plugin context.\n */\nexport const useActionRunner = () => {\n const invoker = useOperationInvoker();\n const pluginManager = usePluginManager();\n\n return useCallback(\n (action: Node.Action, params: Node.InvokeProps = {}) =>\n runAction(invoker, pluginManager.capabilities, action, params),\n [invoker, pluginManager.capabilities],\n );\n};\n","//\n// Copyright 2024 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport * as Option from 'effect/Option';\nimport { useMemo } from 'react';\n\nimport { type Graph, type Node } from '@dxos/app-graph';\n\n/**\n * React hook to get a node from the graph.\n *\n * @param graph Graph to find the node in.\n * @param id Id of the node to find.\n * @param timeout Optional timeout in milliseconds to wait for the node to be found.\n * @returns Node if found, undefined otherwise.\n */\n// TODO(wittjosiah): Factor out to @dxos/app-graph/react.\nexport const useNode = <T = any>(graph: Graph.ReadableGraph, id?: string): Node.Node<T> | undefined => {\n const atom = useMemo(() => graph.node(id ?? ''), [graph, id]);\n return Option.getOrElse(useAtomValue(atom), () => undefined);\n};\n\nexport const useConnections = (\n graph: Graph.ReadableGraph,\n id: string | undefined,\n relation: Node.RelationInput,\n): Node.Node[] => {\n return useAtomValue(graph.connections(id ?? '', relation));\n};\n\n/**\n * React hook to get actions available for a node.\n *\n * @param graph Graph containing the node.\n * @param id Id of the node.\n * @returns Actions available for the node.\n */\nexport const useActions = (graph: Graph.ReadableGraph, id?: string): Node.Node[] => {\n const atom = useMemo(() => graph.actions(id ?? ''), [graph, id]);\n return useAtomValue(atom);\n};\n\n/**\n * Subscribe to just the edge topology (inbound/outbound IDs) of a node without subscribing to node content.\n *\n * @param graph Graph containing the node.\n * @param id Id of the node.\n * @returns Edge topology for the node.\n */\nexport const useEdges = (graph: Graph.ReadableGraph, id?: string): Graph.Edges => {\n const atom = useMemo(() => graph.edges(id ?? ''), [graph, id]);\n return useAtomValue(atom);\n};\n"],"mappings":";;;;;;;;;;AAeA,IAAa,wBAAwB;CACnC,MAAM,UAAU,oBAAoB;CACpC,MAAM,gBAAgB,iBAAiB;CAEvC,OAAO,aACJ,QAAqB,SAA2B,CAAC,MAChD,UAAU,SAAS,cAAc,cAAc,QAAQ,MAAM,GAC/D,CAAC,SAAS,cAAc,YAAY,CACtC;AACF;;;;;;;;;;;ACLA,IAAa,WAAoB,OAA4B,OAA0C;CACrG,MAAM,OAAO,cAAc,MAAM,KAAK,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;CAC5D,OAAO,OAAO,UAAU,aAAa,IAAI,SAAS,KAAA,CAAS;AAC7D;AAEA,IAAa,kBACX,OACA,IACA,aACgB;CAChB,OAAO,aAAa,MAAM,YAAY,MAAM,IAAI,QAAQ,CAAC;AAC3D;;;;;;;;AASA,IAAa,cAAc,OAA4B,OAA6B;CAElF,OAAO,aADM,cAAc,MAAM,QAAQ,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAC1C,CAAI;AAC1B;;;;;;;;AASA,IAAa,YAAY,OAA4B,OAA6B;CAEhF,OAAO,aADM,cAAc,MAAM,MAAM,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CACxC,CAAI;AAC1B"}
1
+ {"version":3,"file":"hooks.mjs","names":[],"sources":["../../src/hooks/useActionRunner.ts","../../src/hooks/useNode.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';\nimport type * as AppGraphNode from '@dxos/app-graph/AppGraphNode';\n\nimport { runAction } from '../action';\n\n/**\n * Hook that returns a function to run action Effects.\n * Provides Operation.Service, PluginContextService, and captured plugin context.\n */\nexport const useActionRunner = () => {\n const invoker = useOperationInvoker();\n const pluginManager = usePluginManager();\n\n return useCallback(\n (action: AppGraphNode.Action, params: AppGraphNode.InvokeProps = {}) =>\n runAction(invoker, pluginManager.capabilities, action, params),\n [invoker, pluginManager.capabilities],\n );\n};\n","//\n// Copyright 2024 DXOS.org\n//\n\nimport { useAtomValue } from '@effect/atom-react/Hooks';\nimport * as Option from 'effect/Option';\nimport { useMemo } from 'react';\n\nimport type * as AppGraph from '@dxos/app-graph/AppGraph';\nimport type * as AppGraphNode from '@dxos/app-graph/AppGraphNode';\n\n/**\n * React hook to get a node from the graph.\n *\n * @param graph Graph to find the node in.\n * @param id Id of the node to find.\n * @param timeout Optional timeout in milliseconds to wait for the node to be found.\n * @returns Node if found, undefined otherwise.\n */\n// TODO(wittjosiah): Factor out to @dxos/app-graph/react.\nexport const useNode = <T = any>(graph: AppGraph.ReadableGraph, id?: string): AppGraphNode.Node<T> | undefined => {\n const atom = useMemo(() => graph.node(id ?? ''), [graph, id]);\n return Option.getOrElse(useAtomValue(atom), () => undefined);\n};\n\nexport const useConnections = (\n graph: AppGraph.ReadableGraph,\n id: string | undefined,\n relation: AppGraphNode.RelationInput,\n): AppGraphNode.Node[] => {\n return useAtomValue(graph.connections(id ?? '', relation));\n};\n\n/**\n * React hook to get actions available for a node.\n *\n * @param graph Graph containing the node.\n * @param id Id of the node.\n * @returns Actions available for the node.\n */\nexport const useActions = (graph: AppGraph.ReadableGraph, id?: string): AppGraphNode.Node[] => {\n const atom = useMemo(() => graph.actions(id ?? ''), [graph, id]);\n return useAtomValue(atom);\n};\n\n/**\n * Subscribe to just the edge topology (inbound/outbound IDs) of a node without subscribing to node content.\n *\n * @param graph Graph containing the node.\n * @param id Id of the node.\n * @returns Edge topology for the node.\n */\nexport const useEdges = (graph: AppGraph.ReadableGraph, id?: string): AppGraph.Edges => {\n const atom = useMemo(() => graph.edges(id ?? ''), [graph, id]);\n return useAtomValue(atom);\n};\n"],"mappings":";;;;;;;;;;AAeA,IAAa,wBAAwB;CACnC,MAAM,UAAU,oBAAoB;CACpC,MAAM,gBAAgB,iBAAiB;CAEvC,OAAO,aACJ,QAA6B,SAAmC,CAAC,MAChE,UAAU,SAAS,cAAc,cAAc,QAAQ,MAAM,GAC/D,CAAC,SAAS,cAAc,YAAY,CACtC;AACF;;;;;;;;;;;ACJA,IAAa,WAAoB,OAA+B,OAAkD;CAChH,MAAM,OAAO,cAAc,MAAM,KAAK,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;CAC5D,OAAO,OAAO,UAAU,aAAa,IAAI,SAAS,KAAA,CAAS;AAC7D;AAEA,IAAa,kBACX,OACA,IACA,aACwB;CACxB,OAAO,aAAa,MAAM,YAAY,MAAM,IAAI,QAAQ,CAAC;AAC3D;;;;;;;;AASA,IAAa,cAAc,OAA+B,OAAqC;CAC7F,MAAM,OAAO,cAAc,MAAM,QAAQ,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;CAC/D,OAAO,aAAa,IAAI;AAC1B;;;;;;;;AASA,IAAa,YAAY,OAA+B,OAAgC;CACtF,MAAM,OAAO,cAAc,MAAM,MAAM,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;CAC7D,OAAO,aAAa,IAAI;AAC1B"}
@@ -1,4 +1,4 @@
1
- import { t as meta } from "./chunk-meta.mjs";
1
+ import { t as GraphPlugin_exports } from "./GraphPlugin.mjs";
2
2
  import { t as runAction } from "./chunk-action.mjs";
3
- export * from "@dxos/app-graph";
4
- export { meta, runAction };
3
+ export * from "#meta";
4
+ export { GraphPlugin_exports as GraphPlugin, runAction };
package/dist/lib/meta.mjs CHANGED
@@ -1,2 +1,21 @@
1
- import { t as meta } from "./chunk-meta.mjs";
1
+ import * as Plugin from "@dxos/app-framework/Plugin";
2
+ import { Config2 } from "@dxos/app-framework/config";
3
+ import { trim } from "@dxos/util";
4
+ //#region dx.config.ts
5
+ var dx_config_default = Config2.make({ plugin: {
6
+ key: "org.dxos.plugin.graph",
7
+ name: "Graph",
8
+ author: "DXOS",
9
+ description: trim`
10
+ Graph database layer providing relationship modeling and queries for workspace objects.
11
+ Build knowledge graphs and explore complex data relationships.
12
+ `,
13
+ tags: ["system"]
14
+ } });
15
+ //#endregion
16
+ //#region src/meta.ts
17
+ var meta = Plugin.getMetaFromConfig(dx_config_default);
18
+ //#endregion
2
19
  export { meta };
20
+
21
+ //# sourceMappingURL=meta.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.mjs","names":[],"sources":["../../dx.config.ts","../../src/meta.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Config2 } from '@dxos/app-framework/config';\nimport { trim } from '@dxos/util';\n\nexport default Config2.make({\n plugin: {\n key: 'org.dxos.plugin.graph',\n name: 'Graph',\n author: 'DXOS',\n description: trim`\n Graph database layer providing relationship modeling and queries for workspace objects.\n Build knowledge graphs and explore complex data relationships.\n `,\n tags: ['system'],\n },\n});\n","//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Plugin from '@dxos/app-framework/Plugin';\n\nimport config from '../dx.config';\n\nexport const meta = Plugin.getMetaFromConfig(config);\n"],"mappings":";;;;AAOA,IAAA,oBAAe,QAAQ,KAAK,EAC1B,QAAQ;CACN,KAAK;CACL,MAAM;CACN,QAAQ;CACR,aAAa,IAAI;;;;CAIjB,MAAM,CAAC,QAAQ;AACjB,EACF,CAAC;;;ACVD,IAAa,OAAO,OAAO,kBAAkB,iBAAM"}
@@ -1,8 +1,20 @@
1
- import { t as meta } from "./chunk-meta.mjs";
2
- import { Plugin } from "@dxos/app-framework";
1
+ import * as Plugin from "@dxos/app-framework/Plugin";
2
+ import { meta } from "#meta";
3
+ import * as Capability from "@dxos/app-framework/Capability";
4
+ import * as Capabilities from "@dxos/app-framework/Capabilities";
5
+ import * as AppCapabilities from "@dxos/app-toolkit/AppCapabilities";
3
6
  //#region src/plugin.ts
4
- var GraphPlugin = Plugin.lazy(meta, () => import("#plugin"));
7
+ var Graph = Capability.lazyModule("Graph", {
8
+ requires: [Capabilities.AtomRegistry],
9
+ provides: [AppCapabilities.AppGraph]
10
+ }, () => import("./chunk-graph.mjs"));
11
+ /**
12
+ * Manages the state of the graph for the application.
13
+ * Enables other plugins to register node builders to add nodes to the graph.
14
+ * This includes actions and annotation each other's nodes.
15
+ */
16
+ var GraphPlugin = Plugin.define(meta).pipe(Plugin.addModule(Graph), Plugin.make);
5
17
  //#endregion
6
- export { GraphPlugin };
18
+ export { GraphPlugin, GraphPlugin as default };
7
19
 
8
20
  //# sourceMappingURL=plugin.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/plugin.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport const GraphPlugin = Plugin.lazy(meta, () => import('#plugin'));\n"],"mappings":";;;AAQA,IAAa,cAAc,OAAO,KAAK,YAAY,OAAO,UAAU"}
1
+ {"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/plugin.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Capabilities from '@dxos/app-framework/Capabilities';\nimport * as Capability from '@dxos/app-framework/Capability';\nimport * as Plugin from '@dxos/app-framework/Plugin';\nimport * as AppCapabilities from '@dxos/app-toolkit/AppCapabilities';\n\nimport { meta } from '#meta';\n\nconst Graph = Capability.lazyModule(\n 'Graph',\n { requires: [Capabilities.AtomRegistry], provides: [AppCapabilities.AppGraph] },\n () => import('./graph'),\n);\n\n/**\n * Manages the state of the graph for the application.\n * Enables other plugins to register node builders to add nodes to the graph.\n * This includes actions and annotation each other's nodes.\n */\nexport const GraphPlugin = Plugin.define(meta).pipe(Plugin.addModule(Graph), Plugin.make);\n\nexport default GraphPlugin;\n"],"mappings":";;;;;;AAWA,IAAM,QAAQ,WAAW,WACvB,SACA;CAAE,UAAU,CAAC,aAAa,YAAY;CAAG,UAAU,CAAC,gBAAgB,QAAQ;AAAE,SACxE,OAAO,oBACf;;;;;;AAOA,IAAa,cAAc,OAAO,OAAO,IAAI,CAAC,CAAC,KAAK,OAAO,UAAU,KAAK,GAAG,OAAO,IAAI"}
@@ -1,2 +1,20 @@
1
- import { GraphPlugin } from "./GraphPlugin.mjs";
2
- export { GraphPlugin };
1
+ import { t as __exportAll } from "./chunk-rolldown-runtime.mjs";
2
+ import { meta } from "#meta";
3
+ import { GraphPlugin } from "#plugin";
4
+ //#region src/GraphPlugin.testing.ts
5
+ var GraphPlugin_testing_exports = /* @__PURE__ */ __exportAll({
6
+ make: () => make,
7
+ meta: () => meta$1
8
+ });
9
+ /** Plugin metadata, available without loading the plugin body. */
10
+ var meta$1 = meta;
11
+ /**
12
+ * Constructs the plugin. Eager by design, unlike the lazy `make` on `GraphPlugin`: storybook runs
13
+ * under vite-dev, where webkit cannot reliably settle the lazy stub's dynamic import (see
14
+ * `@dxos/plugin-testing/src/core.ts`).
15
+ */
16
+ var make = GraphPlugin;
17
+ //#endregion
18
+ export { GraphPlugin_testing_exports as GraphPlugin };
19
+
20
+ //# sourceMappingURL=testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.mjs","names":[],"sources":["../../src/GraphPlugin.testing.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { meta as pluginMeta } from '#meta';\nimport { GraphPlugin } from '#plugin';\n\n/** Plugin metadata, available without loading the plugin body. */\nexport const meta = pluginMeta;\n\n/**\n * Constructs the plugin. Eager by design, unlike the lazy `make` on `GraphPlugin`: storybook runs\n * under vite-dev, where webkit cannot reliably settle the lazy stub's dynamic import (see\n * `@dxos/plugin-testing/src/core.ts`).\n */\nexport const make = GraphPlugin;\n"],"mappings":";;;;;;;;;AAQA,IAAa,SAAO;;;;;;AAOpB,IAAa,OAAO"}
@@ -1,9 +1,37 @@
1
- import { Plugin } from '@dxos/app-framework';
2
- /**
3
- * Manages the state of the graph for the application.
4
- * Enables other plugins to register node builders to add nodes to the graph.
5
- * This includes actions and annotation each other's nodes.
6
- */
7
- export declare const GraphPlugin: Plugin.PluginFactory<void>;
8
- export default GraphPlugin;
1
+ import * as Plugin from '@dxos/app-framework/Plugin';
2
+ /** Plugin metadata, available without loading the plugin body. */
3
+ export declare const meta: {
4
+ readonly profile: {
5
+ readonly key: string;
6
+ readonly name: string;
7
+ readonly description?: string | undefined;
8
+ readonly homePage?: string | undefined;
9
+ readonly source?: string | undefined;
10
+ readonly tags?: readonly string[] | undefined;
11
+ readonly screenshots?: readonly {
12
+ readonly light?: string | undefined;
13
+ readonly dark?: string | undefined;
14
+ }[] | undefined;
15
+ readonly icon?: {
16
+ readonly key: string;
17
+ readonly hue?: string | undefined;
18
+ } | undefined;
19
+ readonly dependsOn?: readonly string[] | undefined;
20
+ readonly spec?: string | undefined;
21
+ readonly createdAt?: string | undefined;
22
+ readonly author?: string | undefined;
23
+ };
24
+ readonly release?: {
25
+ readonly version: string;
26
+ readonly moduleUrl: string;
27
+ readonly dependencies?: {
28
+ readonly [x: string]: string;
29
+ } | undefined;
30
+ readonly pluginKey?: string | undefined;
31
+ readonly manifestHash?: string | undefined;
32
+ readonly createdAt?: string | undefined;
33
+ } | undefined;
34
+ };
35
+ /** Constructs the plugin; the body loads on first enable. */
36
+ export declare const make: Plugin.PluginFactory<void>;
9
37
  //# sourceMappingURL=GraphPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphPlugin.d.ts","sourceRoot":"","sources":["../../../src/GraphPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgC,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO3E;;;;GAIG;AACH,eAAO,MAAM,WAAW,4BAQvB,CAAC;eAEa,WAAW"}
1
+ {"version":3,"file":"GraphPlugin.d.ts","sourceRoot":"","sources":["../../../src/GraphPlugin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAIrD,kEAAkE;AAClE,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAE/B,6DAA6D;AAC7D,eAAO,MAAM,IAAI,4BAA6C,CAAC"}
@@ -0,0 +1,40 @@
1
+ /** Plugin metadata, available without loading the plugin body. */
2
+ export declare const meta: {
3
+ readonly profile: {
4
+ readonly key: string;
5
+ readonly name: string;
6
+ readonly description?: string | undefined;
7
+ readonly homePage?: string | undefined;
8
+ readonly source?: string | undefined;
9
+ readonly tags?: readonly string[] | undefined;
10
+ readonly screenshots?: readonly {
11
+ readonly light?: string | undefined;
12
+ readonly dark?: string | undefined;
13
+ }[] | undefined;
14
+ readonly icon?: {
15
+ readonly key: string;
16
+ readonly hue?: string | undefined;
17
+ } | undefined;
18
+ readonly dependsOn?: readonly string[] | undefined;
19
+ readonly spec?: string | undefined;
20
+ readonly createdAt?: string | undefined;
21
+ readonly author?: string | undefined;
22
+ };
23
+ readonly release?: {
24
+ readonly version: string;
25
+ readonly moduleUrl: string;
26
+ readonly dependencies?: {
27
+ readonly [x: string]: string;
28
+ } | undefined;
29
+ readonly pluginKey?: string | undefined;
30
+ readonly manifestHash?: string | undefined;
31
+ readonly createdAt?: string | undefined;
32
+ } | undefined;
33
+ };
34
+ /**
35
+ * Constructs the plugin. Eager by design, unlike the lazy `make` on `GraphPlugin`: storybook runs
36
+ * under vite-dev, where webkit cannot reliably settle the lazy stub's dynamic import (see
37
+ * `@dxos/plugin-testing/src/core.ts`).
38
+ */
39
+ export declare const make: import("@dxos/app-framework/Plugin").PluginFactory<void>;
40
+ //# sourceMappingURL=GraphPlugin.testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphPlugin.testing.d.ts","sourceRoot":"","sources":["../../../src/GraphPlugin.testing.ts"],"names":[],"mappings":"AAOA,kEAAkE;AAClE,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAE/B;;;;GAIG;AACH,eAAO,MAAM,IAAI,0DAAc,CAAC"}
@@ -1,6 +1,6 @@
1
- import { type CapabilityManager } from '@dxos/app-framework';
2
- import { type Node } from '@dxos/app-graph';
3
- import { Operation } from '@dxos/compute';
1
+ import type * as CapabilityManager from '@dxos/app-framework/CapabilityManager';
2
+ import type * as AppGraphNode from '@dxos/app-graph/AppGraphNode';
3
+ import * as Operation from '@dxos/compute/Operation';
4
4
  /**
5
5
  * Run an action with required layers: Operation.Service, Capability.Service, and captured context.
6
6
  * @param invoker The operation invoker to use for Operation.Service.
@@ -8,5 +8,5 @@ import { Operation } from '@dxos/compute';
8
8
  * @param action The action to execute.
9
9
  * @param params Parameters to pass to the action.
10
10
  */
11
- export declare const runAction: (invoker: Operation.OperationService, capabilityManager: CapabilityManager.CapabilityManager, action: Node.Action, params?: Node.InvokeProps) => Promise<void>;
11
+ export declare const runAction: (invoker: Operation.OperationService, capabilityManager: CapabilityManager.CapabilityManager, action: AppGraphNode.Action, params?: AppGraphNode.InvokeProps) => Promise<void>;
12
12
  //# sourceMappingURL=action.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/action.ts"],"names":[],"mappings":"AAOA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,YACX,SAAS,CAAC,gBAAgB,qBAChB,iBAAiB,CAAC,iBAAiB,UAC9C,IAAI,CAAC,MAAM,WACX,IAAI,CAAC,WAAW,KACvB,OAAO,CAAC,IAAI,CASZ,CAAC"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/action.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,iBAAiB,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAGrD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,YACX,SAAS,CAAC,gBAAgB,qBAChB,iBAAiB,CAAC,iBAAiB,UAC9C,YAAY,CAAC,MAAM,WACnB,YAAY,CAAC,WAAW,KAC/B,OAAO,CAAC,IAAI,CASZ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as Effect from 'effect/Effect';
2
- import { Capability } from '@dxos/app-framework';
3
- declare const _default: (props: void) => Effect.Effect<Capability.Any, Error, import("effect/Scope").Scope | Capability.Service>;
2
+ import * as Capability from '@dxos/app-framework/Capability';
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Contribution<Capability.CapabilityIdentifier<"org.dxos.app-framework.capability.appGraph", "single">>, never, Capability.CapabilityIdentifier<"org.dxos.app-framework.capability.atomRegistry", "single"> | import("effect/Scope").Scope | Capability.Service>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/graph.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/graph.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC"}
@@ -1,7 +1,7 @@
1
- import { type Node } from '@dxos/app-graph';
1
+ import type * as AppGraphNode from '@dxos/app-graph/AppGraphNode';
2
2
  /**
3
3
  * Hook that returns a function to run action Effects.
4
4
  * Provides Operation.Service, PluginContextService, and captured plugin context.
5
5
  */
6
- export declare const useActionRunner: () => (action: Node.Action, params?: Node.InvokeProps) => Promise<void>;
6
+ export declare const useActionRunner: () => (action: AppGraphNode.Action, params?: AppGraphNode.InvokeProps) => Promise<void>;
7
7
  //# sourceMappingURL=useActionRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useActionRunner.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useActionRunner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;;GAGG;AACH,eAAO,MAAM,eAAe,iBAKf,IAAI,CAAC,MAAM,WAAU,IAAI,CAAC,WAAW,kBAIjD,CAAC"}
1
+ {"version":3,"file":"useActionRunner.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useActionRunner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAIlE;;;GAGG;AACH,eAAO,MAAM,eAAe,iBAKf,YAAY,CAAC,MAAM,WAAU,YAAY,CAAC,WAAW,kBAIjE,CAAC"}
@@ -1,4 +1,5 @@
1
- import { type Graph, type Node } from '@dxos/app-graph';
1
+ import type * as AppGraph from '@dxos/app-graph/AppGraph';
2
+ import type * as AppGraphNode from '@dxos/app-graph/AppGraphNode';
2
3
  /**
3
4
  * React hook to get a node from the graph.
4
5
  *
@@ -7,8 +8,8 @@ import { type Graph, type Node } from '@dxos/app-graph';
7
8
  * @param timeout Optional timeout in milliseconds to wait for the node to be found.
8
9
  * @returns Node if found, undefined otherwise.
9
10
  */
10
- export declare const useNode: <T = any>(graph: Graph.ReadableGraph, id?: string) => Node.Node<T> | undefined;
11
- export declare const useConnections: (graph: Graph.ReadableGraph, id: string | undefined, relation: Node.RelationInput) => Node.Node[];
11
+ export declare const useNode: <T = any>(graph: AppGraph.ReadableGraph, id?: string) => AppGraphNode.Node<T> | undefined;
12
+ export declare const useConnections: (graph: AppGraph.ReadableGraph, id: string | undefined, relation: AppGraphNode.RelationInput) => AppGraphNode.Node[];
12
13
  /**
13
14
  * React hook to get actions available for a node.
14
15
  *
@@ -16,7 +17,7 @@ export declare const useConnections: (graph: Graph.ReadableGraph, id: string | u
16
17
  * @param id Id of the node.
17
18
  * @returns Actions available for the node.
18
19
  */
19
- export declare const useActions: (graph: Graph.ReadableGraph, id?: string) => Node.Node[];
20
+ export declare const useActions: (graph: AppGraph.ReadableGraph, id?: string) => AppGraphNode.Node[];
20
21
  /**
21
22
  * Subscribe to just the edge topology (inbound/outbound IDs) of a node without subscribing to node content.
22
23
  *
@@ -24,5 +25,5 @@ export declare const useActions: (graph: Graph.ReadableGraph, id?: string) => No
24
25
  * @param id Id of the node.
25
26
  * @returns Edge topology for the node.
26
27
  */
27
- export declare const useEdges: (graph: Graph.ReadableGraph, id?: string) => Graph.Edges;
28
+ export declare const useEdges: (graph: AppGraph.ReadableGraph, id?: string) => AppGraph.Edges;
28
29
  //# sourceMappingURL=useNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNode.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;;;GAOG;AAEH,eAAO,MAAM,OAAO,GAAI,CAAC,GAAG,GAAG,SAAS,KAAK,CAAC,aAAa,OAAO,MAAM,KAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAGzF,CAAC;AAEF,eAAO,MAAM,cAAc,UAClB,KAAK,CAAC,aAAa,MACtB,MAAM,GAAG,SAAS,YACZ,IAAI,CAAC,aAAa,KAC3B,IAAI,CAAC,IAAI,EAEX,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,UAAW,KAAK,CAAC,aAAa,OAAO,MAAM,KAAG,IAAI,CAAC,IAAI,EAG7E,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,UAAW,KAAK,CAAC,aAAa,OAAO,MAAM,KAAG,KAAK,CAAC,KAGxE,CAAC"}
1
+ {"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNode.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAElE;;;;;;;GAOG;AAEH,eAAO,MAAM,OAAO,GAAI,CAAC,GAAG,GAAG,SAAS,QAAQ,CAAC,aAAa,OAAO,MAAM,KAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAGpG,CAAC;AAEF,eAAO,MAAM,cAAc,UAClB,QAAQ,CAAC,aAAa,MACzB,MAAM,GAAG,SAAS,YACZ,YAAY,CAAC,aAAa,KACnC,YAAY,CAAC,IAAI,EAEnB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,UAAW,QAAQ,CAAC,aAAa,OAAO,MAAM,KAAG,YAAY,CAAC,IAAI,EAGxF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,UAAW,QAAQ,CAAC,aAAa,OAAO,MAAM,KAAG,QAAQ,CAAC,KAG9E,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from './meta';
2
- export * from '@dxos/app-graph';
1
+ export * as GraphPlugin from './GraphPlugin';
3
2
  export * from './action';
3
+ export * from '#meta';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AAEvB,cAAc,iBAAiB,CAAC;AAEhC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC"}
@@ -1,3 +1,9 @@
1
- import { Plugin } from '@dxos/app-framework';
1
+ import * as Plugin from '@dxos/app-framework/Plugin';
2
+ /**
3
+ * Manages the state of the graph for the application.
4
+ * Enables other plugins to register node builders to add nodes to the graph.
5
+ * This includes actions and annotation each other's nodes.
6
+ */
2
7
  export declare const GraphPlugin: Plugin.PluginFactory<void>;
8
+ export default GraphPlugin;
3
9
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,eAAO,MAAM,WAAW,4BAA6C,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAWrD;;;;GAIG;AACH,eAAO,MAAM,WAAW,4BAAiE,CAAC;eAE3E,WAAW"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugin.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.test.d.ts","sourceRoot":"","sources":["../../../src/plugin.test.ts"],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- export * from './GraphPlugin';
1
+ export * as GraphPlugin from './GraphPlugin.testing';
2
2
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing.ts"],"names":[],"mappings":"AAMA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC"}