@dxos/plugin-script 0.8.4-main.f9ba587 → 0.8.4-main.fd6878d

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 (150) hide show
  1. package/dist/lib/browser/{DeploymentDialog-RIGSJM6A.mjs → DeploymentDialog-C3XH2Z56.mjs} +4 -4
  2. package/dist/lib/browser/{ScriptContainer-BAN4WZHG.mjs → ScriptContainer-FUBR4OZE.mjs} +9 -7
  3. package/dist/lib/browser/ScriptContainer-FUBR4OZE.mjs.map +7 -0
  4. package/dist/lib/browser/{app-graph-builder-HLQ7K3BT.mjs → app-graph-builder-IABOSTBK.mjs} +2 -2
  5. package/dist/lib/{node-esm/app-graph-builder-7EYIHWH4.mjs.map → browser/app-graph-builder-IABOSTBK.mjs.map} +3 -3
  6. package/dist/lib/browser/{chunk-7CIKV2MG.mjs → chunk-G4A2MGAL.mjs} +9 -285
  7. package/dist/lib/browser/chunk-G4A2MGAL.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-EEL5O3IC.mjs → chunk-IS4OG2UW.mjs} +4 -5
  9. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-MWZDJNCQ.mjs +283 -0
  11. package/dist/lib/browser/chunk-MWZDJNCQ.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-QHVTSNHD.mjs → chunk-OAVS36Q3.mjs} +3 -3
  13. package/dist/lib/browser/chunk-OAVS36Q3.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-QYLAH5AK.mjs → chunk-OULPWKXN.mjs} +8 -10
  15. package/dist/lib/browser/{chunk-QYLAH5AK.mjs.map → chunk-OULPWKXN.mjs.map} +3 -3
  16. package/dist/lib/browser/{chunk-OORJVKHC.mjs → chunk-SUOLJH55.mjs} +2 -2
  17. package/dist/lib/browser/{chunk-OORJVKHC.mjs.map → chunk-SUOLJH55.mjs.map} +2 -2
  18. package/dist/lib/browser/{compiler-CXCUA4UQ.mjs → compiler-RIWQVBPX.mjs} +4 -1
  19. package/dist/lib/browser/compiler-RIWQVBPX.mjs.map +7 -0
  20. package/dist/lib/browser/index.mjs +15 -18
  21. package/dist/lib/browser/index.mjs.map +3 -3
  22. package/dist/lib/browser/{intent-resolver-HQRUYTML.mjs → intent-resolver-SAL2TM7U.mjs} +9 -10
  23. package/dist/lib/browser/intent-resolver-SAL2TM7U.mjs.map +7 -0
  24. package/dist/lib/browser/meta.json +1 -1
  25. package/dist/lib/browser/{react-surface-FNLARN5M.mjs → react-surface-E3SXU6ON.mjs} +8 -9
  26. package/dist/lib/browser/react-surface-E3SXU6ON.mjs.map +7 -0
  27. package/dist/lib/browser/{settings-XU54CGQD.mjs → settings-KCTBK5TY.mjs} +2 -2
  28. package/dist/lib/browser/templates/index.mjs +9 -0
  29. package/dist/lib/browser/types/index.mjs +10 -0
  30. package/dist/lib/node-esm/{DeploymentDialog-6Z7JH3VO.mjs → DeploymentDialog-O2XZVRLU.mjs} +4 -4
  31. package/dist/lib/node-esm/{ScriptContainer-RB5CSIZ7.mjs → ScriptContainer-VJ75TM24.mjs} +9 -7
  32. package/dist/lib/node-esm/ScriptContainer-VJ75TM24.mjs.map +7 -0
  33. package/dist/lib/node-esm/{app-graph-builder-7EYIHWH4.mjs → app-graph-builder-CQTTAYHP.mjs} +2 -2
  34. package/dist/lib/{browser/app-graph-builder-HLQ7K3BT.mjs.map → node-esm/app-graph-builder-CQTTAYHP.mjs.map} +3 -3
  35. package/dist/lib/node-esm/{chunk-ORZMINLO.mjs → chunk-3BBEM2U7.mjs} +9 -284
  36. package/dist/lib/node-esm/chunk-3BBEM2U7.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-HD6MDK3H.mjs → chunk-6WMFL3JL.mjs} +8 -10
  38. package/dist/lib/node-esm/{chunk-HD6MDK3H.mjs.map → chunk-6WMFL3JL.mjs.map} +3 -3
  39. package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs +284 -0
  40. package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs.map +7 -0
  41. package/dist/lib/node-esm/{chunk-YVJGDDNV.mjs → chunk-IO6T72KY.mjs} +3 -3
  42. package/dist/lib/node-esm/chunk-IO6T72KY.mjs.map +7 -0
  43. package/dist/lib/node-esm/{chunk-OVSJYR6O.mjs → chunk-JIPFLBYA.mjs} +4 -5
  44. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +7 -0
  45. package/dist/lib/node-esm/{chunk-ABAPR7VQ.mjs → chunk-PACUN7RS.mjs} +2 -2
  46. package/dist/lib/node-esm/{chunk-ABAPR7VQ.mjs.map → chunk-PACUN7RS.mjs.map} +2 -2
  47. package/dist/lib/node-esm/{compiler-EPFKQXPE.mjs → compiler-S52P5P3F.mjs} +4 -1
  48. package/dist/lib/node-esm/compiler-S52P5P3F.mjs.map +7 -0
  49. package/dist/lib/node-esm/index.mjs +15 -18
  50. package/dist/lib/node-esm/index.mjs.map +3 -3
  51. package/dist/lib/node-esm/{intent-resolver-XLV6FPWH.mjs → intent-resolver-GO53JOPL.mjs} +9 -10
  52. package/dist/lib/{browser/intent-resolver-HQRUYTML.mjs.map → node-esm/intent-resolver-GO53JOPL.mjs.map} +3 -3
  53. package/dist/lib/node-esm/meta.json +1 -1
  54. package/dist/lib/node-esm/{react-surface-BTYC7MGG.mjs → react-surface-W3NRCS5O.mjs} +8 -9
  55. package/dist/lib/node-esm/react-surface-W3NRCS5O.mjs.map +7 -0
  56. package/dist/lib/node-esm/{settings-QCMDG2MZ.mjs → settings-DXZ334A3.mjs} +2 -2
  57. package/dist/lib/node-esm/templates/index.mjs +10 -0
  58. package/dist/lib/node-esm/templates/index.mjs.map +7 -0
  59. package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -6
  60. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  61. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  64. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/index.d.ts +0 -1
  67. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  70. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  71. package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
  72. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
  73. package/dist/types/src/components/ScriptContainer.d.ts +3 -3
  74. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  75. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  76. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  77. package/dist/types/src/components/TestPanel/TestContainer.d.ts +1 -1
  78. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  79. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  80. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  81. package/dist/types/src/hooks/deploy.d.ts +2 -2
  82. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  83. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  84. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  85. package/dist/types/src/templates/index.d.ts +2 -0
  86. package/dist/types/src/templates/index.d.ts.map +1 -1
  87. package/dist/types/src/translations.d.ts +2 -0
  88. package/dist/types/src/translations.d.ts.map +1 -1
  89. package/dist/types/src/types/index.d.ts +2 -0
  90. package/dist/types/src/types/index.d.ts.map +1 -0
  91. package/dist/types/src/{types.d.ts → types/schema.d.ts} +3 -5
  92. package/dist/types/src/types/schema.d.ts.map +1 -0
  93. package/dist/types/tsconfig.tsbuildinfo +1 -1
  94. package/package.json +69 -58
  95. package/src/ScriptPlugin.tsx +2 -14
  96. package/src/capabilities/app-graph-builder.ts +2 -2
  97. package/src/capabilities/artifact-definition.ts +9 -12
  98. package/src/capabilities/compiler.ts +2 -1
  99. package/src/capabilities/index.ts +0 -1
  100. package/src/capabilities/intent-resolver.ts +2 -5
  101. package/src/capabilities/react-surface.tsx +4 -3
  102. package/src/compiler/compiler.ts +1 -1
  103. package/src/components/DeploymentDialog/DeploymentDialog.tsx +4 -4
  104. package/src/components/DeploymentDialog/index.ts +1 -1
  105. package/src/components/FrameContainer/frame.tsx +1 -1
  106. package/src/components/ScriptContainer.tsx +6 -4
  107. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +2 -1
  108. package/src/components/ScriptToolbar/ScriptToolbar.tsx +2 -2
  109. package/src/components/Settings/ScriptObjectSettings.tsx +2 -2
  110. package/src/components/TestPanel/TestContainer.tsx +4 -3
  111. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +2 -1
  112. package/src/components/TypescriptEditor/TypescriptEditor.tsx +3 -2
  113. package/src/hooks/deploy.ts +1 -1
  114. package/src/hooks/template.ts +1 -1
  115. package/src/hooks/useCreateAndDeployScriptTemplates.ts +1 -0
  116. package/src/templates/chess.ts +1 -1
  117. package/src/templates/data-generator.ts +8 -4
  118. package/src/templates/discord.ts +2 -2
  119. package/src/templates/forex-effect.ts +1 -1
  120. package/src/templates/forex.ts +1 -1
  121. package/src/templates/gmail.ts +4 -4
  122. package/src/templates/index.ts +2 -0
  123. package/src/translations.ts +2 -0
  124. package/src/types/index.ts +5 -0
  125. package/src/{types.ts → types/schema.ts} +2 -7
  126. package/dist/lib/browser/ScriptContainer-BAN4WZHG.mjs.map +0 -7
  127. package/dist/lib/browser/artifact-definition-KMBAZFRR.mjs +0 -249
  128. package/dist/lib/browser/artifact-definition-KMBAZFRR.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-7CIKV2MG.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-EEL5O3IC.mjs.map +0 -7
  131. package/dist/lib/browser/chunk-QHVTSNHD.mjs.map +0 -7
  132. package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
  133. package/dist/lib/browser/react-surface-FNLARN5M.mjs.map +0 -7
  134. package/dist/lib/browser/types.mjs +0 -13
  135. package/dist/lib/node-esm/ScriptContainer-RB5CSIZ7.mjs.map +0 -7
  136. package/dist/lib/node-esm/artifact-definition-EBLXG5AR.mjs +0 -250
  137. package/dist/lib/node-esm/artifact-definition-EBLXG5AR.mjs.map +0 -7
  138. package/dist/lib/node-esm/chunk-ORZMINLO.mjs.map +0 -7
  139. package/dist/lib/node-esm/chunk-OVSJYR6O.mjs.map +0 -7
  140. package/dist/lib/node-esm/chunk-YVJGDDNV.mjs.map +0 -7
  141. package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
  142. package/dist/lib/node-esm/intent-resolver-XLV6FPWH.mjs.map +0 -7
  143. package/dist/lib/node-esm/react-surface-BTYC7MGG.mjs.map +0 -7
  144. package/dist/types/src/types.d.ts.map +0 -1
  145. /package/dist/lib/browser/{DeploymentDialog-RIGSJM6A.mjs.map → DeploymentDialog-C3XH2Z56.mjs.map} +0 -0
  146. /package/dist/lib/browser/{settings-XU54CGQD.mjs.map → settings-KCTBK5TY.mjs.map} +0 -0
  147. /package/dist/lib/browser/{types.mjs.map → templates/index.mjs.map} +0 -0
  148. /package/dist/lib/{node-esm/DeploymentDialog-6Z7JH3VO.mjs.map → browser/types/index.mjs.map} +0 -0
  149. /package/dist/lib/node-esm/{types.mjs.map → DeploymentDialog-O2XZVRLU.mjs.map} +0 -0
  150. /package/dist/lib/node-esm/{settings-QCMDG2MZ.mjs.map → settings-DXZ334A3.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/functions.ts", "../../../src/util/deploy.ts", "../../../src/hooks/useCreateAndDeployScriptTemplates.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { getMeta, getSpace } from '@dxos/react-client/echo';\n\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: ScriptType;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n\n if (!existingFunctionUrl) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionUrl, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (script: ScriptType, storedFunction: any, meta: any, functionId: string) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n storedFunction.description = script.description;\n } else if (meta.description) {\n storedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n storedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n storedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport {\n FunctionType,\n type ScriptType,\n getUserFunctionUrlInMetadata,\n makeFunctionUrl,\n setUserFunctionUrlInMetadata,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: ScriptType; fn: any }): boolean => {\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionUrl) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: ScriptType;\n client: Client;\n space: Space;\n fn?: FunctionType;\n existingFunctionUrl?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionUrl?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionUrl,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const existingFunctionId = extractFunctionId(existingFunctionUrl);\n\n const { bundle, error } = await bundleScript(script.source!.target!.content);\n if (error || !bundle) {\n throw error || new Error('Bundle creation failed');\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n source: bundle,\n });\n\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);\n }\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);\n script.changed = false;\n updateFunctionMetadata(script, storedFunction, meta, functionId);\n\n const functionUrl = makeFunctionUrl({ functionId });\n setUserFunctionUrlInMetadata(Obj.getMeta(storedFunction), functionUrl);\n\n return { success: true, functionUrl };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: ScriptType, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst extractFunctionId = (functionUrl?: string): string | undefined => {\n return functionUrl?.split('/').at(-1);\n};\n\nconst bundleScript = async (source: string): Promise<{ bundle?: string; error?: Error }> => {\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source });\n\n if (buildResult.error || !buildResult.bundle) {\n return { error: buildResult.error || new Error('Bundle creation failed') };\n }\n\n return { bundle: buildResult.bundle };\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: FunctionType | undefined,\n script: ScriptType,\n functionId: string,\n version: string,\n): FunctionType => {\n if (fn) {\n fn.version = version;\n return fn;\n } else {\n return space.db.add(Obj.make(FunctionType, { name: functionId, version, source: Ref.make(script) }));\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect/Function';\nimport { useCallback, useState } from 'react';\n\nimport { chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type Template } from '../templates';\nimport { ScriptAction } from '../types';\nimport { deployScript } from '../util';\n\ntype DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * Hook for creating and deploying multiple script templates concurrently.\n *\n * Takes a space and an array of script template IDs, then provides a callback\n * function that creates each script from its template and deploys it to the space.\n * All creation / deployment operations run concurrently for improved performance.\n */\nexport const useCreateAndDeployScriptTemplates = (space: Space | undefined, scriptTemplates: Template[]) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const [status, setStatus] = useState<DeploymentStatus>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n\n const handleCreateAndDeployScripts = useCallback(async () => {\n invariant(space);\n setStatus('pending');\n setError(undefined);\n\n const deploymentResults = await Promise.all(\n scriptTemplates.map(async (template) => {\n const result = await dispatch(\n pipe(\n createIntent(ScriptAction.Create, { space, initialTemplateId: template.id }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n invariant(Obj.instanceOf(ScriptType, result.data?.object));\n\n return deployScript({ space, client, script: result.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, dispatch, client, scriptTemplates]);\n\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { getMeta, getSpace } from '@dxos/react-client/echo';\n\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: ScriptType;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n\n if (!existingFunctionUrl) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionUrl, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (script: ScriptType, storedFunction: any, meta: any, functionId: string) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n storedFunction.description = script.description;\n } else if (meta.description) {\n storedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n storedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n storedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport {\n FunctionType,\n type ScriptType,\n getUserFunctionUrlInMetadata,\n makeFunctionUrl,\n setUserFunctionUrlInMetadata,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: ScriptType; fn: any }): boolean => {\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionUrl) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: ScriptType;\n client: Client;\n space: Space;\n fn?: FunctionType;\n existingFunctionUrl?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionUrl?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionUrl,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const existingFunctionId = extractFunctionId(existingFunctionUrl);\n\n const { bundle, error } = await bundleScript(script.source!.target!.content);\n if (error || !bundle) {\n throw error || new Error('Bundle creation failed');\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n source: bundle,\n });\n\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);\n }\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);\n script.changed = false;\n updateFunctionMetadata(script, storedFunction, meta, functionId);\n\n const functionUrl = makeFunctionUrl({ functionId });\n setUserFunctionUrlInMetadata(Obj.getMeta(storedFunction), functionUrl);\n\n return { success: true, functionUrl };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: ScriptType, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst extractFunctionId = (functionUrl?: string): string | undefined => {\n return functionUrl?.split('/').at(-1);\n};\n\nconst bundleScript = async (source: string): Promise<{ bundle?: string; error?: Error }> => {\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source });\n\n if (buildResult.error || !buildResult.bundle) {\n return { error: buildResult.error || new Error('Bundle creation failed') };\n }\n\n return { bundle: buildResult.bundle };\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: FunctionType | undefined,\n script: ScriptType,\n functionId: string,\n version: string,\n): FunctionType => {\n if (fn) {\n fn.version = version;\n return fn;\n } else {\n return space.db.add(Obj.make(FunctionType, { name: functionId, version, source: Ref.make(script) }));\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect/Function';\nimport { useCallback, useState } from 'react';\n\nimport { chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type Template } from '../templates';\nimport { ScriptAction } from '../types';\nimport { deployScript } from '../util';\n\ntype DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * Hook for creating and deploying multiple script templates concurrently.\n *\n * Takes a space and an array of script template IDs, then provides a callback\n * function that creates each script from its template and deploys it to the space.\n * All creation / deployment operations run concurrently for improved performance.\n */\nexport const useCreateAndDeployScriptTemplates = (space: Space | undefined, scriptTemplates: Template[]) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const [status, setStatus] = useState<DeploymentStatus>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n\n const handleCreateAndDeployScripts = useCallback(async () => {\n invariant(space);\n setStatus('pending');\n setError(undefined);\n\n const deploymentResults = await Promise.all(\n scriptTemplates.map(async (template) => {\n const result = await dispatch(\n pipe(\n createIntent(ScriptAction.Create, { space, initialTemplateId: template.id }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n invariant(Obj.instanceOf(ScriptType, result.data?.object));\n\n return deployScript({ space, client, script: result.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, dispatch, client, scriptTemplates]);\n\n // TODO(burdon): Return onCreateAndDeployScripts.\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["getInvocationUrl", "getUserFunctionUrlInMetadata", "log", "getMeta", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionUrl", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "description", "trim", "verbose", "inputSchema", "outputSchema", "Obj", "Ref", "FunctionType", "getUserFunctionUrlInMetadata", "makeFunctionUrl", "setUserFunctionUrlInMetadata", "Bundler", "incrementSemverPatch", "uploadWorkerFunction", "log", "isScriptDeployed", "script", "fn", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "Obj", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "existingFunctionId", "extractFunctionId", "bundle", "bundleScript", "source", "target", "content", "Error", "functionId", "version", "meta", "uploadWorkerFunction", "ownerPublicKey", "key", "incrementSemverPatch", "undefined", "JSON", "stringify", "storedFunction", "createOrUpdateFunctionInSpace", "updateFunctionMetadata", "functionUrl", "makeFunctionUrl", "setUserFunctionUrlInMetadata", "err", "log", "catch", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "db", "add", "make", "FunctionType", "name", "Ref", "pipe", "useCallback", "useState", "chain", "createIntent", "useIntentDispatcher", "Obj", "ScriptType", "invariant", "SpaceAction", "useClient", "useCreateAndDeployScriptTemplates", "space", "scriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "status", "setStatus", "useState", "error", "setError", "undefined", "handleCreateAndDeployScripts", "useCallback", "invariant", "deploymentResults", "Promise", "all", "map", "template", "result", "pipe", "createIntent", "ScriptAction", "Create", "initialTemplateId", "id", "chain", "SpaceAction", "AddObject", "target", "Obj", "instanceOf", "ScriptType", "data", "object", "deployScript", "script", "hasErrors", "some", "success"]
7
7
  }
@@ -22,6 +22,9 @@ var defaultOptions = {
22
22
  target: ts.ScriptTarget.ES2022
23
23
  };
24
24
  var Compiler = class {
25
+ _options;
26
+ _env;
27
+ _fsMap;
25
28
  constructor(_options = defaultOptions) {
26
29
  this._options = _options;
27
30
  }
@@ -80,4 +83,4 @@ var compiler_default = async () => {
80
83
  export {
81
84
  compiler_default as default
82
85
  };
83
- //# sourceMappingURL=compiler-EPFKQXPE.mjs.map
86
+ //# sourceMappingURL=compiler-S52P5P3F.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/compiler.ts", "../../../src/compiler/compiler.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @ts-ignore\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\n\nimport { contributes } from '@dxos/app-framework';\nimport { initializeBundler } from '@dxos/functions/bundler';\n\nimport { Compiler } from '../compiler';\n\nimport { ScriptCapabilities } from './capabilities';\n\nexport default async () => {\n const compiler = new Compiler();\n\n await compiler.initialize();\n // TODO(wittjosiah): Fetch types for https modules.\n compiler.setFile('/src/typings.d.ts', \"declare module 'https://*';\");\n // TODO(wittjosiah): Proper function handler types.\n // TODO(wittjosiah): Remove.\n compiler.setFile(\n '/src/runtime.ts',\n `\n export const Filter: any = {};\n export type FunctionHandler = ({ event, context }: { event: any; context: any }) => Promise<Response>;\n export const functionHandler = (handler: FunctionHandler) => handler;\n `,\n );\n await initializeBundler({ wasmUrl });\n\n return contributes(ScriptCapabilities.Compiler, compiler);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n type VirtualTypeScriptEnvironment,\n createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n} from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nconst defaultOptions: ts.CompilerOptions = {\n lib: ['DOM', 'es2022'],\n target: ts.ScriptTarget.ES2022,\n};\n\nexport class Compiler {\n private _env: VirtualTypeScriptEnvironment | undefined;\n private _fsMap: Map<string, string> | undefined;\n\n constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}\n\n async initialize(): Promise<void> {\n if (this._env) {\n return;\n }\n\n // TODO(wittjosiah): Figure out how to get workers working in plugin packages.\n // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker\n this._fsMap = await createDefaultMapFromCDN(this._options, '5.5.4', true, ts);\n const system = createSystem(this._fsMap);\n this._env = createVirtualTypeScriptEnvironment(system, [], ts, this._options);\n }\n\n get environment() {\n invariant(this._env, 'Compiler environment not initialized.');\n return this._env;\n }\n\n setFile(fileName: string, content: string): void {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string): ts.EmitOutput {\n return this.environment.languageService.getEmitOutput(fileName);\n }\n}\n"],
5
+ "mappings": ";;;;;;;AAKA,OAAOA,aAAa;AAEpB,SAASC,mBAAmB;AAC5B,SAASC,yBAAyB;;;ACJlC,SAEEC,yBACAC,cACAC,0CACK;AACP,OAAOC,QAAQ;AAEf,SAASC,iBAAiB;;AAE1B,IAAMC,iBAAqC;EACzCC,KAAK;IAAC;IAAO;;EACbC,QAAQJ,GAAGK,aAAaC;AAC1B;AAEO,IAAMC,WAAN,MAAMA;;EACHC;EACAC;EAER,YAA6BC,WAA+BR,gBAAgB;SAA/CQ,WAAAA;EAAgD;EAE7E,MAAMC,aAA4B;AAChC,QAAI,KAAKH,MAAM;AACb;IACF;AAIA,SAAKC,SAAS,MAAMZ,wBAAwB,KAAKa,UAAU,SAAS,MAAMV,EAAAA;AAC1E,UAAMY,SAASd,aAAa,KAAKW,MAAM;AACvC,SAAKD,OAAOT,mCAAmCa,QAAQ,CAAA,GAAIZ,IAAI,KAAKU,QAAQ;EAC9E;EAEA,IAAIG,cAAc;AAChBZ,cAAU,KAAKO,MAAM,yCAAA;;;;;;;;;AACrB,WAAO,KAAKA;EACd;EAEAM,QAAQC,UAAkBC,SAAuB;AAC/Cf,cAAU,KAAKQ,QAAQ,oCAAA;;;;;;;;;AACvB,SAAKI,YAAYI,WAAWF,UAAUC,OAAAA;EACxC;EAEAE,QAAQH,UAAiC;AACvC,WAAO,KAAKF,YAAYM,gBAAgBC,cAAcL,QAAAA;EACxD;AACF;;;ADpCA,IAAA,mBAAe,YAAA;AACb,QAAMM,WAAW,IAAIC,SAAAA;AAErB,QAAMD,SAASE,WAAU;AAEzBF,WAASG,QAAQ,qBAAqB,6BAAA;AAGtCH,WAASG,QACP,mBACA;;;;OAIG;AAEL,QAAMC,kBAAkB;IAAEC;EAAQ,CAAA;AAElC,SAAOC,YAAYC,mBAAmBN,UAAUD,QAAAA;AAClD;",
6
+ "names": ["wasmUrl", "contributes", "initializeBundler", "createDefaultMapFromCDN", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "defaultOptions", "lib", "target", "ScriptTarget", "ES2022", "Compiler", "_env", "_fsMap", "_options", "initialize", "system", "environment", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "compiler", "Compiler", "initialize", "setFile", "initializeBundler", "wasmUrl", "contributes", "ScriptCapabilities"]
7
+ }
@@ -10,15 +10,16 @@ import {
10
10
  ScriptProperties,
11
11
  TestContainer,
12
12
  TestPanel
13
- } from "./chunk-HD6MDK3H.mjs";
13
+ } from "./chunk-6WMFL3JL.mjs";
14
14
  import {
15
15
  DEPLOYMENT_DIALOG
16
- } from "./chunk-YVJGDDNV.mjs";
17
- import "./chunk-ORZMINLO.mjs";
18
- import "./chunk-ABAPR7VQ.mjs";
16
+ } from "./chunk-IO6T72KY.mjs";
17
+ import "./chunk-7L4JDSXJ.mjs";
18
+ import "./chunk-3BBEM2U7.mjs";
19
+ import "./chunk-PACUN7RS.mjs";
19
20
  import {
20
21
  ScriptAction
21
- } from "./chunk-OVSJYR6O.mjs";
22
+ } from "./chunk-JIPFLBYA.mjs";
22
23
  import {
23
24
  SCRIPT_PLUGIN,
24
25
  defaultScriptsForIntegration,
@@ -27,16 +28,15 @@ import {
27
28
 
28
29
  // src/capabilities/index.ts
29
30
  import { lazy } from "@dxos/app-framework";
30
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-7EYIHWH4.mjs"));
31
- var ArtifactDefinition = lazy(() => import("./artifact-definition-EBLXG5AR.mjs"));
32
- var Compiler = lazy(() => import("./compiler-EPFKQXPE.mjs"));
33
- var IntentResolver = lazy(() => import("./intent-resolver-XLV6FPWH.mjs"));
34
- var ReactSurface = lazy(() => import("./react-surface-BTYC7MGG.mjs"));
35
- var ScriptSettings = lazy(() => import("./settings-QCMDG2MZ.mjs"));
31
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-CQTTAYHP.mjs"));
32
+ var Compiler = lazy(() => import("./compiler-S52P5P3F.mjs"));
33
+ var IntentResolver = lazy(() => import("./intent-resolver-GO53JOPL.mjs"));
34
+ var ReactSurface = lazy(() => import("./react-surface-W3NRCS5O.mjs"));
35
+ var ScriptSettings = lazy(() => import("./settings-DXZ334A3.mjs"));
36
36
 
37
37
  // src/ScriptPlugin.tsx
38
38
  import { Schema } from "effect";
39
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
39
+ import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
40
40
  import { Ref } from "@dxos/echo";
41
41
  import { ScriptType as ScriptType2 } from "@dxos/functions";
42
42
  import { ClientEvents } from "@dxos/plugin-client";
@@ -60,7 +60,9 @@ var translations = [
60
60
  "typename label_zero": "Scripts",
61
61
  "typename label_one": "Script",
62
62
  "typename label_other": "Scripts",
63
- "object name placeholder": "New script"
63
+ "object name placeholder": "New script",
64
+ "rename object label": "Rename script",
65
+ "delete object label": "Delete script"
64
66
  },
65
67
  [meta.id]: {
66
68
  "plugin name": "Scripts",
@@ -182,11 +184,6 @@ var ScriptPlugin = () => definePlugin(meta, [
182
184
  id: `${meta.id}/module/intent-resolver`,
183
185
  activatesOn: Events.SetupIntentResolver,
184
186
  activate: IntentResolver
185
- }),
186
- defineModule({
187
- id: `${meta.id}/module/artifact-definition`,
188
- activatesOn: Events.SetupArtifactDefinition,
189
- activate: ArtifactDefinition
190
187
  })
191
188
  ]);
192
189
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/index.ts", "../../../src/ScriptPlugin.tsx", "../../../src/events.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const ArtifactDefinition = lazy(() => import('./artifact-definition'));\nexport const Compiler = lazy(() => import('./compiler'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const ScriptSettings = lazy(() => import('./settings'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\n\nimport {\n AppGraphBuilder,\n ArtifactDefinition,\n Compiler,\n IntentResolver,\n ReactSurface,\n ScriptSettings,\n} from './capabilities';\nimport { ScriptEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { ScriptAction } from './types';\n\nexport const ScriptPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: ScriptSettings,\n }),\n defineModule({\n id: `${meta.id}/module/compiler`,\n activatesOn: ScriptEvents.SetupCompiler,\n activate: Compiler,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: ScriptType.typename,\n metadata: {\n icon: 'ph--code--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (script: ScriptType) => await Ref.Array.loadAll([script.source]),\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: ScriptType,\n formSchema: ScriptAction.CreateScriptSchema.pipe(Schema.omit('initialTemplateId')),\n getIntent: (props, options) => createIntent(ScriptAction.Create, { ...props, space: options.space }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the script editor is loaded when surfaces activation is more granular.\n activatesBefore: [ScriptEvents.SetupCompiler],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/artifact-definition`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: ArtifactDefinition,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent } from '@dxos/app-framework';\n\nimport { SCRIPT_PLUGIN } from './meta';\n\nexport namespace ScriptEvents {\n export const SetupCompiler = defineEvent(`${SCRIPT_PLUGIN}/event/setup-compiler`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptType } from '@dxos/functions';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [ScriptType.typename]: {\n 'typename label': 'Script',\n 'typename label_zero': 'Scripts',\n 'typename label_one': 'Script',\n 'typename label_other': 'Scripts',\n 'object name placeholder': 'New script',\n },\n [meta.id]: {\n 'plugin name': 'Scripts',\n 'description label': 'Description',\n 'description placeholder': 'Enter description',\n 'binding placeholder': 'Function name',\n 'function request placeholder': 'Function request',\n 'deploy label': 'Deploy',\n 'deployed label': 'Current version of the script is deployed',\n 'upload failed label': 'Upload failed',\n 'copy link label': 'Copy function link',\n 'format label': 'Format',\n 'toggle details label': 'Toggle details panel',\n 'authenticate action label': 'Authenticate functions service',\n 'authenticate button label': 'Authenticate',\n 'name label': 'Name',\n 'remote function settings heading': 'Remote Function',\n 'function url label': 'Invocation URL',\n 'function binding label': 'Function binding',\n 'function binding placeholder': 'Enter binding name (e.g., NAME)',\n 'script publish settings label': 'Publishing',\n 'script publish settings description': 'Scripts can be shared publicly as Github gists.',\n 'no github token label': 'This space has no GitHub access token available.',\n 'open token manager label': 'Open Token Manager',\n 'publish label': 'Publish',\n 'publishing label': 'Publishing',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'template select group label': 'Select template',\n 'function panel label': 'Debug Function',\n 'script test label': 'Test',\n 'script logs label': 'Logs',\n 'deployment dialog title': 'Default Scripts',\n 'deployment dialog scripts found message_one':\n 'We found the following script template for your new integration:',\n 'deployment dialog scripts found message_other':\n 'We found the following script templates for your new integration:',\n 'deployment dialog deploy functions button label_one': 'Create and deploy script',\n 'deployment dialog deploy functions button label_other': 'Create and deploy scripts',\n 'deployment dialog deploy functions pending button label_one': 'Deploying script',\n 'deployment dialog deploy functions pending button label_other': 'Deploying scripts',\n 'deployment dialog skip button label': 'Skip',\n 'script deployment toast label_one': 'Script deployed',\n 'script deployment toast label_other': 'Scripts deployed',\n 'script deployment toast description_one': 'Your script has been deployed successfully.',\n 'script deployment toast description_other': 'Your scripts have been deployed successfully.',\n 'script deployment toast close label_one': 'Close',\n 'script deployment toast close label_other': 'Close',\n 'script deployment error toast label_one': 'Script deployment failed',\n 'script deployment error toast label_other': 'Scripts deployment failed',\n 'script deployment error toast description_one': 'There was an error deploying your script.',\n 'script deployment error toast description_other': 'There was an error deploying your scripts.',\n 'script deployment error toast close label_one': 'Close',\n 'script deployment error toast close label_other': 'Close',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": "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",
6
- "names": ["lazy", "AppGraphBuilder", "lazy", "ArtifactDefinition", "Compiler", "IntentResolver", "ReactSurface", "ScriptSettings", "Schema", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "Ref", "ScriptType", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "defineEvent", "ScriptEvents", "SetupCompiler", "defineEvent", "SCRIPT_PLUGIN", "ScriptType", "translations", "ScriptType", "typename", "meta", "id", "ScriptPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "ScriptSettings", "ScriptEvents", "SetupCompiler", "Compiler", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "SetupMetadata", "Metadata", "ScriptType", "typename", "metadata", "icon", "loadReferences", "script", "Ref", "Array", "loadAll", "source", "SetupAppGraph", "AppGraphBuilder", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "ScriptAction", "CreateScriptSchema", "pipe", "Schema", "omit", "getIntent", "props", "options", "createIntent", "Create", "space", "SetupReactSurface", "activatesBefore", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupArtifactDefinition", "ArtifactDefinition"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const Compiler = lazy(() => import('./compiler'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const ScriptSettings = lazy(() => import('./settings'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\n\nimport { AppGraphBuilder, Compiler, IntentResolver, ReactSurface, ScriptSettings } from './capabilities';\nimport { ScriptEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { ScriptAction } from './types';\n\nexport const ScriptPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: ScriptSettings,\n }),\n defineModule({\n id: `${meta.id}/module/compiler`,\n activatesOn: ScriptEvents.SetupCompiler,\n activate: Compiler,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: ScriptType.typename,\n metadata: {\n icon: 'ph--code--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (script: ScriptType) => await Ref.Array.loadAll([script.source]),\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: ScriptType,\n formSchema: ScriptAction.CreateScriptSchema.pipe(Schema.omit('initialTemplateId')),\n getIntent: (props, options) => createIntent(ScriptAction.Create, { ...props, space: options.space }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the script editor is loaded when surfaces activation is more granular.\n activatesBefore: [ScriptEvents.SetupCompiler],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent } from '@dxos/app-framework';\n\nimport { SCRIPT_PLUGIN } from './meta';\n\nexport namespace ScriptEvents {\n export const SetupCompiler = defineEvent(`${SCRIPT_PLUGIN}/event/setup-compiler`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptType } from '@dxos/functions';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [ScriptType.typename]: {\n 'typename label': 'Script',\n 'typename label_zero': 'Scripts',\n 'typename label_one': 'Script',\n 'typename label_other': 'Scripts',\n 'object name placeholder': 'New script',\n 'rename object label': 'Rename script',\n 'delete object label': 'Delete script',\n },\n [meta.id]: {\n 'plugin name': 'Scripts',\n 'description label': 'Description',\n 'description placeholder': 'Enter description',\n 'binding placeholder': 'Function name',\n 'function request placeholder': 'Function request',\n 'deploy label': 'Deploy',\n 'deployed label': 'Current version of the script is deployed',\n 'upload failed label': 'Upload failed',\n 'copy link label': 'Copy function link',\n 'format label': 'Format',\n 'toggle details label': 'Toggle details panel',\n 'authenticate action label': 'Authenticate functions service',\n 'authenticate button label': 'Authenticate',\n 'name label': 'Name',\n 'remote function settings heading': 'Remote Function',\n 'function url label': 'Invocation URL',\n 'function binding label': 'Function binding',\n 'function binding placeholder': 'Enter binding name (e.g., NAME)',\n 'script publish settings label': 'Publishing',\n 'script publish settings description': 'Scripts can be shared publicly as Github gists.',\n 'no github token label': 'This space has no GitHub access token available.',\n 'open token manager label': 'Open Token Manager',\n 'publish label': 'Publish',\n 'publishing label': 'Publishing',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'template select group label': 'Select template',\n 'function panel label': 'Debug Function',\n 'script test label': 'Test',\n 'script logs label': 'Logs',\n 'deployment dialog title': 'Default Scripts',\n 'deployment dialog scripts found message_one':\n 'We found the following script template for your new integration:',\n 'deployment dialog scripts found message_other':\n 'We found the following script templates for your new integration:',\n 'deployment dialog deploy functions button label_one': 'Create and deploy script',\n 'deployment dialog deploy functions button label_other': 'Create and deploy scripts',\n 'deployment dialog deploy functions pending button label_one': 'Deploying script',\n 'deployment dialog deploy functions pending button label_other': 'Deploying scripts',\n 'deployment dialog skip button label': 'Skip',\n 'script deployment toast label_one': 'Script deployed',\n 'script deployment toast label_other': 'Scripts deployed',\n 'script deployment toast description_one': 'Your script has been deployed successfully.',\n 'script deployment toast description_other': 'Your scripts have been deployed successfully.',\n 'script deployment toast close label_one': 'Close',\n 'script deployment toast close label_other': 'Close',\n 'script deployment error toast label_one': 'Script deployment failed',\n 'script deployment error toast label_other': 'Scripts deployment failed',\n 'script deployment error toast description_one': 'There was an error deploying your script.',\n 'script deployment error toast description_other': 'There was an error deploying your scripts.',\n 'script deployment error toast close label_one': 'Close',\n 'script deployment error toast close label_other': 'Close',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": "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",
6
+ "names": ["lazy", "AppGraphBuilder", "lazy", "Compiler", "IntentResolver", "ReactSurface", "ScriptSettings", "Schema", "Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "ScriptType", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "defineEvent", "ScriptEvents", "SetupCompiler", "defineEvent", "SCRIPT_PLUGIN", "ScriptType", "translations", "ScriptType", "typename", "meta", "id", "ScriptPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "ScriptSettings", "ScriptEvents", "SetupCompiler", "Compiler", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "SetupMetadata", "Metadata", "ScriptType", "typename", "metadata", "icon", "loadReferences", "script", "Ref", "Array", "loadAll", "source", "SetupAppGraph", "AppGraphBuilder", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "ScriptAction", "CreateScriptSchema", "pipe", "Schema", "omit", "getIntent", "props", "options", "createIntent", "Create", "space", "SetupReactSurface", "activatesBefore", "ReactSurface", "SetupIntentResolver", "IntentResolver"]
7
7
  }
@@ -1,15 +1,16 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import "./chunk-HD6MDK3H.mjs";
2
+ import "./chunk-6WMFL3JL.mjs";
3
3
  import {
4
4
  DEPLOYMENT_DIALOG
5
- } from "./chunk-YVJGDDNV.mjs";
5
+ } from "./chunk-IO6T72KY.mjs";
6
+ import "./chunk-7L4JDSXJ.mjs";
6
7
  import {
7
8
  templates
8
- } from "./chunk-ORZMINLO.mjs";
9
- import "./chunk-ABAPR7VQ.mjs";
9
+ } from "./chunk-3BBEM2U7.mjs";
10
+ import "./chunk-PACUN7RS.mjs";
10
11
  import {
11
12
  ScriptAction
12
- } from "./chunk-OVSJYR6O.mjs";
13
+ } from "./chunk-JIPFLBYA.mjs";
13
14
  import {
14
15
  defaultScriptsForIntegration
15
16
  } from "./chunk-AHXJ6NQU.mjs";
@@ -17,7 +18,7 @@ import {
17
18
  // src/capabilities/intent-resolver.ts
18
19
  import { Octokit } from "@octokit/core";
19
20
  import { Predicate } from "effect";
20
- import { contributes, Capabilities, createResolver, createIntent, LayoutAction } from "@dxos/app-framework";
21
+ import { Capabilities, LayoutAction, contributes, createIntent, createResolver } from "@dxos/app-framework";
21
22
  import { Obj, Ref } from "@dxos/echo";
22
23
  import { ScriptType } from "@dxos/functions";
23
24
  import { TokenManagerAction } from "@dxos/plugin-token-manager/types";
@@ -49,9 +50,7 @@ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
49
50
  data: {
50
51
  object: Obj.make(ScriptType, {
51
52
  name,
52
- source: Ref.make(Obj.make(DataType.Text, {
53
- content
54
- }))
53
+ source: Ref.make(DataType.makeText(content))
55
54
  })
56
55
  }
57
56
  };
@@ -88,4 +87,4 @@ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
88
87
  export {
89
88
  intent_resolver_default as default
90
89
  };
91
- //# sourceMappingURL=intent-resolver-XLV6FPWH.mjs.map
90
+ //# sourceMappingURL=intent-resolver-GO53JOPL.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport { Predicate } from 'effect';\n\nimport { contributes, Capabilities, createResolver, createIntent, LayoutAction } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { TokenManagerAction } from '@dxos/plugin-token-manager/types';\nimport { DataType } from '@dxos/schema';\n\nimport { DEPLOYMENT_DIALOG } from '../components';\nimport { defaultScriptsForIntegration } from '../meta';\nimport { templates } from '../templates';\nimport { ScriptAction } from '../types';\n\nexport default () =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ScriptAction.Create,\n resolve: async ({ name, gistUrl, initialTemplateId }) => {\n let content = templates[0].source;\n\n const gistId = gistUrl?.split('/').at(-1);\n if (gistId) {\n // TODO(wittjosiah): Capability which contributes Octokit?\n // NOTE: AccessToken not needed to read public gists.\n const octokit = new Octokit();\n const response = await octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n });\n const gistContent = Object.values(response.data.files ?? {})[0]?.content;\n if (gistContent) {\n content = gistContent;\n }\n }\n\n if (initialTemplateId) {\n const template = templates.find((template) => template.id === initialTemplateId);\n if (template) {\n content = template.source;\n name = template.name;\n }\n }\n\n return {\n data: {\n object: Obj.make(ScriptType, {\n name,\n source: Ref.make(Obj.make(DataType.Text, { content })),\n }),\n },\n };\n },\n }),\n createResolver({\n intent: TokenManagerAction.AccessTokenCreated,\n resolve: async ({ accessToken }) => {\n const scriptTemplates = (defaultScriptsForIntegration[accessToken.source] ?? [])\n .map((id) => templates.find((t) => t.id === id))\n .filter(Predicate.isNotNullable);\n\n if (scriptTemplates.length > 0) {\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: DEPLOYMENT_DIALOG,\n options: { blockAlign: 'start', state: true, props: { accessToken, scriptTemplates } },\n }),\n ],\n };\n }\n\n return { data: undefined };\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAIA,SAASA,eAAe;AACxB,SAASC,iBAAiB;AAE1B,SAASC,aAAaC,cAAcC,gBAAgBC,cAAcC,oBAAoB;AACtF,SAASC,KAAKC,WAAW;AACzB,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AAOzB,IAAA,0BAAe,MACbC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,OAAO,EAAEC,MAAMC,SAASC,kBAAiB,MAAE;AAClD,UAAIC,UAAUC,UAAU,CAAA,EAAGC;AAE3B,YAAMC,SAASL,SAASM,MAAM,GAAA,EAAKC,GAAG,EAAC;AACvC,UAAIF,QAAQ;AAGV,cAAMG,UAAU,IAAIC,QAAAA;AACpB,cAAMC,WAAW,MAAMF,QAAQG,QAAQ,wBAAwB;UAC7DC,SAASP;QACX,CAAA;AACA,cAAMQ,cAAcC,OAAOC,OAAOL,SAASM,KAAKC,SAAS,CAAC,CAAA,EAAG,CAAA,GAAIf;AACjE,YAAIW,aAAa;AACfX,oBAAUW;QACZ;MACF;AAEA,UAAIZ,mBAAmB;AACrB,cAAMiB,WAAWf,UAAUgB,KAAK,CAACD,cAAaA,UAASE,OAAOnB,iBAAAA;AAC9D,YAAIiB,UAAU;AACZhB,oBAAUgB,SAASd;AACnBL,iBAAOmB,SAASnB;QAClB;MACF;AAEA,aAAO;QACLiB,MAAM;UACJK,QAAQC,IAAIC,KAAKC,YAAY;YAC3BzB;YACAK,QAAQqB,IAAIF,KAAKD,IAAIC,KAAKG,SAASC,MAAM;cAAEzB;YAAQ,CAAA,CAAA;UACrD,CAAA;QACF;MACF;IACF;EACF,CAAA;EACAR,eAAe;IACbC,QAAQiC,mBAAmBC;IAC3B/B,SAAS,OAAO,EAAEgC,YAAW,MAAE;AAC7B,YAAMC,mBAAmBC,6BAA6BF,YAAY1B,MAAM,KAAK,CAAA,GAC1E6B,IAAI,CAACb,OAAOjB,UAAUgB,KAAK,CAACe,MAAMA,EAAEd,OAAOA,EAAAA,CAAAA,EAC3Ce,OAAOC,UAAUC,aAAa;AAEjC,UAAIN,gBAAgBO,SAAS,GAAG;AAC9B,eAAO;UACLC,SAAS;YACPC,aAAaC,aAAaC,cAAc;cACtCC,MAAM;cACNC,SAASC;cACTC,SAAS;gBAAEC,YAAY;gBAASC,OAAO;gBAAMC,OAAO;kBAAEnB;kBAAaC;gBAAgB;cAAE;YACvF,CAAA;;QAEJ;MACF;AAEA,aAAO;QAAEf,MAAMkC;MAAU;IAC3B;EACF,CAAA;CACD;",
6
- "names": ["Octokit", "Predicate", "contributes", "Capabilities", "createResolver", "createIntent", "LayoutAction", "Obj", "Ref", "ScriptType", "TokenManagerAction", "DataType", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ScriptAction", "Create", "resolve", "name", "gistUrl", "initialTemplateId", "content", "templates", "source", "gistId", "split", "at", "octokit", "Octokit", "response", "request", "gist_id", "gistContent", "Object", "values", "data", "files", "template", "find", "id", "object", "Obj", "make", "ScriptType", "Ref", "DataType", "Text", "TokenManagerAction", "AccessTokenCreated", "accessToken", "scriptTemplates", "defaultScriptsForIntegration", "map", "t", "filter", "Predicate", "isNotNullable", "length", "intents", "createIntent", "LayoutAction", "UpdateDialog", "part", "subject", "DEPLOYMENT_DIALOG", "options", "blockAlign", "state", "props", "undefined"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport { Predicate } from 'effect';\n\nimport { Capabilities, LayoutAction, contributes, createIntent, createResolver } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { TokenManagerAction } from '@dxos/plugin-token-manager/types';\nimport { DataType } from '@dxos/schema';\n\nimport { DEPLOYMENT_DIALOG } from '../components';\nimport { defaultScriptsForIntegration } from '../meta';\nimport { templates } from '../templates';\nimport { ScriptAction } from '../types';\n\nexport default () =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ScriptAction.Create,\n resolve: async ({ name, gistUrl, initialTemplateId }) => {\n let content = templates[0].source;\n\n const gistId = gistUrl?.split('/').at(-1);\n if (gistId) {\n // TODO(wittjosiah): Capability which contributes Octokit?\n // NOTE: AccessToken not needed to read public gists.\n const octokit = new Octokit();\n const response = await octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n });\n const gistContent = Object.values(response.data.files ?? {})[0]?.content;\n if (gistContent) {\n content = gistContent;\n }\n }\n\n if (initialTemplateId) {\n const template = templates.find((template) => template.id === initialTemplateId);\n if (template) {\n content = template.source;\n name = template.name;\n }\n }\n\n return {\n data: {\n object: Obj.make(ScriptType, { name, source: Ref.make(DataType.makeText(content)) }),\n },\n };\n },\n }),\n createResolver({\n intent: TokenManagerAction.AccessTokenCreated,\n resolve: async ({ accessToken }) => {\n const scriptTemplates = (defaultScriptsForIntegration[accessToken.source] ?? [])\n .map((id) => templates.find((t) => t.id === id))\n .filter(Predicate.isNotNullable);\n\n if (scriptTemplates.length > 0) {\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: DEPLOYMENT_DIALOG,\n options: { blockAlign: 'start', state: true, props: { accessToken, scriptTemplates } },\n }),\n ],\n };\n }\n\n return { data: undefined };\n },\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAIA,SAASA,eAAe;AACxB,SAASC,iBAAiB;AAE1B,SAASC,cAAcC,cAAcC,aAAaC,cAAcC,sBAAsB;AACtF,SAASC,KAAKC,WAAW;AACzB,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AAOzB,IAAA,0BAAe,MACbC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,OAAO,EAAEC,MAAMC,SAASC,kBAAiB,MAAE;AAClD,UAAIC,UAAUC,UAAU,CAAA,EAAGC;AAE3B,YAAMC,SAASL,SAASM,MAAM,GAAA,EAAKC,GAAG,EAAC;AACvC,UAAIF,QAAQ;AAGV,cAAMG,UAAU,IAAIC,QAAAA;AACpB,cAAMC,WAAW,MAAMF,QAAQG,QAAQ,wBAAwB;UAC7DC,SAASP;QACX,CAAA;AACA,cAAMQ,cAAcC,OAAOC,OAAOL,SAASM,KAAKC,SAAS,CAAC,CAAA,EAAG,CAAA,GAAIf;AACjE,YAAIW,aAAa;AACfX,oBAAUW;QACZ;MACF;AAEA,UAAIZ,mBAAmB;AACrB,cAAMiB,WAAWf,UAAUgB,KAAK,CAACD,cAAaA,UAASE,OAAOnB,iBAAAA;AAC9D,YAAIiB,UAAU;AACZhB,oBAAUgB,SAASd;AACnBL,iBAAOmB,SAASnB;QAClB;MACF;AAEA,aAAO;QACLiB,MAAM;UACJK,QAAQC,IAAIC,KAAKC,YAAY;YAAEzB;YAAMK,QAAQqB,IAAIF,KAAKG,SAASC,SAASzB,OAAAA,CAAAA;UAAU,CAAA;QACpF;MACF;IACF;EACF,CAAA;EACAR,eAAe;IACbC,QAAQiC,mBAAmBC;IAC3B/B,SAAS,OAAO,EAAEgC,YAAW,MAAE;AAC7B,YAAMC,mBAAmBC,6BAA6BF,YAAY1B,MAAM,KAAK,CAAA,GAC1E6B,IAAI,CAACb,OAAOjB,UAAUgB,KAAK,CAACe,MAAMA,EAAEd,OAAOA,EAAAA,CAAAA,EAC3Ce,OAAOC,UAAUC,aAAa;AAEjC,UAAIN,gBAAgBO,SAAS,GAAG;AAC9B,eAAO;UACLC,SAAS;YACPC,aAAaC,aAAaC,cAAc;cACtCC,MAAM;cACNC,SAASC;cACTC,SAAS;gBAAEC,YAAY;gBAASC,OAAO;gBAAMC,OAAO;kBAAEnB;kBAAaC;gBAAgB;cAAE;YACvF,CAAA;;QAEJ;MACF;AAEA,aAAO;QAAEf,MAAMkC;MAAU;IAC3B;EACF,CAAA;CACD;",
6
+ "names": ["Octokit", "Predicate", "Capabilities", "LayoutAction", "contributes", "createIntent", "createResolver", "Obj", "Ref", "ScriptType", "TokenManagerAction", "DataType", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ScriptAction", "Create", "resolve", "name", "gistUrl", "initialTemplateId", "content", "templates", "source", "gistId", "split", "at", "octokit", "Octokit", "response", "request", "gist_id", "gistContent", "Object", "values", "data", "files", "template", "find", "id", "object", "Obj", "make", "ScriptType", "Ref", "DataType", "makeText", "TokenManagerAction", "AccessTokenCreated", "accessToken", "scriptTemplates", "defaultScriptsForIntegration", "map", "t", "filter", "Predicate", "isNotNullable", "length", "intents", "createIntent", "LayoutAction", "UpdateDialog", "part", "subject", "DEPLOYMENT_DIALOG", "options", "blockAlign", "state", "props", "undefined"]
7
7
  }