@dxos/plugin-assistant 0.9.0 → 0.9.1-main.c7dcc2e112
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/neutral/{AgentArticle-K7XM46OQ.mjs → AgentArticle-2BEPWUMN.mjs} +9 -7
- package/dist/lib/neutral/AgentArticle-2BEPWUMN.mjs.map +7 -0
- package/dist/lib/neutral/AssistantPlugin.mjs +1 -1
- package/dist/lib/neutral/{AssistantSettings-GG52BLKS.mjs → AssistantSettings-7ALY4BMS.mjs} +3 -3
- package/dist/lib/neutral/AssistantSettings-7ALY4BMS.mjs.map +7 -0
- package/dist/lib/neutral/{ChatArticle-VNVZCDUR.mjs → ChatArticle-KT46SUFU.mjs} +2 -2
- package/dist/lib/neutral/{ChatCompanion-LBUHYWQG.mjs → ChatCompanion-YHC43RYQ.mjs} +4 -4
- package/dist/lib/neutral/ChatCompanion-YHC43RYQ.mjs.map +7 -0
- package/dist/lib/neutral/{ChatDialog-DCA6FLOV.mjs → ChatDialog-YZDZLIQA.mjs} +5 -4
- package/dist/lib/neutral/ChatDialog-YZDZLIQA.mjs.map +7 -0
- package/dist/lib/neutral/{PlanArticle-TS5ULWYS.mjs → PlanArticle-VPK2IYWU.mjs} +8 -2
- package/dist/lib/neutral/PlanArticle-VPK2IYWU.mjs.map +7 -0
- package/dist/lib/neutral/{RoutineArticle-5NYXHRG6.mjs → RoutineArticle-FK5BXQN5.mjs} +3 -3
- package/dist/lib/neutral/RoutineArticle-FK5BXQN5.mjs.map +7 -0
- package/dist/lib/neutral/SpaceHomePrompt-HTWQKLGI.mjs +113 -0
- package/dist/lib/neutral/SpaceHomePrompt-HTWQKLGI.mjs.map +7 -0
- package/dist/lib/neutral/SpaceHomeSuggestions-6G4E7GNJ.mjs +50 -0
- package/dist/lib/neutral/SpaceHomeSuggestions-6G4E7GNJ.mjs.map +7 -0
- package/dist/lib/neutral/TracePanel-T552TAOH.mjs +12 -0
- package/dist/lib/neutral/TracePanel-T552TAOH.mjs.map +7 -0
- package/dist/lib/neutral/{TriggerStatus-X7Y5JFZJ.mjs → TriggerStatus-RBOHHDOK.mjs} +3 -3
- package/dist/lib/neutral/TriggerStatus-RBOHHDOK.mjs.map +7 -0
- package/dist/lib/neutral/{agent-service-WCAP5MLI.mjs → agent-service-WV5CSHAG.mjs} +4 -2
- package/dist/lib/neutral/{agent-service-WCAP5MLI.mjs.map → agent-service-WV5CSHAG.mjs.map} +3 -3
- package/dist/lib/neutral/{app-graph-builder-WUFHQH3Y.mjs → app-graph-builder-PTSRZXRN.mjs} +13 -13
- package/dist/lib/neutral/app-graph-builder-PTSRZXRN.mjs.map +7 -0
- package/dist/lib/neutral/{blueprint-definition-MH2QLYQH.mjs → blueprint-definition-2XPYI35X.mjs} +4 -3
- package/dist/lib/neutral/blueprint-definition-2XPYI35X.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +8 -8
- package/dist/lib/neutral/capabilities/index.mjs.map +2 -2
- package/dist/lib/neutral/{chunk-HLANPOBA.mjs → chunk-35EL65O4.mjs} +3 -3
- package/dist/lib/neutral/chunk-35EL65O4.mjs.map +7 -0
- package/dist/lib/neutral/chunk-54W7N6M6.mjs +445 -0
- package/dist/lib/neutral/chunk-54W7N6M6.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-YXRGZYYH.mjs → chunk-5KB2WRI2.mjs} +6 -6
- package/dist/lib/neutral/chunk-5KB2WRI2.mjs.map +7 -0
- package/dist/lib/neutral/{TracePanel-KTZJ6JNR.mjs → chunk-5LKNH7FD.mjs} +5 -20
- package/dist/lib/neutral/chunk-5LKNH7FD.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-SMFJD7BP.mjs → chunk-7FQT4XMI.mjs} +2 -2
- package/dist/lib/neutral/{chunk-RKVVK3R3.mjs → chunk-H77JTXAN.mjs} +17 -9
- package/dist/lib/neutral/chunk-H77JTXAN.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-QAZMOFPI.mjs → chunk-IQZJ5TTM.mjs} +4 -4
- package/dist/lib/neutral/chunk-IQZJ5TTM.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ZNDQVYUN.mjs +53 -0
- package/dist/lib/neutral/chunk-ZNDQVYUN.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +296 -109
- package/dist/lib/neutral/components/index.mjs.map +3 -3
- package/dist/lib/neutral/containers/index.mjs +12 -8
- package/dist/lib/neutral/containers/index.mjs.map +3 -3
- package/dist/lib/neutral/{create-chat-SGGQ6HVN.mjs → create-chat-Z3FNA6OJ.mjs} +2 -2
- package/dist/lib/neutral/{create-chat-SGGQ6HVN.mjs.map → create-chat-Z3FNA6OJ.mjs.map} +2 -2
- package/dist/lib/neutral/{create-object-U2SOFZLR.mjs → create-object-BJUDDKQQ.mjs} +2 -2
- package/dist/lib/neutral/execution-graph/index.mjs +156 -0
- package/dist/lib/neutral/execution-graph/index.mjs.map +4 -4
- package/dist/lib/neutral/{fork-chat-34KEF4ZJ.mjs → fork-chat-UYXYT6BT.mjs} +4 -4
- package/dist/lib/neutral/fork-chat-UYXYT6BT.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +233 -438
- package/dist/lib/neutral/hooks/index.mjs.map +4 -4
- package/dist/lib/neutral/index.mjs +3 -3
- package/dist/lib/neutral/markdown-extension-IJ5RQMQ4.mjs +126 -0
- package/dist/lib/neutral/markdown-extension-IJ5RQMQ4.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/operations/index.mjs +1 -1
- package/dist/lib/neutral/plugin.mjs +2 -2
- package/dist/lib/neutral/{react-surface-XRTBW5OJ.mjs → react-surface-ES7UHZ65.mjs} +29 -17
- package/dist/lib/neutral/react-surface-ES7UHZ65.mjs.map +7 -0
- package/dist/lib/neutral/{run-prompt-in-new-chat-D5IIE2C7.mjs → run-prompt-in-new-chat-NIAGCKQV.mjs} +11 -8
- package/dist/lib/neutral/run-prompt-in-new-chat-NIAGCKQV.mjs.map +7 -0
- package/dist/lib/neutral/{settings-W4BLWQ53.mjs → settings-7Q3RITIT.mjs} +3 -3
- package/dist/lib/neutral/{settings-W4BLWQ53.mjs.map → settings-7Q3RITIT.mjs.map} +3 -3
- package/dist/lib/neutral/{state-H3G7QCU6.mjs → state-XO2UYSSG.mjs} +2 -2
- package/dist/lib/neutral/{state-H3G7QCU6.mjs.map → state-XO2UYSSG.mjs.map} +3 -3
- package/dist/lib/neutral/testing.mjs +1 -1
- package/dist/lib/neutral/translations.mjs +18 -11
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +1 -1
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +17 -57
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.d.ts +6 -3
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.stories.d.ts +32 -0
- package/dist/types/src/components/Chat/Chat.stories.d.ts.map +1 -0
- package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +6 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
- package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +1 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -1
- package/dist/types/src/components/TaskList/TaskList.d.ts +8 -0
- package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -1
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts +3 -0
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts +2 -2
- package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -1
- package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +2 -2
- package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -1
- package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts +15 -0
- package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomePrompt/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomePrompt/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts +13 -0
- package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeSuggestions/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeSuggestions/index.d.ts.map +1 -0
- package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +2 -0
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/execution-graph/execution-graph.d.ts +18 -0
- package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -1
- package/dist/types/src/execution-graph/index.d.ts +2 -1
- package/dist/types/src/execution-graph/index.d.ts.map +1 -1
- package/dist/types/src/execution-graph/pending-block-status.d.ts +26 -0
- package/dist/types/src/execution-graph/pending-block-status.d.ts.map +1 -0
- package/dist/types/src/execution-graph/pending-block-status.test.d.ts +2 -0
- package/dist/types/src/execution-graph/pending-block-status.test.d.ts.map +1 -0
- package/dist/types/src/extensions/prompt-extension.d.ts +1 -1
- package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -1
- package/dist/types/src/feed-logger.d.ts +3 -2
- package/dist/types/src/feed-logger.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useProcessEphemeralStatus.d.ts +10 -0
- package/dist/types/src/hooks/useProcessEphemeralStatus.d.ts.map +1 -0
- package/dist/types/src/hooks/useTraceMessages.d.ts +12 -0
- package/dist/types/src/hooks/useTraceMessages.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +28 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -1
- package/dist/types/src/paths.d.ts.map +1 -1
- package/dist/types/src/processor/processor.d.ts +23 -0
- package/dist/types/src/processor/processor.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Assistant.d.ts +1 -1
- package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -1
- package/dist/types/src/types/AssistantEvents.d.ts.map +1 -1
- package/dist/types/src/types/AssistantOperation.d.ts +7 -7
- package/dist/types/src/util/error-cause.d.ts +3 -0
- package/dist/types/src/util/error-cause.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +38 -0
- package/package.json +71 -70
- package/src/AssistantPlugin.conversations.json +1 -1
- package/src/AssistantPlugin.test.ts +1 -1
- package/src/AssistantPlugin.ts +2 -2
- package/src/capabilities/agent-service.ts +5 -1
- package/src/capabilities/app-graph-builder.ts +15 -20
- package/src/capabilities/blueprint-definition.ts +2 -0
- package/src/capabilities/index.ts +1 -7
- package/src/capabilities/markdown-extension.ts +5 -1
- package/src/capabilities/react-surface.tsx +38 -23
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/state.ts +1 -1
- package/src/components/AgentProperties/AgentProperties.tsx +1 -1
- package/src/components/AssistantSettings/AssistantSettings.tsx +2 -2
- package/src/components/Chat/Chat.stories.tsx +94 -0
- package/src/components/Chat/Chat.tsx +39 -6
- package/src/components/ChatPrompt/ChatActions.tsx +4 -2
- package/src/components/ChatPrompt/ChatMcpErrors.tsx +1 -1
- package/src/components/ChatPrompt/ChatOptions.tsx +26 -29
- package/src/components/ChatPrompt/ChatPrompt.tsx +1 -1
- package/src/components/ChatPrompt/ChatReferences.tsx +1 -1
- package/src/components/ChatThread/Anchor.stories.tsx +1 -1
- package/src/components/ChatThread/ChatThread.stories.tsx +1 -1
- package/src/components/ChatThread/DEBUG.md +23 -0
- package/src/components/ChatThread/widgets/SummaryWidget.tsx +1 -1
- package/src/components/ChatThread/widgets/ToolWidget.tsx +1 -1
- package/src/components/ProcessTree/ProcessTree.stories.tsx +7 -0
- package/src/components/ProcessTree/ProcessTree.tsx +191 -88
- package/src/components/TaskList/TaskList.stories.tsx +23 -2
- package/src/components/TaskList/TaskList.tsx +122 -28
- package/src/components/TemplateEditor/TemplateEditor.tsx +1 -1
- package/src/components/TemplateEditor/TemplateForm.tsx +1 -1
- package/src/components/ToolBlock/ToolBlock.tsx +1 -1
- package/src/components/index.ts +1 -0
- package/src/containers/AgentArticle/AgentArticle.stories.tsx +4 -4
- package/src/containers/AgentArticle/AgentArticle.tsx +9 -9
- package/src/containers/ChatArticle/ChatArticle.tsx +18 -10
- package/src/containers/ChatCompanion/ChatCompanion.tsx +2 -2
- package/src/containers/ChatDialog/ChatDialog.tsx +5 -3
- package/src/containers/PlanArticle/PlanArticle.tsx +5 -1
- package/src/containers/RoutineArticle/RoutineArticle.tsx +2 -2
- package/src/containers/SpaceHomePrompt/SpaceHomePrompt.tsx +105 -0
- package/src/containers/SpaceHomePrompt/index.ts +5 -0
- package/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.tsx +69 -0
- package/src/containers/SpaceHomeSuggestions/index.ts +5 -0
- package/src/containers/TracePanel/TracePanel.tsx +3 -30
- package/src/containers/TriggerStatus/TriggerStatus.tsx +2 -2
- package/src/containers/index.ts +2 -0
- package/src/execution-graph/execution-graph.ts +130 -0
- package/src/execution-graph/index.ts +10 -0
- package/src/execution-graph/pending-block-status.test.ts +114 -0
- package/src/execution-graph/pending-block-status.ts +88 -0
- package/src/execution-graph/sub-agent-delegation.test.ts +16 -1
- package/src/extensions/prompt-extension.ts +102 -73
- package/src/feed-logger.ts +21 -19
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useChatProcessor.ts +1 -1
- package/src/hooks/useChatServices.ts +2 -2
- package/src/hooks/useChatToolbarActions.ts +5 -5
- package/src/hooks/useContextBinder.ts +1 -1
- package/src/hooks/useProcessEphemeralStatus.ts +192 -0
- package/src/hooks/useTraceMessages.ts +41 -0
- package/src/meta.ts +3 -31
- package/src/operations/create-chat.ts +1 -1
- package/src/operations/fork-chat.ts +3 -3
- package/src/operations/run-prompt-in-new-chat.ts +5 -3
- package/src/paths.ts +2 -2
- package/src/processor/processor.node.test.ts +71 -1
- package/src/processor/processor.ts +58 -2
- package/src/testing/data/trace-timeline-multiple.dx.json +1 -1
- package/src/testing/data/trace-timeline-remote.dx.json +1 -1
- package/src/testing/data/trace-timeline.dx.json +0 -1
- package/src/translations.ts +18 -10
- package/src/types/AssistantCapabilities.ts +3 -3
- package/src/types/AssistantEvents.ts +1 -1
- package/src/types/AssistantOperation.ts +1 -1
- package/src/util/error-cause.ts +21 -0
- package/dist/lib/neutral/AgentArticle-K7XM46OQ.mjs.map +0 -7
- package/dist/lib/neutral/AssistantSettings-GG52BLKS.mjs.map +0 -7
- package/dist/lib/neutral/ChatCompanion-LBUHYWQG.mjs.map +0 -7
- package/dist/lib/neutral/ChatDialog-DCA6FLOV.mjs.map +0 -7
- package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs.map +0 -7
- package/dist/lib/neutral/RoutineArticle-5NYXHRG6.mjs.map +0 -7
- package/dist/lib/neutral/TracePanel-KTZJ6JNR.mjs.map +0 -7
- package/dist/lib/neutral/TriggerStatus-X7Y5JFZJ.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-WUFHQH3Y.mjs.map +0 -7
- package/dist/lib/neutral/blueprint-definition-MH2QLYQH.mjs.map +0 -7
- package/dist/lib/neutral/chunk-HLANPOBA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-QAZMOFPI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-RKVVK3R3.mjs.map +0 -7
- package/dist/lib/neutral/chunk-VTK5R4H3.mjs +0 -9
- package/dist/lib/neutral/chunk-VTK5R4H3.mjs.map +0 -7
- package/dist/lib/neutral/chunk-XYHPOGTK.mjs +0 -43
- package/dist/lib/neutral/chunk-XYHPOGTK.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YXRGZYYH.mjs.map +0 -7
- package/dist/lib/neutral/fork-chat-34KEF4ZJ.mjs.map +0 -7
- package/dist/lib/neutral/markdown-extension-YMIFDMYF.mjs +0 -110
- package/dist/lib/neutral/markdown-extension-YMIFDMYF.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-XRTBW5OJ.mjs.map +0 -7
- package/dist/lib/neutral/run-prompt-in-new-chat-D5IIE2C7.mjs.map +0 -7
- package/src/testing/trace-timeline.node.conversations.json +0 -1
- /package/dist/lib/neutral/{ChatArticle-VNVZCDUR.mjs.map → ChatArticle-KT46SUFU.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-SMFJD7BP.mjs.map → chunk-7FQT4XMI.mjs.map} +0 -0
- /package/dist/lib/neutral/{create-object-U2SOFZLR.mjs.map → create-object-BJUDDKQQ.mjs.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/Assistant.ts", "../../../src/types/Settings.ts", "../../../src/types/AssistantOperation.ts", "../../../src/types/AssistantCapabilities.ts", "../../../src/types/AssistantEvents.ts", "../../../src/types/service.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\n// Re-export Chat schema for backward compatibility.\nimport { Chat as ChatModule } from '@dxos/assistant-toolkit';\nexport const Chat = ChatModule.Chat;\nexport type Chat = ChatModule.Chat;\n\n// Re-export Settings as merged const/type (not as namespace).\nimport * as SettingsModule from './Settings';\nexport const Settings = SettingsModule.Settings;\nexport type Settings = SettingsModule.Settings;\n\nexport const ChatViews = SettingsModule.ChatViews;\nexport const ChatView = SettingsModule.ChatView;\nexport type ChatView = SettingsModule.ChatView;\n\nexport const ModelProviders = SettingsModule.ModelProviders;\nexport const ModelProvider = SettingsModule.ModelProvider;\nexport type ModelProvider = SettingsModule.ModelProvider;\n\nexport const ModelDefaults = SettingsModule.ModelDefaults;\nexport type ModelDefaults = SettingsModule.ModelDefaults;\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { SchemaEx } from '@dxos/effect';\n\nexport const ModelProvider = Schema.Union(\n Schema.Literal('edge').annotations({ title: 'DXOS' }),\n Schema.Literal('ollama').annotations({ title: 'Ollama' }),\n Schema.Literal('lmstudio').annotations({ title: 'LM Studio' }),\n);\nexport type ModelProvider = Schema.Schema.Type<typeof ModelProvider>;\nexport const ModelProviders = SchemaEx.getLiteralValues(ModelProvider);\n\nexport const ChatView = Schema.Union(\n Schema.Literal('normal').annotations({ title: 'Normal' }),\n Schema.Literal('summary').annotations({ title: 'Summary' }),\n Schema.Literal('thinking').annotations({ title: 'Thinking' }),\n Schema.Literal('debug').annotations({ title: 'Debug' }),\n);\nexport type ChatView = Schema.Schema.Type<typeof ChatView>;\nexport const ChatViews = SchemaEx.getLiteralValues(ChatView);\n\nexport const ModelDefaults = Schema.mutable(\n Schema.Struct({\n edge: Schema.optional(\n Schema.String.annotations({\n title: 'Remote language model',\n description: 'Choose the remote language model used for AI requests.',\n }),\n ),\n ollama: Schema.optional(\n Schema.String.annotations({\n title: 'Ollama language model',\n description: 'Choose the locally hosted Ollama model for AI requests.',\n }),\n ),\n lmstudio: Schema.optional(\n Schema.String.annotations({\n title: 'LM Studio language model',\n description: 'Choose the locally hosted LM Studio model for AI requests.',\n }),\n ),\n }),\n);\nexport type ModelDefaults = Schema.Schema.Type<typeof ModelDefaults>;\n\nexport const Settings = Schema.mutable(\n Schema.Struct({\n customPrompts: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Use custom prompts',\n description: 'Allow the assistant to use custom prompts defined in your spaces.',\n }),\n ),\n chatView: Schema.optional(\n ChatView.annotations({\n title: 'Chat view',\n description:\n 'Controls which message blocks are shown in the chat: normal hides reasoning, thinking shows reasoning, debug shows raw blocks, summary shows only conversational text.',\n }),\n ),\n modelProvider: Schema.optional(\n ModelProvider.annotations({\n title: 'LLM provider',\n description: 'Select which language model service to use for AI responses.',\n }),\n ),\n modelDefaults: Schema.optional(ModelDefaults),\n tracePanelDebug: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Trace panel debug',\n description: 'Show the raw span tree as JSON in the trace panel instead of the commit graph.',\n }),\n ),\n }),\n);\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { AiService } from '@dxos/ai';\nimport { Capability } from '@dxos/app-framework';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { Routine, Operation } from '@dxos/compute';\nimport { Database, Feed, Obj, Ref, Type } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\n\nimport { meta } from '#meta';\n\nconst makeKey = (name: string) => DXN.make(`${meta.id}.operation.${name}`);\n\nexport const CreateChat = Operation.make({\n meta: { key: makeKey('createChat'), name: 'Create Chat', icon: 'ph--chat-text--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n name: Schema.optional(Schema.String),\n /** If false, chat is created in-memory only and not added to space. Defaults to true. */\n addToSpace: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n object: Type.getSchema(Chat.Chat),\n }),\n});\n\nexport const UpdateChatName = Operation.make({\n meta: {\n key: makeKey('updateChatName'),\n name: 'Update Chat Name',\n icon: 'ph--pencil--regular',\n },\n services: [Database.Service, Feed.FeedService, AiService.AiService],\n input: Schema.Struct({\n chat: Type.getSchema(Chat.Chat),\n /** Initial user message text; used when the feed has no history yet (e.g. auto-rename on first send). */\n prompt: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n});\n\nexport const SetCurrentChat = Operation.make({\n meta: {\n key: makeKey('setCurrentChat'),\n name: 'Set Current Chat',\n icon: 'ph--chat-text--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n companionTo: Obj.Unknown,\n chat: Type.getSchema(Chat.Chat).pipe(Schema.optional),\n }),\n output: Schema.Void,\n});\n\nexport const RunPromptInNewChat = Operation.make({\n meta: {\n key: makeKey('runPromptInNewChat'),\n name: 'Run Prompt In New Chat',\n icon: 'ph--chat-text--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n /** Context objects to bind to the new chat. */\n objects: Schema.optional(Schema.Array(Obj.Unknown)),\n /** Blueprint keys to look up and bind to the new chat. */\n blueprints: Schema.optional(Schema.Array(Schema.String)),\n /** Raw instructions or an existing Routine object reference. */\n prompt: Schema.Union(Schema.String, Ref.Ref(Routine.Routine)),\n /**\n * When true, skips opening the chat: runs the Agent prompt operation against the new chat via the compute runtime (traced).\n */\n background: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n object: Type.getSchema(Chat.Chat),\n }),\n});\n\nconst NavigationTargetSchema = Schema.Struct({\n path: Schema.String.annotations({ description: 'Navigation path to use with the Open operation.' }),\n label: Schema.String.annotations({ description: 'Human-readable label.' }),\n type: Schema.String.annotations({ description: 'Object type.' }),\n});\n\nexport const ResolveNavigationTargets = Operation.make({\n meta: {\n key: makeKey('resolveNavigationTargets'),\n name: 'Resolve navigation targets',\n description:\n 'Resolve navigation targets within the application. The returned paths can be used with the Open operation. Without a query, returns pages that can be navigated to.',\n icon: 'ph--compass--regular',\n },\n input: Schema.Struct({\n query: Schema.optional(\n Schema.Struct({\n dxn: Schema.optional(DXN.Schema),\n }),\n ),\n }),\n output: Schema.Struct({\n targets: Schema.Array(NavigationTargetSchema),\n }),\n services: [Capability.Service],\n});\n\nexport const ForkChat = Operation.make({\n meta: { key: makeKey('forkChat'), name: 'Fork Chat', icon: 'ph--git-branch--regular', skipRegistry: true },\n services: [Capability.Service, Database.Service],\n input: Schema.Struct({\n chat: Type.getSchema(Chat.Chat),\n /** When provided, the forked chat is set as the companion for this object rather than opened standalone. */\n companionTo: Schema.optional(Obj.Unknown),\n }),\n output: Schema.Struct({\n object: Type.getSchema(Chat.Chat),\n }),\n});\n\nexport const EnsureCompanionChat = Operation.make({\n meta: {\n key: makeKey('ensureCompanionChat'),\n name: 'Ensure Companion Chat',\n icon: 'ph--chat-text--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n companionTo: Obj.Unknown,\n }),\n output: Schema.Struct({\n chat: Type.getSchema(Chat.Chat),\n /** Whether the returned chat was already persisted in the space. */\n persisted: Schema.Boolean,\n }),\n});\n\nexport const BlueprintForm = Schema.Struct({\n key: Schema.String,\n name: Schema.String,\n description: Schema.optional(Schema.String),\n});\n\nexport const ToggleTracePanelDebug = Operation.make({\n meta: {\n key: makeKey('toggleTracePanelDebug'),\n name: 'Toggle trace panel debug',\n description: 'Toggle trace panel between commit graph and raw span tree JSON.',\n icon: 'ph--bug--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Obj } from '@dxos/echo';\n\nimport { meta } from '#meta';\n\nimport * as Assistant from './Assistant';\n\nexport const Settings = Capability.make<Atom.Writable<Assistant.Settings>>(`${meta.id}.capability.settings`);\n\nexport const StateSchema = Schema.mutable(\n Schema.Struct({\n /** Map of primary object dxn to current chat dxn. */\n currentChat: Schema.Record({ key: Schema.String, value: Schema.UndefinedOr(Schema.String) }),\n /** Map of chat object path to prompt text to auto-submit when the chat opens. */\n pendingPrompts: Schema.Record({ key: Schema.String, value: Schema.UndefinedOr(Schema.String) }),\n }),\n);\n\nexport type AssistantState = Schema.Schema.Type<typeof StateSchema>;\n\nexport const State = Capability.make<Atom.Writable<AssistantState>>(`${meta.id}.capability.state`);\n\n/** Session-scoped cache of transient (not yet persisted) companion chats keyed by companion DXN string. */\nexport const CompanionChatCache = Capability.make<Atom.Writable<Record<string, Obj.Unknown | undefined>>>(\n `${meta.id}.capability.companion-chat-cache`,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\n\nexport const SetupAiServiceProviders = ActivationEvent.make(`${meta.id}.event.setup-ai-service-providers`);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Operation } from '@dxos/compute';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { DXN, Ref, Type } from '@dxos/echo';\n\n// TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7\n\nconst ApiAuthorizationKey = Schema.Struct({\n type: Schema.Literal('api-key'),\n key: Schema.String,\n placement: Schema.Union(\n Schema.Struct({\n type: Schema.Literal('authorization-header'),\n }),\n Schema.Struct({\n type: Schema.Literal('query'),\n name: Schema.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = Schema.Struct({\n type: Schema.Literal('oauth'),\n clientId: Schema.String,\n clientSecret: Schema.String,\n tokenUrl: Schema.String,\n grantType: Schema.String,\n});\n\nexport const ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = Schema.Struct({\n kind: Schema.Literal('function'),\n fn: Ref.Ref(Operation.PersistentOperation),\n});\n\nconst ServiceInterfaceWorkflow = Schema.Struct({\n kind: Schema.Literal('workflow'),\n workflow: Ref.Ref(ComputeGraph),\n});\n\nconst ServiceInterfaceApi = Schema.Struct({\n kind: Schema.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: Schema.optional(Schema.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: Schema.optional(Schema.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: Schema.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = Schema.Union(\n // Service types.\n ServiceInterfaceFunction,\n ServiceInterfaceWorkflow,\n ServiceInterfaceApi,\n) as any;\n\nexport type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;\n\nexport const ServiceType = Schema.Struct({\n serviceId: Schema.String,\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n category: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: Schema.optional(Schema.Array(ServiceInterface)),\n}).pipe(Type.makeObject(DXN.make('org.dxos.type.service', '0.1.0')));\n\nexport type ServiceType = Type.InstanceType<typeof ServiceType>;\n\n//\n// Service Registry\n//\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\n}\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport const categoryIcons: Record<string, string> = {\n finance: 'ph--bank--regular',\n health: 'ph--heart--regular',\n geolocation: 'ph--globe-simple--regular',\n education: 'ph--books--regular',\n entertainment: 'ph--music-notes--regular',\n shopping: 'ph--shopping-cart--regular',\n travel: 'ph--airplane-takeoff--regular',\n utilities: 'ph--lightning--regular',\n weather: 'ph--cloud-rain--regular',\n} as const;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["ChatView", "ChatViews", "ModelDefaults", "ModelProvider", "ModelProviders", "Settings", "Chat", "ChatModule", "Schema", "SchemaEx", "ModelProvider", "Union", "Literal", "annotations", "title", "ModelProviders", "getLiteralValues", "ChatView", "ChatViews", "ModelDefaults", "mutable", "Struct", "edge", "optional", "String", "description", "ollama", "lmstudio", "Settings", "customPrompts", "Boolean", "chatView", "modelProvider", "modelDefaults", "tracePanelDebug", "Chat", "ChatModule", "Settings", "ChatViews", "ChatView", "ModelProviders", "ModelProvider", "ModelDefaults", "Schema", "AiService", "Capability", "Chat", "Routine", "Operation", "Database", "Feed", "Obj", "Ref", "Type", "DXN", "meta", "makeKey", "name", "make", "id", "CreateChat", "key", "icon", "services", "Service", "input", "Struct", "db", "optional", "String", "addToSpace", "Boolean", "output", "object", "getSchema", "UpdateChatName", "FeedService", "chat", "prompt", "Void", "SetCurrentChat", "companionTo", "Unknown", "pipe", "RunPromptInNewChat", "objects", "Array", "blueprints", "Union", "background", "NavigationTargetSchema", "path", "annotations", "description", "label", "type", "ResolveNavigationTargets", "query", "dxn", "targets", "ForkChat", "skipRegistry", "EnsureCompanionChat", "persisted", "BlueprintForm", "ToggleTracePanelDebug", "state", "Settings", "Schema", "Capability", "meta", "make", "id", "StateSchema", "mutable", "Struct", "currentChat", "Record", "key", "String", "value", "UndefinedOr", "pendingPrompts", "State", "CompanionChatCache", "ActivationEvent", "meta", "SetupAiServiceProviders", "make", "id", "Schema", "Operation", "ComputeGraph", "DXN", "Ref", "Type", "ApiAuthorizationKey", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "PersistentOperation", "ServiceInterfaceWorkflow", "workflow", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "pipe", "makeObject", "make", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/fork-chat.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { getObjectPathFromObject, LayoutOperation } from '@dxos/app-toolkit';\nimport { AiContext, SessionLink } from '@dxos/assistant';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';\nimport { createFeedServiceLayer } from '@dxos/echo-client';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { Message } from '@dxos/types';\n\nimport { AssistantOperation } from '#types';\n\nconst handler: Operation.WithHandler<typeof AssistantOperation.ForkChat> = AssistantOperation.ForkChat.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ chat, companionTo }) {\n const { db } = yield* Database.Service;\n const sourceFeed = chat.feed.target;\n invariant(sourceFeed, 'Chat feed not found.');\n\n const client = yield* Capability.get(ClientCapabilities.Client);\n const space = client.spaces.get(db.spaceId);\n invariant(space, 'Space not found.');\n\n const feedServiceLayer = createFeedServiceLayer(space.queues);\n\n const messages = yield* Feed.runQuery(sourceFeed, Filter.type(Message.Message)).pipe(\n Effect.provide(feedServiceLayer),\n );\n\n // Sort chronologically to find the last message.\n const sorted = messages\n .filter(Obj.instanceOf(Message.Message))\n .sort((a, b) => a.created.localeCompare(b.created));\n\n // Create a new chat, then apply source bindings and session link.\n const sourceName = Obj.getLabel(chat);\n const { object: newChat } = yield* Operation.invoke(AssistantOperation.CreateChat, {\n db,\n name: sourceName ? `${sourceName} (fork)` : undefined,\n });\n const newFeed = newChat.feed.target;\n invariant(newFeed, 'New chat feed not found.');\n\n if (sorted.length > 0) {\n const lastMessage = sorted[sorted.length - 1];\n\n // Append a SessionLink record pointing to the last message of the source feed.\n yield* Feed.append(newFeed, [\n Obj.make(SessionLink.SessionLink, {\n feedRef: Ref.make(sourceFeed),\n messageId: lastMessage.id,\n }),\n ]).pipe(Effect.provide(feedServiceLayer));\n }\n\n // Copy source chat's blueprint and object bindings to the new feed.\n // Sort chronologically so add/remove events are applied in the correct order.\n const sourceBindings = (yield* Feed.runQuery(sourceFeed, Filter.type(AiContext.Binding)).pipe(\n Effect.provide(feedServiceLayer),\n )).filter(Obj.instanceOf(AiContext.Binding));\n\n if (sourceBindings.length > 0) {\n // Reduce binding events to the final active set.\n const blueprintRefMap = new Map<string, Ref.Ref<any>>();\n const objectRefMap = new Map<string, Ref.Ref<any>>();\n for (const binding of sourceBindings) {\n binding.blueprints.added.forEach((ref: Ref.Ref<any>) => blueprintRefMap.set(ref.uri, ref));\n binding.blueprints.removed.forEach((ref: Ref.Ref<any>) => blueprintRefMap.delete(ref.uri));\n binding.objects.added.forEach((ref: Ref.Ref<any>) => objectRefMap.set(ref.uri, ref));\n binding.objects.removed.forEach((ref: Ref.Ref<any>) => objectRefMap.delete(ref.uri));\n }\n\n yield* Feed.append(newFeed, [\n Obj.make(AiContext.Binding, {\n blueprints: { added: Array.from(blueprintRefMap.values()), removed: [] },\n objects: { added: Array.from(objectRefMap.values()), removed: [] },\n }),\n ]).pipe(Effect.provide(feedServiceLayer));\n }\n\n if (companionTo) {\n // Wire the forked chat as a companion and switch to it without navigating away.\n yield* Operation.invoke(SpaceOperation.AddRelation, {\n db,\n schema: Chat.CompanionTo,\n source: newChat,\n target: companionTo,\n });\n const operationInvoker = yield* Capability.get(Capabilities.OperationInvoker);\n yield* Effect.promise(() =>\n operationInvoker.invokePromise(AssistantOperation.SetCurrentChat, { companionTo, chat: newChat }),\n );\n } else {\n // Navigate to the forked chat as a standalone plank.\n const chatPath = getObjectPathFromObject(newChat);\n yield* Operation.invoke(LayoutOperation.Open, { subject: [chatPath] });\n }\n\n return { object: newChat };\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Capabilities", "Capability", "getObjectPathFromObject", "LayoutOperation", "AiContext", "SessionLink", "Chat", "Operation", "Database", "Feed", "Filter", "Obj", "Ref", "createFeedServiceLayer", "invariant", "ClientCapabilities", "SpaceOperation", "Message", "AssistantOperation", "sourceFeed", "target", "client", "space", "spaces", "feedServiceLayer", "messages", "runQuery", "type", "pipe", "provide", "sorted", "filter", "instanceOf", "a", "created", "localeCompare", "sourceName", "getLabel", "chat", "db", "name", "undefined", "newFeed", "newChat", "feed", "length", "lastMessage", "feedRef", "messageId", "blueprintRefMap", "sourceBindings", "binding", "blueprints", "added", "forEach", "objects", "ref", "objectRefMap", "uri", "removed", "append", "Array", "companionTo", "schema", "CompanionTo", "source", "operationInvoker", "subject", "chatPath"]
|
|
7
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/capabilities/markdown-extension.ts
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
|
-
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
6
|
-
import { Obj } from "@dxos/echo";
|
|
7
|
-
import { MarkdownCapabilities } from "@dxos/plugin-markdown/types";
|
|
8
|
-
import { AssistantOperation } from "#types";
|
|
9
|
-
|
|
10
|
-
// src/extensions/prompt-extension.ts
|
|
11
|
-
import { syntaxTree } from "@codemirror/language";
|
|
12
|
-
import { Decoration, ViewPlugin, WidgetType } from "@codemirror/view";
|
|
13
|
-
import { Domino } from "@dxos/ui";
|
|
14
|
-
var promptRunExtension = ({ onRun }) => {
|
|
15
|
-
return [
|
|
16
|
-
ViewPlugin.fromClass(class {
|
|
17
|
-
decorations;
|
|
18
|
-
constructor(view) {
|
|
19
|
-
this.decorations = this.buildDecorations(view);
|
|
20
|
-
}
|
|
21
|
-
update(update) {
|
|
22
|
-
if (update.docChanged || update.viewportChanged || update.selectionSet || update.focusChanged) {
|
|
23
|
-
this.decorations = this.buildDecorations(update.view);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
buildDecorations(view) {
|
|
27
|
-
const decorations = [];
|
|
28
|
-
syntaxTree(view.state).iterate({
|
|
29
|
-
enter: (node) => {
|
|
30
|
-
if (node.name === "FencedCode") {
|
|
31
|
-
const info = node.node.getChild("CodeInfo");
|
|
32
|
-
if (info) {
|
|
33
|
-
const type = view.state.sliceDoc(info.from, info.to);
|
|
34
|
-
const text = node.node.getChild("CodeText");
|
|
35
|
-
if (type === "prompt" && text) {
|
|
36
|
-
const content = view.state.sliceDoc(text.from, text.to).trim();
|
|
37
|
-
if (content.length > 0) {
|
|
38
|
-
const widget = new PromptRunWidget(content, onRun);
|
|
39
|
-
decorations.push({
|
|
40
|
-
from: node.from,
|
|
41
|
-
to: node.from,
|
|
42
|
-
decoration: Decoration.widget({
|
|
43
|
-
widget,
|
|
44
|
-
side: -1
|
|
45
|
-
})
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
return Decoration.set(decorations.sort((a, b) => a.from - b.from || a.to - b.to).map((d) => d.decoration.range(d.from, d.to)));
|
|
54
|
-
}
|
|
55
|
-
}, {
|
|
56
|
-
decorations: (v) => v.decorations
|
|
57
|
-
})
|
|
58
|
-
];
|
|
59
|
-
};
|
|
60
|
-
var PromptRunWidget = class extends WidgetType {
|
|
61
|
-
prompt;
|
|
62
|
-
onClick;
|
|
63
|
-
constructor(prompt, onClick) {
|
|
64
|
-
super(), this.prompt = prompt, this.onClick = onClick;
|
|
65
|
-
}
|
|
66
|
-
eq(other) {
|
|
67
|
-
return this.prompt === other.prompt;
|
|
68
|
-
}
|
|
69
|
-
ignoreEvent() {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
toDOM() {
|
|
73
|
-
return Domino.of("div").classNames("relative").append(Domino.of("button").classNames("dx-button absolute right-0 top-4").on("mousedown", (event) => {
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
event.stopPropagation();
|
|
76
|
-
this.onClick(this.prompt);
|
|
77
|
-
}).append(Domino.of("svg", Domino.SVG).classNames("w-4 h-4 cursor-pointer").append(Domino.of("use", Domino.SVG).attributes({
|
|
78
|
-
href: Domino.icon("ph--play--regular")
|
|
79
|
-
})))).root;
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
// src/capabilities/markdown-extension.ts
|
|
84
|
-
var markdown_extension_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
85
|
-
const capabilities = yield* Capability.Service;
|
|
86
|
-
return Capability.contributes(MarkdownCapabilities.ExtensionProvider, [
|
|
87
|
-
({ document: doc }) => {
|
|
88
|
-
if (!doc) {
|
|
89
|
-
return void 0;
|
|
90
|
-
}
|
|
91
|
-
const db = Obj.getDatabase(doc);
|
|
92
|
-
if (!db) {
|
|
93
|
-
return void 0;
|
|
94
|
-
}
|
|
95
|
-
const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
|
|
96
|
-
return promptRunExtension({
|
|
97
|
-
onRun: (promptText) => {
|
|
98
|
-
void invokePromise(AssistantOperation.RunPromptInNewChat, {
|
|
99
|
-
db,
|
|
100
|
-
prompt: promptText
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
]);
|
|
106
|
-
}));
|
|
107
|
-
export {
|
|
108
|
-
markdown_extension_default as default
|
|
109
|
-
};
|
|
110
|
-
//# sourceMappingURL=markdown-extension-YMIFDMYF.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/markdown-extension.ts", "../../../src/extensions/prompt-extension.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { MarkdownCapabilities } from '@dxos/plugin-markdown/types';\n\nimport { AssistantOperation } from '#types';\n\nimport { promptRunExtension } from '../extensions';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilities = yield* Capability.Service;\n\n return Capability.contributes(MarkdownCapabilities.ExtensionProvider, [\n ({ document: doc }) => {\n if (!doc) {\n return undefined;\n }\n\n const db = Obj.getDatabase(doc);\n if (!db) {\n return undefined;\n }\n\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\n\n return promptRunExtension({\n onRun: (promptText) => {\n void invokePromise(AssistantOperation.RunPromptInNewChat, { db, prompt: promptText });\n },\n });\n },\n ]);\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { syntaxTree } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\nimport { Decoration, type DecorationSet, EditorView, ViewPlugin, type ViewUpdate, WidgetType } from '@codemirror/view';\n\nimport { Domino } from '@dxos/ui';\n\nexport type PromptExtensionOptions = {\n /** Called when the user clicks the run button on a prompt code block. */\n onRun: (promptText: string) => void;\n};\n\n/**\n * CodeMirror extension that adds a green \"run\" button to ```prompt fenced code blocks.\n */\nexport const promptRunExtension = ({ onRun }: PromptExtensionOptions): Extension => {\n return [\n ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(view: EditorView) {\n this.decorations = this.buildDecorations(view);\n }\n\n update(update: ViewUpdate) {\n if (update.docChanged || update.viewportChanged || update.selectionSet || update.focusChanged) {\n this.decorations = this.buildDecorations(update.view);\n }\n }\n\n buildDecorations(view: EditorView): DecorationSet {\n const decorations: Array<{ from: number; to: number; decoration: Decoration }> = [];\n\n syntaxTree(view.state).iterate({\n enter: (node) => {\n if (node.name === 'FencedCode') {\n const info = node.node.getChild('CodeInfo');\n if (info) {\n const type = view.state.sliceDoc(info.from, info.to);\n const text = node.node.getChild('CodeText');\n if (type === 'prompt' && text) {\n const content = view.state.sliceDoc(text.from, text.to).trim();\n if (content.length > 0) {\n const widget = new PromptRunWidget(content, onRun);\n decorations.push({\n from: node.from,\n to: node.from,\n decoration: Decoration.widget({ widget, side: -1 }),\n });\n }\n }\n }\n }\n },\n });\n\n return Decoration.set(\n decorations.sort((a, b) => a.from - b.from || a.to - b.to).map((d) => d.decoration.range(d.from, d.to)),\n );\n }\n },\n {\n decorations: (v) => v.decorations,\n },\n ),\n ];\n};\n\nclass PromptRunWidget extends WidgetType {\n constructor(\n private readonly prompt: string,\n private readonly onClick: (promptText: string) => void,\n ) {\n super();\n }\n\n override eq(other: this) {\n return this.prompt === other.prompt;\n }\n\n override ignoreEvent() {\n return false;\n }\n\n override toDOM() {\n return Domino.of('div')\n .classNames('relative')\n .append(\n Domino.of('button')\n .classNames('dx-button absolute right-0 top-4')\n .on('mousedown', (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.onClick(this.prompt);\n })\n .append(\n Domino.of('svg', Domino.SVG)\n .classNames('w-4 h-4 cursor-pointer')\n .append(\n Domino.of('use', Domino.SVG).attributes({\n href: Domino.icon('ph--play--regular'),\n }),\n ),\n ),\n ).root;\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Capabilities", "Capability", "Obj", "MarkdownCapabilities", "AssistantOperation", "syntaxTree", "Decoration", "ViewPlugin", "WidgetType", "Domino", "promptRunExtension", "onRun", "fromClass", "decorations", "view", "buildDecorations", "update", "docChanged", "viewportChanged", "selectionSet", "focusChanged", "state", "iterate", "enter", "node", "name", "info", "getChild", "type", "sliceDoc", "from", "to", "text", "content", "trim", "length", "widget", "PromptRunWidget", "push", "decoration", "side", "set", "sort", "a", "b", "map", "d", "range", "v", "prompt", "onClick", "eq", "other", "ignoreEvent", "toDOM", "of", "classNames", "append", "on", "event", "preventDefault", "stopPropagation", "SVG", "attributes", "href", "icon", "root", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "contributes", "MarkdownCapabilities", "ExtensionProvider", "document", "doc", "undefined", "db", "Obj", "getDatabase", "invokePromise", "get", "Capabilities", "OperationInvoker", "promptRunExtension", "onRun", "promptText", "AssistantOperation", "RunPromptInNewChat", "prompt"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { type ComponentProps, useEffect } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppSurface, useActiveSpace } from '@dxos/app-toolkit/ui';\nimport { Chat, Agent, Plan } from '@dxos/assistant-toolkit';\nimport { getSpace } from '@dxos/client/echo';\nimport { Blueprint, Routine } from '@dxos/compute';\nimport { Sequence } from '@dxos/conductor';\nimport { InvocationTraceContainer } from '@dxos/devtools';\nimport { Feed, Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { Panel } from '@dxos/react-ui';\n\nimport { AssistantSettings } from '#components';\nimport {\n BlueprintArticle,\n ChatCompanion,\n ChatArticle,\n ChatDialog,\n AgentArticle,\n AgentProperties,\n PlanArticle,\n RoutineArticle,\n RoutineList,\n TracePanel,\n TriggerStatus,\n} from '#containers';\nimport { ASSISTANT_COMPANION_VARIANT, ASSISTANT_DIALOG, meta } from '#meta';\nimport { type Assistant } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: 'pluginSettings',\n filter: AppSurface.settings(AppSurface.Article, meta.id),\n component: ({ data: { subject } }) => {\n const { settings, updateSettings } = useSettingsState<Assistant.Settings>(subject.atom);\n return <AssistantSettings settings={settings} onSettingsChange={updateSettings} />;\n },\n }),\n Surface.create({\n id: 'chat',\n role: 'article',\n filter: (data): data is { attendableId: string; subject: Chat.Chat; variant: undefined } =>\n typeof data.attendableId === 'string' &&\n Obj.instanceOf(Chat.Chat, data.subject) &&\n data.variant !== ASSISTANT_COMPANION_VARIANT,\n component: ({ data, role, ref }) => {\n return <ChatArticle role={role} subject={data.subject} attendableId={data.attendableId} ref={ref} />;\n },\n }),\n Surface.create({\n id: 'agent',\n filter: AppSurface.object(AppSurface.Article, Agent.Agent),\n component: ({ data, role }) => (\n <AgentArticle role={role} subject={data.subject} attendableId={data.attendableId} />\n ),\n }),\n Surface.create({\n id: 'agentProperties',\n filter: AppSurface.object(AppSurface.ObjectProperties, Agent.Agent),\n component: ({ data }) => <AgentProperties subject={data.subject} />,\n }),\n Surface.create({\n id: 'companionChat',\n role: 'article',\n filter: (data): data is { subject: Chat.Chat | null; attendableId: string; companionTo: Obj.Unknown } =>\n typeof data.attendableId === 'string' &&\n Obj.isObject(data.companionTo) &&\n (Obj.instanceOf(Chat.Chat, data.subject) || data.subject === null),\n component: ({ data: { subject, attendableId, companionTo }, role, ref }) => (\n <ChatCompanion\n role={role}\n subject={subject}\n attendableId={attendableId}\n companionTo={companionTo}\n ref={ref}\n />\n ),\n }),\n Surface.create({\n id: 'companionInvocations',\n role: 'article',\n filter: (data): data is { companionTo: Sequence.Sequence } =>\n (Obj.instanceOf(Sequence.Sequence, data.companionTo) || Obj.instanceOf(Routine.Routine, data.companionTo)) &&\n data.subject === 'invocations',\n component: ({ data, role }) => {\n const space = getSpace(data.companionTo);\n const feed = space?.properties.invocationTraceFeed?.target;\n const feedDXN = feed ? Feed.getQueueUri(feed) : undefined;\n // TODO(wittjosiah): Support invocation filtering for prompts.\n const target = Obj.instanceOf(Routine.Routine, data.companionTo) ? undefined : data.companionTo;\n\n return (\n <Panel.Root role={role} className='dx-document'>\n <Panel.Content asChild>\n <InvocationTraceContainer db={space?.db} feedDXN={feedDXN} target={target} detailAxis='block' />\n </Panel.Content>\n </Panel.Root>\n );\n },\n }),\n Surface.create({\n id: 'blueprint',\n filter: AppSurface.object(AppSurface.Article, Blueprint.Blueprint),\n component: ({ data, role }) => (\n <BlueprintArticle role={role} subject={data.subject} attendableId={data.attendableId} />\n ),\n }),\n Surface.create({\n id: 'prompt',\n filter: AppSurface.object(AppSurface.Article, Routine.Routine),\n component: ({ data, role }) => (\n <RoutineArticle role={role} subject={data.subject} attendableId={data.attendableId} />\n ),\n }),\n Surface.create({\n id: 'plan',\n filter: AppSurface.object(AppSurface.Article, Plan.Plan),\n component: ({ data, role }) => (\n <PlanArticle role={role} subject={data.subject} attendableId={data.attendableId} />\n ),\n }),\n Surface.create({\n id: ASSISTANT_DIALOG,\n filter: AppSurface.component<ComponentProps<typeof ChatDialog>>(AppSurface.Dialog, ASSISTANT_DIALOG),\n component: ({ data }) => <ChatDialog {...data.props} />,\n }),\n Surface.create({\n id: 'trace',\n filter: AppSurface.literal(Surface.makeType<{ subject: string }>('deck-companion--trace'), 'trace'),\n component: () => {\n const space = useActiveSpace();\n useEffect(() => {\n log('trace panel surface', { hasSpace: Boolean(space), spaceId: space?.id });\n }, [space?.id]);\n\n if (!space) {\n return null;\n }\n\n return <TracePanel space={space} />;\n },\n }),\n Surface.create({\n id: 'triggerStatus',\n role: 'status-indicator',\n component: () => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n return <TriggerStatus role='status-indicator' space={space} />;\n },\n }),\n Surface.create({\n id: 'prompts',\n filter: AppSurface.subject(\n Surface.makeType<{ subject: Obj.Any; attendableId: string }>('prompts'),\n Obj.isObject,\n ),\n component: ({ data }) => <RoutineList subject={data.subject} />,\n }),\n ]),\n ),\n);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "React", "useEffect", "Capabilities", "Capability", "Surface", "useSettingsState", "AppSurface", "useActiveSpace", "Chat", "Agent", "Plan", "getSpace", "Blueprint", "Routine", "Sequence", "InvocationTraceContainer", "Feed", "Obj", "log", "Panel", "AssistantSettings", "BlueprintArticle", "ChatCompanion", "ChatArticle", "ChatDialog", "AgentArticle", "AgentProperties", "PlanArticle", "RoutineArticle", "RoutineList", "TracePanel", "TriggerStatus", "ASSISTANT_COMPANION_VARIANT", "ASSISTANT_DIALOG", "meta", "id", "filter", "component", "settings", "updateSettings", "onSettingsChange", "role", "subject", "attendableId", "ref", "data", "create", "companionTo", "space", "feed", "properties", "feedDXN", "getQueueUri", "target", "instanceOf", "asChild", "db", "detailAxis", "hasSpace", "spaceId"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/run-prompt-in-new-chat.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { getObjectPathFromObject, LayoutOperation } from '@dxos/app-toolkit';\nimport { AiContext } from '@dxos/assistant';\nimport { AgentPrompt } from '@dxos/assistant-toolkit';\nimport { Blueprint, Operation, Routine, Template } from '@dxos/compute';\nimport { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';\nimport { createFeedServiceLayer } from '@dxos/echo-client';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Text } from '@dxos/schema';\n\nimport { AssistantCapabilities, AssistantOperation } from '#types';\n\nconst handler: Operation.WithHandler<typeof AssistantOperation.RunPromptInNewChat> =\n AssistantOperation.RunPromptInNewChat.pipe(\n Operation.withHandler(\n Effect.fnUntraced(\n function* ({ db, prompt, objects, blueprints, background }) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const { object: chat } = yield* Operation.invoke(AssistantOperation.CreateChat, { db });\n\n if ((objects && objects.length > 0) || (blueprints && blueprints.length > 0)) {\n const feedTarget = chat.feed.target;\n invariant(feedTarget, 'Chat feed not found.');\n const client = yield* Capability.get(ClientCapabilities.Client);\n const space = client.spaces.get(db.spaceId);\n invariant(space, 'Space not found.');\n const feedServiceLayer = createFeedServiceLayer(space.queues);\n const runtime = yield* Effect.runtime<Feed.FeedService>().pipe(Effect.provide(feedServiceLayer));\n const binder = new AiContext.Binder({ feed: feedTarget, runtime, registry });\n yield* Effect.promise(() =>\n binder.use(async (b: AiContext.Binder) => {\n const bindingProps: Parameters<AiContext.Binder['bind']>[0] = {};\n\n if (objects && objects.length > 0) {\n bindingProps.objects = objects.map((obj) => Ref.make(obj));\n }\n\n if (blueprints && blueprints.length > 0) {\n const allBlueprints = await db.query(Filter.type(Blueprint.Blueprint)).run();\n const matchedBlueprints = allBlueprints.filter((blueprint) => {\n const blueprintKey = Obj.getMeta(blueprint).key;\n return blueprintKey !== undefined && blueprints.includes(blueprintKey);\n });\n if (matchedBlueprints.length > 0) {\n bindingProps.blueprints = matchedBlueprints.map((blueprint) => Ref.make(blueprint));\n }\n }\n\n await b.bind(bindingProps);\n }),\n );\n }\n\n if (background) {\n const promptRef =\n typeof prompt === 'string'\n ? Ref.make(\n Routine.make({\n instructions: prompt,\n blueprints: [],\n context: [],\n }),\n )\n : prompt;\n yield* Database.flush();\n yield* Operation.invoke(\n AgentPrompt,\n {\n prompt: promptRef,\n input: {},\n chat: Ref.make(chat),\n },\n { spaceId: db.spaceId },\n ).pipe(\n Effect.catchAll((error) => {\n log.catch(error);\n return Effect.void;\n }),\n );\n return { object: chat };\n }\n\n const chatPath = getObjectPathFromObject(chat);\n const pendingPromptText =\n typeof prompt === 'string'\n ? prompt\n : yield* Effect.gen(function* () {\n const promptObj = yield* Effect.promise(() => prompt.load());\n const source = yield* Effect.promise(() => promptObj.instructions.load());\n invariant(Obj.instanceOf(Text.Text, source), 'Prompt instructions must be Text.');\n return Template.process(source.content ?? '');\n });\n yield* Capabilities.updateAtomValue(AssistantCapabilities.State, (current) => ({\n ...current,\n pendingPrompts: { ...current.pendingPrompts, [chatPath]: pendingPromptText },\n }));\n yield* Operation.invoke(LayoutOperation.Open, { subject: [chatPath] });\n return { object: chat };\n },\n (effect, { db }) => effect.pipe(Effect.provide(Database.layer(db))),\n ),\n ),\n );\n\nexport default handler;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Capabilities", "Capability", "getObjectPathFromObject", "LayoutOperation", "AiContext", "AgentPrompt", "Blueprint", "Operation", "Routine", "Template", "Database", "Filter", "Obj", "Ref", "createFeedServiceLayer", "invariant", "log", "ClientCapabilities", "Text", "AssistantCapabilities", "AssistantOperation", "object", "db", "objects", "feedTarget", "client", "space", "spaces", "feedServiceLayer", "runtime", "binder", "feed", "registry", "length", "bindingProps", "blueprints", "matchedBlueprints", "allBlueprints", "blueprintKey", "getMeta", "blueprint", "key", "undefined", "background", "instructions", "context", "prompt", "promptRef", "input", "chat", "spaceId", "pipe", "error", "promptObj", "promise", "instanceOf", "source", "content", "updateAtomValue", "pendingPrompts", "pendingPromptText", "subject", "chatPath", "effect"]
|
|
7
|
-
}
|