@dxos/plugin-assistant 0.8.2-staging.7ac8446 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/AssistantDialog-K6POM23O.mjs +46 -0
- package/dist/lib/browser/AssistantDialog-K6POM23O.mjs.map +7 -0
- package/dist/lib/browser/ChatContainer-QTO4LE2C.mjs +39 -0
- package/dist/lib/browser/ChatContainer-QTO4LE2C.mjs.map +7 -0
- package/dist/lib/browser/TemplateContainer-AKUYL4AV.mjs +28 -0
- package/dist/lib/browser/TemplateContainer-AKUYL4AV.mjs.map +7 -0
- package/dist/lib/browser/{ai-client-CDZLSNXE.mjs → ai-client-COXVUC6V.mjs} +6 -6
- package/dist/lib/browser/ai-client-COXVUC6V.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-YH4EGNBC.mjs +206 -0
- package/dist/lib/browser/app-graph-builder-YH4EGNBC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TXJWGWJ7.mjs → chunk-3F44MBHU.mjs} +3 -3
- package/dist/lib/browser/chunk-3F44MBHU.mjs.map +7 -0
- package/dist/lib/browser/chunk-IHEBFO5O.mjs +205 -0
- package/dist/lib/browser/chunk-IHEBFO5O.mjs.map +7 -0
- package/dist/lib/browser/chunk-JQFUME3B.mjs +87 -0
- package/dist/lib/{node-esm/chunk-PBZA7XJR.mjs.map → browser/chunk-JQFUME3B.mjs.map} +1 -1
- package/dist/lib/browser/chunk-Q6UZ4F3H.mjs +96 -0
- package/dist/lib/browser/chunk-Q6UZ4F3H.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FMB7RGMP.mjs → chunk-QTW7KVDO.mjs} +1669 -1515
- package/dist/lib/browser/chunk-QTW7KVDO.mjs.map +7 -0
- package/dist/lib/browser/chunk-USJBRB3H.mjs +155 -0
- package/dist/lib/browser/chunk-USJBRB3H.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3HCI5FIL.mjs → chunk-XOZ7YMO3.mjs} +3 -3
- package/dist/lib/browser/{chunk-3HCI5FIL.mjs.map → chunk-XOZ7YMO3.mjs.map} +1 -1
- package/dist/lib/browser/index.mjs +35 -18
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-WJGLKKVO.mjs → intent-resolver-63EAHENI.mjs} +10 -14
- package/dist/lib/browser/intent-resolver-63EAHENI.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-XCV6NR75.mjs +131 -0
- package/dist/lib/browser/react-surface-XCV6NR75.mjs.map +7 -0
- package/dist/lib/browser/{settings-U6UFQX32.mjs → settings-SHNQ4XXP.mjs} +5 -5
- package/dist/lib/browser/settings-SHNQ4XXP.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +6 -2
- package/dist/lib/node/AssistantDialog-FDATKYE5.cjs +72 -0
- package/dist/lib/node/AssistantDialog-FDATKYE5.cjs.map +7 -0
- package/dist/lib/node/{ChatContainer-ZJ5JXF6A.cjs → ChatContainer-5CLHJOIQ.cjs} +25 -19
- package/dist/lib/node/ChatContainer-5CLHJOIQ.cjs.map +7 -0
- package/dist/lib/node/TemplateContainer-CTG2MB4W.cjs +58 -0
- package/dist/lib/node/TemplateContainer-CTG2MB4W.cjs.map +7 -0
- package/dist/lib/node/{ai-client-URCCYU6B.cjs → ai-client-R2CGEYZW.cjs} +13 -13
- package/dist/lib/node/ai-client-R2CGEYZW.cjs.map +7 -0
- package/dist/lib/node/app-graph-builder-PSHIOW3Q.cjs +216 -0
- package/dist/lib/node/app-graph-builder-PSHIOW3Q.cjs.map +7 -0
- package/dist/lib/node/{chunk-XI2ARIEO.cjs → chunk-4EEWTDQK.cjs} +45 -39
- package/dist/lib/node/{chunk-XI2ARIEO.cjs.map → chunk-4EEWTDQK.cjs.map} +1 -1
- package/dist/lib/node/chunk-FLJWJ35M.cjs +181 -0
- package/dist/lib/node/chunk-FLJWJ35M.cjs.map +7 -0
- package/dist/lib/node/{chunk-RPBKMP2E.cjs → chunk-H4A42LNR.cjs} +1504 -1343
- package/dist/lib/node/chunk-H4A42LNR.cjs.map +7 -0
- package/dist/lib/node/chunk-HRNIUYVQ.cjs +128 -0
- package/dist/lib/node/chunk-HRNIUYVQ.cjs.map +7 -0
- package/dist/lib/node/{chunk-Q5XWEMHB.cjs → chunk-P74TWGMG.cjs} +6 -6
- package/dist/lib/node/{chunk-Q5XWEMHB.cjs.map → chunk-P74TWGMG.cjs.map} +1 -1
- package/dist/lib/node/chunk-RXPA2C2A.cjs +230 -0
- package/dist/lib/node/chunk-RXPA2C2A.cjs.map +7 -0
- package/dist/lib/node/{chunk-GBUNQ257.cjs → chunk-TS3H5OSX.cjs} +7 -7
- package/dist/lib/node/chunk-TS3H5OSX.cjs.map +7 -0
- package/dist/lib/node/index.cjs +79 -63
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-R3OSTIMH.cjs → intent-resolver-66F7WLW6.cjs} +13 -17
- package/dist/lib/node/intent-resolver-66F7WLW6.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-TASAPRPQ.cjs +145 -0
- package/dist/lib/node/react-surface-TASAPRPQ.cjs.map +7 -0
- package/dist/lib/node/{settings-TXGRCYAL.cjs → settings-ERKLO6IO.cjs} +9 -9
- package/dist/lib/node/settings-ERKLO6IO.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +17 -13
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/AssistantDialog-PIMYK774.mjs +47 -0
- package/dist/lib/node-esm/AssistantDialog-PIMYK774.mjs.map +7 -0
- package/dist/lib/node-esm/ChatContainer-QTC5NYE2.mjs +40 -0
- package/dist/lib/node-esm/ChatContainer-QTC5NYE2.mjs.map +7 -0
- package/dist/lib/node-esm/TemplateContainer-IVDQ4XQG.mjs +29 -0
- package/dist/lib/node-esm/TemplateContainer-IVDQ4XQG.mjs.map +7 -0
- package/dist/lib/node-esm/{ai-client-WMHS5EGV.mjs → ai-client-I5LXHMOZ.mjs} +6 -6
- package/dist/lib/node-esm/ai-client-I5LXHMOZ.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-Z3GMMJMD.mjs +207 -0
- package/dist/lib/node-esm/app-graph-builder-Z3GMMJMD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ECRK6TUQ.mjs → chunk-BB2TAT4P.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-ECRK6TUQ.mjs.map → chunk-BB2TAT4P.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-CDAILLCU.mjs +98 -0
- package/dist/lib/node-esm/chunk-CDAILLCU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6JK5HEUQ.mjs → chunk-HLPGKJ7N.mjs} +3 -3
- package/dist/lib/node-esm/chunk-HLPGKJ7N.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PBZA7XJR.mjs → chunk-OYN6HLXZ.mjs} +42 -36
- package/dist/lib/{browser/chunk-NFUHCW2J.mjs.map → node-esm/chunk-OYN6HLXZ.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-QU626JMR.mjs +156 -0
- package/dist/lib/node-esm/chunk-QU626JMR.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MVDAY3CZ.mjs → chunk-SI5LOQEO.mjs} +1669 -1515
- package/dist/lib/node-esm/chunk-SI5LOQEO.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ZKBACPIW.mjs +206 -0
- package/dist/lib/node-esm/chunk-ZKBACPIW.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +35 -18
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-H32TL4X6.mjs → intent-resolver-X3PWH7KM.mjs} +10 -14
- package/dist/lib/node-esm/intent-resolver-X3PWH7KM.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-QMIQCXUM.mjs +132 -0
- package/dist/lib/node-esm/react-surface-QMIQCXUM.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-DZU5PNXM.mjs → settings-IVQRZUCU.mjs} +5 -5
- package/dist/lib/node-esm/settings-IVQRZUCU.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +6 -2
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/ai-client.d.ts +3 -3
- package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +3 -179
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts +3 -1
- package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts +8 -0
- package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts.map +1 -0
- package/dist/types/src/components/BlueprintEditor/BlueprintEditor.stories.d.ts +8 -0
- package/dist/types/src/components/BlueprintEditor/BlueprintEditor.stories.d.ts.map +1 -0
- package/dist/types/src/components/BlueprintEditor/index.d.ts +2 -0
- package/dist/types/src/components/BlueprintEditor/index.d.ts.map +1 -0
- package/dist/types/src/components/ChatContainer.d.ts +4 -3
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/Prompt.d.ts +5 -2
- package/dist/types/src/components/Prompt/Prompt.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/Prompt.stories.d.ts +6 -3
- package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/PromptBar.d.ts +9 -4
- package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/PromptBar.stories.d.ts +9 -0
- package/dist/types/src/components/Prompt/PromptBar.stories.d.ts.map +1 -0
- package/dist/types/src/components/Prompt/autocomplete.d.ts +5 -1
- package/dist/types/src/components/Prompt/autocomplete.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/references.d.ts.map +1 -1
- package/dist/types/src/components/PromptSettings.d.ts +6 -0
- package/dist/types/src/components/PromptSettings.d.ts.map +1 -0
- package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +2 -2
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
- package/dist/types/src/components/Thread/Thread.d.ts +2 -2
- package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
- package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadContainer.d.ts +1 -1
- package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -2
- package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadMessage.d.ts +4 -2
- package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ToolInvocations.d.ts +1 -1
- package/dist/types/src/components/Thread/ToolInvocations.d.ts.map +1 -1
- package/dist/types/src/components/Thread/reducer.d.ts +1 -1
- package/dist/types/src/components/Thread/reducer.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +3 -2
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +4 -6
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/experimental/transcription/index.d.ts +1 -0
- package/dist/types/src/experimental/transcription/index.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +0 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/processor.d.ts +6 -5
- package/dist/types/src/hooks/processor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextProvider.d.ts +1 -1
- package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -1
- package/dist/types/src/hooks/useMessageQueue.d.ts +11 -10
- package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
- package/dist/types/src/hooks/useServices.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextInputEvents.d.ts.map +1 -1
- package/dist/types/src/parser/filter-generator.d.ts +4 -0
- package/dist/types/src/parser/filter-generator.d.ts.map +1 -0
- package/dist/types/src/parser/filter-generator.test.d.ts +2 -0
- package/dist/types/src/parser/filter-generator.test.d.ts.map +1 -0
- package/dist/types/src/parser/index.d.ts +4 -0
- package/dist/types/src/parser/index.d.ts.map +1 -0
- package/dist/types/src/parser/query-parser.d.ts +15 -0
- package/dist/types/src/parser/query-parser.d.ts.map +1 -0
- package/dist/types/src/parser/query-parser.test.d.ts +2 -0
- package/dist/types/src/parser/query-parser.test.d.ts.map +1 -0
- package/dist/types/src/parser/types.d.ts +24 -0
- package/dist/types/src/parser/types.d.ts.map +1 -0
- package/dist/types/src/stories/Prompt.stories.d.ts +8 -0
- package/dist/types/src/stories/Prompt.stories.d.ts.map +1 -0
- package/dist/types/src/stories/Query.stories.d.ts +19 -0
- package/dist/types/src/stories/Query.stories.d.ts.map +1 -0
- package/dist/types/src/stories/Research.stories.d.ts +15 -0
- package/dist/types/src/stories/Research.stories.d.ts.map +1 -0
- package/dist/types/src/stories/test-data.d.ts +3 -0
- package/dist/types/src/stories/test-data.d.ts.map +1 -0
- package/dist/types/src/stories/testing.d.ts +12 -0
- package/dist/types/src/stories/testing.d.ts.map +1 -0
- package/dist/types/src/testing/blueprint.d.ts +7 -0
- package/dist/types/src/testing/blueprint.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-functions.d.ts +1 -1
- package/dist/types/src/testing/test-functions.d.ts.map +1 -1
- package/dist/types/src/tools/function.d.ts +4 -4
- package/dist/types/src/tools/function.d.ts.map +1 -1
- package/dist/types/src/tools/openapi.d.ts +3 -3
- package/dist/types/src/tools/openapi.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +6 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/chat.d.ts +18 -8
- package/dist/types/src/types/chat.d.ts.map +1 -1
- package/dist/types/src/types/service.d.ts +96 -95
- package/dist/types/src/types/service.d.ts.map +1 -1
- package/dist/types/src/types/template.d.ts +52 -52
- package/dist/types/src/types/template.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +25 -20
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +79 -61
- package/src/AssistantPlugin.tsx +7 -6
- package/src/capabilities/ai-client.ts +5 -6
- package/src/capabilities/app-graph-builder.ts +173 -135
- package/src/capabilities/capabilities.ts +1 -1
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +7 -9
- package/src/capabilities/react-surface.tsx +63 -16
- package/src/capabilities/settings.ts +2 -2
- package/src/components/AmbientDialog/AmbientDialog.stories.tsx +2 -2
- package/src/components/AmbientDialog/AmbientDialog.tsx +27 -13
- package/src/components/AssistantDialog.tsx +1 -1
- package/src/components/AssistantSettings/AssistantSettings.tsx +29 -7
- package/src/components/BlueprintEditor/BlueprintEditor.stories.tsx +32 -0
- package/src/components/BlueprintEditor/BlueprintEditor.tsx +41 -0
- package/src/components/BlueprintEditor/index.ts +5 -0
- package/src/components/ChatContainer.tsx +6 -8
- package/src/components/Prompt/Prompt.stories.tsx +59 -52
- package/src/components/Prompt/Prompt.tsx +24 -10
- package/src/components/Prompt/PromptBar.stories.tsx +68 -0
- package/src/components/Prompt/PromptBar.tsx +82 -88
- package/src/components/Prompt/autocomplete.ts +14 -8
- package/src/components/Prompt/references.ts +3 -3
- package/src/components/PromptSettings.tsx +91 -0
- package/src/components/TemplateContainer.tsx +3 -79
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +4 -4
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +3 -3
- package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
- package/src/components/Thread/Thread.stories.tsx +14 -17
- package/src/components/Thread/Thread.tsx +2 -2
- package/src/components/Thread/ThreadContainer.stories.tsx +83 -62
- package/src/components/Thread/ThreadContainer.tsx +26 -5
- package/src/components/Thread/ThreadMessage.tsx +49 -11
- package/src/components/Thread/ToolInvocations.tsx +9 -7
- package/src/components/Thread/reducer.ts +1 -1
- package/src/components/Toolbox/Toolbox.stories.tsx +4 -4
- package/src/components/Toolbox/Toolbox.tsx +5 -4
- package/src/components/index.ts +3 -1
- package/src/experimental/transcription/index.ts +3 -0
- package/src/hooks/index.ts +0 -1
- package/src/hooks/processor.ts +68 -8
- package/src/hooks/useChatProcessor.tsx +12 -11
- package/src/hooks/useContextProvider.ts +21 -17
- package/src/hooks/useMessageQueue.ts +5 -5
- package/src/meta.ts +2 -2
- package/src/parser/filter-generator.test.ts +32 -0
- package/src/parser/filter-generator.ts +81 -0
- package/src/parser/index.ts +7 -0
- package/src/parser/query-parser.test.ts +139 -0
- package/src/parser/query-parser.ts +199 -0
- package/src/parser/types.ts +34 -0
- package/src/shims.d.ts +8 -0
- package/src/stories/Prompt.stories.tsx +59 -0
- package/src/stories/Query.stories.tsx +448 -0
- package/src/stories/Research.stories.tsx +495 -0
- package/src/stories/test-data.ts +128 -0
- package/src/stories/testing.ts +64 -0
- package/src/testing/blueprint.ts +47 -0
- package/src/testing/index.ts +1 -0
- package/src/testing/test-functions.ts +1 -1
- package/src/testing/test-services.ts +6 -6
- package/src/tools/function.ts +11 -12
- package/src/tools/openapi.test.ts +18 -19
- package/src/tools/openapi.ts +24 -17
- package/src/translations.ts +9 -6
- package/src/types/chat.ts +27 -4
- package/src/types/service.ts +39 -37
- package/src/types/template.ts +27 -25
- package/src/types/types.ts +22 -17
- package/dist/lib/browser/AssistantDialog-YSHMAHW5.mjs +0 -117
- package/dist/lib/browser/AssistantDialog-YSHMAHW5.mjs.map +0 -7
- package/dist/lib/browser/ChatContainer-V5GP7DYF.mjs +0 -33
- package/dist/lib/browser/ChatContainer-V5GP7DYF.mjs.map +0 -7
- package/dist/lib/browser/TemplateContainer-K4EJNGIL.mjs +0 -78
- package/dist/lib/browser/TemplateContainer-K4EJNGIL.mjs.map +0 -7
- package/dist/lib/browser/ai-client-CDZLSNXE.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-MF5EVDWW.mjs +0 -209
- package/dist/lib/browser/app-graph-builder-MF5EVDWW.mjs.map +0 -7
- package/dist/lib/browser/chunk-FMB7RGMP.mjs.map +0 -7
- package/dist/lib/browser/chunk-IAMR2FAE.mjs +0 -183
- package/dist/lib/browser/chunk-IAMR2FAE.mjs.map +0 -7
- package/dist/lib/browser/chunk-KYMKVE6M.mjs +0 -128
- package/dist/lib/browser/chunk-KYMKVE6M.mjs.map +0 -7
- package/dist/lib/browser/chunk-NFUHCW2J.mjs +0 -81
- package/dist/lib/browser/chunk-TXJWGWJ7.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-WJGLKKVO.mjs.map +0 -7
- package/dist/lib/browser/react-surface-57VRDOQT.mjs +0 -90
- package/dist/lib/browser/react-surface-57VRDOQT.mjs.map +0 -7
- package/dist/lib/browser/settings-U6UFQX32.mjs.map +0 -7
- package/dist/lib/node/AssistantDialog-YI2BSGSX.cjs +0 -141
- package/dist/lib/node/AssistantDialog-YI2BSGSX.cjs.map +0 -7
- package/dist/lib/node/ChatContainer-ZJ5JXF6A.cjs.map +0 -7
- package/dist/lib/node/TemplateContainer-XWFYJB4T.cjs +0 -104
- package/dist/lib/node/TemplateContainer-XWFYJB4T.cjs.map +0 -7
- package/dist/lib/node/ai-client-URCCYU6B.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-N5ZUUI2Z.cjs +0 -220
- package/dist/lib/node/app-graph-builder-N5ZUUI2Z.cjs.map +0 -7
- package/dist/lib/node/chunk-APRU3QWK.cjs +0 -206
- package/dist/lib/node/chunk-APRU3QWK.cjs.map +0 -7
- package/dist/lib/node/chunk-GBUNQ257.cjs.map +0 -7
- package/dist/lib/node/chunk-RPBKMP2E.cjs.map +0 -7
- package/dist/lib/node/chunk-ZKOC4ZFY.cjs +0 -152
- package/dist/lib/node/chunk-ZKOC4ZFY.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-R3OSTIMH.cjs.map +0 -7
- package/dist/lib/node/react-surface-NUQTM6MS.cjs +0 -106
- package/dist/lib/node/react-surface-NUQTM6MS.cjs.map +0 -7
- package/dist/lib/node/settings-TXGRCYAL.cjs.map +0 -7
- package/dist/lib/node-esm/AssistantDialog-U2FQX5TD.mjs +0 -118
- package/dist/lib/node-esm/AssistantDialog-U2FQX5TD.mjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-QW3OOXTT.mjs +0 -34
- package/dist/lib/node-esm/ChatContainer-QW3OOXTT.mjs.map +0 -7
- package/dist/lib/node-esm/TemplateContainer-EUM2X65J.mjs +0 -79
- package/dist/lib/node-esm/TemplateContainer-EUM2X65J.mjs.map +0 -7
- package/dist/lib/node-esm/ai-client-WMHS5EGV.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-DWBNIMHM.mjs +0 -210
- package/dist/lib/node-esm/app-graph-builder-DWBNIMHM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6JK5HEUQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GBBXIW5F.mjs +0 -129
- package/dist/lib/node-esm/chunk-GBBXIW5F.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MVDAY3CZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MXK2EANZ.mjs +0 -184
- package/dist/lib/node-esm/chunk-MXK2EANZ.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-H32TL4X6.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-JBVZF6CP.mjs +0 -91
- package/dist/lib/node-esm/react-surface-JBVZF6CP.mjs.map +0 -7
- package/dist/lib/node-esm/settings-DZU5PNXM.mjs.map +0 -7
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +0 -6
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +0 -1
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts +0 -8
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +0 -1
- package/dist/types/src/components/ServiceRegistry/index.d.ts +0 -2
- package/dist/types/src/components/ServiceRegistry/index.d.ts.map +0 -1
- package/dist/types/src/hooks/invocation-handler.d.ts +0 -5
- package/dist/types/src/hooks/invocation-handler.d.ts.map +0 -1
- package/dist/types/src/hooks/useLocalTriggerManager.d.ts +0 -3
- package/dist/types/src/hooks/useLocalTriggerManager.d.ts.map +0 -1
- package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +0 -49
- package/src/components/ServiceRegistry/ServiceRegistry.tsx +0 -76
- package/src/components/ServiceRegistry/index.ts +0 -5
- package/src/hooks/invocation-handler.ts +0 -107
- package/src/hooks/useLocalTriggerManager.ts +0 -82
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
AIChatType,
|
|
4
|
+
AssistantAction,
|
|
5
|
+
CompanionTo,
|
|
6
|
+
TemplateType
|
|
7
|
+
} from "./chunk-ZKBACPIW.mjs";
|
|
8
|
+
import {
|
|
9
|
+
ASSISTANT_DIALOG,
|
|
10
|
+
ASSISTANT_PLUGIN
|
|
11
|
+
} from "./chunk-BB2TAT4P.mjs";
|
|
12
|
+
|
|
13
|
+
// packages/plugins/plugin-assistant/src/capabilities/app-graph-builder.ts
|
|
14
|
+
import { Rx } from "@effect-rx/rx-react";
|
|
15
|
+
import { Option, pipe } from "effect";
|
|
16
|
+
import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
|
|
17
|
+
import { isInstanceOf } from "@dxos/echo-schema";
|
|
18
|
+
import { invariant } from "@dxos/invariant";
|
|
19
|
+
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
20
|
+
import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from "@dxos/plugin-deck/types";
|
|
21
|
+
import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
|
|
22
|
+
import { rxFromQuery } from "@dxos/plugin-space";
|
|
23
|
+
import { SPACE_TYPE, SpaceAction } from "@dxos/plugin-space/types";
|
|
24
|
+
import { Filter, fullyQualifiedId, getSpace, isSpace, Query, isEchoObject } from "@dxos/react-client/echo";
|
|
25
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/capabilities/app-graph-builder.ts";
|
|
26
|
+
var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
|
|
27
|
+
createExtension({
|
|
28
|
+
id: `${ASSISTANT_PLUGIN}/assistant`,
|
|
29
|
+
actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
|
|
30
|
+
{
|
|
31
|
+
id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,
|
|
32
|
+
data: async () => {
|
|
33
|
+
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
34
|
+
const client = context.getCapability(ClientCapabilities.Client);
|
|
35
|
+
const layout = context.getCapability(Capabilities.Layout);
|
|
36
|
+
const { graph } = context.getCapability(Capabilities.AppGraph);
|
|
37
|
+
let chat;
|
|
38
|
+
if (layout.active.length > 0) {
|
|
39
|
+
const node2 = graph.getNode(layout.active[0]).pipe(Option.getOrNull);
|
|
40
|
+
if (node2) {
|
|
41
|
+
const space = getSpace(node2.data);
|
|
42
|
+
if (space) {
|
|
43
|
+
chat = await getOrCreateChat(dispatch, space);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
const space = client.spaces.default;
|
|
48
|
+
chat = await getOrCreateChat(dispatch, space);
|
|
49
|
+
}
|
|
50
|
+
if (!chat) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
await dispatch(createIntent(LayoutAction.UpdateDialog, {
|
|
54
|
+
part: "dialog",
|
|
55
|
+
subject: ASSISTANT_DIALOG,
|
|
56
|
+
options: {
|
|
57
|
+
state: true,
|
|
58
|
+
blockAlign: "end",
|
|
59
|
+
props: {
|
|
60
|
+
chat
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
},
|
|
65
|
+
properties: {
|
|
66
|
+
label: [
|
|
67
|
+
"open assistant label",
|
|
68
|
+
{
|
|
69
|
+
ns: ASSISTANT_PLUGIN
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
icon: "ph--sparkle--regular",
|
|
73
|
+
disposition: "pin-end",
|
|
74
|
+
position: "hoist",
|
|
75
|
+
keyBinding: {
|
|
76
|
+
macos: "shift+meta+k",
|
|
77
|
+
windows: "shift+ctrl+k"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
]), Option.getOrElse(() => [])))
|
|
82
|
+
}),
|
|
83
|
+
createExtension({
|
|
84
|
+
id: `${ASSISTANT_PLUGIN}/object-chat-companion`,
|
|
85
|
+
connector: (node) => {
|
|
86
|
+
let query;
|
|
87
|
+
return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => isEchoObject(node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((object) => {
|
|
88
|
+
const space = getSpace(object);
|
|
89
|
+
return space ? Option.some({
|
|
90
|
+
space,
|
|
91
|
+
object
|
|
92
|
+
}) : Option.none();
|
|
93
|
+
}), Option.map(({ space, object }) => {
|
|
94
|
+
if (!query) {
|
|
95
|
+
query = space.db.query(Query.select(Filter.ids(object.id)).targetOf(CompanionTo).source());
|
|
96
|
+
}
|
|
97
|
+
const chat = get(rxFromQuery(query))[0];
|
|
98
|
+
return [
|
|
99
|
+
{
|
|
100
|
+
id: [
|
|
101
|
+
fullyQualifiedId(object),
|
|
102
|
+
"assistant-chat"
|
|
103
|
+
].join(ATTENDABLE_PATH_SEPARATOR),
|
|
104
|
+
type: PLANK_COMPANION_TYPE,
|
|
105
|
+
data: chat ?? "assistant-chat",
|
|
106
|
+
properties: {
|
|
107
|
+
label: [
|
|
108
|
+
"assistant chat label",
|
|
109
|
+
{
|
|
110
|
+
ns: ASSISTANT_PLUGIN
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
icon: "ph--sparkle--regular",
|
|
114
|
+
position: "hoist",
|
|
115
|
+
disposition: "hidden"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
];
|
|
119
|
+
}), Option.getOrElse(() => [])));
|
|
120
|
+
}
|
|
121
|
+
}),
|
|
122
|
+
createExtension({
|
|
123
|
+
id: `${ASSISTANT_PLUGIN}/root`,
|
|
124
|
+
connector: (node) => {
|
|
125
|
+
let query;
|
|
126
|
+
return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.map((space) => {
|
|
127
|
+
if (!query) {
|
|
128
|
+
query = space.db.query(Query.type(TemplateType));
|
|
129
|
+
}
|
|
130
|
+
const templates = get(rxFromQuery(query));
|
|
131
|
+
return templates.length > 0 ? [
|
|
132
|
+
{
|
|
133
|
+
id: `${ASSISTANT_PLUGIN}/templates`,
|
|
134
|
+
type: `${ASSISTANT_PLUGIN}/templates`,
|
|
135
|
+
data: null,
|
|
136
|
+
properties: {
|
|
137
|
+
label: [
|
|
138
|
+
"templates label",
|
|
139
|
+
{
|
|
140
|
+
ns: ASSISTANT_PLUGIN
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
icon: "ph--file-code--regular",
|
|
144
|
+
space
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
] : [];
|
|
148
|
+
}), Option.getOrElse(() => [])));
|
|
149
|
+
}
|
|
150
|
+
}),
|
|
151
|
+
createExtension({
|
|
152
|
+
id: `${ASSISTANT_PLUGIN}/templates`,
|
|
153
|
+
connector: (node) => {
|
|
154
|
+
let query;
|
|
155
|
+
return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === `${ASSISTANT_PLUGIN}/templates` && isSpace(node2.properties.space) ? Option.some(node2.properties.space) : Option.none()), Option.map((space) => {
|
|
156
|
+
if (!query) {
|
|
157
|
+
query = space.db.query(Query.type(TemplateType));
|
|
158
|
+
}
|
|
159
|
+
return get(rxFromQuery(query)).toSorted((a, b) => {
|
|
160
|
+
const nameA = a.name ?? "";
|
|
161
|
+
const nameB = b.name ?? "";
|
|
162
|
+
return nameA.localeCompare(nameB);
|
|
163
|
+
}).map((template) => ({
|
|
164
|
+
id: fullyQualifiedId(template),
|
|
165
|
+
type: `${ASSISTANT_PLUGIN}/template`,
|
|
166
|
+
data: template,
|
|
167
|
+
properties: {
|
|
168
|
+
label: template.name ?? [
|
|
169
|
+
"object placeholder",
|
|
170
|
+
{
|
|
171
|
+
ns: ASSISTANT_PLUGIN
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
icon: "ph--file-code--regular"
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
177
|
+
}), Option.getOrElse(() => [])));
|
|
178
|
+
}
|
|
179
|
+
})
|
|
180
|
+
]);
|
|
181
|
+
var getOrCreateChat = async (dispatch, space) => {
|
|
182
|
+
const { objects } = await space.db.query(Filter.type(AIChatType)).run();
|
|
183
|
+
if (objects.length > 0) {
|
|
184
|
+
return objects[objects.length - 1];
|
|
185
|
+
}
|
|
186
|
+
const { data } = await dispatch(createIntent(AssistantAction.CreateChat, {
|
|
187
|
+
space
|
|
188
|
+
}));
|
|
189
|
+
invariant(isInstanceOf(AIChatType, data?.object), void 0, {
|
|
190
|
+
F: __dxlog_file,
|
|
191
|
+
L: 230,
|
|
192
|
+
S: void 0,
|
|
193
|
+
A: [
|
|
194
|
+
"isInstanceOf(AIChatType, data?.object)",
|
|
195
|
+
""
|
|
196
|
+
]
|
|
197
|
+
});
|
|
198
|
+
await dispatch(createIntent(SpaceAction.AddObject, {
|
|
199
|
+
target: space,
|
|
200
|
+
object: data.object
|
|
201
|
+
}));
|
|
202
|
+
return data.object;
|
|
203
|
+
};
|
|
204
|
+
export {
|
|
205
|
+
app_graph_builder_default as default
|
|
206
|
+
};
|
|
207
|
+
//# sourceMappingURL=app-graph-builder-Z3GMMJMD.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type PromiseIntentDispatcher,\n type PluginContext,\n} from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { createExtension, ROOT_ID } from '@dxos/plugin-graph';\nimport { rxFromQuery } from '@dxos/plugin-space';\nimport { SPACE_TYPE, SpaceAction } from '@dxos/plugin-space/types';\nimport {\n type Space,\n Filter,\n fullyQualifiedId,\n getSpace,\n isSpace,\n Query,\n type QueryResult,\n isEchoObject,\n} from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, ASSISTANT_PLUGIN } from '../meta';\nimport { AIChatType, AssistantAction, CompanionTo, TemplateType } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${ASSISTANT_PLUGIN}/assistant`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const layout = context.getCapability(Capabilities.Layout);\n const { graph } = context.getCapability(Capabilities.AppGraph);\n\n // TODO(burdon): Get space from workspace.\n // TODO(burdon): If need to create chat, then add to dispatch stack below.\n let chat: AIChatType | undefined;\n if (layout.active.length > 0) {\n const node = graph.getNode(layout.active[0]).pipe(Option.getOrNull);\n if (node) {\n const space = getSpace(node.data);\n if (space) {\n chat = await getOrCreateChat(dispatch, space);\n }\n }\n } else {\n const space = client.spaces.default;\n chat = await getOrCreateChat(dispatch, space);\n }\n\n if (!chat) {\n return;\n }\n\n await dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: ASSISTANT_DIALOG,\n options: {\n state: true,\n blockAlign: 'end',\n props: {\n chat,\n },\n },\n }),\n );\n },\n properties: {\n label: ['open assistant label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--sparkle--regular',\n disposition: 'pin-end',\n position: 'hoist',\n keyBinding: {\n macos: 'shift+meta+k',\n windows: 'shift+ctrl+k',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/object-chat-companion`,\n connector: (node) => {\n let query: QueryResult<AIChatType> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (isEchoObject(node.data) ? Option.some(node.data) : Option.none())),\n Option.flatMap((object) => {\n const space = getSpace(object);\n return space ? Option.some({ space, object }) : Option.none();\n }),\n Option.map(({ space, object }) => {\n if (!query) {\n query = space.db.query(Query.select(Filter.ids(object.id)).targetOf(CompanionTo).source());\n }\n\n const chat = get(rxFromQuery(query))[0];\n return [\n {\n id: [fullyQualifiedId(object), 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: chat ?? 'assistant-chat',\n properties: {\n label: ['assistant chat label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--sparkle--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/root`,\n connector: (node) => {\n let query: QueryResult<TemplateType> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((space) => {\n if (!query) {\n query = space.db.query(Query.type(TemplateType));\n }\n\n const templates = get(rxFromQuery(query));\n return templates.length > 0\n ? [\n {\n id: `${ASSISTANT_PLUGIN}/templates`,\n type: `${ASSISTANT_PLUGIN}/templates`,\n data: null,\n properties: {\n label: ['templates label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n space,\n },\n },\n ]\n : [];\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/templates`,\n connector: (node) => {\n let query: QueryResult<TemplateType> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.id === `${ASSISTANT_PLUGIN}/templates` && isSpace(node.properties.space)\n ? Option.some(node.properties.space)\n : Option.none(),\n ),\n Option.map((space) => {\n if (!query) {\n query = space.db.query(Query.type(TemplateType));\n }\n return get(rxFromQuery(query))\n .toSorted((a, b) => {\n const nameA = a.name ?? '';\n const nameB = b.name ?? '';\n return nameA.localeCompare(nameB);\n })\n .map((template) => ({\n id: fullyQualifiedId(template),\n type: `${ASSISTANT_PLUGIN}/template`,\n data: template,\n properties: {\n label: template.name ?? ['object placeholder', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n },\n }));\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n ]);\n\n// TODO(burdon): Factor out.\nconst getOrCreateChat = async (dispatch: PromiseIntentDispatcher, space: Space): Promise<AIChatType | undefined> => {\n const { objects } = await space.db.query(Filter.type(AIChatType)).run();\n // console.log('objects', JSON.stringify(objects, null, 2));\n if (objects.length > 0) {\n // TODO(burdon): Is this the most recent?\n return objects[objects.length - 1];\n }\n\n const { data } = await dispatch(createIntent(AssistantAction.CreateChat, { space }));\n invariant(isInstanceOf(AIChatType, data?.object));\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: data.object }));\n return data.object;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "createIntent", "LayoutAction", "isInstanceOf", "invariant", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "createExtension", "ROOT_ID", "rxFromQuery", "SPACE_TYPE", "SpaceAction", "Filter", "fullyQualifiedId", "getSpace", "isSpace", "Query", "isEchoObject", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "ASSISTANT_PLUGIN", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "layout", "Layout", "graph", "AppGraph", "chat", "active", "length", "getNode", "getOrNull", "space", "getSpace", "getOrCreateChat", "spaces", "default", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "getOrElse", "connector", "query", "isEchoObject", "object", "db", "Query", "select", "Filter", "ids", "targetOf", "CompanionTo", "source", "rxFromQuery", "fullyQualifiedId", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "SPACE_TYPE", "isSpace", "TemplateType", "templates", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "template", "objects", "AIChatType", "run", "AssistantAction", "CreateChat", "invariant", "isInstanceOf", "SpaceAction", "AddObject", "target"]
|
|
7
|
+
}
|
|
@@ -8,9 +8,9 @@ var meta = {
|
|
|
8
8
|
name: "Assistant",
|
|
9
9
|
description: "The Assistant tab allows you to chat with your spaces inside of Composer.",
|
|
10
10
|
icon: "ph--atom--regular",
|
|
11
|
-
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/
|
|
11
|
+
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-assistant",
|
|
12
12
|
tags: [
|
|
13
|
-
"
|
|
13
|
+
"labs"
|
|
14
14
|
]
|
|
15
15
|
};
|
|
16
16
|
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
ASSISTANT_DIALOG,
|
|
20
20
|
meta
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
22
|
+
//# sourceMappingURL=chunk-BB2TAT4P.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const ASSISTANT_PLUGIN = 'dxos.org/plugin/assistant';\n\nexport const ASSISTANT_DIALOG = `${ASSISTANT_PLUGIN}/assistant/dialog`;\n\nexport const meta: PluginMeta = {\n id: ASSISTANT_PLUGIN,\n name: 'Assistant',\n description: 'The Assistant tab allows you to chat with your spaces inside of Composer.',\n icon: 'ph--atom--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const ASSISTANT_PLUGIN = 'dxos.org/plugin/assistant';\n\nexport const ASSISTANT_DIALOG = `${ASSISTANT_PLUGIN}/assistant/dialog`;\n\nexport const meta: PluginMeta = {\n id: ASSISTANT_PLUGIN,\n name: 'Assistant',\n description: 'The Assistant tab allows you to chat with your spaces inside of Composer.',\n icon: 'ph--atom--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-assistant',\n tags: ['labs'],\n};\n"],
|
|
5
5
|
"mappings": ";;;AAMO,IAAMA,mBAAmB;AAEzB,IAAMC,mBAAmB,GAAGD,gBAAAA;AAE5B,IAAME,OAAmB;EAC9BC,IAAIH;EACJI,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
|
|
6
6
|
"names": ["ASSISTANT_PLUGIN", "ASSISTANT_DIALOG", "meta", "id", "name", "description", "icon", "source", "tags"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// packages/plugins/plugin-assistant/src/components/AmbientDialog/AmbientDialog.tsx
|
|
4
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
5
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
6
|
+
import { Dialog, Icon, IconButton } from "@dxos/react-ui";
|
|
7
|
+
import { resizeAttributes, ResizeHandle, sizeStyle } from "@dxos/react-ui-dnd";
|
|
8
|
+
import { mx } from "@dxos/react-ui-theme";
|
|
9
|
+
var preventDefault = (event) => event.preventDefault();
|
|
10
|
+
var minSize = 5;
|
|
11
|
+
var AmbientDialog = ({ children, open: controlledOpen, title, resizeable = true, onOpenChange, onEscape }) => {
|
|
12
|
+
var _effect = _useSignals();
|
|
13
|
+
try {
|
|
14
|
+
const [resizeKey, setReizeKey] = useState(0);
|
|
15
|
+
const [size, setSize] = useState("min-content");
|
|
16
|
+
const [open, setOpen] = useState(controlledOpen);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
setOpen(controlledOpen);
|
|
19
|
+
}, [
|
|
20
|
+
controlledOpen
|
|
21
|
+
]);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
setSize(open ? "min-content" : minSize);
|
|
24
|
+
setReizeKey((key) => key + 1);
|
|
25
|
+
}, [
|
|
26
|
+
open
|
|
27
|
+
]);
|
|
28
|
+
const handleToggle = useCallback(() => {
|
|
29
|
+
setOpen((open2) => {
|
|
30
|
+
onOpenChange?.(!open2);
|
|
31
|
+
return !open2;
|
|
32
|
+
});
|
|
33
|
+
}, []);
|
|
34
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
35
|
+
role: "none",
|
|
36
|
+
className: "dx-dialog__overlay bg-transparent pointer-events-none",
|
|
37
|
+
"data-block-align": "end"
|
|
38
|
+
}, /* @__PURE__ */ React.createElement(Dialog.Content, {
|
|
39
|
+
classNames: 'relative box-content p-0 md:is-[35rem] md:max-is-none overflow-hidden pointer-events-auto transition-[block-size] ease-in-out duration-0 [&:not([data-dx-resizing="true"])]:duration-200',
|
|
40
|
+
inOverlayLayout: true,
|
|
41
|
+
...resizeAttributes,
|
|
42
|
+
style: {
|
|
43
|
+
...resizeable ? sizeStyle(size, "vertical", true) : {},
|
|
44
|
+
maxBlockSize: "calc(100dvh - env(safe-area-inset-bottom) - env(safe-area-inset-top) - 9rem)"
|
|
45
|
+
},
|
|
46
|
+
onEscapeKeyDown: onEscape,
|
|
47
|
+
onInteractOutside: preventDefault
|
|
48
|
+
}, resizeable && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ResizeHandle, {
|
|
49
|
+
key: resizeKey,
|
|
50
|
+
side: "block-start",
|
|
51
|
+
defaultSize: "min-content",
|
|
52
|
+
minSize,
|
|
53
|
+
fallbackSize: minSize,
|
|
54
|
+
iconPosition: "center",
|
|
55
|
+
onSizeChange: setSize
|
|
56
|
+
}), /* @__PURE__ */ React.createElement(DialogHeader, {
|
|
57
|
+
open,
|
|
58
|
+
title,
|
|
59
|
+
onToggle: handleToggle
|
|
60
|
+
})) || /* @__PURE__ */ React.createElement(Dialog.Title, {
|
|
61
|
+
srOnly: true
|
|
62
|
+
}), children));
|
|
63
|
+
} finally {
|
|
64
|
+
_effect.f();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
var DialogHeader = ({ open, title, onToggle }) => {
|
|
68
|
+
var _effect = _useSignals();
|
|
69
|
+
try {
|
|
70
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
71
|
+
className: "flex shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] items-center overflow-hidden"
|
|
72
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
73
|
+
className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
|
|
74
|
+
}, /* @__PURE__ */ React.createElement(Dialog.Close, null, /* @__PURE__ */ React.createElement(Icon, {
|
|
75
|
+
icon: "ph--x--regular"
|
|
76
|
+
}))), /* @__PURE__ */ React.createElement("div", {
|
|
77
|
+
className: "grow"
|
|
78
|
+
}, /* @__PURE__ */ React.createElement(Dialog.Title, {
|
|
79
|
+
classNames: "flex justify-center text-xs text-subdued"
|
|
80
|
+
}, title)), /* @__PURE__ */ React.createElement("div", {
|
|
81
|
+
className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
|
|
82
|
+
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
83
|
+
variant: "ghost",
|
|
84
|
+
icon: "ph--caret-up--regular",
|
|
85
|
+
classNames: mx("[&>svg]:transition [&>svg]:duration-200", open && "[&>svg]:rotate-180"),
|
|
86
|
+
iconOnly: true,
|
|
87
|
+
label: "Shrink",
|
|
88
|
+
onClick: onToggle
|
|
89
|
+
})));
|
|
90
|
+
} finally {
|
|
91
|
+
_effect.f();
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export {
|
|
96
|
+
AmbientDialog
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=chunk-CDAILLCU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/AmbientDialog/AmbientDialog.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type PropsWithChildren, useCallback, useEffect, useState } from 'react';\n\nimport { Dialog, Icon, IconButton } from '@dxos/react-ui';\nimport { resizeAttributes, ResizeHandle, type Size, sizeStyle } from '@dxos/react-ui-dnd';\nimport { mx } from '@dxos/react-ui-theme';\n\nconst preventDefault = (event: Event) => event.preventDefault();\n\nconst minSize = 5;\n\nexport type AmbientDialogProps = PropsWithChildren<{\n open?: boolean;\n title?: string;\n resizeable?: boolean;\n onOpenChange?: (open: boolean) => void;\n onEscape?: () => void;\n}>;\n\nexport const AmbientDialog = ({\n children,\n open: controlledOpen,\n title,\n resizeable = true,\n onOpenChange,\n onEscape,\n}: AmbientDialogProps) => {\n const [resizeKey, setReizeKey] = useState(0);\n const [size, setSize] = useState<Size>('min-content');\n const [open, setOpen] = useState(controlledOpen);\n\n // Update controlled value.\n useEffect(() => {\n setOpen(controlledOpen);\n }, [controlledOpen]);\n\n // Update size and key.\n useEffect(() => {\n setSize(open ? 'min-content' : minSize);\n setReizeKey((key) => key + 1);\n }, [open]);\n\n // TODO(burdon): Animate open/close.\n // NOTE: We set the min size to 5rem (80px), and the header and prompt bar to 40px (i.e., the rail-size) each.\n // The dialog has no vertical padding and has box-content so that when closed it collapses to the size of the header and prompt bar.\n const handleToggle = useCallback(() => {\n setOpen((open) => {\n onOpenChange?.(!open);\n return !open;\n });\n }, []);\n\n return (\n <div role='none' className='dx-dialog__overlay bg-transparent pointer-events-none' data-block-align='end'>\n <Dialog.Content\n classNames='relative box-content p-0 md:is-[35rem] md:max-is-none overflow-hidden pointer-events-auto transition-[block-size] ease-in-out duration-0 [&:not([data-dx-resizing=\"true\"])]:duration-200'\n inOverlayLayout\n {...resizeAttributes}\n style={{\n ...(resizeable ? sizeStyle(size, 'vertical', true) : {}),\n maxBlockSize: 'calc(100dvh - env(safe-area-inset-bottom) - env(safe-area-inset-top) - 9rem)',\n }}\n onEscapeKeyDown={onEscape}\n onInteractOutside={preventDefault}\n >\n {(resizeable && (\n <>\n <ResizeHandle\n key={resizeKey}\n side='block-start'\n defaultSize='min-content'\n minSize={minSize}\n fallbackSize={minSize}\n iconPosition='center'\n onSizeChange={setSize}\n />\n\n <DialogHeader open={open} title={title} onToggle={handleToggle} />\n </>\n )) || <Dialog.Title srOnly />}\n\n {children}\n </Dialog.Content>\n </div>\n );\n};\n\n/**\n * Matches same layout grid as PromptBar.\n */\nconst DialogHeader = ({ open, title, onToggle }: { open?: boolean; title?: string; onToggle: () => void }) => {\n return (\n <div className='flex shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] items-center overflow-hidden'>\n <div className='flex w-[--rail-action] h-[--rail-action] items-center justify-center'>\n <Dialog.Close>\n <Icon icon='ph--x--regular' />\n </Dialog.Close>\n </div>\n <div className='grow'>\n <Dialog.Title classNames='flex justify-center text-xs text-subdued'>{title}</Dialog.Title>\n </div>\n <div className='flex w-[--rail-action] h-[--rail-action] items-center justify-center'>\n <IconButton\n variant='ghost'\n icon={'ph--caret-up--regular'}\n classNames={mx('[&>svg]:transition [&>svg]:duration-200', open && '[&>svg]:rotate-180')}\n iconOnly\n label='Shrink'\n onClick={onToggle}\n />\n </div>\n </div>\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;AAIA,OAAOA,SAAiCC,aAAaC,WAAWC,gBAAgB;AAEhF,SAASC,QAAQC,MAAMC,kBAAkB;AACzC,SAASC,kBAAkBC,cAAyBC,iBAAiB;AACrE,SAASC,UAAU;AAEnB,IAAMC,iBAAiB,CAACC,UAAiBA,MAAMD,eAAc;AAE7D,IAAME,UAAU;AAUT,IAAMC,gBAAgB,CAAC,EAC5BC,UACAC,MAAMC,gBACNC,OACAC,aAAa,MACbC,cACAC,SAAQ,MACW;;;AACnB,UAAM,CAACC,WAAWC,WAAAA,IAAeC,SAAS,CAAA;AAC1C,UAAM,CAACC,MAAMC,OAAAA,IAAWF,SAAe,aAAA;AACvC,UAAM,CAACR,MAAMW,OAAAA,IAAWH,SAASP,cAAAA;AAGjCW,cAAU,MAAA;AACRD,cAAQV,cAAAA;IACV,GAAG;MAACA;KAAe;AAGnBW,cAAU,MAAA;AACRF,cAAQV,OAAO,gBAAgBH,OAAAA;AAC/BU,kBAAY,CAACM,QAAQA,MAAM,CAAA;IAC7B,GAAG;MAACb;KAAK;AAKT,UAAMc,eAAeC,YAAY,MAAA;AAC/BJ,cAAQ,CAACX,UAAAA;AACPI,uBAAe,CAACJ,KAAAA;AAChB,eAAO,CAACA;MACV,CAAA;IACF,GAAG,CAAA,CAAE;AAEL,WACE,sBAAA,cAACgB,OAAAA;MAAIC,MAAK;MAAOC,WAAU;MAAwDC,oBAAiB;OAClG,sBAAA,cAACC,OAAOC,SAAO;MACbC,YAAW;MACXC,iBAAAA;MACC,GAAGC;MACJC,OAAO;QACL,GAAItB,aAAauB,UAAUjB,MAAM,YAAY,IAAA,IAAQ,CAAC;QACtDkB,cAAc;MAChB;MACAC,iBAAiBvB;MACjBwB,mBAAmBlC;OAEjBQ,cACA,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAC2B,cAAAA;MACCjB,KAAKP;MACLyB,MAAK;MACLC,aAAY;MACZnC;MACAoC,cAAcpC;MACdqC,cAAa;MACbC,cAAczB;QAGhB,sBAAA,cAAC0B,cAAAA;MAAapC;MAAYE;MAAcmC,UAAUvB;WAEhD,sBAAA,cAACM,OAAOkB,OAAK;MAACC,QAAAA;QAEnBxC,QAAAA,CAAAA;;;;AAIT;AAKA,IAAMqC,eAAe,CAAC,EAAEpC,MAAME,OAAOmC,SAAQ,MAA4D;;;AACvG,WACE,sBAAA,cAACrB,OAAAA;MAAIE,WAAU;OACb,sBAAA,cAACF,OAAAA;MAAIE,WAAU;OACb,sBAAA,cAACE,OAAOoB,OAAK,MACX,sBAAA,cAACC,MAAAA;MAAKC,MAAK;UAGf,sBAAA,cAAC1B,OAAAA;MAAIE,WAAU;OACb,sBAAA,cAACE,OAAOkB,OAAK;MAAChB,YAAW;OAA4CpB,KAAAA,CAAAA,GAEvE,sBAAA,cAACc,OAAAA;MAAIE,WAAU;OACb,sBAAA,cAACyB,YAAAA;MACCC,SAAQ;MACRF,MAAM;MACNpB,YAAYuB,GAAG,2CAA2C7C,QAAQ,oBAAA;MAClE8C,UAAAA;MACAC,OAAM;MACNC,SAASX;;;;;AAKnB;",
|
|
6
|
+
"names": ["React", "useCallback", "useEffect", "useState", "Dialog", "Icon", "IconButton", "resizeAttributes", "ResizeHandle", "sizeStyle", "mx", "preventDefault", "event", "minSize", "AmbientDialog", "children", "open", "controlledOpen", "title", "resizeable", "onOpenChange", "onEscape", "resizeKey", "setReizeKey", "useState", "size", "setSize", "setOpen", "useEffect", "key", "handleToggle", "useCallback", "div", "role", "className", "data-block-align", "Dialog", "Content", "classNames", "inOverlayLayout", "resizeAttributes", "style", "sizeStyle", "maxBlockSize", "onEscapeKeyDown", "onInteractOutside", "ResizeHandle", "side", "defaultSize", "fallbackSize", "iconPosition", "onSizeChange", "DialogHeader", "onToggle", "Title", "srOnly", "Close", "Icon", "icon", "IconButton", "variant", "mx", "iconOnly", "label", "onClick"]
|
|
7
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
ASSISTANT_PLUGIN
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BB2TAT4P.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-assistant/src/capabilities/capabilities.ts
|
|
7
7
|
import { defineCapability } from "@dxos/app-framework";
|
|
8
|
-
var AssistantCapabilities;
|
|
9
8
|
(function(AssistantCapabilities2) {
|
|
10
9
|
AssistantCapabilities2.AiClient = defineCapability(`${ASSISTANT_PLUGIN}/capability/ai-client`);
|
|
11
10
|
})(AssistantCapabilities || (AssistantCapabilities = {}));
|
|
11
|
+
var AssistantCapabilities;
|
|
12
12
|
|
|
13
13
|
export {
|
|
14
14
|
AssistantCapabilities
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
16
|
+
//# sourceMappingURL=chunk-HLPGKJ7N.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/capabilities.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ReadonlySignal } from '@preact/signals-core';\n\nimport { type AIServiceClient } from '@dxos/ai';\nimport { defineCapability } from '@dxos/app-framework';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantCapabilities {\n export const AiClient = defineCapability<ReadonlySignal<AIServiceClient>>(`${ASSISTANT_PLUGIN}/capability/ai-client`);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;AAOA,SAASA,wBAAwB;UAIhBC,wBAAAA;yBACFC,WAAWC,iBAAkD,GAAGC,gBAAAA,uBAAuC;AACtH,GAFiBH,0BAAAA,wBAAAA,CAAAA,EAAAA;;",
|
|
6
|
+
"names": ["defineCapability", "AssistantCapabilities", "AiClient", "defineCapability", "ASSISTANT_PLUGIN"]
|
|
7
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
ASSISTANT_PLUGIN
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BB2TAT4P.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-assistant/src/components/TemplateEditor/TemplateEditor.tsx
|
|
7
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
7
8
|
import { HighlightStyle, LanguageSupport, syntaxHighlighting } from "@codemirror/language";
|
|
8
9
|
import { styleTags, tags } from "@lezer/highlight";
|
|
9
10
|
import { handlebarsLanguage } from "@xiechao/codemirror-lang-handlebars";
|
|
@@ -20,41 +21,46 @@ handlebarsLanguage.configure({
|
|
|
20
21
|
]
|
|
21
22
|
});
|
|
22
23
|
var TemplateEditor = ({ classNames, template }) => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
24
|
+
var _effect = _useSignals();
|
|
25
|
+
try {
|
|
26
|
+
const { t } = useTranslation(ASSISTANT_PLUGIN);
|
|
27
|
+
const { themeMode } = useThemeContext();
|
|
28
|
+
const { parentRef } = useTextEditor(() => ({
|
|
29
|
+
initialValue: template.source,
|
|
30
|
+
extensions: [
|
|
31
|
+
createDataExtensions({
|
|
32
|
+
id: template.id,
|
|
33
|
+
text: template.source !== void 0 ? createDocAccessor(template, [
|
|
34
|
+
"template"
|
|
35
|
+
]) : void 0
|
|
36
|
+
}),
|
|
37
|
+
createBasicExtensions({
|
|
38
|
+
bracketMatching: false,
|
|
39
|
+
lineWrapping: true,
|
|
40
|
+
placeholder: t("template placeholder")
|
|
41
|
+
}),
|
|
42
|
+
createThemeExtensions({
|
|
43
|
+
themeMode,
|
|
44
|
+
slots: {
|
|
45
|
+
content: {
|
|
46
|
+
className: "!p-3"
|
|
47
|
+
}
|
|
44
48
|
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
49
|
+
}),
|
|
50
|
+
// https://github.com/xiechao/lang-handlebars
|
|
51
|
+
new LanguageSupport(handlebarsLanguage, syntaxHighlighting(handlebarsHighlightStyle))
|
|
52
|
+
]
|
|
53
|
+
}), [
|
|
54
|
+
themeMode,
|
|
55
|
+
prompt
|
|
56
|
+
]);
|
|
57
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
58
|
+
ref: parentRef,
|
|
59
|
+
className: mx(classNames)
|
|
60
|
+
});
|
|
61
|
+
} finally {
|
|
62
|
+
_effect.f();
|
|
63
|
+
}
|
|
58
64
|
};
|
|
59
65
|
var handlebarsHighlightStyle = HighlightStyle.define([
|
|
60
66
|
{
|
|
@@ -79,4 +85,4 @@ export {
|
|
|
79
85
|
TemplateEditor,
|
|
80
86
|
handlebarsHighlightStyle
|
|
81
87
|
};
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-OYN6HLXZ.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/TemplateEditor/TemplateEditor.tsx"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { HighlightStyle, LanguageSupport, syntaxHighlighting } from '@codemirror/language';\nimport { styleTags, tags } from '@lezer/highlight';\nimport { handlebarsLanguage } from '@xiechao/codemirror-lang-handlebars';\nimport React from 'react';\n\nimport { createDocAccessor } from '@dxos/react-client/echo';\nimport { useThemeContext, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport {\n createBasicExtensions,\n createDataExtensions,\n createThemeExtensions,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { type TemplateType } from '../../types';\n\nhandlebarsLanguage.configure({\n props: [\n styleTags({\n '---': tags.lineComment,\n }),\n ],\n});\n\nexport type TemplateEditorProps = ThemedClassName<{\n template: TemplateType;\n}>;\n\nexport const TemplateEditor = ({ classNames, template }: TemplateEditorProps) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n const { themeMode } = useThemeContext();\n const { parentRef } = useTextEditor(\n () => ({\n initialValue: template.source,\n extensions: [\n createDataExtensions({\n id: template.id,\n text: template.source !== undefined ? createDocAccessor(template, ['template']) : undefined,\n }),\n createBasicExtensions({\n bracketMatching: false,\n lineWrapping: true,\n placeholder: t('template placeholder'),\n }),\n createThemeExtensions({\n themeMode,\n slots: {\n content: { className: '!p-3' },\n },\n }),\n\n // https://github.com/xiechao/lang-handlebars\n new LanguageSupport(handlebarsLanguage, syntaxHighlighting(handlebarsHighlightStyle)),\n ],\n }),\n [themeMode, prompt],\n );\n\n return <div ref={parentRef} className={mx(classNames)} />;\n};\n\n/**\n * https://github.com/xiechao/lang-handlebars/blob/direct/src/highlight.js\n */\nexport const handlebarsHighlightStyle = HighlightStyle.define([\n { tag: tags.tagName, class: 'text-redText' }, // Braces.\n { tag: tags.variableName, class: 'text-blueText' },\n { tag: tags.keyword, class: 'text-greenText' },\n { tag: tags.comment, class: 'text-subdued' },\n]);\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;AAIA,SAASA,gBAAgBC,iBAAiBC,0BAA0B;AACpE,SAASC,WAAWC,YAAY;AAChC,SAASC,0BAA0B;AACnC,OAAOC,WAAW;AAElB,SAASC,yBAAyB;AAClC,SAASC,iBAAiBC,sBAA4C;AACtE,SACEC,uBACAC,sBACAC,uBACAC,qBACK;AACP,SAASC,UAAU;AAKnBC,mBAAmBC,UAAU;EAC3BC,OAAO;IACLC,UAAU;MACR,OAAOC,KAAKC;IACd,CAAA;;AAEJ,CAAA;AAMO,IAAMC,iBAAiB,CAAC,EAAEC,YAAYC,SAAQ,MAAuB;;;AAC1E,UAAM,EAAEC,EAAC,IAAKC,eAAeC,gBAAAA;AAC7B,UAAM,EAAEC,UAAS,IAAKC,gBAAAA;AACtB,UAAM,EAAEC,UAAS,IAAKC,cACpB,OAAO;MACLC,cAAcR,SAASS;MACvBC,YAAY;QACVC,qBAAqB;UACnBC,IAAIZ,SAASY;UACbC,MAAMb,SAASS,WAAWK,SAAYC,kBAAkBf,UAAU;YAAC;WAAW,IAAIc;QACpF,CAAA;QACAE,sBAAsB;UACpBC,iBAAiB;UACjBC,cAAc;UACdC,aAAalB,EAAE,sBAAA;QACjB,CAAA;QACAmB,sBAAsB;UACpBhB;UACAiB,OAAO;YACLC,SAAS;cAAEC,WAAW;YAAO;UAC/B;QACF,CAAA;;QAGA,IAAIC,gBAAgBhC,oBAAoBiC,mBAAmBC,wBAAAA,CAAAA;;IAE/D,IACA;MAACtB;MAAWuB;KAAO;AAGrB,WAAO,sBAAA,cAACC,OAAAA;MAAIC,KAAKvB;MAAWiB,WAAWO,GAAG/B,UAAAA;;;;;AAC5C;AAKO,IAAM2B,2BAA2BK,eAAeC,OAAO;EAC5D;IAAEC,KAAKrC,KAAKsC;IAASC,OAAO;EAAe;EAC3C;IAAEF,KAAKrC,KAAKwC;IAAcD,OAAO;EAAgB;EACjD;IAAEF,KAAKrC,KAAKyC;IAASF,OAAO;EAAiB;EAC7C;IAAEF,KAAKrC,KAAK0C;IAASH,OAAO;EAAe;CAC5C;",
|
|
6
6
|
"names": ["HighlightStyle", "LanguageSupport", "syntaxHighlighting", "styleTags", "tags", "handlebarsLanguage", "React", "createDocAccessor", "useThemeContext", "useTranslation", "createBasicExtensions", "createDataExtensions", "createThemeExtensions", "useTextEditor", "mx", "handlebarsLanguage", "configure", "props", "styleTags", "tags", "lineComment", "TemplateEditor", "classNames", "template", "t", "useTranslation", "ASSISTANT_PLUGIN", "themeMode", "useThemeContext", "parentRef", "useTextEditor", "initialValue", "source", "extensions", "createDataExtensions", "id", "text", "undefined", "createDocAccessor", "createBasicExtensions", "bracketMatching", "lineWrapping", "placeholder", "createThemeExtensions", "slots", "content", "className", "LanguageSupport", "syntaxHighlighting", "handlebarsHighlightStyle", "prompt", "div", "ref", "mx", "HighlightStyle", "define", "tag", "tagName", "class", "variableName", "keyword", "comment"]
|
|
7
7
|
}
|