@dxos/plugin-script 0.8.4-main.72ec0f3 → 0.8.4-main.7ace549
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.
- package/dist/lib/browser/{DeploymentDialog-MZX4T77L.mjs → DeploymentDialog-5TKNGPVR.mjs} +4 -4
- package/dist/lib/browser/{NotebookContainer-RTESC4OV.mjs → NotebookContainer-MHY3DXDE.mjs} +21 -21
- package/dist/lib/browser/NotebookContainer-MHY3DXDE.mjs.map +7 -0
- package/dist/lib/browser/{ScriptContainer-T2BAZDJ4.mjs → ScriptContainer-CW6YN3DQ.mjs} +6 -5
- package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-4M7U2WVT.mjs → chunk-ALS6X4HU.mjs} +6 -6
- package/dist/lib/browser/chunk-ALS6X4HU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GAFCKEII.mjs → chunk-N5EYLQOT.mjs} +11 -10
- package/dist/lib/browser/chunk-N5EYLQOT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-LNNCD2H4.mjs → chunk-QIZ3BPRK.mjs} +6 -5
- package/dist/lib/browser/chunk-QIZ3BPRK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3IJASGG5.mjs → chunk-SAN5Y7FI.mjs} +2 -2
- package/dist/lib/browser/{chunk-5JSNQYZZ.mjs → chunk-ULJFT73Q.mjs} +23 -27
- package/dist/lib/browser/chunk-ULJFT73Q.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +31 -36
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-AFJ575VK.mjs → intent-resolver-TXTBWOVD.mjs} +6 -6
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-QEQ3QUQA.mjs → react-surface-R245YN52.mjs} +6 -6
- package/dist/lib/browser/{settings-LNLSTZM4.mjs → settings-MHJXRGDF.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node-esm/{DeploymentDialog-GL5AUWMR.mjs → DeploymentDialog-2ULNOZQH.mjs} +4 -4
- package/dist/lib/node-esm/{NotebookContainer-SVD3A3D6.mjs → NotebookContainer-U4C2HQ4T.mjs} +21 -21
- package/dist/lib/node-esm/NotebookContainer-U4C2HQ4T.mjs.map +7 -0
- package/dist/lib/node-esm/{ScriptContainer-2CE3H3JJ.mjs → ScriptContainer-VRPEKB4T.mjs} +6 -5
- package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-RIE676OW.mjs → chunk-ND4BPYPR.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-KJKZ4KNO.mjs → chunk-UEVZP5DN.mjs} +11 -10
- package/dist/lib/node-esm/chunk-UEVZP5DN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-IQTBVH4L.mjs → chunk-VJSRZRLI.mjs} +23 -27
- package/dist/lib/node-esm/chunk-VJSRZRLI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-YRTA4EHU.mjs → chunk-VTRMJSQL.mjs} +6 -6
- package/dist/lib/node-esm/chunk-VTRMJSQL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NNHWLRHT.mjs → chunk-XYKKDWUR.mjs} +6 -5
- package/dist/lib/node-esm/chunk-XYKKDWUR.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +31 -36
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-A5VVK746.mjs → intent-resolver-D6AVAQRA.mjs} +6 -6
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-U77YT7VF.mjs → react-surface-MHT3PJ6C.mjs} +6 -6
- package/dist/lib/node-esm/{settings-IUFMOCXY.mjs → settings-BVJORMMJ.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +3 -0
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/NotebookContainer.d.ts.map +1 -1
- package/dist/types/src/components/NotebookContainer.stories.d.ts +3 -0
- package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +3 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +3 -0
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
- package/dist/types/src/hooks/deploy.d.ts +4 -4
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Notebook.d.ts +7 -7
- package/dist/types/src/types/Notebook.d.ts.map +1 -1
- package/dist/types/src/types/actions.d.ts +3 -3
- package/dist/types/src/util/deploy.d.ts.map +1 -1
- package/dist/types/src/util/functions.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +59 -58
- package/src/ScriptPlugin.tsx +13 -26
- package/src/components/NotebookContainer.tsx +10 -13
- package/src/components/NotebookStack/NotebookCell.tsx +6 -4
- package/src/components/ScriptContainer.tsx +3 -2
- package/src/components/Settings/ScriptObjectSettings.tsx +5 -4
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +1 -1
- package/src/hooks/deploy.ts +3 -2
- package/src/translations.ts +2 -0
- package/src/types/Notebook.ts +5 -4
- package/src/util/deploy.ts +4 -4
- package/src/util/functions.ts +3 -2
- package/dist/lib/browser/NotebookContainer-RTESC4OV.mjs.map +0 -7
- package/dist/lib/browser/ScriptContainer-T2BAZDJ4.mjs.map +0 -7
- package/dist/lib/browser/chunk-4M7U2WVT.mjs.map +0 -7
- package/dist/lib/browser/chunk-5JSNQYZZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-GAFCKEII.mjs.map +0 -7
- package/dist/lib/browser/chunk-LNNCD2H4.mjs.map +0 -7
- package/dist/lib/node-esm/NotebookContainer-SVD3A3D6.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-2CE3H3JJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IQTBVH4L.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KJKZ4KNO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NNHWLRHT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YRTA4EHU.mjs.map +0 -7
- /package/dist/lib/browser/{DeploymentDialog-MZX4T77L.mjs.map → DeploymentDialog-5TKNGPVR.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-3IJASGG5.mjs.map → chunk-SAN5Y7FI.mjs.map} +0 -0
- /package/dist/lib/browser/{intent-resolver-AFJ575VK.mjs.map → intent-resolver-TXTBWOVD.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-QEQ3QUQA.mjs.map → react-surface-R245YN52.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-LNLSTZM4.mjs.map → settings-MHJXRGDF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{DeploymentDialog-GL5AUWMR.mjs.map → DeploymentDialog-2ULNOZQH.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-RIE676OW.mjs.map → chunk-ND4BPYPR.mjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-A5VVK746.mjs.map → intent-resolver-D6AVAQRA.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-surface-U77YT7VF.mjs.map → react-surface-MHT3PJ6C.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-IUFMOCXY.mjs.map → settings-BVJORMMJ.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-script",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.7ace549",
|
|
4
4
|
"description": "Braneframe notebook plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -65,55 +65,56 @@
|
|
|
65
65
|
"prettier": "^3.6.2",
|
|
66
66
|
"react-syntax-highlighter": "^15.6.1",
|
|
67
67
|
"typescript": "^5.9.3",
|
|
68
|
-
"@dxos/ai": "0.8.4-main.
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/assistant": "0.8.4-main.
|
|
71
|
-
"@dxos/
|
|
72
|
-
"@dxos/async": "0.8.4-main.
|
|
73
|
-
"@dxos/
|
|
74
|
-
"@dxos/
|
|
75
|
-
"@dxos/client": "0.8.4-main.
|
|
76
|
-
"@dxos/
|
|
77
|
-
"@dxos/
|
|
78
|
-
"@dxos/
|
|
79
|
-
"@dxos/
|
|
80
|
-
"@dxos/echo-
|
|
81
|
-
"@dxos/
|
|
82
|
-
"@dxos/
|
|
83
|
-
"@dxos/functions": "0.8.4-main.
|
|
84
|
-
"@dxos/
|
|
85
|
-
"@dxos/
|
|
86
|
-
"@dxos/
|
|
87
|
-
"@dxos/
|
|
88
|
-
"@dxos/
|
|
89
|
-
"@dxos/plugin-
|
|
90
|
-
"@dxos/plugin-
|
|
91
|
-
"@dxos/
|
|
92
|
-
"@dxos/plugin-deck": "0.8.4-main.
|
|
93
|
-
"@dxos/
|
|
94
|
-
"@dxos/plugin-
|
|
95
|
-
"@dxos/plugin-graph": "0.8.4-main.
|
|
96
|
-
"@dxos/plugin-
|
|
97
|
-
"@dxos/plugin-
|
|
98
|
-
"@dxos/plugin-
|
|
99
|
-
"@dxos/plugin-token-manager": "0.8.4-main.
|
|
100
|
-
"@dxos/
|
|
101
|
-
"@dxos/
|
|
102
|
-
"@dxos/react-edge-client": "0.8.4-main.
|
|
103
|
-
"@dxos/react-ui-attention": "0.8.4-main.
|
|
104
|
-
"@dxos/react-ui-components": "0.8.4-main.
|
|
105
|
-
"@dxos/react-
|
|
106
|
-
"@dxos/react-ui-
|
|
107
|
-
"@dxos/react-ui-
|
|
108
|
-
"@dxos/react-ui-
|
|
109
|
-
"@dxos/react-ui-
|
|
110
|
-
"@dxos/react-ui-
|
|
111
|
-
"@dxos/rpc
|
|
112
|
-
"@dxos/schema": "0.8.4-main.
|
|
113
|
-
"@dxos/
|
|
114
|
-
"@dxos/
|
|
115
|
-
"@dxos/
|
|
116
|
-
"@dxos/rpc": "0.8.4-main.
|
|
68
|
+
"@dxos/ai": "0.8.4-main.7ace549",
|
|
69
|
+
"@dxos/assistant": "0.8.4-main.7ace549",
|
|
70
|
+
"@dxos/assistant-toolkit": "0.8.4-main.7ace549",
|
|
71
|
+
"@dxos/app-framework": "0.8.4-main.7ace549",
|
|
72
|
+
"@dxos/async": "0.8.4-main.7ace549",
|
|
73
|
+
"@dxos/client": "0.8.4-main.7ace549",
|
|
74
|
+
"@dxos/blueprints": "0.8.4-main.7ace549",
|
|
75
|
+
"@dxos/client-protocol": "0.8.4-main.7ace549",
|
|
76
|
+
"@dxos/debug": "0.8.4-main.7ace549",
|
|
77
|
+
"@dxos/devtools": "0.8.4-main.7ace549",
|
|
78
|
+
"@dxos/compute": "0.8.4-main.7ace549",
|
|
79
|
+
"@dxos/echo": "0.8.4-main.7ace549",
|
|
80
|
+
"@dxos/echo-db": "0.8.4-main.7ace549",
|
|
81
|
+
"@dxos/echo-protocol": "0.8.4-main.7ace549",
|
|
82
|
+
"@dxos/echo-query": "0.8.4-main.7ace549",
|
|
83
|
+
"@dxos/functions": "0.8.4-main.7ace549",
|
|
84
|
+
"@dxos/functions-runtime": "0.8.4-main.7ace549",
|
|
85
|
+
"@dxos/keys": "0.8.4-main.7ace549",
|
|
86
|
+
"@dxos/invariant": "0.8.4-main.7ace549",
|
|
87
|
+
"@dxos/live-object": "0.8.4-main.7ace549",
|
|
88
|
+
"@dxos/local-storage": "0.8.4-main.7ace549",
|
|
89
|
+
"@dxos/plugin-assistant": "0.8.4-main.7ace549",
|
|
90
|
+
"@dxos/plugin-automation": "0.8.4-main.7ace549",
|
|
91
|
+
"@dxos/plugin-client": "0.8.4-main.7ace549",
|
|
92
|
+
"@dxos/plugin-deck": "0.8.4-main.7ace549",
|
|
93
|
+
"@dxos/log": "0.8.4-main.7ace549",
|
|
94
|
+
"@dxos/plugin-explorer": "0.8.4-main.7ace549",
|
|
95
|
+
"@dxos/plugin-graph": "0.8.4-main.7ace549",
|
|
96
|
+
"@dxos/plugin-markdown": "0.8.4-main.7ace549",
|
|
97
|
+
"@dxos/plugin-stack": "0.8.4-main.7ace549",
|
|
98
|
+
"@dxos/plugin-theme": "0.8.4-main.7ace549",
|
|
99
|
+
"@dxos/plugin-token-manager": "0.8.4-main.7ace549",
|
|
100
|
+
"@dxos/plugin-space": "0.8.4-main.7ace549",
|
|
101
|
+
"@dxos/protocols": "0.8.4-main.7ace549",
|
|
102
|
+
"@dxos/react-edge-client": "0.8.4-main.7ace549",
|
|
103
|
+
"@dxos/react-ui-attention": "0.8.4-main.7ace549",
|
|
104
|
+
"@dxos/react-ui-components": "0.8.4-main.7ace549",
|
|
105
|
+
"@dxos/react-client": "0.8.4-main.7ace549",
|
|
106
|
+
"@dxos/react-ui-editor": "0.8.4-main.7ace549",
|
|
107
|
+
"@dxos/react-ui-form": "0.8.4-main.7ace549",
|
|
108
|
+
"@dxos/react-ui-menu": "0.8.4-main.7ace549",
|
|
109
|
+
"@dxos/react-ui-stack": "0.8.4-main.7ace549",
|
|
110
|
+
"@dxos/react-ui-syntax-highlighter": "0.8.4-main.7ace549",
|
|
111
|
+
"@dxos/rpc": "0.8.4-main.7ace549",
|
|
112
|
+
"@dxos/schema": "0.8.4-main.7ace549",
|
|
113
|
+
"@dxos/types": "0.8.4-main.7ace549",
|
|
114
|
+
"@dxos/util": "0.8.4-main.7ace549",
|
|
115
|
+
"@dxos/react-ui-list": "0.8.4-main.7ace549",
|
|
116
|
+
"@dxos/rpc-tunnel": "0.8.4-main.7ace549",
|
|
117
|
+
"@dxos/vendor-quickjs": "0.8.4-main.7ace549"
|
|
117
118
|
},
|
|
118
119
|
"devDependencies": {
|
|
119
120
|
"@effect-atom/atom-react": "^0.3.4",
|
|
@@ -124,12 +125,12 @@
|
|
|
124
125
|
"react": "~19.2.0",
|
|
125
126
|
"react-dom": "~19.2.0",
|
|
126
127
|
"vite": "7.1.9",
|
|
127
|
-
"@dxos/echo-db": "0.8.4-main.
|
|
128
|
-
"@dxos/plugin-automation": "0.8.4-main.
|
|
129
|
-
"@dxos/random": "0.8.4-main.
|
|
130
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
131
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
132
|
-
"@dxos/storybook-utils": "0.8.4-main.
|
|
128
|
+
"@dxos/echo-db": "0.8.4-main.7ace549",
|
|
129
|
+
"@dxos/plugin-automation": "0.8.4-main.7ace549",
|
|
130
|
+
"@dxos/random": "0.8.4-main.7ace549",
|
|
131
|
+
"@dxos/react-ui": "0.8.4-main.7ace549",
|
|
132
|
+
"@dxos/react-ui-theme": "0.8.4-main.7ace549",
|
|
133
|
+
"@dxos/storybook-utils": "0.8.4-main.7ace549"
|
|
133
134
|
},
|
|
134
135
|
"peerDependencies": {
|
|
135
136
|
"@effect-atom/atom-react": "^0.3.4",
|
|
@@ -137,8 +138,8 @@
|
|
|
137
138
|
"effect": "^3.13.3",
|
|
138
139
|
"react": "^19.0.0",
|
|
139
140
|
"react-dom": "^19.0.0",
|
|
140
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
141
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
141
|
+
"@dxos/react-ui": "0.8.4-main.7ace549",
|
|
142
|
+
"@dxos/react-ui-theme": "0.8.4-main.7ace549"
|
|
142
143
|
},
|
|
143
144
|
"publishConfig": {
|
|
144
145
|
"access": "public"
|
package/src/ScriptPlugin.tsx
CHANGED
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
|
|
6
6
|
import { Ref } from '@dxos/echo';
|
|
7
7
|
import { Script } from '@dxos/functions';
|
|
8
|
-
import { ClientEvents } from '@dxos/plugin-client';
|
|
9
|
-
import {
|
|
10
|
-
import { defineObjectForm } from '@dxos/plugin-space/types';
|
|
8
|
+
import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
|
|
9
|
+
import { type CreateObjectIntent } from '@dxos/plugin-space/types';
|
|
11
10
|
|
|
12
11
|
import {
|
|
13
12
|
AppGraphBuilder,
|
|
@@ -49,6 +48,10 @@ export const ScriptPlugin = definePlugin(meta, () => [
|
|
|
49
48
|
iconHue: 'sky',
|
|
50
49
|
// TODO(wittjosiah): Move out of metadata.
|
|
51
50
|
loadReferences: async (script: Script.Script) => await Ref.Array.loadAll([script.source]),
|
|
51
|
+
inputSchema: ScriptAction.ScriptProps,
|
|
52
|
+
createObjectIntent: ((props, options) =>
|
|
53
|
+
createIntent(ScriptAction.CreateScript, { ...props, space: options.space })) satisfies CreateObjectIntent,
|
|
54
|
+
addToCollectionOnCreate: true,
|
|
52
55
|
},
|
|
53
56
|
}),
|
|
54
57
|
contributes(Capabilities.Metadata, {
|
|
@@ -56,6 +59,10 @@ export const ScriptPlugin = definePlugin(meta, () => [
|
|
|
56
59
|
metadata: {
|
|
57
60
|
icon: 'ph--notebook--regular',
|
|
58
61
|
iconHue: 'sky',
|
|
62
|
+
inputSchema: ScriptAction.NotebookProps,
|
|
63
|
+
createObjectIntent: ((props, options) =>
|
|
64
|
+
createIntent(ScriptAction.CreateNotebook, { ...props, space: options.space })) satisfies CreateObjectIntent,
|
|
65
|
+
addToCollectionOnCreate: true,
|
|
59
66
|
},
|
|
60
67
|
}),
|
|
61
68
|
],
|
|
@@ -66,31 +73,11 @@ export const ScriptPlugin = definePlugin(meta, () => [
|
|
|
66
73
|
activate: AppGraphBuilder,
|
|
67
74
|
}),
|
|
68
75
|
defineModule({
|
|
69
|
-
id: `${meta.id}/module/
|
|
76
|
+
id: `${meta.id}/module/schema`,
|
|
70
77
|
activatesOn: ClientEvents.SetupSchema,
|
|
71
|
-
activate: () =>
|
|
72
|
-
contributes(
|
|
73
|
-
SpaceCapabilities.ObjectForm,
|
|
74
|
-
defineObjectForm({
|
|
75
|
-
objectSchema: Script.Script,
|
|
76
|
-
formSchema: ScriptAction.ScriptProps,
|
|
77
|
-
getIntent: (props, options) => createIntent(ScriptAction.CreateScript, { ...props, space: options.space }),
|
|
78
|
-
}),
|
|
79
|
-
),
|
|
80
|
-
}),
|
|
81
|
-
defineModule({
|
|
82
|
-
id: `${meta.id}/module/notebook/object-form`,
|
|
83
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
84
|
-
activate: () =>
|
|
85
|
-
contributes(
|
|
86
|
-
SpaceCapabilities.ObjectForm,
|
|
87
|
-
defineObjectForm({
|
|
88
|
-
objectSchema: Notebook.Notebook,
|
|
89
|
-
formSchema: ScriptAction.NotebookProps,
|
|
90
|
-
getIntent: (props, options) => createIntent(ScriptAction.CreateNotebook, { ...props, space: options.space }),
|
|
91
|
-
}),
|
|
92
|
-
),
|
|
78
|
+
activate: () => contributes(ClientCapabilities.Schema, [Script.Script]),
|
|
93
79
|
}),
|
|
80
|
+
|
|
94
81
|
defineModule({
|
|
95
82
|
id: `${meta.id}/module/react-surface`,
|
|
96
83
|
activatesOn: Events.SetupReactSurface,
|
|
@@ -22,7 +22,7 @@ import { getSpace } from '@dxos/react-client/echo';
|
|
|
22
22
|
import { DropdownMenu, IconButton, Toolbar, useTranslation } from '@dxos/react-ui';
|
|
23
23
|
import { useAttention } from '@dxos/react-ui-attention';
|
|
24
24
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
25
|
-
import { Text } from '@dxos/schema';
|
|
25
|
+
import { Text, View } from '@dxos/schema';
|
|
26
26
|
import { isNonNullable } from '@dxos/util';
|
|
27
27
|
|
|
28
28
|
import { meta } from '../meta';
|
|
@@ -63,24 +63,21 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
|
|
|
63
63
|
const { name, filter } = builder.build(source);
|
|
64
64
|
if (filter) {
|
|
65
65
|
const ast = Query.select(filter).ast;
|
|
66
|
-
const
|
|
67
|
-
if (!
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
presentation: graph,
|
|
72
|
-
});
|
|
73
|
-
cell.view = Ref.make(view);
|
|
66
|
+
const graph = cell.graph?.target;
|
|
67
|
+
if (!graph) {
|
|
68
|
+
const { view } = await View.makeFromSpace({ space });
|
|
69
|
+
const graph = Graph.make({ query: { ast }, view });
|
|
70
|
+
cell.graph = Ref.make(graph);
|
|
74
71
|
cell.name = name;
|
|
75
72
|
} else {
|
|
76
|
-
|
|
73
|
+
graph.query.ast = ast;
|
|
77
74
|
}
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
77
|
|
|
81
|
-
if (cell.name && cell.
|
|
82
|
-
const
|
|
83
|
-
const query = Query.fromAst(
|
|
78
|
+
if (cell.name && cell.graph?.target) {
|
|
79
|
+
const graph = Obj.getSnapshot(cell.graph?.target);
|
|
80
|
+
const query = Query.fromAst(graph.query.ast);
|
|
84
81
|
const result = await space?.db.query(query).run();
|
|
85
82
|
const objectIds = result?.objects?.map((obj) => obj.id);
|
|
86
83
|
setQueryValues((prev) => ({ ...prev, [cell.name!]: objectIds }));
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
import React, { useCallback, useMemo } from 'react';
|
|
6
6
|
|
|
7
7
|
import { Surface } from '@dxos/app-framework/react';
|
|
8
|
+
import { createDocAccessor } from '@dxos/echo-db';
|
|
8
9
|
import { invariant } from '@dxos/invariant';
|
|
9
10
|
import { TemplateEditor } from '@dxos/plugin-assistant';
|
|
10
|
-
import { createDocAccessor } from '@dxos/react-client/echo';
|
|
11
11
|
import { type Space } from '@dxos/react-client/echo';
|
|
12
12
|
import { useThemeContext, useTranslation } from '@dxos/react-ui';
|
|
13
13
|
import { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';
|
|
@@ -57,7 +57,7 @@ export const NotebookCell = ({ space, graph, dragging, cell, promptResults, env
|
|
|
57
57
|
: [];
|
|
58
58
|
}, [cell.source?.target]);
|
|
59
59
|
|
|
60
|
-
const
|
|
60
|
+
const explorerGraph = cell.graph?.target;
|
|
61
61
|
|
|
62
62
|
const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(
|
|
63
63
|
(value: string) => {
|
|
@@ -113,7 +113,9 @@ export const NotebookCell = ({ space, graph, dragging, cell, promptResults, env
|
|
|
113
113
|
|
|
114
114
|
// TODO(burdon): Remove app-framework deps (via render prop).
|
|
115
115
|
return (
|
|
116
|
-
<div
|
|
116
|
+
<div
|
|
117
|
+
className={mx('bs-full overflow-hidden grid', explorerGraph && !dragging && 'grid-rows-[min-content_1fr]')}
|
|
118
|
+
>
|
|
117
119
|
<QueryEditor
|
|
118
120
|
id={cell.id}
|
|
119
121
|
classNames={[editorStyles, 'border-be border-subduedSeparator']}
|
|
@@ -121,7 +123,7 @@ export const NotebookCell = ({ space, graph, dragging, cell, promptResults, env
|
|
|
121
123
|
value={cell.source.target.content}
|
|
122
124
|
onChange={handleQueryChange}
|
|
123
125
|
/>
|
|
124
|
-
{
|
|
126
|
+
{explorerGraph && !dragging && <Surface role='section' limit={1} data={{ subject: explorerGraph }} />}
|
|
125
127
|
</div>
|
|
126
128
|
);
|
|
127
129
|
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { useMemo } from 'react';
|
|
6
6
|
|
|
7
|
+
import { createDocAccessor } from '@dxos/echo-db';
|
|
7
8
|
import { type Script } from '@dxos/functions';
|
|
8
|
-
import {
|
|
9
|
+
import { getSpace } from '@dxos/react-client/echo';
|
|
9
10
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
10
11
|
import { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';
|
|
11
12
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
@@ -42,7 +43,7 @@ export const ScriptContainer = ({ role, script, settings = { editorInputMode: 'v
|
|
|
42
43
|
createDataExtensions({
|
|
43
44
|
id: script.id,
|
|
44
45
|
text: createDocAccessor(script.source.target, ['content']),
|
|
45
|
-
space,
|
|
46
|
+
messenger: space,
|
|
46
47
|
identity,
|
|
47
48
|
}),
|
|
48
49
|
]
|
|
@@ -9,11 +9,12 @@ import { ToolId } from '@dxos/ai';
|
|
|
9
9
|
import { SettingsAction, createIntent } from '@dxos/app-framework';
|
|
10
10
|
import { useIntentDispatcher } from '@dxos/app-framework/react';
|
|
11
11
|
import { Blueprint, Template } from '@dxos/blueprints';
|
|
12
|
+
import { Filter, Obj, Ref } from '@dxos/echo';
|
|
12
13
|
import { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
|
|
13
14
|
import { getInvocationUrl } from '@dxos/functions-runtime';
|
|
14
15
|
import { log } from '@dxos/log';
|
|
15
16
|
import { useClient } from '@dxos/react-client';
|
|
16
|
-
import {
|
|
17
|
+
import { getSpace, useQuery } from '@dxos/react-client/echo';
|
|
17
18
|
import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from '@dxos/react-ui';
|
|
18
19
|
import { AccessToken } from '@dxos/types';
|
|
19
20
|
import { kebabize } from '@dxos/util';
|
|
@@ -144,7 +145,7 @@ const Binding = ({ object }: ScriptObjectSettingsProps) => {
|
|
|
144
145
|
const space = getSpace(object);
|
|
145
146
|
const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));
|
|
146
147
|
|
|
147
|
-
const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
|
|
148
|
+
const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
|
|
148
149
|
const functionUrl =
|
|
149
150
|
functionId &&
|
|
150
151
|
getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {
|
|
@@ -207,7 +208,7 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
|
|
|
207
208
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
208
209
|
const space = getSpace(object);
|
|
209
210
|
const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));
|
|
210
|
-
const gistKey = getMeta(object).keys.find(({ source }) => source === 'github.com');
|
|
211
|
+
const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === 'github.com');
|
|
211
212
|
const [gistUrl, setGistUrl] = useState<string | undefined>();
|
|
212
213
|
|
|
213
214
|
useAsyncEffect(async () => {
|
|
@@ -250,7 +251,7 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
|
|
|
250
251
|
|
|
251
252
|
try {
|
|
252
253
|
// TODO(wittjosiah): Factor out to intent.
|
|
253
|
-
const meta = getMeta(object);
|
|
254
|
+
const meta = Obj.getMeta(object);
|
|
254
255
|
const githubKey = meta.keys.find(({ source }) => source === 'github.com');
|
|
255
256
|
const gistId = githubKey?.id;
|
|
256
257
|
if (gistId) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
7
7
|
|
|
8
|
-
import { createDocAccessor } from '@dxos/
|
|
8
|
+
import { createDocAccessor } from '@dxos/echo-db';
|
|
9
9
|
import { createObject } from '@dxos/react-client/echo';
|
|
10
10
|
import { Toolbar } from '@dxos/react-ui';
|
|
11
11
|
import { withLayout, withTheme } from '@dxos/react-ui/testing';
|
package/src/hooks/deploy.ts
CHANGED
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
import { useEffect, useMemo } from 'react';
|
|
6
6
|
|
|
7
|
+
import { Obj, Query, Ref } from '@dxos/echo';
|
|
7
8
|
import { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
|
|
8
9
|
import { log } from '@dxos/log';
|
|
9
10
|
import { type Client, useClient } from '@dxos/react-client';
|
|
10
|
-
import {
|
|
11
|
+
import { type Space, getSpace, useQuery } from '@dxos/react-client/echo';
|
|
11
12
|
import { type TFunction } from '@dxos/react-ui';
|
|
12
13
|
import { createMenuAction } from '@dxos/react-ui-menu';
|
|
13
14
|
import { errorMessageColors } from '@dxos/react-ui-theme';
|
|
@@ -119,6 +120,6 @@ export const useDeployDeps = ({ script }: { script: Script.Script }) => {
|
|
|
119
120
|
const client = useClient();
|
|
120
121
|
const space = getSpace(script);
|
|
121
122
|
const [fn] = useQuery(space, Query.type(Function.Function, { source: Ref.make(script) }));
|
|
122
|
-
const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(getMeta(fn)), [fn]);
|
|
123
|
+
const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(Obj.getMeta(fn)), [fn]);
|
|
123
124
|
return { client, space, fn, existingFunctionId };
|
|
124
125
|
};
|
package/src/translations.ts
CHANGED
|
@@ -19,6 +19,7 @@ export const translations = [
|
|
|
19
19
|
'object name placeholder': 'New script',
|
|
20
20
|
'rename object label': 'Rename script',
|
|
21
21
|
'delete object label': 'Delete script',
|
|
22
|
+
'object deleted label': 'Script deleted',
|
|
22
23
|
},
|
|
23
24
|
[Notebook.Notebook.typename]: {
|
|
24
25
|
'typename label': 'Notebook',
|
|
@@ -28,6 +29,7 @@ export const translations = [
|
|
|
28
29
|
'object name placeholder': 'New notebook',
|
|
29
30
|
'rename object label': 'Rename notebook',
|
|
30
31
|
'delete object label': 'Delete notebook',
|
|
32
|
+
'object deleted label': 'Notebook deleted',
|
|
31
33
|
},
|
|
32
34
|
[meta.id]: {
|
|
33
35
|
'plugin name': 'Scripts',
|
package/src/types/Notebook.ts
CHANGED
|
@@ -6,9 +6,10 @@ import * as Schema from 'effect/Schema';
|
|
|
6
6
|
|
|
7
7
|
import { Prompt } from '@dxos/blueprints';
|
|
8
8
|
import { Obj, Type } from '@dxos/echo';
|
|
9
|
-
import {
|
|
9
|
+
import { FormInputAnnotation } from '@dxos/echo/internal';
|
|
10
10
|
import { LabelAnnotation } from '@dxos/echo/internal';
|
|
11
|
-
import {
|
|
11
|
+
import { Graph } from '@dxos/plugin-explorer/types';
|
|
12
|
+
import { Text } from '@dxos/schema';
|
|
12
13
|
|
|
13
14
|
export type CellType = 'markdown' | 'script' | 'query' | 'prompt' | 'view';
|
|
14
15
|
|
|
@@ -19,7 +20,7 @@ const Cell_ = Schema.Struct({
|
|
|
19
20
|
// TODO(burdon): Union type.
|
|
20
21
|
source: Schema.optional(Type.Ref(Text.Text)),
|
|
21
22
|
prompt: Schema.optional(Type.Ref(Prompt.Prompt)),
|
|
22
|
-
|
|
23
|
+
graph: Schema.optional(Type.Ref(Graph.Graph)),
|
|
23
24
|
}).pipe(Schema.mutable);
|
|
24
25
|
export interface Cell extends Schema.Schema.Type<typeof Cell_> {}
|
|
25
26
|
export interface Cell_Encoded extends Schema.Schema.Encoded<typeof Cell_> {}
|
|
@@ -27,7 +28,7 @@ export const Cell: Schema.Schema<Cell, Cell_Encoded> = Cell_;
|
|
|
27
28
|
|
|
28
29
|
export const Notebook = Schema.Struct({
|
|
29
30
|
name: Schema.String.pipe(Schema.optional),
|
|
30
|
-
cells: Cell.pipe(Schema.Array, Schema.mutable,
|
|
31
|
+
cells: Cell.pipe(Schema.Array, Schema.mutable, FormInputAnnotation.set(false)),
|
|
31
32
|
}).pipe(
|
|
32
33
|
Type.Obj({
|
|
33
34
|
typename: 'dxos.org/type/Notebook',
|
package/src/util/deploy.ts
CHANGED
|
@@ -5,11 +5,10 @@
|
|
|
5
5
|
import { type Client } from '@dxos/client';
|
|
6
6
|
import { Obj, Ref } from '@dxos/echo';
|
|
7
7
|
import { Function, type Script, getUserFunctionIdInMetadata, setUserFunctionIdInMetadata } from '@dxos/functions';
|
|
8
|
-
import {
|
|
8
|
+
import { bundleFunction } from '@dxos/functions-runtime/bundler';
|
|
9
9
|
import { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions-runtime/edge';
|
|
10
10
|
import { log } from '@dxos/log';
|
|
11
11
|
import { type Space } from '@dxos/react-client/echo';
|
|
12
|
-
import { isNode } from '@dxos/util';
|
|
13
12
|
|
|
14
13
|
import { updateFunctionMetadata } from './functions';
|
|
15
14
|
|
|
@@ -44,8 +43,9 @@ export const deployScript = async ({
|
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
try {
|
|
47
|
-
const
|
|
48
|
-
|
|
46
|
+
const buildResult = await bundleFunction({
|
|
47
|
+
source: script.source!.target!.content,
|
|
48
|
+
});
|
|
49
49
|
if ('error' in buildResult) {
|
|
50
50
|
throw buildResult.error || new Error('Bundle creation failed');
|
|
51
51
|
}
|
package/src/util/functions.ts
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Obj } from '@dxos/echo';
|
|
5
6
|
import { type Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
|
|
6
7
|
import { getInvocationUrl } from '@dxos/functions-runtime';
|
|
7
8
|
import { type PublicKey } from '@dxos/keys';
|
|
8
9
|
import { log } from '@dxos/log';
|
|
9
10
|
import { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
|
|
10
|
-
import {
|
|
11
|
+
import { getSpace } from '@dxos/react-client/echo';
|
|
11
12
|
/**
|
|
12
13
|
* Get the function URL for a given script and client configuration
|
|
13
14
|
*/
|
|
@@ -21,7 +22,7 @@ export const getFunctionUrl = ({
|
|
|
21
22
|
edgeUrl: string;
|
|
22
23
|
}): string | undefined => {
|
|
23
24
|
const space = getSpace(script);
|
|
24
|
-
const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
|
|
25
|
+
const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
|
|
25
26
|
|
|
26
27
|
if (!existingFunctionId) {
|
|
27
28
|
return undefined;
|