@dxos/plugin-script 0.6.12 → 0.6.13-main.09887cd

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 (182) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/browser/{ScriptEditor-5Y3EROG3.mjs → ScriptContainer-M4MDQTBU.mjs} +258 -106
  3. package/dist/lib/browser/ScriptContainer-M4MDQTBU.mjs.map +7 -0
  4. package/dist/lib/browser/{chunk-DL5XQRQM.mjs → chunk-G6FWCTGT.mjs} +7 -5
  5. package/dist/lib/browser/chunk-G6FWCTGT.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-RHEZ5LUU.mjs → chunk-G6H56WFS.mjs} +51 -2
  7. package/dist/lib/browser/{chunk-RHEZ5LUU.mjs.map → chunk-G6H56WFS.mjs.map} +4 -4
  8. package/dist/lib/browser/{chunk-O4LWBX6A.mjs → chunk-KXVQPS4Y.mjs} +2 -2
  9. package/dist/lib/browser/{chunk-O4LWBX6A.mjs.map → chunk-KXVQPS4Y.mjs.map} +2 -2
  10. package/dist/lib/browser/chunk-SGQHRB4P.mjs +17 -0
  11. package/dist/lib/browser/chunk-SGQHRB4P.mjs.map +7 -0
  12. package/dist/lib/browser/edge/index.mjs +3 -1
  13. package/dist/lib/browser/index.mjs +80 -62
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/meta.mjs +1 -1
  17. package/dist/lib/browser/types/index.mjs +2 -2
  18. package/dist/lib/node/ScriptContainer-KMIPKT3H.cjs +668 -0
  19. package/dist/lib/node/ScriptContainer-KMIPKT3H.cjs.map +7 -0
  20. package/dist/lib/node/{chunk-5RBVXKXT.cjs → chunk-25PQE7FL.cjs} +6 -6
  21. package/dist/lib/node/{chunk-5RBVXKXT.cjs.map → chunk-25PQE7FL.cjs.map} +2 -2
  22. package/dist/lib/node/{chunk-4GTXIELQ.cjs → chunk-ACLCRWDB.cjs} +44 -6
  23. package/dist/lib/node/chunk-ACLCRWDB.cjs.map +7 -0
  24. package/dist/lib/node/{TypescriptEditor-M3WWFIP2.cjs → chunk-EJC55SDD.cjs} +18 -8
  25. package/dist/lib/node/chunk-EJC55SDD.cjs.map +7 -0
  26. package/dist/lib/node/{chunk-PFH3ROEH.cjs → chunk-UZ3ZXEBF.cjs} +11 -8
  27. package/dist/lib/node/chunk-UZ3ZXEBF.cjs.map +7 -0
  28. package/dist/lib/node/edge/index.cjs +10 -8
  29. package/dist/lib/node/edge/index.cjs.map +2 -2
  30. package/dist/lib/node/index.cjs +95 -82
  31. package/dist/lib/node/index.cjs.map +4 -4
  32. package/dist/lib/node/meta.cjs +3 -3
  33. package/dist/lib/node/meta.cjs.map +1 -1
  34. package/dist/lib/node/meta.json +1 -1
  35. package/dist/lib/node/types/index.cjs +5 -5
  36. package/dist/lib/node/types/index.cjs.map +1 -1
  37. package/dist/lib/node-esm/ScriptContainer-EAE6L5JV.mjs +666 -0
  38. package/dist/lib/node-esm/ScriptContainer-EAE6L5JV.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-2NX3HWPM.mjs +245 -0
  40. package/dist/lib/node-esm/chunk-2NX3HWPM.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-7EDYDVQH.mjs +47 -0
  42. package/dist/lib/node-esm/chunk-7EDYDVQH.mjs.map +7 -0
  43. package/dist/lib/node-esm/chunk-GO7HYFM5.mjs +19 -0
  44. package/dist/lib/node-esm/chunk-GO7HYFM5.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-LDLNTVAK.mjs +280 -0
  46. package/dist/lib/node-esm/chunk-LDLNTVAK.mjs.map +7 -0
  47. package/dist/lib/node-esm/edge/index.mjs +22 -0
  48. package/dist/lib/node-esm/index.mjs +310 -0
  49. package/dist/lib/node-esm/index.mjs.map +7 -0
  50. package/dist/lib/node-esm/meta.json +1 -0
  51. package/dist/lib/node-esm/meta.mjs +10 -0
  52. package/dist/lib/node-esm/meta.mjs.map +7 -0
  53. package/dist/lib/node-esm/types/index.mjs +13 -0
  54. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  55. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  56. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -0
  57. package/dist/types/src/components/DebugPanel/index.d.ts +2 -0
  58. package/dist/types/src/components/DebugPanel/index.d.ts.map +1 -0
  59. package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/FrameContainer.d.ts +1 -1
  60. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -0
  61. package/dist/types/src/components/FrameContainer/frame.d.ts.map +1 -0
  62. package/dist/types/src/components/FrameContainer/index.d.ts.map +1 -0
  63. package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts +1 -3
  64. package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts.map +1 -1
  65. package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts +1 -1
  66. package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts.map +1 -1
  67. package/dist/types/src/components/ScriptContainer.d.ts +5 -0
  68. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -0
  69. package/dist/types/src/components/ScriptEditor.d.ts +4 -5
  70. package/dist/types/src/components/ScriptEditor.d.ts.map +1 -1
  71. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +6 -0
  72. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -0
  73. package/dist/types/src/components/ScriptSettings/index.d.ts +2 -0
  74. package/dist/types/src/components/ScriptSettings/index.d.ts.map +1 -0
  75. package/dist/types/src/components/Toolbar/Toolbar.d.ts +23 -0
  76. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
  77. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +17 -0
  78. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -0
  79. package/dist/types/src/components/Toolbar/index.d.ts +2 -0
  80. package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
  81. package/dist/types/src/components/{TypescriptEditor.d.ts → TypescriptEditor/TypescriptEditor.d.ts} +1 -2
  82. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -0
  83. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +10 -0
  84. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -0
  85. package/dist/types/src/components/TypescriptEditor/index.d.ts +2 -0
  86. package/dist/types/src/components/TypescriptEditor/index.d.ts.map +1 -0
  87. package/dist/types/src/components/index.d.ts +2 -2
  88. package/dist/types/src/components/index.d.ts.map +1 -1
  89. package/dist/types/src/edge/functions.d.ts +1 -0
  90. package/dist/types/src/edge/functions.d.ts.map +1 -1
  91. package/dist/types/src/meta.d.ts +4 -9
  92. package/dist/types/src/meta.d.ts.map +1 -1
  93. package/dist/types/src/templates/chat.d.ts +6 -0
  94. package/dist/types/src/templates/chat.d.ts.map +1 -0
  95. package/dist/types/src/templates/chess.d.ts +6 -0
  96. package/dist/types/src/templates/chess.d.ts.map +1 -0
  97. package/dist/types/src/templates/echo.d.ts +6 -0
  98. package/dist/types/src/templates/echo.d.ts.map +1 -0
  99. package/dist/types/src/templates/email.d.ts +6 -0
  100. package/dist/types/src/templates/email.d.ts.map +1 -0
  101. package/dist/types/src/templates/forex.d.ts +6 -0
  102. package/dist/types/src/templates/forex.d.ts.map +1 -0
  103. package/dist/types/src/templates.d.ts +8 -0
  104. package/dist/types/src/templates.d.ts.map +1 -0
  105. package/dist/types/src/translations.d.ts +2 -0
  106. package/dist/types/src/translations.d.ts.map +1 -1
  107. package/dist/types/src/types/script.d.ts +4 -4
  108. package/dist/types/src/types/types.d.ts +4 -3
  109. package/dist/types/src/types/types.d.ts.map +1 -1
  110. package/package.json +61 -55
  111. package/src/ScriptPlugin.tsx +22 -38
  112. package/src/bundler/bundler.test.ts +12 -2
  113. package/src/components/{DebugPanel.tsx → DebugPanel/DebugPanel.tsx} +48 -41
  114. package/src/components/DebugPanel/index.ts +5 -0
  115. package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/FrameContainer.tsx +1 -1
  116. package/src/components/ScriptBlock/ScriptBlock.stories.tsx +4 -3
  117. package/src/components/ScriptBlock/ScriptBlock.tsx +10 -36
  118. package/src/components/ScriptContainer.tsx +22 -0
  119. package/src/components/ScriptEditor.tsx +47 -46
  120. package/src/components/ScriptSettings/ScriptSettings.tsx +47 -0
  121. package/src/components/ScriptSettings/index.ts +5 -0
  122. package/src/components/{Toolbar.stories.tsx → Toolbar/Toolbar.stories.tsx} +10 -1
  123. package/src/components/Toolbar/Toolbar.tsx +180 -0
  124. package/src/components/{ScriptBlock/Splitter → Toolbar}/index.ts +1 -1
  125. package/src/components/{TypescriptEditor.stories.tsx → TypescriptEditor/TypescriptEditor.stories.tsx} +7 -28
  126. package/src/components/{TypescriptEditor.tsx → TypescriptEditor/TypescriptEditor.tsx} +1 -3
  127. package/src/components/TypescriptEditor/index.ts +5 -0
  128. package/src/components/index.ts +3 -2
  129. package/src/edge/functions.ts +1 -0
  130. package/src/meta.ts +15 -0
  131. package/src/templates/chat.ts +102 -0
  132. package/src/templates/chess.ts +41 -0
  133. package/src/templates/echo.ts +15 -0
  134. package/src/templates/email.ts +38 -0
  135. package/src/templates/forex.ts +21 -0
  136. package/src/templates.ts +54 -0
  137. package/src/translations.ts +2 -0
  138. package/src/types/types.ts +9 -5
  139. package/dist/lib/browser/ScriptEditor-5Y3EROG3.mjs.map +0 -7
  140. package/dist/lib/browser/TypescriptEditor-GPE72Y6I.mjs +0 -9
  141. package/dist/lib/browser/chunk-DL5XQRQM.mjs.map +0 -7
  142. package/dist/lib/browser/chunk-JBACGDOJ.mjs +0 -21
  143. package/dist/lib/browser/chunk-JBACGDOJ.mjs.map +0 -7
  144. package/dist/lib/browser/chunk-MRGOT5RF.mjs +0 -78
  145. package/dist/lib/browser/chunk-MRGOT5RF.mjs.map +0 -7
  146. package/dist/lib/node/ScriptEditor-YCUQFWQM.cjs +0 -526
  147. package/dist/lib/node/ScriptEditor-YCUQFWQM.cjs.map +0 -7
  148. package/dist/lib/node/TypescriptEditor-M3WWFIP2.cjs.map +0 -7
  149. package/dist/lib/node/chunk-4GTXIELQ.cjs.map +0 -7
  150. package/dist/lib/node/chunk-4VMNBXWU.cjs +0 -54
  151. package/dist/lib/node/chunk-4VMNBXWU.cjs.map +0 -7
  152. package/dist/lib/node/chunk-IMLDKD5Y.cjs +0 -111
  153. package/dist/lib/node/chunk-IMLDKD5Y.cjs.map +0 -7
  154. package/dist/lib/node/chunk-PFH3ROEH.cjs.map +0 -7
  155. package/dist/types/src/components/DebugPanel.d.ts.map +0 -1
  156. package/dist/types/src/components/ScriptBlock/FrameContainer/FrameContainer.d.ts.map +0 -1
  157. package/dist/types/src/components/ScriptBlock/FrameContainer/frame.d.ts.map +0 -1
  158. package/dist/types/src/components/ScriptBlock/FrameContainer/index.d.ts.map +0 -1
  159. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.d.ts +0 -15
  160. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.d.ts.map +0 -1
  161. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts +0 -13
  162. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts.map +0 -1
  163. package/dist/types/src/components/ScriptBlock/Splitter/index.d.ts +0 -2
  164. package/dist/types/src/components/ScriptBlock/Splitter/index.d.ts.map +0 -1
  165. package/dist/types/src/components/Toolbar.d.ts +0 -13
  166. package/dist/types/src/components/Toolbar.d.ts.map +0 -1
  167. package/dist/types/src/components/Toolbar.stories.d.ts +0 -14
  168. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  169. package/dist/types/src/components/TypescriptEditor.d.ts.map +0 -1
  170. package/dist/types/src/components/TypescriptEditor.stories.d.ts +0 -10
  171. package/dist/types/src/components/TypescriptEditor.stories.d.ts.map +0 -1
  172. package/src/components/ScriptBlock/Splitter/Splitter.stories.tsx +0 -37
  173. package/src/components/ScriptBlock/Splitter/Splitter.tsx +0 -52
  174. package/src/components/Toolbar.tsx +0 -147
  175. package/src/meta.tsx +0 -19
  176. /package/dist/lib/{browser/TypescriptEditor-GPE72Y6I.mjs.map → node-esm/edge/index.mjs.map} +0 -0
  177. /package/dist/types/src/components/{DebugPanel.d.ts → DebugPanel/DebugPanel.d.ts} +0 -0
  178. /package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.d.ts +0 -0
  179. /package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/index.d.ts +0 -0
  180. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.html +0 -0
  181. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.tsx +0 -0
  182. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/index.ts +0 -0
@@ -1,12 +1,12 @@
1
1
  import { ref, S } from '@dxos/echo-schema';
2
2
  declare const ScriptType_base: import("@dxos/echo-schema").AbstractTypedObject<{
3
3
  name?: string | undefined;
4
+ description?: string | undefined;
4
5
  source: import("@dxos/echo-schema").Ref<{
5
6
  content: string;
6
7
  } & {
7
8
  id: string;
8
9
  }>;
9
- description?: string | undefined;
10
10
  changed?: boolean | undefined;
11
11
  } & {
12
12
  id: string;
@@ -27,19 +27,19 @@ export declare class ScriptType extends ScriptType_base {
27
27
  }
28
28
  declare const FunctionType_base: import("@dxos/echo-schema").AbstractTypedObject<{
29
29
  name?: string | undefined;
30
- version: number;
31
30
  source?: import("@dxos/echo-schema").Ref<{
32
31
  name?: string | undefined;
32
+ description?: string | undefined;
33
33
  source: import("@dxos/echo-schema").Ref<{
34
34
  content: string;
35
35
  } & {
36
36
  id: string;
37
37
  }>;
38
- description?: string | undefined;
39
38
  changed?: boolean | undefined;
40
39
  } & {
41
40
  id: string;
42
41
  }>;
42
+ version: number;
43
43
  binding?: string | undefined;
44
44
  } & {
45
45
  id: string;
@@ -49,12 +49,12 @@ declare const FunctionType_base: import("@dxos/echo-schema").AbstractTypedObject
49
49
  binding: S.optional<typeof S.String>;
50
50
  source: S.optional<ref<{
51
51
  name?: string | undefined;
52
+ description?: string | undefined;
52
53
  source: import("@dxos/echo-schema").Ref<{
53
54
  content: string;
54
55
  } & {
55
56
  id: string;
56
57
  }>;
57
- description?: string | undefined;
58
58
  changed?: boolean | undefined;
59
59
  } & {
60
60
  id: string;
@@ -1,8 +1,9 @@
1
- import type { GraphBuilderProvides, IntentResolverProvides, MetadataRecordsProvides, SurfaceProvides, TranslationsProvides } from '@dxos/app-framework';
1
+ import type { GraphBuilderProvides, IntentResolverProvides, MetadataRecordsProvides, SettingsProvides, SurfaceProvides, TranslationsProvides } from '@dxos/app-framework';
2
2
  import { type SchemaProvides } from '@dxos/plugin-client';
3
- import { type StackProvides } from '@dxos/plugin-stack';
3
+ import { type SpaceInitProvides } from '@dxos/plugin-space';
4
4
  export declare enum ScriptAction {
5
5
  CREATE = "dxos.org/plugin/script/create"
6
6
  }
7
- export type ScriptPluginProvides = SurfaceProvides & IntentResolverProvides & GraphBuilderProvides & MetadataRecordsProvides & TranslationsProvides & SchemaProvides & StackProvides;
7
+ export type ScriptSettingsProps = {};
8
+ export type ScriptPluginProvides = GraphBuilderProvides & IntentResolverProvides & MetadataRecordsProvides & SchemaProvides & SettingsProvides<ScriptSettingsProps> & SpaceInitProvides & SurfaceProvides & TranslationsProvides;
8
9
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,oBAAY,YAAY;IACtB,MAAM,kCAA4B;CACnC;AAED,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAChD,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,oBAAoB,GACpB,cAAc,GACd,aAAa,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,oBAAY,YAAY;IACtB,MAAM,kCAA4B;CACnC;AAED,MAAM,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAErC,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,GACrD,sBAAsB,GACtB,uBAAuB,GACvB,cAAc,GACd,gBAAgB,CAAC,mBAAmB,CAAC,GACrC,iBAAiB,GACjB,eAAe,GACf,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,37 +1,41 @@
1
1
  {
2
2
  "name": "@dxos/plugin-script",
3
- "version": "0.6.12",
3
+ "version": "0.6.13-main.09887cd",
4
4
  "description": "Braneframe notebook plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
7
  "license": "MIT",
8
8
  "author": "DXOS.org",
9
9
  "exports": {
10
- ".": {
11
- "browser": "./dist/lib/browser/index.mjs",
12
- "node": {
13
- "default": "./dist/lib/node/index.cjs"
14
- },
15
- "types": "./dist/types/src/index.d.ts"
16
- },
17
10
  "./edge": {
18
11
  "browser": "./dist/lib/browser/edge/index.mjs",
19
12
  "node": {
20
- "default": "./dist/lib/node/edge/index.cjs"
13
+ "require": "./dist/lib/node/edge/index.cjs",
14
+ "default": "./dist/lib/node-esm/edge/index.mjs"
21
15
  },
22
16
  "types": "./dist/types/src/edge/index.d.ts"
23
17
  },
18
+ ".": {
19
+ "browser": "./dist/lib/browser/index.mjs",
20
+ "node": {
21
+ "require": "./dist/lib/node/index.cjs",
22
+ "default": "./dist/lib/node-esm/index.mjs"
23
+ },
24
+ "types": "./dist/types/src/index.d.ts"
25
+ },
24
26
  "./meta": {
25
27
  "browser": "./dist/lib/browser/meta.mjs",
26
28
  "node": {
27
- "default": "./dist/lib/node/meta.cjs"
29
+ "require": "./dist/lib/node/meta.cjs",
30
+ "default": "./dist/lib/node-esm/meta.mjs"
28
31
  },
29
32
  "types": "./dist/types/src/meta.d.ts"
30
33
  },
31
34
  "./types": {
32
35
  "browser": "./dist/lib/browser/types/index.mjs",
33
36
  "node": {
34
- "default": "./dist/lib/node/types/index.cjs"
37
+ "require": "./dist/lib/node/types/index.cjs",
38
+ "default": "./dist/lib/node-esm/types/index.mjs"
35
39
  },
36
40
  "types": "./dist/types/src/types/index.d.ts"
37
41
  }
@@ -55,14 +59,15 @@
55
59
  "src"
56
60
  ],
57
61
  "dependencies": {
58
- "@codemirror/autocomplete": "^6.18.0",
62
+ "@codemirror/autocomplete": "^6.18.1",
59
63
  "@codemirror/lang-javascript": "^6.2.2",
60
- "@codemirror/language": "^6.10.2",
61
- "@codemirror/lint": "^6.8.1",
64
+ "@codemirror/language": "^6.10.3",
65
+ "@codemirror/lint": "^6.8.2",
62
66
  "@codemirror/state": "^6.4.1",
63
67
  "@codemirror/theme-one-dark": "^6.1.2",
64
- "@codemirror/view": "^6.29.1",
65
- "@lezer/common": "^1.2.1",
68
+ "@codemirror/view": "^6.34.1",
69
+ "@effect/schema": "^0.75.1",
70
+ "@lezer/common": "^1.2.2",
66
71
  "@preact/signals-core": "^1.6.0",
67
72
  "@typescript/vfs": "^1.6.0",
68
73
  "@valtown/codemirror-ts": "^2.2.0",
@@ -72,32 +77,33 @@
72
77
  "lodash.get": "^4.4.2",
73
78
  "prettier": "^3.2.4",
74
79
  "react-syntax-highlighter": "^15.5.0",
75
- "typescript": "^5.5.4",
76
- "@dxos/app-framework": "0.6.12",
77
- "@dxos/client-protocol": "0.6.12",
78
- "@dxos/async": "0.6.12",
79
- "@dxos/crypto": "0.6.12",
80
- "@dxos/client": "0.6.12",
81
- "@dxos/debug": "0.6.12",
82
- "@dxos/invariant": "0.6.12",
83
- "@dxos/keys": "0.6.12",
84
- "@dxos/echo-schema": "0.6.12",
85
- "@dxos/log": "0.6.12",
86
- "@dxos/plugin-client": "0.6.12",
87
- "@dxos/plugin-graph": "0.6.12",
88
- "@dxos/plugin-explorer": "0.6.12",
89
- "@dxos/plugin-markdown": "0.6.12",
90
- "@dxos/plugin-space": "0.6.12",
91
- "@dxos/plugin-stack": "0.6.12",
92
- "@dxos/protocols": "0.6.12",
93
- "@dxos/react-client": "0.6.12",
94
- "@dxos/react-ui-attention": "0.6.12",
95
- "@dxos/plugin-theme": "0.6.12",
96
- "@dxos/react-ui-syntax-highlighter": "0.6.12",
97
- "@dxos/rpc": "0.6.12",
98
- "@dxos/react-ui-editor": "0.6.12",
99
- "@dxos/util": "0.6.12",
100
- "@dxos/rpc-tunnel": "0.6.12"
80
+ "typescript": "^5.6.2",
81
+ "@dxos/app-framework": "0.6.13-main.09887cd",
82
+ "@dxos/client": "0.6.13-main.09887cd",
83
+ "@dxos/async": "0.6.13-main.09887cd",
84
+ "@dxos/client-protocol": "0.6.13-main.09887cd",
85
+ "@dxos/crypto": "0.6.13-main.09887cd",
86
+ "@dxos/debug": "0.6.13-main.09887cd",
87
+ "@dxos/invariant": "0.6.13-main.09887cd",
88
+ "@dxos/echo-schema": "0.6.13-main.09887cd",
89
+ "@dxos/keys": "0.6.13-main.09887cd",
90
+ "@dxos/log": "0.6.13-main.09887cd",
91
+ "@dxos/plugin-client": "0.6.13-main.09887cd",
92
+ "@dxos/plugin-explorer": "0.6.13-main.09887cd",
93
+ "@dxos/plugin-graph": "0.6.13-main.09887cd",
94
+ "@dxos/plugin-markdown": "0.6.13-main.09887cd",
95
+ "@dxos/plugin-settings": "0.6.13-main.09887cd",
96
+ "@dxos/plugin-space": "0.6.13-main.09887cd",
97
+ "@dxos/plugin-stack": "0.6.13-main.09887cd",
98
+ "@dxos/plugin-theme": "0.6.13-main.09887cd",
99
+ "@dxos/protocols": "0.6.13-main.09887cd",
100
+ "@dxos/react-client": "0.6.13-main.09887cd",
101
+ "@dxos/react-ui-attention": "0.6.13-main.09887cd",
102
+ "@dxos/react-ui-editor": "0.6.13-main.09887cd",
103
+ "@dxos/react-ui-syntax-highlighter": "0.6.13-main.09887cd",
104
+ "@dxos/rpc": "0.6.13-main.09887cd",
105
+ "@dxos/rpc-tunnel": "0.6.13-main.09887cd",
106
+ "@dxos/util": "0.6.13-main.09887cd"
101
107
  },
102
108
  "devDependencies": {
103
109
  "@phosphor-icons/react": "^2.1.5",
@@ -106,21 +112,21 @@
106
112
  "@types/react-dom": "~18.2.0",
107
113
  "react": "~18.2.0",
108
114
  "react-dom": "~18.2.0",
109
- "vite": "^5.3.4",
110
- "@dxos/echo-generator": "0.6.12",
111
- "@dxos/random": "0.6.12",
112
- "@dxos/react-ui": "0.6.12",
113
- "@dxos/react-ui-theme": "0.6.12",
114
- "@dxos/react-ui-mosaic": "0.6.12",
115
- "@dxos/storybook-utils": "0.6.12"
115
+ "vite": "5.4.7",
116
+ "@dxos/echo-generator": "0.6.13-main.09887cd",
117
+ "@dxos/random": "0.6.13-main.09887cd",
118
+ "@dxos/react-ui": "0.6.13-main.09887cd",
119
+ "@dxos/react-ui-theme": "0.6.13-main.09887cd",
120
+ "@dxos/react-ui-mosaic": "0.6.13-main.09887cd",
121
+ "@dxos/storybook-utils": "0.6.13-main.09887cd"
116
122
  },
117
- "optionalDependencies": {
123
+ "peerDependencies": {
118
124
  "@phosphor-icons/react": "^2.1.5",
119
- "react": "^18.0.0",
120
- "react-dom": "^18.0.0",
121
- "@dxos/react-ui": "0.6.12",
122
- "@dxos/react-ui-mosaic": "0.6.12",
123
- "@dxos/react-ui-theme": "0.6.12"
125
+ "react": "~18.2.0",
126
+ "react-dom": "~18.2.0",
127
+ "@dxos/react-ui-mosaic": "0.6.13-main.09887cd",
128
+ "@dxos/react-ui-theme": "0.6.13-main.09887cd",
129
+ "@dxos/react-ui": "0.6.13-main.09887cd"
124
130
  },
125
131
  "publishConfig": {
126
132
  "access": "public"
@@ -2,7 +2,6 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Code, type IconProps } from '@phosphor-icons/react';
6
5
  // @ts-ignore
7
6
  import wasmUrl from 'esbuild-wasm/esbuild.wasm?url';
8
7
  import React from 'react';
@@ -17,8 +16,9 @@ import { loadObjectReferences } from '@dxos/react-client/echo';
17
16
 
18
17
  import { initializeBundler } from './bundler';
19
18
  import { Compiler } from './compiler';
20
- import { ScriptEditor } from './components';
19
+ import { ScriptContainer, ScriptSettings } from './components';
21
20
  import meta, { SCRIPT_PLUGIN } from './meta';
21
+ import { templates } from './templates';
22
22
  import translations from './translations';
23
23
  import { FunctionType, ScriptType } from './types';
24
24
  import { ScriptAction, type ScriptPluginProvides } from './types';
@@ -45,12 +45,12 @@ export const ScriptPlugin = (): PluginDefinition<ScriptPluginProvides> => {
45
45
  await initializeBundler({ wasmUrl });
46
46
  },
47
47
  provides: {
48
+ settings: {},
48
49
  metadata: {
49
50
  records: {
50
51
  [ScriptType.typename]: {
51
52
  placeholder: ['object title placeholder', { ns: SCRIPT_PLUGIN }],
52
- icon: (props: IconProps) => <Code {...props} />,
53
- iconSymbol: 'ph--code--regular',
53
+ icon: 'ph--code--regular',
54
54
  // TODO(wittjosiah): Move out of metadata.
55
55
  loadReferences: (script: ScriptType) => loadObjectReferences(script, (script) => [script.source]),
56
56
  },
@@ -60,6 +60,12 @@ export const ScriptPlugin = (): PluginDefinition<ScriptPluginProvides> => {
60
60
  echo: {
61
61
  schema: [ScriptType, FunctionType],
62
62
  },
63
+ space: {
64
+ onSpaceCreate: {
65
+ label: ['create object label', { ns: SCRIPT_PLUGIN }],
66
+ action: ScriptAction.CREATE,
67
+ },
68
+ },
63
69
  graph: {
64
70
  builder: (plugins) => {
65
71
  const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
@@ -93,8 +99,7 @@ export const ScriptPlugin = (): PluginDefinition<ScriptPluginProvides> => {
93
99
  },
94
100
  properties: {
95
101
  label: ['create object label', { ns: SCRIPT_PLUGIN }],
96
- icon: (props: IconProps) => <Code {...props} />,
97
- iconSymbol: 'ph--code--regular',
102
+ icon: 'ph--code--regular',
98
103
  testId: 'scriptPlugin.createObject',
99
104
  },
100
105
  },
@@ -103,29 +108,19 @@ export const ScriptPlugin = (): PluginDefinition<ScriptPluginProvides> => {
103
108
  });
104
109
  },
105
110
  },
106
- stack: {
107
- creators: [
108
- {
109
- id: 'create-stack-section-script',
110
- testId: 'scriptPlugin.createSection',
111
- type: ['plugin name', { ns: SCRIPT_PLUGIN }],
112
- label: ['create stack section label', { ns: SCRIPT_PLUGIN }],
113
- icon: (props: any) => <Code {...props} />,
114
- intent: {
115
- plugin: SCRIPT_PLUGIN,
116
- action: ScriptAction.CREATE,
117
- },
118
- },
119
- ],
120
- },
121
111
  surface: {
122
112
  component: ({ data, role }) => {
123
- if (role && !['article', 'section'].includes(role)) {
124
- return null;
125
- }
113
+ switch (role) {
114
+ case 'settings': {
115
+ return data.plugin === meta.id ? <ScriptSettings settings={{}} /> : null;
116
+ }
126
117
 
127
- if (data.object instanceof ScriptType) {
128
- return <ScriptEditor env={compiler.environment} script={data.object} role={role} />;
118
+ case 'article': {
119
+ if (data.object instanceof ScriptType) {
120
+ return <ScriptContainer script={data.object} env={compiler.environment} />;
121
+ }
122
+ break;
123
+ }
129
124
  }
130
125
 
131
126
  return null;
@@ -135,7 +130,7 @@ export const ScriptPlugin = (): PluginDefinition<ScriptPluginProvides> => {
135
130
  resolver: (intent) => {
136
131
  switch (intent.action) {
137
132
  case ScriptAction.CREATE: {
138
- return { data: create(ScriptType, { source: create(TextType, { content: example }) }) };
133
+ return { data: create(ScriptType, { source: create(TextType, { content: templates[0].source }) }) };
139
134
  }
140
135
  }
141
136
  },
@@ -143,14 +138,3 @@ export const ScriptPlugin = (): PluginDefinition<ScriptPluginProvides> => {
143
138
  },
144
139
  };
145
140
  };
146
-
147
- // TODO(burdon): Import.
148
- const example = [
149
- 'export default async ({ ',
150
- ' event: { data: { request } },',
151
- ' context: { space, ai } ',
152
- '}: any) => {',
153
- " return new Response('Hello DXOS!');",
154
- '};',
155
- '',
156
- ].join('\n');
@@ -2,11 +2,21 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import { describe, expect, test } from 'vitest';
5
+ // @ts-ignore
6
+ import wasmUrl from 'esbuild-wasm/esbuild.wasm?url';
7
+ import { beforeAll, describe, expect, test } from 'vitest';
6
8
 
7
- import { Bundler } from './bundler';
9
+ import { isNode } from '@dxos/util';
10
+
11
+ import { Bundler, initializeBundler } from './bundler';
8
12
 
9
13
  describe('Bundler', () => {
14
+ beforeAll(async () => {
15
+ if (!isNode()) {
16
+ await initializeBundler({ wasmUrl });
17
+ }
18
+ });
19
+
10
20
  test('Basic', async () => {
11
21
  const bundler = new Bundler({ platform: 'node', sandboxedModules: [], remoteModules: {} });
12
22
  const result = await bundler.bundle('const x = 100'); // TODO(burdon): Test import.
@@ -18,7 +18,7 @@ import {
18
18
  import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
19
19
  import { mx } from '@dxos/react-ui-theme';
20
20
 
21
- import { SCRIPT_PLUGIN } from '../meta';
21
+ import { SCRIPT_PLUGIN } from '../../meta';
22
22
 
23
23
  type State = 'pending' | 'responding';
24
24
 
@@ -47,7 +47,7 @@ export const DebugPanel = ({ classNames, functionUrl, binding: _binding, onBindi
47
47
  const [result, setResult] = useState('');
48
48
  const [state, setState] = useState<State | null>(null);
49
49
 
50
- // TODO(burdon): Persistent history (non-space ECHO data?)
50
+ // TODO(burdon): Persistent history -- at least for session (non-space ECHO data?)
51
51
  const [history, setHistory] = useState<Message[]>([]);
52
52
 
53
53
  const scrollerRef = useRef<HTMLDivElement>(null);
@@ -215,55 +215,62 @@ export const DebugPanel = ({ classNames, functionUrl, binding: _binding, onBindi
215
215
  );
216
216
  };
217
217
 
218
- const RobotAvatar = () => (
219
- <Avatar.Root size={6} variant='circle'>
220
- <Avatar.Frame>
221
- <Avatar.Icon icon='ph--robot--regular' />
222
- </Avatar.Frame>
223
- </Avatar.Root>
224
- );
225
-
226
- const MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {
227
- const { text, data, error } = message;
228
- if (error) {
229
- return <span className={mx(classNames, 'whitespace-pre text-error')}>{String(error)}</span>;
230
- } else if (data) {
231
- return (
232
- <SyntaxHighlighter language='json' className={mx('text-xs', classNames)}>
233
- {JSON.stringify(data, null, 2)}
234
- </SyntaxHighlighter>
235
- );
236
- }
237
-
238
- return <span className={mx(classNames)}>{text || '\u00D8'}</span>;
239
- };
240
-
241
218
  // TODO(burdon): Replace with thread?
242
219
  // TODO(burdon): Button to delete individual messages.
243
- // TODO(burdon): Button to re-run question.
220
+ // TODO(burdon): Button to edit/re-run question.
244
221
  const MessageThread = ({ state, result, history }: { state: State | null; result: string; history: Message[] }) => {
245
222
  return (
246
223
  <>
247
224
  {history.map((message, i) => (
248
- <div key={i} className='grid grid-cols-[3rem_1fr]'>
249
- <div>{message.type === 'response' && <RobotAvatar />}</div>
250
- <div className={mx('flex', message.type === 'request' && 'justify-end')}>
251
- <MessageItem
252
- classNames={[message.type === 'request' && 'p-1 px-2 rounded-lg bg-hoverSurface']}
253
- message={message}
254
- />
225
+ <div key={i} className='grid grid-cols-[3rem_1fr_3rem]'>
226
+ <div className='p-1'>{message.type === 'response' && <RobotAvatar />}</div>
227
+ <div className='overflow-auto'>
228
+ <MessageItem message={message} />
255
229
  </div>
256
230
  </div>
257
231
  ))}
258
- <div className='grid grid-cols-[3rem_1fr]'>
259
- <div>
260
- {(state === 'pending' && <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin-slow' />) ||
261
- (result.length > 0 && <RobotAvatar />)}
262
- </div>
263
- <div>
264
- <span>{result}</span>
232
+ {result?.length > 0 && (
233
+ <div className='grid grid-cols-[3rem_1fr_3rem]'>
234
+ <div className='p-1'>
235
+ {(state === 'pending' && <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin' />) || (
236
+ <Icon icon='ph--robot--regular' size={6} classNames='animate-[pulse_1s_ease-in-out_infinite]' />
237
+ )}
238
+ </div>
239
+ <div className='overflow-auto'>
240
+ <MessageItem message={{ type: 'response', text: result }} />
241
+ </div>
265
242
  </div>
266
- </div>
243
+ )}
267
244
  </>
268
245
  );
269
246
  };
247
+
248
+ const MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {
249
+ const { type, text, data, error } = message;
250
+ const wrapper = 'p-1 px-2 rounded-lg bg-hoverSurface overflow-auto';
251
+ return (
252
+ <div className={mx('flex', type === 'request' ? 'ml-[8rem] justify-end' : 'mr-[8rem]', classNames)}>
253
+ {error && <div className={mx(wrapper, 'whitespace-pre text-error')}>{String(error)}</div>}
254
+
255
+ {text !== undefined && (
256
+ <div className={mx(wrapper, type === 'request' && 'bg-primary-400 dark:bg-primary-600')}>
257
+ {text || '\u00D8'}
258
+ </div>
259
+ )}
260
+
261
+ {data && (
262
+ <SyntaxHighlighter language='json' className={mx(wrapper, 'px-8 py-2 text-xs')}>
263
+ {JSON.stringify(data, null, 2)}
264
+ </SyntaxHighlighter>
265
+ )}
266
+ </div>
267
+ );
268
+ };
269
+
270
+ const RobotAvatar = () => (
271
+ <Avatar.Root size={6} variant='circle'>
272
+ <Avatar.Frame>
273
+ <Avatar.Icon icon='ph--robot--regular' />
274
+ </Avatar.Frame>
275
+ </Avatar.Root>
276
+ );
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './DebugPanel';
@@ -11,7 +11,7 @@ import { baseSurface, mx } from '@dxos/react-ui-theme';
11
11
  import { createProtoRpcPeer } from '@dxos/rpc';
12
12
  import { createIFramePort } from '@dxos/rpc-tunnel';
13
13
 
14
- import { type BundlerResult } from '../../../bundler';
14
+ import { type BundlerResult } from '../../bundler';
15
15
 
16
16
  export type FrameContainerProps = {
17
17
  containerUrl: string;
@@ -3,6 +3,7 @@
3
3
  //
4
4
 
5
5
  import '@dxos-theme';
6
+
6
7
  import React, { useEffect, useMemo } from 'react';
7
8
 
8
9
  import { createSpaceObjectGenerator, TestSchemaType } from '@dxos/echo-generator';
@@ -12,10 +13,10 @@ import { create, createEchoObject, useSpaces } from '@dxos/react-client/echo';
12
13
  import { withClientProvider } from '@dxos/react-client/testing';
13
14
  import { withLayout, withTheme } from '@dxos/storybook-utils';
14
15
 
15
- // @ts-ignore
16
- import mainUrl from './FrameContainer/frame?url';
17
16
  import { ScriptBlock } from './ScriptBlock';
18
17
  import { ScriptType } from '../../types';
18
+ // @ts-ignore
19
+ import mainUrl from '../FrameContainer/frame?url';
19
20
 
20
21
  const code = [
21
22
  "import { Filter, useQuery, useSpaces} from '@dxos/react-client/echo';",
@@ -64,7 +65,7 @@ const Story = () => {
64
65
  export default {
65
66
  title: 'plugin-script/ScriptBlock',
66
67
  component: ScriptBlock,
67
- decorators: [withTheme, withLayout({ fullscreen: true, tooltips: true }), withClientProvider({ createSpace: true })],
68
+ decorators: [withClientProvider({ createSpace: true }), withTheme, withLayout({ fullscreen: true, tooltips: true })],
68
69
  render: Story,
69
70
  };
70
71