@dxos/plugin-script 0.8.1-staging.391c573 → 0.8.1-staging.5be625a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/lib/browser/{ScriptContainer-4FIJVITA.mjs → ScriptContainer-DDXZNAPF.mjs} +10 -16
  2. package/dist/lib/browser/ScriptContainer-DDXZNAPF.mjs.map +7 -0
  3. package/dist/lib/browser/{artifact-definition-GTL3ZSF2.mjs → artifact-definition-GYCZJGR4.mjs} +7 -6
  4. package/dist/lib/browser/artifact-definition-GYCZJGR4.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-FVVCAWNP.mjs → chunk-27LV6ARH.mjs} +1 -1
  6. package/dist/lib/browser/chunk-27LV6ARH.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-JL34HAEL.mjs → chunk-AJNRPWAA.mjs} +2 -2
  8. package/dist/lib/browser/{chunk-6MOQ4BP3.mjs → chunk-FG66JYON.mjs} +2 -2
  9. package/dist/lib/browser/{chunk-7TZYIGBS.mjs → chunk-LJN26TSM.mjs} +30 -45
  10. package/dist/lib/browser/chunk-LJN26TSM.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-SFG422OU.mjs → chunk-T7XG5GED.mjs} +3 -3
  12. package/dist/lib/browser/{compiler-YY2XSKHQ.mjs → compiler-ZQLHHJ5P.mjs} +3 -3
  13. package/dist/lib/browser/index.mjs +16 -22
  14. package/dist/lib/browser/index.mjs.map +3 -3
  15. package/dist/lib/browser/{intent-resolver-BJ76DBGE.mjs → intent-resolver-3B3Z67FP.mjs} +3 -3
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{react-surface-HXCDELEA.mjs → react-surface-ICXHFHN7.mjs} +11 -11
  18. package/dist/lib/browser/react-surface-ICXHFHN7.mjs.map +7 -0
  19. package/dist/lib/browser/{settings-HIWURVAS.mjs → settings-467GVEBU.mjs} +3 -3
  20. package/dist/lib/browser/types.mjs +2 -2
  21. package/dist/lib/node/{ScriptContainer-54GQSZCU.cjs → ScriptContainer-DM4WSS4Y.cjs} +19 -25
  22. package/dist/lib/node/ScriptContainer-DM4WSS4Y.cjs.map +7 -0
  23. package/dist/lib/node/{artifact-definition-64KZC4UT.cjs → artifact-definition-3SNVJ34V.cjs} +15 -14
  24. package/dist/lib/node/artifact-definition-3SNVJ34V.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-5UH3F7TA.cjs → chunk-2XX4L67K.cjs} +4 -4
  26. package/dist/lib/node/chunk-2XX4L67K.cjs.map +7 -0
  27. package/dist/lib/node/{chunk-ALY3N6PW.cjs → chunk-AOKGOI5J.cjs} +6 -6
  28. package/dist/lib/node/{chunk-CJ45RBS4.cjs → chunk-I5Z6TRZY.cjs} +40 -55
  29. package/dist/lib/node/chunk-I5Z6TRZY.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-45OE3V5M.cjs → chunk-VLQUYHPB.cjs} +9 -9
  31. package/dist/lib/node/{chunk-VJ73IG7P.cjs → chunk-XFB6JL2G.cjs} +6 -6
  32. package/dist/lib/node/{compiler-UIBLKJKG.cjs → compiler-5ALLTH2B.cjs} +7 -7
  33. package/dist/lib/node/index.cjs +39 -45
  34. package/dist/lib/node/index.cjs.map +3 -3
  35. package/dist/lib/node/{intent-resolver-HQ3FGK2K.cjs → intent-resolver-CN5WMMAD.cjs} +7 -7
  36. package/dist/lib/node/meta.json +1 -1
  37. package/dist/lib/node/{react-surface-QQL4EDUS.cjs → react-surface-IER3VEZR.cjs} +26 -26
  38. package/dist/lib/node/react-surface-IER3VEZR.cjs.map +7 -0
  39. package/dist/lib/node/{settings-ZASSNBKR.cjs → settings-WLYT2XQF.cjs} +9 -9
  40. package/dist/lib/node/types.cjs +4 -4
  41. package/dist/lib/node/types.cjs.map +1 -1
  42. package/dist/lib/node-esm/{ScriptContainer-JAQY5F3X.mjs → ScriptContainer-HWCHDARL.mjs} +10 -16
  43. package/dist/lib/node-esm/ScriptContainer-HWCHDARL.mjs.map +7 -0
  44. package/dist/lib/node-esm/{artifact-definition-SF46QOO7.mjs → artifact-definition-VAFNV62U.mjs} +7 -6
  45. package/dist/lib/node-esm/artifact-definition-VAFNV62U.mjs.map +7 -0
  46. package/dist/lib/node-esm/{chunk-P2V2Y5LV.mjs → chunk-5S2KBIMH.mjs} +1 -1
  47. package/dist/lib/node-esm/chunk-5S2KBIMH.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-LBFWIT3Y.mjs → chunk-BIFA5BEB.mjs} +3 -3
  49. package/dist/lib/node-esm/{chunk-RI35DJSW.mjs → chunk-F2O475DQ.mjs} +30 -45
  50. package/dist/lib/node-esm/chunk-F2O475DQ.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-CP5LXTK5.mjs → chunk-MFXRE7ZD.mjs} +2 -2
  52. package/dist/lib/node-esm/{chunk-FHQKFLM7.mjs → chunk-WQ4YIZ2L.mjs} +2 -2
  53. package/dist/lib/node-esm/{compiler-XTXFGZJM.mjs → compiler-K7GYROAO.mjs} +3 -3
  54. package/dist/lib/node-esm/index.mjs +16 -22
  55. package/dist/lib/node-esm/index.mjs.map +3 -3
  56. package/dist/lib/node-esm/{intent-resolver-CDTQKQD4.mjs → intent-resolver-6F7CVQEX.mjs} +3 -3
  57. package/dist/lib/node-esm/meta.json +1 -1
  58. package/dist/lib/node-esm/{react-surface-PCW5HN3B.mjs → react-surface-EXSKKZNP.mjs} +11 -11
  59. package/dist/lib/node-esm/react-surface-EXSKKZNP.mjs.map +7 -0
  60. package/dist/lib/node-esm/{settings-FDGLXN4I.mjs → settings-DR3B6GHE.mjs} +3 -3
  61. package/dist/lib/node-esm/types.mjs +2 -2
  62. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  65. package/dist/types/src/components/LogsPanel/LogsPanel.d.ts.map +1 -1
  66. package/dist/types/src/components/ScriptContainer.d.ts +2 -1
  67. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  68. package/dist/types/src/components/index.d.ts +1 -1
  69. package/dist/types/src/components/index.d.ts.map +1 -1
  70. package/dist/types/src/hooks/deploy.d.ts +7 -6
  71. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  72. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -1
  73. package/dist/types/src/hooks/useToolbarState.d.ts +2 -8
  74. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  75. package/dist/types/src/hooks/view.d.ts +3 -15
  76. package/dist/types/src/hooks/view.d.ts.map +1 -1
  77. package/dist/types/src/meta.d.ts +2 -9
  78. package/dist/types/src/meta.d.ts.map +1 -1
  79. package/dist/types/src/translations.d.ts +5 -9
  80. package/dist/types/src/translations.d.ts.map +1 -1
  81. package/dist/types/src/types.d.ts +8 -2
  82. package/dist/types/src/types.d.ts.map +1 -1
  83. package/package.json +45 -45
  84. package/src/ScriptPlugin.tsx +2 -2
  85. package/src/capabilities/artifact-definition.ts +1 -0
  86. package/src/capabilities/react-surface.tsx +15 -5
  87. package/src/components/LogsPanel/LogsPanel.tsx +19 -14
  88. package/src/components/ScriptContainer.tsx +11 -9
  89. package/src/hooks/useToolbarAction.ts +12 -3
  90. package/src/hooks/useToolbarState.ts +1 -2
  91. package/src/hooks/view.ts +6 -20
  92. package/src/meta.ts +2 -2
  93. package/src/translations.ts +2 -3
  94. package/dist/lib/browser/ScriptContainer-4FIJVITA.mjs.map +0 -7
  95. package/dist/lib/browser/artifact-definition-GTL3ZSF2.mjs.map +0 -7
  96. package/dist/lib/browser/chunk-7TZYIGBS.mjs.map +0 -7
  97. package/dist/lib/browser/chunk-FVVCAWNP.mjs.map +0 -7
  98. package/dist/lib/browser/react-surface-HXCDELEA.mjs.map +0 -7
  99. package/dist/lib/node/ScriptContainer-54GQSZCU.cjs.map +0 -7
  100. package/dist/lib/node/artifact-definition-64KZC4UT.cjs.map +0 -7
  101. package/dist/lib/node/chunk-5UH3F7TA.cjs.map +0 -7
  102. package/dist/lib/node/chunk-CJ45RBS4.cjs.map +0 -7
  103. package/dist/lib/node/react-surface-QQL4EDUS.cjs.map +0 -7
  104. package/dist/lib/node-esm/ScriptContainer-JAQY5F3X.mjs.map +0 -7
  105. package/dist/lib/node-esm/artifact-definition-SF46QOO7.mjs.map +0 -7
  106. package/dist/lib/node-esm/chunk-P2V2Y5LV.mjs.map +0 -7
  107. package/dist/lib/node-esm/chunk-RI35DJSW.mjs.map +0 -7
  108. package/dist/lib/node-esm/react-surface-PCW5HN3B.mjs.map +0 -7
  109. /package/dist/lib/browser/{chunk-JL34HAEL.mjs.map → chunk-AJNRPWAA.mjs.map} +0 -0
  110. /package/dist/lib/browser/{chunk-6MOQ4BP3.mjs.map → chunk-FG66JYON.mjs.map} +0 -0
  111. /package/dist/lib/browser/{chunk-SFG422OU.mjs.map → chunk-T7XG5GED.mjs.map} +0 -0
  112. /package/dist/lib/browser/{compiler-YY2XSKHQ.mjs.map → compiler-ZQLHHJ5P.mjs.map} +0 -0
  113. /package/dist/lib/browser/{intent-resolver-BJ76DBGE.mjs.map → intent-resolver-3B3Z67FP.mjs.map} +0 -0
  114. /package/dist/lib/browser/{settings-HIWURVAS.mjs.map → settings-467GVEBU.mjs.map} +0 -0
  115. /package/dist/lib/node/{chunk-ALY3N6PW.cjs.map → chunk-AOKGOI5J.cjs.map} +0 -0
  116. /package/dist/lib/node/{chunk-45OE3V5M.cjs.map → chunk-VLQUYHPB.cjs.map} +0 -0
  117. /package/dist/lib/node/{chunk-VJ73IG7P.cjs.map → chunk-XFB6JL2G.cjs.map} +0 -0
  118. /package/dist/lib/node/{compiler-UIBLKJKG.cjs.map → compiler-5ALLTH2B.cjs.map} +0 -0
  119. /package/dist/lib/node/{intent-resolver-HQ3FGK2K.cjs.map → intent-resolver-CN5WMMAD.cjs.map} +0 -0
  120. /package/dist/lib/node/{settings-ZASSNBKR.cjs.map → settings-WLYT2XQF.cjs.map} +0 -0
  121. /package/dist/lib/node-esm/{chunk-LBFWIT3Y.mjs.map → chunk-BIFA5BEB.mjs.map} +0 -0
  122. /package/dist/lib/node-esm/{chunk-CP5LXTK5.mjs.map → chunk-MFXRE7ZD.mjs.map} +0 -0
  123. /package/dist/lib/node-esm/{chunk-FHQKFLM7.mjs.map → chunk-WQ4YIZ2L.mjs.map} +0 -0
  124. /package/dist/lib/node-esm/{compiler-XTXFGZJM.mjs.map → compiler-K7GYROAO.mjs.map} +0 -0
  125. /package/dist/lib/node-esm/{intent-resolver-CDTQKQD4.mjs.map → intent-resolver-6F7CVQEX.mjs.map} +0 -0
  126. /package/dist/lib/node-esm/{settings-FDGLXN4I.mjs.map → settings-DR3B6GHE.mjs.map} +0 -0
@@ -26,15 +26,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var ScriptContainer_54GQSZCU_exports = {};
30
- __export(ScriptContainer_54GQSZCU_exports, {
29
+ var ScriptContainer_DM4WSS4Y_exports = {};
30
+ __export(ScriptContainer_DM4WSS4Y_exports, {
31
31
  ScriptContainer: () => ScriptContainer,
32
32
  default: () => ScriptContainer_default
33
33
  });
34
- module.exports = __toCommonJS(ScriptContainer_54GQSZCU_exports);
35
- var import_chunk_CJ45RBS4 = require("./chunk-CJ45RBS4.cjs");
34
+ module.exports = __toCommonJS(ScriptContainer_DM4WSS4Y_exports);
35
+ var import_chunk_I5Z6TRZY = require("./chunk-I5Z6TRZY.cjs");
36
36
  var import_chunk_XCQNFRZ6 = require("./chunk-XCQNFRZ6.cjs");
37
- var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
37
+ var import_chunk_2XX4L67K = require("./chunk-2XX4L67K.cjs");
38
38
  var import_react = __toESM(require("react"));
39
39
  var import_echo = require("@dxos/react-client/echo");
40
40
  var import_halo = require("@dxos/react-client/halo");
@@ -59,11 +59,11 @@ var import_react_ui2 = require("@dxos/react-ui");
59
59
  var import_react_ui_editor3 = require("@dxos/react-ui-editor");
60
60
  var import_util = require("@dxos/util");
61
61
  var createToolbar = (state) => {
62
- const templateSelect = (0, import_chunk_CJ45RBS4.createTemplateSelect)();
63
- const format = (0, import_chunk_CJ45RBS4.createFormat)();
62
+ const templateSelect = (0, import_chunk_I5Z6TRZY.createTemplateSelect)();
63
+ const format = (0, import_chunk_I5Z6TRZY.createFormat)();
64
64
  const gap = (0, import_react_ui_menu.createGapSeparator)();
65
- const deploy = (0, import_chunk_CJ45RBS4.createDeploy)(state);
66
- const view = (0, import_chunk_CJ45RBS4.createView)(state);
65
+ const deploy = (0, import_chunk_I5Z6TRZY.createDeploy)(state);
66
+ const view = (0, import_chunk_I5Z6TRZY.createView)(state);
67
67
  return {
68
68
  nodes: [
69
69
  ...templateSelect.nodes,
@@ -82,7 +82,7 @@ var createToolbar = (state) => {
82
82
  };
83
83
  };
84
84
  var ScriptToolbar = ({ script, role, state, classNames }) => {
85
- const handleAction = (0, import_chunk_CJ45RBS4.useToolbarAction)({
85
+ const handleAction = (0, import_chunk_I5Z6TRZY.useToolbarAction)({
86
86
  state,
87
87
  script
88
88
  });
@@ -211,7 +211,7 @@ var createTooltipRenderer = (themeMode) => {
211
211
  };
212
212
  };
213
213
  };
214
- var ScriptContainer = ({ role, classNames, script, settings = {
214
+ var ScriptContainer = ({ role, classNames, script, variant, settings = {
215
215
  editorInputMode: "vscode"
216
216
  }, env }) => {
217
217
  const identity = (0, import_halo.useIdentity)();
@@ -238,10 +238,8 @@ var ScriptContainer = ({ role, classNames, script, settings = {
238
238
  space,
239
239
  identity
240
240
  ]);
241
- const state = (0, import_chunk_CJ45RBS4.useToolbarState)({
242
- view: "editor"
243
- });
244
- (0, import_chunk_CJ45RBS4.useDeployState)({
241
+ const state = (0, import_chunk_I5Z6TRZY.useToolbarState)();
242
+ (0, import_chunk_I5Z6TRZY.useDeployState)({
245
243
  state,
246
244
  script
247
245
  });
@@ -249,15 +247,14 @@ var ScriptContainer = ({ role, classNames, script, settings = {
249
247
  return null;
250
248
  }
251
249
  return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
252
- toolbar: true
253
- }, /* @__PURE__ */ import_react.default.createElement(ScriptToolbar, {
250
+ toolbar: variant !== "logs"
251
+ }, variant === "logs" ? /* @__PURE__ */ import_react.default.createElement(import_chunk_I5Z6TRZY.LogsPanel, {
252
+ script
253
+ }) : /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(ScriptToolbar, {
254
254
  state,
255
255
  role,
256
256
  script
257
- }), /* @__PURE__ */ import_react.default.createElement("div", {
258
- role: "none",
259
- className: (0, import_react_ui_theme.mx)("flex flex-col w-full overflow-hidden divide-y divide-separator", classNames)
260
- }, state.view !== "logs" && /* @__PURE__ */ import_react.default.createElement(TypescriptEditor, {
257
+ }), /* @__PURE__ */ import_react.default.createElement(TypescriptEditor, {
261
258
  id: script.id,
262
259
  env,
263
260
  initialValue: script.source?.target?.content,
@@ -265,9 +262,6 @@ var ScriptContainer = ({ role, classNames, script, settings = {
265
262
  className: (0, import_react_ui_theme.mx)((0, import_react_ui_editor.stackItemContentEditorClassNames)(role), "grow"),
266
263
  inputMode: settings.editorInputMode,
267
264
  toolbar: true
268
- }), state.view !== "editor" && /* @__PURE__ */ import_react.default.createElement(import_chunk_CJ45RBS4.LogsPanel, {
269
- script,
270
- classNames: "grow"
271
265
  })));
272
266
  };
273
267
  var ScriptContainer_default = ScriptContainer;
@@ -275,4 +269,4 @@ var ScriptContainer_default = ScriptContainer;
275
269
  0 && (module.exports = {
276
270
  ScriptContainer
277
271
  });
278
- //# sourceMappingURL=ScriptContainer-54GQSZCU.cjs.map
272
+ //# sourceMappingURL=ScriptContainer-DM4WSS4Y.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions/types';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { LogsPanel } from './LogsPanel';\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = ThemedClassName<{\n script: ScriptType;\n variant?: 'logs';\n settings?: ScriptSettingsProps;\n role?: string;\n}> &\n Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({\n role,\n classNames,\n script,\n variant,\n settings = { editorInputMode: 'vscode' },\n env,\n}: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n\n const extensions = useMemo(\n () => [\n listener({\n onChange: (text) => {\n if (script.source.target && script.source.target.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: script.source.target && createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ],\n [script, script.source.target, space, identity],\n );\n\n const state = useToolbarState();\n useDeployState({ state, script });\n\n if (!space) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar={variant !== 'logs'}>\n {variant === 'logs' ? (\n <LogsPanel script={script} />\n ) : (\n <>\n <ScriptToolbar state={state} role={role} script={script} />\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n className={mx(stackItemContentEditorClassNames(role), 'grow')}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </>\n )}\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions/types';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, type ThemedClassName } from '@dxos/react-ui';\nimport { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';\nimport { createGapSeparator, MenuProvider, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n createView,\n useToolbarAction,\n} from '../../hooks';\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nconst createToolbar = (state: ScriptToolbarState) => {\n const templateSelect = createTemplateSelect();\n const format = createFormat();\n const gap = createGapSeparator();\n const deploy = createDeploy(state);\n const view = createView(state);\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes, ...view.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges, ...view.edges],\n };\n};\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const handleAction = useToolbarAction({ state, script });\n const toolbarCreator = useCallback(() => createToolbar(state), [state]);\n const menu = useMenuActions(toolbarCreator);\n return (\n <div role='none' className={stackItemContentToolbarClassNames(role)}>\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} onAction={handleAction} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\nimport { Prec } from '@codemirror/state';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover, type HoverInfo } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport {\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n editorFullWidth,\n type EditorInputMode,\n editorMonospace,\n EditorView,\n folding,\n InputModeExtensions,\n useTextEditor,\n type UseTextEditorProps,\n} from '@dxos/react-ui-editor';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = {\n id: string;\n inputMode?: EditorInputMode;\n env?: VirtualTypeScriptEnvironment;\n toolbar?: boolean;\n} & Pick<UseTextEditorProps, 'className' | 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>;\n\nexport const TypescriptEditor = ({\n id,\n env,\n className,\n initialValue,\n extensions,\n scrollTo,\n selection,\n toolbar,\n inputMode = 'vscode',\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: true,\n }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n slots: {\n content: { className: editorFullWidth },\n },\n }),\n // NOTE: Not using default editor gutter because folding for code works best right beside text.\n EditorView.theme({\n '.cm-gutters': {\n // Match margin from content.\n marginTop: '16px',\n background: 'var(--dx-baseSurface)',\n },\n }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when you hit Enter.\n Prec.high(keymap.of(continueKeymap)),\n // TODO(burdon): Factor out.\n [\n editorMonospace,\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : [] }),\n env\n ? [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ]\n : [],\n ],\n ].filter(isNonNullable),\n selection,\n scrollTo,\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n return (\n <div ref={parentRef} data-toolbar={toolbar ? 'enabled' : 'disabled'} className={className} {...focusAttributes} />\n );\n};\n\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = themeMode === 'dark' ? oneDarkHighlightStyle : defaultHighlightStyle;\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const div = document.createElement('div');\n div.className = 'p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg';\n\n if (info.quickInfo?.displayParts) {\n for (const part of info.quickInfo.displayParts) {\n const span = div.appendChild(document.createElement('span'));\n span.className = classFromKind(part.kind);\n span.innerText = part.text;\n }\n }\n\n return { dom: div };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_echo", "import_react_ui_editor", "import_react_ui", "createToolbar", "state", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "view", "createView", "nodes", "edges", "ScriptToolbar", "script", "role", "classNames", "handleAction", "useToolbarAction", "toolbarCreator", "useCallback", "menu", "useMenuActions", "React", "div", "className", "stackItemContentToolbarClassNames", "ElevationProvider", "elevation", "MenuProvider", "onAction", "attendableId", "fullyQualifiedId", "ToolbarMenu", "TypescriptEditor", "id", "env", "initialValue", "extensions", "scrollTo", "selection", "toolbar", "inputMode", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "slots", "content", "editorFullWidth", "EditorView", "theme", "marginTop", "background", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "editorMonospace", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "ref", "data-toolbar", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "variant", "settings", "editorInputMode", "identity", "useIdentity", "space", "getSpace", "useMemo", "listener", "onChange", "source", "target", "changed", "createDataExtensions", "createDocAccessor", "useToolbarState", "useDeployState", "StackItem", "Content", "LogsPanel", "mx", "stackItemContentEditorClassNames"]
7
+ }
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var artifact_definition_64KZC4UT_exports = {};
20
- __export(artifact_definition_64KZC4UT_exports, {
19
+ var artifact_definition_3SNVJ34V_exports = {};
20
+ __export(artifact_definition_3SNVJ34V_exports, {
21
21
  default: () => artifact_definition_default
22
22
  });
23
- module.exports = __toCommonJS(artifact_definition_64KZC4UT_exports);
24
- var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
23
+ module.exports = __toCommonJS(artifact_definition_3SNVJ34V_exports);
24
+ var import_chunk_2XX4L67K = require("./chunk-2XX4L67K.cjs");
25
25
  var import_app_framework = require("@dxos/app-framework");
26
26
  var import_artifact = require("@dxos/artifact");
27
27
  var import_assistant = require("@dxos/assistant");
@@ -34,14 +34,15 @@ var import_schema = require("@dxos/schema");
34
34
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/capabilities/artifact-definition.ts";
35
35
  var artifact_definition_default = () => {
36
36
  const definition = (0, import_artifact.defineArtifact)({
37
- id: import_chunk_5UH3F7TA.meta.id,
38
- name: import_chunk_5UH3F7TA.meta.name,
37
+ id: import_chunk_2XX4L67K.meta.id,
38
+ name: import_chunk_2XX4L67K.meta.name,
39
39
  // TODO(dmaretskyi): Since writing scripts requires a lot of domain knowledge,
40
40
  // we should offload the work of synthesizing the code to a separate model.
41
41
  // The main reasoning model will give it a concrete task and the script model will synthesize the code, knowing all the docs.
42
42
  instructions: `
43
43
  If the user explicitly requests you to write a script, you can create one.
44
44
  If the user requests you to change one of the existing script, you can update it.
45
+ You must not create a script unless the user explicitly requests it.
45
46
  Scripts are short code pieces of executable code that can be used to perform computations, integrate with external systems, and perform automated tasks.
46
47
  Each script must follow as strict shape for the definition but the body can contain any valid executable code.
47
48
  Scripts are written in JavaScript or TypeScript.
@@ -149,7 +150,7 @@ var artifact_definition_default = () => {
149
150
  `,
150
151
  schema: import_types.ScriptType,
151
152
  tools: [
152
- (0, import_artifact.defineTool)(import_chunk_5UH3F7TA.meta.id, {
153
+ (0, import_artifact.defineTool)(import_chunk_2XX4L67K.meta.id, {
153
154
  name: "create",
154
155
  description: "Create a new script. Returns the artifact definition for the script",
155
156
  caption: "Creating script...",
@@ -164,7 +165,7 @@ var artifact_definition_default = () => {
164
165
  execute: async ({ name, code }, { extensions }) => {
165
166
  (0, import_invariant.invariant)(extensions?.space, "No space", {
166
167
  F: __dxlog_file,
167
- L: 152,
168
+ L: 153,
168
169
  S: void 0,
169
170
  A: [
170
171
  "extensions?.space",
@@ -173,7 +174,7 @@ var artifact_definition_default = () => {
173
174
  });
174
175
  (0, import_invariant.invariant)(extensions?.dispatch, "No intent dispatcher", {
175
176
  F: __dxlog_file,
176
- L: 153,
177
+ L: 154,
177
178
  S: void 0,
178
179
  A: [
179
180
  "extensions?.dispatch",
@@ -199,7 +200,7 @@ var artifact_definition_default = () => {
199
200
  return import_artifact.ToolResult.Success((0, import_assistant.createArtifactElement)(script.id));
200
201
  }
201
202
  }),
202
- (0, import_artifact.defineTool)(import_chunk_5UH3F7TA.meta.id, {
203
+ (0, import_artifact.defineTool)(import_chunk_2XX4L67K.meta.id, {
203
204
  name: "inspect",
204
205
  description: "Inspect a script. Returns the artifact definition for the script",
205
206
  caption: "Inspecting script...",
@@ -209,7 +210,7 @@ var artifact_definition_default = () => {
209
210
  execute: async ({ id }, { extensions }) => {
210
211
  (0, import_invariant.invariant)(extensions?.space, "No space", {
211
212
  F: __dxlog_file,
212
- L: 182,
213
+ L: 183,
213
214
  S: void 0,
214
215
  A: [
215
216
  "extensions?.space",
@@ -226,7 +227,7 @@ var artifact_definition_default = () => {
226
227
  });
227
228
  }
228
229
  }),
229
- (0, import_artifact.defineTool)(import_chunk_5UH3F7TA.meta.id, {
230
+ (0, import_artifact.defineTool)(import_chunk_2XX4L67K.meta.id, {
230
231
  name: "update",
231
232
  description: "Update a script. Returns the artifact definition for the script",
232
233
  caption: "Updating script...",
@@ -239,7 +240,7 @@ var artifact_definition_default = () => {
239
240
  execute: async ({ id, code }, { extensions }) => {
240
241
  (0, import_invariant.invariant)(extensions?.space, "No space", {
241
242
  F: __dxlog_file,
242
- L: 204,
243
+ L: 205,
243
244
  S: void 0,
244
245
  A: [
245
246
  "extensions?.space",
@@ -264,4 +265,4 @@ var artifact_definition_default = () => {
264
265
  });
265
266
  return (0, import_app_framework.contributes)(import_app_framework.Capabilities.ArtifactDefinition, definition);
266
267
  };
267
- //# sourceMappingURL=artifact-definition-64KZC4UT.cjs.map
268
+ //# sourceMappingURL=artifact-definition-3SNVJ34V.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/artifact-definition.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineArtifact, defineTool, ToolResult } from '@dxos/artifact';\nimport { createArtifactElement } from '@dxos/assistant';\nimport { ObjectId, S } from '@dxos/echo-schema';\nimport { ScriptType } from '@dxos/functions/types';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { create, makeRef, type Space } from '@dxos/react-client/echo';\nimport { TextType } from '@dxos/schema';\n\nimport { meta } from '../meta';\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nexport default () => {\n const definition = defineArtifact({\n id: meta.id,\n name: meta.name,\n // TODO(dmaretskyi): Since writing scripts requires a lot of domain knowledge,\n // we should offload the work of synthesizing the code to a separate model.\n // The main reasoning model will give it a concrete task and the script model will synthesize the code, knowing all the docs.\n instructions: `\n If the user explicitly requests you to write a script, you can create one.\n If the user requests you to change one of the existing script, you can update it.\n You must not create a script unless the user explicitly requests it.\n Scripts are short code pieces of executable code that can be used to perform computations, integrate with external systems, and perform automated tasks.\n Each script must follow as strict shape for the definition but the body can contain any valid executable code.\n Scripts are written in JavaScript or TypeScript.\n Each script must define an input schema and output schema.\n Each script must have its own detailed description.\n\n Important: You cannot execute scripts. Scripts are only available as tools after the user deploys them. You must only call the available tools.\n\n Description:\n The description is a detailed description of the script.\n It is used to describe the script's purpose, input, and output.\n The description is used to generate the script's documentation.\n The description is also goes into the script metadata.\n The description is used by AI to understand the script and its purpose.\n The description must provide cases on when the script should be used.\n\n Schema: \n The schema is defined using a schema-DSL library called Effect Schema.\n The input schema describes the arguments that the script accepts.\n The output schema describes the result that the script produces.\n The schema is used to validate the script's input and output.\n The schema is also goes into the script metadata.\n The properties in the schema must have valid descriptions.\n The input and output schemas must both be a struct of fields.\n\n Restricts:\n The scripts can only import code from \"dxos:functions\" module. No other modules are allowed.\n Some web APIs are available - like fetch.\n\n Reasoning:\n Before writing a script, synthesize the following information:\n - Description\n - What APIs will be used.\n - Detailed input schema\n - Detailed output schema\n\n <apis>\n export function defineFunction(params: { \n description: string, \n inputSchema: S.Schema, \n outputSchema: S.Schema, \n handler: (params: { event: { data: TInput } }) => Promise<TOutput> \n }): FunctionDefinition\n /**\n * Effect Schema\n */\n export const S; \n\n // Examples: \n\n S.String\n S.Number\n S.Boolean\n S.Struct({\n from: S.String.annotations({ description: 'The source currency' }),\n to: S.String.annotations({ description: 'The target currency' }),\n })\n S.Array(S.String)\n S.Union(S.String, S.Number)\n S.optional(S.String)\n S.String.annotations({ description: 'The source currency' })\n </apis>\n\n <handler_function>\n Async function that takes the argument in the form of:\n\n type HandlerFunctionParam = {\n event: {\n data: T // The input schema\n },\n }\n\n The function must return the result that matches the output schema.\n </handler_function>\n \n <example>\n import { defineFunction, S } from 'dxos:functions';\n\n export default defineFunction({\n description: 'Returns the exchange rate between two currencies.',\n\n inputSchema: S.Struct({\n from: S.String.annotations({ description: 'The source currency' }),\n to: S.String.annotations({ description: 'The target currency' }),\n }),\n\n outputSchema: S.Struct({\n rate: S.String.annotations({ description: 'The exchange rate' }),\n }),\n\n handler: async ({\n event: {\n data: { from, to },\n },\n }: any) => {\n const res = await fetch(\\`https://free.ratesdb.com/v1/rates?from=\\${from}&to=\\${to}\\`);\n const {\n data: { rates },\n } = await res.json();\n\n return { rate: rates[to].toString() };\n },\n });\n </example>\n `,\n schema: ScriptType,\n tools: [\n defineTool(meta.id, {\n name: 'create',\n description: 'Create a new script. Returns the artifact definition for the script',\n caption: 'Creating script...',\n schema: S.Struct({\n name: S.String.annotations({ description: 'The name of the script' }),\n code: S.String.annotations({\n description: 'The full code of the script in JavaScript or TypeScript. Must be valid executable code.',\n }),\n }),\n execute: async ({ name, code }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n invariant(extensions?.dispatch, 'No intent dispatcher');\n const script = create(ScriptType, {\n name,\n source: makeRef(\n create(TextType, {\n content: code,\n }),\n ),\n });\n extensions.space.db.add(script);\n await extensions.space.db.flush();\n\n const intent = createIntent(SpaceAction.AddObject, { target: extensions.space, object: script });\n const { data, error } = await extensions.dispatch(intent);\n if (!data || error) {\n return ToolResult.Error(error?.message ?? 'Failed to create chess game');\n }\n\n return ToolResult.Success(createArtifactElement(script.id));\n },\n }),\n defineTool(meta.id, {\n name: 'inspect',\n description: 'Inspect a script. Returns the artifact definition for the script',\n caption: 'Inspecting script...',\n schema: S.Struct({\n id: ObjectId,\n }),\n execute: async ({ id }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n\n const script = (await extensions.space.db.query({ id }).first()) as ScriptType;\n const { content } = await script.source.load();\n\n return ToolResult.Success({\n name: script.name,\n code: content,\n });\n },\n }),\n defineTool(meta.id, {\n name: 'update',\n description: 'Update a script. Returns the artifact definition for the script',\n caption: 'Updating script...',\n schema: S.Struct({\n id: ObjectId,\n code: S.String.annotations({\n description: 'The full code of the script in JavaScript or TypeScript. Must be valid executable code.',\n }),\n }),\n execute: async ({ id, code }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n\n const script = (await extensions.space.db.query({ id }).first()) as ScriptType;\n const source = await script.source.load();\n if (!source) {\n return ToolResult.Error('Script not found');\n }\n\n source.content = code;\n await extensions.space?.db.flush();\n\n return ToolResult.Success({\n name: script.name,\n });\n },\n }),\n ],\n });\n\n return contributes(Capabilities.ArtifactDefinition, definition);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["import_types", "definition", "defineArtifact", "id", "meta", "name", "instructions", "schema", "ScriptType", "tools", "defineTool", "description", "caption", "S", "Struct", "String", "annotations", "code", "execute", "extensions", "invariant", "space", "dispatch", "script", "create", "source", "makeRef", "TextType", "content", "db", "add", "flush", "intent", "createIntent", "SpaceAction", "AddObject", "target", "object", "data", "error", "ToolResult", "Error", "message", "Success", "createArtifactElement", "ObjectId", "query", "first", "load", "contributes", "Capabilities", "ArtifactDefinition"]
7
+ }
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_5UH3F7TA_exports = {};
20
- __export(chunk_5UH3F7TA_exports, {
19
+ var chunk_2XX4L67K_exports = {};
20
+ __export(chunk_2XX4L67K_exports, {
21
21
  SCRIPT_PLUGIN: () => SCRIPT_PLUGIN,
22
22
  meta: () => meta
23
23
  });
24
- module.exports = __toCommonJS(chunk_5UH3F7TA_exports);
24
+ module.exports = __toCommonJS(chunk_2XX4L67K_exports);
25
25
  var SCRIPT_PLUGIN = "dxos.org/plugin/script";
26
26
  var meta = {
27
27
  id: SCRIPT_PLUGIN,
@@ -41,4 +41,4 @@ var meta = {
41
41
  SCRIPT_PLUGIN,
42
42
  meta
43
43
  });
44
- //# sourceMappingURL=chunk-5UH3F7TA.cjs.map
44
+ //# sourceMappingURL=chunk-2XX4L67K.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const SCRIPT_PLUGIN = 'dxos.org/plugin/script';\n\nexport const meta: PluginMeta = {\n id: SCRIPT_PLUGIN,\n name: 'Scripts',\n description:\n 'Scripts in Composer allow you to deploy custom functions that run on the edge. These functions can be referenced by your AI agent and called inside of cells in any Sheet. Use scripts to interact with API’s or external data inside of Composer.',\n icon: 'ph--code--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-explorer',\n tags: ['experimental'],\n screenshots: ['https://dxos.network/plugin-details-scripts-dark.png'],\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAMA,gBAAgB;AAEtB,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;",
6
+ "names": ["SCRIPT_PLUGIN", "meta", "id", "name", "description", "icon", "source", "tags", "screenshots"]
7
+ }
@@ -16,19 +16,19 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_ALY3N6PW_exports = {};
20
- __export(chunk_ALY3N6PW_exports, {
19
+ var chunk_AOKGOI5J_exports = {};
20
+ __export(chunk_AOKGOI5J_exports, {
21
21
  ScriptCapabilities: () => ScriptCapabilities
22
22
  });
23
- module.exports = __toCommonJS(chunk_ALY3N6PW_exports);
24
- var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
23
+ module.exports = __toCommonJS(chunk_AOKGOI5J_exports);
24
+ var import_chunk_2XX4L67K = require("./chunk-2XX4L67K.cjs");
25
25
  var import_app_framework = require("@dxos/app-framework");
26
26
  var ScriptCapabilities;
27
27
  (function(ScriptCapabilities2) {
28
- ScriptCapabilities2.Compiler = (0, import_app_framework.defineCapability)(`${import_chunk_5UH3F7TA.SCRIPT_PLUGIN}/capability/compiler`);
28
+ ScriptCapabilities2.Compiler = (0, import_app_framework.defineCapability)(`${import_chunk_2XX4L67K.SCRIPT_PLUGIN}/capability/compiler`);
29
29
  })(ScriptCapabilities || (ScriptCapabilities = {}));
30
30
  // Annotate the CommonJS export names for ESM import in node:
31
31
  0 && (module.exports = {
32
32
  ScriptCapabilities
33
33
  });
34
- //# sourceMappingURL=chunk-ALY3N6PW.cjs.map
34
+ //# sourceMappingURL=chunk-AOKGOI5J.cjs.map
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_CJ45RBS4_exports = {};
30
- __export(chunk_CJ45RBS4_exports, {
29
+ var chunk_I5Z6TRZY_exports = {};
30
+ __export(chunk_I5Z6TRZY_exports, {
31
31
  LogsPanel: () => LogsPanel,
32
32
  createDeploy: () => createDeploy,
33
33
  createFormat: () => createFormat,
@@ -37,9 +37,9 @@ __export(chunk_CJ45RBS4_exports, {
37
37
  useToolbarAction: () => useToolbarAction,
38
38
  useToolbarState: () => useToolbarState
39
39
  });
40
- module.exports = __toCommonJS(chunk_CJ45RBS4_exports);
40
+ module.exports = __toCommonJS(chunk_I5Z6TRZY_exports);
41
41
  var import_chunk_XCQNFRZ6 = require("./chunk-XCQNFRZ6.cjs");
42
- var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
42
+ var import_chunk_2XX4L67K = require("./chunk-2XX4L67K.cjs");
43
43
  var import_react = require("react");
44
44
  var import_functions = require("@dxos/functions");
45
45
  var import_bundler = require("@dxos/functions/bundler");
@@ -62,10 +62,14 @@ var import_live_object2 = require("@dxos/live-object");
62
62
  var import_react_ui_menu3 = require("@dxos/react-ui-menu");
63
63
  var import_react_ui_menu4 = require("@dxos/react-ui-menu");
64
64
  var import_react5 = require("react");
65
+ var import_app_framework = require("@dxos/app-framework");
65
66
  var import_log3 = require("@dxos/log");
67
+ var import_types2 = require("@dxos/plugin-deck/types");
68
+ var import_echo2 = require("@dxos/react-client/echo");
66
69
  var import_react6 = __toESM(require("react"));
67
70
  var import_echo_protocol = require("@dxos/echo-protocol");
68
- var import_react_edge_client = require("@dxos/react-edge-client");
71
+ var import_types3 = require("@dxos/functions/types");
72
+ var import_echo3 = require("@dxos/react-client/echo");
69
73
  var import_react_ui2 = require("@dxos/react-ui");
70
74
  var import_react_ui_theme = require("@dxos/react-ui-theme");
71
75
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/deploy.ts";
@@ -74,7 +78,7 @@ var createDeploy = (state) => {
74
78
  label: state.error ?? [
75
79
  "no error label",
76
80
  {
77
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
81
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
78
82
  }
79
83
  ],
80
84
  icon: "ph--warning-circle--regular",
@@ -85,7 +89,7 @@ var createDeploy = (state) => {
85
89
  label: [
86
90
  state.deploying ? "pending label" : "deploy label",
87
91
  {
88
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
92
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
89
93
  }
90
94
  ],
91
95
  icon: state.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
@@ -97,7 +101,7 @@ var createDeploy = (state) => {
97
101
  label: [
98
102
  "copy link label",
99
103
  {
100
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
104
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
101
105
  }
102
106
  ],
103
107
  icon: "ph--link--regular",
@@ -167,7 +171,7 @@ var useDeployHandler = ({ state, script }) => {
167
171
  const { space, fn, client, existingFunctionUrl } = useDeployDeps({
168
172
  script
169
173
  });
170
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_5UH3F7TA.SCRIPT_PLUGIN);
174
+ const { t } = (0, import_react_ui.useTranslation)(import_chunk_2XX4L67K.SCRIPT_PLUGIN);
171
175
  return (0, import_react.useCallback)(async () => {
172
176
  if (!script.source || !space) {
173
177
  return;
@@ -292,7 +296,7 @@ var createFormat = () => {
292
296
  label: [
293
297
  "format label",
294
298
  {
295
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
299
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
296
300
  }
297
301
  ],
298
302
  icon: "ph--magic-wand--regular"
@@ -339,7 +343,7 @@ var createTemplateSelectGroup = () => {
339
343
  label: [
340
344
  "template select group label",
341
345
  {
342
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
346
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
343
347
  }
344
348
  ],
345
349
  variant: "dropdownMenu"
@@ -397,23 +401,10 @@ var useTemplateSelectHandler = ({ script }) => {
397
401
  ]);
398
402
  };
399
403
  var views = {
400
- editor: "ph--code--regular",
401
- split: "ph--square-split-vertical--regular",
404
+ // editor: 'ph--code--regular',
405
+ // split: 'ph--square-split-vertical--regular',
402
406
  logs: "ph--clock-counter-clockwise--regular"
403
407
  };
404
- var createViewGroupItem = (state) => {
405
- return (0, import_react_ui_menu4.createMenuItemGroup)("view", {
406
- label: [
407
- "view group label",
408
- {
409
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
410
- }
411
- ],
412
- variant: "dropdownMenu",
413
- applyActive: true,
414
- value: state.view
415
- });
416
- };
417
408
  var createViewActions = (state) => {
418
409
  return Object.entries(views).map(([viewType, icon]) => {
419
410
  return (0, import_react_ui_menu4.createMenuAction)(`view--${viewType}`, {
@@ -422,32 +413,21 @@ var createViewActions = (state) => {
422
413
  label: [
423
414
  `view ${viewType} label`,
424
415
  {
425
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
416
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
426
417
  }
427
418
  ],
428
- icon,
429
- checked: state.view === viewType
419
+ icon
430
420
  });
431
421
  });
432
422
  };
433
423
  var createView = (state) => {
434
- const viewGroupItem = createViewGroupItem(state);
435
424
  const viewActions = createViewActions(state);
436
425
  return {
437
- nodes: [
438
- viewGroupItem,
439
- ...viewActions
440
- ],
441
- edges: [
442
- {
443
- source: "root",
444
- target: "view"
445
- },
446
- ...viewActions.map((action) => ({
447
- source: "view",
448
- target: action.id
449
- }))
450
- ]
426
+ nodes: viewActions,
427
+ edges: viewActions.map((action) => ({
428
+ source: "root",
429
+ target: action.id
430
+ }))
451
431
  };
452
432
  };
453
433
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/useToolbarAction.ts";
@@ -456,14 +436,18 @@ var useToolbarAction = (props) => {
456
436
  const handleFormat = useFormatHandler(props);
457
437
  const handleDeploy = useDeployHandler(props);
458
438
  const handleCopy = useCopyHandler(props);
439
+ const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
459
440
  return (0, import_react5.useCallback)((action) => {
460
441
  switch (action.properties.type) {
442
+ case "view":
443
+ void dispatch((0, import_app_framework.createIntent)(import_types2.DeckAction.ChangeCompanion, {
444
+ primary: (0, import_echo2.fullyQualifiedId)(props.script),
445
+ companion: (0, import_types2.surfaceVariant)("logs")
446
+ }));
447
+ break;
461
448
  case "template":
462
449
  handleTemplateSelect(action.properties.value);
463
450
  break;
464
- case "view":
465
- props.state.view = action.properties.value;
466
- break;
467
451
  case "format":
468
452
  void handleFormat();
469
453
  break;
@@ -476,7 +460,7 @@ var useToolbarAction = (props) => {
476
460
  default:
477
461
  import_log3.log.error("Unknown action type", action, {
478
462
  F: __dxlog_file3,
479
- L: 49,
463
+ L: 58,
480
464
  S: void 0,
481
465
  C: (f, a) => f(...a)
482
466
  });
@@ -489,14 +473,16 @@ var useToolbarAction = (props) => {
489
473
  ]);
490
474
  };
491
475
  var LogsPanel = ({ script, classNames }) => {
492
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_5UH3F7TA.SCRIPT_PLUGIN);
476
+ const { t } = (0, import_react_ui2.useTranslation)(import_chunk_2XX4L67K.SCRIPT_PLUGIN);
493
477
  const { space, existingFunctionUrl } = useDeployDeps({
494
478
  script
495
479
  });
496
- const edgeClient = (0, import_react_edge_client.useEdgeClient)();
497
- const invocationTraceQueue = (0, import_react_edge_client.useQueue)(edgeClient, space?.properties.invocationTraceQueue?.dxn, {
480
+ const invocationTraceQueue = (0, import_echo3.useQueue)(space?.properties.invocationTraceQueue?.dxn, {
498
481
  pollInterval: 500
499
482
  });
483
+ const invocationSpans = (0, import_react6.useMemo)(() => (0, import_types3.createInvocationSpans)(invocationTraceQueue?.items), [
484
+ invocationTraceQueue?.items ?? []
485
+ ]);
500
486
  const [selected, setSelected] = (0, import_react6.useState)();
501
487
  const workerDxn = `dxn:worker:${existingFunctionUrl?.split("/").at(-1)}`;
502
488
  if (!invocationTraceQueue) {
@@ -507,7 +493,7 @@ var LogsPanel = ({ script, classNames }) => {
507
493
  }, []);
508
494
  return /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.List, {
509
495
  classNames: (0, import_react_ui_theme.mx)("overflow-y-auto", classNames)
510
- }, invocationTraceQueue.items.filter((trace) => (0, import_echo_protocol.decodeReference)(trace.invocationTarget).dxn?.toString() === workerDxn).map((trace) => /* @__PURE__ */ import_react6.default.createElement(InvocationTraceItem, {
496
+ }, invocationSpans.filter((trace) => (0, import_echo_protocol.decodeReference)(trace.invocationTarget).dxn?.toString() === workerDxn).map((trace) => /* @__PURE__ */ import_react6.default.createElement(InvocationTraceItem, {
511
497
  key: trace.id,
512
498
  trace,
513
499
  open: selected?.id === trace.id,
@@ -515,8 +501,7 @@ var LogsPanel = ({ script, classNames }) => {
515
501
  })));
516
502
  };
517
503
  var InvocationTraceItem = ({ trace, open, setOpen }) => {
518
- const edgeClient = (0, import_react_edge_client.useEdgeClient)();
519
- const eventQueue = (0, import_react_edge_client.useQueue)(edgeClient, open ? (0, import_echo_protocol.decodeReference)(trace.invocationTraceQueue).dxn : void 0);
504
+ const eventQueue = (0, import_echo3.useQueue)(open ? (0, import_echo_protocol.decodeReference)(trace.invocationTraceQueue).dxn : void 0);
520
505
  const handleOpenChange = (0, import_react6.useCallback)((open2) => {
521
506
  setOpen?.(trace, open2);
522
507
  }, [
@@ -560,4 +545,4 @@ var InvocationTraceItem = ({ trace, open, setOpen }) => {
560
545
  useToolbarAction,
561
546
  useToolbarState
562
547
  });
563
- //# sourceMappingURL=chunk-CJ45RBS4.cjs.map
548
+ //# sourceMappingURL=chunk-I5Z6TRZY.cjs.map