@dxos/plugin-assistant 0.10.0 → 0.11.1
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/PLUGIN.mdl +3 -28
- package/dist/lib/AssistantPlugin.mjs +2 -0
- package/dist/lib/AssistantPlugin.node.mjs +55 -0
- package/dist/lib/AssistantPlugin.node.mjs.map +1 -0
- package/dist/lib/AssistantPlugin.workerd.mjs +43 -0
- package/dist/lib/AssistantPlugin.workerd.mjs.map +1 -0
- package/dist/lib/capabilities.mjs +24 -0
- package/dist/lib/capabilities.mjs.map +1 -0
- package/dist/lib/chunk-AgentArticle.mjs +52 -0
- package/dist/lib/chunk-AgentArticle.mjs.map +1 -0
- package/dist/lib/chunk-AgentProperties.mjs +35 -0
- package/dist/lib/chunk-AgentProperties.mjs.map +1 -0
- package/dist/lib/chunk-AssistantPlugin.mjs +88 -0
- package/dist/lib/chunk-AssistantPlugin.mjs.map +1 -0
- package/dist/lib/chunk-AssistantSettings.mjs +285 -0
- package/dist/lib/chunk-AssistantSettings.mjs.map +1 -0
- package/dist/lib/chunk-ChatArticle.mjs +121 -0
- package/dist/lib/chunk-ChatArticle.mjs.map +1 -0
- package/dist/lib/chunk-ChatCompanion.mjs +116 -0
- package/dist/lib/chunk-ChatCompanion.mjs.map +1 -0
- package/dist/lib/chunk-ChatDialog.mjs +73 -0
- package/dist/lib/chunk-ChatDialog.mjs.map +1 -0
- package/dist/lib/chunk-IntegrationPrompt.mjs +73 -0
- package/dist/lib/chunk-IntegrationPrompt.mjs.map +1 -0
- package/dist/lib/chunk-SpaceHomePrompt.mjs +104 -0
- package/dist/lib/chunk-SpaceHomePrompt.mjs.map +1 -0
- package/dist/lib/chunk-SpaceHomeSuggestions.mjs +60 -0
- package/dist/lib/chunk-SpaceHomeSuggestions.mjs.map +1 -0
- package/dist/lib/chunk-TracePanel.mjs +127 -0
- package/dist/lib/chunk-TracePanel.mjs.map +1 -0
- package/dist/lib/chunk-TracePanel2.mjs +7 -0
- package/dist/lib/chunk-TracePanel2.mjs.map +1 -0
- package/dist/lib/chunk-TriggerStatus.mjs +72 -0
- package/dist/lib/chunk-TriggerStatus.mjs.map +1 -0
- package/dist/lib/chunk-agent-hydrator.mjs +22 -0
- package/dist/lib/chunk-agent-hydrator.mjs.map +1 -0
- package/dist/lib/chunk-agent-service.mjs +21 -0
- package/dist/lib/chunk-agent-service.mjs.map +1 -0
- package/dist/lib/{neutral/ai-context-LIKJYMIN.mjs → chunk-ai-context.mjs} +8 -12
- package/dist/lib/chunk-ai-context.mjs.map +1 -0
- package/dist/lib/chunk-ai-service.mjs +27 -0
- package/dist/lib/chunk-ai-service.mjs.map +1 -0
- package/dist/lib/chunk-app-graph-builder.mjs +179 -0
- package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
- package/dist/lib/chunk-automation-templates.mjs +99 -0
- package/dist/lib/chunk-automation-templates.mjs.map +1 -0
- package/dist/lib/chunk-companion-chat-provisioner.mjs +123 -0
- package/dist/lib/chunk-companion-chat-provisioner.mjs.map +1 -0
- package/dist/lib/chunk-connector.mjs +60 -0
- package/dist/lib/chunk-connector.mjs.map +1 -0
- package/dist/lib/chunk-constants.mjs +9 -0
- package/dist/lib/chunk-constants.mjs.map +1 -0
- package/dist/lib/chunk-context.mjs +7 -0
- package/dist/lib/chunk-context.mjs.map +1 -0
- package/dist/lib/chunk-create-chat.mjs +53 -0
- package/dist/lib/chunk-create-chat.mjs.map +1 -0
- package/dist/lib/chunk-create-object.mjs +70 -0
- package/dist/lib/chunk-create-object.mjs.map +1 -0
- package/dist/lib/chunk-edge-model-resolver.mjs +64 -0
- package/dist/lib/chunk-edge-model-resolver.mjs.map +1 -0
- package/dist/lib/chunk-ensure-companion-chat.mjs +49 -0
- package/dist/lib/chunk-ensure-companion-chat.mjs.map +1 -0
- package/dist/lib/chunk-extensions.mjs +78 -0
- package/dist/lib/chunk-extensions.mjs.map +1 -0
- package/dist/lib/chunk-fork-chat.mjs +83 -0
- package/dist/lib/chunk-fork-chat.mjs.map +1 -0
- package/dist/lib/chunk-generate-home-suggestions.mjs +71 -0
- package/dist/lib/chunk-generate-home-suggestions.mjs.map +1 -0
- package/dist/lib/chunk-local-model-resolver.mjs +25 -0
- package/dist/lib/chunk-local-model-resolver.mjs.map +1 -0
- package/dist/lib/chunk-markdown-extension.mjs +27 -0
- package/dist/lib/chunk-markdown-extension.mjs.map +1 -0
- package/dist/lib/{neutral/chunk-L7AR4VTA.mjs → chunk-meta.mjs} +20 -25
- package/dist/lib/chunk-meta.mjs.map +1 -0
- package/dist/lib/chunk-operation-handler.mjs +13 -0
- package/dist/lib/chunk-operation-handler.mjs.map +1 -0
- package/dist/lib/chunk-paths.mjs +8 -0
- package/dist/lib/chunk-paths.mjs.map +1 -0
- package/dist/lib/chunk-processor.mjs +432 -0
- package/dist/lib/chunk-processor.mjs.map +1 -0
- package/dist/lib/chunk-react-surface.mjs +177 -0
- package/dist/lib/chunk-react-surface.mjs.map +1 -0
- package/dist/lib/chunk-run-prompt-in-new-chat.mjs +96 -0
- package/dist/lib/chunk-run-prompt-in-new-chat.mjs.map +1 -0
- package/dist/lib/chunk-set-current-chat.mjs +43 -0
- package/dist/lib/chunk-set-current-chat.mjs.map +1 -0
- package/dist/lib/chunk-settings.mjs +23 -0
- package/dist/lib/chunk-settings.mjs.map +1 -0
- package/dist/lib/chunk-skill-definition.mjs +42 -0
- package/dist/lib/chunk-skill-definition.mjs.map +1 -0
- package/dist/lib/chunk-skills.mjs +19 -0
- package/dist/lib/chunk-skills.mjs.map +1 -0
- package/dist/lib/chunk-state.mjs +32 -0
- package/dist/lib/chunk-state.mjs.map +1 -0
- package/dist/lib/chunk-toggle-trace-panel-debug.mjs +18 -0
- package/dist/lib/chunk-toggle-trace-panel-debug.mjs.map +1 -0
- package/dist/lib/chunk-toolkit.mjs +12 -0
- package/dist/lib/chunk-toolkit.mjs.map +1 -0
- package/dist/lib/chunk-types.mjs +332 -0
- package/dist/lib/chunk-types.mjs.map +1 -0
- package/dist/lib/chunk-update-chat-name.mjs +63 -0
- package/dist/lib/chunk-update-chat-name.mjs.map +1 -0
- package/dist/lib/components.mjs +2616 -0
- package/dist/lib/components.mjs.map +1 -0
- package/dist/lib/containers.mjs +17 -0
- package/dist/lib/containers.mjs.map +1 -0
- package/dist/lib/execution-graph.mjs +961 -0
- package/dist/lib/execution-graph.mjs.map +1 -0
- package/dist/lib/extensions.mjs +2 -0
- package/dist/lib/hooks.mjs +674 -0
- package/dist/lib/hooks.mjs.map +1 -0
- package/dist/lib/index.mjs +5 -0
- package/dist/lib/meta.mjs +2 -0
- package/dist/lib/operations.mjs +7 -0
- package/dist/lib/operations.mjs.map +1 -0
- package/dist/lib/plugin.mjs +9 -0
- package/dist/lib/plugin.mjs.map +1 -0
- package/dist/lib/plugin.workerd.mjs +2 -0
- package/dist/lib/skills.mjs +2 -0
- package/dist/lib/testing.mjs +2 -0
- package/dist/lib/translations.mjs +207 -0
- package/dist/lib/translations.mjs.map +1 -0
- package/dist/lib/types.mjs +2 -0
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/AssistantPlugin.node.d.ts.map +1 -1
- package/dist/types/src/AssistantPlugin.workerd.d.ts.map +1 -1
- package/dist/types/src/capabilities/AssistantSurfaces.d.ts +22 -0
- package/dist/types/src/capabilities/AssistantSurfaces.d.ts.map +1 -0
- package/dist/types/src/capabilities/agent-hydrator.d.ts +1 -1
- package/dist/types/src/capabilities/agent-service.d.ts +1 -1
- package/dist/types/src/capabilities/agent-service.d.ts.map +1 -1
- package/dist/types/src/capabilities/ai-context.d.ts +1 -1
- package/dist/types/src/capabilities/ai-service.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +12 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/automation-templates.d.ts +1 -1
- package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +1 -1
- package/dist/types/src/capabilities/connector.d.ts +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +1 -1
- package/dist/types/src/capabilities/edge-model-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +0 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/local-model-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown-extension.d.ts +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/standalone-chats-query.test.d.ts +2 -0
- package/dist/types/src/capabilities/standalone-chats-query.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/toolkit.d.ts +1 -1
- package/dist/types/src/components/AgentProperties/AgentProperties.d.ts +4 -1
- package/dist/types/src/components/AgentProperties/AgentProperties.d.ts.map +1 -1
- package/dist/types/src/components/AgentProperties/AgentProperties.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.d.ts +21 -8
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/Chat/{Chat.stories.d.ts → Error.stories.d.ts} +1 -1
- package/dist/types/src/components/Chat/Error.stories.d.ts.map +1 -0
- package/dist/types/src/components/Chat/context.d.ts +8 -0
- package/dist/types/src/components/Chat/context.d.ts.map +1 -1
- package/dist/types/src/components/Chat/events.d.ts +5 -0
- package/dist/types/src/components/Chat/events.d.ts.map +1 -1
- package/dist/types/src/components/Chat/thread.d.ts +42 -0
- package/dist/types/src/components/Chat/thread.d.ts.map +1 -0
- package/dist/types/src/components/Chat/thread.test.d.ts +2 -0
- package/dist/types/src/components/Chat/thread.test.d.ts.map +1 -0
- package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts +5 -3
- package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/index.d.ts +0 -1
- package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/Anchor.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.d.ts +8 -3
- package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +30 -2
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/index.d.ts +1 -0
- package/dist/types/src/components/ChatThread/index.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/sync/index.d.ts +3 -0
- package/dist/types/src/components/ChatThread/sync/index.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/{sync.d.ts → sync/sync.d.ts} +46 -2
- package/dist/types/src/components/ChatThread/sync/sync.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/sync/sync.test.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/sync/tool-widget-state.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/sync/tool-widget-state.test.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/BranchWidget.d.ts +15 -0
- package/dist/types/src/components/ChatThread/widgets/BranchWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/BranchWidget.stories.d.ts +21 -0
- package/dist/types/src/components/ChatThread/widgets/BranchWidget.stories.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/BranchWidget.test.d.ts +2 -0
- package/dist/types/src/components/ChatThread/widgets/BranchWidget.test.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts +1 -2
- package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/widgets/defaults.d.ts +6 -0
- package/dist/types/src/components/ChatThread/widgets/defaults.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/widgets/format-time.d.ts +2 -0
- package/dist/types/src/components/ChatThread/widgets/format-time.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/index.d.ts +4 -1
- package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/widgets/is-tool-message.d.ts +3 -0
- package/dist/types/src/components/ChatThread/widgets/is-tool-message.d.ts.map +1 -0
- package/dist/types/src/components/ConnectorAuthMenu/ConnectorAuthMenu.d.ts +16 -0
- package/dist/types/src/components/ConnectorAuthMenu/ConnectorAuthMenu.d.ts.map +1 -0
- package/dist/types/src/components/ConnectorAuthMenu/ConnectorAuthMenu.stories.d.ts +210 -0
- package/dist/types/src/components/ConnectorAuthMenu/ConnectorAuthMenu.stories.d.ts.map +1 -0
- package/dist/types/src/components/ConnectorAuthMenu/index.d.ts +2 -0
- package/dist/types/src/components/ConnectorAuthMenu/index.d.ts.map +1 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +1 -1
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
- package/dist/types/src/components/TaskList/TaskList.d.ts +9 -11
- package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -1
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts +3 -4
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -1
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +1 -2
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
- package/dist/types/src/components/ToolBlock/index.d.ts +1 -0
- package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -1
- package/dist/types/src/components/ToolBlock/is-tool-message.d.ts +3 -0
- package/dist/types/src/components/ToolBlock/is-tool-message.d.ts.map +1 -0
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.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/AgentArticle/AgentArticle.d.ts +5 -2
- package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -1
- package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -1
- package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts +4 -1
- package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -1
- package/dist/types/src/containers/AssistantSettings/AssistantSettings.d.ts +4 -1
- package/dist/types/src/containers/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/containers/AssistantSettings/AssistantSettings.stories.d.ts +4 -1
- package/dist/types/src/containers/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -1
- package/dist/types/src/containers/AssistantSettings/OllamaModels.d.ts +4 -6
- package/dist/types/src/containers/AssistantSettings/OllamaModels.d.ts.map +1 -1
- package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -1
- package/dist/types/src/containers/ChatArticle/ChatArticle.stories.d.ts +22 -1
- package/dist/types/src/containers/ChatArticle/ChatArticle.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -1
- package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts +4 -1
- package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -1
- package/dist/types/src/containers/IntegrationPrompt/IntegrationPrompt.d.ts +4 -7
- package/dist/types/src/containers/IntegrationPrompt/IntegrationPrompt.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts +4 -9
- package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts +5 -7
- package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts.map +1 -1
- package/dist/types/src/containers/TracePanel/TracePanel.d.ts +1 -1
- package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -1
- package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -1
- package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +15 -1
- package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +0 -1
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/execution-graph/execution-graph.d.ts +12 -1
- package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -1
- package/dist/types/src/execution-graph/index.d.ts +1 -1
- package/dist/types/src/execution-graph/index.d.ts.map +1 -1
- package/dist/types/src/execution-graph/pending-block-status.d.ts.map +1 -1
- package/dist/types/src/execution-graph/span-tree.d.ts +17 -0
- package/dist/types/src/execution-graph/span-tree.d.ts.map +1 -1
- package/dist/types/src/feed-logger.d.ts +1 -1
- package/dist/types/src/feed-logger.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextObjects.d.ts +1 -1
- package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
- package/dist/types/src/hooks/useSelectionContext.d.ts +13 -0
- package/dist/types/src/hooks/useSelectionContext.d.ts.map +1 -0
- package/dist/types/src/hooks/useSelectionContext.test.d.ts +2 -0
- package/dist/types/src/hooks/useSelectionContext.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useTraceMessages.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/processor/index.d.ts +1 -0
- package/dist/types/src/processor/index.d.ts.map +1 -1
- package/dist/types/src/processor/processor.d.ts +5 -2
- package/dist/types/src/processor/processor.d.ts.map +1 -1
- package/dist/types/src/processor/prompt.d.ts +18 -0
- package/dist/types/src/processor/prompt.d.ts.map +1 -0
- package/dist/types/src/processor/prompt.test.d.ts +2 -0
- package/dist/types/src/processor/prompt.test.d.ts.map +1 -0
- package/dist/types/src/processor/streaming.node.test.d.ts +2 -0
- package/dist/types/src/processor/streaming.node.test.d.ts.map +1 -0
- package/dist/types/src/skills/assistant/skill.d.ts.map +1 -1
- package/dist/types/src/templates/scaffold.d.ts +1 -1
- package/dist/types/src/templates/scaffold.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/AssistantCapabilities.d.ts +1 -1
- package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -1
- package/dist/types/src/types/AssistantOperation.d.ts +2 -13
- package/dist/types/src/types/AssistantOperation.d.ts.map +1 -1
- package/dist/types/src/types/ChatSurface.d.ts +2 -2
- package/dist/types/src/types/ChatSurface.d.ts.map +1 -1
- package/dist/types/src/types/Ollama.d.ts +1 -1
- package/dist/types/src/types/Ollama.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +1 -0
- package/package.json +106 -105
- package/src/AssistantPlugin.node.ts +1 -2
- package/src/AssistantPlugin.test.ts +60 -62
- package/src/AssistantPlugin.ts +1 -10
- package/src/AssistantPlugin.workerd.ts +1 -2
- package/src/capabilities/AssistantSurfaces.tsx +86 -0
- package/src/capabilities/agent-service.ts +1 -1
- package/src/capabilities/app-graph-builder.ts +31 -17
- package/src/capabilities/companion-chat-provisioner.ts +12 -11
- package/src/capabilities/connector.ts +3 -3
- package/src/capabilities/edge-model-resolver.ts +5 -2
- package/src/capabilities/index.ts +0 -2
- package/src/capabilities/react-surface.ts +135 -0
- package/src/capabilities/skill-definition.ts +4 -0
- package/src/capabilities/standalone-chats-query.test.ts +51 -0
- package/src/capabilities/state.ts +1 -1
- package/src/components/AgentProperties/AgentProperties.stories.tsx +6 -7
- package/src/components/AgentProperties/AgentProperties.tsx +37 -30
- package/src/components/Chat/Chat.tsx +275 -59
- package/src/components/Chat/{Chat.stories.tsx → Error.stories.tsx} +1 -1
- package/src/components/Chat/context.ts +8 -0
- package/src/components/Chat/events.ts +5 -0
- package/src/components/Chat/thread.test.ts +127 -0
- package/src/components/Chat/thread.ts +87 -0
- package/src/components/ChatPrompt/ChatActions.tsx +8 -8
- package/src/components/ChatPrompt/ChatMcpErrors.tsx +2 -2
- package/src/components/ChatPrompt/ChatOptions.stories.tsx +2 -1
- package/src/components/ChatPrompt/ChatOptions.tsx +5 -5
- package/src/components/ChatPrompt/ChatPrompt.tsx +33 -6
- package/src/components/ChatPrompt/index.ts +0 -1
- package/src/components/ChatThread/Anchor.stories.tsx +2 -1
- package/src/components/ChatThread/ChatThread.stories.tsx +99 -4
- package/src/components/ChatThread/ChatThread.tsx +34 -6
- package/src/components/ChatThread/Link.tsx +1 -0
- package/src/components/ChatThread/index.ts +2 -0
- package/src/components/ChatThread/registry.tsx +28 -4
- package/src/components/ChatThread/sync/index.ts +6 -0
- package/src/components/ChatThread/{sync.test.ts → sync/sync.test.ts} +167 -7
- package/src/components/ChatThread/{sync.ts → sync/sync.ts} +97 -3
- package/src/components/ChatThread/{tool-widget-state.ts → sync/tool-widget-state.ts} +1 -3
- package/src/components/ChatThread/widgets/BranchWidget.stories.tsx +83 -0
- package/src/components/ChatThread/widgets/BranchWidget.test.ts +55 -0
- package/src/components/ChatThread/widgets/BranchWidget.tsx +61 -0
- package/src/components/ChatThread/widgets/FallbackWidget.tsx +2 -2
- package/src/components/ChatThread/widgets/ReasoningWidget.ts +1 -1
- package/src/components/ChatThread/widgets/ReferenceWidget.ts +1 -6
- package/src/components/ChatThread/widgets/SuggestionWidget.ts +12 -3
- package/src/components/ChatThread/widgets/SummaryWidget.tsx +1 -1
- package/src/components/ChatThread/widgets/ToolWidget.tsx +15 -9
- package/src/components/ChatThread/widgets/defaults.ts +7 -1
- package/src/components/ChatThread/widgets/format-time.ts +45 -0
- package/src/components/ChatThread/widgets/index.ts +4 -1
- package/src/components/ChatThread/widgets/is-tool-message.ts +13 -0
- package/src/components/ConnectorAuthMenu/ConnectorAuthMenu.stories.tsx +177 -0
- package/src/components/ConnectorAuthMenu/ConnectorAuthMenu.tsx +82 -0
- package/src/components/ConnectorAuthMenu/index.ts +5 -0
- package/src/components/ProcessTree/ProcessTree.stories.tsx +1 -1
- package/src/components/TaskList/TaskList.stories.tsx +19 -26
- package/src/components/TaskList/TaskList.tsx +32 -104
- package/src/components/ToolBlock/ToolBlock.tsx +1 -5
- package/src/components/ToolBlock/index.ts +1 -0
- package/src/components/ToolBlock/is-tool-message.ts +13 -0
- package/src/components/Toolbox/Toolbox.tsx +1 -1
- package/src/components/index.ts +1 -0
- package/src/containers/AgentArticle/AgentArticle.stories.tsx +18 -11
- package/src/containers/AgentArticle/AgentArticle.tsx +27 -151
- package/src/containers/AgentProperties/AgentProperties.tsx +21 -17
- package/src/containers/AssistantSettings/AssistantSettings.tsx +2 -0
- package/src/containers/AssistantSettings/OllamaModels.tsx +6 -4
- package/src/containers/ChatArticle/ChatArticle.stories.tsx +200 -27
- package/src/containers/ChatArticle/ChatArticle.tsx +25 -5
- package/src/containers/ChatCompanion/ChatCompanion.tsx +45 -10
- package/src/containers/ChatDialog/ChatDialog.tsx +4 -1
- package/src/containers/IntegrationPrompt/IntegrationPrompt.tsx +9 -6
- package/src/containers/SpaceHomePrompt/SpaceHomePrompt.tsx +2 -0
- package/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.tsx +40 -39
- package/src/containers/TracePanel/TracePanel.stories.tsx +9 -4
- package/src/containers/TracePanel/TracePanel.tsx +22 -6
- package/src/containers/TriggerStatus/TriggerStatus.tsx +9 -16
- package/src/containers/index.ts +0 -1
- package/src/execution-graph/SPEC.md +60 -2
- package/src/execution-graph/execution-graph.ts +15 -2
- package/src/execution-graph/index.ts +1 -0
- package/src/execution-graph/pending-block-status.ts +3 -2
- package/src/execution-graph/span-tree.test.ts +87 -1
- package/src/execution-graph/span-tree.ts +95 -0
- package/src/feed-logger.ts +6 -6
- package/src/hooks/index.ts +1 -1
- package/src/hooks/useChatProcessor.ts +2 -1
- package/src/hooks/useChatToolbarActions.ts +22 -19
- package/src/hooks/useContextObjects.ts +9 -3
- package/src/hooks/useSelectionContext.test.ts +93 -0
- package/src/hooks/useSelectionContext.ts +72 -0
- package/src/hooks/useSkillRegistry.ts +1 -1
- package/src/hooks/useTraceMessages.ts +5 -3
- package/src/operations/create-chat.ts +2 -2
- package/src/operations/fork-chat.ts +2 -2
- package/src/operations/generate-home-suggestions.test.ts +2 -2
- package/src/operations/index.ts +0 -1
- package/src/operations/prompt.node.test.ts +1 -1
- package/src/paths.ts +3 -3
- package/src/processor/index.ts +1 -0
- package/src/processor/processor.node.test.ts +1 -1
- package/src/processor/processor.ts +33 -5
- package/src/processor/prompt.test.ts +37 -0
- package/src/processor/prompt.ts +42 -0
- package/src/processor/streaming.node.test.ts +196 -0
- package/src/skills/assistant/skill.node.test.ts +2 -2
- package/src/skills/assistant/skill.ts +3 -5
- package/src/templates/routine-templates.test.ts +1 -2
- package/src/templates/scaffold.ts +3 -3
- 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 +1 -2
- package/src/testing/trace-timeline.node.test.ts +3 -3
- package/src/translations.ts +11 -10
- package/src/types/AssistantCapabilities.ts +1 -1
- package/src/types/AssistantOperation.ts +8 -31
- package/src/types/ChatSurface.ts +3 -3
- package/src/types/Ollama.ts +1 -1
- package/dist/lib/neutral/AgentArticle-GV6EEW3I.mjs +0 -161
- package/dist/lib/neutral/AgentArticle-GV6EEW3I.mjs.map +0 -7
- package/dist/lib/neutral/AgentProperties-LFTEYJ54.mjs +0 -40
- package/dist/lib/neutral/AgentProperties-LFTEYJ54.mjs.map +0 -7
- package/dist/lib/neutral/AssistantPlugin.mjs +0 -10
- package/dist/lib/neutral/AssistantPlugin.mjs.map +0 -7
- package/dist/lib/neutral/AssistantPlugin.node.mjs +0 -72
- package/dist/lib/neutral/AssistantPlugin.node.mjs.map +0 -7
- package/dist/lib/neutral/AssistantPlugin.workerd.mjs +0 -13
- package/dist/lib/neutral/AssistantPlugin.workerd.mjs.map +0 -7
- package/dist/lib/neutral/AssistantSettings-3N5M5VCN.mjs +0 -302
- package/dist/lib/neutral/AssistantSettings-3N5M5VCN.mjs.map +0 -7
- package/dist/lib/neutral/ChatArticle-OO7GGEFW.mjs +0 -8
- package/dist/lib/neutral/ChatArticle-OO7GGEFW.mjs.map +0 -7
- package/dist/lib/neutral/ChatCompanion-GIFJRY6I.mjs +0 -128
- package/dist/lib/neutral/ChatCompanion-GIFJRY6I.mjs.map +0 -7
- package/dist/lib/neutral/ChatDialog-5MXN4MXS.mjs +0 -74
- package/dist/lib/neutral/ChatDialog-5MXN4MXS.mjs.map +0 -7
- package/dist/lib/neutral/IntegrationPrompt-2HJQFYJE.mjs +0 -72
- package/dist/lib/neutral/IntegrationPrompt-2HJQFYJE.mjs.map +0 -7
- package/dist/lib/neutral/PlanArticle-VPK2IYWU.mjs +0 -34
- package/dist/lib/neutral/PlanArticle-VPK2IYWU.mjs.map +0 -7
- package/dist/lib/neutral/SpaceHomePrompt-ISAB76LD.mjs +0 -114
- package/dist/lib/neutral/SpaceHomePrompt-ISAB76LD.mjs.map +0 -7
- package/dist/lib/neutral/SpaceHomeSuggestions-IDH77QQR.mjs +0 -63
- package/dist/lib/neutral/SpaceHomeSuggestions-IDH77QQR.mjs.map +0 -7
- package/dist/lib/neutral/TracePanel-JKNWADJ4.mjs +0 -12
- package/dist/lib/neutral/TracePanel-JKNWADJ4.mjs.map +0 -7
- package/dist/lib/neutral/TriggerStatus-FURRBHYA.mjs +0 -95
- package/dist/lib/neutral/TriggerStatus-FURRBHYA.mjs.map +0 -7
- package/dist/lib/neutral/agent-hydrator-OBO3RHLO.mjs +0 -23
- package/dist/lib/neutral/agent-hydrator-OBO3RHLO.mjs.map +0 -7
- package/dist/lib/neutral/agent-service-XFJ4VQMT.mjs +0 -32
- package/dist/lib/neutral/agent-service-XFJ4VQMT.mjs.map +0 -7
- package/dist/lib/neutral/ai-context-LIKJYMIN.mjs.map +0 -7
- package/dist/lib/neutral/ai-service-DM6YXWUC.mjs +0 -44
- package/dist/lib/neutral/ai-service-DM6YXWUC.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-OPVOEQY7.mjs +0 -249
- package/dist/lib/neutral/app-graph-builder-OPVOEQY7.mjs.map +0 -7
- package/dist/lib/neutral/automation-templates-MADJLXGJ.mjs +0 -97
- package/dist/lib/neutral/automation-templates-MADJLXGJ.mjs.map +0 -7
- package/dist/lib/neutral/capabilities/index.mjs +0 -47
- package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
- package/dist/lib/neutral/chunk-5IHQ52KJ.mjs +0 -9
- package/dist/lib/neutral/chunk-5IHQ52KJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-6Q4OBGIK.mjs +0 -420
- package/dist/lib/neutral/chunk-6Q4OBGIK.mjs.map +0 -7
- package/dist/lib/neutral/chunk-BXI2R4OO.mjs +0 -410
- package/dist/lib/neutral/chunk-BXI2R4OO.mjs.map +0 -7
- package/dist/lib/neutral/chunk-CMPLPDYE.mjs +0 -30
- package/dist/lib/neutral/chunk-CMPLPDYE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-GPHT3HYS.mjs +0 -8
- package/dist/lib/neutral/chunk-GPHT3HYS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-HKLSFB5I.mjs +0 -90
- package/dist/lib/neutral/chunk-HKLSFB5I.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-L7AR4VTA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-LS72HWMM.mjs +0 -42
- package/dist/lib/neutral/chunk-LS72HWMM.mjs.map +0 -7
- package/dist/lib/neutral/chunk-OZWZGIV2.mjs +0 -12
- package/dist/lib/neutral/chunk-OZWZGIV2.mjs.map +0 -7
- package/dist/lib/neutral/chunk-QOKLFHUS.mjs +0 -13
- package/dist/lib/neutral/chunk-QOKLFHUS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-SCTHQVIJ.mjs +0 -155
- package/dist/lib/neutral/chunk-SCTHQVIJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-U4LTLBAX.mjs +0 -56
- package/dist/lib/neutral/chunk-U4LTLBAX.mjs.map +0 -7
- package/dist/lib/neutral/chunk-UPKFUZ6V.mjs +0 -115
- package/dist/lib/neutral/chunk-UPKFUZ6V.mjs.map +0 -7
- package/dist/lib/neutral/chunk-V2Y4XE3O.mjs +0 -12
- package/dist/lib/neutral/chunk-V2Y4XE3O.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-XVGEJWJX.mjs +0 -133
- package/dist/lib/neutral/chunk-XVGEJWJX.mjs.map +0 -7
- package/dist/lib/neutral/companion-chat-provisioner-IQV5VIVE.mjs +0 -126
- package/dist/lib/neutral/companion-chat-provisioner-IQV5VIVE.mjs.map +0 -7
- package/dist/lib/neutral/components/index.mjs +0 -2527
- package/dist/lib/neutral/components/index.mjs.map +0 -7
- package/dist/lib/neutral/connector-ITLLTBPZ.mjs +0 -70
- package/dist/lib/neutral/connector-ITLLTBPZ.mjs.map +0 -7
- package/dist/lib/neutral/containers/index.mjs +0 -31
- package/dist/lib/neutral/containers/index.mjs.map +0 -7
- package/dist/lib/neutral/create-chat-YGVZZYGP.mjs +0 -56
- package/dist/lib/neutral/create-chat-YGVZZYGP.mjs.map +0 -7
- package/dist/lib/neutral/create-object-5PAEJ6KM.mjs +0 -76
- package/dist/lib/neutral/create-object-5PAEJ6KM.mjs.map +0 -7
- package/dist/lib/neutral/edge-model-resolver-WDJWDZTT.mjs +0 -55
- package/dist/lib/neutral/edge-model-resolver-WDJWDZTT.mjs.map +0 -7
- package/dist/lib/neutral/ensure-companion-chat-AMOF3C66.mjs +0 -58
- package/dist/lib/neutral/ensure-companion-chat-AMOF3C66.mjs.map +0 -7
- package/dist/lib/neutral/execution-graph/index.mjs +0 -977
- package/dist/lib/neutral/execution-graph/index.mjs.map +0 -7
- package/dist/lib/neutral/extensions/index.mjs +0 -8
- package/dist/lib/neutral/extensions/index.mjs.map +0 -7
- package/dist/lib/neutral/fork-chat-RMAAYYQF.mjs +0 -92
- package/dist/lib/neutral/fork-chat-RMAAYYQF.mjs.map +0 -7
- package/dist/lib/neutral/generate-home-suggestions-6MM2XWPV.mjs +0 -93
- package/dist/lib/neutral/generate-home-suggestions-6MM2XWPV.mjs.map +0 -7
- package/dist/lib/neutral/hooks/index.mjs +0 -877
- package/dist/lib/neutral/hooks/index.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -42
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs +0 -24
- package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs.map +0 -7
- package/dist/lib/neutral/markdown-extension-R4TKDTIF.mjs +0 -41
- package/dist/lib/neutral/markdown-extension-R4TKDTIF.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/meta.mjs +0 -12
- package/dist/lib/neutral/meta.mjs.map +0 -7
- package/dist/lib/neutral/migrations-7DEMVBOG.mjs +0 -28
- package/dist/lib/neutral/migrations-7DEMVBOG.mjs.map +0 -7
- package/dist/lib/neutral/navigation-resolver-PYGP2DAW.mjs +0 -18
- package/dist/lib/neutral/navigation-resolver-PYGP2DAW.mjs.map +0 -7
- package/dist/lib/neutral/operation-handler-2LEN45GP.mjs +0 -8
- package/dist/lib/neutral/operation-handler-2LEN45GP.mjs.map +0 -7
- package/dist/lib/neutral/operations/index.mjs +0 -8
- package/dist/lib/neutral/operations/index.mjs.map +0 -7
- package/dist/lib/neutral/plugin.mjs +0 -16
- package/dist/lib/neutral/plugin.mjs.map +0 -7
- package/dist/lib/neutral/plugin.workerd.mjs +0 -13
- package/dist/lib/neutral/plugin.workerd.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-HEJEK44F.mjs +0 -171
- package/dist/lib/neutral/react-surface-HEJEK44F.mjs.map +0 -7
- package/dist/lib/neutral/resolve-navigation-targets-PBQ3OLUE.mjs +0 -28
- package/dist/lib/neutral/resolve-navigation-targets-PBQ3OLUE.mjs.map +0 -7
- package/dist/lib/neutral/run-prompt-in-new-chat-RNUJE2FM.mjs +0 -102
- package/dist/lib/neutral/run-prompt-in-new-chat-RNUJE2FM.mjs.map +0 -7
- package/dist/lib/neutral/set-current-chat-VWBPSIMZ.mjs +0 -48
- package/dist/lib/neutral/set-current-chat-VWBPSIMZ.mjs.map +0 -7
- package/dist/lib/neutral/settings-7Q3RITIT.mjs +0 -28
- package/dist/lib/neutral/settings-7Q3RITIT.mjs.map +0 -7
- package/dist/lib/neutral/skill-definition-553MQRTR.mjs +0 -8
- package/dist/lib/neutral/skill-definition-553MQRTR.mjs.map +0 -7
- package/dist/lib/neutral/skills/index.mjs +0 -8
- package/dist/lib/neutral/skills/index.mjs.map +0 -7
- package/dist/lib/neutral/state-4LGAKSSD.mjs +0 -34
- package/dist/lib/neutral/state-4LGAKSSD.mjs.map +0 -7
- package/dist/lib/neutral/testing.mjs +0 -8
- package/dist/lib/neutral/testing.mjs.map +0 -7
- package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs +0 -21
- package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs.map +0 -7
- package/dist/lib/neutral/toolkit-ETWLG5NT.mjs +0 -8
- package/dist/lib/neutral/toolkit-ETWLG5NT.mjs.map +0 -7
- package/dist/lib/neutral/translations.mjs +0 -217
- package/dist/lib/neutral/translations.mjs.map +0 -7
- package/dist/lib/neutral/types/index.mjs +0 -24
- package/dist/lib/neutral/types/index.mjs.map +0 -7
- package/dist/lib/neutral/update-chat-name-IJJELRR6.mjs +0 -61
- package/dist/lib/neutral/update-chat-name-IJJELRR6.mjs.map +0 -7
- package/dist/types/src/capabilities/migrations.d.ts +0 -5
- package/dist/types/src/capabilities/migrations.d.ts.map +0 -1
- package/dist/types/src/capabilities/navigation-resolver.d.ts +0 -5
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +0 -1
- package/dist/types/src/components/Chat/Chat.stories.d.ts.map +0 -1
- package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +0 -10
- package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/sync.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/sync.test.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts.map +0 -1
- package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts +0 -6
- package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts.map +0 -1
- package/dist/types/src/containers/PlanArticle/index.d.ts +0 -2
- package/dist/types/src/containers/PlanArticle/index.d.ts.map +0 -1
- package/dist/types/src/hooks/useFlush.d.ts +0 -6
- package/dist/types/src/hooks/useFlush.d.ts.map +0 -1
- package/dist/types/src/operations/resolve-navigation-targets.d.ts +0 -5
- package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +0 -1
- package/src/AssistantPlugin.conversations.json +0 -1
- package/src/capabilities/migrations.ts +0 -28
- package/src/capabilities/navigation-resolver.ts +0 -20
- package/src/capabilities/react-surface.tsx +0 -177
- package/src/components/ChatPrompt/ChatStatusIndicator.tsx +0 -42
- package/src/components/ChatThread/DEBUG.md +0 -64
- package/src/containers/PlanArticle/PlanArticle.tsx +0 -37
- package/src/containers/PlanArticle/index.ts +0 -5
- package/src/hooks/useFlush.ts +0 -35
- package/src/operations/resolve-navigation-targets.ts +0 -44
- /package/dist/types/src/components/ChatThread/{sync.test.d.ts → sync/sync.test.d.ts} +0 -0
- /package/dist/types/src/components/ChatThread/{tool-widget-state.d.ts → sync/tool-widget-state.d.ts} +0 -0
- /package/dist/types/src/components/ChatThread/{tool-widget-state.test.d.ts → sync/tool-widget-state.test.d.ts} +0 -0
- /package/src/components/ChatThread/{tool-widget-state.test.ts → sync/tool-widget-state.test.ts} +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { u as __exportAll } from "./chunk-types.mjs";
|
|
2
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
3
|
+
import { Capability } from "@dxos/app-framework";
|
|
4
|
+
import { WebSearchToolkitOpaque } from "@dxos/assistant-toolkit";
|
|
5
|
+
import * as Effect from "effect/Effect";
|
|
6
|
+
//#region src/capabilities/toolkit.ts
|
|
7
|
+
var toolkit_exports = /* @__PURE__ */ __exportAll({ default: () => toolkit_default });
|
|
8
|
+
var toolkit_default = Capability.makeModule(() => Effect.succeed([Capability.contributes(AppCapabilities.Toolkit, WebSearchToolkitOpaque)]));
|
|
9
|
+
//#endregion
|
|
10
|
+
export { toolkit_exports as n, toolkit_default as t };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=chunk-toolkit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-toolkit.mjs","names":[],"sources":["../../src/capabilities/toolkit.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { WebSearchToolkitOpaque } from '@dxos/assistant-toolkit';\n\nexport default Capability.makeModule(() =>\n Effect.succeed([Capability.contributes(AppCapabilities.Toolkit, WebSearchToolkitOpaque)]),\n);\n"],"mappings":";;;;;;;AAUA,IAAA,kBAAe,WAAW,iBACxB,OAAO,QAAQ,CAAC,WAAW,YAAY,gBAAgB,SAAS,sBAAsB,CAAC,CAAC,CAC1F"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { Instructions, Operation } from "@dxos/compute";
|
|
2
|
+
import { ActivationEvent, Capability, Role } from "@dxos/app-framework";
|
|
3
|
+
import { DXN } from "@dxos/keys";
|
|
4
|
+
import { Chat } from "@dxos/assistant-toolkit";
|
|
5
|
+
import * as Schema from "effect/Schema";
|
|
6
|
+
import { AiService, Provider } from "@dxos/ai";
|
|
7
|
+
import { SchemaEx } from "@dxos/effect";
|
|
8
|
+
import { DXN as DXN$1, Database, Obj, Ref, Type } from "@dxos/echo";
|
|
9
|
+
import { meta } from "#meta";
|
|
10
|
+
import { Atom } from "@effect-atom/atom";
|
|
11
|
+
import { ComputeGraph } from "@dxos/conductor";
|
|
12
|
+
//#region \0rolldown/runtime.js
|
|
13
|
+
var __defProp = Object.defineProperty;
|
|
14
|
+
var __exportAll = (all, no_symbols) => {
|
|
15
|
+
let target = {};
|
|
16
|
+
for (var name in all) __defProp(target, name, {
|
|
17
|
+
get: all[name],
|
|
18
|
+
enumerable: true
|
|
19
|
+
});
|
|
20
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
21
|
+
return target;
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region src/types/ChatSurface.ts
|
|
25
|
+
/**
|
|
26
|
+
* Role token for surfaces an agent requests inline in the conversation via the `<surface>` content
|
|
27
|
+
* block. `role` selects the concrete surface to render (e.g. `integration-prompt`); `data` carries
|
|
28
|
+
* its payload (e.g. `{ service: 'gmail.com' }`). Plugins contribute renderers by filtering on the
|
|
29
|
+
* inner `role`, which keeps the chat renderer decoupled from the specific surfaces it can host.
|
|
30
|
+
*/
|
|
31
|
+
var ChatSurface = Role.make("org.dxos.plugin.assistant.role.chatSurface");
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/types/Settings.ts
|
|
34
|
+
var ModelProvider$1 = DXN.Schema;
|
|
35
|
+
var ModelProviders$1 = Provider.all.map((provider) => provider.id);
|
|
36
|
+
var ChatView$1 = Schema.Union(Schema.Literal("normal").annotations({ title: "Normal" }), Schema.Literal("summary").annotations({ title: "Summary" }), Schema.Literal("thinking").annotations({ title: "Thinking" }), Schema.Literal("debug").annotations({ title: "Debug" }));
|
|
37
|
+
var ChatViews$1 = SchemaEx.getLiteralValues(ChatView$1);
|
|
38
|
+
var ModelDefaults$1 = Schema.mutable(Schema.Struct({
|
|
39
|
+
edge: Schema.optional(Schema.String.annotations({
|
|
40
|
+
title: "Remote language model",
|
|
41
|
+
description: "Choose the remote language model used for AI requests."
|
|
42
|
+
})),
|
|
43
|
+
ollama: Schema.optional(Schema.String.annotations({
|
|
44
|
+
title: "Local language model",
|
|
45
|
+
description: "Choose the locally hosted model used for AI requests."
|
|
46
|
+
})),
|
|
47
|
+
lmstudio: Schema.optional(Schema.String.annotations({
|
|
48
|
+
title: "LM Studio language model",
|
|
49
|
+
description: "Choose the locally hosted LM Studio model for AI requests."
|
|
50
|
+
}))
|
|
51
|
+
}));
|
|
52
|
+
var Settings$2 = Schema.mutable(Schema.Struct({
|
|
53
|
+
customPrompts: Schema.optional(Schema.Boolean.annotations({
|
|
54
|
+
title: "Use custom prompts",
|
|
55
|
+
description: "Allow the assistant to use custom prompts defined in your spaces."
|
|
56
|
+
})),
|
|
57
|
+
chatView: Schema.optional(ChatView$1.annotations({
|
|
58
|
+
title: "Chat view",
|
|
59
|
+
description: "Controls which message blocks are shown in the chat: normal hides reasoning, thinking shows reasoning, debug shows raw blocks, summary shows only conversational text."
|
|
60
|
+
})),
|
|
61
|
+
modelProvider: Schema.optional(ModelProvider$1.annotations({
|
|
62
|
+
title: "LLM provider",
|
|
63
|
+
description: "Select which language model service to use for AI responses."
|
|
64
|
+
})),
|
|
65
|
+
modelDefaults: Schema.optional(ModelDefaults$1.annotations({ title: "Model defaults" })),
|
|
66
|
+
tracePanelDebug: Schema.optional(Schema.Boolean.annotations({
|
|
67
|
+
title: "Trace panel debug",
|
|
68
|
+
description: "Show the raw span tree as JSON in the trace panel instead of the commit graph."
|
|
69
|
+
}))
|
|
70
|
+
}));
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src/types/Assistant.ts
|
|
73
|
+
var Assistant_exports = /* @__PURE__ */ __exportAll({
|
|
74
|
+
Chat: () => Chat$1,
|
|
75
|
+
ChatView: () => ChatView,
|
|
76
|
+
ChatViews: () => ChatViews,
|
|
77
|
+
ModelDefaults: () => ModelDefaults,
|
|
78
|
+
ModelProvider: () => ModelProvider,
|
|
79
|
+
ModelProviders: () => ModelProviders,
|
|
80
|
+
Settings: () => Settings$1
|
|
81
|
+
});
|
|
82
|
+
var Chat$1 = Chat.Chat;
|
|
83
|
+
var Settings$1 = Settings$2;
|
|
84
|
+
var ChatViews = ChatViews$1;
|
|
85
|
+
var ChatView = ChatView$1;
|
|
86
|
+
var ModelProviders = ModelProviders$1;
|
|
87
|
+
var ModelProvider = ModelProvider$1;
|
|
88
|
+
var ModelDefaults = ModelDefaults$1;
|
|
89
|
+
//#endregion
|
|
90
|
+
//#region src/types/AssistantOperation.ts
|
|
91
|
+
var AssistantOperation_exports = /* @__PURE__ */ __exportAll({
|
|
92
|
+
CreateChat: () => CreateChat,
|
|
93
|
+
EnsureCompanionChat: () => EnsureCompanionChat,
|
|
94
|
+
ForkChat: () => ForkChat,
|
|
95
|
+
GenerateHomeSuggestions: () => GenerateHomeSuggestions,
|
|
96
|
+
SetCurrentChat: () => SetCurrentChat,
|
|
97
|
+
SkillForm: () => SkillForm,
|
|
98
|
+
ToggleTracePanelDebug: () => ToggleTracePanelDebug,
|
|
99
|
+
UpdateChatName: () => UpdateChatName
|
|
100
|
+
});
|
|
101
|
+
var makeKey = (name) => DXN.make(`${meta.profile.key}.operation.${name}`);
|
|
102
|
+
var CreateChat = Operation.make({
|
|
103
|
+
meta: {
|
|
104
|
+
key: makeKey("createChat"),
|
|
105
|
+
name: "Create Chat",
|
|
106
|
+
icon: "ph--chat-text--regular"
|
|
107
|
+
},
|
|
108
|
+
services: [Capability.Service],
|
|
109
|
+
input: Schema.Struct({
|
|
110
|
+
db: Database.Database,
|
|
111
|
+
name: Schema.optional(Schema.String),
|
|
112
|
+
/**
|
|
113
|
+
* Instructions steering the conversation, rendered into the system prompt at request time.
|
|
114
|
+
* Held by reference so the chat follows later edits to them.
|
|
115
|
+
*/
|
|
116
|
+
instructions: Schema.optional(Ref.Ref(Instructions.Instructions)),
|
|
117
|
+
/** If false, chat is created in-memory only and not added to space. Defaults to true. */
|
|
118
|
+
addToSpace: Schema.optional(Schema.Boolean)
|
|
119
|
+
}),
|
|
120
|
+
output: Schema.Struct({ object: Type.getSchema(Chat.Chat) })
|
|
121
|
+
});
|
|
122
|
+
var UpdateChatName = Operation.make({
|
|
123
|
+
meta: {
|
|
124
|
+
key: makeKey("updateChatName"),
|
|
125
|
+
name: "Update Chat Name",
|
|
126
|
+
icon: "ph--pencil--regular"
|
|
127
|
+
},
|
|
128
|
+
services: [Database.Service, AiService.AiService],
|
|
129
|
+
input: Schema.Struct({
|
|
130
|
+
chat: Type.getSchema(Chat.Chat),
|
|
131
|
+
/** Initial user message text; used when the feed has no history yet (e.g. auto-rename on first send). */
|
|
132
|
+
prompt: Schema.optional(Schema.String)
|
|
133
|
+
}),
|
|
134
|
+
output: Schema.Void
|
|
135
|
+
});
|
|
136
|
+
var SetCurrentChat = Operation.make({
|
|
137
|
+
meta: {
|
|
138
|
+
key: makeKey("setCurrentChat"),
|
|
139
|
+
name: "Set Current Chat",
|
|
140
|
+
icon: "ph--chat-text--regular"
|
|
141
|
+
},
|
|
142
|
+
services: [Capability.Service],
|
|
143
|
+
input: Schema.Struct({
|
|
144
|
+
companionTo: Obj.Unknown,
|
|
145
|
+
chat: Type.getSchema(Chat.Chat).pipe(Schema.optional)
|
|
146
|
+
}),
|
|
147
|
+
output: Schema.Void
|
|
148
|
+
});
|
|
149
|
+
var ForkChat = Operation.make({
|
|
150
|
+
meta: {
|
|
151
|
+
key: makeKey("forkChat"),
|
|
152
|
+
name: "Fork Chat",
|
|
153
|
+
icon: "ph--git-branch--regular",
|
|
154
|
+
skipRegistry: true
|
|
155
|
+
},
|
|
156
|
+
services: [Capability.Service, Database.Service],
|
|
157
|
+
input: Schema.Struct({
|
|
158
|
+
chat: Type.getSchema(Chat.Chat),
|
|
159
|
+
/** When provided, the forked chat is set as the companion for this object rather than opened standalone. */
|
|
160
|
+
companionTo: Schema.optional(Obj.Unknown)
|
|
161
|
+
}),
|
|
162
|
+
output: Schema.Struct({ object: Type.getSchema(Chat.Chat) })
|
|
163
|
+
});
|
|
164
|
+
var EnsureCompanionChat = Operation.make({
|
|
165
|
+
meta: {
|
|
166
|
+
key: makeKey("ensureCompanionChat"),
|
|
167
|
+
name: "Ensure Companion Chat",
|
|
168
|
+
icon: "ph--chat-text--regular"
|
|
169
|
+
},
|
|
170
|
+
services: [Capability.Service],
|
|
171
|
+
input: Schema.Struct({
|
|
172
|
+
db: Database.Database,
|
|
173
|
+
companionTo: Obj.Unknown
|
|
174
|
+
}),
|
|
175
|
+
output: Schema.Struct({
|
|
176
|
+
chat: Type.getSchema(Chat.Chat),
|
|
177
|
+
/** Whether the returned chat was already persisted in the space. */
|
|
178
|
+
persisted: Schema.Boolean
|
|
179
|
+
})
|
|
180
|
+
});
|
|
181
|
+
var SkillForm = Schema.Struct({
|
|
182
|
+
key: Schema.String,
|
|
183
|
+
name: Schema.String,
|
|
184
|
+
description: Schema.optional(Schema.String)
|
|
185
|
+
});
|
|
186
|
+
var GenerateHomeSuggestions = Operation.make({
|
|
187
|
+
meta: {
|
|
188
|
+
key: makeKey("generateHomeSuggestions"),
|
|
189
|
+
name: "Generate Home Suggestions",
|
|
190
|
+
icon: "ph--sparkle--regular",
|
|
191
|
+
skipRegistry: true
|
|
192
|
+
},
|
|
193
|
+
services: [Capability.Service, AiService.AiService],
|
|
194
|
+
input: Schema.Struct({ db: Database.Database }),
|
|
195
|
+
output: Schema.Struct({ prompts: Schema.Array(Schema.String) })
|
|
196
|
+
});
|
|
197
|
+
var ToggleTracePanelDebug = Operation.make({
|
|
198
|
+
meta: {
|
|
199
|
+
key: makeKey("toggleTracePanelDebug"),
|
|
200
|
+
name: "Toggle trace panel debug",
|
|
201
|
+
description: "Toggle trace panel between commit graph and raw span tree JSON.",
|
|
202
|
+
icon: "ph--bug--regular"
|
|
203
|
+
},
|
|
204
|
+
services: [Capability.Service],
|
|
205
|
+
input: Schema.Struct({ state: Schema.optional(Schema.Boolean) }),
|
|
206
|
+
output: Schema.Boolean
|
|
207
|
+
});
|
|
208
|
+
//#endregion
|
|
209
|
+
//#region src/types/AssistantCapabilities.ts
|
|
210
|
+
var AssistantCapabilities_exports = /* @__PURE__ */ __exportAll({
|
|
211
|
+
CompanionChatCache: () => CompanionChatCache,
|
|
212
|
+
HomeSuggestionsCache: () => HomeSuggestionsCache,
|
|
213
|
+
HomeSuggestionsCacheSchema: () => HomeSuggestionsCacheSchema,
|
|
214
|
+
OllamaManager: () => OllamaManager,
|
|
215
|
+
Settings: () => Settings,
|
|
216
|
+
State: () => State,
|
|
217
|
+
StateSchema: () => StateSchema
|
|
218
|
+
});
|
|
219
|
+
var Settings = Capability.make(`${meta.profile.key}.capability.settings`);
|
|
220
|
+
var OllamaManager = Capability.make(`${meta.profile.key}.capability.ollama-manager`);
|
|
221
|
+
var StateSchema = Schema.mutable(Schema.Struct({
|
|
222
|
+
/** Map of primary object dxn to current chat dxn. */
|
|
223
|
+
currentChat: Schema.Record({
|
|
224
|
+
key: Schema.String,
|
|
225
|
+
value: Schema.UndefinedOr(Schema.String)
|
|
226
|
+
}),
|
|
227
|
+
/** Map of chat object path to prompt text to auto-submit when the chat opens. */
|
|
228
|
+
pendingPrompts: Schema.Record({
|
|
229
|
+
key: Schema.String,
|
|
230
|
+
value: Schema.UndefinedOr(Schema.String)
|
|
231
|
+
})
|
|
232
|
+
}));
|
|
233
|
+
var State = Capability.make(`${meta.profile.key}.capability.state`);
|
|
234
|
+
/** Session-scoped cache of transient (not yet persisted) companion chats keyed by companion DXN string. */
|
|
235
|
+
var CompanionChatCache = Capability.make(`${meta.profile.key}.capability.companion-chat-cache`);
|
|
236
|
+
var HomeSuggestionsCacheSchema = Schema.mutable(Schema.Record({
|
|
237
|
+
key: Schema.String,
|
|
238
|
+
value: Schema.Struct({
|
|
239
|
+
/** Epoch ms timestamp of the successful generation that produced these prompts. */
|
|
240
|
+
generatedAt: Schema.Number,
|
|
241
|
+
/** Non-empty, trimmed prompts from a successful generation. */
|
|
242
|
+
prompts: Schema.Array(Schema.String)
|
|
243
|
+
})
|
|
244
|
+
}));
|
|
245
|
+
/** Per-space cache of LLM-generated home starter prompts, persisted across page reloads. */
|
|
246
|
+
var HomeSuggestionsCache = Capability.make(`${meta.profile.key}.capability.home-suggestions-cache`);
|
|
247
|
+
//#endregion
|
|
248
|
+
//#region src/types/AssistantEvents.ts
|
|
249
|
+
var AssistantEvents_exports = /* @__PURE__ */ __exportAll({ SetupAiServiceProviders: () => SetupAiServiceProviders });
|
|
250
|
+
var SetupAiServiceProviders = ActivationEvent.make(`${meta.profile.key}.event.setupAiServiceProviders`);
|
|
251
|
+
//#endregion
|
|
252
|
+
//#region src/types/Ollama.ts
|
|
253
|
+
var Ollama_exports = /* @__PURE__ */ __exportAll({ emptyState: () => emptyState });
|
|
254
|
+
/**
|
|
255
|
+
* Stable, empty model state. Subscribed to when no sidecar manager is present (web/mobile) so a
|
|
256
|
+
* reactive read keeps an unconditional hook order.
|
|
257
|
+
*/
|
|
258
|
+
var emptyState = Atom.make({
|
|
259
|
+
kind: "idle",
|
|
260
|
+
models: [],
|
|
261
|
+
loaded: [],
|
|
262
|
+
pulls: {},
|
|
263
|
+
errors: {}
|
|
264
|
+
});
|
|
265
|
+
//#endregion
|
|
266
|
+
//#region src/types/service.ts
|
|
267
|
+
var ApiAuthorizationKey = Schema.Struct({
|
|
268
|
+
type: Schema.Literal("api-key"),
|
|
269
|
+
key: Schema.String,
|
|
270
|
+
placement: Schema.Union(Schema.Struct({ type: Schema.Literal("authorization-header") }), Schema.Struct({
|
|
271
|
+
type: Schema.Literal("query"),
|
|
272
|
+
name: Schema.String
|
|
273
|
+
}))
|
|
274
|
+
});
|
|
275
|
+
var ApiAuthorizationOauth = Schema.Struct({
|
|
276
|
+
type: Schema.Literal("oauth"),
|
|
277
|
+
clientId: Schema.String,
|
|
278
|
+
clientSecret: Schema.String,
|
|
279
|
+
tokenUrl: Schema.String,
|
|
280
|
+
grantType: Schema.String
|
|
281
|
+
});
|
|
282
|
+
var ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
|
|
283
|
+
var ServiceInterfaceFunction = Schema.Struct({
|
|
284
|
+
kind: Schema.Literal("function"),
|
|
285
|
+
fn: Ref.Ref(Operation.PersistentOperation)
|
|
286
|
+
});
|
|
287
|
+
var ServiceInterfaceWorkflow = Schema.Struct({
|
|
288
|
+
kind: Schema.Literal("workflow"),
|
|
289
|
+
workflow: Ref.Ref(ComputeGraph)
|
|
290
|
+
});
|
|
291
|
+
var ServiceInterfaceApi = Schema.Struct({
|
|
292
|
+
kind: Schema.Literal("api"),
|
|
293
|
+
/**
|
|
294
|
+
* URL to fetch the openapi schema.
|
|
295
|
+
*/
|
|
296
|
+
schemaUrl: Schema.optional(Schema.String),
|
|
297
|
+
/**
|
|
298
|
+
* Inlined openapi schema.
|
|
299
|
+
*/
|
|
300
|
+
schema: Schema.optional(Schema.Any),
|
|
301
|
+
/**
|
|
302
|
+
* Authorization configuration if required.
|
|
303
|
+
*/
|
|
304
|
+
authorization: Schema.optional(ApiAuthorization)
|
|
305
|
+
});
|
|
306
|
+
var ServiceInterface = Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
|
|
307
|
+
var ServiceType = class extends Type.makeObject(DXN$1.make("org.dxos.type.service", "0.1.0"))(Schema.Struct({
|
|
308
|
+
serviceId: Schema.String,
|
|
309
|
+
name: Schema.optional(Schema.String),
|
|
310
|
+
description: Schema.optional(Schema.String),
|
|
311
|
+
category: Schema.optional(Schema.String),
|
|
312
|
+
enabled: Schema.optional(Schema.Boolean),
|
|
313
|
+
/**
|
|
314
|
+
* Entries exposed: functions, workflows, and APIs.
|
|
315
|
+
*/
|
|
316
|
+
interfaces: Schema.optional(Schema.Array(ServiceInterface))
|
|
317
|
+
})) {};
|
|
318
|
+
var categoryIcons = {
|
|
319
|
+
finance: "ph--bank--regular",
|
|
320
|
+
health: "ph--heart--regular",
|
|
321
|
+
geolocation: "ph--globe-simple--regular",
|
|
322
|
+
education: "ph--books--regular",
|
|
323
|
+
entertainment: "ph--music-notes--regular",
|
|
324
|
+
shopping: "ph--shopping-cart--regular",
|
|
325
|
+
travel: "ph--airplane-takeoff--regular",
|
|
326
|
+
utilities: "ph--lightning--regular",
|
|
327
|
+
weather: "ph--cloud-rain--regular"
|
|
328
|
+
};
|
|
329
|
+
//#endregion
|
|
330
|
+
export { AssistantEvents_exports as a, Assistant_exports as c, Ollama_exports as i, ChatSurface as l, ServiceType as n, AssistantCapabilities_exports as o, categoryIcons as r, AssistantOperation_exports as s, ApiAuthorization as t, __exportAll as u };
|
|
331
|
+
|
|
332
|
+
//# sourceMappingURL=chunk-types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-types.mjs","names":[],"sources":["../../src/types/ChatSurface.ts","../../src/types/Settings.ts","../../src/types/Assistant.ts","../../src/types/AssistantOperation.ts","../../src/types/AssistantCapabilities.ts","../../src/types/AssistantEvents.ts","../../src/types/Ollama.ts","../../src/types/service.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport { Role } from '@dxos/app-framework';\n\n/**\n * Role token for surfaces an agent requests inline in the conversation via the `<surface>` content\n * block. `role` selects the concrete surface to render (e.g. `integration-prompt`); `data` carries\n * its payload (e.g. `{ service: 'gmail.com' }`). Plugins contribute renderers by filtering on the\n * inner `role`, which keeps the chat renderer decoupled from the specific surfaces it can host.\n */\nexport const ChatSurface: Role.Role<{\n role: string;\n data?: Record<string, unknown>;\n}> = Role.make('org.dxos.plugin.assistant.role.chatSurface');\n","//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { Provider } from '@dxos/ai';\nimport { SchemaEx } from '@dxos/effect';\nimport { DXN } from '@dxos/keys';\n\n// A provider id is an open DXN (third-party providers define their own), validated as a DXN rather\n// than restricted to a closed literal union. The known providers come from the @dxos/ai registry.\nexport const ModelProvider = DXN.Schema;\nexport type ModelProvider = DXN.DXN;\nexport const ModelProviders: readonly DXN.DXN[] = Provider.all.map((provider) => provider.id);\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 // `built-in` (bundled sidecar) and `ollama` (external) share the `ollama` model source, so they\n // share this single default key.\n ollama: Schema.optional(\n Schema.String.annotations({\n title: 'Local language model',\n description: 'Choose the locally hosted model used 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.annotations({ title: 'Model defaults' })),\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 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\nimport { type DXN } from '@dxos/keys';\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: readonly DXN.DXN[] = 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 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 { Instructions, Operation } from '@dxos/compute';\nimport { Database, Obj, Ref, Type } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\n\nimport { meta } from '#meta';\n\nconst makeKey = (name: string) => DXN.make(`${meta.profile.key}.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 /**\n * Instructions steering the conversation, rendered into the system prompt at request time.\n * Held by reference so the chat follows later edits to them.\n */\n instructions: Schema.optional(Ref.Ref(Instructions.Instructions)),\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, 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 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 SkillForm = Schema.Struct({\n key: Schema.String,\n name: Schema.String,\n description: Schema.optional(Schema.String),\n});\n\nexport const GenerateHomeSuggestions = Operation.make({\n meta: {\n key: makeKey('generateHomeSuggestions'),\n name: 'Generate Home Suggestions',\n icon: 'ph--sparkle--regular',\n // Internal UI operation — not exposed as an agent tool.\n skipRegistry: true,\n },\n services: [Capability.Service, AiService.AiService],\n input: Schema.Struct({ db: Database.Database }),\n output: Schema.Struct({ prompts: Schema.Array(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';\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';\nimport * as Ollama from './Ollama';\n\nexport const Settings = Capability.make<Atom.Writable<Assistant.Settings>>(`${meta.profile.key}.capability.settings`);\n\nexport const OllamaManager = Capability.make<Ollama.Manager>(`${meta.profile.key}.capability.ollama-manager`);\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.profile.key}.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.profile.key}.capability.companion-chat-cache`,\n);\n\nexport const HomeSuggestionsCacheSchema = Schema.mutable(\n Schema.Record({\n key: Schema.String,\n value: Schema.Struct({\n /** Epoch ms timestamp of the successful generation that produced these prompts. */\n generatedAt: Schema.Number,\n /** Non-empty, trimmed prompts from a successful generation. */\n prompts: Schema.Array(Schema.String),\n }),\n }),\n);\nexport type HomeSuggestionsCache = Schema.Schema.Type<typeof HomeSuggestionsCacheSchema>;\n\n/** Per-space cache of LLM-generated home starter prompts, persisted across page reloads. */\nexport const HomeSuggestionsCache = Capability.make<Atom.Writable<HomeSuggestionsCache>>(\n `${meta.profile.key}.capability.home-suggestions-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.profile.key}.event.setupAiServiceProviders`);\n","//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { Atom } from '@effect-atom/atom';\nimport type * as Effect from 'effect/Effect';\n\nimport { type OllamaAdmin } from '@dxos/ai/resolvers';\n\n/**\n * Reactive state of the local Ollama model installation, surfaced to the settings UI.\n */\nexport type ModelsState = {\n kind: 'idle' | 'loading' | 'ready' | 'failed';\n models: OllamaAdmin.Model[];\n /** Models currently loaded into memory (from `/api/ps`). */\n loaded: OllamaAdmin.RunningModel[];\n /** In-flight pulls keyed by model name. */\n pulls: Record<string, OllamaAdmin.PullProgress>;\n /** Per-model action errors (load/unload/remove/pull), keyed by model name, shown inline. */\n errors: Record<string, string>;\n /** Connection-level error reaching the service (no specific model). */\n error?: string;\n};\n\n/**\n * Stable, empty model state. Subscribed to when no sidecar manager is present (web/mobile) so a\n * reactive read keeps an unconditional hook order.\n */\nexport const emptyState: Atom.Atom<ModelsState> = Atom.make<ModelsState>({\n kind: 'idle',\n models: [],\n loaded: [],\n pulls: {},\n errors: {},\n});\n\n/**\n * Capability for managing locally-installed Ollama models. Implemented by the native (desktop)\n * plugin against the bundled sidecar; absent in the browser/mobile, where the UI renders nothing.\n */\nexport type Manager = {\n readonly endpoint: string;\n state: Atom.Writable<ModelsState>;\n /** List installed models (and currently-loaded models). Ensures the sidecar is running. */\n refresh: Effect.Effect<void>;\n /** Refresh only the currently-loaded models; cheap, for polling while a chat runs. */\n refreshLoaded: Effect.Effect<void>;\n pull: (name: string) => Effect.Effect<void>;\n /** Abort an in-flight pull, leaving any already-downloaded layers in place. */\n cancel: (name: string) => Effect.Effect<void>;\n /** Load a model into memory (kept resident until unloaded). */\n load: (name: string) => Effect.Effect<void>;\n /** Unload a model from memory. */\n unload: (name: string) => Effect.Effect<void>;\n remove: (name: string) => Effect.Effect<void>;\n};\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 class ServiceType extends Type.makeObject<ServiceType>(DXN.make('org.dxos.type.service', '0.1.0'))(\n 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 }),\n) {}\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"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Operation } from "@dxos/compute";
|
|
2
|
+
import { trim } from "@dxos/util";
|
|
3
|
+
import { AiPreprocessor, AiService } from "@dxos/ai";
|
|
4
|
+
import { Database, Feed, Filter, Obj } from "@dxos/echo";
|
|
5
|
+
import { Message } from "@dxos/types";
|
|
6
|
+
import { AssistantOperation } from "#types";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import { log } from "@dxos/log";
|
|
9
|
+
import * as LanguageModel from "@effect/ai/LanguageModel";
|
|
10
|
+
import * as Prompt from "@effect/ai/Prompt";
|
|
11
|
+
//#region src/operations/update-chat-name.ts
|
|
12
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/operations/update-chat-name.ts";
|
|
13
|
+
var handler = AssistantOperation.UpdateChatName.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ chat, prompt: initialPrompt }) {
|
|
14
|
+
log.info("updating chat name", { chat }, {
|
|
15
|
+
"~LogMeta": "~LogMeta",
|
|
16
|
+
F: __dxlog_file,
|
|
17
|
+
L: 22,
|
|
18
|
+
S: this
|
|
19
|
+
});
|
|
20
|
+
const system = trim`
|
|
21
|
+
It is extremely important that you respond only with the title and nothing else.
|
|
22
|
+
Do not use markdown or other formatting.
|
|
23
|
+
If you cannot do this effectively respond with "New Chat".
|
|
24
|
+
|
|
25
|
+
<example_reply>
|
|
26
|
+
Fishing Trip
|
|
27
|
+
</example_reply>
|
|
28
|
+
`;
|
|
29
|
+
let namePrompt;
|
|
30
|
+
if (initialPrompt) namePrompt = Prompt.setSystem(Prompt.make(`User's first message: "${initialPrompt}"\n\nSuggest a name for this chat.`), system);
|
|
31
|
+
else {
|
|
32
|
+
const feed = yield* Database.load(chat.feed);
|
|
33
|
+
const history = yield* Feed.query(feed, Filter.type(Message.Message)).run;
|
|
34
|
+
log.info("history", { history: history.length }, {
|
|
35
|
+
"~LogMeta": "~LogMeta",
|
|
36
|
+
F: __dxlog_file,
|
|
37
|
+
L: 44,
|
|
38
|
+
S: this
|
|
39
|
+
});
|
|
40
|
+
const historyPrompt = yield* AiPreprocessor.preprocessPrompt(history, {
|
|
41
|
+
system,
|
|
42
|
+
cacheControl: "ephemeral"
|
|
43
|
+
});
|
|
44
|
+
namePrompt = Prompt.merge(historyPrompt, "Suggest a name for this chat");
|
|
45
|
+
}
|
|
46
|
+
const newName = (yield* LanguageModel.generateText({ prompt: namePrompt })).text.replaceAll(/[^a-zA-Z0-9\s]/g, "").trim();
|
|
47
|
+
Obj.update(chat, (chat) => {
|
|
48
|
+
chat.name = newName;
|
|
49
|
+
});
|
|
50
|
+
log.info("chat name updated", {
|
|
51
|
+
chat,
|
|
52
|
+
newName: chat.name
|
|
53
|
+
}, {
|
|
54
|
+
"~LogMeta": "~LogMeta",
|
|
55
|
+
F: __dxlog_file,
|
|
56
|
+
L: 58,
|
|
57
|
+
S: this
|
|
58
|
+
});
|
|
59
|
+
}, Effect.provide(AiService.model("com.anthropic.model.claude-haiku-4-5.default")))));
|
|
60
|
+
//#endregion
|
|
61
|
+
export { handler as default };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=chunk-update-chat-name.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-update-chat-name.mjs","names":[],"sources":["../../src/operations/update-chat-name.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as LanguageModel from '@effect/ai/LanguageModel';\nimport * as Prompt from '@effect/ai/Prompt';\nimport * as Effect from 'effect/Effect';\n\nimport { AiPreprocessor, AiService } from '@dxos/ai';\nimport { Operation } from '@dxos/compute';\nimport { Database, Feed, Filter, Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { Message } from '@dxos/types';\nimport { trim } from '@dxos/util';\n\nimport { AssistantOperation } from '#types';\n\nconst handler: Operation.WithHandler<typeof AssistantOperation.UpdateChatName> = AssistantOperation.UpdateChatName.pipe(\n Operation.withHandler(\n Effect.fnUntraced(\n function* ({ chat, prompt: initialPrompt }) {\n log.info('updating chat name', { chat });\n\n const system = trim`\n It is extremely important that you respond only with the title and nothing else.\n Do not use markdown or other formatting.\n If you cannot do this effectively respond with \"New Chat\".\n\n <example_reply>\n Fishing Trip\n </example_reply>\n `;\n\n let namePrompt: Prompt.Prompt;\n if (initialPrompt) {\n // Use the provided prompt text directly; the feed may not have messages yet.\n namePrompt = Prompt.setSystem(\n Prompt.make(`User's first message: \"${initialPrompt}\"\\n\\nSuggest a name for this chat.`),\n system,\n );\n } else {\n const feed = yield* Database.load(chat.feed);\n const history = yield* Feed.query(feed, Filter.type(Message.Message)).run;\n log.info('history', { history: history.length });\n const historyPrompt = yield* AiPreprocessor.preprocessPrompt(history, {\n system,\n cacheControl: 'ephemeral',\n });\n namePrompt = Prompt.merge(historyPrompt, 'Suggest a name for this chat');\n }\n\n const response = yield* LanguageModel.generateText({ prompt: namePrompt });\n const newName = response.text.replaceAll(/[^a-zA-Z0-9\\s]/g, '').trim();\n\n Obj.update(chat, (chat) => {\n chat.name = newName;\n });\n log.info('chat name updated', { chat, newName: chat.name });\n },\n Effect.provide(AiService.model('com.anthropic.model.claude-haiku-4-5.default')),\n ),\n ),\n);\n\nexport default handler;\n"],"mappings":";;;;;;;;;;;;AAiBA,IAAM,UAA2E,mBAAmB,eAAe,KACjH,UAAU,YACR,OAAO,WACL,WAAW,EAAE,MAAM,QAAQ,iBAAiB;CAC1C,IAAI,KAAK,sBAAsB,EAAE,KAAK,GAAA;EAAA,YAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA;CAAA,CAAC;CAEvC,MAAM,SAAS,IAAI;;;;;;;;;CAUnB,IAAI;CACJ,IAAI,eAEF,aAAa,OAAO,UAClB,OAAO,KAAK,0BAA0B,cAAc,mCAAmC,GACvF,MACF;MACK;EACL,MAAM,OAAO,OAAO,SAAS,KAAK,KAAK,IAAI;EAC3C,MAAM,UAAU,OAAO,KAAK,MAAM,MAAM,OAAO,KAAK,QAAQ,OAAO,CAAC,CAAC,CAAC;EACtE,IAAI,KAAK,WAAW,EAAE,SAAS,QAAQ,OAAO,GAAA;GAAA,YAAA;GAAA,GAAA;GAAA,GAAA;GAAA,GAAA;EAAA,CAAC;EAC/C,MAAM,gBAAgB,OAAO,eAAe,iBAAiB,SAAS;GACpE;GACA,cAAc;EAChB,CAAC;EACD,aAAa,OAAO,MAAM,eAAe,8BAA8B;CACzE;CAGA,MAAM,WAAU,OADQ,cAAc,aAAa,EAAE,QAAQ,WAAW,CAAC,EAAA,CAChD,KAAK,WAAW,mBAAmB,EAAE,CAAC,CAAC,KAAK;CAErE,IAAI,OAAO,OAAO,SAAS;EACzB,KAAK,OAAO;CACd,CAAC;CACD,IAAI,KAAK,qBAAqB;EAAE;EAAM,SAAS,KAAK;CAAK,GAAA;EAAA,YAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA;CAAA,CAAC;AAC5D,GACA,OAAO,QAAQ,UAAU,MAAM,8CAA8C,CAAC,CAChF,CACF,CACF"}
|