@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
@@ -1,7 +0,0 @@
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 = {\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} satisfies PluginMeta;\n"],
5
- "mappings": ";;;AAMO,IAAMA,gBAAgB;AAEtB,IAAMC,OAAO;EAClBC,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
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/hooks/deploy.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts", "../../../src/hooks/view.ts", "../../../src/hooks/useToolbarAction.ts", "../../../src/components/LogsPanel/LogsPanel.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport {\n FunctionType,\n type ScriptType,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n incrementSemverPatch,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, create, getMeta, getSpace, makeRef, useQuery } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { type ViewState } from './view';\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = ViewState & {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport const createDeploy = (state: Partial<DeployState>) => {\n const errorItem = createMenuAction('error', {\n label: state.error ?? ['no error label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--warning-circle--regular',\n hidden: !state.error,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>('deploy', {\n type: 'deploy',\n label: [state.deploying ? 'pending label' : 'deploy label', { ns: SCRIPT_PLUGIN }],\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 const copyAction = createMenuAction<DeployActionProperties>('copy', {\n type: 'copy',\n label: ['copy link label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\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 useDeployDeps = ({ script }: { script: ScriptType }) => {\n const space = getSpace(script);\n const [fn] = useQuery(space, Filter.schema(FunctionType, { source: script }));\n const client = useClient();\n const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [fn]);\n return { space, fn, client, existingFunctionUrl };\n};\n\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, existingFunctionUrl } = useDeployDeps({ script });\n useEffect(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n state.functionUrl = getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n }, [existingFunctionUrl, space]);\n\n useEffect(() => {\n state.deployed = Boolean(existingFunctionUrl) && !script.changed;\n }, [script.changed, existingFunctionUrl]);\n};\n\nexport const useDeployHandler = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, fn, client, existingFunctionUrl } = useDeployDeps({ script });\n const { t } = useTranslation(SCRIPT_PLUGIN);\n\n return useCallback(async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\n\n try {\n const existingFunctionId = existingFunctionUrl?.split('/').at(-1);\n\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source: script.source.target!.content });\n if (buildResult.error || !buildResult.bundle) {\n throw buildResult.error;\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n spaceId: space.id,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n source: buildResult.bundle,\n });\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: functionId=${functionId}, version=${version}`);\n }\n\n log.info('function uploaded', { functionId, version });\n if (fn) {\n fn.version = version;\n }\n\n const deployedFunction =\n fn ?? space.db.add(create(FunctionType, { name: functionId, version, source: makeRef(script) }));\n\n script.changed = false;\n if (script.description !== undefined && script.description.trim() !== '') {\n deployedFunction.description = script.description;\n } else if (meta.description) {\n deployedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n deployedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n deployedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n setUserFunctionUrlInMetadata(getMeta(deployedFunction), `/${space.id}/${functionId}`);\n } catch (err: any) {\n log.catch(err);\n state.error = t('upload failed label');\n }\n state.deploying = false;\n }, [fn, client, t, existingFunctionUrl, script, script.name, script.source, space?.id ?? null]);\n};\n\nexport const useCopyHandler = ({ state }: { state: Partial<DeployState> }) =>\n useCallback(async () => {\n if (!state.functionUrl) {\n return;\n }\n await navigator.clipboard.writeText(state.functionUrl);\n }, [state.functionUrl]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { create } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\nimport { type ViewState } from './view';\n\nexport type ScriptToolbarState = Partial<DeployState & ViewState>;\n\n// TODO(burdon): Replace with context provider?\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => create<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';\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions/types';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = () => {\n const formatAction = createMenuAction('format', {\n label: ['format label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n });\n\n return {\n nodes: [formatAction],\n edges: [{ source: 'root', target: 'format' }],\n };\n};\n\nexport const useFormatHandler = ({ script }: { script: ScriptType }) =>\n useCallback(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 }, [script.source]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions/types';\nimport { getMeta } from '@dxos/live-object';\nimport { createMenuItemGroup, createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectGroup = () => {\n return createMenuItemGroup('template-select', {\n label: ['template select group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n });\n};\n\nconst createTemplateSelectActions = () => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(`template--${template.id}`, {\n label: template.name,\n value: template.id,\n type: 'template',\n });\n });\n};\n\nexport const createTemplateSelect = () => {\n const templateSelectGroup = createTemplateSelectGroup();\n const templateSelectActions = createTemplateSelectActions();\n return {\n nodes: [templateSelectGroup, ...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n\nexport const useTemplateSelectHandler = ({ script }: { script: ScriptType }) => {\n return useCallback(\n (templateId: string) => {\n const template = templates.find((template) => template.id === templateId);\n if (template) {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = 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 (template.presetId) {\n metaKeys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n }\n },\n [script],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type ViewType = 'editor' | 'split' | 'logs';\n\nexport type ViewState = { view: ViewType };\n\nexport type ViewActionProperties = { type: 'view'; value: ViewType };\n\nconst views: Record<ViewType, string> = {\n editor: 'ph--code--regular',\n split: 'ph--square-split-vertical--regular',\n logs: 'ph--clock-counter-clockwise--regular',\n};\n\nconst createViewGroupItem = (state: Partial<ViewState>) => {\n return createMenuItemGroup('view', {\n label: ['view group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n applyActive: true,\n value: state.view,\n });\n};\n\nconst createViewActions = (state: Partial<ViewState>) => {\n return Object.entries(views).map(([viewType, icon]) => {\n return createMenuAction<ViewActionProperties>(`view--${viewType}`, {\n type: 'view',\n value: viewType as ViewType,\n label: [`view ${viewType} label`, { ns: SCRIPT_PLUGIN }],\n icon,\n checked: state.view === viewType,\n });\n });\n};\n\nexport const createView = (state: Partial<ViewState>) => {\n const viewGroupItem = createViewGroupItem(state);\n const viewActions = createViewActions(state);\n return {\n nodes: [viewGroupItem, ...viewActions],\n edges: [\n { source: 'root', target: 'view' },\n ...viewActions.map((action) => ({ source: 'view', target: action.id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions/types';\nimport { log } from '@dxos/log';\nimport { type MenuAction, type MenuActionHandler } from '@dxos/react-ui-menu';\n\nimport { type DeployActionProperties, useDeployHandler, useCopyHandler } from './deploy';\nimport { type FormatActionProperties, useFormatHandler } from './format';\nimport { type TemplateActionProperties, useTemplateSelectHandler } from './template';\nimport { type ScriptToolbarState } from './useToolbarState';\nimport { type ViewActionProperties } from './view';\n\nexport type ScriptToolbarActionProperties =\n | TemplateActionProperties\n | ViewActionProperties\n | FormatActionProperties\n | DeployActionProperties;\n\nexport type ScriptToolbarAction = MenuAction<ScriptToolbarActionProperties>;\n\nexport const useToolbarAction = (props: { state: ScriptToolbarState; script: ScriptType }) => {\n const handleTemplateSelect = useTemplateSelectHandler(props);\n const handleFormat = useFormatHandler(props);\n const handleDeploy = useDeployHandler(props);\n const handleCopy = useCopyHandler(props);\n return useCallback(\n ((action: ScriptToolbarAction) => {\n switch (action.properties.type) {\n case 'template':\n handleTemplateSelect(action.properties.value);\n break;\n case 'view':\n props.state.view = action.properties.value;\n break;\n case 'format':\n void handleFormat();\n break;\n case 'deploy':\n void handleDeploy();\n break;\n case 'copy':\n void handleCopy();\n break;\n default:\n log.error('Unknown action type', action);\n }\n }) as MenuActionHandler,\n [handleTemplateSelect, handleFormat, handleDeploy, handleCopy],\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { decodeReference } from '@dxos/echo-protocol';\nimport { type TraceEvent, type InvocationTraceEvent, type ScriptType } from '@dxos/functions/types';\nimport { useEdgeClient, useQueue } from '@dxos/react-edge-client';\nimport { Icon, List, ListItem, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useDeployDeps } from '../../hooks';\nimport { SCRIPT_PLUGIN } from '../../meta';\n\nexport type LogsPanelProps = ThemedClassName<{\n script: ScriptType;\n}>;\n\nexport const LogsPanel = ({ script, classNames }: LogsPanelProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n // TODO(wittjosiah): Refactor these hooks.\n const { space, existingFunctionUrl } = useDeployDeps({ script });\n const edgeClient = useEdgeClient();\n const invocationTraceQueue = useQueue<InvocationTraceEvent>(edgeClient, space?.properties.invocationTraceQueue?.dxn, {\n pollInterval: 500,\n });\n const [selected, setSelected] = useState<InvocationTraceEvent>();\n const workerDxn = `dxn:worker:${existingFunctionUrl?.split('/').at(-1)}`;\n\n if (!invocationTraceQueue) {\n return <div>{t('no invocations message')}</div>;\n }\n\n const handleOpenChange = useCallback((trace: InvocationTraceEvent, open: boolean) => {\n setSelected(open ? trace : undefined);\n }, []);\n\n return (\n <List classNames={mx('overflow-y-auto', classNames)}>\n {invocationTraceQueue.items\n .filter((trace) => decodeReference(trace.invocationTarget).dxn?.toString() === workerDxn)\n .map((trace) => (\n <InvocationTraceItem\n key={trace.id}\n trace={trace}\n open={selected?.id === trace.id}\n setOpen={handleOpenChange}\n />\n ))}\n </List>\n );\n};\n\nconst InvocationTraceItem = ({\n trace,\n open,\n setOpen,\n}: {\n trace: InvocationTraceEvent;\n open?: boolean;\n setOpen?: (trace: InvocationTraceEvent, open: boolean) => void;\n}) => {\n const edgeClient = useEdgeClient();\n const eventQueue = useQueue<TraceEvent>(\n edgeClient,\n open ? decodeReference(trace.invocationTraceQueue).dxn : undefined,\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n setOpen?.(trace, open);\n },\n [trace, setOpen],\n );\n\n const logs = useMemo(() => eventQueue?.items.flatMap((event) => event.logs), [eventQueue?.items]);\n const heading =\n 'bodyText' in trace.input && typeof trace.input.bodyText === 'string'\n ? trace.input.bodyText\n : JSON.stringify(trace.input);\n\n return (\n <ListItem.Root key={trace.id} collapsible open={open} onOpenChange={handleOpenChange}>\n <div className='flex items-center gap-2'>\n <ListItem.OpenTrigger />\n <ListItem.Endcap classNames='flex items-center justify-center'>\n <Icon icon={trace.outcome === 'success' ? 'ph--check--regular' : 'ph--x--regular'} size={5} />\n </ListItem.Endcap>\n <ListItem.Heading classNames='flex-1 flex items-center gap-2 truncate'>\n <span>{new Date(trace.timestampMs).toLocaleString()}</span>\n <span>{heading}</span>\n </ListItem.Heading>\n </div>\n {logs && (\n <ListItem.CollapsibleContent>\n <div className='flex items-center gap-2'>\n <span>Duration:</span>\n <span>{trace.durationMs}ms</span>\n </div>\n <pre>\n <div>{JSON.stringify(trace.input, null, 2)}</div>\n {logs.map((log, index) => {\n return <div key={index}>{JSON.stringify(log, null, 2)}</div>;\n })}\n </pre>\n </ListItem.CollapsibleContent>\n )}\n </ListItem.Root>\n );\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,aAAaC,WAAWC,eAAe;AAEhD,SACEC,cAEAC,kBACAC,8BACAC,sBACAC,8BACAC,4BACK;AACP,SAASC,eAAe;AACxB,SAASC,WAAW;AACpB,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,QAAQC,SAASC,UAAUC,SAASC,gBAAgB;AACrE,SAASC,sBAAsB;AAC/B,SAASC,wBAAwB;;AAc1B,IAAMC,eAAe,CAACC,UAAAA;AAC3B,QAAMC,YAAYC,iBAAiB,SAAS;IAC1CC,OAAOH,MAAMI,SAAS;MAAC;MAAkB;QAAEC,IAAIC;MAAc;;IAC7DC,MAAM;IACNC,QAAQ,CAACR,MAAMI;EACjB,CAAA;AAEA,QAAMK,eAAeP,iBAAyC,UAAU;IACtEQ,MAAM;IACNP,OAAO;MAACH,MAAMW,YAAY,kBAAkB;MAAgB;QAAEN,IAAIC;MAAc;;IAChFC,MAAMP,MAAMW,YAAY,6BAA6B;IACrDC,UAAUZ,MAAMW;IAChBE,YAAYb,MAAMW,YAAY,yBAAyB;EACzD,CAAA;AAEA,QAAMG,aAAaZ,iBAAyC,QAAQ;IAClEQ,MAAM;IACNP,OAAO;MAAC;MAAmB;QAAEE,IAAIC;MAAc;;IAC/CC,MAAM;IACNK,UAAU,CAACZ,MAAMe;EACnB,CAAA;AAEA,SAAO;IACLC,OAAO;MAACf;MAAWQ;MAAcK;;IACjCG,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAQ;MAClC;QAAED,QAAQ;QAAQC,QAAQ;MAAS;MACnC;QAAED,QAAQ;QAAQC,QAAQ;MAAO;;EAErC;AACF;AAEO,IAAMC,gBAAgB,CAAC,EAAEC,OAAM,MAA0B;AAC9D,QAAMC,QAAQC,SAASF,MAAAA;AACvB,QAAM,CAACG,EAAAA,IAAMC,SAASH,OAAOI,OAAOC,OAAOC,cAAc;IAAEV,QAAQG;EAAO,CAAA,CAAA;AAC1E,QAAMQ,SAASC,UAAAA;AACf,QAAMC,sBAAsBC,QAAQ,MAAMR,MAAMS,6BAA6BC,QAAQV,EAAAA,CAAAA,GAAM;IAACA;GAAG;AAC/F,SAAO;IAAEF;IAAOE;IAAIK;IAAQE;EAAoB;AAClD;AAEO,IAAMI,iBAAiB,CAAC,EAAEnC,OAAOqB,OAAM,MAAuD;AACnG,QAAM,EAAEC,OAAOO,QAAQE,oBAAmB,IAAKX,cAAc;IAAEC;EAAO,CAAA;AACtEe,YAAU,MAAA;AACR,QAAI,CAACL,qBAAqB;AACxB;IACF;AAEA/B,UAAMe,cAAcsB,iBAAiBN,qBAAqBF,OAAOS,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,OAAO,IAAI;MACjHC,SAAStB,OAAOuB;IAClB,CAAA;EACF,GAAG;IAACd;IAAqBT;GAAM;AAE/Bc,YAAU,MAAA;AACRpC,UAAM8C,WAAWC,QAAQhB,mBAAAA,KAAwB,CAACV,OAAO2B;EAC3D,GAAG;IAAC3B,OAAO2B;IAASjB;GAAoB;AAC1C;AAEO,IAAMkB,mBAAmB,CAAC,EAAEjD,OAAOqB,OAAM,MAAuD;AACrG,QAAM,EAAEC,OAAOE,IAAIK,QAAQE,oBAAmB,IAAKX,cAAc;IAAEC;EAAO,CAAA;AAC1E,QAAM,EAAE6B,EAAC,IAAKC,eAAe7C,aAAAA;AAE7B,SAAO8C,YAAY,YAAA;AACjB,QAAI,CAAC/B,OAAOH,UAAU,CAACI,OAAO;AAC5B;IACF;AAEAtB,UAAMI,QAAQiD;AACdrD,UAAMW,YAAY;AAElB,QAAI;AACF,YAAM2C,qBAAqBvB,qBAAqBwB,MAAM,GAAA,EAAKC,GAAG,EAAC;AAE/D,YAAMC,UAAU,IAAIC,QAAQ;QAAEC,UAAU;QAAWC,kBAAkB,CAAA;QAAIC,eAAe,CAAC;MAAE,CAAA;AAC3F,YAAMC,cAAc,MAAML,QAAQM,OAAO;QAAE7C,QAAQG,OAAOH,OAAOC,OAAQ6C;MAAQ,CAAA;AACjF,UAAIF,YAAY1D,SAAS,CAAC0D,YAAYC,QAAQ;AAC5C,cAAMD,YAAY1D;MACpB;AAEA,YAAM,EAAE6D,YAAYC,SAASC,KAAI,IAAK,MAAMC,qBAAqB;QAC/DvC;QACAe,SAAStB,MAAMuB;QACfqB,SAAS1C,KAAK6C,qBAAqB7C,GAAG0C,OAAO,IAAI;QACjDD,YAAYX;QACZpC,QAAQ4C,YAAYC;MACtB,CAAA;AACA,UAAIE,eAAeZ,UAAaa,YAAYb,QAAW;AACrD,cAAM,IAAIiB,MAAM,kDAAkDL,UAAAA,aAAuBC,OAAAA,EAAS;MACpG;AAEAK,UAAIC,KAAK,qBAAqB;QAAEP;QAAYC;MAAQ,GAAA;;;;;;AACpD,UAAI1C,IAAI;AACNA,WAAG0C,UAAUA;MACf;AAEA,YAAMO,mBACJjD,MAAMF,MAAMoD,GAAGC,IAAIC,OAAOhD,cAAc;QAAEiD,MAAMZ;QAAYC;QAAShD,QAAQ4D,QAAQzD,MAAAA;MAAQ,CAAA,CAAA;AAE/FA,aAAO2B,UAAU;AACjB,UAAI3B,OAAO0D,gBAAgB1B,UAAahC,OAAO0D,YAAYC,KAAI,MAAO,IAAI;AACxEP,yBAAiBM,cAAc1D,OAAO0D;MACxC,WAAWZ,KAAKY,aAAa;AAC3BN,yBAAiBM,cAAcZ,KAAKY;MACtC,OAAO;AACLR,YAAIU,QAAQ,uCAAuC;UAAEhB;QAAW,GAAA;;;;;;MAClE;AAEA,UAAIE,KAAKe,aAAa;AACpBT,yBAAiBS,cAAcf,KAAKe;MACtC,OAAO;AACLX,YAAIU,QAAQ,wCAAwC;UAAEhB;QAAW,GAAA;;;;;;MACnE;AAEA,UAAIE,KAAKgB,cAAc;AACrBV,yBAAiBU,eAAehB,KAAKgB;MACvC,OAAO;AACLZ,YAAIU,QAAQ,yCAAyC;UAAEhB;QAAW,GAAA;;;;;;MACpE;AAEAmB,mCAA6BlD,QAAQuC,gBAAAA,GAAmB,IAAInD,MAAMuB,EAAE,IAAIoB,UAAAA,EAAY;IACtF,SAASoB,KAAU;AACjBd,UAAIe,MAAMD,KAAAA,QAAAA;;;;;;AACVrF,YAAMI,QAAQ8C,EAAE,qBAAA;IAClB;AACAlD,UAAMW,YAAY;EACpB,GAAG;IAACa;IAAIK;IAAQqB;IAAGnB;IAAqBV;IAAQA,OAAOwD;IAAMxD,OAAOH;IAAQI,OAAOuB,MAAM;GAAK;AAChG;AAEO,IAAM0C,iBAAiB,CAAC,EAAEvF,MAAK,MACpCoD,YAAY,YAAA;AACV,MAAI,CAACpD,MAAMe,aAAa;AACtB;EACF;AACA,QAAMyE,UAAUC,UAAUC,UAAU1F,MAAMe,WAAW;AACvD,GAAG;EAACf,MAAMe;CAAY;;;ACnKxB,SAAS4E,WAAAA,gBAAe;AAExB,SAASC,UAAAA,eAAc;AAQhB,IAAMC,kBAAkB,CAACC,eAAmC,CAAC,MAAC;AACnE,SAAOC,SAAQ,MAAMC,QAA2BF,YAAAA,GAAe,CAAA,CAAE;AACnE;;;ACZA,SAASG,cAAc;AACvB,OAAOC,0BAA0B;AACjC,OAAOC,8BAA8B;AACrC,SAASC,eAAAA,oBAAmB;AAG5B,SAASC,OAAAA,YAAW;AACpB,SAASC,oBAAAA,yBAAwB;;AAM1B,IAAMC,eAAe,MAAA;AAC1B,QAAMC,eAAeC,kBAAiB,UAAU;IAC9CC,OAAO;MAAC;MAAgB;QAAEC,IAAIC;MAAc;;IAC5CC,MAAM;EACR,CAAA;AAEA,SAAO;IACLC,OAAO;MAACN;;IACRO,OAAO;MAAC;QAAEC,QAAQ;QAAQC,QAAQ;MAAS;;EAC7C;AACF;AAEO,IAAMC,mBAAmB,CAAC,EAAEC,OAAM,MACvCC,aAAY,YAAA;AACV,MAAI,CAACD,OAAOH,QAAQ;AAClB;EACF;AAEA,MAAI;AACFG,WAAOH,OAAOC,OAAQI,UAAU,MAAMC,OAAOH,OAAOH,OAAOC,OAAQI,SAAS;MAC1EE,QAAQ;MACRC,SAAS;QAACC;QAAsBC;;MAChCC,MAAM;MACNC,aAAa;IACf,CAAA;EACF,SAASC,KAAU;AAEjBC,IAAAA,KAAIC,MAAMF,KAAAA,QAAAA;;;;;;EACZ;AACF,GAAG;EAACV,OAAOH;CAAO;;;AC1CpB,SAASgB,eAAAA,oBAAmB;AAE5B,SAASC,iCAAkD;AAC3D,SAASC,WAAAA,gBAAe;AACxB,SAASC,qBAAqBC,oBAAAA,yBAAwB;AAOtD,IAAMC,4BAA4B,MAAA;AAChC,SAAOC,oBAAoB,mBAAmB;IAC5CC,OAAO;MAAC;MAA+B;QAAEC,IAAIC;MAAc;;IAC3DC,SAAS;EACX,CAAA;AACF;AAEA,IAAMC,8BAA8B,MAAA;AAClC,SAAOC,UAAUC,IAAI,CAACC,aAAAA;AACpB,WAAOC,kBAA2C,aAAaD,SAASE,EAAE,IAAI;MAC5ET,OAAOO,SAASG;MAChBC,OAAOJ,SAASE;MAChBG,MAAM;IACR,CAAA;EACF,CAAA;AACF;AAEO,IAAMC,uBAAuB,MAAA;AAClC,QAAMC,sBAAsBhB,0BAAAA;AAC5B,QAAMiB,wBAAwBX,4BAAAA;AAC9B,SAAO;IACLY,OAAO;MAACF;SAAwBC;;IAChCE,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAkB;SACzCJ,sBAAsBT,IAAI,CAACc,YAAY;QAAEF,QAAQ;QAAmBC,QAAQC,OAAOX;MAAG,EAAA;;EAE7F;AACF;AAEO,IAAMY,2BAA2B,CAAC,EAAEC,OAAM,MAA0B;AACzE,SAAOC,aACL,CAACC,eAAAA;AACC,UAAMjB,WAAWF,UAAUoB,KAAK,CAAClB,cAAaA,UAASE,OAAOe,UAAAA;AAC9D,QAAIjB,UAAU;AACZe,aAAOZ,OAAOH,SAASG;AACvBY,aAAOJ,OAAQC,OAAQO,UAAUnB,SAASW;AAC1C,YAAMS,WAAWC,SAAQN,MAAAA,EAAQO;AACjC,YAAMC,iBAAiBH,SAASI,UAAU,CAACC,QAAQA,IAAId,WAAWe,yBAAAA;AAClE,UAAIH,kBAAkB,GAAG;AACvBH,iBAASO,OAAOJ,gBAAgB,CAAA;MAClC;AACA,UAAIvB,SAAS4B,UAAU;AACrBR,iBAASS,KAAK;UAAElB,QAAQe;UAA2BxB,IAAIF,SAAS4B;QAAS,CAAA;MAC3E;IACF;EACF,GACA;IAACb;GAAO;AAEZ;;;AC3DA,SAASe,oBAAAA,mBAAkBC,uBAAAA,4BAA2B;AAUtD,IAAMC,QAAkC;EACtCC,QAAQ;EACRC,OAAO;EACPC,MAAM;AACR;AAEA,IAAMC,sBAAsB,CAACC,UAAAA;AAC3B,SAAOC,qBAAoB,QAAQ;IACjCC,OAAO;MAAC;MAAoB;QAAEC,IAAIC;MAAc;;IAChDC,SAAS;IACTC,aAAa;IACbC,OAAOP,MAAMQ;EACf,CAAA;AACF;AAEA,IAAMC,oBAAoB,CAACT,UAAAA;AACzB,SAAOU,OAAOC,QAAQhB,KAAAA,EAAOiB,IAAI,CAAC,CAACC,UAAUC,IAAAA,MAAK;AAChD,WAAOC,kBAAuC,SAASF,QAAAA,IAAY;MACjEG,MAAM;MACNT,OAAOM;MACPX,OAAO;QAAC,QAAQW,QAAAA;QAAkB;UAAEV,IAAIC;QAAc;;MACtDU;MACAG,SAASjB,MAAMQ,SAASK;IAC1B,CAAA;EACF,CAAA;AACF;AAEO,IAAMK,aAAa,CAAClB,UAAAA;AACzB,QAAMmB,gBAAgBpB,oBAAoBC,KAAAA;AAC1C,QAAMoB,cAAcX,kBAAkBT,KAAAA;AACtC,SAAO;IACLqB,OAAO;MAACF;SAAkBC;;IAC1BE,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAO;SAC9BJ,YAAYR,IAAI,CAACa,YAAY;QAAEF,QAAQ;QAAQC,QAAQC,OAAOC;MAAG,EAAA;;EAExE;AACF;;;AC/CA,SAASC,eAAAA,oBAAmB;AAG5B,SAASC,OAAAA,YAAW;;AAiBb,IAAMC,mBAAmB,CAACC,UAAAA;AAC/B,QAAMC,uBAAuBC,yBAAyBF,KAAAA;AACtD,QAAMG,eAAeC,iBAAiBJ,KAAAA;AACtC,QAAMK,eAAeC,iBAAiBN,KAAAA;AACtC,QAAMO,aAAaC,eAAeR,KAAAA;AAClC,SAAOS,aACJ,CAACC,WAAAA;AACA,YAAQA,OAAOC,WAAWC,MAAI;MAC5B,KAAK;AACHX,6BAAqBS,OAAOC,WAAWE,KAAK;AAC5C;MACF,KAAK;AACHb,cAAMc,MAAMC,OAAOL,OAAOC,WAAWE;AACrC;MACF,KAAK;AACH,aAAKV,aAAAA;AACL;MACF,KAAK;AACH,aAAKE,aAAAA;AACL;MACF,KAAK;AACH,aAAKE,WAAAA;AACL;MACF;AACES,QAAAA,KAAIC,MAAM,uBAAuBP,QAAAA;;;;;;IACrC;EACF,GACA;IAACT;IAAsBE;IAAcE;IAAcE;GAAW;AAElE;;;ACjDA,OAAOW,SAASC,eAAAA,cAAaC,WAAAA,UAASC,gBAAgB;AAEtD,SAASC,uBAAuB;AAEhC,SAASC,eAAeC,gBAAgB;AACxC,SAASC,MAAMC,MAAMC,UAAUC,kBAAAA,uBAA4C;AAC3E,SAASC,UAAU;AASZ,IAAMC,YAAY,CAAC,EAAEC,QAAQC,WAAU,MAAkB;AAC9D,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,aAAAA;AAE7B,QAAM,EAAEC,OAAOC,oBAAmB,IAAKC,cAAc;IAAEP;EAAO,CAAA;AAC9D,QAAMQ,aAAaC,cAAAA;AACnB,QAAMC,uBAAuBC,SAA+BH,YAAYH,OAAOO,WAAWF,sBAAsBG,KAAK;IACnHC,cAAc;EAChB,CAAA;AACA,QAAM,CAACC,UAAUC,WAAAA,IAAeC,SAAAA;AAChC,QAAMC,YAAY,cAAcZ,qBAAqBa,MAAM,GAAA,EAAKC,GAAG,EAAC,CAAA;AAEpE,MAAI,CAACV,sBAAsB;AACzB,WAAO,sBAAA,cAACW,OAAAA,MAAKnB,EAAE,wBAAA,CAAA;EACjB;AAEA,QAAMoB,mBAAmBC,aAAY,CAACC,OAA6BC,SAAAA;AACjET,gBAAYS,OAAOD,QAAQE,MAAAA;EAC7B,GAAG,CAAA,CAAE;AAEL,SACE,sBAAA,cAACC,MAAAA;IAAK1B,YAAY2B,GAAG,mBAAmB3B,UAAAA;KACrCS,qBAAqBmB,MACnBC,OAAO,CAACN,UAAUO,gBAAgBP,MAAMQ,gBAAgB,EAAEnB,KAAKoB,SAAAA,MAAef,SAAAA,EAC9EgB,IAAI,CAACV,UACJ,sBAAA,cAACW,qBAAAA;IACCC,KAAKZ,MAAMa;IACXb;IACAC,MAAMV,UAAUsB,OAAOb,MAAMa;IAC7BC,SAAShB;;AAKrB;AAEA,IAAMa,sBAAsB,CAAC,EAC3BX,OACAC,MACAa,QAAO,MAKR;AACC,QAAM9B,aAAaC,cAAAA;AACnB,QAAM8B,aAAa5B,SACjBH,YACAiB,OAAOM,gBAAgBP,MAAMd,oBAAoB,EAAEG,MAAMa,MAAAA;AAG3D,QAAMJ,mBAAmBC,aACvB,CAACE,UAAAA;AACCa,cAAUd,OAAOC,KAAAA;EACnB,GACA;IAACD;IAAOc;GAAQ;AAGlB,QAAME,OAAOC,SAAQ,MAAMF,YAAYV,MAAMa,QAAQ,CAACC,UAAUA,MAAMH,IAAI,GAAG;IAACD,YAAYV;GAAM;AAChG,QAAMe,UACJ,cAAcpB,MAAMqB,SAAS,OAAOrB,MAAMqB,MAAMC,aAAa,WACzDtB,MAAMqB,MAAMC,WACZC,KAAKC,UAAUxB,MAAMqB,KAAK;AAEhC,SACE,sBAAA,cAACI,SAASC,MAAI;IAACd,KAAKZ,MAAMa;IAAIc,aAAAA;IAAY1B;IAAY2B,cAAc9B;KAClE,sBAAA,cAACD,OAAAA;IAAIgC,WAAU;KACb,sBAAA,cAACJ,SAASK,aAAW,IAAA,GACrB,sBAAA,cAACL,SAASM,QAAM;IAACtD,YAAW;KAC1B,sBAAA,cAACuD,MAAAA;IAAKC,MAAMjC,MAAMkC,YAAY,YAAY,uBAAuB;IAAkBC,MAAM;OAE3F,sBAAA,cAACV,SAASW,SAAO;IAAC3D,YAAW;KAC3B,sBAAA,cAAC4D,QAAAA,MAAM,IAAIC,KAAKtC,MAAMuC,WAAW,EAAEC,eAAc,CAAA,GACjD,sBAAA,cAACH,QAAAA,MAAMjB,OAAAA,CAAAA,CAAAA,GAGVJ,QACC,sBAAA,cAACS,SAASgB,oBAAkB,MAC1B,sBAAA,cAAC5C,OAAAA;IAAIgC,WAAU;KACb,sBAAA,cAACQ,QAAAA,MAAK,WAAA,GACN,sBAAA,cAACA,QAAAA,MAAMrC,MAAM0C,YAAW,IAAA,CAAA,GAE1B,sBAAA,cAACC,OAAAA,MACC,sBAAA,cAAC9C,OAAAA,MAAK0B,KAAKC,UAAUxB,MAAMqB,OAAO,MAAM,CAAA,CAAA,GACvCL,KAAKN,IAAI,CAACkC,MAAKC,UAAAA;AACd,WAAO,sBAAA,cAAChD,OAAAA;MAAIe,KAAKiC;OAAQtB,KAAKC,UAAUoB,MAAK,MAAM,CAAA,CAAA;EACrD,CAAA,CAAA,CAAA,CAAA;AAMZ;",
6
- "names": ["useCallback", "useEffect", "useMemo", "FunctionType", "getInvocationUrl", "getUserFunctionUrlInMetadata", "incrementSemverPatch", "setUserFunctionUrlInMetadata", "uploadWorkerFunction", "Bundler", "log", "useClient", "Filter", "create", "getMeta", "getSpace", "makeRef", "useQuery", "useTranslation", "createMenuAction", "createDeploy", "state", "errorItem", "createMenuAction", "label", "error", "ns", "SCRIPT_PLUGIN", "icon", "hidden", "deployAction", "type", "deploying", "disabled", "classNames", "copyAction", "functionUrl", "nodes", "edges", "source", "target", "useDeployDeps", "script", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "client", "useClient", "existingFunctionUrl", "useMemo", "getUserFunctionUrlInMetadata", "getMeta", "useDeployState", "useEffect", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "id", "deployed", "Boolean", "changed", "useDeployHandler", "t", "useTranslation", "useCallback", "undefined", "existingFunctionId", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "content", "functionId", "version", "meta", "uploadWorkerFunction", "incrementSemverPatch", "Error", "log", "info", "deployedFunction", "db", "add", "create", "name", "makeRef", "description", "trim", "verbose", "inputSchema", "outputSchema", "setUserFunctionUrlInMetadata", "err", "catch", "useCopyHandler", "navigator", "clipboard", "writeText", "useMemo", "create", "useToolbarState", "initialState", "useMemo", "create", "format", "prettierPluginEstree", "prettierPluginTypescript", "useCallback", "log", "createMenuAction", "createFormat", "formatAction", "createMenuAction", "label", "ns", "SCRIPT_PLUGIN", "icon", "nodes", "edges", "source", "target", "useFormatHandler", "script", "useCallback", "content", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "err", "log", "catch", "useCallback", "FUNCTIONS_PRESET_META_KEY", "getMeta", "createMenuItemGroup", "createMenuAction", "createTemplateSelectGroup", "createMenuItemGroup", "label", "ns", "SCRIPT_PLUGIN", "variant", "createTemplateSelectActions", "templates", "map", "template", "createMenuAction", "id", "name", "value", "type", "createTemplateSelect", "templateSelectGroup", "templateSelectActions", "nodes", "edges", "source", "target", "action", "useTemplateSelectHandler", "script", "useCallback", "templateId", "find", "content", "metaKeys", "getMeta", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "createMenuAction", "createMenuItemGroup", "views", "editor", "split", "logs", "createViewGroupItem", "state", "createMenuItemGroup", "label", "ns", "SCRIPT_PLUGIN", "variant", "applyActive", "value", "view", "createViewActions", "Object", "entries", "map", "viewType", "icon", "createMenuAction", "type", "checked", "createView", "viewGroupItem", "viewActions", "nodes", "edges", "source", "target", "action", "id", "useCallback", "log", "useToolbarAction", "props", "handleTemplateSelect", "useTemplateSelectHandler", "handleFormat", "useFormatHandler", "handleDeploy", "useDeployHandler", "handleCopy", "useCopyHandler", "useCallback", "action", "properties", "type", "value", "state", "view", "log", "error", "React", "useCallback", "useMemo", "useState", "decodeReference", "useEdgeClient", "useQueue", "Icon", "List", "ListItem", "useTranslation", "mx", "LogsPanel", "script", "classNames", "t", "useTranslation", "SCRIPT_PLUGIN", "space", "existingFunctionUrl", "useDeployDeps", "edgeClient", "useEdgeClient", "invocationTraceQueue", "useQueue", "properties", "dxn", "pollInterval", "selected", "setSelected", "useState", "workerDxn", "split", "at", "div", "handleOpenChange", "useCallback", "trace", "open", "undefined", "List", "mx", "items", "filter", "decodeReference", "invocationTarget", "toString", "map", "InvocationTraceItem", "key", "id", "setOpen", "eventQueue", "logs", "useMemo", "flatMap", "event", "heading", "input", "bodyText", "JSON", "stringify", "ListItem", "Root", "collapsible", "onOpenChange", "className", "OpenTrigger", "Endcap", "Icon", "icon", "outcome", "size", "Heading", "span", "Date", "timestampMs", "toLocaleString", "CollapsibleContent", "durationMs", "pre", "log", "index"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapability } from '@dxos/app-framework';\nimport { ScriptType } from '@dxos/functions/types';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { Clipboard } from '@dxos/react-ui';\n\nimport { ScriptCapabilities } from './capabilities';\nimport { DebugPanel, ScriptSettings, ScriptContainer, ScriptSettingsPanel } from '../components';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { type ScriptSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SCRIPT_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ScriptSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SCRIPT_PLUGIN,\n component: ({ data: { subject } }) => <ScriptSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data, role }) => {\n const compiler = useCapability(ScriptCapabilities.Compiler);\n // TODO(dmaretskyi): Since settings store is not reactive, this would break on the script plugin being enabled without a page reload.\n const settings = useCapability(Capabilities.SettingsStore).getStore<ScriptSettingsProps>(SCRIPT_PLUGIN)?.value;\n return <ScriptContainer role={role} script={data.subject} settings={settings} env={compiler.environment} />;\n },\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/automation`,\n role: 'complementary--function',\n position: 'hoist',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data }) => {\n // TODO(wittjosiah): Decouple hooks from toolbar state.\n const state = useToolbarState({ view: 'editor' });\n useDeployState({ state, script: data.subject });\n return <DebugPanel functionUrl={state.functionUrl} />;\n },\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/settings-panel`,\n role: 'complementary--settings',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data }) => (\n <Clipboard.Provider>\n <ScriptSettingsPanel script={data.subject} />\n </Clipboard.Provider>\n ),\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,eAAeC,qBAAqB;AACxE,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SAASC,iBAAiB;AAQ1B,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN;IACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,gBAAAA;MAAeC,UAAUL,QAAQM;;EAC1E,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAMW,WAAWC,cAAcC,mBAAmBC,QAAQ;AAE1D,YAAMN,WAAWI,cAAcjB,aAAaS,aAAa,EAAEW,SAA8BhB,aAAAA,GAAgBU;AACzG,aAAO,sBAAA,cAACO,iBAAAA;QAAgBhB;QAAYiB,QAAQf,KAAKC;QAASK;QAAoBU,KAAKP,SAASQ;;IAC9F;EACF,CAAA;EACAtB,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNoB,UAAU;IACVnB,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,KAAI,MAAE;AAElB,YAAMmB,QAAQC,gBAAgB;QAAEC,MAAM;MAAS,CAAA;AAC/CC,qBAAe;QAAEH;QAAOJ,QAAQf,KAAKC;MAAQ,CAAA;AAC7C,aAAO,sBAAA,cAACsB,YAAAA;QAAWC,aAAaL,MAAMK;;IACxC;EACF,CAAA;EACA7B,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,KAAI,MAChB,sBAAA,cAACyB,UAAUC,UAAQ,MACjB,sBAAA,cAACC,qBAAAA;MAAoBZ,QAAQf,KAAKC;;EAGxC,CAAA;CACD;",
6
- "names": ["React", "Capabilities", "contributes", "createSurface", "useCapability", "ScriptType", "SettingsStore", "Clipboard", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SCRIPT_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ScriptSettings", "settings", "value", "ScriptType", "compiler", "useCapability", "ScriptCapabilities", "Compiler", "getStore", "ScriptContainer", "script", "env", "environment", "position", "state", "useToolbarState", "view", "useDeployState", "DebugPanel", "functionUrl", "Clipboard", "Provider", "ScriptSettingsPanel"]
7
- }