@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
ScriptAction
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XYKKDWUR.mjs";
|
|
5
5
|
import {
|
|
6
6
|
templates
|
|
7
7
|
} from "./chunk-57JA6XL5.mjs";
|
|
@@ -10,14 +10,15 @@ import {
|
|
|
10
10
|
} from "./chunk-IBV2DR36.mjs";
|
|
11
11
|
|
|
12
12
|
// src/util/functions.ts
|
|
13
|
+
import { Obj } from "@dxos/echo";
|
|
13
14
|
import { getUserFunctionIdInMetadata } from "@dxos/functions";
|
|
14
15
|
import { getInvocationUrl } from "@dxos/functions-runtime";
|
|
15
16
|
import { log } from "@dxos/log";
|
|
16
|
-
import {
|
|
17
|
+
import { getSpace } from "@dxos/react-client/echo";
|
|
17
18
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/functions.ts";
|
|
18
19
|
var getFunctionUrl = ({ script, fn, edgeUrl }) => {
|
|
19
20
|
const space = getSpace(script);
|
|
20
|
-
const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
|
|
21
|
+
const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
|
|
21
22
|
if (!existingFunctionId) {
|
|
22
23
|
return void 0;
|
|
23
24
|
}
|
|
@@ -35,7 +36,7 @@ var updateFunctionMetadata = (script, storedFunction, meta2, functionId) => {
|
|
|
35
36
|
functionId
|
|
36
37
|
}, {
|
|
37
38
|
F: __dxlog_file,
|
|
38
|
-
L:
|
|
39
|
+
L: 47,
|
|
39
40
|
S: void 0,
|
|
40
41
|
C: (f, a) => f(...a)
|
|
41
42
|
});
|
|
@@ -47,7 +48,7 @@ var updateFunctionMetadata = (script, storedFunction, meta2, functionId) => {
|
|
|
47
48
|
functionId
|
|
48
49
|
}, {
|
|
49
50
|
F: __dxlog_file,
|
|
50
|
-
L:
|
|
51
|
+
L: 53,
|
|
51
52
|
S: void 0,
|
|
52
53
|
C: (f, a) => f(...a)
|
|
53
54
|
});
|
|
@@ -59,7 +60,7 @@ var updateFunctionMetadata = (script, storedFunction, meta2, functionId) => {
|
|
|
59
60
|
functionId
|
|
60
61
|
}, {
|
|
61
62
|
F: __dxlog_file,
|
|
62
|
-
L:
|
|
63
|
+
L: 59,
|
|
63
64
|
S: void 0,
|
|
64
65
|
C: (f, a) => f(...a)
|
|
65
66
|
});
|
|
@@ -71,7 +72,7 @@ var updateFunctionMetadata = (script, storedFunction, meta2, functionId) => {
|
|
|
71
72
|
functionId
|
|
72
73
|
}, {
|
|
73
74
|
F: __dxlog_file,
|
|
74
|
-
L:
|
|
75
|
+
L: 65,
|
|
75
76
|
S: void 0,
|
|
76
77
|
C: (f, a) => f(...a)
|
|
77
78
|
});
|
|
@@ -97,15 +98,14 @@ var getAccessCredential = (identityKey) => {
|
|
|
97
98
|
};
|
|
98
99
|
|
|
99
100
|
// src/util/deploy.ts
|
|
100
|
-
import { Obj, Ref } from "@dxos/echo";
|
|
101
|
+
import { Obj as Obj2, Ref } from "@dxos/echo";
|
|
101
102
|
import { Function, getUserFunctionIdInMetadata as getUserFunctionIdInMetadata2, setUserFunctionIdInMetadata } from "@dxos/functions";
|
|
102
|
-
import {
|
|
103
|
+
import { bundleFunction } from "@dxos/functions-runtime/bundler";
|
|
103
104
|
import { incrementSemverPatch, uploadWorkerFunction } from "@dxos/functions-runtime/edge";
|
|
104
105
|
import { log as log2 } from "@dxos/log";
|
|
105
|
-
import { isNode } from "@dxos/util";
|
|
106
106
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/deploy.ts";
|
|
107
107
|
var isScriptDeployed = ({ script, fn }) => {
|
|
108
|
-
const existingFunctionId = fn && getUserFunctionIdInMetadata2(
|
|
108
|
+
const existingFunctionId = fn && getUserFunctionIdInMetadata2(Obj2.getMeta(fn));
|
|
109
109
|
return Boolean(existingFunctionId) && !script.changed;
|
|
110
110
|
};
|
|
111
111
|
var deployScript = async ({ script, client, space, fn, existingFunctionId }) => {
|
|
@@ -117,12 +117,7 @@ var deployScript = async ({ script, client, space, fn, existingFunctionId }) =>
|
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
119
|
try {
|
|
120
|
-
const
|
|
121
|
-
platform: isNode() ? "node" : "browser",
|
|
122
|
-
sandboxedModules: [],
|
|
123
|
-
remoteModules: {}
|
|
124
|
-
});
|
|
125
|
-
const buildResult = await bundler.bundle({
|
|
120
|
+
const buildResult = await bundleFunction({
|
|
126
121
|
source: script.source.target.content
|
|
127
122
|
});
|
|
128
123
|
if ("error" in buildResult) {
|
|
@@ -147,7 +142,7 @@ var deployScript = async ({ script, client, space, fn, existingFunctionId }) =>
|
|
|
147
142
|
const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);
|
|
148
143
|
script.changed = false;
|
|
149
144
|
updateFunctionMetadata(script, storedFunction, meta2, functionId);
|
|
150
|
-
setUserFunctionIdInMetadata(
|
|
145
|
+
setUserFunctionIdInMetadata(Obj2.getMeta(storedFunction), functionId);
|
|
151
146
|
return {
|
|
152
147
|
success: true,
|
|
153
148
|
functionId
|
|
@@ -183,17 +178,18 @@ var createOrUpdateFunctionInSpace = (space, fn, script, functionId, version) =>
|
|
|
183
178
|
source: Ref.make(script)
|
|
184
179
|
});
|
|
185
180
|
space.db.add(fn2);
|
|
186
|
-
setUserFunctionIdInMetadata(
|
|
181
|
+
setUserFunctionIdInMetadata(Obj2.getMeta(fn2), functionId);
|
|
187
182
|
return fn2;
|
|
188
183
|
}
|
|
189
184
|
};
|
|
190
185
|
|
|
191
186
|
// src/hooks/deploy.ts
|
|
192
187
|
import { useEffect, useMemo } from "react";
|
|
188
|
+
import { Obj as Obj3, Query, Ref as Ref2 } from "@dxos/echo";
|
|
193
189
|
import { Function as Function2, getUserFunctionIdInMetadata as getUserFunctionIdInMetadata3 } from "@dxos/functions";
|
|
194
190
|
import { log as log3 } from "@dxos/log";
|
|
195
191
|
import { useClient } from "@dxos/react-client";
|
|
196
|
-
import {
|
|
192
|
+
import { getSpace as getSpace2, useQuery } from "@dxos/react-client/echo";
|
|
197
193
|
import { createMenuAction } from "@dxos/react-ui-menu";
|
|
198
194
|
import { errorMessageColors } from "@dxos/react-ui-theme";
|
|
199
195
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/hooks/deploy.ts";
|
|
@@ -226,7 +222,7 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionId, t })
|
|
|
226
222
|
if (!result.success) {
|
|
227
223
|
log3.catch(result.error, void 0, {
|
|
228
224
|
F: __dxlog_file3,
|
|
229
|
-
L:
|
|
225
|
+
L: 60,
|
|
230
226
|
S: void 0,
|
|
231
227
|
C: (f, a) => f(...a)
|
|
232
228
|
});
|
|
@@ -320,7 +316,7 @@ var useDeployDeps = ({ script }) => {
|
|
|
320
316
|
const [fn] = useQuery(space, Query.type(Function2.Function, {
|
|
321
317
|
source: Ref2.make(script)
|
|
322
318
|
}));
|
|
323
|
-
const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata3(
|
|
319
|
+
const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata3(Obj3.getMeta(fn)), [
|
|
324
320
|
fn
|
|
325
321
|
]);
|
|
326
322
|
return {
|
|
@@ -391,7 +387,7 @@ var createFormat = (script) => {
|
|
|
391
387
|
};
|
|
392
388
|
|
|
393
389
|
// src/hooks/template.ts
|
|
394
|
-
import { Obj as
|
|
390
|
+
import { Obj as Obj4 } from "@dxos/echo";
|
|
395
391
|
import { FUNCTIONS_PRESET_META_KEY } from "@dxos/functions";
|
|
396
392
|
import { createMenuAction as createMenuAction3 } from "@dxos/react-ui-menu";
|
|
397
393
|
var createTemplateSelectActions = (script) => {
|
|
@@ -399,7 +395,7 @@ var createTemplateSelectActions = (script) => {
|
|
|
399
395
|
return createMenuAction3(`template--${template.id}`, () => {
|
|
400
396
|
script.name = template.name;
|
|
401
397
|
script.source.target.content = template.source;
|
|
402
|
-
const metaKeys =
|
|
398
|
+
const metaKeys = Obj4.getMeta(script).keys;
|
|
403
399
|
const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
|
|
404
400
|
if (oldPresetIndex >= 0) {
|
|
405
401
|
metaKeys.splice(oldPresetIndex, 1);
|
|
@@ -441,7 +437,7 @@ import * as Function3 from "effect/Function";
|
|
|
441
437
|
import { useCallback, useState } from "react";
|
|
442
438
|
import { chain, createIntent } from "@dxos/app-framework";
|
|
443
439
|
import { useIntentDispatcher } from "@dxos/app-framework/react";
|
|
444
|
-
import { Obj as
|
|
440
|
+
import { Obj as Obj5 } from "@dxos/echo";
|
|
445
441
|
import { Script } from "@dxos/functions";
|
|
446
442
|
import { invariant } from "@dxos/invariant";
|
|
447
443
|
import { SpaceAction } from "@dxos/plugin-space/types";
|
|
@@ -471,7 +467,7 @@ var useCreateAndDeployScriptTemplates = (space, scriptTemplates) => {
|
|
|
471
467
|
}), chain(SpaceAction.AddObject, {
|
|
472
468
|
target: space
|
|
473
469
|
})));
|
|
474
|
-
invariant(
|
|
470
|
+
invariant(Obj5.instanceOf(Script.Script, result.data?.object), void 0, {
|
|
475
471
|
F: __dxlog_file5,
|
|
476
472
|
L: 52,
|
|
477
473
|
S: void 0,
|
|
@@ -515,4 +511,4 @@ export {
|
|
|
515
511
|
useCreateAndDeployScriptTemplates,
|
|
516
512
|
useToolbarState
|
|
517
513
|
};
|
|
518
|
-
//# sourceMappingURL=chunk-
|
|
514
|
+
//# sourceMappingURL=chunk-VJSRZRLI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/functions.ts", "../../../src/util/deploy.ts", "../../../src/hooks/deploy.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts", "../../../src/hooks/useCreateAndDeployScriptTemplates.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { type Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { getSpace } from '@dxos/react-client/echo';\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: Script.Script;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n\n if (!existingFunctionId) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionId, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (\n script: Script.Script,\n storedFunction: Function.Function,\n meta: any,\n functionId: string,\n) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n storedFunction.description = script.description;\n } else if (meta.description) {\n storedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n storedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n storedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n if (meta.key) {\n storedFunction.key = meta.key;\n } else {\n log.verbose('no key in function metadata', { functionId });\n }\n};\n\nexport const getAccessCredential = (identityKey: PublicKey): Credential => {\n return {\n issuer: identityKey,\n issuanceDate: new Date(),\n subject: {\n id: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.ServiceAccess',\n serverName: 'hub.dxos.network',\n serverKey: identityKey,\n identityKey,\n capabilities: ['composer:beta'],\n },\n },\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata, setUserFunctionIdInMetadata } from '@dxos/functions';\nimport { bundleFunction } from '@dxos/functions-runtime/bundler';\nimport { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions-runtime/edge';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionId) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: Script.Script;\n client: Client;\n space: Space;\n fn?: Function.Function;\n existingFunctionId?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionId?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionId,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const buildResult = await bundleFunction({\n source: script.source!.target!.content,\n });\n if ('error' in buildResult) {\n throw buildResult.error || new Error('Bundle creation failed');\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: { [buildResult.entryPoint]: buildResult.asset },\n });\n\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);\n }\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);\n script.changed = false;\n updateFunctionMetadata(script, storedFunction, meta, functionId);\n\n setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);\n\n return { success: true, functionId };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: Script.Script, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: Function.Function | undefined,\n script: Script.Script,\n functionId: string,\n version: string,\n): Function.Function => {\n if (fn) {\n fn.name = script.name ?? 'New Function';\n fn.version = version;\n return fn;\n } else {\n const fn = Function.make({ name: script.name ?? 'New Function', version, source: Ref.make(script) });\n space.db.add(fn);\n setUserFunctionIdInMetadata(Obj.getMeta(fn), functionId);\n return fn;\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport { Obj, Query, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { type Space, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { type TFunction } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\nimport { errorMessageColors } from '@dxos/react-ui-theme';\n\nimport { meta } from '../meta';\nimport { deployScript, getFunctionUrl, isScriptDeployed } from '../util';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport type CreateDeployOptions = {\n state: Partial<DeployState>;\n script: Script.Script;\n fn: Function.Function;\n space?: Space;\n existingFunctionId?: string;\n client: Client;\n t: TFunction;\n};\n\nexport const createDeploy = ({ state, script, space, fn, client, existingFunctionId, t }: CreateDeployOptions) => {\n // TODO(wittjosiah): Should this be an action?\n const errorItem = createMenuAction('error', () => {}, {\n label: state.error ?? ['no error label', { ns: meta.id }],\n icon: 'ph--warning-circle--regular',\n hidden: !state.error,\n classNames: state.error && errorMessageColors,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>(\n 'deploy',\n async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\n\n const result = await deployScript({ script, client, space, fn, existingFunctionId });\n\n if (!result.success) {\n log.catch(result.error);\n state.error = t('upload failed label');\n }\n\n state.deploying = false;\n },\n {\n type: 'deploy',\n label: [state.deploying ? 'publishing label' : 'deploy label', { ns: meta.id }],\n icon: state.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: state.deploying,\n classNames: state.deploying ? '[&_svg]:animate-spin' : '',\n },\n );\n\n const copyAction = createMenuAction<DeployActionProperties>(\n 'copy',\n async () => {\n if (state.functionUrl) {\n await navigator.clipboard.writeText(state.functionUrl);\n }\n },\n {\n type: 'copy',\n label: ['copy link label', { ns: meta.id }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\n },\n );\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: Script.Script }) => {\n const { space, client, fn, existingFunctionId } = useDeployDeps({ script });\n useEffect(() => {\n if (!existingFunctionId) {\n return;\n }\n\n state.functionUrl = getFunctionUrl({\n script,\n fn,\n edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',\n });\n }, [existingFunctionId, space, fn, script, client.config.values.runtime?.services?.edge?.url]);\n\n useEffect(() => {\n state.deployed = isScriptDeployed({ script, fn });\n }, [script.changed, existingFunctionId, fn, script]);\n};\n\nexport const useDeployDeps = ({ script }: { script: Script.Script }) => {\n const client = useClient();\n const space = getSpace(script);\n const [fn] = useQuery(space, Query.type(Function.Function, { source: Ref.make(script) }));\n const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(Obj.getMeta(fn)), [fn]);\n return { client, space, fn, existingFunctionId };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { live } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\n\nexport type ScriptToolbarState = Partial<DeployState>;\n\n// TODO(burdon): Replace with context provider?\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => live<ScriptToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\n\nimport { type Script } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { meta } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = (script: Script.Script) => {\n const formatAction = createMenuAction(\n 'format',\n async () => {\n if (!script.source) {\n return;\n }\n\n try {\n script.source.target!.content = await format(script.source.target!.content, {\n parser: 'typescript',\n plugins: [prettierPluginEstree, prettierPluginTypescript],\n semi: true,\n singleQuote: true,\n });\n } catch (err: any) {\n // TODO(wittjosiah): Show error in UI.\n log.catch(err);\n }\n },\n {\n label: ['format label', { ns: meta.id }],\n icon: 'ph--magic-wand--regular',\n },\n );\n\n return {\n nodes: [formatAction],\n edges: [\n {\n source: 'root',\n target: 'format',\n },\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { FUNCTIONS_PRESET_META_KEY, type Script } from '@dxos/functions';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectActions = (script: Script.Script) => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(\n `template--${template.id}`,\n () => {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = Obj.getMeta(script).keys;\n const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);\n if (oldPresetIndex >= 0) {\n metaKeys.splice(oldPresetIndex, 1);\n }\n if ('presetId' in template) {\n metaKeys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n },\n {\n label: template.name,\n value: template.id,\n type: 'template',\n },\n );\n });\n};\n\nexport const createTemplateSelect = (script: Script.Script) => {\n const templateSelectActions = createTemplateSelectActions(script);\n return {\n nodes: [...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport { useCallback, useState } from 'react';\n\nimport { chain, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Obj } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type Template } from '../templates';\nimport { ScriptAction } from '../types';\nimport { deployScript } from '../util';\n\ntype DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * Hook for creating and deploying multiple script templates concurrently.\n *\n * Takes a space and an array of script template IDs, then provides a callback\n * function that creates each script from its template and deploys it to the space.\n * All creation / deployment operations run concurrently for improved performance.\n */\nexport const useCreateAndDeployScriptTemplates = (space: Space | undefined, scriptTemplates: Template[]) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const [status, setStatus] = useState<DeploymentStatus>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n\n const handleCreateAndDeployScripts = useCallback(async () => {\n invariant(space);\n setStatus('pending');\n setError(undefined);\n\n const deploymentResults = await Promise.all(\n scriptTemplates.map(async (template) => {\n const result = await dispatch(\n Function.pipe(\n createIntent(ScriptAction.CreateScript, {\n space,\n initialTemplateId: template.id as any,\n }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n invariant(Obj.instanceOf(Script.Script, result.data?.object));\n\n return deployScript({ space, client, script: result.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, dispatch, client, scriptTemplates]);\n\n // TODO(burdon): Return onCreateAndDeployScripts.\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Obj", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionId", "getMeta", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "description", "trim", "verbose", "inputSchema", "outputSchema", "key", "getAccessCredential", "identityKey", "issuer", "issuanceDate", "Date", "subject", "assertion", "serverName", "serverKey", "capabilities", "Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "setUserFunctionIdInMetadata", "bundleFunction", "incrementSemverPatch", "uploadWorkerFunction", "log", "isScriptDeployed", "script", "fn", "existingFunctionId", "getUserFunctionIdInMetadata", "Obj", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "buildResult", "bundleFunction", "source", "target", "content", "Error", "functionId", "version", "meta", "uploadWorkerFunction", "ownerPublicKey", "key", "incrementSemverPatch", "entryPoint", "assets", "asset", "undefined", "JSON", "stringify", "storedFunction", "createOrUpdateFunctionInSpace", "updateFunctionMetadata", "setUserFunctionIdInMetadata", "err", "log", "catch", "name", "Function", "make", "Ref", "db", "add", "useEffect", "useMemo", "Obj", "Query", "Ref", "Function", "getUserFunctionIdInMetadata", "log", "useClient", "getSpace", "useQuery", "createMenuAction", "errorMessageColors", "createDeploy", "state", "script", "space", "fn", "client", "existingFunctionId", "t", "errorItem", "createMenuAction", "label", "error", "ns", "meta", "id", "icon", "hidden", "classNames", "errorMessageColors", "deployAction", "source", "undefined", "deploying", "result", "deployScript", "success", "log", "catch", "type", "disabled", "copyAction", "functionUrl", "navigator", "clipboard", "writeText", "nodes", "edges", "target", "useDeployState", "useDeployDeps", "useEffect", "getFunctionUrl", "edgeUrl", "config", "values", "runtime", "services", "edge", "url", "deployed", "isScriptDeployed", "changed", "useClient", "getSpace", "useQuery", "Query", "Function", "Ref", "make", "useMemo", "getUserFunctionIdInMetadata", "Obj", "getMeta", "useMemo", "live", "useToolbarState", "initialState", "useMemo", "live", "format", "prettierPluginEstree", "prettierPluginTypescript", "log", "createMenuAction", "createFormat", "script", "formatAction", "createMenuAction", "source", "target", "content", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "err", "log", "catch", "label", "ns", "meta", "id", "icon", "nodes", "edges", "Obj", "FUNCTIONS_PRESET_META_KEY", "createMenuAction", "createTemplateSelectActions", "script", "templates", "map", "template", "createMenuAction", "id", "name", "source", "target", "content", "metaKeys", "Obj", "getMeta", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "push", "presetId", "label", "value", "type", "createTemplateSelect", "templateSelectActions", "nodes", "edges", "action", "Function", "useCallback", "useState", "chain", "createIntent", "useIntentDispatcher", "Obj", "Script", "invariant", "SpaceAction", "useClient", "useCreateAndDeployScriptTemplates", "space", "scriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "status", "setStatus", "useState", "error", "setError", "undefined", "handleCreateAndDeployScripts", "useCallback", "invariant", "deploymentResults", "Promise", "all", "map", "template", "result", "pipe", "createIntent", "ScriptAction", "CreateScript", "initialTemplateId", "id", "chain", "SpaceAction", "AddObject", "target", "Obj", "instanceOf", "Script", "data", "object", "deployScript", "script", "hasErrors", "some", "success"]
|
|
7
|
+
}
|
|
@@ -40,9 +40,9 @@ import { Stack, StackItem } from "@dxos/react-ui-stack";
|
|
|
40
40
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
41
41
|
import React2, { useCallback, useMemo } from "react";
|
|
42
42
|
import { Surface } from "@dxos/app-framework/react";
|
|
43
|
+
import { createDocAccessor } from "@dxos/echo-db";
|
|
43
44
|
import { invariant } from "@dxos/invariant";
|
|
44
45
|
import { TemplateEditor } from "@dxos/plugin-assistant";
|
|
45
|
-
import { createDocAccessor } from "@dxos/react-client/echo";
|
|
46
46
|
import { useThemeContext, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
47
47
|
import { QueryEditor } from "@dxos/react-ui-components";
|
|
48
48
|
import { EditorContent, createBasicExtensions, createDataExtensions, createMarkdownExtensions, createThemeExtensions, decorateMarkdown } from "@dxos/react-ui-editor";
|
|
@@ -67,7 +67,7 @@ var NotebookCell = ({ space, graph, dragging, cell, promptResults, env }) => {
|
|
|
67
67
|
}, [
|
|
68
68
|
cell.source?.target
|
|
69
69
|
]);
|
|
70
|
-
const
|
|
70
|
+
const explorerGraph = cell.graph?.target;
|
|
71
71
|
const handleQueryChange = useCallback((value) => {
|
|
72
72
|
invariant(cell.source?.target, void 0, {
|
|
73
73
|
F: __dxlog_file,
|
|
@@ -118,7 +118,7 @@ var NotebookCell = ({ space, graph, dragging, cell, promptResults, env }) => {
|
|
|
118
118
|
return null;
|
|
119
119
|
}
|
|
120
120
|
return /* @__PURE__ */ React2.createElement("div", {
|
|
121
|
-
className: mx("bs-full overflow-hidden grid",
|
|
121
|
+
className: mx("bs-full overflow-hidden grid", explorerGraph && !dragging && "grid-rows-[min-content_1fr]")
|
|
122
122
|
}, /* @__PURE__ */ React2.createElement(QueryEditor, {
|
|
123
123
|
id: cell.id,
|
|
124
124
|
classNames: [
|
|
@@ -128,11 +128,11 @@ var NotebookCell = ({ space, graph, dragging, cell, promptResults, env }) => {
|
|
|
128
128
|
db: space?.db,
|
|
129
129
|
value: cell.source.target.content,
|
|
130
130
|
onChange: handleQueryChange
|
|
131
|
-
}),
|
|
131
|
+
}), explorerGraph && !dragging && /* @__PURE__ */ React2.createElement(Surface, {
|
|
132
132
|
role: "section",
|
|
133
133
|
limit: 1,
|
|
134
134
|
data: {
|
|
135
|
-
subject:
|
|
135
|
+
subject: explorerGraph
|
|
136
136
|
}
|
|
137
137
|
}));
|
|
138
138
|
// TODO(burdon): Use streaming response from Chat.
|
|
@@ -302,4 +302,4 @@ export {
|
|
|
302
302
|
NotebookMenu,
|
|
303
303
|
NotebookStack
|
|
304
304
|
};
|
|
305
|
-
//# sourceMappingURL=chunk-
|
|
305
|
+
//# sourceMappingURL=chunk-VTRMJSQL.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/NotebookStack/NotebookMenu.tsx", "../../../src/components/NotebookStack/NotebookStack.tsx", "../../../src/components/NotebookStack/NotebookCell.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\nimport { type Notebook } from '../../types';\n\nexport type NotebookMenuProps = {\n cell?: Notebook.Cell;\n onCellInsert?: (type: Notebook.CellType, after: string | undefined) => void;\n onCellDelete?: (id: string) => void;\n};\n\n// TODO(burdon): Better way to organize menu?\nexport const NotebookMenu = ({ cell, onCellInsert, onCellDelete }: NotebookMenuProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <DropdownMenu.Portal>\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n <DropdownMenu.Item onClick={() => onCellInsert?.('script', cell?.id)}>\n {t('notebook cell insert script label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('prompt', cell?.id)}>\n {t('notebook cell insert prompt label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('query', cell?.id)}>\n {t('notebook cell insert query label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('markdown', cell?.id)}>\n {t('notebook cell insert markdown label')}\n </DropdownMenu.Item>\n {cell && onCellDelete && (\n <DropdownMenu.Item onClick={() => onCellDelete?.(cell.id)}>\n {t('notebook cell delete label')}\n </DropdownMenu.Item>\n )}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { Stack, StackItem, type StackProps } from '@dxos/react-ui-stack';\n\nimport { meta } from '../../meta';\nimport { type Notebook } from '../../types';\nimport { type TypescriptEditorProps } from '../TypescriptEditor';\n\nimport { NotebookCell, type NotebookCellProps } from './NotebookCell';\nimport { NotebookMenu } from './NotebookMenu';\n\nconst minSectionHeight = 'min-bs-[16rem]';\n\nexport type NotebookStackProps = ThemedClassName<\n {\n notebook?: Notebook.Notebook;\n onRearrange?: StackProps['onRearrange'];\n } & (Pick<NotebookSectionProps, 'space' | 'graph' | 'promptResults' | 'onCellInsert' | 'onCellDelete'> &\n Pick<TypescriptEditorProps, 'env'>)\n>;\n\n// TODO(burdon): Option for narrow rail (with compact buttons that align with first button in toolbar).\nexport const NotebookStack = ({ classNames, notebook, onRearrange, ...props }: NotebookStackProps) => {\n return (\n <Stack classNames={classNames} orientation='vertical' size='contain' rail onRearrange={onRearrange}>\n {notebook?.cells.map((cell, i) => (\n <NotebookSection key={i} cell={cell} {...props} />\n ))}\n </Stack>\n );\n};\n\ntype NotebookSectionProps = NotebookCellProps;\n\nconst NotebookSection = ({\n cell,\n space,\n env,\n promptResults,\n onCellInsert,\n onCellDelete,\n ...props\n}: NotebookSectionProps) => {\n const { t } = useTranslation(meta.id);\n const resizable = cell.type === 'query';\n\n return (\n <StackItem.Root role='section' item={cell} draggable classNames={resizable && minSectionHeight}>\n <StackItem.Heading classNames='bs-full p-1 justify-between attention-surface'>\n <StackItem.DragHandle asChild>\n <IconButton variant='ghost' icon='ph--dots-six-vertical--regular' iconOnly label='Drag handle' />\n </StackItem.DragHandle>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n variant='ghost'\n icon='ph--dots-three--regular'\n iconOnly\n label={t('notebook cell insert label')}\n />\n </DropdownMenu.Trigger>\n <NotebookMenu cell={cell} onCellInsert={onCellInsert} onCellDelete={onCellDelete} />\n </DropdownMenu.Root>\n {resizable && <StackItem.ResizeHandle />}\n </StackItem.Heading>\n\n {/* TODO(burdon): Move drag preview to outer stack (uniformly). */}\n <StackItem.DragPreview>\n {({ item: cell }) => (\n <StackItem.Content classNames='overflow-visible bg-groupSurface border border-subduedSeparator'>\n <NotebookCell space={space} cell={cell} env={env} dragging />\n </StackItem.Content>\n )}\n </StackItem.DragPreview>\n\n <StackItem.Content classNames='overflow-visible'>\n <NotebookCell space={space} cell={cell} env={env} promptResults={promptResults} {...props} />\n </StackItem.Content>\n </StackItem.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework/react';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { TemplateEditor } from '@dxos/plugin-assistant';\nimport { type Space } from '@dxos/react-client/echo';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport {\n type BasicExtensionsOptions,\n EditorContent,\n type EditorContentProps,\n createBasicExtensions,\n createDataExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n decorateMarkdown,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { type ComputeGraph } from '../../notebook';\nimport { type Notebook } from '../../types';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\n\nimport { type NotebookMenuProps } from './NotebookMenu';\n\nconst editorStyles = 'p-2 pis-3';\nconst valueStyles = 'p-1 pis-3';\n\nexport type NotebookCellProps = {\n space?: Space;\n graph?: ComputeGraph;\n dragging?: boolean;\n cell: Notebook.Cell;\n promptResults?: Record<string, string>;\n} & (Pick<NotebookMenuProps, 'onCellInsert' | 'onCellDelete'> & Pick<TypescriptEditorProps, 'env'>);\n\n// TODO(burdon): Show evaluation errors.\nexport const NotebookCell = ({ space, graph, dragging, cell, promptResults, env }: NotebookCellProps) => {\n const { t } = useTranslation(meta.id);\n\n const extensions = useMemo(() => {\n return cell.source?.target\n ? [\n createDataExtensions({\n id: cell.id,\n text: createDocAccessor(cell.source.target, ['content']),\n }),\n ].filter(isNonNullable)\n : [];\n }, [cell.source?.target]);\n\n const explorerGraph = cell.graph?.target;\n\n const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(\n (value: string) => {\n invariant(cell.source?.target);\n cell.source.target.content = value;\n },\n [cell],\n );\n\n switch (cell.type) {\n case 'markdown':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <NotebookTextEditor\n id={cell.id}\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n />\n );\n\n case 'script':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <>\n <TypescriptEditor\n id={cell.id}\n role='section'\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n env={env}\n options={{\n placeholder: t('notebook cell placeholder'),\n highlightActiveLine: false,\n lineNumbers: false,\n }}\n />\n <NotebookCellValue cell={cell} graph={graph} />\n </>\n );\n\n case 'query':\n if (!cell.source?.target) {\n return null;\n }\n\n // TODO(burdon): Remove app-framework deps (via render prop).\n return (\n <div\n className={mx('bs-full overflow-hidden grid', explorerGraph && !dragging && 'grid-rows-[min-content_1fr]')}\n >\n <QueryEditor\n id={cell.id}\n classNames={[editorStyles, 'border-be border-subduedSeparator']}\n db={space?.db}\n value={cell.source.target.content}\n onChange={handleQueryChange}\n />\n {explorerGraph && !dragging && <Surface role='section' limit={1} data={{ subject: explorerGraph }} />}\n </div>\n );\n\n // TODO(burdon): Use streaming response from Chat.\n case 'prompt':\n if (!cell.prompt?.target) {\n return null;\n }\n\n return (\n <>\n <TemplateEditor\n id={cell.id}\n template={cell.prompt.target.instructions}\n lineNumbers={false}\n classNames={editorStyles}\n />\n <NotebookPromptResult cell={cell} promptResults={promptResults} />\n </>\n );\n\n default:\n return null;\n }\n};\n\nconst NotebookCellValue = ({ cell, graph }: NotebookCellProps) => {\n const name = graph?.expressions.value[cell.id]?.name;\n const value = graph?.getValue(cell.id);\n if (value == null) {\n return null;\n }\n\n return (\n <div\n className={mx(\n 'flex is-full bg-groupSurface border-t border-subduedSeparator text-description font-mono',\n valueStyles,\n )}\n >\n {name && (\n <>\n <span className='text-successText'>{name}</span>\n <span className='text-description'> = </span>\n </>\n )}\n <span>{value}</span>\n </div>\n );\n};\n\nconst NotebookPromptResult = ({ cell, promptResults }: NotebookCellProps) => {\n if (!cell.prompt) {\n return null;\n }\n\n const value = promptResults?.[cell.prompt.dxn.toString()];\n if (value == null) {\n return null;\n }\n\n return (\n <div className={mx('flex is-full bg-groupSurface text-description border-t border-subduedSeparator', valueStyles)}>\n <NotebookTextEditor readOnly value={value} />\n </div>\n );\n};\n\nconst NotebookTextEditor = ({\n extensions: extensionsParam,\n readOnly,\n ...props\n}: EditorContentProps & Pick<BasicExtensionsOptions, 'readOnly'>) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n const extensions = useMemo(() => {\n return [\n createBasicExtensions({\n placeholder: t('notebook markdown placeholder'),\n readOnly,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n createMarkdownExtensions(),\n decorateMarkdown(),\n extensionsParam,\n ].filter(isNonNullable);\n }, [extensionsParam]);\n\n return <EditorContent {...props} extensions={extensions} selectionEnd />;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,sBAAsB;AAYtC,IAAMC,eAAe,CAAC,EAAEC,MAAMC,cAAcC,aAAY,MAAqB;;;AAClF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,WACE,sBAAA,cAACC,aAAaC,QAAM,MAClB,sBAAA,cAACD,aAAaE,SAAO,MACnB,sBAAA,cAACF,aAAaG,UAAQ,MACpB,sBAAA,cAACH,aAAaI,MAAI;MAACC,SAAS,MAAMX,eAAe,UAAUD,MAAMM,EAAAA;OAC9DH,EAAE,mCAAA,CAAA,GAEL,sBAAA,cAACI,aAAaI,MAAI;MAACC,SAAS,MAAMX,eAAe,UAAUD,MAAMM,EAAAA;OAC9DH,EAAE,mCAAA,CAAA,GAEL,sBAAA,cAACI,aAAaI,MAAI;MAACC,SAAS,MAAMX,eAAe,SAASD,MAAMM,EAAAA;OAC7DH,EAAE,kCAAA,CAAA,GAEL,sBAAA,cAACI,aAAaI,MAAI;MAACC,SAAS,MAAMX,eAAe,YAAYD,MAAMM,EAAAA;OAChEH,EAAE,qCAAA,CAAA,GAEJH,QAAQE,gBACP,sBAAA,cAACK,aAAaI,MAAI;MAACC,SAAS,MAAMV,eAAeF,KAAKM,EAAE;OACrDH,EAAE,4BAAA,CAAA,CAAA,GAIT,sBAAA,cAACI,aAAaM,OAAK,IAAA,CAAA,CAAA;;;;AAI3B;;;;AC1CA,OAAOC,YAAW;AAElB,SAASC,gBAAAA,eAAcC,YAAkCC,kBAAAA,uBAAsB;AAC/E,SAASC,OAAOC,iBAAkC;;;;ACHlD,OAAOC,UAASC,aAAaC,eAAe;AAE5C,SAASC,eAAe;AACxB,SAASC,yBAAyB;AAClC,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB;AAE/B,SAASC,iBAAiBC,kBAAAA,uBAAsB;AAChD,SAASC,mBAA0C;AACnD,SAEEC,eAEAC,uBACAC,sBACAC,0BACAC,uBACAC,wBACK;AACP,SAASC,UAAU;AACnB,SAASC,qBAAqB;;AAS9B,IAAMC,eAAe;AACrB,IAAMC,cAAc;AAWb,IAAMC,eAAe,CAAC,EAAEC,OAAOC,OAAOC,UAAUC,MAAMC,eAAeC,IAAG,MAAqB;;;AAClG,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,KAAKC,EAAE;AAEpC,UAAMC,aAAaC,QAAQ,MAAA;AACzB,aAAOR,KAAKS,QAAQC,SAChB;QACEC,qBAAqB;UACnBL,IAAIN,KAAKM;UACTM,MAAMC,kBAAkBb,KAAKS,OAAOC,QAAQ;YAAC;WAAU;QACzD,CAAA;QACAI,OAAOC,aAAAA,IACT,CAAA;IACN,GAAG;MAACf,KAAKS,QAAQC;KAAO;AAExB,UAAMM,gBAAgBhB,KAAKF,OAAOY;AAElC,UAAMO,oBAAoBC,YACxB,CAACC,UAAAA;AACCC,gBAAUpB,KAAKS,QAAQC,QAAAA,QAAAA;;;;;;;;;AACvBV,WAAKS,OAAOC,OAAOW,UAAUF;IAC/B,GACA;MAACnB;KAAK;AAGR,YAAQA,KAAKsB,MAAI;MACf,KAAK;AACH,YAAI,CAACtB,KAAKS,QAAQC,QAAQ;AACxB,iBAAO;QACT;AAEA,eACE,gBAAAa,OAAA,cAACC,oBAAAA;UACClB,IAAIN,KAAKM;UACTmB,YAAY/B;UACZgC,cAAc1B,KAAKS,OAAOC,OAAOW;UACjCd;;MAIN,KAAK;AACH,YAAI,CAACP,KAAKS,QAAQC,QAAQ;AACxB,iBAAO;QACT;AAEA,eACE,gBAAAa,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACI,kBAAAA;UACCrB,IAAIN,KAAKM;UACTsB,MAAK;UACLH,YAAY/B;UACZgC,cAAc1B,KAAKS,OAAOC,OAAOW;UACjCd;UACAL;UACA2B,SAAS;YACPC,aAAa3B,EAAE,2BAAA;YACf4B,qBAAqB;YACrBC,aAAa;UACf;YAEF,gBAAAT,OAAA,cAACU,mBAAAA;UAAkBjC;UAAYF;;MAIrC,KAAK;AACH,YAAI,CAACE,KAAKS,QAAQC,QAAQ;AACxB,iBAAO;QACT;AAGA,eACE,gBAAAa,OAAA,cAACW,OAAAA;UACCC,WAAWC,GAAG,gCAAgCpB,iBAAiB,CAACjB,YAAY,6BAAA;WAE5E,gBAAAwB,OAAA,cAACc,aAAAA;UACC/B,IAAIN,KAAKM;UACTmB,YAAY;YAAC/B;YAAc;;UAC3B4C,IAAIzC,OAAOyC;UACXnB,OAAOnB,KAAKS,OAAOC,OAAOW;UAC1BkB,UAAUtB;YAEXD,iBAAiB,CAACjB,YAAY,gBAAAwB,OAAA,cAACiB,SAAAA;UAAQZ,MAAK;UAAUa,OAAO;UAAGC,MAAM;YAAEC,SAAS3B;UAAc;;;MAKtG,KAAK;AACH,YAAI,CAAChB,KAAK4C,QAAQlC,QAAQ;AACxB,iBAAO;QACT;AAEA,eACE,gBAAAa,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACsB,gBAAAA;UACCvC,IAAIN,KAAKM;UACTwC,UAAU9C,KAAK4C,OAAOlC,OAAOqC;UAC7Bf,aAAa;UACbP,YAAY/B;YAEd,gBAAA6B,OAAA,cAACyB,sBAAAA;UAAqBhD;UAAYC;;MAIxC;AACE,eAAO;IACX;;;;AACF;AAEA,IAAMgC,oBAAoB,CAAC,EAAEjC,MAAMF,MAAK,MAAqB;;;AAC3D,UAAMmD,OAAOnD,OAAOoD,YAAY/B,MAAMnB,KAAKM,EAAE,GAAG2C;AAChD,UAAM9B,QAAQrB,OAAOqD,SAASnD,KAAKM,EAAE;AACrC,QAAIa,SAAS,MAAM;AACjB,aAAO;IACT;AAEA,WACE,gBAAAI,OAAA,cAACW,OAAAA;MACCC,WAAWC,GACT,4FACAzC,WAAAA;OAGDsD,QACC,gBAAA1B,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAAC6B,QAAAA;MAAKjB,WAAU;OAAoBc,IAAAA,GACpC,gBAAA1B,OAAA,cAAC6B,QAAAA;MAAKjB,WAAU;OAAmB,WAAA,CAAA,GAGvC,gBAAAZ,OAAA,cAAC6B,QAAAA,MAAMjC,KAAAA,CAAAA;;;;AAGb;AAEA,IAAM6B,uBAAuB,CAAC,EAAEhD,MAAMC,cAAa,MAAqB;;;AACtE,QAAI,CAACD,KAAK4C,QAAQ;AAChB,aAAO;IACT;AAEA,UAAMzB,QAAQlB,gBAAgBD,KAAK4C,OAAOS,IAAIC,SAAQ,CAAA;AACtD,QAAInC,SAAS,MAAM;AACjB,aAAO;IACT;AAEA,WACE,gBAAAI,OAAA,cAACW,OAAAA;MAAIC,WAAWC,GAAG,kFAAkFzC,WAAAA;OACnG,gBAAA4B,OAAA,cAACC,oBAAAA;MAAmB+B,UAAAA;MAASpC;;;;;AAGnC;AAEA,IAAMK,qBAAqB,CAAC,EAC1BjB,YAAYiD,iBACZD,UACA,GAAGE,MAAAA,MAC2D;;;AAC9D,UAAM,EAAEtD,EAAC,IAAKC,gBAAeC,KAAKC,EAAE;AACpC,UAAM,EAAEoD,UAAS,IAAKC,gBAAAA;AACtB,UAAMpD,aAAaC,QAAQ,MAAA;AACzB,aAAO;QACLoD,sBAAsB;UACpB9B,aAAa3B,EAAE,+BAAA;UACfoD;QACF,CAAA;QACAM,sBAAsB;UAAEH;UAAWI,oBAAoB;QAAK,CAAA;QAC5DC,yBAAAA;QACAC,iBAAAA;QACAR;QACA1C,OAAOC,aAAAA;IACX,GAAG;MAACyC;KAAgB;AAEpB,WAAO,gBAAAjC,OAAA,cAAC0C,eAAAA;MAAe,GAAGR;MAAOlD;MAAwB2D,cAAAA;;;;;AAC3D;;;ADvMA,IAAMC,mBAAmB;AAWlB,IAAMC,gBAAgB,CAAC,EAAEC,YAAYC,UAAUC,aAAa,GAAGC,MAAAA,MAA2B;;;AAC/F,WACE,gBAAAC,OAAA,cAACC,OAAAA;MAAML;MAAwBM,aAAY;MAAWC,MAAK;MAAUC,MAAAA;MAAKN;OACvED,UAAUQ,MAAMC,IAAI,CAACC,MAAMC,MAC1B,gBAAAR,OAAA,cAACS,iBAAAA;MAAgBC,KAAKF;MAAGD;MAAa,GAAGR;;;;;AAIjD;AAIA,IAAMU,kBAAkB,CAAC,EACvBF,MACAI,OACAC,KACAC,eACAC,cACAC,cACA,GAAGhB,MAAAA,MACkB;;;AACrB,UAAM,EAAEiB,EAAC,IAAKC,gBAAeC,KAAKC,EAAE;AACpC,UAAMC,YAAYb,KAAKc,SAAS;AAEhC,WACE,gBAAArB,OAAA,cAACsB,UAAUC,MAAI;MAACC,MAAK;MAAUC,MAAMlB;MAAMmB,WAAAA;MAAU9B,YAAYwB,aAAa1B;OAC5E,gBAAAM,OAAA,cAACsB,UAAUK,SAAO;MAAC/B,YAAW;OAC5B,gBAAAI,OAAA,cAACsB,UAAUM,YAAU;MAACC,SAAAA;OACpB,gBAAA7B,OAAA,cAAC8B,YAAAA;MAAWC,SAAQ;MAAQC,MAAK;MAAiCC,UAAAA;MAASC,OAAM;SAEnF,gBAAAlC,OAAA,cAACmC,cAAaZ,MAAI,MAChB,gBAAAvB,OAAA,cAACmC,cAAaC,SAAO;MAACP,SAAAA;OACpB,gBAAA7B,OAAA,cAAC8B,YAAAA;MACCC,SAAQ;MACRC,MAAK;MACLC,UAAAA;MACAC,OAAOlB,EAAE,4BAAA;SAGb,gBAAAhB,OAAA,cAACqC,cAAAA;MAAa9B;MAAYO;MAA4BC;SAEvDK,aAAa,gBAAApB,OAAA,cAACsB,UAAUgB,cAAY,IAAA,CAAA,GAIvC,gBAAAtC,OAAA,cAACsB,UAAUiB,aAAW,MACnB,CAAC,EAAEd,MAAMlB,MAAI,MACZ,gBAAAP,OAAA,cAACsB,UAAUkB,SAAO;MAAC5C,YAAW;OAC5B,gBAAAI,OAAA,cAACyC,cAAAA;MAAa9B;MAAcJ,MAAMA;MAAMK;MAAU8B,UAAAA;UAKxD,gBAAA1C,OAAA,cAACsB,UAAUkB,SAAO;MAAC5C,YAAW;OAC5B,gBAAAI,OAAA,cAACyC,cAAAA;MAAa9B;MAAcJ;MAAYK;MAAUC;MAA+B,GAAGd;;;;;AAI5F;",
|
|
6
|
+
"names": ["React", "DropdownMenu", "useTranslation", "NotebookMenu", "cell", "onCellInsert", "onCellDelete", "t", "useTranslation", "meta", "id", "DropdownMenu", "Portal", "Content", "Viewport", "Item", "onClick", "Arrow", "React", "DropdownMenu", "IconButton", "useTranslation", "Stack", "StackItem", "React", "useCallback", "useMemo", "Surface", "createDocAccessor", "invariant", "TemplateEditor", "useThemeContext", "useTranslation", "QueryEditor", "EditorContent", "createBasicExtensions", "createDataExtensions", "createMarkdownExtensions", "createThemeExtensions", "decorateMarkdown", "mx", "isNonNullable", "editorStyles", "valueStyles", "NotebookCell", "space", "graph", "dragging", "cell", "promptResults", "env", "t", "useTranslation", "meta", "id", "extensions", "useMemo", "source", "target", "createDataExtensions", "text", "createDocAccessor", "filter", "isNonNullable", "explorerGraph", "handleQueryChange", "useCallback", "value", "invariant", "content", "type", "React", "NotebookTextEditor", "classNames", "initialValue", "TypescriptEditor", "role", "options", "placeholder", "highlightActiveLine", "lineNumbers", "NotebookCellValue", "div", "className", "mx", "QueryEditor", "db", "onChange", "Surface", "limit", "data", "subject", "prompt", "TemplateEditor", "template", "instructions", "NotebookPromptResult", "name", "expressions", "getValue", "span", "dxn", "toString", "readOnly", "extensionsParam", "props", "themeMode", "useThemeContext", "createBasicExtensions", "createThemeExtensions", "syntaxHighlighting", "createMarkdownExtensions", "decorateMarkdown", "EditorContent", "selectionEnd", "minSectionHeight", "NotebookStack", "classNames", "notebook", "onRearrange", "props", "React", "Stack", "orientation", "size", "rail", "cells", "map", "cell", "i", "NotebookSection", "key", "space", "env", "promptResults", "onCellInsert", "onCellDelete", "t", "useTranslation", "meta", "id", "resizable", "type", "StackItem", "Root", "role", "item", "draggable", "Heading", "DragHandle", "asChild", "IconButton", "variant", "icon", "iconOnly", "label", "DropdownMenu", "Trigger", "NotebookMenu", "ResizeHandle", "DragPreview", "Content", "NotebookCell", "dragging"]
|
|
7
|
+
}
|
|
@@ -24,9 +24,10 @@ __export(Notebook_exports, {
|
|
|
24
24
|
import * as Schema from "effect/Schema";
|
|
25
25
|
import { Prompt } from "@dxos/blueprints";
|
|
26
26
|
import { Obj, Type } from "@dxos/echo";
|
|
27
|
-
import {
|
|
27
|
+
import { FormInputAnnotation } from "@dxos/echo/internal";
|
|
28
28
|
import { LabelAnnotation } from "@dxos/echo/internal";
|
|
29
|
-
import {
|
|
29
|
+
import { Graph } from "@dxos/plugin-explorer/types";
|
|
30
|
+
import { Text } from "@dxos/schema";
|
|
30
31
|
var Cell_ = Schema.Struct({
|
|
31
32
|
id: Schema.String,
|
|
32
33
|
type: Schema.String,
|
|
@@ -34,12 +35,12 @@ var Cell_ = Schema.Struct({
|
|
|
34
35
|
// TODO(burdon): Union type.
|
|
35
36
|
source: Schema.optional(Type.Ref(Text.Text)),
|
|
36
37
|
prompt: Schema.optional(Type.Ref(Prompt.Prompt)),
|
|
37
|
-
|
|
38
|
+
graph: Schema.optional(Type.Ref(Graph.Graph))
|
|
38
39
|
}).pipe(Schema.mutable);
|
|
39
40
|
var Cell = Cell_;
|
|
40
41
|
var Notebook = Schema.Struct({
|
|
41
42
|
name: Schema.String.pipe(Schema.optional),
|
|
42
|
-
cells: Cell.pipe(Schema.Array, Schema.mutable,
|
|
43
|
+
cells: Cell.pipe(Schema.Array, Schema.mutable, FormInputAnnotation.set(false))
|
|
43
44
|
}).pipe(Type.Obj({
|
|
44
45
|
typename: "dxos.org/type/Notebook",
|
|
45
46
|
version: "0.1.0"
|
|
@@ -100,4 +101,4 @@ export {
|
|
|
100
101
|
ScriptAction,
|
|
101
102
|
ScriptSettings
|
|
102
103
|
};
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
104
|
+
//# sourceMappingURL=chunk-XYKKDWUR.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/actions.ts", "../../../src/types/Notebook.ts", "../../../src/types/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { Script } from '@dxos/functions';\n\nimport { meta } from '../meta';\nimport { templates } from '../templates';\n\nimport * as Notebook from './Notebook';\n\nexport namespace ScriptAction {\n export const ScriptProps = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): Placeholder annotation?\n gistUrl: Schema.optional(Schema.String.annotations({ title: 'Import from Gist (url)' })),\n initialTemplateId: Schema.Literal(...templates.map(({ id }) => id)).pipe(\n Schema.annotations({ title: 'Template' }),\n Schema.optional,\n ),\n });\n\n export class CreateScript extends Schema.TaggedClass<CreateScript>()(`${meta.id}/action/create-script`, {\n input: Schema.extend(\n ScriptProps,\n Schema.Struct({\n space: SpaceSchema,\n }),\n ),\n output: Schema.Struct({\n object: Script.Script,\n }),\n }) {}\n\n export const NotebookProps = Schema.Struct({\n name: Schema.optional(Schema.String),\n });\n\n export class CreateNotebook extends Schema.TaggedClass<CreateNotebook>()(`${meta.id}/action/create-notebook`, {\n input: Schema.extend(\n NotebookProps,\n Schema.Struct({\n space: SpaceSchema,\n }),\n ),\n output: Schema.Struct({\n object: Notebook.Notebook,\n }),\n }) {}\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Prompt } from '@dxos/blueprints';\nimport { Obj, Type } from '@dxos/echo';\nimport { FormInputAnnotation } from '@dxos/echo/internal';\nimport { LabelAnnotation } from '@dxos/echo/internal';\nimport { Graph } from '@dxos/plugin-explorer/types';\nimport { Text } from '@dxos/schema';\n\nexport type CellType = 'markdown' | 'script' | 'query' | 'prompt' | 'view';\n\nconst Cell_ = Schema.Struct({\n id: Schema.String,\n type: Schema.String,\n name: Schema.optional(Schema.String),\n // TODO(burdon): Union type.\n source: Schema.optional(Type.Ref(Text.Text)),\n prompt: Schema.optional(Type.Ref(Prompt.Prompt)),\n graph: Schema.optional(Type.Ref(Graph.Graph)),\n}).pipe(Schema.mutable);\nexport interface Cell extends Schema.Schema.Type<typeof Cell_> {}\nexport interface Cell_Encoded extends Schema.Schema.Encoded<typeof Cell_> {}\nexport const Cell: Schema.Schema<Cell, Cell_Encoded> = Cell_;\n\nexport const Notebook = Schema.Struct({\n name: Schema.String.pipe(Schema.optional),\n cells: Cell.pipe(Schema.Array, Schema.mutable, FormInputAnnotation.set(false)),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Notebook',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n);\n\nexport type Notebook = Schema.Schema.Type<typeof Notebook>;\n\nexport const make = (props: Obj.MakeProps<typeof Notebook> = { cells: [] }) => Obj.make(Notebook, props);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { EditorInputMode } from '@dxos/react-ui-editor';\n\nexport const ScriptSettings = Schema.mutable(\n Schema.Struct({\n editorInputMode: EditorInputMode,\n }),\n);\n\nexport type ScriptSettings = Schema.Schema.Type<typeof ScriptSettings>;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;AAIA,YAAYA,aAAY;AAExB,SAASC,mBAAmB;AAC5B,SAASC,cAAc;;;ACPvB;;;;;;AAIA,YAAYC,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,KAAKC,YAAY;AAC1B,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,aAAa;AACtB,SAASC,YAAY;AAIrB,IAAMC,QAAeC,cAAO;EAC1BC,IAAWC;EACXC,MAAaD;EACbE,MAAaC,gBAAgBH,aAAM;;EAEnCI,QAAeD,gBAASE,KAAKC,IAAIC,KAAKA,IAAI,CAAA;EAC1CC,QAAeL,gBAASE,KAAKC,IAAIG,OAAOA,MAAM,CAAA;EAC9CC,OAAcP,gBAASE,KAAKC,IAAIK,MAAMA,KAAK,CAAA;AAC7C,CAAA,EAAGC,KAAYC,cAAO;AAGf,IAAMC,OAA0CjB;AAEhD,IAAMkB,WAAkBjB,cAAO;EACpCI,MAAaF,cAAOY,KAAYT,eAAQ;EACxCa,OAAOF,KAAKF,KAAYK,cAAcJ,gBAASK,oBAAoBC,IAAI,KAAA,CAAA;AACzE,CAAA,EAAGP,KACDP,KAAKe,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBJ,IAAI;EAAC;CAAO,CAAA;AAKvB,IAAMK,OAAO,CAACC,QAAwC;EAAET,OAAO,CAAA;AAAG,MAAMI,IAAII,KAAKT,UAAUU,KAAAA;;;UD3BjFC,eAAAA;gBACFC,cAAqBC,eAAO;IACvCC,MAAaC,iBAAgBC,cAAM;;IAEnCC,SAAgBF,iBAAgBC,eAAOE,YAAY;MAAEC,OAAO;IAAyB,CAAA,CAAA;IACrFC,mBAA0BC,gBAAO,GAAIC,UAAUC,IAAI,CAAC,EAAEC,GAAE,MAAOA,EAAAA,CAAAA,EAAKC,KAC3DP,oBAAY;MAAEC,OAAO;IAAW,CAAA,GAChCJ,gBAAQ;EAEnB,CAAA;EAEO,MAAMW,qBAA4BC,oBAAW,EAAiB,GAAGC,KAAKJ,EAAE,yBAAyB;IACtGK,OAAcC,eAAMnB,cAClBC,aACOC,eAAO;MACZkB,OAAOC;IACT,CAAA,CAAA;IAEFC,QAAepB,eAAO;MACpBqB,QAAQC,OAAOA;IACjB,CAAA;EACF,CAAA,EAAA;EAAI;gBAVST,eAAAA;gBAYAU,gBAAuBvB,eAAO;IACzCC,MAAaC,iBAAgBC,cAAM;EACrC,CAAA;EAEO,MAAMqB,uBAA8BV,oBAAW,EAAmB,GAAGC,KAAKJ,EAAE,2BAA2B;IAC5GK,OAAcC,eAAMnB,cAClByB,eACOvB,eAAO;MACZkB,OAAOC;IACT,CAAA,CAAA;IAEFC,QAAepB,eAAO;MACpBqB,QAAiBI;IACnB,CAAA;EACF,CAAA,EAAA;EAAI;gBAVSD,iBAAAA;AAWf,GAtCiB1B,iBAAAA,eAAAA,CAAAA,EAAAA;;;;AEVjB,YAAY4B,aAAY;AAExB,SAASC,uBAAuB;AAEzB,IAAMC,iBAAwBC,gBAC5BC,eAAO;EACZC,iBAAiBC;AACnB,CAAA,CAAA;",
|
|
6
|
+
"names": ["Schema", "SpaceSchema", "Script", "Schema", "Prompt", "Obj", "Type", "FormInputAnnotation", "LabelAnnotation", "Graph", "Text", "Cell_", "Struct", "id", "String", "type", "name", "optional", "source", "Type", "Ref", "Text", "prompt", "Prompt", "graph", "Graph", "pipe", "mutable", "Cell", "Notebook", "cells", "Array", "FormInputAnnotation", "set", "Obj", "typename", "version", "LabelAnnotation", "make", "props", "ScriptAction", "ScriptProps", "Struct", "name", "optional", "String", "gistUrl", "annotations", "title", "initialTemplateId", "Literal", "templates", "map", "id", "pipe", "CreateScript", "TaggedClass", "meta", "input", "extend", "space", "SpaceSchema", "output", "object", "Script", "NotebookProps", "CreateNotebook", "Notebook", "Schema", "EditorInputMode", "ScriptSettings", "mutable", "Struct", "editorInputMode", "EditorInputMode"]
|
|
7
|
+
}
|
|
@@ -8,17 +8,17 @@ import {
|
|
|
8
8
|
ScriptProperties,
|
|
9
9
|
TestContainer,
|
|
10
10
|
TestPanel
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UEVZP5DN.mjs";
|
|
12
12
|
import {
|
|
13
13
|
NotebookMenu,
|
|
14
14
|
NotebookStack
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-VTRMJSQL.mjs";
|
|
16
16
|
import {
|
|
17
17
|
ScriptCapabilities
|
|
18
18
|
} from "./chunk-55JZVM6K.mjs";
|
|
19
19
|
import {
|
|
20
20
|
DEPLOYMENT_DIALOG
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ND4BPYPR.mjs";
|
|
22
22
|
import "./chunk-HDKR5WCD.mjs";
|
|
23
23
|
import {
|
|
24
24
|
deployScript,
|
|
@@ -26,11 +26,11 @@ import {
|
|
|
26
26
|
getFunctionUrl,
|
|
27
27
|
isScriptDeployed,
|
|
28
28
|
updateFunctionMetadata
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-VJSRZRLI.mjs";
|
|
30
30
|
import {
|
|
31
31
|
Notebook_exports,
|
|
32
32
|
ScriptAction
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-XYKKDWUR.mjs";
|
|
34
34
|
import "./chunk-57JA6XL5.mjs";
|
|
35
35
|
import {
|
|
36
36
|
defaultScriptsForIntegration,
|
|
@@ -43,17 +43,15 @@ import { lazy } from "@dxos/app-framework";
|
|
|
43
43
|
var AppGraphBuilder = lazy(() => import("./app-graph-builder-NCVLUL5R.mjs"));
|
|
44
44
|
var BlueprintDefinition = lazy(() => import("./blueprint-definition-5R6YCSZZ.mjs"));
|
|
45
45
|
var Compiler = lazy(() => import("./compiler-DU5NQISX.mjs"));
|
|
46
|
-
var IntentResolver = lazy(() => import("./intent-resolver-
|
|
47
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
48
|
-
var ScriptSettings = lazy(() => import("./settings-
|
|
46
|
+
var IntentResolver = lazy(() => import("./intent-resolver-D6AVAQRA.mjs"));
|
|
47
|
+
var ReactSurface = lazy(() => import("./react-surface-MHT3PJ6C.mjs"));
|
|
48
|
+
var ScriptSettings = lazy(() => import("./settings-BVJORMMJ.mjs"));
|
|
49
49
|
|
|
50
50
|
// src/ScriptPlugin.tsx
|
|
51
51
|
import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
|
|
52
52
|
import { Ref } from "@dxos/echo";
|
|
53
53
|
import { Script as Script2 } from "@dxos/functions";
|
|
54
|
-
import { ClientEvents } from "@dxos/plugin-client";
|
|
55
|
-
import { SpaceCapabilities } from "@dxos/plugin-space";
|
|
56
|
-
import { defineObjectForm } from "@dxos/plugin-space/types";
|
|
54
|
+
import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
|
|
57
55
|
|
|
58
56
|
// src/events.ts
|
|
59
57
|
import { defineEvent } from "@dxos/app-framework";
|
|
@@ -74,7 +72,8 @@ var translations = [
|
|
|
74
72
|
"typename label_other": "Scripts",
|
|
75
73
|
"object name placeholder": "New script",
|
|
76
74
|
"rename object label": "Rename script",
|
|
77
|
-
"delete object label": "Delete script"
|
|
75
|
+
"delete object label": "Delete script",
|
|
76
|
+
"object deleted label": "Script deleted"
|
|
78
77
|
},
|
|
79
78
|
[Notebook_exports.Notebook.typename]: {
|
|
80
79
|
"typename label": "Notebook",
|
|
@@ -83,7 +82,8 @@ var translations = [
|
|
|
83
82
|
"typename label_other": "Notebooks",
|
|
84
83
|
"object name placeholder": "New notebook",
|
|
85
84
|
"rename object label": "Rename notebook",
|
|
86
|
-
"delete object label": "Delete notebook"
|
|
85
|
+
"delete object label": "Delete notebook",
|
|
86
|
+
"object deleted label": "Notebook deleted"
|
|
87
87
|
},
|
|
88
88
|
[meta.id]: {
|
|
89
89
|
"plugin name": "Scripts",
|
|
@@ -188,14 +188,26 @@ var ScriptPlugin = definePlugin(meta, () => [
|
|
|
188
188
|
// TODO(wittjosiah): Move out of metadata.
|
|
189
189
|
loadReferences: async (script) => await Ref.Array.loadAll([
|
|
190
190
|
script.source
|
|
191
|
-
])
|
|
191
|
+
]),
|
|
192
|
+
inputSchema: ScriptAction.ScriptProps,
|
|
193
|
+
createObjectIntent: (props, options) => createIntent(ScriptAction.CreateScript, {
|
|
194
|
+
...props,
|
|
195
|
+
space: options.space
|
|
196
|
+
}),
|
|
197
|
+
addToCollectionOnCreate: true
|
|
192
198
|
}
|
|
193
199
|
}),
|
|
194
200
|
contributes(Capabilities.Metadata, {
|
|
195
201
|
id: Notebook_exports.Notebook.typename,
|
|
196
202
|
metadata: {
|
|
197
203
|
icon: "ph--notebook--regular",
|
|
198
|
-
iconHue: "sky"
|
|
204
|
+
iconHue: "sky",
|
|
205
|
+
inputSchema: ScriptAction.NotebookProps,
|
|
206
|
+
createObjectIntent: (props, options) => createIntent(ScriptAction.CreateNotebook, {
|
|
207
|
+
...props,
|
|
208
|
+
space: options.space
|
|
209
|
+
}),
|
|
210
|
+
addToCollectionOnCreate: true
|
|
199
211
|
}
|
|
200
212
|
})
|
|
201
213
|
]
|
|
@@ -206,28 +218,11 @@ var ScriptPlugin = definePlugin(meta, () => [
|
|
|
206
218
|
activate: AppGraphBuilder
|
|
207
219
|
}),
|
|
208
220
|
defineModule({
|
|
209
|
-
id: `${meta.id}/module/
|
|
210
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
211
|
-
activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
|
|
212
|
-
objectSchema: Script2.Script,
|
|
213
|
-
formSchema: ScriptAction.ScriptProps,
|
|
214
|
-
getIntent: (props, options) => createIntent(ScriptAction.CreateScript, {
|
|
215
|
-
...props,
|
|
216
|
-
space: options.space
|
|
217
|
-
})
|
|
218
|
-
}))
|
|
219
|
-
}),
|
|
220
|
-
defineModule({
|
|
221
|
-
id: `${meta.id}/module/notebook/object-form`,
|
|
221
|
+
id: `${meta.id}/module/schema`,
|
|
222
222
|
activatesOn: ClientEvents.SetupSchema,
|
|
223
|
-
activate: () => contributes(
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
getIntent: (props, options) => createIntent(ScriptAction.CreateNotebook, {
|
|
227
|
-
...props,
|
|
228
|
-
space: options.space
|
|
229
|
-
})
|
|
230
|
-
}))
|
|
223
|
+
activate: () => contributes(ClientCapabilities.Schema, [
|
|
224
|
+
Script2.Script
|
|
225
|
+
])
|
|
231
226
|
}),
|
|
232
227
|
defineModule({
|
|
233
228
|
id: `${meta.id}/module/react-surface`,
|