@dxos/react-ui-canvas-compute 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

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 (50) hide show
  1. package/dist/lib/browser/index.mjs +706 -881
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +706 -881
  5. package/dist/lib/node-esm/index.mjs.map +3 -3
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/compute.stories.d.ts +22 -1
  8. package/dist/types/src/compute.stories.d.ts.map +1 -1
  9. package/dist/types/src/graph/controller.d.ts +13 -13
  10. package/dist/types/src/graph/controller.d.ts.map +1 -1
  11. package/dist/types/src/hooks/useComputeNodeState.d.ts +2 -2
  12. package/dist/types/src/hooks/useComputeNodeState.d.ts.map +1 -1
  13. package/dist/types/src/hooks/useGraphMonitor.d.ts.map +1 -1
  14. package/dist/types/src/shapes/Function.d.ts.map +1 -1
  15. package/dist/types/src/shapes/Queue.d.ts.map +1 -1
  16. package/dist/types/src/shapes/RNG.d.ts.map +1 -1
  17. package/dist/types/src/shapes/Surface.d.ts.map +1 -1
  18. package/dist/types/src/shapes/Trigger.d.ts +3 -2
  19. package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
  20. package/dist/types/src/shapes/common/Box.d.ts +1 -1
  21. package/dist/types/src/testing/circuits.d.ts +18 -24
  22. package/dist/types/src/testing/circuits.d.ts.map +1 -1
  23. package/dist/types/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +55 -51
  25. package/src/compute.stories.tsx +66 -110
  26. package/src/graph/controller.ts +100 -70
  27. package/src/graph/node-defs.ts +3 -3
  28. package/src/hooks/useComputeNodeState.ts +4 -3
  29. package/src/hooks/useGraphMonitor.ts +9 -8
  30. package/src/json.test.ts +3 -3
  31. package/src/schema.test.ts +8 -8
  32. package/src/shapes/Audio.tsx +1 -1
  33. package/src/shapes/Beacon.tsx +1 -1
  34. package/src/shapes/Boolean.tsx +2 -2
  35. package/src/shapes/Function.tsx +8 -6
  36. package/src/shapes/Gpt.tsx +1 -1
  37. package/src/shapes/GptRealtime.tsx +1 -1
  38. package/src/shapes/Queue.tsx +8 -4
  39. package/src/shapes/RNG.tsx +5 -1
  40. package/src/shapes/Scope.tsx +1 -1
  41. package/src/shapes/Surface.tsx +6 -2
  42. package/src/shapes/Switch.tsx +1 -1
  43. package/src/shapes/Table.tsx +3 -3
  44. package/src/shapes/Thread.tsx +6 -6
  45. package/src/shapes/Trigger.tsx +13 -8
  46. package/src/shapes/common/Box.tsx +6 -6
  47. package/src/shapes/common/FunctionBody.tsx +2 -2
  48. package/src/shapes/common/TypeSelect.tsx +1 -1
  49. package/src/shapes/defs.ts +3 -3
  50. package/src/testing/circuits.ts +5 -14
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@dxos/react-ui-canvas-compute",
3
- "version": "0.8.4-main.ae835ea",
3
+ "version": "0.8.4-main.bc674ce",
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",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/dxos/dxos"
10
+ },
7
11
  "license": "MIT",
8
12
  "author": "DXOS.org",
9
13
  "type": "module",
@@ -26,64 +30,64 @@
26
30
  "dependencies": {
27
31
  "@antv/graphlib": "^2.0.4",
28
32
  "@antv/layout": "^1.2.13",
29
- "@effect/platform": "0.92.1",
30
- "@preact-signals/safe-react": "^0.9.0",
33
+ "@effect/platform": "0.93.6",
31
34
  "chess.js": "^1.0.0",
32
- "@dxos/ai": "0.8.4-main.ae835ea",
33
- "@dxos/app-framework": "0.8.4-main.ae835ea",
34
- "@dxos/async": "0.8.4-main.ae835ea",
35
- "@dxos/assistant": "0.8.4-main.ae835ea",
36
- "@dxos/conductor": "0.8.4-main.ae835ea",
37
- "@dxos/debug": "0.8.4-main.ae835ea",
38
- "@dxos/context": "0.8.4-main.ae835ea",
39
- "@dxos/echo": "0.8.4-main.ae835ea",
40
- "@dxos/edge-client": "0.8.4-main.ae835ea",
41
- "@dxos/functions": "0.8.4-main.ae835ea",
42
- "@dxos/invariant": "0.8.4-main.ae835ea",
43
- "@dxos/graph": "0.8.4-main.ae835ea",
44
- "@dxos/keys": "0.8.4-main.ae835ea",
45
- "@dxos/live-object": "0.8.4-main.ae835ea",
46
- "@dxos/log": "0.8.4-main.ae835ea",
47
- "@dxos/blueprints": "0.8.4-main.ae835ea",
48
- "@dxos/react-client": "0.8.4-main.ae835ea",
49
- "@dxos/react-edge-client": "0.8.4-main.ae835ea",
50
- "@dxos/react-ui-attention": "0.8.4-main.ae835ea",
51
- "@dxos/react-ui-canvas": "0.8.4-main.ae835ea",
52
- "@dxos/react-ui-editor": "0.8.4-main.ae835ea",
53
- "@dxos/react-ui-form": "0.8.4-main.ae835ea",
54
- "@dxos/react-ui-sfx": "0.8.4-main.ae835ea",
55
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.ae835ea",
56
- "@dxos/schema": "0.8.4-main.ae835ea",
57
- "@dxos/react-ui-stack": "0.8.4-main.ae835ea",
58
- "@dxos/util": "0.8.4-main.ae835ea",
59
- "@dxos/react-ui-canvas-editor": "0.8.4-main.ae835ea"
35
+ "@dxos/ai": "0.8.4-main.bc674ce",
36
+ "@dxos/app-framework": "0.8.4-main.bc674ce",
37
+ "@dxos/assistant": "0.8.4-main.bc674ce",
38
+ "@dxos/async": "0.8.4-main.bc674ce",
39
+ "@dxos/blueprints": "0.8.4-main.bc674ce",
40
+ "@dxos/conductor": "0.8.4-main.bc674ce",
41
+ "@dxos/context": "0.8.4-main.bc674ce",
42
+ "@dxos/echo": "0.8.4-main.bc674ce",
43
+ "@dxos/edge-client": "0.8.4-main.bc674ce",
44
+ "@dxos/debug": "0.8.4-main.bc674ce",
45
+ "@dxos/effect": "0.8.4-main.bc674ce",
46
+ "@dxos/functions": "0.8.4-main.bc674ce",
47
+ "@dxos/functions-runtime": "0.8.4-main.bc674ce",
48
+ "@dxos/graph": "0.8.4-main.bc674ce",
49
+ "@dxos/invariant": "0.8.4-main.bc674ce",
50
+ "@dxos/log": "0.8.4-main.bc674ce",
51
+ "@dxos/keys": "0.8.4-main.bc674ce",
52
+ "@dxos/react-client": "0.8.4-main.bc674ce",
53
+ "@dxos/react-ui-attention": "0.8.4-main.bc674ce",
54
+ "@dxos/react-ui-canvas": "0.8.4-main.bc674ce",
55
+ "@dxos/react-edge-client": "0.8.4-main.bc674ce",
56
+ "@dxos/react-ui-canvas-editor": "0.8.4-main.bc674ce",
57
+ "@dxos/react-ui-editor": "0.8.4-main.bc674ce",
58
+ "@dxos/react-ui-form": "0.8.4-main.bc674ce",
59
+ "@dxos/react-ui-sfx": "0.8.4-main.bc674ce",
60
+ "@dxos/react-ui-stack": "0.8.4-main.bc674ce",
61
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.bc674ce",
62
+ "@dxos/types": "0.8.4-main.bc674ce",
63
+ "@dxos/util": "0.8.4-main.bc674ce",
64
+ "@dxos/schema": "0.8.4-main.bc674ce"
60
65
  },
61
66
  "devDependencies": {
62
- "@effect/ai": "0.29.1",
63
- "@effect/experimental": "0.56.0",
67
+ "@effect/ai": "0.32.1",
68
+ "@effect/experimental": "0.57.11",
64
69
  "@types/lodash.defaultsdeep": "^4.6.6",
65
- "@types/react": "~19.2.2",
66
- "@types/react-dom": "~19.2.2",
67
- "effect": "3.18.3",
70
+ "@types/react": "~19.2.7",
71
+ "@types/react-dom": "~19.2.3",
72
+ "effect": "3.19.11",
68
73
  "lodash.defaultsdeep": "^4.6.1",
69
- "react": "~19.2.0",
70
- "react-dom": "~19.2.0",
74
+ "react": "~19.2.3",
75
+ "react-dom": "~19.2.3",
71
76
  "vite": "7.1.9",
72
- "@dxos/app-framework": "0.8.4-main.ae835ea",
73
- "@dxos/assistant-toolkit": "0.8.4-main.ae835ea",
74
- "@dxos/random": "0.8.4-main.ae835ea",
75
- "@dxos/react-ui": "0.8.4-main.ae835ea",
76
- "@dxos/compute": "0.8.4-main.ae835ea",
77
- "@dxos/storybook-utils": "0.8.4-main.ae835ea",
78
- "@dxos/echo-signals": "0.8.4-main.ae835ea",
79
- "@dxos/react-ui-theme": "0.8.4-main.ae835ea"
77
+ "@dxos/app-framework": "0.8.4-main.bc674ce",
78
+ "@dxos/random": "0.8.4-main.bc674ce",
79
+ "@dxos/compute": "0.8.4-main.bc674ce",
80
+ "@dxos/assistant-toolkit": "0.8.4-main.bc674ce",
81
+ "@dxos/react-ui": "0.8.4-main.bc674ce",
82
+ "@dxos/storybook-utils": "0.8.4-main.bc674ce",
83
+ "@dxos/ui-theme": "0.8.4-main.bc674ce"
80
84
  },
81
85
  "peerDependencies": {
82
- "effect": "^3.13.3",
83
- "react": "^19.0.0",
84
- "react-dom": "^19.0.0",
85
- "@dxos/react-ui-theme": "0.8.4-main.ae835ea",
86
- "@dxos/react-ui": "0.8.4-main.ae835ea"
86
+ "effect": "3.19.11",
87
+ "react": "~19.2.3",
88
+ "react-dom": "~19.2.3",
89
+ "@dxos/react-ui": "0.8.4-main.bc674ce",
90
+ "@dxos/ui-theme": "0.8.4-main.bc674ce"
87
91
  },
88
92
  "publishConfig": {
89
93
  "access": "public"
@@ -3,29 +3,29 @@
3
3
  //
4
4
 
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import * as Layer from 'effect/Layer';
7
+ import * as ManagedRuntime from 'effect/ManagedRuntime';
6
8
  import React, { type PropsWithChildren, useEffect, useMemo, useRef, useState } from 'react';
7
9
 
10
+ import { AiServiceTestingPreset } from '@dxos/ai/testing';
8
11
  import { withPluginManager } from '@dxos/app-framework/testing';
9
- import { capabilities } from '@dxos/assistant-toolkit';
12
+ import { capabilities } from '@dxos/assistant-toolkit/testing';
10
13
  import { type ComputeGraphModel, type ComputeNode, type GraphDiagnostic } from '@dxos/conductor';
11
- import { ServiceContainer } from '@dxos/functions';
14
+ import { CredentialsService, TracingService } from '@dxos/functions';
15
+ import { FunctionInvocationServiceLayerTest } from '@dxos/functions-runtime';
16
+ import { TestDatabaseLayer } from '@dxos/functions-runtime/testing';
12
17
  import { withClientProvider } from '@dxos/react-client/testing';
13
18
  import { Select, Toolbar } from '@dxos/react-ui';
14
19
  import { withTheme } from '@dxos/react-ui/testing';
15
20
  import { withAttention } from '@dxos/react-ui-attention/testing';
16
- import {
17
- CanvasGraphModel,
18
- Editor,
19
- type EditorController,
20
- type EditorRootProps,
21
- ShapeRegistry,
22
- } from '@dxos/react-ui-canvas-editor';
21
+ import { Editor, type EditorController, type EditorRootProps, ShapeRegistry } from '@dxos/react-ui-canvas-editor';
23
22
  import { Container, useSelection } from '@dxos/react-ui-canvas-editor/testing';
23
+ import { Form } from '@dxos/react-ui-form';
24
24
  import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
25
25
 
26
26
  import { DiagnosticOverlay } from './components';
27
27
  import { ComputeShapeLayout } from './compute-layout';
28
- import { type ComputeGraphController } from './graph';
28
+ import { type ComputeGraphController, createComputeGraphController } from './graph';
29
29
  import { ComputeContext, useComputeGraphController, useGraphMonitor } from './hooks';
30
30
  import { computeShapes } from './registry';
31
31
  import { type ComputeShape } from './shapes';
@@ -33,8 +33,8 @@ import {
33
33
  createArtifactCircuit,
34
34
  createAudioCircuit,
35
35
  createBasicCircuit,
36
- createComputeGraphController,
37
36
  createControlCircuit,
37
+ createEmptyCircuit,
38
38
  createGPTRealtimeCircuit,
39
39
  createGptCircuit,
40
40
  createLogicCircuit,
@@ -42,10 +42,12 @@ import {
42
42
  createTransformCircuit,
43
43
  } from './testing';
44
44
 
45
- // const FormSchema = Schema.omit<any, any, ['subgraph']>('subgraph')(ComputeNode);
45
+ // TODO(burdon): Replace ServiceContainer.
46
46
 
47
47
  const sidebarTypes: NonNullable<RenderProps['sidebar']>[] = ['canvas', 'compute', 'controller', 'selected'] as const;
48
48
 
49
+ const hiddenArg = { table: { disable: true } };
50
+
49
51
  type RenderProps = EditorRootProps<ComputeShape> &
50
52
  PropsWithChildren<{
51
53
  init?: boolean;
@@ -59,9 +61,10 @@ const DefaultStory = ({
59
61
  children,
60
62
  graph,
61
63
  controller = null,
62
- init,
63
- sidebar: _sidebar,
64
+ sidebar: sidebarProp,
64
65
  registry,
66
+ showGrid = true,
67
+ snapToGrid = true,
65
68
  ...props
66
69
  }: RenderProps) => {
67
70
  const editorRef = useRef<EditorController>(null);
@@ -79,7 +82,7 @@ const DefaultStory = ({
79
82
  };
80
83
 
81
84
  // Sidebar.
82
- const [sidebar, setSidebar] = useState(_sidebar);
85
+ const [sidebar, setSidebar] = useState<RenderProps['sidebar']>(sidebarProp);
83
86
  const json = useMemo(() => {
84
87
  switch (sidebar) {
85
88
  case 'canvas':
@@ -119,7 +122,7 @@ const DefaultStory = ({
119
122
  }
120
123
 
121
124
  return (
122
- <div className='grid grid-cols-[1fr,360px] w-full h-full'>
125
+ <div className='grid grid-cols-[1fr,360px] is-full bs-full'>
123
126
  <ComputeContext.Provider value={{ controller }}>
124
127
  <Container id={id} classNames={['flex grow overflow-hidden', !sidebar && 'col-span-2']}>
125
128
  <Editor.Root<ComputeShape>
@@ -131,6 +134,8 @@ const DefaultStory = ({
131
134
  registry={registry}
132
135
  selection={selection}
133
136
  autoZoom
137
+ showGrid={showGrid}
138
+ snapToGrid={snapToGrid}
134
139
  {...props}
135
140
  >
136
141
  <Editor.Canvas>{children}</Editor.Canvas>
@@ -141,7 +146,7 @@ const DefaultStory = ({
141
146
  </ComputeContext.Provider>
142
147
 
143
148
  {sidebar && (
144
- <Container id='sidebar' classNames='flex flex-col h-full overflow-hidden'>
149
+ <Container id='sidebar' classNames='flex flex-col bs-full overflow-hidden'>
145
150
  <Toolbar.Root>
146
151
  <Select.Root value={sidebar} onValueChange={(value) => setSidebar(value as RenderProps['sidebar'])}>
147
152
  <Select.TriggerButton classNames='is-full'>{sidebar}</Select.TriggerButton>
@@ -160,12 +165,18 @@ const DefaultStory = ({
160
165
  </Select.Root>
161
166
  </Toolbar.Root>
162
167
 
163
- <div className='flex flex-col h-full overflow-hidden divide-y divider-separator'>
168
+ <div className='flex flex-col bs-full overflow-hidden divide-y divider-separator'>
169
+ {/* TODO(burdon): Provide schema. */}
164
170
  {sidebar === 'selected' && selected && (
165
- <div>Form</div>
166
- // <Form<ComputeNode> schema={FormSchema} values={getComputeNode(selected.id) ?? {}} Custom={{}} />
171
+ <Form.Root<ComputeNode> values={getComputeNode(selected.id) ?? {}}>
172
+ <Form.Viewport>
173
+ <Form.Content>
174
+ <Form.FieldSet />
175
+ <Form.Actions />
176
+ </Form.Content>
177
+ </Form.Viewport>
178
+ </Form.Root>
167
179
  )}
168
-
169
180
  <JsonFilter data={json} />
170
181
  </div>
171
182
  </Container>
@@ -187,175 +198,120 @@ const meta = {
187
198
  parameters: {
188
199
  layout: 'fullscreen',
189
200
  },
201
+ argTypes: {
202
+ controller: hiddenArg,
203
+ graph: hiddenArg,
204
+ registry: hiddenArg,
205
+ sidebar: {
206
+ control: 'select',
207
+ options: [...sidebarTypes, null],
208
+ },
209
+ },
190
210
  } satisfies Meta<typeof DefaultStory>;
191
211
 
192
212
  export default meta;
193
213
 
194
214
  type Story = StoryObj<typeof meta>;
195
215
 
216
+ const ServiceLayer = Layer.empty.pipe(
217
+ Layer.provideMerge(FunctionInvocationServiceLayerTest()),
218
+ Layer.provideMerge(
219
+ Layer.mergeAll(
220
+ AiServiceTestingPreset('direct'),
221
+ TestDatabaseLayer(),
222
+ CredentialsService.configuredLayer([]),
223
+ TracingService.layerNoop,
224
+ ),
225
+ ),
226
+ Layer.orDie,
227
+ );
228
+
196
229
  export const Default: Story = {
197
230
  args: {
198
- // debug: true,
199
- showGrid: false,
200
- snapToGrid: false,
201
- sidebar: 'selected',
202
231
  registry: new ShapeRegistry(computeShapes),
203
- ...createComputeGraphController(CanvasGraphModel.create<ComputeShape>(), new ServiceContainer()),
232
+ ...createComputeGraphController(createEmptyCircuit(), ManagedRuntime.make(ServiceLayer)),
204
233
  },
205
234
  };
206
235
 
207
236
  export const Beacon: Story = {
208
237
  args: {
209
- // debug: true,
210
- showGrid: false,
211
- snapToGrid: false,
212
- sidebar: 'selected',
213
238
  registry: new ShapeRegistry(computeShapes),
214
- ...createComputeGraphController(createBasicCircuit(), new ServiceContainer()),
239
+ ...createComputeGraphController(createBasicCircuit(), ManagedRuntime.make(ServiceLayer)),
215
240
  },
216
241
  };
217
242
 
218
243
  export const Transform: Story = {
219
244
  args: {
220
- // debug: true,
221
- showGrid: false,
222
- snapToGrid: false,
223
- sidebar: 'selected',
224
245
  registry: new ShapeRegistry(computeShapes),
225
- ...createComputeGraphController(createTransformCircuit(), new ServiceContainer()),
246
+ ...createComputeGraphController(createTransformCircuit(), ManagedRuntime.make(ServiceLayer)),
226
247
  },
227
248
  };
228
249
 
229
250
  export const Logic: Story = {
230
251
  args: {
231
- // debug: true,
232
- showGrid: false,
233
- snapToGrid: false,
234
- sidebar: 'compute',
235
252
  registry: new ShapeRegistry(computeShapes),
236
- ...createComputeGraphController(createLogicCircuit(), new ServiceContainer()),
253
+ ...createComputeGraphController(createLogicCircuit(), ManagedRuntime.make(ServiceLayer)),
237
254
  },
238
255
  };
239
256
 
240
257
  export const Control: Story = {
241
258
  args: {
242
- // debug: true,
243
- showGrid: false,
244
- snapToGrid: false,
245
- sidebar: 'compute',
246
259
  registry: new ShapeRegistry(computeShapes),
247
- ...createComputeGraphController(createControlCircuit(), new ServiceContainer()),
260
+ ...createComputeGraphController(createControlCircuit(), ManagedRuntime.make(ServiceLayer)),
248
261
  },
249
262
  };
250
263
 
251
264
  export const Template: Story = {
252
265
  args: {
253
- showGrid: false,
254
- snapToGrid: false,
255
- // sidebar: 'controller',
256
266
  registry: new ShapeRegistry(computeShapes),
257
- ...createComputeGraphController(
258
- createTemplateCircuit(),
259
- new ServiceContainer().setServices({
260
- // ai: AiService.make(new Edge AiServiceClient({ endpoint: localServiceEndpoints.ai })),
261
- }),
262
- ),
267
+ ...createComputeGraphController(createTemplateCircuit(), ManagedRuntime.make(ServiceLayer)),
263
268
  },
264
269
  };
265
270
 
266
271
  export const GPT: Story = {
267
272
  args: {
268
- // debug: true,
269
- showGrid: false,
270
- snapToGrid: false,
271
- // sidebar: 'json',
272
- sidebar: 'controller',
273
273
  registry: new ShapeRegistry(computeShapes),
274
- ...createComputeGraphController(
275
- createGptCircuit({ history: true }),
276
- new ServiceContainer().setServices({
277
- // ai: AiService.make(new Edge AiServiceClient({ endpoint: localServiceEndpoints.ai })),
278
- }),
279
- ),
274
+ ...createComputeGraphController(createGptCircuit({ history: true }), ManagedRuntime.make(ServiceLayer)),
280
275
  },
281
276
  };
282
277
 
283
278
  export const Plugins: Story = {
284
279
  args: {
285
- // debug: true,
286
- showGrid: false,
287
- snapToGrid: false,
288
- // sidebar: 'json',
289
280
  registry: new ShapeRegistry(computeShapes),
290
281
  ...createComputeGraphController(
291
282
  createGptCircuit({ history: true, image: true, artifact: true }),
292
- new ServiceContainer().setServices({
293
- // ai: AiService.make(new Edge AiServiceClient({ endpoint: SERVICES_CONFIG.local.ai.server })),
294
- }),
283
+ ManagedRuntime.make(ServiceLayer),
295
284
  ),
296
285
  },
297
286
  };
298
287
 
299
288
  export const Artifact: Story = {
300
289
  args: {
301
- // debug: true,
302
- showGrid: false,
303
- snapToGrid: false,
304
- // sidebar: 'json',
305
290
  registry: new ShapeRegistry(computeShapes),
306
- ...createComputeGraphController(
307
- createArtifactCircuit(),
308
- new ServiceContainer().setServices({
309
- // ai: AiService.make(new Edge AiServiceClient({ endpoint: SERVICES_CONFIG.local.ai.server })),
310
- }),
311
- ),
291
+ ...createComputeGraphController(createArtifactCircuit(), ManagedRuntime.make(ServiceLayer)),
312
292
  },
313
293
  };
314
294
 
315
295
  export const ImageGen: Story = {
316
296
  args: {
317
- // debug: true,
318
- showGrid: false,
319
- snapToGrid: false,
320
- // sidebar: 'json',
321
- sidebar: 'controller',
322
297
  registry: new ShapeRegistry(computeShapes),
323
298
  ...createComputeGraphController(
324
299
  createGptCircuit({ image: true, artifact: true }),
325
- new ServiceContainer().setServices({
326
- // ai: AiService.make(createTestAiServiceClient()),
327
- }),
300
+ ManagedRuntime.make(ServiceLayer),
328
301
  ),
329
302
  },
330
303
  };
331
304
 
332
305
  export const Audio: Story = {
333
306
  args: {
334
- // debug: true,
335
- showGrid: false,
336
- snapToGrid: false,
337
- sidebar: 'controller',
338
307
  registry: new ShapeRegistry(computeShapes),
339
- ...createComputeGraphController(
340
- createAudioCircuit(),
341
- new ServiceContainer().setServices({
342
- // ai: AiService.make(createTestAiServiceClient()),
343
- }),
344
- ),
308
+ ...createComputeGraphController(createAudioCircuit(), ManagedRuntime.make(ServiceLayer)),
345
309
  },
346
310
  };
347
311
 
348
312
  export const Voice: Story = {
349
313
  args: {
350
- showGrid: false,
351
- snapToGrid: false,
352
- sidebar: 'controller',
353
314
  registry: new ShapeRegistry(computeShapes),
354
- ...createComputeGraphController(
355
- createGPTRealtimeCircuit(),
356
- new ServiceContainer().setServices({
357
- // ai: AiService.make(createTestAiServiceClient()),
358
- }),
359
- ),
315
+ ...createComputeGraphController(createGPTRealtimeCircuit(), ManagedRuntime.make(ServiceLayer)),
360
316
  },
361
317
  };