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