@dxos/plugin-script 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb

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 (164) hide show
  1. package/dist/lib/browser/{DeploymentDialog-GXNRUXF6.mjs → DeploymentDialog-XUAFCNI7.mjs} +5 -5
  2. package/dist/lib/browser/{NotebookContainer-4MM2VAQF.mjs → NotebookContainer-AXYJZEYZ.mjs} +13 -13
  3. package/dist/lib/browser/NotebookContainer-AXYJZEYZ.mjs.map +7 -0
  4. package/dist/lib/browser/{ScriptContainer-X6GCYZZW.mjs → ScriptContainer-NB76645V.mjs} +5 -5
  5. package/dist/lib/browser/ScriptContainer-NB76645V.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-7VO7AUI6.mjs → app-graph-builder-66ZDI72K.mjs} +4 -3
  7. package/dist/lib/browser/app-graph-builder-66ZDI72K.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-YMZEJBAZ.mjs +17 -0
  9. package/dist/lib/browser/blueprint-definition-YMZEJBAZ.mjs.map +7 -0
  10. package/dist/lib/browser/blueprints/index.mjs +3 -3
  11. package/dist/lib/browser/{chunk-3O2DQGCP.mjs → chunk-3BSF5BIA.mjs} +4 -4
  12. package/dist/lib/browser/{chunk-3O2DQGCP.mjs.map → chunk-3BSF5BIA.mjs.map} +3 -3
  13. package/dist/lib/browser/{chunk-UX4GHJ5E.mjs → chunk-4N5TLXEJ.mjs} +4 -4
  14. package/dist/lib/browser/chunk-4N5TLXEJ.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-BTWHM6FH.mjs → chunk-BKGEAUUH.mjs} +3 -3
  16. package/dist/lib/browser/{chunk-BTWHM6FH.mjs.map → chunk-BKGEAUUH.mjs.map} +2 -2
  17. package/dist/lib/browser/{chunk-IQRLM6JK.mjs → chunk-BU6CGVU2.mjs} +8 -8
  18. package/dist/lib/browser/chunk-BU6CGVU2.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-F3QKSKSF.mjs → chunk-TW27W3EL.mjs} +11 -17
  20. package/dist/lib/browser/chunk-TW27W3EL.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-NWSK27QB.mjs → chunk-VESMWSFW.mjs} +20 -17
  22. package/dist/lib/browser/chunk-VESMWSFW.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-WX2NVNFQ.mjs → chunk-WWCDIB6Z.mjs} +11 -11
  24. package/dist/lib/browser/{chunk-WX2NVNFQ.mjs.map → chunk-WWCDIB6Z.mjs.map} +3 -3
  25. package/dist/lib/browser/{compiler-XRBFQFXO.mjs → compiler-VPUVTFQD.mjs} +3 -3
  26. package/dist/lib/browser/index.mjs +31 -30
  27. package/dist/lib/browser/index.mjs.map +3 -3
  28. package/dist/lib/browser/meta.json +1 -1
  29. package/dist/lib/browser/{operation-resolver-MUNR376F.mjs → operation-resolver-OF6ZAQUA.mjs} +11 -10
  30. package/dist/lib/browser/operation-resolver-OF6ZAQUA.mjs.map +7 -0
  31. package/dist/lib/browser/{react-surface-5TEC66UY.mjs → react-surface-AK6DRQ4V.mjs} +21 -20
  32. package/dist/lib/browser/react-surface-AK6DRQ4V.mjs.map +7 -0
  33. package/dist/lib/browser/{settings-R4WKREUJ.mjs → settings-5SF77MRH.mjs} +6 -5
  34. package/dist/lib/browser/settings-5SF77MRH.mjs.map +7 -0
  35. package/dist/lib/browser/templates/index.mjs +1 -1
  36. package/dist/lib/browser/types/index.mjs +2 -2
  37. package/dist/lib/node-esm/{DeploymentDialog-EVFV2VJT.mjs → DeploymentDialog-GGWDQMEB.mjs} +5 -5
  38. package/dist/lib/node-esm/{NotebookContainer-QLW5ZYGS.mjs → NotebookContainer-KQA2XFLZ.mjs} +13 -13
  39. package/dist/lib/node-esm/NotebookContainer-KQA2XFLZ.mjs.map +7 -0
  40. package/dist/lib/node-esm/{ScriptContainer-3DZ3BMHW.mjs → ScriptContainer-PCNJFUWX.mjs} +5 -5
  41. package/dist/lib/node-esm/ScriptContainer-PCNJFUWX.mjs.map +7 -0
  42. package/dist/lib/node-esm/{app-graph-builder-NVE3EVBG.mjs → app-graph-builder-IGAZTJ45.mjs} +4 -3
  43. package/dist/lib/node-esm/app-graph-builder-IGAZTJ45.mjs.map +7 -0
  44. package/dist/lib/node-esm/{blueprint-definition-NC7NNJGI.mjs → blueprint-definition-5MGY6BRQ.mjs} +6 -6
  45. package/dist/lib/node-esm/blueprint-definition-5MGY6BRQ.mjs.map +7 -0
  46. package/dist/lib/node-esm/blueprints/index.mjs +3 -3
  47. package/dist/lib/node-esm/{chunk-VWOLKNMO.mjs → chunk-3QBXN6QC.mjs} +3 -3
  48. package/dist/lib/node-esm/{chunk-VWOLKNMO.mjs.map → chunk-3QBXN6QC.mjs.map} +2 -2
  49. package/dist/lib/node-esm/{chunk-ZQGHFNO3.mjs → chunk-EAWNLXHJ.mjs} +20 -17
  50. package/dist/lib/node-esm/chunk-EAWNLXHJ.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-MGWKULCD.mjs → chunk-ECRSTVR6.mjs} +11 -11
  52. package/dist/lib/node-esm/{chunk-MGWKULCD.mjs.map → chunk-ECRSTVR6.mjs.map} +3 -3
  53. package/dist/lib/node-esm/{chunk-KN6SQYUF.mjs → chunk-KRVL7UYI.mjs} +4 -4
  54. package/dist/lib/node-esm/{chunk-KN6SQYUF.mjs.map → chunk-KRVL7UYI.mjs.map} +3 -3
  55. package/dist/lib/node-esm/{chunk-Y3G5NCTP.mjs → chunk-S7DSCLOW.mjs} +11 -16
  56. package/dist/lib/node-esm/chunk-S7DSCLOW.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-YEWLTVBT.mjs → chunk-U6PXM2HT.mjs} +8 -8
  58. package/dist/lib/node-esm/chunk-U6PXM2HT.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-4F5FJZ36.mjs → chunk-V37R7KB5.mjs} +4 -4
  60. package/dist/lib/node-esm/chunk-V37R7KB5.mjs.map +7 -0
  61. package/dist/lib/node-esm/{compiler-ORJAXDN7.mjs → compiler-WUOSY6MS.mjs} +3 -3
  62. package/dist/lib/node-esm/index.mjs +31 -30
  63. package/dist/lib/node-esm/index.mjs.map +3 -3
  64. package/dist/lib/node-esm/meta.json +1 -1
  65. package/dist/lib/node-esm/{operation-resolver-CLE4ZCC5.mjs → operation-resolver-5XMOTNR7.mjs} +11 -10
  66. package/dist/lib/node-esm/operation-resolver-5XMOTNR7.mjs.map +7 -0
  67. package/dist/lib/node-esm/{react-surface-O3UDMKOQ.mjs → react-surface-BAUSPX5Y.mjs} +21 -20
  68. package/dist/lib/node-esm/react-surface-BAUSPX5Y.mjs.map +7 -0
  69. package/dist/lib/node-esm/{settings-OFIMHU7K.mjs → settings-ILI762CY.mjs} +6 -5
  70. package/dist/lib/node-esm/settings-ILI762CY.mjs.map +7 -0
  71. package/dist/lib/node-esm/templates/index.mjs +1 -1
  72. package/dist/lib/node-esm/types/index.mjs +2 -2
  73. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  74. package/dist/types/src/blueprints/index.d.ts +1 -1
  75. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  76. package/dist/types/src/blueprints/script-blueprint.d.ts +3 -21
  77. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -6
  80. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  82. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  84. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  86. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  88. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  90. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  92. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
  94. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  95. package/dist/types/src/components/NotebookContainer.d.ts +1 -1
  96. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -1
  97. package/dist/types/src/components/ScriptContainer.d.ts +1 -1
  98. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  99. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  100. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  101. package/dist/types/src/templates/chess-bot.d.ts +2 -2
  102. package/dist/types/src/templates/chess-bot.d.ts.map +1 -1
  103. package/dist/types/src/templates/commentary.d.ts +2 -2
  104. package/dist/types/src/templates/commentary.d.ts.map +1 -1
  105. package/dist/types/src/types/Notebook.d.ts +33 -33
  106. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  107. package/dist/types/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +78 -77
  109. package/src/ScriptPlugin.tsx +17 -16
  110. package/src/blueprints/index.ts +1 -1
  111. package/src/blueprints/script-blueprint.ts +14 -7
  112. package/src/capabilities/app-graph-builder/app-graph-builder.ts +3 -2
  113. package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -12
  114. package/src/capabilities/operation-resolver/operation-resolver.ts +4 -3
  115. package/src/capabilities/react-surface/react-surface.tsx +15 -14
  116. package/src/capabilities/settings/settings.ts +3 -2
  117. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +1 -1
  118. package/src/components/DeploymentDialog/DeploymentDialog.tsx +6 -6
  119. package/src/components/NotebookContainer.stories.tsx +3 -3
  120. package/src/components/NotebookContainer.tsx +9 -11
  121. package/src/components/NotebookStack/NotebookCell.tsx +2 -2
  122. package/src/components/NotebookStack/NotebookStack.stories.tsx +1 -1
  123. package/src/components/QueryEditor/QueryEditor.stories.tsx +2 -2
  124. package/src/components/ScriptContainer.tsx +2 -2
  125. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +1 -1
  126. package/src/components/Settings/ScriptObjectSettings.tsx +2 -2
  127. package/src/components/Settings/ScriptPluginSettings.tsx +11 -11
  128. package/src/components/TestPanel/TestContainer.tsx +1 -1
  129. package/src/components/TestPanel/TestPanel.tsx +24 -22
  130. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +2 -2
  131. package/src/hooks/useCompiler.ts +1 -1
  132. package/src/hooks/useCreateAndDeployScriptTemplates.ts +1 -1
  133. package/src/hooks/useToolbarState.ts +7 -6
  134. package/src/templates/chess-bot.ts +2 -2
  135. package/src/templates/commentary.ts +9 -11
  136. package/src/templates/forex-effect.ts +1 -1
  137. package/src/types/Notebook.ts +2 -2
  138. package/dist/lib/browser/NotebookContainer-4MM2VAQF.mjs.map +0 -7
  139. package/dist/lib/browser/ScriptContainer-X6GCYZZW.mjs.map +0 -7
  140. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs.map +0 -7
  141. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs +0 -17
  142. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs.map +0 -7
  143. package/dist/lib/browser/chunk-F3QKSKSF.mjs.map +0 -7
  144. package/dist/lib/browser/chunk-IQRLM6JK.mjs.map +0 -7
  145. package/dist/lib/browser/chunk-NWSK27QB.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-UX4GHJ5E.mjs.map +0 -7
  147. package/dist/lib/browser/operation-resolver-MUNR376F.mjs.map +0 -7
  148. package/dist/lib/browser/react-surface-5TEC66UY.mjs.map +0 -7
  149. package/dist/lib/browser/settings-R4WKREUJ.mjs.map +0 -7
  150. package/dist/lib/node-esm/NotebookContainer-QLW5ZYGS.mjs.map +0 -7
  151. package/dist/lib/node-esm/ScriptContainer-3DZ3BMHW.mjs.map +0 -7
  152. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs.map +0 -7
  153. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs.map +0 -7
  154. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs.map +0 -7
  155. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-YEWLTVBT.mjs.map +0 -7
  157. package/dist/lib/node-esm/chunk-ZQGHFNO3.mjs.map +0 -7
  158. package/dist/lib/node-esm/operation-resolver-CLE4ZCC5.mjs.map +0 -7
  159. package/dist/lib/node-esm/react-surface-O3UDMKOQ.mjs.map +0 -7
  160. package/dist/lib/node-esm/settings-OFIMHU7K.mjs.map +0 -7
  161. /package/dist/lib/browser/{DeploymentDialog-GXNRUXF6.mjs.map → DeploymentDialog-XUAFCNI7.mjs.map} +0 -0
  162. /package/dist/lib/browser/{compiler-XRBFQFXO.mjs.map → compiler-VPUVTFQD.mjs.map} +0 -0
  163. /package/dist/lib/node-esm/{DeploymentDialog-EVFV2VJT.mjs.map → DeploymentDialog-GGWDQMEB.mjs.map} +0 -0
  164. /package/dist/lib/node-esm/{compiler-ORJAXDN7.mjs.map → compiler-WUOSY6MS.mjs.map} +0 -0
@@ -2,10 +2,10 @@ import {
2
2
  ScriptCapabilities,
3
3
  ScriptEvents,
4
4
  ScriptOperation
5
- } from "./chunk-3O2DQGCP.mjs";
5
+ } from "./chunk-3BSF5BIA.mjs";
6
6
  import {
7
7
  templates
8
- } from "./chunk-UX4GHJ5E.mjs";
8
+ } from "./chunk-4N5TLXEJ.mjs";
9
9
  import {
10
10
  meta
11
11
  } from "./chunk-WYR4QHPE.mjs";
@@ -324,12 +324,13 @@ var useDeployDeps = ({ script }) => {
324
324
  };
325
325
 
326
326
  // src/hooks/useToolbarState.ts
327
- import { Atom, RegistryContext, useAtomValue } from "@effect-atom/atom-react";
328
- import { useContext, useMemo as useMemo2 } from "react";
327
+ import { Atom } from "@effect-atom/atom-react";
328
+ import { useMemo as useMemo2 } from "react";
329
+ import { Capabilities } from "@dxos/app-framework";
330
+ import { useCapability } from "@dxos/app-framework/ui";
329
331
  var useToolbarState = (initialState = {}) => {
330
- const registry = useContext(RegistryContext);
332
+ const registry = useCapability(Capabilities.AtomRegistry);
331
333
  const atom = useMemo2(() => Atom.make(initialState), []);
332
- const value = useAtomValue(atom);
333
334
  return useMemo2(() => ({
334
335
  atom,
335
336
  get value() {
@@ -346,13 +347,12 @@ var useToolbarState = (initialState = {}) => {
346
347
  }
347
348
  }), [
348
349
  atom,
349
- registry,
350
- value
350
+ registry
351
351
  ]);
352
352
  };
353
353
 
354
354
  // src/hooks/useCompiler.ts
355
- import { useCapabilities, usePluginManager } from "@dxos/app-framework/react";
355
+ import { useCapabilities, usePluginManager } from "@dxos/app-framework/ui";
356
356
  import { runAndForwardErrors } from "@dxos/effect";
357
357
  import { useAsyncEffect } from "@dxos/react-ui";
358
358
  var useCompiler = () => {
@@ -476,7 +476,7 @@ var createTemplateSelect = (script) => {
476
476
 
477
477
  // src/hooks/useCreateAndDeployScriptTemplates.ts
478
478
  import { useCallback, useState } from "react";
479
- import { useOperationInvoker } from "@dxos/app-framework/react";
479
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
480
480
  import { Obj as Obj6 } from "@dxos/echo";
481
481
  import { Script } from "@dxos/functions";
482
482
  import { invariant } from "@dxos/invariant";
@@ -554,4 +554,4 @@ export {
554
554
  useToolbarState,
555
555
  useCompiler
556
556
  };
557
- //# sourceMappingURL=chunk-WX2NVNFQ.mjs.map
557
+ //# sourceMappingURL=chunk-WWCDIB6Z.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/deploy.ts", "../../../src/util/functions.ts", "../../../src/hooks/deploy.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/hooks/useCompiler.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts", "../../../src/hooks/useCreateAndDeployScriptTemplates.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { bundleFunction } from '@dxos/functions-runtime/bundler';\nimport { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';\nimport { log } from '@dxos/log';\nimport { FunctionRuntimeKind } from '@dxos/protocols';\nimport { type Space } from '@dxos/react-client/echo';\n\nexport const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionId) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: Script.Script;\n client: Client;\n space: Space;\n fn?: Function.Function;\n existingFunctionId?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionId?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionId,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const buildResult = await bundleFunction({\n source: script.source!.target!.content,\n });\n if ('error' in buildResult) {\n throw buildResult.error || new Error('Bundle creation failed');\n }\n\n const functionsServiceClient = FunctionsServiceClient.fromClient(client);\n const newFunction = await functionsServiceClient.deploy({\n // TODO(dmaretskyi): Space key or identity key.\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: buildResult.assets,\n runtime: FunctionRuntimeKind.enums.WORKER_LOADER,\n });\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);\n Obj.change(script, (s) => {\n s.changed = false;\n });\n\n return { success: true, functionId: getUserFunctionIdInMetadata(Obj.getMeta(storedFunction)) };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: Script.Script, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: Function.Function | undefined,\n script: Script.Script,\n newFunction: Function.Function,\n): Function.Function => {\n if (fn) {\n Function.setFrom(fn, newFunction);\n return fn;\n } else {\n Obj.change(newFunction, (f) => {\n f.source = Ref.make(script);\n });\n return space.db.add(newFunction);\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { type Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { getSpace } from '@dxos/react-client/echo';\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: Script.Script;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n\n if (!existingFunctionId) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionId, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (\n script: Script.Script,\n storedFunction: Function.Function,\n meta: any,\n functionId: string,\n) => {\n Obj.change(storedFunction, (f) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n f.description = script.description;\n } else if (meta.description) {\n f.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n f.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n f.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n if (meta.key) {\n f.key = meta.key;\n } else {\n log.verbose('no key in function metadata', { functionId });\n }\n });\n};\n\nexport const getAccessCredential = (identityKey: PublicKey): Credential => {\n return {\n issuer: identityKey,\n issuanceDate: new Date(),\n subject: {\n id: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.ServiceAccess',\n serverName: 'hub.dxos.network',\n serverKey: identityKey,\n identityKey,\n capabilities: ['composer:beta'],\n },\n },\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport { Obj, Query, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { type Space, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { type TFunction } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\nimport { errorMessageColors } from '@dxos/ui-theme';\n\nimport { meta } from '../meta';\nimport { deployScript, getFunctionUrl, isScriptDeployed } from '../util';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nimport { type ScriptToolbarStateStore } from './useToolbarState';\n\nexport type CreateDeployOptions = {\n state: ScriptToolbarStateStore;\n script: Script.Script;\n fn: Function.Function;\n space?: Space;\n existingFunctionId?: string;\n client: Client;\n t: TFunction;\n};\n\nexport const createDeploy = ({ state, script, space, fn, client, existingFunctionId, t }: CreateDeployOptions) => {\n const { value } = state;\n\n // TODO(wittjosiah): Should this be an action?\n const errorItem = createMenuAction('error', () => {}, {\n label: value.error ?? ['no error label', { ns: meta.id }],\n icon: 'ph--warning-circle--regular',\n hidden: !value.error,\n classNames: value.error && errorMessageColors,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>(\n 'deploy',\n async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.set('error', undefined);\n state.set('deploying', true);\n\n const result = await deployScript({ script, client, space, fn, existingFunctionId });\n\n if (!result.success) {\n log.catch(result.error);\n state.set('error', t('upload failed label'));\n }\n\n state.set('deploying', false);\n },\n {\n type: 'deploy',\n label: [value.deploying ? 'publishing label' : 'deploy label', { ns: meta.id }],\n icon: value.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: value.deploying,\n classNames: value.deploying ? '[&_svg]:animate-spin' : '',\n },\n );\n\n const copyAction = createMenuAction<DeployActionProperties>(\n 'copy',\n async () => {\n if (value.functionUrl) {\n await navigator.clipboard.writeText(value.functionUrl);\n }\n },\n {\n type: 'copy',\n label: ['copy link label', { ns: meta.id }],\n icon: 'ph--link--regular',\n disabled: !value.functionUrl,\n },\n );\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nexport const useDeployState = ({ state, script }: { state: ScriptToolbarStateStore; script: Script.Script }) => {\n const { space, client, fn, existingFunctionId } = useDeployDeps({ script });\n useEffect(() => {\n if (!existingFunctionId) {\n return;\n }\n\n state.set(\n 'functionUrl',\n getFunctionUrl({\n script,\n fn,\n edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',\n }),\n );\n }, [existingFunctionId, space, fn, script, client.config.values.runtime?.services?.edge?.url, state]);\n\n useEffect(() => {\n state.set('deployed', isScriptDeployed({ script, fn }));\n }, [script.changed, existingFunctionId, fn, script, state]);\n};\n\nexport const useDeployDeps = ({ script }: { script: Script.Script }) => {\n const client = useClient();\n const space = getSpace(script);\n const [fn] = useQuery(space?.db, Query.type(Function.Function, { source: Ref.make(script) }));\n const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(Obj.getMeta(fn)), [fn]);\n return { client, space, fn, existingFunctionId };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, RegistryContext, useAtomValue } from '@effect-atom/atom-react';\nimport { useContext, useMemo } from 'react';\n\nimport { type DeployState } from './deploy';\n\nexport type ScriptToolbarState = Partial<DeployState>;\n\nexport type ScriptToolbarStateStore = {\n atom: Atom.Writable<ScriptToolbarState>;\n get value(): ScriptToolbarState;\n update: (updater: (current: ScriptToolbarState) => ScriptToolbarState) => void;\n set: <K extends keyof ScriptToolbarState>(key: K, value: ScriptToolbarState[K]) => void;\n};\n\n// TODO(burdon): Replace with context provider?\nexport const useToolbarState = (initialState: ScriptToolbarState = {}): ScriptToolbarStateStore => {\n const registry = useContext(RegistryContext);\n const atom = useMemo(() => Atom.make<ScriptToolbarState>(initialState), []);\n const value = useAtomValue(atom);\n\n return useMemo(\n () => ({\n atom,\n get value() {\n return registry.get(atom);\n },\n update: (updater: (current: ScriptToolbarState) => ScriptToolbarState) => {\n registry.set(atom, updater(registry.get(atom)));\n },\n set: <K extends keyof ScriptToolbarState>(key: K, v: ScriptToolbarState[K]) => {\n registry.set(atom, { ...registry.get(atom), [key]: v });\n },\n }),\n [atom, registry, value],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCapabilities, usePluginManager } from '@dxos/app-framework/react';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport type { Compiler } from '../compiler';\nimport { ScriptEvents } from '../types';\nimport { ScriptCapabilities } from '../types';\n\n/**\n * Asynchronously sets up the compiler and returns it.\n * @returns The compiler instance or undefined if it is not ready.\n */\nexport const useCompiler = (): Compiler | undefined => {\n const manager = usePluginManager();\n useAsyncEffect(async () => {\n await manager.activate(ScriptEvents.SetupCompiler).pipe(runAndForwardErrors);\n }, [manager]);\n const [compiler] = useCapabilities(ScriptCapabilities.Compiler);\n return compiler;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\n\nimport { Obj } from '@dxos/echo';\nimport { type Script } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { meta } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = (script: Script.Script) => {\n const formatAction = createMenuAction(\n 'format',\n async () => {\n if (!script.source) {\n return;\n }\n\n try {\n const formatted = await format(script.source.target!.content, {\n parser: 'typescript',\n plugins: [prettierPluginEstree, prettierPluginTypescript],\n semi: true,\n singleQuote: true,\n });\n Obj.change(script.source.target!, (s) => {\n s.content = formatted;\n });\n } catch (err: any) {\n // TODO(wittjosiah): Show error in UI.\n log.catch(err);\n }\n },\n {\n label: ['format label', { ns: meta.id }],\n icon: 'ph--magic-wand--regular',\n },\n );\n\n return {\n nodes: [formatAction],\n edges: [\n {\n source: 'root',\n target: 'format',\n },\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { FUNCTIONS_PRESET_META_KEY, type Script } from '@dxos/functions';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectActions = (script: Script.Script) => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(\n `template--${template.id}`,\n () => {\n Obj.change(script, (s) => {\n s.name = template.name;\n const meta = Obj.getMeta(s);\n const oldPresetIndex = meta.keys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);\n if (oldPresetIndex >= 0) {\n meta.keys.splice(oldPresetIndex, 1);\n }\n if ('presetId' in template) {\n meta.keys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n });\n if (script.source?.target) {\n Obj.change(script.source.target, (s) => {\n s.content = template.source;\n });\n }\n },\n {\n label: template.name,\n value: template.id,\n type: 'template',\n },\n );\n });\n};\n\nexport const createTemplateSelect = (script: Script.Script) => {\n const templateSelectActions = createTemplateSelectActions(script);\n return {\n nodes: [...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useState } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { Obj } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceOperation } 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 { ScriptOperation } 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 { invokePromise } = useOperationInvoker();\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 createResult = await invokePromise(ScriptOperation.CreateScript, {\n db: space.db,\n initialTemplateId: template.id as any,\n });\n invariant(Obj.instanceOf(Script.Script, createResult.data?.object));\n await invokePromise(SpaceOperation.AddObject, { target: space.db, object: createResult.data.object });\n\n return deployScript({ space, client, script: createResult.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, invokePromise, client, scriptTemplates]);\n\n // TODO(burdon): Return onCreateAndDeployScripts.\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
5
- "mappings": "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",
6
- "names": ["Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "bundleFunction", "FunctionsServiceClient", "incrementSemverPatch", "log", "FunctionRuntimeKind", "isScriptDeployed", "script", "fn", "existingFunctionId", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "buildResult", "source", "target", "content", "Error", "functionsServiceClient", "fromClient", "newFunction", "deploy", "ownerPublicKey", "key", "version", "functionId", "entryPoint", "assets", "runtime", "enums", "WORKER_LOADER", "storedFunction", "createOrUpdateFunctionInSpace", "change", "s", "err", "catch", "setFrom", "f", "make", "db", "add", "Obj", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionId", "getMeta", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "change", "f", "description", "trim", "verbose", "inputSchema", "outputSchema", "key", "getAccessCredential", "identityKey", "issuer", "issuanceDate", "Date", "subject", "assertion", "serverName", "serverKey", "capabilities", "useEffect", "useMemo", "Obj", "Query", "Ref", "Function", "getUserFunctionIdInMetadata", "log", "useClient", "getSpace", "useQuery", "createMenuAction", "errorMessageColors", "createDeploy", "state", "script", "space", "fn", "client", "existingFunctionId", "t", "value", "errorItem", "createMenuAction", "label", "error", "ns", "meta", "id", "icon", "hidden", "classNames", "errorMessageColors", "deployAction", "source", "set", "undefined", "result", "deployScript", "success", "log", "catch", "type", "deploying", "disabled", "copyAction", "functionUrl", "navigator", "clipboard", "writeText", "nodes", "edges", "target", "useDeployState", "useDeployDeps", "useEffect", "getFunctionUrl", "edgeUrl", "config", "values", "runtime", "services", "edge", "url", "isScriptDeployed", "changed", "useClient", "getSpace", "useQuery", "db", "Query", "Function", "Ref", "make", "useMemo", "getUserFunctionIdInMetadata", "Obj", "getMeta", "Atom", "RegistryContext", "useAtomValue", "useContext", "useMemo", "useToolbarState", "initialState", "registry", "useContext", "RegistryContext", "atom", "useMemo", "Atom", "make", "value", "useAtomValue", "get", "update", "updater", "set", "key", "v", "useCapabilities", "usePluginManager", "runAndForwardErrors", "useAsyncEffect", "useCompiler", "manager", "usePluginManager", "useAsyncEffect", "activate", "ScriptEvents", "SetupCompiler", "pipe", "runAndForwardErrors", "compiler", "useCapabilities", "ScriptCapabilities", "Compiler", "format", "prettierPluginEstree", "prettierPluginTypescript", "Obj", "log", "createMenuAction", "createFormat", "script", "formatAction", "createMenuAction", "source", "formatted", "format", "target", "content", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "Obj", "change", "s", "err", "log", "catch", "label", "ns", "meta", "id", "icon", "nodes", "edges", "Obj", "FUNCTIONS_PRESET_META_KEY", "createMenuAction", "createTemplateSelectActions", "script", "templates", "map", "template", "createMenuAction", "id", "Obj", "change", "s", "name", "meta", "getMeta", "oldPresetIndex", "keys", "findIndex", "key", "source", "FUNCTIONS_PRESET_META_KEY", "splice", "push", "presetId", "target", "content", "label", "value", "type", "createTemplateSelect", "templateSelectActions", "nodes", "edges", "action", "useCallback", "useState", "useOperationInvoker", "Obj", "Script", "invariant", "SpaceOperation", "useClient", "useCreateAndDeployScriptTemplates", "space", "scriptTemplates", "invokePromise", "useOperationInvoker", "client", "useClient", "status", "setStatus", "useState", "error", "setError", "undefined", "handleCreateAndDeployScripts", "useCallback", "invariant", "deploymentResults", "Promise", "all", "map", "template", "createResult", "ScriptOperation", "CreateScript", "db", "initialTemplateId", "id", "Obj", "instanceOf", "Script", "data", "object", "SpaceOperation", "AddObject", "target", "deployScript", "script", "hasErrors", "some", "result", "success"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { bundleFunction } from '@dxos/functions-runtime/bundler';\nimport { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';\nimport { log } from '@dxos/log';\nimport { FunctionRuntimeKind } from '@dxos/protocols';\nimport { type Space } from '@dxos/react-client/echo';\n\nexport const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionId) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: Script.Script;\n client: Client;\n space: Space;\n fn?: Function.Function;\n existingFunctionId?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionId?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionId,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const buildResult = await bundleFunction({\n source: script.source!.target!.content,\n });\n if ('error' in buildResult) {\n throw buildResult.error || new Error('Bundle creation failed');\n }\n\n const functionsServiceClient = FunctionsServiceClient.fromClient(client);\n const newFunction = await functionsServiceClient.deploy({\n // TODO(dmaretskyi): Space key or identity key.\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: buildResult.assets,\n runtime: FunctionRuntimeKind.enums.WORKER_LOADER,\n });\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);\n Obj.change(script, (s) => {\n s.changed = false;\n });\n\n return { success: true, functionId: getUserFunctionIdInMetadata(Obj.getMeta(storedFunction)) };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: Script.Script, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: Function.Function | undefined,\n script: Script.Script,\n newFunction: Function.Function,\n): Function.Function => {\n if (fn) {\n Function.setFrom(fn, newFunction);\n return fn;\n } else {\n Obj.change(newFunction, (f) => {\n f.source = Ref.make(script);\n });\n return space.db.add(newFunction);\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { type Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { getSpace } from '@dxos/react-client/echo';\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: Script.Script;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n\n if (!existingFunctionId) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionId, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (\n script: Script.Script,\n storedFunction: Function.Function,\n meta: any,\n functionId: string,\n) => {\n Obj.change(storedFunction, (f) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n f.description = script.description;\n } else if (meta.description) {\n f.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n f.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n f.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n if (meta.key) {\n f.key = meta.key;\n } else {\n log.verbose('no key in function metadata', { functionId });\n }\n });\n};\n\nexport const getAccessCredential = (identityKey: PublicKey): Credential => {\n return {\n issuer: identityKey,\n issuanceDate: new Date(),\n subject: {\n id: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.ServiceAccess',\n serverName: 'hub.dxos.network',\n serverKey: identityKey,\n identityKey,\n capabilities: ['composer:beta'],\n },\n },\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport { Obj, Query, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { type Space, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { type TFunction } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\nimport { errorMessageColors } from '@dxos/ui-theme';\n\nimport { meta } from '../meta';\nimport { deployScript, getFunctionUrl, isScriptDeployed } from '../util';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nimport { type ScriptToolbarStateStore } from './useToolbarState';\n\nexport type CreateDeployOptions = {\n state: ScriptToolbarStateStore;\n script: Script.Script;\n fn: Function.Function;\n space?: Space;\n existingFunctionId?: string;\n client: Client;\n t: TFunction;\n};\n\nexport const createDeploy = ({ state, script, space, fn, client, existingFunctionId, t }: CreateDeployOptions) => {\n const { value } = state;\n\n // TODO(wittjosiah): Should this be an action?\n const errorItem = createMenuAction('error', () => {}, {\n label: value.error ?? ['no error label', { ns: meta.id }],\n icon: 'ph--warning-circle--regular',\n hidden: !value.error,\n classNames: value.error && errorMessageColors,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>(\n 'deploy',\n async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.set('error', undefined);\n state.set('deploying', true);\n\n const result = await deployScript({ script, client, space, fn, existingFunctionId });\n\n if (!result.success) {\n log.catch(result.error);\n state.set('error', t('upload failed label'));\n }\n\n state.set('deploying', false);\n },\n {\n type: 'deploy',\n label: [value.deploying ? 'publishing label' : 'deploy label', { ns: meta.id }],\n icon: value.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: value.deploying,\n classNames: value.deploying ? '[&_svg]:animate-spin' : '',\n },\n );\n\n const copyAction = createMenuAction<DeployActionProperties>(\n 'copy',\n async () => {\n if (value.functionUrl) {\n await navigator.clipboard.writeText(value.functionUrl);\n }\n },\n {\n type: 'copy',\n label: ['copy link label', { ns: meta.id }],\n icon: 'ph--link--regular',\n disabled: !value.functionUrl,\n },\n );\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nexport const useDeployState = ({ state, script }: { state: ScriptToolbarStateStore; script: Script.Script }) => {\n const { space, client, fn, existingFunctionId } = useDeployDeps({ script });\n useEffect(() => {\n if (!existingFunctionId) {\n return;\n }\n\n state.set(\n 'functionUrl',\n getFunctionUrl({\n script,\n fn,\n edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',\n }),\n );\n }, [existingFunctionId, space, fn, script, client.config.values.runtime?.services?.edge?.url, state]);\n\n useEffect(() => {\n state.set('deployed', isScriptDeployed({ script, fn }));\n }, [script.changed, existingFunctionId, fn, script, state]);\n};\n\nexport const useDeployDeps = ({ script }: { script: Script.Script }) => {\n const client = useClient();\n const space = getSpace(script);\n const [fn] = useQuery(space?.db, Query.type(Function.Function, { source: Ref.make(script) }));\n const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(Obj.getMeta(fn)), [fn]);\n return { client, space, fn, existingFunctionId };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport { useMemo } from 'react';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { useCapability } from '@dxos/app-framework/ui';\n\nimport { type DeployState } from './deploy';\n\nexport type ScriptToolbarState = Partial<DeployState>;\n\nexport type ScriptToolbarStateStore = {\n atom: Atom.Writable<ScriptToolbarState>;\n get value(): ScriptToolbarState;\n update: (updater: (current: ScriptToolbarState) => ScriptToolbarState) => void;\n set: <K extends keyof ScriptToolbarState>(key: K, value: ScriptToolbarState[K]) => void;\n};\n\nexport const useToolbarState = (initialState: ScriptToolbarState = {}): ScriptToolbarStateStore => {\n const registry = useCapability(Capabilities.AtomRegistry);\n const atom = useMemo(() => Atom.make<ScriptToolbarState>(initialState), []);\n\n return useMemo(\n () => ({\n atom,\n get value() {\n return registry.get(atom);\n },\n update: (updater: (current: ScriptToolbarState) => ScriptToolbarState) => {\n registry.set(atom, updater(registry.get(atom)));\n },\n set: <K extends keyof ScriptToolbarState>(key: K, v: ScriptToolbarState[K]) => {\n registry.set(atom, { ...registry.get(atom), [key]: v });\n },\n }),\n [atom, registry],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCapabilities, usePluginManager } from '@dxos/app-framework/ui';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport type { Compiler } from '../compiler';\nimport { ScriptEvents } from '../types';\nimport { ScriptCapabilities } from '../types';\n\n/**\n * Asynchronously sets up the compiler and returns it.\n * @returns The compiler instance or undefined if it is not ready.\n */\nexport const useCompiler = (): Compiler | undefined => {\n const manager = usePluginManager();\n useAsyncEffect(async () => {\n await manager.activate(ScriptEvents.SetupCompiler).pipe(runAndForwardErrors);\n }, [manager]);\n const [compiler] = useCapabilities(ScriptCapabilities.Compiler);\n return compiler;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\n\nimport { Obj } from '@dxos/echo';\nimport { type Script } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { meta } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = (script: Script.Script) => {\n const formatAction = createMenuAction(\n 'format',\n async () => {\n if (!script.source) {\n return;\n }\n\n try {\n const formatted = await format(script.source.target!.content, {\n parser: 'typescript',\n plugins: [prettierPluginEstree, prettierPluginTypescript],\n semi: true,\n singleQuote: true,\n });\n Obj.change(script.source.target!, (s) => {\n s.content = formatted;\n });\n } catch (err: any) {\n // TODO(wittjosiah): Show error in UI.\n log.catch(err);\n }\n },\n {\n label: ['format label', { ns: meta.id }],\n icon: 'ph--magic-wand--regular',\n },\n );\n\n return {\n nodes: [formatAction],\n edges: [\n {\n source: 'root',\n target: 'format',\n },\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { FUNCTIONS_PRESET_META_KEY, type Script } from '@dxos/functions';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectActions = (script: Script.Script) => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(\n `template--${template.id}`,\n () => {\n Obj.change(script, (s) => {\n s.name = template.name;\n const meta = Obj.getMeta(s);\n const oldPresetIndex = meta.keys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);\n if (oldPresetIndex >= 0) {\n meta.keys.splice(oldPresetIndex, 1);\n }\n if ('presetId' in template) {\n meta.keys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n });\n if (script.source?.target) {\n Obj.change(script.source.target, (s) => {\n s.content = template.source;\n });\n }\n },\n {\n label: template.name,\n value: template.id,\n type: 'template',\n },\n );\n });\n};\n\nexport const createTemplateSelect = (script: Script.Script) => {\n const templateSelectActions = createTemplateSelectActions(script);\n return {\n nodes: [...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useState } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceOperation } 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 { ScriptOperation } 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 { invokePromise } = useOperationInvoker();\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 createResult = await invokePromise(ScriptOperation.CreateScript, {\n db: space.db,\n initialTemplateId: template.id as any,\n });\n invariant(Obj.instanceOf(Script.Script, createResult.data?.object));\n await invokePromise(SpaceOperation.AddObject, { target: space.db, object: createResult.data.object });\n\n return deployScript({ space, client, script: createResult.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, invokePromise, client, scriptTemplates]);\n\n // TODO(burdon): Return onCreateAndDeployScripts.\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "bundleFunction", "FunctionsServiceClient", "incrementSemverPatch", "log", "FunctionRuntimeKind", "isScriptDeployed", "script", "fn", "existingFunctionId", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "buildResult", "source", "target", "content", "Error", "functionsServiceClient", "fromClient", "newFunction", "deploy", "ownerPublicKey", "key", "version", "functionId", "entryPoint", "assets", "runtime", "enums", "WORKER_LOADER", "storedFunction", "createOrUpdateFunctionInSpace", "change", "s", "err", "catch", "setFrom", "f", "make", "db", "add", "Obj", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionId", "getMeta", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "change", "f", "description", "trim", "verbose", "inputSchema", "outputSchema", "key", "getAccessCredential", "identityKey", "issuer", "issuanceDate", "Date", "subject", "assertion", "serverName", "serverKey", "capabilities", "useEffect", "useMemo", "Obj", "Query", "Ref", "Function", "getUserFunctionIdInMetadata", "log", "useClient", "getSpace", "useQuery", "createMenuAction", "errorMessageColors", "createDeploy", "state", "script", "space", "fn", "client", "existingFunctionId", "t", "value", "errorItem", "createMenuAction", "label", "error", "ns", "meta", "id", "icon", "hidden", "classNames", "errorMessageColors", "deployAction", "source", "set", "undefined", "result", "deployScript", "success", "log", "catch", "type", "deploying", "disabled", "copyAction", "functionUrl", "navigator", "clipboard", "writeText", "nodes", "edges", "target", "useDeployState", "useDeployDeps", "useEffect", "getFunctionUrl", "edgeUrl", "config", "values", "runtime", "services", "edge", "url", "isScriptDeployed", "changed", "useClient", "getSpace", "useQuery", "db", "Query", "Function", "Ref", "make", "useMemo", "getUserFunctionIdInMetadata", "Obj", "getMeta", "Atom", "useMemo", "Capabilities", "useCapability", "useToolbarState", "initialState", "registry", "useCapability", "Capabilities", "AtomRegistry", "atom", "useMemo", "Atom", "make", "value", "get", "update", "updater", "set", "key", "v", "useCapabilities", "usePluginManager", "runAndForwardErrors", "useAsyncEffect", "useCompiler", "manager", "usePluginManager", "useAsyncEffect", "activate", "ScriptEvents", "SetupCompiler", "pipe", "runAndForwardErrors", "compiler", "useCapabilities", "ScriptCapabilities", "Compiler", "format", "prettierPluginEstree", "prettierPluginTypescript", "Obj", "log", "createMenuAction", "createFormat", "script", "formatAction", "createMenuAction", "source", "formatted", "format", "target", "content", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "Obj", "change", "s", "err", "log", "catch", "label", "ns", "meta", "id", "icon", "nodes", "edges", "Obj", "FUNCTIONS_PRESET_META_KEY", "createMenuAction", "createTemplateSelectActions", "script", "templates", "map", "template", "createMenuAction", "id", "Obj", "change", "s", "name", "meta", "getMeta", "oldPresetIndex", "keys", "findIndex", "key", "source", "FUNCTIONS_PRESET_META_KEY", "splice", "push", "presetId", "target", "content", "label", "value", "type", "createTemplateSelect", "templateSelectActions", "nodes", "edges", "action", "useCallback", "useState", "useOperationInvoker", "Obj", "Script", "invariant", "SpaceOperation", "useClient", "useCreateAndDeployScriptTemplates", "space", "scriptTemplates", "invokePromise", "useOperationInvoker", "client", "useClient", "status", "setStatus", "useState", "error", "setError", "undefined", "handleCreateAndDeployScripts", "useCallback", "invariant", "deploymentResults", "Promise", "all", "map", "template", "createResult", "ScriptOperation", "CreateScript", "db", "initialTemplateId", "id", "Obj", "instanceOf", "Script", "data", "object", "SpaceOperation", "AddObject", "target", "deployScript", "script", "hasErrors", "some", "result", "success"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ScriptCapabilities
3
- } from "./chunk-3O2DQGCP.mjs";
4
- import "./chunk-UX4GHJ5E.mjs";
3
+ } from "./chunk-3BSF5BIA.mjs";
4
+ import "./chunk-4N5TLXEJ.mjs";
5
5
  import "./chunk-WYR4QHPE.mjs";
6
6
  import "./chunk-J5LGTIGS.mjs";
7
7
 
@@ -158,4 +158,4 @@ var fetchRuntimeModules = Effect.fnUntraced(function* () {
158
158
  export {
159
159
  compiler_default as default
160
160
  };
161
- //# sourceMappingURL=compiler-XRBFQFXO.mjs.map
161
+ //# sourceMappingURL=compiler-VPUVTFQD.mjs.map
@@ -7,28 +7,28 @@ import {
7
7
  ScriptProperties,
8
8
  TestContainer,
9
9
  TestPanel
10
- } from "./chunk-NWSK27QB.mjs";
10
+ } from "./chunk-VESMWSFW.mjs";
11
11
  import {
12
12
  DEPLOYMENT_DIALOG
13
- } from "./chunk-IQRLM6JK.mjs";
13
+ } from "./chunk-BU6CGVU2.mjs";
14
14
  import {
15
15
  deployScript,
16
16
  getAccessCredential,
17
17
  getFunctionUrl,
18
18
  isScriptDeployed,
19
19
  updateFunctionMetadata
20
- } from "./chunk-WX2NVNFQ.mjs";
20
+ } from "./chunk-WWCDIB6Z.mjs";
21
21
  import {
22
22
  Notebook_exports,
23
23
  ScriptCapabilities,
24
24
  ScriptEvents,
25
25
  ScriptOperation
26
- } from "./chunk-3O2DQGCP.mjs";
27
- import "./chunk-UX4GHJ5E.mjs";
26
+ } from "./chunk-3BSF5BIA.mjs";
27
+ import "./chunk-4N5TLXEJ.mjs";
28
28
  import {
29
29
  NotebookMenu,
30
30
  NotebookStack
31
- } from "./chunk-BTWHM6FH.mjs";
31
+ } from "./chunk-BKGEAUUH.mjs";
32
32
  import "./chunk-I7CSE6T3.mjs";
33
33
  import {
34
34
  defaultScriptsForIntegration,
@@ -38,34 +38,35 @@ import "./chunk-J5LGTIGS.mjs";
38
38
 
39
39
  // src/ScriptPlugin.tsx
40
40
  import * as Effect from "effect/Effect";
41
- import { Common, Plugin } from "@dxos/app-framework";
41
+ import { Plugin } from "@dxos/app-framework";
42
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
42
43
  import { Ref } from "@dxos/echo";
43
44
  import { Script as Script2 } from "@dxos/functions";
44
45
  import { Operation } from "@dxos/operation";
45
46
 
46
47
  // src/capabilities/app-graph-builder/index.ts
47
48
  import { Capability } from "@dxos/app-framework";
48
- var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-7VO7AUI6.mjs"));
49
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-66ZDI72K.mjs"));
49
50
 
50
51
  // src/capabilities/blueprint-definition/index.ts
51
52
  import { Capability as Capability2 } from "@dxos/app-framework";
52
- var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-OSOUYI7A.mjs"));
53
+ var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-YMZEJBAZ.mjs"));
53
54
 
54
55
  // src/capabilities/compiler/index.ts
55
56
  import { Capability as Capability3 } from "@dxos/app-framework";
56
- var Compiler = Capability3.lazy("Compiler", () => import("./compiler-XRBFQFXO.mjs"));
57
+ var Compiler = Capability3.lazy("Compiler", () => import("./compiler-VPUVTFQD.mjs"));
57
58
 
58
59
  // src/capabilities/operation-resolver/index.ts
59
60
  import { Capability as Capability4 } from "@dxos/app-framework";
60
- var OperationResolver = Capability4.lazy("OperationResolver", () => import("./operation-resolver-MUNR376F.mjs"));
61
+ var OperationResolver = Capability4.lazy("OperationResolver", () => import("./operation-resolver-OF6ZAQUA.mjs"));
61
62
 
62
63
  // src/capabilities/react-surface/index.ts
63
64
  import { Capability as Capability5 } from "@dxos/app-framework";
64
- var ReactSurface = Capability5.lazy("ReactSurface", () => import("./react-surface-5TEC66UY.mjs"));
65
+ var ReactSurface = Capability5.lazy("ReactSurface", () => import("./react-surface-AK6DRQ4V.mjs"));
65
66
 
66
67
  // src/capabilities/settings/index.ts
67
68
  import { Capability as Capability6 } from "@dxos/app-framework";
68
- var ScriptSettings = Capability6.lazy("ScriptSettings", () => import("./settings-R4WKREUJ.mjs"));
69
+ var ScriptSettings = Capability6.lazy("ScriptSettings", () => import("./settings-5SF77MRH.mjs"));
69
70
 
70
71
  // src/translations.ts
71
72
  import { Script } from "@dxos/functions";
@@ -167,15 +168,11 @@ var translations = [
167
168
  ];
168
169
 
169
170
  // src/ScriptPlugin.tsx
170
- var ScriptPlugin = Plugin.define(meta).pipe(Plugin.addModule({
171
- activatesOn: Common.ActivationEvent.SetupSettings,
172
- activate: ScriptSettings
173
- }), Plugin.addModule({
174
- activatesOn: ScriptEvents.SetupCompiler,
175
- activate: Compiler
176
- }), Common.Plugin.addTranslationsModule({
177
- translations
178
- }), Common.Plugin.addMetadataModule({
171
+ var ScriptPlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
172
+ activate: AppGraphBuilder
173
+ }), AppPlugin.addBlueprintDefinitionModule({
174
+ activate: BlueprintDefinition
175
+ }), AppPlugin.addMetadataModule({
179
176
  metadata: [
180
177
  {
181
178
  id: Script2.Script.typename,
@@ -205,18 +202,22 @@ var ScriptPlugin = Plugin.define(meta).pipe(Plugin.addModule({
205
202
  }
206
203
  }
207
204
  ]
208
- }), Common.Plugin.addAppGraphModule({
209
- activate: AppGraphBuilder
210
- }), Common.Plugin.addSchemaModule({
205
+ }), AppPlugin.addOperationResolverModule({
206
+ activate: OperationResolver
207
+ }), AppPlugin.addSchemaModule({
211
208
  schema: [
212
209
  Script2.Script
213
210
  ]
214
- }), Common.Plugin.addSurfaceModule({
211
+ }), AppPlugin.addSurfaceModule({
215
212
  activate: ReactSurface
216
- }), Common.Plugin.addOperationResolverModule({
217
- activate: OperationResolver
218
- }), Common.Plugin.addBlueprintDefinitionModule({
219
- activate: BlueprintDefinition
213
+ }), AppPlugin.addTranslationsModule({
214
+ translations
215
+ }), Plugin.addModule({
216
+ activatesOn: AppActivationEvents.SetupSettings,
217
+ activate: ScriptSettings
218
+ }), Plugin.addModule({
219
+ activatesOn: ScriptEvents.SetupCompiler,
220
+ activate: Compiler
220
221
  }), Plugin.make);
221
222
  export {
222
223
  DEPLOYMENT_DIALOG,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ScriptPlugin.tsx", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/compiler/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/capabilities/settings/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Common, Plugin } from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { Operation } from '@dxos/operation';\nimport { type CreateObject } from '@dxos/plugin-space/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n Compiler,\n OperationResolver,\n ReactSurface,\n ScriptSettings,\n} from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { ScriptEvents } from './types';\nimport { Notebook, ScriptOperation } from './types';\n\nexport const ScriptPlugin = Plugin.define(meta).pipe(\n Plugin.addModule({\n activatesOn: Common.ActivationEvent.SetupSettings,\n activate: ScriptSettings,\n }),\n Plugin.addModule({\n activatesOn: ScriptEvents.SetupCompiler,\n activate: Compiler,\n }),\n Common.Plugin.addTranslationsModule({ translations }),\n Common.Plugin.addMetadataModule({\n metadata: [\n {\n id: Script.Script.typename,\n metadata: {\n icon: 'ph--code--regular',\n iconHue: 'sky',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (script: Script.Script) => await Ref.Array.loadAll([script.source]),\n inputSchema: ScriptOperation.ScriptProps,\n createObject: ((props) =>\n Effect.gen(function* () {\n const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);\n return object;\n })) satisfies CreateObject,\n addToCollectionOnCreate: true,\n },\n },\n {\n id: Notebook.Notebook.typename,\n metadata: {\n icon: 'ph--notebook--regular',\n iconHue: 'sky',\n inputSchema: ScriptOperation.NotebookProps,\n createObject: ((props) => Effect.sync(() => Notebook.make(props))) satisfies CreateObject,\n addToCollectionOnCreate: true,\n },\n },\n ],\n }),\n Common.Plugin.addAppGraphModule({ activate: AppGraphBuilder }),\n Common.Plugin.addSchemaModule({ schema: [Script.Script] }),\n Common.Plugin.addSurfaceModule({ activate: ReactSurface }),\n Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),\n Common.Plugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Compiler = Capability.lazy('Compiler', () => import('./compiler'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ScriptSettings = Capability.lazy('ScriptSettings', () => import('./settings'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Script } from '@dxos/functions';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Notebook } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Script.Script.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 'object deleted label': 'Script deleted',\n },\n [Notebook.Notebook.typename]: {\n 'typename label': 'Notebook',\n 'typename label_zero': 'Notebooks',\n 'typename label_one': 'Notebook',\n 'typename label_other': 'Notebooks',\n 'object name placeholder': 'New notebook',\n 'rename object label': 'Rename notebook',\n 'delete object label': 'Delete notebook',\n 'object deleted label': 'Notebook deleted',\n },\n [meta.id]: {\n 'plugin name': 'Scripts',\n 'settings title': 'Scripts plugin settings',\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 'blueprint editor label': 'Blueprint',\n 'blueprint editor description': 'Create a blueprint that exposes this script as a tool.',\n 'blueprint instructions label': 'Instructions',\n 'blueprint instructions placeholder': 'Describe how this tool should be used.',\n 'create blueprint label': 'Create blueprint',\n 'creating label': 'Creating…',\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 'function panel label': 'Debug Function',\n 'script test label': 'Test',\n 'script logs label': 'Logs',\n\n 'deployment dialog title': 'Default Scripts',\n 'deployment dialog scripts found message': 'Script templates:',\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\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 'notebook cell placeholder': 'Enter script',\n 'notebook cell delete label': 'Delete cell',\n 'notebook cell prompt run label': 'Run',\n 'notebook cell insert markdown label': 'Insert Markdown',\n 'notebook cell insert script label': 'Insert Script',\n 'notebook cell insert prompt label': 'Insert Prompt',\n 'notebook cell insert query label': 'Insert Query',\n 'notebook markdown placeholder': 'Enter Markdown',\n 'notebook prompt placeholder': 'Enter prompt',\n 'notebook cell insert label': 'Insert cell',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,QAAQC,cAAc;AAC/B,SAASC,WAAW;AACpB,SAASC,UAAAA,eAAc;AACvB,SAASC,iBAAiB;;;ACL1B,SAASC,kBAAkB;AAEpB,IAAMC,kBAAkBC,WAAWC,KAAK,mBAAmB,MAAM,OAAO,kCAAA,CAAA;;;ACF/E,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,sBAAsBC,YAAWC,KAAK,uBAAuB,MAAM,OAAO,qCAAA,CAAA;;;ACFvF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,WAAWC,YAAWC,KAAK,YAAY,MAAM,OAAO,yBAAA,CAAA;;;ACFjE,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,oBAAoBC,YAAWC,KAAK,qBAAqB,MAAM,OAAO,mCAAA,CAAA;;;ACFnF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACFzE,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,iBAAiBC,YAAWC,KAAK,kBAAkB,MAAM,OAAO,yBAAA,CAAA;;;ACF7E,SAASC,cAAc;AAMhB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,OAAOA,OAAOC,QAAQ,GAAG;QACxB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,iBAASA,SAASD,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACE,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,qBAAqB;QACrB,2BAA2B;QAC3B,uBAAuB;QACvB,gCAAgC;QAChC,gBAAgB;QAChB,kBAAkB;QAClB,uBAAuB;QACvB,mBAAmB;QACnB,gBAAgB;QAChB,wBAAwB;QACxB,6BAA6B;QAC7B,6BAA6B;QAC7B,cAAc;QACd,oCAAoC;QACpC,sBAAsB;QACtB,0BAA0B;QAC1B,gCAAgC;QAChC,iCAAiC;QACjC,uCAAuC;QACvC,yBAAyB;QACzB,4BAA4B;QAC5B,iBAAiB;QACjB,oBAAoB;QACpB,0BAA0B;QAC1B,gCAAgC;QAChC,gCAAgC;QAChC,sCAAsC;QACtC,0BAA0B;QAC1B,kBAAkB;QAClB,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,wBAAwB;QACxB,qBAAqB;QACrB,qBAAqB;QAErB,2BAA2B;QAC3B,2CAA2C;QAC3C,uDAAuD;QACvD,yDAAyD;QACzD,+DAA+D;QAC/D,iEAAiE;QACjE,uCAAuC;QAEvC,qCAAqC;QACrC,uCAAuC;QACvC,2CAA2C;QAC3C,6CAA6C;QAC7C,2CAA2C;QAC3C,6CAA6C;QAC7C,2CAA2C;QAC3C,6CAA6C;QAC7C,iDAAiD;QACjD,mDAAmD;QACnD,iDAAiD;QACjD,mDAAmD;QAEnD,6BAA6B;QAC7B,8BAA8B;QAC9B,kCAAkC;QAClC,uCAAuC;QACvC,qCAAqC;QACrC,qCAAqC;QACrC,oCAAoC;QACpC,iCAAiC;QACjC,+BAA+B;QAC/B,8BAA8B;MAChC;IACF;EACF;;;;APlFK,IAAMC,eAAeC,OAAOC,OAAOC,IAAAA,EAAMC,KAC9CH,OAAOI,UAAU;EACfC,aAAaC,OAAOC,gBAAgBC;EACpCC,UAAUC;AACZ,CAAA,GACAV,OAAOI,UAAU;EACfC,aAAaM,aAAaC;EAC1BH,UAAUI;AACZ,CAAA,GACAP,OAAON,OAAOc,sBAAsB;EAAEC;AAAa,CAAA,GACnDT,OAAON,OAAOgB,kBAAkB;EAC9BC,UAAU;IACR;MACEC,IAAIC,QAAOA,OAAOC;MAClBH,UAAU;QACRI,MAAM;QACNC,SAAS;;QAETC,gBAAgB,OAAOC,WAA0B,MAAMC,IAAIC,MAAMC,QAAQ;UAACH,OAAOI;SAAO;QACxFC,aAAaC,gBAAgBC;QAC7BC,cAAe,CAACC,UACPC,WAAI,aAAA;AACT,gBAAM,EAAEC,OAAM,IAAK,OAAOC,UAAUC,OAAOP,gBAAgBQ,cAAcL,KAAAA;AACzE,iBAAOE;QACT,CAAA;QACFI,yBAAyB;MAC3B;IACF;IACA;MACErB,IAAIsB,iBAASA,SAASpB;MACtBH,UAAU;QACRI,MAAM;QACNC,SAAS;QACTO,aAAaC,gBAAgBW;QAC7BT,cAAe,CAACC,UAAiBS,YAAK,MAAMF,iBAASG,KAAKV,KAAAA,CAAAA;QAC1DM,yBAAyB;MAC3B;IACF;;AAEJ,CAAA,GACAjC,OAAON,OAAO4C,kBAAkB;EAAEnC,UAAUoC;AAAgB,CAAA,GAC5DvC,OAAON,OAAO8C,gBAAgB;EAAEC,QAAQ;IAAC5B,QAAOA;;AAAQ,CAAA,GACxDb,OAAON,OAAOgD,iBAAiB;EAAEvC,UAAUwC;AAAa,CAAA,GACxD3C,OAAON,OAAOkD,2BAA2B;EAAEzC,UAAU0C;AAAkB,CAAA,GACvE7C,OAAON,OAAOoD,6BAA6B;EAAE3C,UAAU4C;AAAoB,CAAA,GAC3ErD,OAAO2C,IAAI;",
6
- "names": ["Effect", "Common", "Plugin", "Ref", "Script", "Operation", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "Compiler", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Capability", "ScriptSettings", "Capability", "lazy", "Script", "translations", "Script", "typename", "Notebook", "meta", "id", "ScriptPlugin", "Plugin", "define", "meta", "pipe", "addModule", "activatesOn", "Common", "ActivationEvent", "SetupSettings", "activate", "ScriptSettings", "ScriptEvents", "SetupCompiler", "Compiler", "addTranslationsModule", "translations", "addMetadataModule", "metadata", "id", "Script", "typename", "icon", "iconHue", "loadReferences", "script", "Ref", "Array", "loadAll", "source", "inputSchema", "ScriptOperation", "ScriptProps", "createObject", "props", "gen", "object", "Operation", "invoke", "CreateScript", "addToCollectionOnCreate", "Notebook", "NotebookProps", "sync", "make", "addAppGraphModule", "AppGraphBuilder", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addOperationResolverModule", "OperationResolver", "addBlueprintDefinitionModule", "BlueprintDefinition"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { Ref } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { Operation } from '@dxos/operation';\nimport { type CreateObject } from '@dxos/plugin-space/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n Compiler,\n OperationResolver,\n ReactSurface,\n ScriptSettings,\n} from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { ScriptEvents } from './types';\nimport { Notebook, ScriptOperation } from './types';\n\nexport const ScriptPlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addMetadataModule({\n metadata: [\n {\n id: Script.Script.typename,\n metadata: {\n icon: 'ph--code--regular',\n iconHue: 'sky',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (script: Script.Script) => await Ref.Array.loadAll([script.source]),\n inputSchema: ScriptOperation.ScriptProps,\n createObject: ((props) =>\n Effect.gen(function* () {\n const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);\n return object;\n })) satisfies CreateObject,\n addToCollectionOnCreate: true,\n },\n },\n {\n id: Notebook.Notebook.typename,\n metadata: {\n icon: 'ph--notebook--regular',\n iconHue: 'sky',\n inputSchema: ScriptOperation.NotebookProps,\n createObject: ((props) => Effect.sync(() => Notebook.make(props))) satisfies CreateObject,\n addToCollectionOnCreate: true,\n },\n },\n ],\n }),\n AppPlugin.addOperationResolverModule({ activate: OperationResolver }),\n AppPlugin.addSchemaModule({ schema: [Script.Script] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupSettings,\n activate: ScriptSettings,\n }),\n Plugin.addModule({\n activatesOn: ScriptEvents.SetupCompiler,\n activate: Compiler,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Compiler = Capability.lazy('Compiler', () => import('./compiler'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ScriptSettings = Capability.lazy('ScriptSettings', () => import('./settings'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Script } from '@dxos/functions';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Notebook } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Script.Script.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 'object deleted label': 'Script deleted',\n },\n [Notebook.Notebook.typename]: {\n 'typename label': 'Notebook',\n 'typename label_zero': 'Notebooks',\n 'typename label_one': 'Notebook',\n 'typename label_other': 'Notebooks',\n 'object name placeholder': 'New notebook',\n 'rename object label': 'Rename notebook',\n 'delete object label': 'Delete notebook',\n 'object deleted label': 'Notebook deleted',\n },\n [meta.id]: {\n 'plugin name': 'Scripts',\n 'settings title': 'Scripts plugin settings',\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 'blueprint editor label': 'Blueprint',\n 'blueprint editor description': 'Create a blueprint that exposes this script as a tool.',\n 'blueprint instructions label': 'Instructions',\n 'blueprint instructions placeholder': 'Describe how this tool should be used.',\n 'create blueprint label': 'Create blueprint',\n 'creating label': 'Creating…',\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 'function panel label': 'Debug Function',\n 'script test label': 'Test',\n 'script logs label': 'Logs',\n\n 'deployment dialog title': 'Default Scripts',\n 'deployment dialog scripts found message': 'Script templates:',\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\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 'notebook cell placeholder': 'Enter script',\n 'notebook cell delete label': 'Delete cell',\n 'notebook cell prompt run label': 'Run',\n 'notebook cell insert markdown label': 'Insert Markdown',\n 'notebook cell insert script label': 'Insert Script',\n 'notebook cell insert prompt label': 'Insert Prompt',\n 'notebook cell insert query label': 'Insert Query',\n 'notebook markdown placeholder': 'Enter Markdown',\n 'notebook prompt placeholder': 'Enter prompt',\n 'notebook cell insert label': 'Insert cell',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "Plugin", "AppActivationEvents", "AppPlugin", "Ref", "Script", "Operation", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "Compiler", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Capability", "ScriptSettings", "Capability", "lazy", "Script", "translations", "Script", "typename", "Notebook", "meta", "id", "ScriptPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addAppGraphModule", "activate", "AppGraphBuilder", "addBlueprintDefinitionModule", "BlueprintDefinition", "addMetadataModule", "metadata", "id", "Script", "typename", "icon", "iconHue", "loadReferences", "script", "Ref", "Array", "loadAll", "source", "inputSchema", "ScriptOperation", "ScriptProps", "createObject", "props", "gen", "object", "Operation", "invoke", "CreateScript", "addToCollectionOnCreate", "Notebook", "NotebookProps", "sync", "make", "addOperationResolverModule", "OperationResolver", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations", "addModule", "activatesOn", "AppActivationEvents", "SetupSettings", "ScriptSettings", "ScriptEvents", "SetupCompiler", "Compiler"]
7
7
  }