@dxos/plugin-script 0.7.5-labs.5f04cf6 → 0.7.5-labs.8a82073

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 (181) hide show
  1. package/dist/lib/browser/{AutomationPanel-OOIRJFPJ.mjs → AutomationPanel-J3SZ5L3Y.mjs} +3 -3
  2. package/dist/lib/browser/{ScriptContainer-T2AOMDT3.mjs → ScriptContainer-QI4NQT7V.mjs} +92 -64
  3. package/dist/lib/browser/ScriptContainer-QI4NQT7V.mjs.map +7 -0
  4. package/dist/lib/browser/artifact-3UZZBCZ2.mjs +243 -0
  5. package/dist/lib/browser/artifact-3UZZBCZ2.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-SJ4J527G.mjs → chunk-45LXDWNF.mjs} +2 -2
  7. package/dist/lib/browser/{chunk-ZM6T4HPR.mjs → chunk-6MOQ4BP3.mjs} +2 -2
  8. package/dist/lib/browser/{chunk-SIOGRRPF.mjs → chunk-F22QPQ6G.mjs} +21 -9
  9. package/dist/lib/browser/chunk-F22QPQ6G.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-FVVCAWNP.mjs +21 -0
  11. package/dist/lib/browser/chunk-FVVCAWNP.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-XPGBHZ3L.mjs → chunk-N46LE7FS.mjs} +2 -2
  13. package/dist/lib/browser/{chunk-REL2R7SB.mjs → chunk-VIX22OMB.mjs} +11 -3
  14. package/dist/lib/browser/chunk-VIX22OMB.mjs.map +7 -0
  15. package/dist/lib/browser/{compiler-HT53ILG7.mjs → compiler-K3FNRDDN.mjs} +3 -3
  16. package/dist/lib/browser/index.mjs +20 -12
  17. package/dist/lib/browser/index.mjs.map +3 -3
  18. package/dist/lib/browser/intent-resolver-CMKQTLBG.mjs +45 -0
  19. package/dist/lib/browser/intent-resolver-CMKQTLBG.mjs.map +7 -0
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{react-surface-GAWVYTJ5.mjs → react-surface-YR4YO746.mjs} +12 -14
  22. package/dist/lib/browser/react-surface-YR4YO746.mjs.map +7 -0
  23. package/dist/lib/browser/{settings-YQQEU3DF.mjs → settings-SZCDKHWO.mjs} +3 -3
  24. package/dist/lib/browser/types.mjs +2 -2
  25. package/dist/lib/node/{AutomationPanel-EPRDDR3A.cjs → AutomationPanel-4M55FURO.cjs} +8 -8
  26. package/dist/lib/node/{ScriptContainer-BV56I4OL.cjs → ScriptContainer-FSKWJR6Z.cjs} +95 -67
  27. package/dist/lib/node/ScriptContainer-FSKWJR6Z.cjs.map +7 -0
  28. package/dist/lib/node/artifact-A2QXHFGS.cjs +262 -0
  29. package/dist/lib/node/artifact-A2QXHFGS.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-EFTZN5X7.cjs → chunk-5UH3F7TA.cjs} +8 -5
  31. package/dist/lib/node/chunk-5UH3F7TA.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-A2DI2G4D.cjs → chunk-ALY3N6PW.cjs} +6 -6
  33. package/dist/lib/node/{chunk-6VKZJ4MH.cjs → chunk-DJGLGRQV.cjs} +6 -6
  34. package/dist/lib/node/{chunk-DQRAVZM7.cjs → chunk-IID7WUQS.cjs} +6 -6
  35. package/dist/lib/node/{chunk-5V3XGLTR.cjs → chunk-JSANQCTA.cjs} +24 -12
  36. package/dist/lib/node/chunk-JSANQCTA.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-TJ4BTPOS.cjs → chunk-PKT5DD3O.cjs} +12 -6
  38. package/dist/lib/node/chunk-PKT5DD3O.cjs.map +7 -0
  39. package/dist/lib/node/{compiler-457ZR24G.cjs → compiler-P2HQB22H.cjs} +7 -7
  40. package/dist/lib/node/index.cjs +38 -30
  41. package/dist/lib/node/index.cjs.map +3 -3
  42. package/dist/lib/node/{intent-resolver-SUAPE7H3.cjs → intent-resolver-V5ASU5DW.cjs} +31 -28
  43. package/dist/lib/node/intent-resolver-V5ASU5DW.cjs.map +7 -0
  44. package/dist/lib/node/meta.json +1 -1
  45. package/dist/lib/node/{react-surface-OMBMSFZT.cjs → react-surface-MFTICFI5.cjs} +23 -25
  46. package/dist/lib/node/react-surface-MFTICFI5.cjs.map +7 -0
  47. package/dist/lib/node/{settings-NGHDYAVK.cjs → settings-SZFSMSKM.cjs} +9 -9
  48. package/dist/lib/node/types.cjs +4 -4
  49. package/dist/lib/node/types.cjs.map +1 -1
  50. package/dist/lib/node-esm/{AutomationPanel-DMLAGQS5.mjs → AutomationPanel-W6SKG35R.mjs} +3 -3
  51. package/dist/lib/node-esm/{ScriptContainer-3S5VHJVR.mjs → ScriptContainer-MNETNTNQ.mjs} +92 -64
  52. package/dist/lib/node-esm/ScriptContainer-MNETNTNQ.mjs.map +7 -0
  53. package/dist/lib/node-esm/artifact-RFZQ2AJJ.mjs +245 -0
  54. package/dist/lib/node-esm/artifact-RFZQ2AJJ.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-XUWS7OTK.mjs → chunk-CGF7EOGD.mjs} +2 -2
  56. package/dist/lib/node-esm/{chunk-675XSDRN.mjs → chunk-CP5LXTK5.mjs} +2 -2
  57. package/dist/lib/node-esm/{chunk-XPIKUBGS.mjs → chunk-FGO5DVO2.mjs} +21 -9
  58. package/dist/lib/node-esm/chunk-FGO5DVO2.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-JJZYWSD7.mjs → chunk-NBAL5DXN.mjs} +11 -3
  60. package/dist/lib/node-esm/chunk-NBAL5DXN.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-BHP545D7.mjs → chunk-P2V2Y5LV.mjs} +5 -2
  62. package/dist/lib/node-esm/chunk-P2V2Y5LV.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-JHGOPQVO.mjs → chunk-UNQFIERE.mjs} +2 -2
  64. package/dist/lib/node-esm/{compiler-PEARFTFR.mjs → compiler-PDN46H4Y.mjs} +3 -3
  65. package/dist/lib/node-esm/index.mjs +20 -12
  66. package/dist/lib/node-esm/index.mjs.map +3 -3
  67. package/dist/lib/node-esm/intent-resolver-75BHFRUK.mjs +46 -0
  68. package/dist/lib/node-esm/intent-resolver-75BHFRUK.mjs.map +7 -0
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/{react-surface-J7NLV2V4.mjs → react-surface-NAK6LMCY.mjs} +12 -14
  71. package/dist/lib/node-esm/react-surface-NAK6LMCY.mjs.map +7 -0
  72. package/dist/lib/node-esm/{settings-XGXDY4NI.mjs → settings-GR4O2WHZ.mjs} +3 -3
  73. package/dist/lib/node-esm/types.mjs +2 -2
  74. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/artifact.d.ts +11 -0
  76. package/dist/types/src/capabilities/artifact.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/index.d.ts +5 -4
  78. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  81. package/dist/types/src/components/ScriptContainer.d.ts +2 -2
  82. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  83. package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
  84. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +1 -1
  85. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  86. package/dist/types/src/components/index.d.ts +1 -1
  87. package/dist/types/src/components/index.d.ts.map +1 -1
  88. package/dist/types/src/hooks/deploy.d.ts.map +1 -0
  89. package/dist/types/src/hooks/format.d.ts.map +1 -0
  90. package/dist/types/src/hooks/index.d.ts +7 -0
  91. package/dist/types/src/hooks/index.d.ts.map +1 -0
  92. package/dist/types/src/{components/ScriptToolbar/templateSelect.d.ts → hooks/template.d.ts} +1 -1
  93. package/dist/types/src/hooks/template.d.ts.map +1 -0
  94. package/dist/types/src/{components/ScriptToolbar → hooks}/useToolbarAction.d.ts +1 -1
  95. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -0
  96. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -0
  97. package/dist/types/src/hooks/view.d.ts.map +1 -0
  98. package/dist/types/src/meta.d.ts +1 -0
  99. package/dist/types/src/meta.d.ts.map +1 -1
  100. package/dist/types/src/templates/echo.d.ts.map +1 -1
  101. package/dist/types/src/templates/forex-effect.d.ts +6 -0
  102. package/dist/types/src/templates/forex-effect.d.ts.map +1 -0
  103. package/dist/types/src/templates/forex.d.ts +1 -1
  104. package/dist/types/src/templates/forex.d.ts.map +1 -1
  105. package/dist/types/src/templates/index.d.ts.map +1 -1
  106. package/dist/types/src/translations.d.ts +6 -0
  107. package/dist/types/src/translations.d.ts.map +1 -1
  108. package/dist/types/tsconfig.tsbuildinfo +1 -1
  109. package/package.json +44 -41
  110. package/src/ScriptPlugin.tsx +10 -13
  111. package/src/capabilities/artifact.ts +219 -0
  112. package/src/capabilities/index.ts +1 -0
  113. package/src/capabilities/intent-resolver.ts +25 -22
  114. package/src/capabilities/react-surface.tsx +8 -8
  115. package/src/components/ScriptContainer.tsx +10 -5
  116. package/src/components/ScriptSettings/ScriptSettings.tsx +3 -3
  117. package/src/components/ScriptSettingsPanel.tsx +16 -2
  118. package/src/components/ScriptToolbar/ScriptToolbar.tsx +8 -6
  119. package/src/components/TypescriptEditor/TypescriptEditor.tsx +1 -1
  120. package/src/{components/ScriptToolbar → hooks}/deploy.ts +14 -2
  121. package/src/{components/ScriptToolbar → hooks}/format.ts +1 -1
  122. package/src/hooks/index.ts +11 -0
  123. package/src/{components/ScriptToolbar/templateSelect.ts → hooks/template.ts} +2 -2
  124. package/src/{components/ScriptToolbar → hooks}/useToolbarAction.ts +1 -1
  125. package/src/{components/ScriptToolbar → hooks}/view.ts +1 -1
  126. package/src/meta.ts +3 -1
  127. package/src/templates/echo.ts +5 -1
  128. package/src/templates/forex-effect.ts +42 -0
  129. package/src/templates/forex.ts +21 -13
  130. package/src/templates/index.ts +7 -0
  131. package/src/translations.ts +2 -0
  132. package/dist/lib/browser/ScriptContainer-T2AOMDT3.mjs.map +0 -7
  133. package/dist/lib/browser/chunk-5BU5ERNU.mjs +0 -18
  134. package/dist/lib/browser/chunk-5BU5ERNU.mjs.map +0 -7
  135. package/dist/lib/browser/chunk-REL2R7SB.mjs.map +0 -7
  136. package/dist/lib/browser/chunk-SIOGRRPF.mjs.map +0 -7
  137. package/dist/lib/browser/intent-resolver-YPHT6HDZ.mjs +0 -42
  138. package/dist/lib/browser/intent-resolver-YPHT6HDZ.mjs.map +0 -7
  139. package/dist/lib/browser/react-surface-GAWVYTJ5.mjs.map +0 -7
  140. package/dist/lib/node/ScriptContainer-BV56I4OL.cjs.map +0 -7
  141. package/dist/lib/node/chunk-5V3XGLTR.cjs.map +0 -7
  142. package/dist/lib/node/chunk-EFTZN5X7.cjs.map +0 -7
  143. package/dist/lib/node/chunk-TJ4BTPOS.cjs.map +0 -7
  144. package/dist/lib/node/intent-resolver-SUAPE7H3.cjs.map +0 -7
  145. package/dist/lib/node/react-surface-OMBMSFZT.cjs.map +0 -7
  146. package/dist/lib/node-esm/ScriptContainer-3S5VHJVR.mjs.map +0 -7
  147. package/dist/lib/node-esm/chunk-BHP545D7.mjs.map +0 -7
  148. package/dist/lib/node-esm/chunk-JJZYWSD7.mjs.map +0 -7
  149. package/dist/lib/node-esm/chunk-XPIKUBGS.mjs.map +0 -7
  150. package/dist/lib/node-esm/intent-resolver-SZJXQ3CW.mjs +0 -43
  151. package/dist/lib/node-esm/intent-resolver-SZJXQ3CW.mjs.map +0 -7
  152. package/dist/lib/node-esm/react-surface-J7NLV2V4.mjs.map +0 -7
  153. package/dist/types/src/components/ScriptToolbar/deploy.d.ts.map +0 -1
  154. package/dist/types/src/components/ScriptToolbar/format.d.ts.map +0 -1
  155. package/dist/types/src/components/ScriptToolbar/templateSelect.d.ts.map +0 -1
  156. package/dist/types/src/components/ScriptToolbar/useToolbarAction.d.ts.map +0 -1
  157. package/dist/types/src/components/ScriptToolbar/useToolbarState.d.ts.map +0 -1
  158. package/dist/types/src/components/ScriptToolbar/view.d.ts.map +0 -1
  159. /package/dist/lib/browser/{AutomationPanel-OOIRJFPJ.mjs.map → AutomationPanel-J3SZ5L3Y.mjs.map} +0 -0
  160. /package/dist/lib/browser/{chunk-SJ4J527G.mjs.map → chunk-45LXDWNF.mjs.map} +0 -0
  161. /package/dist/lib/browser/{chunk-ZM6T4HPR.mjs.map → chunk-6MOQ4BP3.mjs.map} +0 -0
  162. /package/dist/lib/browser/{chunk-XPGBHZ3L.mjs.map → chunk-N46LE7FS.mjs.map} +0 -0
  163. /package/dist/lib/browser/{compiler-HT53ILG7.mjs.map → compiler-K3FNRDDN.mjs.map} +0 -0
  164. /package/dist/lib/browser/{settings-YQQEU3DF.mjs.map → settings-SZCDKHWO.mjs.map} +0 -0
  165. /package/dist/lib/node/{AutomationPanel-EPRDDR3A.cjs.map → AutomationPanel-4M55FURO.cjs.map} +0 -0
  166. /package/dist/lib/node/{chunk-A2DI2G4D.cjs.map → chunk-ALY3N6PW.cjs.map} +0 -0
  167. /package/dist/lib/node/{chunk-6VKZJ4MH.cjs.map → chunk-DJGLGRQV.cjs.map} +0 -0
  168. /package/dist/lib/node/{chunk-DQRAVZM7.cjs.map → chunk-IID7WUQS.cjs.map} +0 -0
  169. /package/dist/lib/node/{compiler-457ZR24G.cjs.map → compiler-P2HQB22H.cjs.map} +0 -0
  170. /package/dist/lib/node/{settings-NGHDYAVK.cjs.map → settings-SZFSMSKM.cjs.map} +0 -0
  171. /package/dist/lib/node-esm/{AutomationPanel-DMLAGQS5.mjs.map → AutomationPanel-W6SKG35R.mjs.map} +0 -0
  172. /package/dist/lib/node-esm/{chunk-XUWS7OTK.mjs.map → chunk-CGF7EOGD.mjs.map} +0 -0
  173. /package/dist/lib/node-esm/{chunk-675XSDRN.mjs.map → chunk-CP5LXTK5.mjs.map} +0 -0
  174. /package/dist/lib/node-esm/{chunk-JHGOPQVO.mjs.map → chunk-UNQFIERE.mjs.map} +0 -0
  175. /package/dist/lib/node-esm/{compiler-PEARFTFR.mjs.map → compiler-PDN46H4Y.mjs.map} +0 -0
  176. /package/dist/lib/node-esm/{settings-XGXDY4NI.mjs.map → settings-GR4O2WHZ.mjs.map} +0 -0
  177. /package/dist/types/src/{components/ScriptToolbar → hooks}/deploy.d.ts +0 -0
  178. /package/dist/types/src/{components/ScriptToolbar → hooks}/format.d.ts +0 -0
  179. /package/dist/types/src/{components/ScriptToolbar → hooks}/useToolbarState.d.ts +0 -0
  180. /package/dist/types/src/{components/ScriptToolbar → hooks}/view.d.ts +0 -0
  181. /package/src/{components/ScriptToolbar → hooks}/useToolbarState.ts +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["raw-loader:./chat.ts?raw", "raw-loader:./chess.ts?raw", "raw-loader:./echo.ts?raw", "raw-loader:./email.ts?raw", "raw-loader:./forex.ts?raw", "raw-loader:./forex-effect.ts?raw", "../../../src/templates/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\n// @ts-ignore\nimport { transformServerSentEvents } from 'https://esm.sh/@dxos/script-toolbox';\n\n/**\n * Chatbot that answers questions based on the context data.\n */\nexport default async ({\n event: {\n data: { request },\n },\n context: { space, ai },\n}: any) => {\n const textBody = await request.text();\n let parsedRequest: any;\n try {\n parsedRequest = JSON.parse(textBody);\n } catch (err) {\n const answer = await ai.run('@cf/meta/llama-3.1-8b-instruct', {\n stream: true,\n prompt: `\n Using only the context data below to answer the user's question.\n If you cannot answer the question from the provided content, then reply with \"I don't know.\"\n\n CONTEXT:\n ${await getContext({ space })}\n\n QUESTION:\n ${textBody}\n `,\n });\n return new Response(transformServerSentEvents(answer));\n }\n\n const promptId = parsedRequest.trigger.promptId;\n const promptObject = await space.crud.query({ id: promptId }).first();\n\n if (parsedRequest.data.objects.length !== 1) {\n return new Response('Message batches not supported.');\n }\n\n const messageId = parsedRequest.data.objects[0];\n let message;\n try {\n message = await space.crud.query({ id: messageId }).first();\n } catch (err) {\n return new Response('Message not replicated yet.', { status: 409 });\n }\n\n if (message.text.includes('--------')) {\n return new Response('Message was already processed.');\n }\n\n let prompt = promptObject.template;\n for (const input of promptObject.inputs) {\n let value: string | null = null;\n if (input.type === ChainInputType.VALUE) {\n value = String(input.value);\n } else if (input.type === ChainInputType.RETRIEVER) {\n value = await getContext({ space });\n } else if (input.type === ChainInputType.PASS_THROUGH) {\n value = message.text;\n }\n if (value) {\n prompt = prompt.replaceAll(`{${input.name}}`, value);\n }\n }\n\n const answer = await ai.run('@cf/meta/llama-3.1-8b-instruct', {\n stream: false,\n prompt,\n });\n const response = { response: answer.response, prompt, message };\n const textWithAnswer = message.text + '\\n--------\\n\\n' + answer.response;\n await space.crud.update({ id: messageId }, { text: textWithAnswer });\n\n return new Response(JSON.stringify(response));\n};\n\nconst getContext = async ({ space }: any) => {\n let context = '';\n const { objects: docs } = await space.crud.query({ __typename: 'dxos.org/type/Document' }).run();\n for (const doc of docs) {\n const { content } = await space.crud.query({ id: doc.content }).first();\n context += content + '\\n\\n';\n }\n return context;\n};\n\nenum ChainInputType {\n VALUE = 0,\n PASS_THROUGH = 1,\n RETRIEVER = 2,\n FUNCTION = 3,\n QUERY = 4,\n RESOLVER = 5,\n CONTEXT = 6,\n SCHEMA = 7,\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// @ts-ignore\nimport { Chess } from 'https://esm.sh/chess.js@0.13.1';\n\n/**\n * Plays a random move in a chess game.\n */\nexport default async ({\n event: {\n data: { request },\n },\n context: { space },\n}: any) => {\n const {\n data: {\n objects: [gameId],\n player = 'b',\n },\n } = await request.json();\n\n const { pgn } = await space.crud.query({ id: gameId }).first();\n const game = new Chess();\n game.load_pgn(pgn);\n if (game.turn() !== player) {\n return new Response('Invalid turn', { status: 409 });\n }\n\n const moves = game.moves();\n const move = moves[Math.floor(Math.random() * moves.length)];\n if (!move) {\n return new Response('No legal moves', { status: 406 });\n }\n\n game.move(move);\n const newPgn = game.pgn();\n await space.crud.update({ id: gameId }, { pgn: newPgn });\n return new Response(game.ascii());\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\n/**\n * Echos the request data.\n */\nexport default async ({\n event: {\n data: { request },\n },\n}: any) => {\n const data = await request.json();\n return new Response(JSON.stringify(data ?? {}), {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\n/**\n * Appends a message to the end of a Document configured through a trigger.\n * Trigger must have a targetDocumentId field set in Meta.\n */\nexport default async ({\n event: {\n data: { request },\n },\n context: { space },\n}: any) => {\n const { data, trigger } = (await request.json()) as RequestPayload;\n\n const documentId = trigger.meta.targetDocumentId;\n const document = await space.db.query({ id: documentId }, { format: 'plain' }).first();\n\n const contentId = document.content['/'].split(':')[3];\n const documentContent = await space.db.query({ id: contentId }, { format: 'plain' }).first();\n const modifiedContent = [\n documentContent.content,\n '',\n '---',\n `**From:** ${data.from}`,\n `**Subject:** ${data.subject}`,\n `**Date:** ${data.created}`,\n '',\n data.body,\n ].join('\\n');\n\n await space.db.update({ id: contentId }, { content: modifiedContent });\n\n return new Response(JSON.stringify({ success: true }));\n};\n\ntype RequestPayload = {\n data: { from: string; subject: string; created: string; body: string };\n trigger: { meta: { targetDocumentId: string } };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @ts-ignore\nimport { defineFunction, S } from 'dxos:functions';\n\n/**\n * Returns the exchange rate between two currencies.\n */\nexport default defineFunction({\n inputSchema: S.Struct({\n from: S.String.annotations({ description: 'The source currency' }),\n to: S.String.annotations({ description: 'The target currency' }),\n }),\n\n handler: async ({\n event: {\n data: { from, to },\n },\n }: any) => {\n const res = await fetch(`https://free.ratesdb.com/v1/rates?from=${from}&to=${to}`);\n const {\n data: { rates },\n } = await res.json();\n\n return rates[to].toString();\n },\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @ts-ignore\nimport { defineFunction, S } from 'dxos:functions';\nimport {\n HttpClient,\n HttpClientRequest,\n HttpClientResponse,\n HttpClientError,\n // @ts-ignore\n} from 'https://esm.sh/@effect/platform@0.61.0?deps=effect@3.6.0';\n// @ts-ignore\nimport type { Cause } from 'https://esm.sh/effect@3.6.0';\n// @ts-ignore\nimport { Effect, Schedule } from 'https://esm.sh/effect@3.6.0';\n\n/**\n * Returns the exchange rate between two currencies.\n */\nexport default defineFunction({\n inputSchema: S.Struct({\n from: S.String.annotations({ description: 'The source currency' }),\n to: S.String.annotations({ description: 'The target currency' }),\n }),\n\n outputSchema: S.String,\n\n handler: async ({\n event: {\n data: { from, to },\n },\n }: any) =>\n HttpClientRequest.get(`https://free.ratesdb.com/v1/rates?from=${from}&to=${to}`).pipe(\n HttpClient.fetchOk,\n HttpClientResponse.json,\n Effect.timeout('1 second'),\n Effect.retry(Schedule.exponential(1000).pipe(Schedule.compose(Schedule.recurs(3)))),\n Effect.map(({ data: { rates } }: any) => rates[to].toString()),\n ),\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// @ts-ignore\nimport chat from './chat.ts?raw';\n// @ts-ignore\nimport chess from './chess.ts?raw';\n// @ts-ignore\nimport echo from './echo.ts?raw';\n// @ts-ignore\nimport email from './email.ts?raw';\n// @ts-ignore\nimport forex from './forex.ts?raw';\n// @ts-ignore\nimport forexEffect from './forex-effect.ts?raw';\n\nconst removeHeader = (str: string) => str.split('\\n').slice(4).join('\\n');\n\nexport type Template = {\n id: string;\n name: string;\n source: string;\n presetId?: string;\n};\n\nexport const templates: Template[] = [\n {\n id: 'dxos.org/script/echo',\n name: 'Echo',\n source: removeHeader(echo),\n },\n {\n id: 'dxos.org/script/forex',\n name: 'Forex',\n source: removeHeader(forex),\n },\n {\n id: 'dxos.org/script/forex-effect',\n name: 'Forex (Effect)',\n source: removeHeader(forexEffect),\n },\n {\n id: 'dxos.org/script/gpt',\n name: 'Gpt',\n source: removeHeader(chat),\n presetId: 'dxos.org/function/gpt',\n },\n {\n id: 'dxos.org/script/chess',\n name: 'Chess',\n source: removeHeader(chess),\n presetId: 'dxos.org/function/chess',\n },\n {\n id: 'dxos.org/script/email',\n name: 'Email',\n source: removeHeader(email),\n presetId: 'dxos.org/function/email',\n },\n];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,eAAA;ACAA,IAAA,gBAAA;ACAA,IAAA,eAAA;ACAA,IAAA,gBAAA;ACAA,IAAA,gBAAA;ACAA,IAAA,uBAAA;ACiBA,IAAMA,eAAe,CAACC,QAAgBA,IAAIC,MAAM,IAAA,EAAMC,MAAM,CAAA,EAAGC,KAAK,IAAA;AAS7D,IAAMC,YAAwB;EACnC;IACEC,IAAI;IACJC,MAAM;IACNC,QAAQR,aAAaS,YAAAA;EACvB;EACA;IACEH,IAAI;IACJC,MAAM;IACNC,QAAQR,aAAaU,aAAAA;EACvB;EACA;IACEJ,IAAI;IACJC,MAAM;IACNC,QAAQR,aAAaW,oBAAAA;EACvB;EACA;IACEL,IAAI;IACJC,MAAM;IACNC,QAAQR,aAAaY,YAAAA;IACrBC,UAAU;EACZ;EACA;IACEP,IAAI;IACJC,MAAM;IACNC,QAAQR,aAAac,aAAAA;IACrBD,UAAU;EACZ;EACA;IACEP,IAAI;IACJC,MAAM;IACNC,QAAQR,aAAae,aAAAA;IACrBF,UAAU;EACZ;;",
6
+ "names": ["removeHeader", "str", "split", "slice", "join", "templates", "id", "name", "source", "echo", "forex", "forexEffect", "chat", "presetId", "chess", "email"]
7
+ }
@@ -26,14 +26,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var compiler_457ZR24G_exports = {};
30
- __export(compiler_457ZR24G_exports, {
29
+ var compiler_P2HQB22H_exports = {};
30
+ __export(compiler_P2HQB22H_exports, {
31
31
  default: () => compiler_default
32
32
  });
33
- module.exports = __toCommonJS(compiler_457ZR24G_exports);
33
+ module.exports = __toCommonJS(compiler_P2HQB22H_exports);
34
34
  var import_chunk_T4TXCRN5 = require("./chunk-T4TXCRN5.cjs");
35
- var import_chunk_A2DI2G4D = require("./chunk-A2DI2G4D.cjs");
36
- var import_chunk_EFTZN5X7 = require("./chunk-EFTZN5X7.cjs");
35
+ var import_chunk_ALY3N6PW = require("./chunk-ALY3N6PW.cjs");
36
+ var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
37
37
  var import_esbuild = __toESM(require("esbuild-wasm/esbuild.wasm?url"));
38
38
  var import_app_framework = require("@dxos/app-framework");
39
39
  var import_vfs = require("@typescript/vfs");
@@ -99,6 +99,6 @@ var compiler_default = async () => {
99
99
  await (0, import_chunk_T4TXCRN5.initializeBundler)({
100
100
  wasmUrl: import_esbuild.default
101
101
  });
102
- return (0, import_app_framework.contributes)(import_chunk_A2DI2G4D.ScriptCapabilities.Compiler, compiler);
102
+ return (0, import_app_framework.contributes)(import_chunk_ALY3N6PW.ScriptCapabilities.Compiler, compiler);
103
103
  };
104
- //# sourceMappingURL=compiler-457ZR24G.cjs.map
104
+ //# sourceMappingURL=compiler-P2HQB22H.cjs.map
@@ -28,44 +28,47 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var node_exports = {};
30
30
  __export(node_exports, {
31
- AutomationPanel: () => import_chunk_5V3XGLTR.AutomationPanel,
31
+ AutomationPanel: () => import_chunk_JSANQCTA.AutomationPanel,
32
32
  Bundler: () => import_chunk_T4TXCRN5.Bundler,
33
- SCRIPT_PLUGIN: () => import_chunk_EFTZN5X7.SCRIPT_PLUGIN,
34
- ScriptCapabilities: () => import_chunk_A2DI2G4D.ScriptCapabilities,
35
- ScriptContainer: () => import_chunk_5V3XGLTR.ScriptContainer,
33
+ SCRIPT_PLUGIN: () => import_chunk_5UH3F7TA.SCRIPT_PLUGIN,
34
+ ScriptCapabilities: () => import_chunk_ALY3N6PW.ScriptCapabilities,
35
+ ScriptContainer: () => import_chunk_JSANQCTA.ScriptContainer,
36
36
  ScriptPlugin: () => ScriptPlugin,
37
- ScriptSettings: () => import_chunk_5V3XGLTR.ScriptSettings,
38
- ScriptSettingsPanel: () => import_chunk_5V3XGLTR.ScriptSettingsPanel,
37
+ ScriptSettings: () => import_chunk_JSANQCTA.ScriptSettings,
38
+ ScriptSettingsPanel: () => import_chunk_JSANQCTA.ScriptSettingsPanel,
39
39
  initializeBundler: () => import_chunk_T4TXCRN5.initializeBundler,
40
- meta: () => import_chunk_EFTZN5X7.meta
40
+ meta: () => import_chunk_5UH3F7TA.meta
41
41
  });
42
42
  module.exports = __toCommonJS(node_exports);
43
43
  var import_chunk_T4TXCRN5 = require("./chunk-T4TXCRN5.cjs");
44
- var import_chunk_5V3XGLTR = require("./chunk-5V3XGLTR.cjs");
45
- var import_chunk_A2DI2G4D = require("./chunk-A2DI2G4D.cjs");
46
- var import_chunk_6VKZJ4MH = require("./chunk-6VKZJ4MH.cjs");
47
- var import_chunk_EFTZN5X7 = require("./chunk-EFTZN5X7.cjs");
44
+ var import_chunk_JSANQCTA = require("./chunk-JSANQCTA.cjs");
45
+ var import_chunk_ALY3N6PW = require("./chunk-ALY3N6PW.cjs");
46
+ var import_chunk_DJGLGRQV = require("./chunk-DJGLGRQV.cjs");
47
+ var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
48
48
  var import_app_framework = require("@dxos/app-framework");
49
49
  var import_app_framework2 = require("@dxos/app-framework");
50
50
  var import_functions = require("@dxos/functions");
51
51
  var import_live_object = require("@dxos/live-object");
52
52
  var import_plugin_client = require("@dxos/plugin-client");
53
53
  var import_functions2 = require("@dxos/functions");
54
- var Compiler = (0, import_app_framework.lazy)(() => import("./compiler-457ZR24G.cjs"));
55
- var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-SUAPE7H3.cjs"));
56
- var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-OMBMSFZT.cjs"));
57
- var ScriptSettings2 = (0, import_app_framework.lazy)(() => import("./settings-NGHDYAVK.cjs"));
54
+ var Compiler = (0, import_app_framework.lazy)(() => import("./compiler-P2HQB22H.cjs"));
55
+ var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-V5ASU5DW.cjs"));
56
+ var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-MFTICFI5.cjs"));
57
+ var ScriptSettings2 = (0, import_app_framework.lazy)(() => import("./settings-SZFSMSKM.cjs"));
58
+ var Artifact = (0, import_app_framework.lazy)(() => import("./artifact-A2QXHFGS.cjs"));
58
59
  var translations_default = [
59
60
  {
60
61
  "en-US": {
61
62
  [import_functions2.ScriptType.typename]: {
62
63
  "typename label": "Script"
63
64
  },
64
- [import_chunk_EFTZN5X7.SCRIPT_PLUGIN]: {
65
+ [import_chunk_5UH3F7TA.SCRIPT_PLUGIN]: {
65
66
  "plugin name": "Scripts",
66
67
  "object title placeholder": "New script",
67
68
  "create object label": "Create script",
68
69
  "create stack section label": "Create script",
70
+ "description label": "Description",
71
+ "description placeholder": "Describe what the script does.",
69
72
  "binding placeholder": "Function name",
70
73
  "function request placeholder": "Function request",
71
74
  "deploy label": "Deploy",
@@ -101,37 +104,37 @@ var translations_default = [
101
104
  }
102
105
  }
103
106
  ];
104
- var ScriptPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_EFTZN5X7.meta, [
107
+ var ScriptPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_5UH3F7TA.meta, [
105
108
  (0, import_app_framework2.defineModule)({
106
- id: `${import_chunk_EFTZN5X7.meta.id}/module/settings`,
109
+ id: `${import_chunk_5UH3F7TA.meta.id}/module/settings`,
107
110
  activatesOn: import_app_framework2.Events.SetupSettings,
108
111
  activate: ScriptSettings2
109
112
  }),
110
113
  (0, import_app_framework2.defineModule)({
111
- id: `${import_chunk_EFTZN5X7.meta.id}/module/compiler`,
114
+ id: `${import_chunk_5UH3F7TA.meta.id}/module/compiler`,
112
115
  activatesOn: import_app_framework2.Events.Startup,
113
116
  activate: Compiler
114
117
  }),
115
118
  (0, import_app_framework2.defineModule)({
116
- id: `${import_chunk_EFTZN5X7.meta.id}/module/translations`,
119
+ id: `${import_chunk_5UH3F7TA.meta.id}/module/translations`,
117
120
  activatesOn: import_app_framework2.Events.SetupTranslations,
118
121
  activate: () => (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Translations, translations_default)
119
122
  }),
120
123
  (0, import_app_framework2.defineModule)({
121
- id: `${import_chunk_EFTZN5X7.meta.id}/module/metadata`,
122
- activatesOn: (0, import_app_framework2.oneOf)(import_app_framework2.Events.Startup, import_app_framework2.Events.SetupAppGraph),
124
+ id: `${import_chunk_5UH3F7TA.meta.id}/module/metadata`,
125
+ activatesOn: import_app_framework2.Events.SetupMetadata,
123
126
  activate: () => (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
124
127
  id: import_functions.ScriptType.typename,
125
128
  metadata: {
126
- creationSchema: import_chunk_6VKZJ4MH.ScriptAction.CreateScriptSchema,
127
- createObject: (props, { space }) => (0, import_app_framework2.createIntent)(import_chunk_6VKZJ4MH.ScriptAction.Create, {
129
+ creationSchema: import_chunk_DJGLGRQV.ScriptAction.CreateScriptSchema,
130
+ createObject: (props, { space }) => (0, import_app_framework2.createIntent)(import_chunk_DJGLGRQV.ScriptAction.Create, {
128
131
  ...props,
129
132
  space
130
133
  }),
131
134
  placeholder: [
132
135
  "object title placeholder",
133
136
  {
134
- ns: import_chunk_EFTZN5X7.SCRIPT_PLUGIN
137
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
135
138
  }
136
139
  ],
137
140
  icon: "ph--code--regular",
@@ -143,8 +146,8 @@ var ScriptPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_EF
143
146
  })
144
147
  }),
145
148
  (0, import_app_framework2.defineModule)({
146
- id: `${import_chunk_EFTZN5X7.meta.id}/module/schema`,
147
- activatesOn: import_plugin_client.ClientEvents.SetupClient,
149
+ id: `${import_chunk_5UH3F7TA.meta.id}/module/schema`,
150
+ activatesOn: import_plugin_client.ClientEvents.SetupSchema,
148
151
  activate: () => [
149
152
  (0, import_app_framework2.contributes)(import_plugin_client.ClientCapabilities.SystemSchema, [
150
153
  import_functions.FunctionType
@@ -155,14 +158,19 @@ var ScriptPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_EF
155
158
  ]
156
159
  }),
157
160
  (0, import_app_framework2.defineModule)({
158
- id: `${import_chunk_EFTZN5X7.meta.id}/module/react-surface`,
159
- activatesOn: import_app_framework2.Events.Startup,
161
+ id: `${import_chunk_5UH3F7TA.meta.id}/module/react-surface`,
162
+ activatesOn: import_app_framework2.Events.SetupSurfaces,
160
163
  activate: ReactSurface
161
164
  }),
162
165
  (0, import_app_framework2.defineModule)({
163
- id: `${import_chunk_EFTZN5X7.meta.id}/module/intent-resolver`,
166
+ id: `${import_chunk_5UH3F7TA.meta.id}/module/intent-resolver`,
164
167
  activatesOn: import_app_framework2.Events.SetupIntents,
165
168
  activate: IntentResolver
169
+ }),
170
+ (0, import_app_framework2.defineModule)({
171
+ id: `${import_chunk_5UH3F7TA.meta.id}/module/artifact`,
172
+ activatesOn: import_app_framework2.Events.Startup,
173
+ activate: Artifact
166
174
  })
167
175
  ]);
168
176
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/index.ts", "../../../src/ScriptPlugin.tsx", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\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\n// @ts-ignore\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n Events,\n oneOf,\n} from '@dxos/app-framework';\nimport { type Space } from '@dxos/client/echo';\nimport { FunctionType, ScriptType } from '@dxos/functions';\nimport { RefArray } from '@dxos/live-object';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\n\nimport { Compiler, IntentResolver, ReactSurface, ScriptSettings } from './capabilities';\nimport { meta, SCRIPT_PLUGIN } 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: Events.Startup,\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: oneOf(Events.Startup, Events.SetupAppGraph),\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: ScriptType.typename,\n metadata: {\n creationSchema: ScriptAction.CreateScriptSchema,\n createObject: (props: ScriptAction.CreateScriptProps, { space }: { space: Space }) =>\n createIntent(ScriptAction.Create, { ...props, space }),\n placeholder: ['object title placeholder', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--code--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (script: ScriptType) => await RefArray.loadAll([script.source]),\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupClient,\n activate: () => [\n contributes(ClientCapabilities.SystemSchema, [FunctionType]),\n contributes(ClientCapabilities.Schema, [ScriptType]),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.Startup,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntents,\n activate: IntentResolver,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptType } from '@dxos/functions';\n\nimport { SCRIPT_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ScriptType.typename]: {\n 'typename label': 'Script',\n },\n [SCRIPT_PLUGIN]: {\n 'plugin name': 'Scripts',\n 'object title placeholder': 'New script',\n 'create object label': 'Create script',\n 'create stack section label': 'Create script',\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': 'BINDING',\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 'view group label': 'View',\n 'view editor label': 'Editor',\n 'view split label': 'Split',\n 'view debug label': 'Debug',\n 'template select group label': 'Select template',\n },\n },\n },\n];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAqB;ACErB,IAAAA,wBAQO;AAEP,uBAAyC;AACzC,yBAAyB;AACzB,2BAAiD;ACdjD,IAAAC,oBAA2B;AFEpB,IAAMC,eAAWC,2BAAK,MAAM,OAAO,yBAAA,CAAA;AACnC,IAAMC,qBAAiBD,2BAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,mBAAeF,2BAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMG,sBAAiBH,2BAAK,MAAM,OAAO,yBAAA,CAAA;AEDhD,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACI,6BAAWC,QAAQ,GAAG;QACrB,kBAAkB;MACpB;MACA,CAACC,mCAAAA,GAAgB;QACf,eAAe;QACf,4BAA4B;QAC5B,uBAAuB;QACvB,8BAA8B;QAC9B,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,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,oBAAoB;QACpB,qBAAqB;QACrB,oBAAoB;QACpB,oBAAoB;QACpB,+BAA+B;MACjC;IACF;EACF;;AD3BK,IAAMC,eAAe,UAC1BC,oCAAaC,4BAAM;MACjBC,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOC;IACpBC,UAAUZ;EACZ,CAAA;MACAO,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOG;IACpBD,UAAUhB;EACZ,CAAA;MACAW,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOI;IACpBF,UAAU,UAAMG,mCAAYC,mCAAaC,cAAcC,oBAAAA;EACzD,CAAA;MACAX,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,iBAAaU,6BAAMT,6BAAOG,SAASH,6BAAOU,aAAa;IACvDR,UAAU,UACRG,mCAAYC,mCAAaK,UAAU;MACjCb,IAAIP,iBAAAA,WAAWC;MACfoB,UAAU;QACRC,gBAAgBC,mCAAaC;QAC7BC,cAAc,CAACC,OAAuC,EAAEC,MAAK,UAC3DC,oCAAaL,mCAAaM,QAAQ;UAAE,GAAGH;UAAOC;QAAM,CAAA;QACtDG,aAAa;UAAC;UAA4B;YAAEC,IAAI7B;UAAc;;QAC9D8B,MAAM;;QAENC,gBAAgB,OAAOC,WAAuB,MAAMC,4BAASC,QAAQ;UAACF,OAAOG;SAAO;MACtF;IACF,CAAA;EACJ,CAAA;MACA/B,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAa8B,kCAAaC;IAC1B5B,UAAU,MAAM;UACdG,mCAAY0B,wCAAmBC,cAAc;QAACC;OAAa;UAC3D5B,mCAAY0B,wCAAmBG,QAAQ;QAAC3C,iBAAAA;OAAW;;EAEvD,CAAA;MACAM,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOG;IACpBD,UAAUb;EACZ,CAAA;MACAQ,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOmC;IACpBjC,UAAUd;EACZ,CAAA;CACD;",
6
- "names": ["import_app_framework", "import_functions", "Compiler", "lazy", "IntentResolver", "ReactSurface", "ScriptSettings", "ScriptType", "typename", "SCRIPT_PLUGIN", "ScriptPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "Startup", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "oneOf", "SetupAppGraph", "Metadata", "metadata", "creationSchema", "ScriptAction", "CreateScriptSchema", "createObject", "props", "space", "createIntent", "Create", "placeholder", "ns", "icon", "loadReferences", "script", "RefArray", "loadAll", "source", "ClientEvents", "SetupClient", "ClientCapabilities", "SystemSchema", "FunctionType", "Schema", "SetupIntents"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\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'));\nexport const Artifact = lazy(() => import('./artifact'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// @ts-ignore\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { type Space } from '@dxos/client/echo';\nimport { FunctionType, ScriptType } from '@dxos/functions';\nimport { RefArray } from '@dxos/live-object';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\n\nimport { Artifact, Compiler, IntentResolver, ReactSurface, ScriptSettings } from './capabilities';\nimport { meta, SCRIPT_PLUGIN } 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: Events.Startup,\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 creationSchema: ScriptAction.CreateScriptSchema,\n createObject: (props: ScriptAction.CreateScriptProps, { space }: { space: Space }) =>\n createIntent(ScriptAction.Create, { ...props, space }),\n placeholder: ['object title placeholder', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--code--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (script: ScriptType) => await RefArray.loadAll([script.source]),\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => [\n contributes(ClientCapabilities.SystemSchema, [FunctionType]),\n contributes(ClientCapabilities.Schema, [ScriptType]),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupSurfaces,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntents,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/artifact`,\n activatesOn: Events.Startup,\n activate: Artifact,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptType } from '@dxos/functions';\n\nimport { SCRIPT_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ScriptType.typename]: {\n 'typename label': 'Script',\n },\n [SCRIPT_PLUGIN]: {\n 'plugin name': 'Scripts',\n 'object title placeholder': 'New script',\n 'create object label': 'Create script',\n 'create stack section label': 'Create script',\n 'description label': 'Description',\n 'description placeholder': 'Describe what the script does.',\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': 'BINDING',\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 'view group label': 'View',\n 'view editor label': 'Editor',\n 'view split label': 'Split',\n 'view debug label': 'Debug',\n 'template select group label': 'Select template',\n },\n },\n },\n];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAqB;ACErB,IAAAA,wBAA4F;AAE5F,uBAAyC;AACzC,yBAAyB;AACzB,2BAAiD;ACNjD,IAAAC,oBAA2B;AFEpB,IAAMC,eAAWC,2BAAK,MAAM,OAAO,yBAAA,CAAA;AACnC,IAAMC,qBAAiBD,2BAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,mBAAeF,2BAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMG,sBAAiBH,2BAAK,MAAM,OAAO,yBAAA,CAAA;AACzC,IAAMI,eAAWJ,2BAAK,MAAM,OAAO,yBAAA,CAAA;AEF1C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACK,6BAAWC,QAAQ,GAAG;QACrB,kBAAkB;MACpB;MACA,CAACC,mCAAAA,GAAgB;QACf,eAAe;QACf,4BAA4B;QAC5B,uBAAuB;QACvB,8BAA8B;QAC9B,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,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,oBAAoB;QACpB,qBAAqB;QACrB,oBAAoB;QACpB,oBAAoB;QACpB,+BAA+B;MACjC;IACF;EACF;;ADrCK,IAAMC,eAAe,UAC1BC,oCAAaC,4BAAM;MACjBC,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOC;IACpBC,UAAUb;EACZ,CAAA;MACAQ,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOG;IACpBD,UAAUjB;EACZ,CAAA;MACAY,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOI;IACpBF,UAAU,UAAMG,mCAAYC,mCAAaC,cAAcC,oBAAAA;EACzD,CAAA;MACAX,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOS;IACpBP,UAAU,UACRG,mCAAYC,mCAAaI,UAAU;MACjCZ,IAAIP,iBAAAA,WAAWC;MACfmB,UAAU;QACRC,gBAAgBC,mCAAaC;QAC7BC,cAAc,CAACC,OAAuC,EAAEC,MAAK,UAC3DC,oCAAaL,mCAAaM,QAAQ;UAAE,GAAGH;UAAOC;QAAM,CAAA;QACtDG,aAAa;UAAC;UAA4B;YAAEC,IAAI5B;UAAc;;QAC9D6B,MAAM;;QAENC,gBAAgB,OAAOC,WAAuB,MAAMC,4BAASC,QAAQ;UAACF,OAAOG;SAAO;MACtF;IACF,CAAA;EACJ,CAAA;MACA9B,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAa6B,kCAAaC;IAC1B3B,UAAU,MAAM;UACdG,mCAAYyB,wCAAmBC,cAAc;QAACC;OAAa;UAC3D3B,mCAAYyB,wCAAmBG,QAAQ;QAAC1C,iBAAAA;OAAW;;EAEvD,CAAA;MACAM,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOkC;IACpBhC,UAAUd;EACZ,CAAA;MACAS,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOmC;IACpBjC,UAAUf;EACZ,CAAA;MACAU,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,6BAAOG;IACpBD,UAAUZ;EACZ,CAAA;CACD;",
6
+ "names": ["import_app_framework", "import_functions", "Compiler", "lazy", "IntentResolver", "ReactSurface", "ScriptSettings", "Artifact", "ScriptType", "typename", "SCRIPT_PLUGIN", "ScriptPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "Startup", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "SetupMetadata", "Metadata", "metadata", "creationSchema", "ScriptAction", "CreateScriptSchema", "createObject", "props", "space", "createIntent", "Create", "placeholder", "ns", "icon", "loadReferences", "script", "RefArray", "loadAll", "source", "ClientEvents", "SetupSchema", "ClientCapabilities", "SystemSchema", "FunctionType", "Schema", "SetupSurfaces", "SetupIntents"]
7
7
  }
@@ -16,41 +16,44 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var intent_resolver_SUAPE7H3_exports = {};
20
- __export(intent_resolver_SUAPE7H3_exports, {
19
+ var intent_resolver_V5ASU5DW_exports = {};
20
+ __export(intent_resolver_V5ASU5DW_exports, {
21
21
  default: () => intent_resolver_default
22
22
  });
23
- module.exports = __toCommonJS(intent_resolver_SUAPE7H3_exports);
24
- var import_chunk_TJ4BTPOS = require("./chunk-TJ4BTPOS.cjs");
25
- var import_chunk_6VKZJ4MH = require("./chunk-6VKZJ4MH.cjs");
26
- var import_chunk_EFTZN5X7 = require("./chunk-EFTZN5X7.cjs");
23
+ module.exports = __toCommonJS(intent_resolver_V5ASU5DW_exports);
24
+ var import_chunk_PKT5DD3O = require("./chunk-PKT5DD3O.cjs");
25
+ var import_chunk_DJGLGRQV = require("./chunk-DJGLGRQV.cjs");
26
+ var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
27
27
  var import_core = require("@octokit/core");
28
28
  var import_app_framework = require("@dxos/app-framework");
29
29
  var import_functions = require("@dxos/functions");
30
30
  var import_live_object = require("@dxos/live-object");
31
31
  var import_schema = require("@dxos/schema");
32
- var intent_resolver_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.IntentResolver, (0, import_app_framework.createResolver)(import_chunk_6VKZJ4MH.ScriptAction.Create, async ({ name, gistUrl, space }) => {
33
- let content = import_chunk_TJ4BTPOS.templates[0].source;
34
- const gistId = gistUrl?.split("/").at(-1);
35
- if (gistId) {
36
- const octokit = new import_core.Octokit();
37
- const response = await octokit.request("GET /gists/{gist_id}", {
38
- gist_id: gistId
39
- });
40
- const gistContent = Object.values(response.data.files ?? {})[0]?.content;
41
- if (gistContent) {
42
- content = gistContent;
32
+ var intent_resolver_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.IntentResolver, (0, import_app_framework.createResolver)({
33
+ intent: import_chunk_DJGLGRQV.ScriptAction.Create,
34
+ resolve: async ({ name, gistUrl }) => {
35
+ let content = import_chunk_PKT5DD3O.templates[0].source;
36
+ const gistId = gistUrl?.split("/").at(-1);
37
+ if (gistId) {
38
+ const octokit = new import_core.Octokit();
39
+ const response = await octokit.request("GET /gists/{gist_id}", {
40
+ gist_id: gistId
41
+ });
42
+ const gistContent = Object.values(response.data.files ?? {})[0]?.content;
43
+ if (gistContent) {
44
+ content = gistContent;
45
+ }
43
46
  }
47
+ return {
48
+ data: {
49
+ object: (0, import_live_object.create)(import_functions.ScriptType, {
50
+ name,
51
+ source: (0, import_live_object.makeRef)((0, import_live_object.create)(import_schema.TextType, {
52
+ content
53
+ }))
54
+ })
55
+ }
56
+ };
44
57
  }
45
- return {
46
- data: {
47
- object: (0, import_live_object.create)(import_functions.ScriptType, {
48
- name,
49
- source: (0, import_live_object.makeRef)((0, import_live_object.create)(import_schema.TextType, {
50
- content
51
- }))
52
- })
53
- }
54
- };
55
58
  }));
56
- //# sourceMappingURL=intent-resolver-SUAPE7H3.cjs.map
59
+ //# sourceMappingURL=intent-resolver-V5ASU5DW.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\n\nimport { contributes, Capabilities, createResolver } from '@dxos/app-framework';\nimport { ScriptType } from '@dxos/functions';\nimport { create, makeRef } from '@dxos/live-object';\nimport { TextType } from '@dxos/schema';\n\nimport { templates } from '../templates';\nimport { ScriptAction } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: ScriptAction.Create,\n resolve: async ({ name, gistUrl }) => {\n let content = templates[0].source;\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 return {\n data: {\n object: create(ScriptType, {\n name,\n source: makeRef(create(TextType, { content })),\n }),\n },\n };\n },\n }),\n );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kBAAwB;AAExB,2BAA0D;AAC1D,uBAA2B;AAC3B,yBAAgC;AAChC,oBAAyB;AAKzB,IAAA,0BAAe,UACbA,kCACEC,kCAAaC,oBACbC,qCAAe;EACbC,QAAQC,mCAAaC;EACrBC,SAAS,OAAO,EAAEC,MAAMC,QAAO,MAAE;AAC/B,QAAIC,UAAUC,gCAAU,CAAA,EAAGC;AAC3B,UAAMC,SAASJ,SAASK,MAAM,GAAA,EAAKC,GAAG,EAAC;AACvC,QAAIF,QAAQ;AAGV,YAAMG,UAAU,IAAIC,oBAAAA;AACpB,YAAMC,WAAW,MAAMF,QAAQG,QAAQ,wBAAwB;QAC7DC,SAASP;MACX,CAAA;AACA,YAAMQ,cAAcC,OAAOC,OAAOL,SAASM,KAAKC,SAAS,CAAC,CAAA,EAAG,CAAA,GAAIf;AACjE,UAAIW,aAAa;AACfX,kBAAUW;MACZ;IACF;AAEA,WAAO;MACLG,MAAM;QACJE,YAAQC,2BAAOC,6BAAY;UACzBpB;UACAI,YAAQiB,gCAAQF,2BAAOG,wBAAU;YAAEpB;UAAQ,CAAA,CAAA;QAC7C,CAAA;MACF;IACF;EACF;AACF,CAAA,CAAA;",
6
+ "names": ["contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ScriptAction", "Create", "resolve", "name", "gistUrl", "content", "templates", "source", "gistId", "split", "at", "octokit", "Octokit", "response", "request", "gist_id", "gistContent", "Object", "values", "data", "files", "object", "create", "ScriptType", "makeRef", "TextType"]
7
+ }