@dxos/plugin-script 0.6.10 → 0.6.11-staging.e6894a4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{ScriptEditor-WNCGR5OU.mjs → ScriptEditor-YLGNCLXA.mjs} +121 -59
- package/dist/lib/browser/ScriptEditor-YLGNCLXA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZGCETT2W.mjs → chunk-O4LWBX6A.mjs} +7 -2
- package/dist/lib/browser/chunk-O4LWBX6A.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +5 -5
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{ScriptEditor-RR7AVOQL.cjs → ScriptEditor-XLE33DB4.cjs} +136 -74
- package/dist/lib/node/ScriptEditor-XLE33DB4.cjs.map +7 -0
- package/dist/lib/node/{chunk-VW2POILW.cjs → chunk-5RBVXKXT.cjs} +9 -4
- package/dist/lib/node/chunk-5RBVXKXT.cjs.map +7 -0
- package/dist/lib/node/index.cjs +17 -17
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types/index.cjs +4 -4
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/components/DebugPanel.d.ts +9 -0
- package/dist/types/src/components/DebugPanel.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar.d.ts.map +1 -1
- package/dist/types/src/types/script.d.ts +12 -0
- package/dist/types/src/types/script.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +34 -33
- package/src/ScriptPlugin.tsx +7 -4
- package/src/components/{DetailsPanel.tsx → DebugPanel.tsx} +101 -36
- package/src/components/ScriptEditor.tsx +2 -2
- package/src/components/Toolbar.tsx +14 -29
- package/src/types/script.ts +13 -0
- package/dist/lib/browser/ScriptEditor-WNCGR5OU.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZGCETT2W.mjs.map +0 -7
- package/dist/lib/node/ScriptEditor-RR7AVOQL.cjs.map +0 -7
- package/dist/lib/node/chunk-VW2POILW.cjs.map +0 -7
- package/dist/types/src/components/DetailsPanel.d.ts +0 -9
- package/dist/types/src/components/DetailsPanel.d.ts.map +0 -1
- package/dist/types/src/data/templates.md.d.ts +0 -3
- package/dist/types/src/data/templates.md.d.ts.map +0 -1
- package/src/data/templates.md.ts +0 -44
- /package/src/types/{types.tsx → types.ts} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ScriptEditor.tsx", "../../../src/components/DetailsPanel.tsx", "../../../src/components/Toolbar.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { create, createDocAccessor, Filter, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createDataExtensions, listener } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { DetailsPanel } from './DetailsPanel';\nimport { Toolbar } from './Toolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { Bundler } from '../bundler';\nimport {\n getUserFunctionUrlInMetadata,\n publicKeyToDid,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '../edge';\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { FunctionType, type ScriptType } from '../types';\n\nexport type ScriptEditorProps = {\n script: ScriptType;\n role?: string;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptEditor = ({ env, script, role }: ScriptEditorProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const client = useClient();\n const identity = useIdentity();\n const space = getSpace(script);\n const [fn] = useQuery(\n space,\n Filter.schema(FunctionType, (fn) => fn.source === script),\n );\n\n const extensions = useMemo(\n () => [\n listener({\n onChange: (text) => {\n if (script.source && script.source?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: script.source && createDocAccessor(script.source, ['content']),\n space,\n identity,\n }),\n ],\n [script, script.source, space, identity],\n );\n\n const [showPanel, setShowPanel] = useState(false);\n const initialValue = useMemo(() => script.source?.content, [script.source]);\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n const [error, setError] = useState<string>();\n\n const handleBindingChange = useCallback(\n (binding: string) => {\n fn.binding = binding;\n },\n [fn],\n );\n\n const handleFormat = useCallback(async () => {\n if (!script.source) {\n return;\n }\n\n try {\n script.source.content = await format(script.source.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 const handleDeploy = useCallback(async () => {\n if (!script.source || !identity || !space) {\n return;\n }\n\n setError(undefined);\n\n try {\n const existingFunctionId = existingFunctionUrl?.split('/').at(-1);\n const ownerDid = (existingFunctionUrl?.split('/').at(-2) as DID) ?? publicKeyToDid(identity.identityKey);\n\n const bundler = new Bundler({\n platform: 'browser',\n sandboxedModules: [],\n remoteModules: {},\n });\n const buildResult = await bundler.bundle(script.source.content);\n if (buildResult.error || !buildResult.bundle) {\n throw buildResult.error;\n }\n\n const { result, functionId, functionVersionNumber, errorMessage } = await uploadWorkerFunction({\n clientConfig: client.config,\n halo: client.halo,\n ownerDid,\n functionId: existingFunctionId,\n source: buildResult.bundle,\n });\n if (result !== 'success' || functionId === undefined || functionVersionNumber === undefined) {\n throw new Error(errorMessage);\n }\n log.info('function uploaded', { functionId, functionVersionNumber });\n if (fn) {\n fn.version = functionVersionNumber;\n }\n const deployedFunction =\n fn ?? space.db.add(create(FunctionType, { version: functionVersionNumber, source: script }));\n const meta = getMeta(deployedFunction);\n setUserFunctionUrlInMetadata(meta, `/${ownerDid}/${functionId}`);\n script.changed = false;\n } catch (err: any) {\n log.catch(err);\n setError(t('upload failed label'));\n }\n }, [fn, existingFunctionUrl, script, script.name, script.source]);\n\n const functionUrl = useMemo(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n const baseUrl = new URL('functions/', client.config.values.runtime?.services?.edge?.url);\n\n // Leading slashes cause the URL to be treated as an absolute path.\n const relativeUrl = existingFunctionUrl.replace(/^\\//, '');\n const url = new URL(`./${relativeUrl}`, baseUrl.toString());\n space && url.searchParams.set('spaceId', space.id);\n url.protocol = 'https';\n return url.toString();\n }, [existingFunctionUrl, space]);\n\n return (\n <div\n role='none'\n className={mx(role === 'article' && 'row-span-2', 'flex flex-col is-full bs-full overflow-hidden')}\n >\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={initialValue}\n extensions={extensions}\n className='flex is-full bs-full overflow-hidden border-b border-separator'\n />\n\n <Toolbar\n deployed={Boolean(existingFunctionUrl) && !script.changed}\n functionUrl={functionUrl}\n error={error}\n showPanel={showPanel}\n onDeploy={handleDeploy}\n onFormat={handleFormat}\n onTogglePanel={async () => setShowPanel((showDetails) => !showDetails)}\n />\n\n {showPanel && (\n <DetailsPanel functionUrl={functionUrl} binding={fn?.binding} onBindingChange={handleBindingChange} />\n )}\n </div>\n );\n};\n\nexport default ScriptEditor;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport {\n Avatar,\n DensityProvider,\n Icon,\n Input,\n type ThemedClassName,\n Toolbar,\n useControlledValue,\n useDynamicRef,\n useTranslation,\n} from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\ntype State = 'pending' | 'responding';\n\ntype Item = { type: 'request' | 'response'; text: string };\n\nexport type DetailsPanelProps = ThemedClassName<{\n functionUrl?: string;\n binding?: string;\n onBindingChange?: (binding: string) => void;\n}>;\n\nexport const DetailsPanel = ({ classNames, functionUrl, binding: _binding, onBindingChange }: DetailsPanelProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n\n const bindingInputRef = useRef<HTMLInputElement>(null);\n const [binding, setBinding] = useControlledValue(_binding ?? '');\n const handleBlur = () => {\n onBindingChange?.(binding);\n };\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [input, setInput] = useState('');\n const [result, setResult] = useState('');\n const resultRef = useDynamicRef(result);\n const [state, setState] = useState<State | null>(null);\n\n // TODO(burdon): Persistent history (non-space ECHO data?)\n const [history, setHistory] = useState<Item[]>([]);\n\n const scrollerRef = useRef<HTMLDivElement>(null);\n const handleScroll = () => {\n if (scrollerRef.current) {\n scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;\n }\n };\n\n const controller = useRef<AbortController>();\n useEffect(() => {\n return () => {\n handleStop();\n };\n }, []);\n\n const handleStop = () => {\n controller.current?.abort('stop');\n controller.current = undefined;\n };\n\n // TODO(burdon): Halt streaming request?\n const handleClear = () => {\n handleStop();\n setInput('');\n setResult('');\n setHistory([]);\n inputRef.current?.focus();\n };\n\n const handleDone = () => {\n controller.current = undefined;\n setHistory((history) => [...history, { type: 'response', text: resultRef.current }]);\n setResult('');\n setState(null);\n handleScroll();\n };\n\n const handleRun = async (input: string) => {\n if (input.trim().length === 0) {\n inputRef.current?.focus();\n return;\n }\n\n setHistory((history) => [...history, { type: 'request', text: input }]);\n setInput('');\n setResult('');\n\n // Returns a promise that resolves when a value has been received.\n try {\n setState('pending');\n\n // Throws DOMException when aborted.\n controller.current = new AbortController();\n const response = await fetch(functionUrl!, {\n signal: controller.current.signal,\n method: 'POST',\n body: input,\n });\n\n // TODO(burdon): Error handling.\n if (!response.ok) {\n setState(null);\n return;\n }\n\n setState('responding');\n const reader = response.body!.getReader();\n const pump = async ({ done, value }: ReadableStreamReadResult<Uint8Array>): Promise<void> => {\n setResult((result) => result + new TextDecoder().decode(value));\n handleScroll();\n if (!controller.current || done) {\n handleDone();\n return;\n }\n\n return reader.read().then(pump);\n };\n\n void reader\n .read()\n .then(pump)\n .catch((err) => {\n if (err.name !== 'AbortError') {\n log.catch(err);\n }\n });\n } catch (err) {\n setState(null);\n if (err !== 'stop') {\n log.catch(err);\n }\n }\n };\n\n return (\n <DensityProvider density='fine'>\n <div className={mx('flex flex-col h-full overflow-hidden', classNames)}>\n {/* TODO(burdon): Replace with Thread? */}\n <div ref={scrollerRef} className='flex flex-col gap-6 h-full p-4 overflow-x-hidden overflow-y-auto'>\n <MessageThread state={state} result={result} history={history} />\n </div>\n\n <Toolbar.Root classNames='p-2'>\n <Input.Root>\n <Input.TextInput\n ref={inputRef}\n autoFocus\n placeholder={t('function request placeholder')}\n value={input}\n onChange={(ev) => setInput(ev.target.value)}\n onKeyDown={(ev) => ev.key === 'Enter' && handleRun(input)}\n />\n </Input.Root>\n <Input.Root>\n <Input.TextInput\n ref={bindingInputRef}\n classNames='!w-[10rem]'\n placeholder={t('binding placeholder')}\n value={binding}\n onChange={(ev) => setBinding(ev.target.value.toUpperCase())}\n onBlur={handleBlur}\n />\n </Input.Root>\n <Toolbar.Button onClick={() => handleRun(input)}>\n <Icon icon='ph--play--regular' size={4} />\n </Toolbar.Button>\n <Toolbar.Button onClick={() => (state ? handleStop() : handleClear())}>\n <Icon icon={state ? 'ph--stop--regular' : 'ph--trash--regular'} size={4} />\n </Toolbar.Button>\n </Toolbar.Root>\n </div>\n </DensityProvider>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root size={6} variant='circle'>\n <Avatar.Frame>\n <Avatar.Icon icon='ph--robot--regular' />\n </Avatar.Frame>\n </Avatar.Root>\n);\n\n// TODO(burdon): Replace with thread.\n// TODO(burdon): Delete individual messages.\n// TODO(burdon): Re-run question.\nconst MessageThread = ({ state, result, history }: { state: State | null; result: string; history: Item[] }) => {\n return (\n <>\n {history.map(({ type, text }, i) => (\n <div key={i} className='grid grid-cols-[3rem_1fr]'>\n <div>{type === 'response' && <RobotAvatar />}</div>\n <div className={mx('flex', type === 'request' && 'justify-end')}>\n <span className={mx(type === 'request' && 'p-1 px-2 rounded-lg bg-hoverSurface')}>{text}</span>\n </div>\n </div>\n ))}\n <div className='grid grid-cols-[3rem_1fr]'>\n <div>\n {(state === 'pending' && <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin-slow' />) ||\n (result.length > 0 && <RobotAvatar />)}\n </div>\n <div>\n <span>{result}</span>\n </div>\n </div>\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Checks, CircleNotch, Link, MagicWand, UploadSimple, WarningCircle } from '@phosphor-icons/react';\nimport React, { useState } from 'react';\n\nimport {\n DensityProvider,\n ElevationProvider,\n Icon,\n type ThemedClassName,\n Toolbar as NaturalToolbar,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type ToolbarProps = ThemedClassName<{\n deployed?: boolean;\n error?: string;\n functionUrl?: string;\n showPanel?: boolean;\n onDeploy?: () => Promise<void>;\n onFormat?: () => Promise<void>;\n onTogglePanel?: () => Promise<void>;\n}>;\n\nexport const Toolbar = ({\n classNames,\n deployed,\n error,\n functionUrl,\n showPanel,\n onDeploy,\n onFormat,\n onTogglePanel,\n}: ToolbarProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const [pending, setPending] = useState(false);\n\n const handleCopyLink = async () => {\n if (!functionUrl) {\n return;\n }\n\n await navigator.clipboard.writeText(functionUrl);\n };\n\n const handleDeploy = async () => {\n setPending(true);\n await onDeploy?.();\n setPending(false);\n };\n\n // TODO(burdon): Factor out common toolbar components with sheet/editor?\n return (\n <DensityProvider density='fine'>\n <ElevationProvider elevation='chrome'>\n <NaturalToolbar.Root classNames={['p-1', classNames]} style={{ contain: 'layout' }}>\n {onFormat && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={onFormat}>\n <MagicWand className={getSize(4)} />\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('format label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n\n <div role='separator' className='grow' />\n\n {functionUrl && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={handleCopyLink}>\n <Link className={getSize(4)} />\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('copy link label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n\n {/* TODO(wittjosiah): Better treatment for status indicators in toolbar? */}\n {error ? (\n <Tooltip.Root>\n <Tooltip.Trigger>\n <WarningCircle className={getSize(4)} />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {error}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : deployed ? (\n <Tooltip.Root>\n <Tooltip.Trigger>\n <Checks className={getSize(4)} />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('deployed label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : null}\n\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={handleDeploy} disabled={pending}>\n {pending ? (\n <CircleNotch className={mx('spinner', getSize(4))} />\n ) : (\n <UploadSimple className={getSize(4)} />\n )}\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {pending ? t('pending label') : t('deploy label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n\n {onTogglePanel && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={onTogglePanel}>\n <Icon icon={showPanel ? 'ph--caret-up--regular' : 'ph--caret-down--regular'} size={4} />\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('toggle details label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n </NaturalToolbar.Root>\n </ElevationProvider>\n </DensityProvider>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["format", "prettierPluginEstree", "prettierPluginTypescript", "React", "useCallback", "useMemo", "useState", "log", "useClient", "create", "createDocAccessor", "Filter", "getMeta", "getSpace", "useQuery", "useIdentity", "useTranslation", "createDataExtensions", "listener", "mx", "React", "useEffect", "useRef", "useState", "log", "Avatar", "DensityProvider", "Icon", "Input", "Toolbar", "useControlledValue", "useDynamicRef", "useTranslation", "mx", "DetailsPanel", "classNames", "functionUrl", "binding", "_binding", "onBindingChange", "t", "useTranslation", "SCRIPT_PLUGIN", "bindingInputRef", "useRef", "setBinding", "useControlledValue", "handleBlur", "inputRef", "input", "setInput", "useState", "result", "setResult", "resultRef", "useDynamicRef", "state", "setState", "history", "setHistory", "scrollerRef", "handleScroll", "current", "scrollTop", "scrollHeight", "controller", "useEffect", "handleStop", "abort", "undefined", "handleClear", "focus", "handleDone", "type", "text", "handleRun", "trim", "length", "AbortController", "response", "fetch", "signal", "method", "body", "ok", "reader", "getReader", "pump", "done", "value", "TextDecoder", "decode", "read", "then", "catch", "err", "name", "log", "DensityProvider", "density", "div", "className", "mx", "ref", "MessageThread", "Toolbar", "Root", "Input", "TextInput", "autoFocus", "placeholder", "onChange", "ev", "target", "onKeyDown", "key", "toUpperCase", "onBlur", "Button", "onClick", "Icon", "icon", "size", "RobotAvatar", "Avatar", "variant", "Frame", "map", "i", "span", "Checks", "CircleNotch", "Link", "MagicWand", "UploadSimple", "WarningCircle", "React", "useState", "DensityProvider", "ElevationProvider", "Icon", "Toolbar", "NaturalToolbar", "Tooltip", "useTranslation", "getSize", "mx", "Toolbar", "classNames", "deployed", "error", "functionUrl", "showPanel", "onDeploy", "onFormat", "onTogglePanel", "t", "useTranslation", "SCRIPT_PLUGIN", "pending", "setPending", "useState", "handleCopyLink", "navigator", "clipboard", "writeText", "handleDeploy", "React", "DensityProvider", "density", "ElevationProvider", "elevation", "NaturalToolbar", "Root", "style", "contain", "Tooltip", "Trigger", "asChild", "Button", "variant", "onClick", "MagicWand", "className", "getSize", "Portal", "Content", "Arrow", "div", "role", "Link", "WarningCircle", "Checks", "disabled", "CircleNotch", "mx", "UploadSimple", "Icon", "icon", "size", "ScriptEditor", "env", "script", "role", "t", "useTranslation", "SCRIPT_PLUGIN", "client", "useClient", "identity", "useIdentity", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "source", "extensions", "useMemo", "listener", "onChange", "text", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "showPanel", "setShowPanel", "useState", "initialValue", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "getMeta", "error", "setError", "handleBindingChange", "useCallback", "binding", "handleFormat", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "err", "log", "catch", "handleDeploy", "undefined", "existingFunctionId", "split", "at", "ownerDid", "publicKeyToDid", "identityKey", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "result", "functionId", "functionVersionNumber", "errorMessage", "uploadWorkerFunction", "clientConfig", "config", "halo", "Error", "info", "version", "deployedFunction", "db", "add", "create", "meta", "setUserFunctionUrlInMetadata", "name", "functionUrl", "baseUrl", "URL", "values", "runtime", "services", "edge", "url", "relativeUrl", "replace", "toString", "searchParams", "set", "protocol", "React", "div", "className", "mx", "TypescriptEditor", "Toolbar", "deployed", "Boolean", "onDeploy", "onFormat", "onTogglePanel", "showDetails", "DetailsPanel", "onBindingChange"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/script.ts", "../../../src/types/types.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { ref, S, TypedObject } from '@dxos/echo-schema';\nimport { TextType } from '@dxos/plugin-markdown/types';\n\nexport class ScriptType extends TypedObject({ typename: 'dxos.org/type/Script', version: '0.1.0' })({\n name: S.optional(S.String),\n source: ref(TextType),\n // Whether source has changed since last deploy.\n changed: S.optional(S.Boolean),\n}) {}\n\nexport class FunctionType extends TypedObject({ typename: 'dxos.org/type/Function', version: '0.1.0' })({\n version: S.Number,\n // Local binding to a function name.\n binding: S.optional(S.String),\n // Reference to a source script if it exists within ECHO.\n source: S.optional(ref(ScriptType)),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { type SchemaProvides } from '@dxos/plugin-client';\nimport { type StackProvides } from '@dxos/plugin-stack';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport enum ScriptAction {\n CREATE = `${SCRIPT_PLUGIN}/create`,\n}\n\nexport type ScriptPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n MetadataRecordsProvides &\n TranslationsProvides &\n SchemaProvides &\n StackProvides;\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,SAASA,KAAKC,GAAGC,mBAAmB;AACpC,SAASC,gBAAgB;AAElB,IAAMC,aAAN,cAAyBC,YAAY;EAAEC,UAAU;EAAwBC,SAAS;AAAQ,CAAA,EAAG;EAClGC,MAAMC,EAAEC,SAASD,EAAEE,MAAM;EACzBC,QAAQC,IAAIC,QAAAA;;EAEZC,SAASN,EAAEC,SAASD,EAAEO,OAAO;AAC/B,CAAA,EAAA;AAAI;AAEG,IAAMC,eAAN,cAA2BZ,YAAY;EAAEC,UAAU;EAA0BC,SAAS;AAAQ,CAAA,EAAG;EACtGA,SAASE,EAAES;;EAEXC,SAASV,EAAEC,SAASD,EAAEE,MAAM;;EAE5BC,QAAQH,EAAEC,SAASG,IAAIT,UAAAA,CAAAA;AACzB,CAAA,EAAA;AAAI;;;;UCJQgB,eAAAA;0CACD,GAAGC,aAAAA,SAAsB,IAAA;GADxBD,iBAAAA,eAAAA,CAAAA,EAAAA;",
|
|
6
|
-
"names": ["ref", "S", "TypedObject", "TextType", "ScriptType", "TypedObject", "typename", "version", "name", "S", "optional", "String", "source", "ref", "TextType", "changed", "Boolean", "FunctionType", "Number", "binding", "ScriptAction", "SCRIPT_PLUGIN"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ScriptEditor.tsx", "../../../src/components/DetailsPanel.tsx", "../../../src/components/Toolbar.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { create, createDocAccessor, Filter, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createDataExtensions, listener } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { DetailsPanel } from './DetailsPanel';\nimport { Toolbar } from './Toolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { Bundler } from '../bundler';\nimport {\n getUserFunctionUrlInMetadata,\n publicKeyToDid,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '../edge';\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { FunctionType, type ScriptType } from '../types';\n\nexport type ScriptEditorProps = {\n script: ScriptType;\n role?: string;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptEditor = ({ env, script, role }: ScriptEditorProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const client = useClient();\n const identity = useIdentity();\n const space = getSpace(script);\n const [fn] = useQuery(\n space,\n Filter.schema(FunctionType, (fn) => fn.source === script),\n );\n\n const extensions = useMemo(\n () => [\n listener({\n onChange: (text) => {\n if (script.source && script.source?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: script.source && createDocAccessor(script.source, ['content']),\n space,\n identity,\n }),\n ],\n [script, script.source, space, identity],\n );\n\n const [showPanel, setShowPanel] = useState(false);\n const initialValue = useMemo(() => script.source?.content, [script.source]);\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n const [error, setError] = useState<string>();\n\n const handleBindingChange = useCallback(\n (binding: string) => {\n fn.binding = binding;\n },\n [fn],\n );\n\n const handleFormat = useCallback(async () => {\n if (!script.source) {\n return;\n }\n\n try {\n script.source.content = await format(script.source.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 const handleDeploy = useCallback(async () => {\n if (!script.source || !identity || !space) {\n return;\n }\n\n setError(undefined);\n\n try {\n const existingFunctionId = existingFunctionUrl?.split('/').at(-1);\n const ownerDid = (existingFunctionUrl?.split('/').at(-2) as DID) ?? publicKeyToDid(identity.identityKey);\n\n const bundler = new Bundler({\n platform: 'browser',\n sandboxedModules: [],\n remoteModules: {},\n });\n const buildResult = await bundler.bundle(script.source.content);\n if (buildResult.error || !buildResult.bundle) {\n throw buildResult.error;\n }\n\n const { result, functionId, functionVersionNumber, errorMessage } = await uploadWorkerFunction({\n clientConfig: client.config,\n halo: client.halo,\n ownerDid,\n functionId: existingFunctionId,\n source: buildResult.bundle,\n });\n if (result !== 'success' || functionId === undefined || functionVersionNumber === undefined) {\n throw new Error(errorMessage);\n }\n log.info('function uploaded', { functionId, functionVersionNumber });\n if (fn) {\n fn.version = functionVersionNumber;\n }\n const deployedFunction =\n fn ?? space.db.add(create(FunctionType, { version: functionVersionNumber, source: script }));\n const meta = getMeta(deployedFunction);\n setUserFunctionUrlInMetadata(meta, `/${ownerDid}/${functionId}`);\n script.changed = false;\n } catch (err: any) {\n log.catch(err);\n setError(t('upload failed label'));\n }\n }, [fn, existingFunctionUrl, script, script.name, script.source]);\n\n const functionUrl = useMemo(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n const baseUrl = new URL('functions/', client.config.values.runtime?.services?.edge?.url);\n\n // Leading slashes cause the URL to be treated as an absolute path.\n const relativeUrl = existingFunctionUrl.replace(/^\\//, '');\n const url = new URL(`./${relativeUrl}`, baseUrl.toString());\n space && url.searchParams.set('spaceId', space.id);\n url.protocol = 'https';\n return url.toString();\n }, [existingFunctionUrl, space]);\n\n return (\n <div\n role='none'\n className={mx(role === 'article' && 'row-span-2', 'flex flex-col is-full bs-full overflow-hidden')}\n >\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={initialValue}\n extensions={extensions}\n className='flex is-full bs-full overflow-hidden border-b border-separator'\n />\n\n <Toolbar\n deployed={Boolean(existingFunctionUrl) && !script.changed}\n functionUrl={functionUrl}\n error={error}\n showPanel={showPanel}\n onDeploy={handleDeploy}\n onFormat={handleFormat}\n onTogglePanel={async () => setShowPanel((showDetails) => !showDetails)}\n />\n\n {showPanel && (\n <DetailsPanel functionUrl={functionUrl} binding={fn?.binding} onBindingChange={handleBindingChange} />\n )}\n </div>\n );\n};\n\nexport default ScriptEditor;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport {\n Avatar,\n DensityProvider,\n Icon,\n Input,\n type ThemedClassName,\n Toolbar,\n useControlledValue,\n useDynamicRef,\n useTranslation,\n} from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\ntype State = 'pending' | 'responding';\n\ntype Item = { type: 'request' | 'response'; text: string };\n\nexport type DetailsPanelProps = ThemedClassName<{\n functionUrl?: string;\n binding?: string;\n onBindingChange?: (binding: string) => void;\n}>;\n\nexport const DetailsPanel = ({ classNames, functionUrl, binding: _binding, onBindingChange }: DetailsPanelProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n\n const bindingInputRef = useRef<HTMLInputElement>(null);\n const [binding, setBinding] = useControlledValue(_binding ?? '');\n const handleBlur = () => {\n onBindingChange?.(binding);\n };\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [input, setInput] = useState('');\n const [result, setResult] = useState('');\n const resultRef = useDynamicRef(result);\n const [state, setState] = useState<State | null>(null);\n\n // TODO(burdon): Persistent history (non-space ECHO data?)\n const [history, setHistory] = useState<Item[]>([]);\n\n const scrollerRef = useRef<HTMLDivElement>(null);\n const handleScroll = () => {\n if (scrollerRef.current) {\n scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;\n }\n };\n\n const controller = useRef<AbortController>();\n useEffect(() => {\n return () => {\n handleStop();\n };\n }, []);\n\n const handleStop = () => {\n controller.current?.abort('stop');\n controller.current = undefined;\n };\n\n // TODO(burdon): Halt streaming request?\n const handleClear = () => {\n handleStop();\n setInput('');\n setResult('');\n setHistory([]);\n inputRef.current?.focus();\n };\n\n const handleDone = () => {\n controller.current = undefined;\n setHistory((history) => [...history, { type: 'response', text: resultRef.current }]);\n setResult('');\n setState(null);\n handleScroll();\n };\n\n const handleRun = async (input: string) => {\n if (input.trim().length === 0) {\n inputRef.current?.focus();\n return;\n }\n\n setHistory((history) => [...history, { type: 'request', text: input }]);\n setInput('');\n setResult('');\n\n // Returns a promise that resolves when a value has been received.\n try {\n setState('pending');\n\n // Throws DOMException when aborted.\n controller.current = new AbortController();\n const response = await fetch(functionUrl!, {\n signal: controller.current.signal,\n method: 'POST',\n body: input,\n });\n\n // TODO(burdon): Error handling.\n if (!response.ok) {\n setState(null);\n return;\n }\n\n setState('responding');\n const reader = response.body!.getReader();\n const pump = async ({ done, value }: ReadableStreamReadResult<Uint8Array>): Promise<void> => {\n setResult((result) => result + new TextDecoder().decode(value));\n handleScroll();\n if (!controller.current || done) {\n handleDone();\n return;\n }\n\n return reader.read().then(pump);\n };\n\n void reader\n .read()\n .then(pump)\n .catch((err) => {\n if (err.name !== 'AbortError') {\n log.catch(err);\n }\n });\n } catch (err) {\n setState(null);\n if (err !== 'stop') {\n log.catch(err);\n }\n }\n };\n\n return (\n <DensityProvider density='fine'>\n <div className={mx('flex flex-col h-full overflow-hidden', classNames)}>\n {/* TODO(burdon): Replace with Thread? */}\n <div ref={scrollerRef} className='flex flex-col gap-6 h-full p-4 overflow-x-hidden overflow-y-auto'>\n <MessageThread state={state} result={result} history={history} />\n </div>\n\n <Toolbar.Root classNames='p-2'>\n <Input.Root>\n <Input.TextInput\n ref={inputRef}\n autoFocus\n placeholder={t('function request placeholder')}\n value={input}\n onChange={(ev) => setInput(ev.target.value)}\n onKeyDown={(ev) => ev.key === 'Enter' && handleRun(input)}\n />\n </Input.Root>\n <Input.Root>\n <Input.TextInput\n ref={bindingInputRef}\n classNames='!w-[10rem]'\n placeholder={t('binding placeholder')}\n value={binding}\n onChange={(ev) => setBinding(ev.target.value.toUpperCase())}\n onBlur={handleBlur}\n />\n </Input.Root>\n <Toolbar.Button onClick={() => handleRun(input)}>\n <Icon icon='ph--play--regular' size={4} />\n </Toolbar.Button>\n <Toolbar.Button onClick={() => (state ? handleStop() : handleClear())}>\n <Icon icon={state ? 'ph--stop--regular' : 'ph--trash--regular'} size={4} />\n </Toolbar.Button>\n </Toolbar.Root>\n </div>\n </DensityProvider>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root size={6} variant='circle'>\n <Avatar.Frame>\n <Avatar.Icon icon='ph--robot--regular' />\n </Avatar.Frame>\n </Avatar.Root>\n);\n\n// TODO(burdon): Replace with thread.\n// TODO(burdon): Delete individual messages.\n// TODO(burdon): Re-run question.\nconst MessageThread = ({ state, result, history }: { state: State | null; result: string; history: Item[] }) => {\n return (\n <>\n {history.map(({ type, text }, i) => (\n <div key={i} className='grid grid-cols-[3rem_1fr]'>\n <div>{type === 'response' && <RobotAvatar />}</div>\n <div className={mx('flex', type === 'request' && 'justify-end')}>\n <span className={mx(type === 'request' && 'p-1 px-2 rounded-lg bg-hoverSurface')}>{text}</span>\n </div>\n </div>\n ))}\n <div className='grid grid-cols-[3rem_1fr]'>\n <div>\n {(state === 'pending' && <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin-slow' />) ||\n (result.length > 0 && <RobotAvatar />)}\n </div>\n <div>\n <span>{result}</span>\n </div>\n </div>\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Checks, CircleNotch, Link, MagicWand, UploadSimple, WarningCircle } from '@phosphor-icons/react';\nimport React, { useState } from 'react';\n\nimport {\n DensityProvider,\n ElevationProvider,\n Icon,\n type ThemedClassName,\n Toolbar as NaturalToolbar,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type ToolbarProps = ThemedClassName<{\n deployed?: boolean;\n error?: string;\n functionUrl?: string;\n showPanel?: boolean;\n onDeploy?: () => Promise<void>;\n onFormat?: () => Promise<void>;\n onTogglePanel?: () => Promise<void>;\n}>;\n\nexport const Toolbar = ({\n classNames,\n deployed,\n error,\n functionUrl,\n showPanel,\n onDeploy,\n onFormat,\n onTogglePanel,\n}: ToolbarProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const [pending, setPending] = useState(false);\n\n const handleCopyLink = async () => {\n if (!functionUrl) {\n return;\n }\n\n await navigator.clipboard.writeText(functionUrl);\n };\n\n const handleDeploy = async () => {\n setPending(true);\n await onDeploy?.();\n setPending(false);\n };\n\n // TODO(burdon): Factor out common toolbar components with sheet/editor?\n return (\n <DensityProvider density='fine'>\n <ElevationProvider elevation='chrome'>\n <NaturalToolbar.Root classNames={['p-1', classNames]} style={{ contain: 'layout' }}>\n {onFormat && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={onFormat}>\n <MagicWand className={getSize(4)} />\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('format label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n\n <div role='separator' className='grow' />\n\n {functionUrl && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={handleCopyLink}>\n <Link className={getSize(4)} />\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('copy link label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n\n {/* TODO(wittjosiah): Better treatment for status indicators in toolbar? */}\n {error ? (\n <Tooltip.Root>\n <Tooltip.Trigger>\n <WarningCircle className={getSize(4)} />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {error}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : deployed ? (\n <Tooltip.Root>\n <Tooltip.Trigger>\n <Checks className={getSize(4)} />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('deployed label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : null}\n\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={handleDeploy} disabled={pending}>\n {pending ? (\n <CircleNotch className={mx('spinner', getSize(4))} />\n ) : (\n <UploadSimple className={getSize(4)} />\n )}\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {pending ? t('pending label') : t('deploy label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n\n {onTogglePanel && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={onTogglePanel}>\n <Icon icon={showPanel ? 'ph--caret-up--regular' : 'ph--caret-down--regular'} size={4} />\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('toggle details label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n </NaturalToolbar.Root>\n </ElevationProvider>\n </DensityProvider>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_react", "import_log", "import_react_ui", "import_react_ui_theme", "DetailsPanel", "classNames", "functionUrl", "binding", "_binding", "onBindingChange", "t", "useTranslation", "SCRIPT_PLUGIN", "bindingInputRef", "useRef", "setBinding", "useControlledValue", "handleBlur", "inputRef", "input", "setInput", "useState", "result", "setResult", "resultRef", "useDynamicRef", "state", "setState", "history", "setHistory", "scrollerRef", "handleScroll", "current", "scrollTop", "scrollHeight", "controller", "useEffect", "handleStop", "abort", "undefined", "handleClear", "focus", "handleDone", "type", "text", "handleRun", "trim", "length", "AbortController", "response", "fetch", "signal", "method", "body", "ok", "reader", "getReader", "pump", "done", "value", "TextDecoder", "decode", "read", "then", "catch", "err", "name", "log", "React", "DensityProvider", "density", "div", "className", "mx", "ref", "MessageThread", "Toolbar", "Root", "Input", "TextInput", "autoFocus", "placeholder", "onChange", "ev", "target", "onKeyDown", "key", "toUpperCase", "onBlur", "Button", "onClick", "Icon", "icon", "size", "RobotAvatar", "Avatar", "variant", "Frame", "map", "i", "span", "deployed", "error", "showPanel", "onDeploy", "onFormat", "onTogglePanel", "pending", "setPending", "handleCopyLink", "navigator", "clipboard", "writeText", "handleDeploy", "ElevationProvider", "elevation", "NaturalToolbar", "style", "contain", "Tooltip", "Trigger", "asChild", "MagicWand", "getSize", "Portal", "Content", "Arrow", "role", "Link", "WarningCircle", "Checks", "disabled", "CircleNotch", "UploadSimple", "ScriptEditor", "env", "script", "client", "useClient", "identity", "useIdentity", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "source", "extensions", "useMemo", "listener", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "setShowPanel", "initialValue", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "getMeta", "setError", "handleBindingChange", "useCallback", "handleFormat", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "existingFunctionId", "split", "at", "ownerDid", "publicKeyToDid", "identityKey", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "functionId", "functionVersionNumber", "errorMessage", "uploadWorkerFunction", "clientConfig", "config", "halo", "Error", "info", "version", "deployedFunction", "db", "add", "create", "meta", "setUserFunctionUrlInMetadata", "baseUrl", "URL", "values", "runtime", "services", "edge", "url", "relativeUrl", "replace", "toString", "searchParams", "set", "protocol", "TypescriptEditor", "Boolean", "showDetails"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/script.ts", "../../../src/types/types.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { ref, S, TypedObject } from '@dxos/echo-schema';\nimport { TextType } from '@dxos/plugin-markdown/types';\n\nexport class ScriptType extends TypedObject({ typename: 'dxos.org/type/Script', version: '0.1.0' })({\n name: S.optional(S.String),\n source: ref(TextType),\n // Whether source has changed since last deploy.\n changed: S.optional(S.Boolean),\n}) {}\n\nexport class FunctionType extends TypedObject({ typename: 'dxos.org/type/Function', version: '0.1.0' })({\n version: S.Number,\n // Local binding to a function name.\n binding: S.optional(S.String),\n // Reference to a source script if it exists within ECHO.\n source: S.optional(ref(ScriptType)),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { type SchemaProvides } from '@dxos/plugin-client';\nimport { type StackProvides } from '@dxos/plugin-stack';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport enum ScriptAction {\n CREATE = `${SCRIPT_PLUGIN}/create`,\n}\n\nexport type ScriptPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n MetadataRecordsProvides &\n TranslationsProvides &\n SchemaProvides &\n StackProvides;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAoC;AACpC,mBAAyB;AAElB,IAAMA,aAAN,kBAAyBC,gCAAY;EAAEC,UAAU;EAAwBC,SAAS;AAAQ,CAAA,EAAG;EAClGC,MAAMC,qBAAEC,SAASD,qBAAEE,MAAM;EACzBC,YAAQC,wBAAIC,qBAAAA;;EAEZC,SAASN,qBAAEC,SAASD,qBAAEO,OAAO;AAC/B,CAAA,EAAA;AAAI;AAEG,IAAMC,eAAN,kBAA2BZ,gCAAY;EAAEC,UAAU;EAA0BC,SAAS;AAAQ,CAAA,EAAG;EACtGA,SAASE,qBAAES;;EAEXC,SAASV,qBAAEC,SAASD,qBAAEE,MAAM;;EAE5BC,QAAQH,qBAAEC,aAASG,wBAAIT,UAAAA,CAAAA;AACzB,CAAA,EAAA;AAAI;;UCJQgB,eAAAA;0CACD,GAAGC,mCAAAA,SAAsB,IAAA;GADxBD,iBAAAA,eAAAA,CAAAA,EAAAA;",
|
|
6
|
-
"names": ["ScriptType", "TypedObject", "typename", "version", "name", "S", "optional", "String", "source", "ref", "TextType", "changed", "Boolean", "FunctionType", "Number", "binding", "ScriptAction", "SCRIPT_PLUGIN"]
|
|
7
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type ThemedClassName } from '@dxos/react-ui';
|
|
3
|
-
export type DetailsPanelProps = ThemedClassName<{
|
|
4
|
-
functionUrl?: string;
|
|
5
|
-
binding?: string;
|
|
6
|
-
onBindingChange?: (binding: string) => void;
|
|
7
|
-
}>;
|
|
8
|
-
export declare const DetailsPanel: ({ classNames, functionUrl, binding: _binding, onBindingChange }: DetailsPanelProps) => React.JSX.Element;
|
|
9
|
-
//# sourceMappingURL=DetailsPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/DetailsPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,EAKL,KAAK,eAAe,EAKrB,MAAM,gBAAgB,CAAC;AASxB,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,CAAC,CAAC;AAEH,eAAO,MAAM,YAAY,oEAAqE,iBAAiB,sBAsJ9G,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.md.d.ts","sourceRoot":"","sources":["../../../../src/data/templates.md.ts"],"names":[],"mappings":"qFASG,GAAG;AALN,wBAuCE"}
|
package/src/data/templates.md.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2024 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
export default async ({
|
|
6
|
-
event: {
|
|
7
|
-
data: { request },
|
|
8
|
-
},
|
|
9
|
-
context: { space, ai },
|
|
10
|
-
}: any) => {
|
|
11
|
-
const { objects: docs } = await space.crud.query({ __typename: 'dxos.org/type/Document' }).run();
|
|
12
|
-
|
|
13
|
-
let context = '';
|
|
14
|
-
for (const doc of docs) {
|
|
15
|
-
const { content } = await space.crud.query({ id: doc.content }).first();
|
|
16
|
-
context += content + '\n\n';
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const answer = await ai.run('@cf/meta/llama-3.1-8b-instruct', {
|
|
20
|
-
prompt: `
|
|
21
|
-
Using the context data only to answer the user's question.
|
|
22
|
-
If you don't know the answer reply with "I don't know.".
|
|
23
|
-
|
|
24
|
-
CONTEXT:
|
|
25
|
-
${context}
|
|
26
|
-
|
|
27
|
-
QUESTION:
|
|
28
|
-
${await request.text()}
|
|
29
|
-
`,
|
|
30
|
-
stream: true,
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
// TODO(burdon): Create wrapper for stream response.
|
|
34
|
-
// Transform event stream into raw text.
|
|
35
|
-
const { readable, writable } = new TransformStream({
|
|
36
|
-
transform: (chunk, controller) => {
|
|
37
|
-
controller.enqueue(
|
|
38
|
-
new TextEncoder().encode(JSON.parse(new TextDecoder().decode(chunk).slice('data: '.length)).response),
|
|
39
|
-
);
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
answer.pipeTo(writable);
|
|
43
|
-
return new Response(readable);
|
|
44
|
-
};
|
|
File without changes
|