@dxos/react-ui-canvas-compute 0.8.4-main.3a94e84 → 0.8.4-main.406dc2a

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 (112) hide show
  1. package/dist/lib/browser/index.mjs +216 -172
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +216 -172
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/compute.stories.d.ts +12 -5
  8. package/dist/types/src/compute.stories.d.ts.map +1 -1
  9. package/dist/types/src/graph/controller.d.ts +34 -8
  10. package/dist/types/src/graph/controller.d.ts.map +1 -1
  11. package/dist/types/src/graph/node-defs.d.ts.map +1 -1
  12. package/dist/types/src/hooks/useComputeGraphController.d.ts +2 -2
  13. package/dist/types/src/hooks/useComputeGraphController.d.ts.map +1 -1
  14. package/dist/types/src/hooks/useComputeNodeState.d.ts +3 -2
  15. package/dist/types/src/hooks/useComputeNodeState.d.ts.map +1 -1
  16. package/dist/types/src/hooks/useGraphMonitor.d.ts +1 -1
  17. package/dist/types/src/hooks/useGraphMonitor.d.ts.map +1 -1
  18. package/dist/types/src/json.test.d.ts +1 -1
  19. package/dist/types/src/json.test.d.ts.map +1 -1
  20. package/dist/types/src/shapes/Append.d.ts +1 -1
  21. package/dist/types/src/shapes/Append.d.ts.map +1 -1
  22. package/dist/types/src/shapes/Array.d.ts +1 -1
  23. package/dist/types/src/shapes/Array.d.ts.map +1 -1
  24. package/dist/types/src/shapes/Audio.d.ts +1 -1
  25. package/dist/types/src/shapes/Audio.d.ts.map +1 -1
  26. package/dist/types/src/shapes/Beacon.d.ts +1 -1
  27. package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
  28. package/dist/types/src/shapes/Boolean.d.ts +1 -1
  29. package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
  30. package/dist/types/src/shapes/Chat.d.ts +1 -1
  31. package/dist/types/src/shapes/Chat.d.ts.map +1 -1
  32. package/dist/types/src/shapes/Constant.d.ts +1 -1
  33. package/dist/types/src/shapes/Constant.d.ts.map +1 -1
  34. package/dist/types/src/shapes/Database.d.ts +1 -1
  35. package/dist/types/src/shapes/Database.d.ts.map +1 -1
  36. package/dist/types/src/shapes/Function.d.ts +1 -1
  37. package/dist/types/src/shapes/Function.d.ts.map +1 -1
  38. package/dist/types/src/shapes/Gpt.d.ts +1 -1
  39. package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
  40. package/dist/types/src/shapes/GptRealtime.d.ts +1 -1
  41. package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
  42. package/dist/types/src/shapes/Json.d.ts +1 -1
  43. package/dist/types/src/shapes/Json.d.ts.map +1 -1
  44. package/dist/types/src/shapes/Logic.d.ts +1 -1
  45. package/dist/types/src/shapes/Logic.d.ts.map +1 -1
  46. package/dist/types/src/shapes/Queue.d.ts +1 -1
  47. package/dist/types/src/shapes/Queue.d.ts.map +1 -1
  48. package/dist/types/src/shapes/RNG.d.ts +1 -1
  49. package/dist/types/src/shapes/RNG.d.ts.map +1 -1
  50. package/dist/types/src/shapes/Scope.d.ts +1 -1
  51. package/dist/types/src/shapes/Scope.d.ts.map +1 -1
  52. package/dist/types/src/shapes/Surface.d.ts +1 -1
  53. package/dist/types/src/shapes/Surface.d.ts.map +1 -1
  54. package/dist/types/src/shapes/Switch.d.ts +1 -1
  55. package/dist/types/src/shapes/Switch.d.ts.map +1 -1
  56. package/dist/types/src/shapes/Table.d.ts +1 -1
  57. package/dist/types/src/shapes/Table.d.ts.map +1 -1
  58. package/dist/types/src/shapes/Template.d.ts +1 -1
  59. package/dist/types/src/shapes/Template.d.ts.map +1 -1
  60. package/dist/types/src/shapes/Text.d.ts +1 -1
  61. package/dist/types/src/shapes/Text.d.ts.map +1 -1
  62. package/dist/types/src/shapes/TextToImage.d.ts +1 -1
  63. package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
  64. package/dist/types/src/shapes/Thread.d.ts +1 -1
  65. package/dist/types/src/shapes/Thread.d.ts.map +1 -1
  66. package/dist/types/src/shapes/Trigger.d.ts +3 -32
  67. package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
  68. package/dist/types/src/shapes/common/Box.d.ts.map +1 -1
  69. package/dist/types/src/shapes/common/FunctionBody.d.ts +1 -1
  70. package/dist/types/src/shapes/common/FunctionBody.d.ts.map +1 -1
  71. package/dist/types/src/shapes/defs.d.ts +2 -1
  72. package/dist/types/src/shapes/defs.d.ts.map +1 -1
  73. package/dist/types/tsconfig.tsbuildinfo +1 -1
  74. package/package.json +51 -49
  75. package/src/compute-layout.ts +1 -1
  76. package/src/compute.stories.tsx +24 -25
  77. package/src/graph/controller.ts +13 -9
  78. package/src/graph/node-defs.ts +4 -4
  79. package/src/hooks/useComputeGraphController.ts +2 -2
  80. package/src/hooks/useComputeNodeState.ts +7 -5
  81. package/src/hooks/useGraphMonitor.ts +2 -2
  82. package/src/json.test.ts +1 -1
  83. package/src/registry.ts +2 -2
  84. package/src/schema.test.ts +4 -4
  85. package/src/shapes/Append.tsx +3 -3
  86. package/src/shapes/Array.tsx +3 -3
  87. package/src/shapes/Audio.tsx +4 -3
  88. package/src/shapes/Beacon.tsx +4 -3
  89. package/src/shapes/Boolean.tsx +3 -3
  90. package/src/shapes/Chat.tsx +4 -3
  91. package/src/shapes/Constant.tsx +4 -3
  92. package/src/shapes/Database.tsx +2 -2
  93. package/src/shapes/Function.tsx +7 -6
  94. package/src/shapes/Gpt.tsx +7 -5
  95. package/src/shapes/GptRealtime.tsx +2 -2
  96. package/src/shapes/Json.tsx +4 -3
  97. package/src/shapes/Logic.tsx +3 -3
  98. package/src/shapes/Queue.tsx +4 -3
  99. package/src/shapes/RNG.tsx +4 -3
  100. package/src/shapes/Scope.tsx +5 -4
  101. package/src/shapes/Surface.tsx +4 -3
  102. package/src/shapes/Switch.tsx +4 -3
  103. package/src/shapes/Table.tsx +3 -3
  104. package/src/shapes/Template.tsx +6 -5
  105. package/src/shapes/Text.tsx +5 -4
  106. package/src/shapes/TextToImage.tsx +2 -2
  107. package/src/shapes/Thread.tsx +3 -3
  108. package/src/shapes/Trigger.tsx +36 -33
  109. package/src/shapes/common/Box.tsx +1 -1
  110. package/src/shapes/common/FunctionBody.tsx +3 -2
  111. package/src/shapes/defs.ts +3 -2
  112. package/src/testing/circuits.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-ui-canvas-compute",
3
- "version": "0.8.4-main.3a94e84",
3
+ "version": "0.8.4-main.406dc2a",
4
4
  "description": "A compute graph extension for the canvas editor component.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -9,6 +9,7 @@
9
9
  "type": "module",
10
10
  "exports": {
11
11
  ".": {
12
+ "source": "./src/index.ts",
12
13
  "types": "./dist/types/src/index.d.ts",
13
14
  "browser": "./dist/lib/browser/index.mjs",
14
15
  "node": "./dist/lib/node-esm/index.mjs"
@@ -25,63 +26,64 @@
25
26
  "dependencies": {
26
27
  "@antv/graphlib": "^2.0.4",
27
28
  "@antv/layout": "^1.2.13",
28
- "@effect/platform": "0.89.0",
29
+ "@effect/platform": "0.92.1",
29
30
  "@preact-signals/safe-react": "^0.9.0",
30
31
  "chess.js": "^1.0.0",
31
- "@dxos/ai": "0.8.4-main.3a94e84",
32
- "@dxos/app-framework": "0.8.4-main.3a94e84",
33
- "@dxos/assistant": "0.8.4-main.3a94e84",
34
- "@dxos/blueprints": "0.8.4-main.3a94e84",
35
- "@dxos/conductor": "0.8.4-main.3a94e84",
36
- "@dxos/context": "0.8.4-main.3a94e84",
37
- "@dxos/debug": "0.8.4-main.3a94e84",
38
- "@dxos/async": "0.8.4-main.3a94e84",
39
- "@dxos/echo-schema": "0.8.4-main.3a94e84",
40
- "@dxos/edge-client": "0.8.4-main.3a94e84",
41
- "@dxos/functions": "0.8.4-main.3a94e84",
42
- "@dxos/graph": "0.8.4-main.3a94e84",
43
- "@dxos/keys": "0.8.4-main.3a94e84",
44
- "@dxos/invariant": "0.8.4-main.3a94e84",
45
- "@dxos/log": "0.8.4-main.3a94e84",
46
- "@dxos/react-client": "0.8.4-main.3a94e84",
47
- "@dxos/react-edge-client": "0.8.4-main.3a94e84",
48
- "@dxos/react-ui-attention": "0.8.4-main.3a94e84",
49
- "@dxos/react-ui-canvas": "0.8.4-main.3a94e84",
50
- "@dxos/react-ui-canvas-editor": "0.8.4-main.3a94e84",
51
- "@dxos/live-object": "0.8.4-main.3a94e84",
52
- "@dxos/react-ui-editor": "0.8.4-main.3a94e84",
53
- "@dxos/react-ui-form": "0.8.4-main.3a94e84",
54
- "@dxos/react-ui-sfx": "0.8.4-main.3a94e84",
55
- "@dxos/react-ui-stack": "0.8.4-main.3a94e84",
56
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.3a94e84",
57
- "@dxos/util": "0.8.4-main.3a94e84",
58
- "@dxos/schema": "0.8.4-main.3a94e84"
32
+ "@dxos/ai": "0.8.4-main.406dc2a",
33
+ "@dxos/app-framework": "0.8.4-main.406dc2a",
34
+ "@dxos/assistant": "0.8.4-main.406dc2a",
35
+ "@dxos/async": "0.8.4-main.406dc2a",
36
+ "@dxos/blueprints": "0.8.4-main.406dc2a",
37
+ "@dxos/debug": "0.8.4-main.406dc2a",
38
+ "@dxos/context": "0.8.4-main.406dc2a",
39
+ "@dxos/conductor": "0.8.4-main.406dc2a",
40
+ "@dxos/echo": "0.8.4-main.406dc2a",
41
+ "@dxos/edge-client": "0.8.4-main.406dc2a",
42
+ "@dxos/functions": "0.8.4-main.406dc2a",
43
+ "@dxos/invariant": "0.8.4-main.406dc2a",
44
+ "@dxos/keys": "0.8.4-main.406dc2a",
45
+ "@dxos/log": "0.8.4-main.406dc2a",
46
+ "@dxos/graph": "0.8.4-main.406dc2a",
47
+ "@dxos/live-object": "0.8.4-main.406dc2a",
48
+ "@dxos/react-client": "0.8.4-main.406dc2a",
49
+ "@dxos/react-edge-client": "0.8.4-main.406dc2a",
50
+ "@dxos/react-ui-canvas": "0.8.4-main.406dc2a",
51
+ "@dxos/react-ui-canvas-editor": "0.8.4-main.406dc2a",
52
+ "@dxos/react-ui-editor": "0.8.4-main.406dc2a",
53
+ "@dxos/react-ui-form": "0.8.4-main.406dc2a",
54
+ "@dxos/react-ui-attention": "0.8.4-main.406dc2a",
55
+ "@dxos/react-ui-sfx": "0.8.4-main.406dc2a",
56
+ "@dxos/react-ui-stack": "0.8.4-main.406dc2a",
57
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.406dc2a",
58
+ "@dxos/schema": "0.8.4-main.406dc2a",
59
+ "@dxos/util": "0.8.4-main.406dc2a"
59
60
  },
60
61
  "devDependencies": {
61
- "@effect/ai": "0.23.0",
62
+ "@effect/ai": "0.29.1",
63
+ "@effect/experimental": "0.56.0",
62
64
  "@types/lodash.defaultsdeep": "^4.6.6",
63
- "@types/react": "~18.2.0",
64
- "@types/react-dom": "~18.2.0",
65
- "effect": "3.17.0",
65
+ "@types/react": "~19.2.2",
66
+ "@types/react-dom": "~19.2.1",
67
+ "effect": "3.18.3",
66
68
  "lodash.defaultsdeep": "^4.6.1",
67
- "react": "~18.2.0",
68
- "react-dom": "~18.2.0",
69
- "vite": "5.4.7",
70
- "@dxos/app-framework": "0.8.4-main.3a94e84",
71
- "@dxos/assistant-testing": "0.8.4-main.3a94e84",
72
- "@dxos/compute": "0.8.4-main.3a94e84",
73
- "@dxos/echo-signals": "0.8.4-main.3a94e84",
74
- "@dxos/random": "0.8.4-main.3a94e84",
75
- "@dxos/react-ui": "0.8.4-main.3a94e84",
76
- "@dxos/react-ui-theme": "0.8.4-main.3a94e84",
77
- "@dxos/storybook-utils": "0.8.4-main.3a94e84"
69
+ "react": "~19.2.0",
70
+ "react-dom": "~19.2.0",
71
+ "vite": "7.1.9",
72
+ "@dxos/app-framework": "0.8.4-main.406dc2a",
73
+ "@dxos/assistant-testing": "0.8.4-main.406dc2a",
74
+ "@dxos/echo-signals": "0.8.4-main.406dc2a",
75
+ "@dxos/compute": "0.8.4-main.406dc2a",
76
+ "@dxos/random": "0.8.4-main.406dc2a",
77
+ "@dxos/react-ui": "0.8.4-main.406dc2a",
78
+ "@dxos/react-ui-theme": "0.8.4-main.406dc2a",
79
+ "@dxos/storybook-utils": "0.8.4-main.406dc2a"
78
80
  },
79
81
  "peerDependencies": {
80
82
  "effect": "^3.13.3",
81
- "react": "~18.2.0",
82
- "react-dom": "~18.2.0",
83
- "@dxos/react-ui": "0.8.4-main.3a94e84",
84
- "@dxos/react-ui-theme": "0.8.4-main.3a94e84"
83
+ "react": "^19.0.0",
84
+ "react-dom": "^19.0.0",
85
+ "@dxos/react-ui": "0.8.4-main.406dc2a",
86
+ "@dxos/react-ui-theme": "0.8.4-main.406dc2a"
85
87
  },
86
88
  "publishConfig": {
87
89
  "access": "public"
@@ -3,7 +3,7 @@
3
3
  //
4
4
 
5
5
  import { DefaultInput, DefaultOutput } from '@dxos/conductor';
6
- import { toEffectSchema } from '@dxos/echo-schema';
6
+ import { toEffectSchema } from '@dxos/echo/internal';
7
7
  import { type Anchor, ShapeLayout, type ShapeRegistry } from '@dxos/react-ui-canvas-editor';
8
8
 
9
9
  import { type ComputeGraphController } from './graph';
@@ -2,19 +2,16 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
- import type { Meta, StoryObj } from '@storybook/react-vite';
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
6
  import React, { type PropsWithChildren, useEffect, useMemo, useRef, useState } from 'react';
9
7
 
10
- import { EdgeAiServiceClient, AiService } from '@dxos/ai';
11
- import { createTestAiServiceClient } from '@dxos/ai/testing';
12
8
  import { withPluginManager } from '@dxos/app-framework/testing';
13
- import { capabilities, localServiceEndpoints } from '@dxos/assistant-testing';
9
+ import { capabilities } from '@dxos/assistant-testing';
14
10
  import { type ComputeGraphModel, type ComputeNode, type GraphDiagnostic } from '@dxos/conductor';
15
11
  import { ServiceContainer } from '@dxos/functions';
16
12
  import { withClientProvider } from '@dxos/react-client/testing';
17
13
  import { Select, Toolbar } from '@dxos/react-ui';
14
+ import { withTheme } from '@dxos/react-ui/testing';
18
15
  import { withAttention } from '@dxos/react-ui-attention/testing';
19
16
  import {
20
17
  CanvasGraphModel,
@@ -25,7 +22,6 @@ import {
25
22
  } from '@dxos/react-ui-canvas-editor';
26
23
  import { Container, useSelection } from '@dxos/react-ui-canvas-editor/testing';
27
24
  import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
28
- import { withLayout, withTheme } from '@dxos/storybook-utils';
29
25
 
30
26
  import { DiagnosticOverlay } from './components';
31
27
  import { ComputeShapeLayout } from './compute-layout';
@@ -34,16 +30,16 @@ import { ComputeContext, useComputeGraphController, useGraphMonitor } from './ho
34
30
  import { computeShapes } from './registry';
35
31
  import { type ComputeShape } from './shapes';
36
32
  import {
33
+ createArtifactCircuit,
34
+ createAudioCircuit,
35
+ createBasicCircuit,
36
+ createComputeGraphController,
37
37
  createControlCircuit,
38
38
  createGPTRealtimeCircuit,
39
- createLogicCircuit,
40
- createComputeGraphController,
41
- createBasicCircuit,
42
39
  createGptCircuit,
43
- createAudioCircuit,
44
- createTransformCircuit,
40
+ createLogicCircuit,
45
41
  createTemplateCircuit,
46
- createArtifactCircuit,
42
+ createTransformCircuit,
47
43
  } from './testing';
48
44
 
49
45
  // const FormSchema = Schema.omit<any, any, ['subgraph']>('subgraph')(ComputeNode);
@@ -158,6 +154,7 @@ const DefaultStory = ({
158
154
  </Select.Item>
159
155
  ))}
160
156
  </Select.Viewport>
157
+ <Select.Arrow />
161
158
  </Select.Content>
162
159
  </Select.Portal>
163
160
  </Select.Root>
@@ -177,22 +174,24 @@ const DefaultStory = ({
177
174
  );
178
175
  };
179
176
 
180
- const meta: Meta<RenderProps> = {
177
+ const meta = {
181
178
  title: 'ui/react-ui-canvas-compute/compute',
182
- component: Editor.Root,
179
+ component: Editor.Root as any,
183
180
  render: DefaultStory,
184
181
  decorators: [
185
182
  withTheme,
186
183
  withAttention,
187
184
  withClientProvider({ createIdentity: true, createSpace: true }),
188
- withLayout({ fullscreen: true }),
189
185
  withPluginManager({ capabilities }),
190
186
  ],
191
- };
187
+ parameters: {
188
+ layout: 'fullscreen',
189
+ },
190
+ } satisfies Meta<typeof DefaultStory>;
192
191
 
193
192
  export default meta;
194
193
 
195
- type Story = StoryObj<RenderProps>;
194
+ type Story = StoryObj<typeof meta>;
196
195
 
197
196
  export const Default: Story = {
198
197
  args: {
@@ -258,7 +257,7 @@ export const Template: Story = {
258
257
  ...createComputeGraphController(
259
258
  createTemplateCircuit(),
260
259
  new ServiceContainer().setServices({
261
- ai: AiService.make(new EdgeAiServiceClient({ endpoint: localServiceEndpoints.ai })),
260
+ // ai: AiService.make(new Edge AiServiceClient({ endpoint: localServiceEndpoints.ai })),
262
261
  }),
263
262
  ),
264
263
  },
@@ -275,7 +274,7 @@ export const GPT: Story = {
275
274
  ...createComputeGraphController(
276
275
  createGptCircuit({ history: true }),
277
276
  new ServiceContainer().setServices({
278
- ai: AiService.make(new EdgeAiServiceClient({ endpoint: localServiceEndpoints.ai })),
277
+ // ai: AiService.make(new Edge AiServiceClient({ endpoint: localServiceEndpoints.ai })),
279
278
  }),
280
279
  ),
281
280
  },
@@ -291,7 +290,7 @@ export const Plugins: Story = {
291
290
  ...createComputeGraphController(
292
291
  createGptCircuit({ history: true, image: true, artifact: true }),
293
292
  new ServiceContainer().setServices({
294
- ai: AiService.make(new EdgeAiServiceClient({ endpoint: localServiceEndpoints.ai })),
293
+ // ai: AiService.make(new Edge AiServiceClient({ endpoint: SERVICES_CONFIG.local.ai.server })),
295
294
  }),
296
295
  ),
297
296
  },
@@ -307,7 +306,7 @@ export const Artifact: Story = {
307
306
  ...createComputeGraphController(
308
307
  createArtifactCircuit(),
309
308
  new ServiceContainer().setServices({
310
- ai: AiService.make(new EdgeAiServiceClient({ endpoint: localServiceEndpoints.ai })),
309
+ // ai: AiService.make(new Edge AiServiceClient({ endpoint: SERVICES_CONFIG.local.ai.server })),
311
310
  }),
312
311
  ),
313
312
  },
@@ -324,7 +323,7 @@ export const ImageGen: Story = {
324
323
  ...createComputeGraphController(
325
324
  createGptCircuit({ image: true, artifact: true }),
326
325
  new ServiceContainer().setServices({
327
- ai: AiService.make(createTestAiServiceClient()),
326
+ // ai: AiService.make(createTestAiServiceClient()),
328
327
  }),
329
328
  ),
330
329
  },
@@ -340,7 +339,7 @@ export const Audio: Story = {
340
339
  ...createComputeGraphController(
341
340
  createAudioCircuit(),
342
341
  new ServiceContainer().setServices({
343
- ai: AiService.make(createTestAiServiceClient()),
342
+ // ai: AiService.make(createTestAiServiceClient()),
344
343
  }),
345
344
  ),
346
345
  },
@@ -355,7 +354,7 @@ export const Voice: Story = {
355
354
  ...createComputeGraphController(
356
355
  createGPTRealtimeCircuit(),
357
356
  new ServiceContainer().setServices({
358
- ai: AiService.make(createTestAiServiceClient()),
357
+ // ai: AiService.make(createTestAiServiceClient()),
359
358
  }),
360
359
  ),
361
360
  },
@@ -2,17 +2,18 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { type Context, Effect, Either, Exit, Scope } from 'effect';
5
+ import type * as Context from 'effect/Context';
6
+ import * as Effect from 'effect/Effect';
7
+ import * as Either from 'effect/Either';
8
+ import * as Exit from 'effect/Exit';
9
+ import * as Scope from 'effect/Scope';
6
10
 
7
- import { type ImageContentBlock } from '@dxos/ai';
8
11
  import { Event, synchronized } from '@dxos/async';
9
12
  import {
10
13
  type ComputeEdge,
11
- type ComputeEvent,
12
14
  type ComputeGraphModel,
13
15
  type ComputeMeta,
14
16
  type ComputeNode,
15
- type EventLogger,
16
17
  type GptInput,
17
18
  type GptOutput,
18
19
  type GraphDiagnostic,
@@ -21,14 +22,17 @@ import {
21
22
  isNotExecuted,
22
23
  } from '@dxos/conductor';
23
24
  import { Resource } from '@dxos/context';
25
+ import { type ComputeEventLogger, type ComputeEventPayload } from '@dxos/functions';
24
26
  import { type ServiceContainer } from '@dxos/functions';
25
27
  import { log } from '@dxos/log';
26
28
  import { type CanvasGraphModel } from '@dxos/react-ui-canvas-editor';
29
+ import { type ContentBlock } from '@dxos/schema';
27
30
 
28
- import { resolveComputeNode } from './node-defs';
29
31
  import { createComputeGraph } from '../hooks';
30
32
  import { type ComputeShape } from '../shapes';
31
33
 
34
+ import { resolveComputeNode } from './node-defs';
35
+
32
36
  // TODO(burdon): API package for conductor.
33
37
  export const InvalidStateError = Error;
34
38
 
@@ -43,7 +47,7 @@ export interface GptExecutor {
43
47
  invoke: FunctionCallback<GptInput, GptOutput>;
44
48
 
45
49
  // TODO(dmaretskyi): A hack to get image artifacts working. Rework into querying images from the ai-service store.
46
- imageCache: Map<string, ImageContentBlock>;
50
+ imageCache: Map<string, ContentBlock.Image>;
47
51
  }
48
52
 
49
53
  export type RuntimeValue =
@@ -110,7 +114,7 @@ export class ComputeGraphController extends Resource {
110
114
  /** Computed result. */
111
115
  public readonly output = new Event<ComputeOutputEvent>();
112
116
 
113
- public readonly events = new Event<ComputeEvent>();
117
+ public readonly events = new Event<ComputeEventPayload>();
114
118
 
115
119
  constructor(
116
120
  private readonly _serviceContainer: ServiceContainer,
@@ -322,7 +326,7 @@ export class ComputeGraphController extends Resource {
322
326
  this.update.emit();
323
327
  }
324
328
 
325
- private _createLogger(): Context.Tag.Service<EventLogger> {
329
+ private _createLogger(): Context.Tag.Service<ComputeEventLogger> {
326
330
  return {
327
331
  log: (event) => {
328
332
  this._handleEvent(event);
@@ -331,7 +335,7 @@ export class ComputeGraphController extends Resource {
331
335
  };
332
336
  }
333
337
 
334
- private _handleEvent(event: ComputeEvent): void {
338
+ private _handleEvent(event: ComputeEventPayload): void {
335
339
  log('handleEvent', { event });
336
340
  switch (event.type) {
337
341
  case 'compute-input': {
@@ -3,16 +3,16 @@
3
3
  //
4
4
 
5
5
  import {
6
- NODE_INPUT,
7
- NODE_OUTPUT,
8
6
  type ComputeNode,
9
7
  type Executable,
8
+ NODE_INPUT,
9
+ NODE_OUTPUT,
10
10
  type NodeType,
11
- registry,
12
11
  getTemplateInputSchema,
12
+ registry,
13
13
  } from '@dxos/conductor';
14
14
  import { raise } from '@dxos/debug';
15
- import { ObjectId, toJsonSchema } from '@dxos/echo-schema';
15
+ import { ObjectId, toJsonSchema } from '@dxos/echo/internal';
16
16
  import { invariant } from '@dxos/invariant';
17
17
 
18
18
  import { type ComputeShape, type ConstantShape, type TemplateShape } from '../shapes';
@@ -5,7 +5,7 @@
5
5
  import { type RefObject, useEffect, useState } from 'react';
6
6
 
7
7
  import { type CleanupFn } from '@dxos/async';
8
- import { type EditorRootProps, type EditorController } from '@dxos/react-ui-canvas-editor';
8
+ import { type EditorController, type EditorRootProps } from '@dxos/react-ui-canvas-editor';
9
9
 
10
10
  import { type ComputeGraphController } from '../graph';
11
11
  import { type ComputeShape } from '../shapes';
@@ -21,7 +21,7 @@ const combine = (...cbs: CleanupFn[]) => {
21
21
 
22
22
  export type UseComputeGraphControllerOptions = Pick<EditorRootProps<ComputeShape>, 'graph'> & {
23
23
  controller: ComputeGraphController | null;
24
- editorRef: RefObject<EditorController>;
24
+ editorRef: RefObject<EditorController | null>;
25
25
  };
26
26
 
27
27
  export const useComputeGraphController = ({ controller, graph, editorRef }: UseComputeGraphControllerOptions) => {
@@ -2,16 +2,18 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import { useCallback, useEffect, useState } from 'react';
7
7
 
8
- import type { ComputeNode, ComputeMeta, ComputeEvent } from '@dxos/conductor';
8
+ import type { ComputeMeta, ComputeNode } from '@dxos/conductor';
9
+ import type { ComputeEventPayload } from '@dxos/functions';
9
10
  import { invariant } from '@dxos/invariant';
10
11
 
11
- import { useComputeContext } from './compute-context';
12
12
  import { type RuntimeValue } from '../graph';
13
13
  import { type ComputeShape } from '../shapes';
14
14
 
15
+ import { useComputeContext } from './compute-context';
16
+
15
17
  export type ComputeNodeState = {
16
18
  node: ComputeNode;
17
19
  meta: ComputeMeta;
@@ -20,7 +22,7 @@ export type ComputeNodeState = {
20
22
  outputs: Record<string, RuntimeValue>;
21
23
  setOutput: (property: string, value: any) => void;
22
24
  evalNode: () => void;
23
- subscribeToEventLog: (cb: (event: ComputeEvent) => void) => void;
25
+ subscribeToEventLog: (cb: (event: ComputeEventPayload) => void) => void;
24
26
  };
25
27
  };
26
28
 
@@ -54,7 +56,7 @@ export const useComputeNodeState = (shape: ComputeShape): ComputeNodeState => {
54
56
  }, [shape.node]);
55
57
 
56
58
  const subscribeToEventLog = useCallback(
57
- (cb: (event: ComputeEvent) => void) => {
59
+ (cb: (event: ComputeEventPayload) => void) => {
58
60
  return controller.events.on((ev) => {
59
61
  if (ev.nodeId === shape.node) {
60
62
  cb(ev);
@@ -5,10 +5,10 @@
5
5
  import { useMemo } from 'react';
6
6
 
7
7
  import { type ComputeEdge, ComputeGraphModel, type ComputeNode, DEFAULT_INPUT, DEFAULT_OUTPUT } from '@dxos/conductor';
8
- import { ObjectId, Ref } from '@dxos/echo-schema';
8
+ import { ObjectId, Ref } from '@dxos/echo/internal';
9
9
  import { invariant } from '@dxos/invariant';
10
10
  import { getSpace } from '@dxos/react-client/echo';
11
- import { type GraphMonitor, type CanvasGraphModel, type Connection } from '@dxos/react-ui-canvas-editor';
11
+ import { type CanvasGraphModel, type Connection, type GraphMonitor } from '@dxos/react-ui-canvas-editor';
12
12
  import { isNonNullable } from '@dxos/util';
13
13
 
14
14
  import { createComputeNode, isValidComputeNode } from '../graph';
package/src/json.test.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import { describe, test } from 'vitest';
7
7
 
8
8
  import { BaseGraphEdge, BaseGraphNode } from '@dxos/graph';
package/src/registry.ts CHANGED
@@ -29,10 +29,10 @@ import {
29
29
  surfaceShape,
30
30
  switchShape,
31
31
  templateShape,
32
- threadShape,
32
+ textShape,
33
33
  textToImageShape,
34
+ threadShape,
34
35
  triggerShape,
35
- textShape,
36
36
  } from './shapes';
37
37
 
38
38
  /**
@@ -2,22 +2,22 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import { describe, test } from 'vitest';
7
7
 
8
- import { live } from '@dxos/client/echo';
8
+ import { live } from '@dxos/echo/internal';
9
9
  import { BaseGraphNode, Graph } from '@dxos/graph';
10
10
  import {
11
11
  Polygon,
12
+ Shape,
12
13
  createEllipse,
13
14
  createPath,
14
15
  createRectangle,
15
16
  isPath,
16
17
  isPolygon,
17
- Shape,
18
18
  } from '@dxos/react-ui-canvas-editor';
19
19
 
20
- import { createSwitch, ComputeShape, createFunction } from './shapes';
20
+ import { ComputeShape, createFunction, createSwitch } from './shapes';
21
21
 
22
22
  describe('compute', () => {
23
23
  test('model', ({ expect }) => {
@@ -2,14 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import React from 'react';
7
7
 
8
8
  import { AppendInput } from '@dxos/conductor';
9
9
  import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
10
10
 
11
- import { createFunctionAnchors, FunctionBody, getHeight } from './common';
12
- import { ComputeShape, createShape, type CreateShapeProps } from './defs';
11
+ import { FunctionBody, createFunctionAnchors, getHeight } from './common';
12
+ import { ComputeShape, type CreateShapeProps, createShape } from './defs';
13
13
 
14
14
  export const AppendShape = Schema.extend(
15
15
  ComputeShape,
@@ -2,14 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import React from 'react';
7
7
 
8
8
  import { ReducerInput, ReducerOutput } from '@dxos/conductor';
9
9
  import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
10
10
 
11
- import { createFunctionAnchors, FunctionBody, getHeight } from './common';
12
- import { ComputeShape, createShape, type CreateShapeProps } from './defs';
11
+ import { FunctionBody, createFunctionAnchors, getHeight } from './common';
12
+ import { ComputeShape, type CreateShapeProps, createShape } from './defs';
13
13
 
14
14
  //
15
15
  // Data
@@ -2,15 +2,16 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import React, { useEffect, useState } from 'react';
7
7
 
8
8
  import { Icon } from '@dxos/react-ui';
9
- import { createAnchorMap, type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
9
+ import { type ShapeComponentProps, type ShapeDef, createAnchorMap } from '@dxos/react-ui-canvas-editor';
10
10
 
11
- import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
12
11
  import { useComputeNodeState } from '../hooks';
13
12
 
13
+ import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
14
+
14
15
  export const AudioShape = Schema.extend(
15
16
  ComputeShape,
16
17
  Schema.Struct({
@@ -2,16 +2,17 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import React from 'react';
7
7
 
8
8
  import { DEFAULT_INPUT, isTruthy } from '@dxos/conductor';
9
9
  import { Icon } from '@dxos/react-ui';
10
- import { createAnchorMap, type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
10
+ import { type ShapeComponentProps, type ShapeDef, createAnchorMap } from '@dxos/react-ui-canvas-editor';
11
11
 
12
- import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
13
12
  import { useComputeNodeState } from '../hooks';
14
13
 
14
+ import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
15
+
15
16
  export const BeaconShape = Schema.extend(
16
17
  ComputeShape,
17
18
  Schema.Struct({
@@ -2,13 +2,13 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import React, { type FC } from 'react';
7
7
 
8
- import { getAnchorPoints, type ShapeDef } from '@dxos/react-ui-canvas-editor';
8
+ import { type ShapeDef, getAnchorPoints } from '@dxos/react-ui-canvas-editor';
9
9
  import { createAnchors } from '@dxos/react-ui-canvas-editor';
10
10
 
11
- import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
11
+ import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
12
12
 
13
13
  //
14
14
  // Gate utils.
@@ -2,7 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
  import React, { useRef } from 'react';
7
7
 
8
8
  import { DEFAULT_OUTPUT } from '@dxos/conductor';
@@ -15,10 +15,11 @@ import {
15
15
  } from '@dxos/react-ui-canvas-editor';
16
16
  import { createAnchorMap } from '@dxos/react-ui-canvas-editor';
17
17
 
18
- import { Box } from './common';
19
- import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
20
18
  import { useComputeNodeState } from '../hooks';
21
19
 
20
+ import { Box } from './common';
21
+ import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
22
+
22
23
  //
23
24
  // Data
24
25
  //