@dxos/plugin-assistant 0.8.4-main.937b3ca → 0.8.4-main.9be5663bfe
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs +97 -0
- package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +3 -7
- package/dist/lib/browser/chunk-ATHYBVGN.mjs +176 -0
- package/dist/lib/browser/chunk-ATHYBVGN.mjs.map +7 -0
- package/dist/lib/browser/chunk-EZRS3J25.mjs +30 -0
- package/dist/lib/browser/chunk-EZRS3J25.mjs.map +7 -0
- package/dist/lib/browser/chunk-RUV2WOQH.mjs +154 -0
- package/dist/lib/browser/chunk-RUV2WOQH.mjs.map +7 -0
- package/dist/lib/browser/create-chat-LBZHGVSN.mjs +82 -0
- package/dist/lib/browser/create-chat-LBZHGVSN.mjs.map +7 -0
- package/dist/lib/browser/ensure-companion-chat-FR4AWZ2P.mjs +65 -0
- package/dist/lib/browser/ensure-companion-chat-FR4AWZ2P.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +3163 -245
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/on-create-space-54RNX5JI.mjs +22 -0
- package/dist/lib/browser/on-create-space-54RNX5JI.mjs.map +7 -0
- package/dist/lib/browser/operations/index.mjs +13 -0
- package/dist/lib/browser/operations/index.mjs.map +7 -0
- package/dist/lib/browser/resolve-navigation-targets-NZOD66NY.mjs +22 -0
- package/dist/lib/browser/resolve-navigation-targets-NZOD66NY.mjs.map +7 -0
- package/dist/lib/browser/run-prompt-in-new-chat-4YQ37XIS.mjs +136 -0
- package/dist/lib/browser/run-prompt-in-new-chat-4YQ37XIS.mjs.map +7 -0
- package/dist/lib/browser/set-current-chat-WJI3WAVM.mjs +54 -0
- package/dist/lib/browser/set-current-chat-WJI3WAVM.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -4
- package/dist/lib/browser/update-chat-name-3Y36KFAS.mjs +71 -0
- package/dist/lib/browser/update-chat-name-3Y36KFAS.mjs.map +7 -0
- package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs +98 -0
- package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +3 -7
- package/dist/lib/node-esm/chunk-NZIKC7AN.mjs +32 -0
- package/dist/lib/node-esm/chunk-NZIKC7AN.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs +177 -0
- package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PY4X6FJT.mjs +155 -0
- package/dist/lib/node-esm/chunk-PY4X6FJT.mjs.map +7 -0
- package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs +83 -0
- package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs.map +7 -0
- package/dist/lib/node-esm/ensure-companion-chat-BLP7NT32.mjs +66 -0
- package/dist/lib/node-esm/ensure-companion-chat-BLP7NT32.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +3163 -245
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/on-create-space-YRPZ6HZY.mjs +23 -0
- package/dist/lib/node-esm/on-create-space-YRPZ6HZY.mjs.map +7 -0
- package/dist/lib/node-esm/operations/index.mjs +14 -0
- package/dist/lib/node-esm/operations/index.mjs.map +7 -0
- package/dist/lib/node-esm/resolve-navigation-targets-3PPK7XLH.mjs +23 -0
- package/dist/lib/node-esm/resolve-navigation-targets-3PPK7XLH.mjs.map +7 -0
- package/dist/lib/node-esm/run-prompt-in-new-chat-2IJBSDTM.mjs +137 -0
- package/dist/lib/node-esm/run-prompt-in-new-chat-2IJBSDTM.mjs.map +7 -0
- package/dist/lib/node-esm/set-current-chat-KBMMZULR.mjs +55 -0
- package/dist/lib/node-esm/set-current-chat-KBMMZULR.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -4
- package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs +72 -0
- package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs.map +7 -0
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/blueprints/assistant/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/assistant/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/assistant/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/assistant/index.d.ts +2 -0
- package/dist/types/src/blueprints/assistant/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +1 -6
- package/dist/types/src/blueprints/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/ai-service.d.ts +6 -0
- package/dist/types/src/capabilities/ai-service.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +9 -0
- package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -0
- package/dist/types/src/capabilities/edge-model-resolver.d.ts +7 -0
- package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +41 -11
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/local-model-resolver.d.ts +13 -0
- package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown.d.ts +5 -0
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/migrations.d.ts +5 -0
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +4 -3
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state.d.ts +21 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/capabilities/toolkit.d.ts +6 -0
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +4 -6
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts +553 -0
- package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/AssistantSettings/index.d.ts +1 -1
- package/dist/types/src/components/AssistantSettings/index.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.d.ts +15 -11
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +6 -3
- package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +2 -1
- 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/ChatPrompt/ChatReferences.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.d.ts +3 -3
- package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +535 -303
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +573 -0
- package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/sync.d.ts +6 -5
- package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/tool-widget-state.d.ts +18 -0
- package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts +2 -0
- package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts +8 -0
- package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts +14 -0
- package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts +25 -0
- package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts +18 -0
- package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts +9 -0
- package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts +14 -0
- package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts +12 -0
- package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts +25 -0
- package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts +11 -0
- package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts +5 -0
- package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts +9 -0
- package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts +553 -0
- package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/index.d.ts +11 -0
- package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +10 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +8 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -0
- package/dist/types/src/components/ProcessTree/index.d.ts +2 -0
- package/dist/types/src/components/ProcessTree/index.d.ts.map +1 -0
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +5 -4
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +529 -295
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +529 -295
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +0 -9
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +10 -8
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +529 -295
- package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
- package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts +2 -2
- package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts.map +1 -1
- package/dist/types/src/components/Typewriter/Typewriter.d.ts.map +1 -1
- package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -12
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts +6 -0
- package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -0
- package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +554 -0
- package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/AgentArticle/index.d.ts +2 -0
- package/dist/types/src/containers/AgentArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts +6 -0
- package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -0
- package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts +554 -0
- package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts.map +1 -0
- package/dist/types/src/containers/AgentProperties/index.d.ts +2 -0
- package/dist/types/src/containers/AgentProperties/index.d.ts.map +1 -0
- package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +6 -0
- package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -0
- package/dist/types/src/containers/BlueprintArticle/index.d.ts +2 -0
- package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +18 -0
- package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -0
- package/dist/types/src/containers/ChatCompanion/index.d.ts +2 -0
- package/dist/types/src/containers/ChatCompanion/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +12 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
- package/dist/types/src/containers/ChatContainer/index.d.ts +2 -0
- package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/ChatDialog}/ChatDialog.d.ts +2 -3
- package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -0
- package/dist/types/src/containers/ChatDialog/index.d.ts +2 -0
- package/dist/types/src/containers/ChatDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts +6 -0
- package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts.map +1 -0
- package/dist/types/src/containers/PromptArticle/index.d.ts +2 -0
- package/dist/types/src/containers/PromptArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/PromptList/PromptList.d.ts +6 -0
- package/dist/types/src/containers/PromptList/PromptList.d.ts.map +1 -0
- package/dist/types/src/containers/PromptList/PromptList.stories.d.ts +559 -0
- package/dist/types/src/containers/PromptList/PromptList.stories.d.ts.map +1 -0
- package/dist/types/src/containers/PromptList/index.d.ts +2 -0
- package/dist/types/src/containers/PromptList/index.d.ts.map +1 -0
- package/dist/types/src/containers/TracePanel/TracePanel.d.ts +6 -0
- package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -0
- package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts +19 -0
- package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts.map +1 -0
- package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts +2 -0
- package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts.map +1 -0
- package/dist/types/src/containers/TracePanel/index.d.ts +4 -0
- package/dist/types/src/containers/TracePanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +4 -0
- package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -0
- package/dist/types/src/containers/TriggerStatus/index.d.ts +2 -0
- package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +12 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/extensions/index.d.ts +2 -0
- package/dist/types/src/extensions/index.d.ts.map +1 -0
- package/dist/types/src/extensions/prompt-extension.d.ts +10 -0
- package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -0
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts +7 -6
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatServices.d.ts +3 -6
- package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatToolbarActions.d.ts +2 -2
- package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextBinder.d.ts +3 -2
- package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
- package/dist/types/src/hooks/useFilteredTypes.d.ts +1 -1
- package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -1
- package/dist/types/src/hooks/usePresets.d.ts +1 -1
- package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
- package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -0
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/create-chat.d.ts +5 -0
- package/dist/types/src/operations/create-chat.d.ts.map +1 -0
- package/dist/types/src/operations/definitions.d.ts +135 -0
- package/dist/types/src/operations/definitions.d.ts.map +1 -0
- package/dist/types/src/operations/ensure-companion-chat.d.ts +5 -0
- package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +4 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/on-create-space.d.ts +5 -0
- package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
- package/dist/types/src/operations/resolve-navigation-targets.d.ts +15 -0
- package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -0
- package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +5 -0
- package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -0
- package/dist/types/src/operations/set-current-chat.d.ts +5 -0
- package/dist/types/src/operations/set-current-chat.d.ts.map +1 -0
- package/dist/types/src/operations/update-chat-name.d.ts +5 -0
- package/dist/types/src/operations/update-chat-name.d.ts.map +1 -0
- package/dist/types/src/processor/index.d.ts +0 -1
- package/dist/types/src/processor/index.d.ts.map +1 -1
- package/dist/types/src/processor/processor.d.ts +33 -28
- package/dist/types/src/processor/processor.d.ts.map +1 -1
- package/dist/types/src/testing/test-generator.d.ts.map +1 -1
- package/dist/types/src/testing/test-services.d.ts +1 -1
- package/dist/types/src/testing/test-services.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +529 -295
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Assistant.d.ts +17 -39
- package/dist/types/src/types/Assistant.d.ts.map +1 -1
- package/dist/types/src/types/Settings.d.ts +10 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/capabilities.d.ts +11 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/service.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +120 -92
- package/src/AssistantPlugin.tsx +148 -52
- package/src/blueprints/assistant/blueprint.conversations.json +1 -0
- package/src/blueprints/assistant/blueprint.test.ts +46 -0
- package/src/blueprints/assistant/blueprint.ts +31 -0
- package/src/blueprints/assistant/index.ts +5 -0
- package/src/blueprints/index.ts +1 -8
- package/src/capabilities/{ai-service/ai-service.ts → ai-service.ts} +4 -3
- package/src/capabilities/app-graph-builder.ts +217 -0
- package/src/capabilities/blueprint-definition.ts +58 -0
- package/src/capabilities/companion-chat-provisioner.ts +164 -0
- package/src/capabilities/{edge-model-resolver/edge-model-resolver.ts → edge-model-resolver.ts} +4 -3
- package/src/capabilities/index.ts +22 -11
- package/src/capabilities/{local-model-resolver/local-model-resolver.ts → local-model-resolver.ts} +4 -3
- package/src/capabilities/markdown.ts +40 -0
- package/src/capabilities/migrations.ts +34 -0
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-surface.tsx +157 -0
- package/src/capabilities/{settings/settings.ts → settings.ts} +5 -4
- package/src/capabilities/{state/state.ts → state.ts} +11 -3
- package/src/capabilities/toolkit.ts +13 -0
- package/src/components/AssistantSettings/AssistantSettings.stories.tsx +34 -0
- package/src/components/AssistantSettings/AssistantSettings.tsx +104 -92
- package/src/components/AssistantSettings/index.ts +2 -2
- package/src/components/Chat/Chat.tsx +88 -45
- package/src/components/ChatProgress/ChatProgress.tsx +9 -7
- package/src/components/ChatPrompt/ChatActions.tsx +25 -5
- package/src/components/ChatPrompt/ChatOptions.tsx +43 -29
- package/src/components/ChatPrompt/ChatReferences.tsx +18 -8
- package/src/components/ChatThread/ChatThread.stories.tsx +31 -48
- package/src/components/ChatThread/ChatThread.tsx +28 -17
- package/src/components/ChatThread/Link.tsx +1 -1
- package/src/components/ChatThread/MarkdownStream.stories.tsx +243 -0
- package/src/components/ChatThread/registry.tsx +107 -43
- package/src/components/ChatThread/sync.test.ts +13 -10
- package/src/components/ChatThread/sync.ts +43 -32
- package/src/components/ChatThread/testing/thinking.md +21 -0
- package/src/components/ChatThread/testing/thread-1.md +30 -0
- package/src/components/ChatThread/testing/{thread.md → thread-2.md} +19 -0
- package/src/components/ChatThread/testing/thread-widgets.md +79 -0
- package/src/components/ChatThread/tool-widget-state.test.ts +34 -0
- package/src/components/ChatThread/tool-widget-state.ts +48 -0
- package/src/components/ChatThread/widgets/FallbackWidget.tsx +26 -0
- package/src/components/ChatThread/widgets/PromptWidget.ts +28 -0
- package/src/components/ChatThread/widgets/ReasoningWidget.stories.tsx +68 -0
- package/src/components/ChatThread/widgets/ReasoningWidget.ts +133 -0
- package/src/components/ChatThread/widgets/ReferenceWidget.ts +31 -0
- package/src/components/ChatThread/widgets/SelectWidget.ts +37 -0
- package/src/components/ChatThread/widgets/StatsWidget.ts +29 -0
- package/src/components/ChatThread/widgets/StatusWidget.ts +133 -0
- package/src/components/ChatThread/widgets/SuggestionWidget.ts +41 -0
- package/src/components/ChatThread/widgets/SummaryWidget.tsx +28 -0
- package/src/components/ChatThread/widgets/ToolWidget.stories.tsx +54 -0
- package/src/components/ChatThread/widgets/ToolWidget.tsx +156 -0
- package/src/components/ChatThread/widgets/index.ts +14 -0
- package/src/components/ProcessTree/ProcessTree.stories.tsx +109 -0
- package/src/components/ProcessTree/ProcessTree.tsx +85 -0
- package/src/components/ProcessTree/index.ts +5 -0
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +4 -9
- package/src/components/TemplateEditor/TemplateEditor.tsx +50 -42
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +7 -6
- package/src/components/TemplateEditor/TemplateForm.tsx +9 -10
- package/src/components/TemplateEditor/extensions/handlebars-extension.ts +4 -4
- package/src/components/ToolBlock/ToolBlock.tsx +21 -20
- package/src/components/Toolbox/Toolbox.stories.tsx +4 -6
- package/src/components/Toolbox/Toolbox.tsx +66 -60
- package/src/components/Typewriter/AssistantToolbar.tsx +7 -7
- package/src/components/Typewriter/Typewriter.stories.tsx +18 -15
- package/src/components/Typewriter/Typewriter.tsx +6 -10
- package/src/components/Typewriter/assistant-extension.tsx +5 -8
- package/src/components/index.ts +3 -7
- package/src/containers/AgentArticle/AgentArticle.stories.tsx +105 -0
- package/src/containers/AgentArticle/AgentArticle.tsx +157 -0
- package/src/containers/AgentArticle/index.ts +5 -0
- package/src/containers/AgentProperties/AgentProperties.stories.tsx +91 -0
- package/src/containers/AgentProperties/AgentProperties.tsx +169 -0
- package/src/containers/AgentProperties/index.ts +5 -0
- package/src/containers/BlueprintArticle/BlueprintArticle.tsx +29 -0
- package/src/containers/BlueprintArticle/index.ts +5 -0
- package/src/{components → containers/ChatCompanion}/ChatCompanion.tsx +23 -44
- package/src/containers/ChatCompanion/index.ts +5 -0
- package/src/containers/ChatContainer/ChatContainer.tsx +95 -0
- package/src/containers/ChatContainer/index.ts +5 -0
- package/src/{components → containers/ChatDialog}/ChatDialog.tsx +10 -12
- package/src/containers/ChatDialog/index.ts +5 -0
- package/src/containers/PromptArticle/PromptArticle.tsx +59 -0
- package/src/containers/PromptArticle/index.ts +5 -0
- package/src/containers/PromptList/PromptList.stories.tsx +129 -0
- package/src/containers/PromptList/PromptList.tsx +49 -0
- package/src/containers/PromptList/index.ts +5 -0
- package/src/containers/TracePanel/TracePanel.tsx +361 -0
- package/src/containers/TracePanel/dxn-extractor.test.ts +153 -0
- package/src/containers/TracePanel/dxn-extractor.ts +178 -0
- package/src/containers/TracePanel/index.ts +9 -0
- package/src/containers/TriggerStatus/TriggerStatus.tsx +144 -0
- package/src/containers/TriggerStatus/index.ts +5 -0
- package/src/containers/index.ts +16 -0
- package/src/extensions/index.ts +5 -0
- package/src/extensions/prompt-extension.ts +111 -0
- package/src/hooks/useBlueprintRegistry.ts +8 -4
- package/src/hooks/useChatProcessor.ts +30 -17
- package/src/hooks/useChatServices.ts +7 -28
- package/src/hooks/useChatToolbarActions.ts +13 -12
- package/src/hooks/useContextBinder.ts +17 -6
- package/src/hooks/useContextObjects.ts +8 -4
- package/src/hooks/useFilteredTypes.ts +3 -3
- package/src/hooks/usePresets.ts +2 -1
- package/src/hooks/useReferencesProvider.ts +1 -5
- package/src/index.ts +1 -1
- package/src/meta.ts +6 -3
- package/src/operations/create-chat.ts +80 -0
- package/src/operations/definitions.ts +127 -0
- package/src/operations/ensure-companion-chat.ts +61 -0
- package/src/operations/index.ts +17 -0
- package/src/operations/on-create-space.ts +24 -0
- package/src/operations/resolve-navigation-targets.ts +26 -0
- package/src/operations/run-prompt-in-new-chat.ts +113 -0
- package/src/operations/set-current-chat.ts +50 -0
- package/src/operations/update-chat-name.ts +61 -0
- package/src/processor/index.ts +0 -1
- package/src/processor/presets.ts +2 -2
- package/src/processor/processor.test.ts +18 -50
- package/src/processor/processor.ts +190 -129
- package/src/queue-logger.ts +2 -2
- package/src/testing/test-generator.ts +45 -14
- package/src/testing/test-sequence.ts +3 -3
- package/src/testing/test-services.ts +2 -2
- package/src/translations.ts +134 -83
- package/src/types/Assistant.ts +8 -56
- package/src/types/Settings.ts +21 -0
- package/src/types/capabilities.ts +11 -3
- package/src/types/events.ts +2 -2
- package/src/types/index.ts +3 -1
- package/src/types/service.ts +5 -5
- package/dist/lib/browser/BlueprintArticle-WP3G5GLG.mjs +0 -31
- package/dist/lib/browser/BlueprintArticle-WP3G5GLG.mjs.map +0 -7
- package/dist/lib/browser/ChatCompanion-GFSJZTOT.mjs +0 -153
- package/dist/lib/browser/ChatCompanion-GFSJZTOT.mjs.map +0 -7
- package/dist/lib/browser/ChatContainer-IHAPBIZE.mjs +0 -72
- package/dist/lib/browser/ChatContainer-IHAPBIZE.mjs.map +0 -7
- package/dist/lib/browser/ChatDialog-EGRMPCTL.mjs +0 -85
- package/dist/lib/browser/ChatDialog-EGRMPCTL.mjs.map +0 -7
- package/dist/lib/browser/PromptArticle-K362ZPAE.mjs +0 -53
- package/dist/lib/browser/PromptArticle-K362ZPAE.mjs.map +0 -7
- package/dist/lib/browser/ai-service-5GUDOEWF.mjs +0 -21
- package/dist/lib/browser/ai-service-5GUDOEWF.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-DSNH2OMY.mjs +0 -212
- package/dist/lib/browser/app-graph-builder-DSNH2OMY.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-DGHH7MUU.mjs +0 -14
- package/dist/lib/browser/blueprint-definition-DGHH7MUU.mjs.map +0 -7
- package/dist/lib/browser/chunk-A75V4MOQ.mjs +0 -1832
- package/dist/lib/browser/chunk-A75V4MOQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-DKQMSMBN.mjs +0 -326
- package/dist/lib/browser/chunk-DKQMSMBN.mjs.map +0 -7
- package/dist/lib/browser/chunk-EXVT7D4B.mjs +0 -23
- package/dist/lib/browser/chunk-EXVT7D4B.mjs.map +0 -7
- package/dist/lib/browser/chunk-ML3QCFKA.mjs +0 -265
- package/dist/lib/browser/chunk-ML3QCFKA.mjs.map +0 -7
- package/dist/lib/browser/chunk-MRJVYGLU.mjs +0 -208
- package/dist/lib/browser/chunk-MRJVYGLU.mjs.map +0 -7
- package/dist/lib/browser/chunk-V772AMZM.mjs +0 -250
- package/dist/lib/browser/chunk-V772AMZM.mjs.map +0 -7
- package/dist/lib/browser/chunk-WGQTU6UJ.mjs +0 -41
- package/dist/lib/browser/chunk-WGQTU6UJ.mjs.map +0 -7
- package/dist/lib/browser/edge-model-resolver-26BOY6HY.mjs +0 -20
- package/dist/lib/browser/edge-model-resolver-26BOY6HY.mjs.map +0 -7
- package/dist/lib/browser/local-model-resolver-ZFIM6GGV.mjs +0 -19
- package/dist/lib/browser/local-model-resolver-ZFIM6GGV.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-7XJLBRQY.mjs +0 -132
- package/dist/lib/browser/operation-resolver-7XJLBRQY.mjs.map +0 -7
- package/dist/lib/browser/react-surface-S7SBFOSW.mjs +0 -109
- package/dist/lib/browser/react-surface-S7SBFOSW.mjs.map +0 -7
- package/dist/lib/browser/repair-6QGAKOVM.mjs +0 -54
- package/dist/lib/browser/repair-6QGAKOVM.mjs.map +0 -7
- package/dist/lib/browser/settings-4ZDLUMYE.mjs +0 -32
- package/dist/lib/browser/settings-4ZDLUMYE.mjs.map +0 -7
- package/dist/lib/browser/state-AN6336ZX.mjs +0 -26
- package/dist/lib/browser/state-AN6336ZX.mjs.map +0 -7
- package/dist/lib/browser/toolkit-7AVTEPMA.mjs +0 -18
- package/dist/lib/browser/toolkit-7AVTEPMA.mjs.map +0 -7
- package/dist/lib/node-esm/BlueprintArticle-WZ76E2C4.mjs +0 -32
- package/dist/lib/node-esm/BlueprintArticle-WZ76E2C4.mjs.map +0 -7
- package/dist/lib/node-esm/ChatCompanion-UR7DXZ54.mjs +0 -154
- package/dist/lib/node-esm/ChatCompanion-UR7DXZ54.mjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-YMLLGOZK.mjs +0 -73
- package/dist/lib/node-esm/ChatContainer-YMLLGOZK.mjs.map +0 -7
- package/dist/lib/node-esm/ChatDialog-D24WJPK4.mjs +0 -86
- package/dist/lib/node-esm/ChatDialog-D24WJPK4.mjs.map +0 -7
- package/dist/lib/node-esm/PromptArticle-D4HAIIC6.mjs +0 -54
- package/dist/lib/node-esm/PromptArticle-D4HAIIC6.mjs.map +0 -7
- package/dist/lib/node-esm/ai-service-PXKKCFIF.mjs +0 -22
- package/dist/lib/node-esm/ai-service-PXKKCFIF.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-TJCUEXW5.mjs +0 -213
- package/dist/lib/node-esm/app-graph-builder-TJCUEXW5.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-SEMDEIYG.mjs +0 -15
- package/dist/lib/node-esm/blueprint-definition-SEMDEIYG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-355W5B27.mjs +0 -251
- package/dist/lib/node-esm/chunk-355W5B27.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4BERCIES.mjs +0 -1833
- package/dist/lib/node-esm/chunk-4BERCIES.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-75PHXBN3.mjs +0 -327
- package/dist/lib/node-esm/chunk-75PHXBN3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-DCA5QWQT.mjs +0 -209
- package/dist/lib/node-esm/chunk-DCA5QWQT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MSBPC4RJ.mjs +0 -42
- package/dist/lib/node-esm/chunk-MSBPC4RJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-POWB2BPC.mjs +0 -25
- package/dist/lib/node-esm/chunk-POWB2BPC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZRIPP7YF.mjs +0 -267
- package/dist/lib/node-esm/chunk-ZRIPP7YF.mjs.map +0 -7
- package/dist/lib/node-esm/edge-model-resolver-G5KMODPO.mjs +0 -21
- package/dist/lib/node-esm/edge-model-resolver-G5KMODPO.mjs.map +0 -7
- package/dist/lib/node-esm/local-model-resolver-KDZLYI7Y.mjs +0 -20
- package/dist/lib/node-esm/local-model-resolver-KDZLYI7Y.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-SX4WMNA7.mjs +0 -133
- package/dist/lib/node-esm/operation-resolver-SX4WMNA7.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ZR6FXGLF.mjs +0 -110
- package/dist/lib/node-esm/react-surface-ZR6FXGLF.mjs.map +0 -7
- package/dist/lib/node-esm/repair-QJ7CQDKU.mjs +0 -55
- package/dist/lib/node-esm/repair-QJ7CQDKU.mjs.map +0 -7
- package/dist/lib/node-esm/settings-CQEOHR3R.mjs +0 -33
- package/dist/lib/node-esm/settings-CQEOHR3R.mjs.map +0 -7
- package/dist/lib/node-esm/state-HDON4REW.mjs +0 -27
- package/dist/lib/node-esm/state-HDON4REW.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-OWGCEKOO.mjs +0 -19
- package/dist/lib/node-esm/toolkit-OWGCEKOO.mjs.map +0 -7
- package/dist/types/src/blueprints/assistant-blueprint.d.ts +0 -209
- package/dist/types/src/blueprints/assistant-blueprint.d.ts.map +0 -1
- package/dist/types/src/capabilities/ai-service/ai-service.d.ts +0 -5
- package/dist/types/src/capabilities/ai-service/ai-service.d.ts.map +0 -1
- package/dist/types/src/capabilities/ai-service/index.d.ts +0 -3
- package/dist/types/src/capabilities/ai-service/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -21
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -4
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts +0 -6
- package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/edge-model-resolver/index.d.ts +0 -3
- package/dist/types/src/capabilities/edge-model-resolver/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/local-model-resolver/index.d.ts +0 -3
- package/dist/types/src/capabilities/local-model-resolver/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts +0 -12
- package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/repair/index.d.ts +0 -3
- package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/repair/repair.d.ts +0 -6
- package/dist/types/src/capabilities/repair/repair.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/index.d.ts +0 -15
- package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
- package/dist/types/src/capabilities/state/index.d.ts +0 -11
- package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/state/state.d.ts +0 -13
- package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
- package/dist/types/src/capabilities/toolkit/index.d.ts +0 -3
- package/dist/types/src/capabilities/toolkit/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/toolkit/toolkit.d.ts +0 -5
- package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +0 -1
- package/dist/types/src/components/BlueprintArticle.d.ts +0 -7
- package/dist/types/src/components/BlueprintArticle.d.ts.map +0 -1
- package/dist/types/src/components/ChatCompanion.d.ts +0 -13
- package/dist/types/src/components/ChatCompanion.d.ts.map +0 -1
- package/dist/types/src/components/ChatContainer.d.ts +0 -19
- package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
- package/dist/types/src/components/ChatDialog.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/reducers.d.ts +0 -40
- package/dist/types/src/components/ChatThread/reducers.d.ts.map +0 -1
- package/dist/types/src/components/PromptArticle.d.ts +0 -7
- package/dist/types/src/components/PromptArticle.d.ts.map +0 -1
- package/dist/types/src/functions/index.d.ts +0 -4
- package/dist/types/src/functions/index.d.ts.map +0 -1
- package/dist/types/src/functions/object-list.d.ts +0 -10
- package/dist/types/src/functions/object-list.d.ts.map +0 -1
- package/dist/types/src/functions/object-load.d.ts +0 -8
- package/dist/types/src/functions/object-load.d.ts.map +0 -1
- package/dist/types/src/functions/object-search.d.ts +0 -10
- package/dist/types/src/functions/object-search.d.ts.map +0 -1
- package/dist/types/src/processor/update-name.d.ts +0 -10
- package/dist/types/src/processor/update-name.d.ts.map +0 -1
- package/dist/types/src/types/AssistantAction.d.ts +0 -95
- package/dist/types/src/types/AssistantAction.d.ts.map +0 -1
- package/src/blueprints/assistant-blueprint.ts +0 -62
- package/src/capabilities/ai-service/index.ts +0 -7
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -180
- package/src/capabilities/app-graph-builder/index.ts +0 -7
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +0 -60
- package/src/capabilities/blueprint-definition/index.ts +0 -8
- package/src/capabilities/edge-model-resolver/index.ts +0 -7
- package/src/capabilities/local-model-resolver/index.ts +0 -7
- package/src/capabilities/operation-resolver/index.ts +0 -7
- package/src/capabilities/operation-resolver/operation-resolver.ts +0 -110
- package/src/capabilities/react-surface/index.ts +0 -7
- package/src/capabilities/react-surface/react-surface.tsx +0 -95
- package/src/capabilities/repair/index.ts +0 -7
- package/src/capabilities/repair/repair.ts +0 -63
- package/src/capabilities/settings/index.ts +0 -7
- package/src/capabilities/state/index.ts +0 -7
- package/src/capabilities/toolkit/index.ts +0 -7
- package/src/capabilities/toolkit/toolkit.ts +0 -26
- package/src/components/BlueprintArticle.tsx +0 -29
- package/src/components/ChatContainer.tsx +0 -61
- package/src/components/ChatThread/reducers.ts +0 -151
- package/src/components/PromptArticle.tsx +0 -50
- package/src/functions/index.ts +0 -7
- package/src/functions/object-list.ts +0 -49
- package/src/functions/object-load.ts +0 -47
- package/src/functions/object-search.ts +0 -46
- package/src/processor/update-name.ts +0 -59
- package/src/types/AssistantAction.ts +0 -75
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/hooks/useBlueprintRegistry.ts", "../../../src/hooks/useChatProcessor.ts", "../../../src/hooks/useChatServices.ts", "../../../src/hooks/useChatToolbarActions.ts", "../../../src/components/index.ts", "../../../src/components/Chat/Chat.tsx", "../../../src/hooks/useContextBinder.ts", "../../../src/hooks/useContextObjects.ts", "../../../src/hooks/useFilteredTypes.ts", "../../../src/hooks/useFlush.ts", "../../../src/hooks/useOnline.ts", "../../../src/hooks/usePresets.ts", "../../../src/hooks/useReferencesProvider.ts", "../../../src/components/ChatPrompt/ChatActions.tsx", "../../../src/components/ChatPrompt/ChatOptions.tsx", "../../../src/components/ChatPrompt/ChatPresets.tsx", "../../../src/components/ChatPrompt/ChatReferences.tsx", "../../../src/components/ChatPrompt/ChatStatusIndicator.tsx", "../../../src/components/ChatThread/ChatThread.tsx", "../../../src/components/ChatThread/registry.tsx", "../../../src/components/ToolBlock/ToolBlock.tsx", "../../../src/components/ChatThread/sync.ts", "../../../src/components/Toolbox/Toolbox.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { type Assistant, LLM_PROVIDERS } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport type AssistantSettingsComponentProps = {\n settings: Assistant.Settings;\n onSettingsChange: (fn: (current: Assistant.Settings) => Assistant.Settings) => void;\n};\n\nexport const AssistantSettings = ({ settings, onSettingsChange }: AssistantSettingsComponentProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <ControlGroup>\n <ControlItemInput title={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => onSettingsChange((s) => ({ ...s, customPrompts: checked }))}\n />\n </ControlItemInput>\n\n <ControlItemInput title={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n onSettingsChange((s) => ({\n ...s,\n llmProvider: value === DEFAULT_VALUE ? undefined : (value as any),\n }));\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n\n <ControlItemInput title={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n onSettingsChange((s) => ({ ...s, edgeModel: value === DEFAULT_VALUE ? undefined : value }));\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n\n <ControlItemInput title={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n onSettingsChange((s) => ({ ...s, ollamaModel: value === DEFAULT_VALUE ? undefined : value }));\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Common } from '@dxos/app-framework';\nimport { useCapabilities } from '@dxos/app-framework/react';\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { Blueprint } from '@dxos/blueprints';\nimport { type Database, Filter, Obj, Ref } from '@dxos/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { distinctBy } from '@dxos/util';\n\n/**\n * Provide a registry of blueprints from plugins.\n */\n// TODO(burdon): Reconcile with eventual public registry.\nexport const useBlueprintRegistry = () => {\n const blueprints = useCapabilities(Common.Capability.BlueprintDefinition);\n return useMemo(() => new Blueprint.Registry(blueprints), [blueprints]);\n};\n\nexport const useBlueprints = ({\n blueprintRegistry,\n db,\n}: {\n blueprintRegistry?: Blueprint.Registry;\n db?: Database.Database;\n}) => {\n const staticBlueprints = useMemo(() => blueprintRegistry?.query() ?? [], [blueprintRegistry]);\n const spaceBlueprints = useQuery(db, Filter.type(Blueprint.Blueprint));\n return useMemo(() => {\n const blueprints = distinctBy([...staticBlueprints, ...spaceBlueprints], (b) => b.key);\n blueprints.sort(({ name: a }, { name: b }) => a.localeCompare(b));\n return blueprints;\n }, [staticBlueprints, spaceBlueprints]);\n};\n\n/**\n * Create reactive map of active blueprints (by key).\n */\nexport const useActiveBlueprints = ({ context }: { context?: AiContextBinder }) => {\n const [active, setActive] = useState<Map<string, Blueprint.Blueprint>>(new Map());\n\n useEffect(() => {\n if (!context) {\n setActive(new Map());\n return;\n }\n\n const updateActive = () => {\n const blueprints = context.getBlueprints();\n setActive(new Map(blueprints.map((blueprint) => [blueprint.key, blueprint])));\n };\n\n // Set initial value.\n updateActive();\n\n // Subscribe to changes.\n return context.subscribeBlueprints(updateActive);\n }, [context]);\n\n return active;\n};\n\n// TODO(burdon): Move logic into binder.\nexport const useBlueprintHandlers = ({\n db,\n context,\n blueprintRegistry,\n}: {\n db: Database.Database;\n context?: AiContextBinder;\n blueprintRegistry?: Blueprint.Registry;\n}) => {\n const onUpdateBlueprint = useCallback(\n async (key: string, checked: boolean) => {\n if (!context || !blueprintRegistry) {\n return;\n }\n\n // Find existing cloned blueprint.\n const objects = await db.query(Filter.type(Blueprint.Blueprint)).run();\n let storedBlueprint = objects.find((blueprint) => blueprint.key === key);\n if (checked) {\n if (!storedBlueprint) {\n const blueprint = blueprintRegistry.getByKey(key);\n if (!blueprint) {\n return;\n }\n\n // NOTE: Possible race condition with other peers.\n storedBlueprint = db.add(Obj.clone(blueprint));\n }\n await context.bind({ blueprints: [Ref.make(storedBlueprint)] });\n } else if (storedBlueprint) {\n await context.unbind({ blueprints: [Ref.make(storedBlueprint)] });\n }\n },\n [db, context, blueprintRegistry],\n );\n\n return { onUpdateBlueprint };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Registry, RegistryContext } from '@effect-atom/atom-react';\nimport type * as Runtime from 'effect/Runtime';\nimport { useContext, useMemo, useState } from 'react';\n\nimport { AiConversation } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { log } from '@dxos/log';\nimport { type Queue, type Space } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { AiChatProcessor, type AiChatServices, type AiServicePreset } from '../processor';\nimport { type Assistant } from '../types';\n\nexport type UseChatProcessorProps = {\n space?: Space;\n chat?: Assistant.Chat;\n preset?: AiServicePreset;\n services?: () => Promise<Runtime.Runtime<AiChatServices>>;\n blueprintRegistry?: Blueprint.Registry;\n settings?: Assistant.Settings;\n};\n\n/**\n * Configure and create AiChatProcessor.\n */\nexport const useChatProcessor = ({\n space,\n chat,\n preset,\n services,\n blueprintRegistry,\n settings,\n}: UseChatProcessorProps): AiChatProcessor | undefined => {\n const observableRegistry = useContext(RegistryContext);\n\n // Create conversation from chat queue.\n const [conversation, setConversation] = useState<AiConversation>();\n useAsyncEffect(async () => {\n if (!space || !chat) {\n return;\n }\n\n // NOTE: Passing in space and getting queue from space rather than resolving the reference.\n // This is because if the chat isn't in a space yet, the reference will not be resolvable.\n const queue = space.queues.get(chat.queue.dxn);\n const conversation = new AiConversation({\n queue: queue as Queue<any>,\n registry: observableRegistry as Registry.Registry,\n });\n await conversation.open();\n setConversation(conversation);\n return () => {\n void conversation.close();\n setConversation(undefined);\n };\n }, [space, chat?.queue.dxn.toString()]);\n\n // Create processor.\n const processor = useMemo(() => {\n if (!services || !conversation) {\n return undefined;\n }\n\n log('creating processor', { preset, model: preset?.model, settings });\n return new AiChatProcessor(conversation, services, {\n observableRegistry,\n blueprintRegistry,\n model: preset?.model,\n });\n }, [services, conversation, blueprintRegistry, preset]);\n\n return processor;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport type * as Runtime from 'effect/Runtime';\nimport { useMemo } from 'react';\n\nimport { useCapability } from '@dxos/app-framework/react';\nimport { type Key } from '@dxos/echo';\nimport { TracingService } from '@dxos/functions';\nimport { TracingServiceExt } from '@dxos/functions-runtime';\nimport { AutomationCapabilities } from '@dxos/plugin-automation';\nimport { useClient } from '@dxos/react-client';\n\nimport { type AiChatServices } from '../processor';\nimport { type Assistant } from '../types';\n\nexport type UseChatServicesProps = {\n id?: Key.SpaceId;\n chat?: Assistant.Chat;\n};\n\n/**\n * Construct service layer.\n */\n// TODO(dmaretskyi): Better return type.\nexport const useChatServices = ({\n id,\n chat,\n}: UseChatServicesProps): (() => Promise<Runtime.Runtime<AiChatServices>>) | undefined => {\n const client = useClient();\n id ??= client.spaces.default.id;\n\n const runtimeResolver = useCapability(AutomationCapabilities.ComputeRuntime);\n return useMemo(() => {\n const runtime = runtimeResolver.getRuntime(id);\n return () =>\n runtime.runPromise(\n Effect.runtime<AiChatServices>().pipe(\n Effect.provide(\n chat?.traceQueue?.target ? TracingServiceExt.layerQueue(chat.traceQueue?.target) : TracingService.layerNoop,\n ),\n ),\n );\n }, [id, chat?.traceQueue?.target]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\nimport { useMemo } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { MenuBuilder, useMenuActions } from '@dxos/react-ui-menu';\n\nimport { useChatContext } from '../components';\nimport { meta } from '../meta';\nimport { Assistant, AssistantOperation } from '../types';\n\nexport type ChatToolbarActionsProps = {\n chat?: Assistant.Chat;\n companionTo?: Obj.Unknown;\n};\n\nexport const useChatToolbarActions = ({ chat, companionTo }: ChatToolbarActionsProps) => {\n const { invoke } = useOperationInvoker();\n const { db } = useChatContext('useChatToolbarActions');\n const query = companionTo\n ? Query.select(Filter.id(companionTo.id)).targetOf(Assistant.CompanionTo).source()\n : Query.select(Filter.nothing());\n\n // TODO(wittjosiah): Query in react vs query in atom?\n const chats = useQuery(db, query);\n\n // Create stable reference for dependency array to avoid circular reference issues.\n return useMenuActions(\n useMemo(() => {\n return Atom.make(() => {\n const builder = MenuBuilder.make()\n .root({\n label: ['chat toolbar title', { ns: meta.id }],\n })\n .action(\n 'new',\n {\n label: ['new thread button', { ns: meta.id }],\n icon: 'ph--plus--regular',\n type: 'new',\n disabled: !companionTo,\n },\n () => {\n invariant(companionTo);\n return invoke(AssistantOperation.SetCurrentChat, {\n companionTo,\n chat: undefined,\n }).pipe(runAndForwardErrors);\n },\n )\n .action(\n 'rename',\n {\n label: ['rename thread button', { ns: meta.id }],\n icon: 'ph--magic-wand--regular',\n type: 'rename',\n disabled: !chat,\n },\n () =>\n Effect.gen(function* () {\n invariant(chat);\n yield* invoke(AssistantOperation.UpdateChatName, { chat });\n }).pipe(runAndForwardErrors),\n )\n .action(\n 'branch',\n {\n label: ['button branch thread', { ns: meta.id }],\n icon: 'ph--git-branch--regular',\n type: 'branch',\n disabled: true,\n },\n () => {},\n );\n\n if (chats.length > 0) {\n builder.group(\n 'chats',\n {\n label: ['chat history label', { ns: meta.id }],\n icon: 'ph--clock-counter-clockwise--regular',\n selectCardinality: 'single',\n variant: 'dropdownMenu',\n },\n (builder) => {\n chats\n // TODO(wittjosiah): This should be the default sort order.\n .toSorted((a, b) => a.id.localeCompare(b.id))\n .forEach((chat) => {\n builder.action(\n chat.id,\n {\n label: Obj.getLabel(chat) ?? ['object name placeholder', { ns: Assistant.Chat.typename }],\n },\n () =>\n Effect.gen(function* () {\n invariant(companionTo);\n yield* invoke(AssistantOperation.SetCurrentChat, {\n companionTo,\n chat,\n });\n }).pipe(runAndForwardErrors),\n );\n });\n },\n );\n }\n\n return builder.build();\n });\n }, [chats.length, db?.spaceId, companionTo?.id, chat?.id, invoke]),\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AssistantSettings';\nexport * from './Chat';\nexport * from './TemplateEditor';\nexport * from './Toolbox';\n\nexport const BlueprintArticle = lazy(() => import('./BlueprintArticle'));\nexport const ChatCompanion = lazy(() => import('./ChatCompanion'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const ChatDialog = lazy(() => import('./ChatDialog'));\nexport const PromptArticle = lazy(() => import('./PromptArticle'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Extension, Prec } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport { createContext } from '@radix-ui/react-context';\nimport * as Array from 'effect/Array';\nimport * as Option from 'effect/Option';\nimport React, { type PropsWithChildren, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Event } from '@dxos/async';\nimport { type Database, Obj } from '@dxos/echo';\nimport { useVoiceInput } from '@dxos/plugin-transcription';\nimport { useQueue } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Input, type ThemedClassName, useDynamicRef, useTranslation } from '@dxos/react-ui';\nimport { ChatEditor, type ChatEditorController, type ChatEditorProps } from '@dxos/react-ui-chat';\nimport { type MarkdownStreamController } from '@dxos/react-ui-components';\nimport { MenuProvider, ToolbarMenu } from '@dxos/react-ui-menu';\nimport { Message } from '@dxos/types';\nimport { mx } from '@dxos/ui-theme';\nimport { isTruthy } from '@dxos/util';\n\nimport { useChatToolbarActions } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type AiChatProcessor } from '../../processor';\nimport { type Assistant } from '../../types';\nimport {\n ChatActions,\n type ChatActionsProps,\n ChatOptions,\n type ChatPresetsProps,\n ChatReferences,\n ChatStatusIndicator,\n} from '../ChatPrompt';\nimport { ChatThread as NaturalChatThread, type ChatThreadProps as NaturalChatThreadProps } from '../ChatThread';\n\nimport { type ChatEvent } from './events';\n\n//\n// Context\n// NOTE: The context should not be exported. It is only used internally.\n// Components outside of this Radix-style group shuld define their own APIs.\n//\n\ntype ChatContextValue = {\n debug?: boolean;\n event: Event<ChatEvent>;\n db?: Database.Database;\n chat?: Assistant.Chat;\n messages: Message.Message[];\n processor: AiChatProcessor;\n};\n\nexport const [ChatContextProvider, useChatContext] = createContext<ChatContextValue>('Chat');\n\n//\n// Root\n//\n\ntype ChatRootProps = PropsWithChildren<\n Pick<ChatContextValue, 'db' | 'chat' | 'processor'> & {\n onEvent?: (event: ChatEvent) => void;\n }\n>;\n\nconst ChatRoot = ({ children, chat, processor, onEvent, ...props }: ChatRootProps) => {\n const [debug, setDebug] = useState(false);\n const pending = useAtomValue(processor.messages);\n const streaming = useAtomValue(processor.streaming);\n const lastPrompt = useRef<string | undefined>(undefined);\n\n // Messages.\n const queue = useQueue<Message.Message>(chat?.queue.dxn);\n const messages = useMemo(() => {\n const queueMessages = queue?.objects?.filter(Obj.instanceOf(Message.Message)) ?? [];\n return Array.dedupeWith([...queueMessages, ...pending], ({ id: a }, { id: b }) => a === b);\n }, [queue?.objects, pending]);\n\n // Events.\n const event = useMemo(() => new Event<ChatEvent>(), []);\n useEffect(() => {\n return event.on((ev) => {\n switch (ev.type) {\n case 'toggle-debug': {\n setDebug((current) => !current);\n break;\n }\n\n case 'submit': {\n const text = ev.text.trim();\n if (!streaming && text.length) {\n lastPrompt.current = ev.text;\n void processor.request({ message: text });\n }\n break;\n }\n\n case 'retry': {\n if (!streaming) {\n void processor.retry();\n }\n break;\n }\n\n case 'cancel': {\n if (streaming) {\n void processor.cancel();\n if (lastPrompt.current) {\n event.emit({ type: 'update-prompt', text: lastPrompt.current });\n }\n }\n break;\n }\n }\n\n onEvent?.(ev);\n });\n }, [event, processor, streaming, onEvent]);\n\n const db = props.db ?? (chat && Obj.getDatabase(chat));\n\n return (\n <ChatContextProvider\n debug={debug}\n event={event}\n db={db}\n chat={chat}\n messages={messages}\n processor={processor}\n {...props}\n >\n {children}\n </ChatContextProvider>\n );\n};\n\nChatRoot.displayName = 'Chat.Root';\n\n//\n// Viewport\n//\n\ntype ChatViewportProps = ThemedClassName<PropsWithChildren>;\n\nconst ChatViewport = ({ classNames, children }: ChatViewportProps) => {\n return (\n <div role='none' className={mx('flex flex-col bs-full is-full', classNames)}>\n {children}\n </div>\n );\n};\n\n//\n// Thread\n//\n\ntype ChatThreadProps = Omit<NaturalChatThreadProps, 'identity' | 'messages' | 'tools'>;\n\nconst ChatThread = (props: ChatThreadProps) => {\n const { debug, event, messages, processor } = useChatContext(ChatThread.displayName);\n const identity = useIdentity();\n const error = useAtomValue(processor.error).pipe(Option.getOrUndefined);\n\n const controllerRef = useRef<MarkdownStreamController | null>(null);\n useEffect(() => {\n return event.on((event) => {\n switch (event.type) {\n case 'submit':\n case 'scroll-to-bottom':\n controllerRef.current?.scrollToBottom();\n break;\n case 'nav-previous':\n controllerRef.current?.navigatePrevious();\n break;\n case 'nav-next':\n controllerRef.current?.navigateNext();\n break;\n }\n });\n }, [event]);\n\n const handleEvent = useCallback<NonNullable<NaturalChatThreadProps['onEvent']>>(\n (ev) => {\n event.emit(ev);\n },\n [event],\n );\n\n if (!identity) {\n return null;\n }\n\n return (\n <NaturalChatThread\n {...props}\n identity={identity}\n messages={messages}\n error={error}\n debug={debug}\n onEvent={handleEvent}\n ref={controllerRef}\n />\n );\n};\n\nChatThread.displayName = 'Chat.Thread';\n\n//\n// Prompt\n//\n\ntype ChatPromptProps = ThemedClassName<\n {\n outline?: boolean;\n settings?: boolean;\n } & Pick<ChatEditorProps, 'placeholder'> &\n Omit<ChatPresetsProps, 'onChange'> & {\n expandable?: boolean;\n online?: boolean;\n onOnlineChange?: (online: boolean) => void;\n onPresetChange?: ChatPresetsProps['onChange'];\n }\n>;\n\nconst ChatPrompt = ({\n classNames,\n outline,\n settings = true,\n placeholder,\n expandable,\n online,\n presets,\n preset,\n onPresetChange,\n onOnlineChange,\n}: ChatPromptProps) => {\n const { t } = useTranslation(meta.id);\n const { db, processor, event } = useChatContext(ChatPrompt.displayName);\n\n const error = useAtomValue(processor.error).pipe(Option.getOrUndefined);\n const streaming = useAtomValue(processor.streaming);\n const active = useAtomValue(processor.active);\n const activeRef = useDynamicRef(active);\n\n const editorRef = useRef<ChatEditorController>(null);\n const [recordingState, setRecordingState] = useState(false);\n useEffect(() => {\n return event.on((event) => {\n switch (event.type) {\n case 'update-prompt':\n if (!editorRef.current?.getText()?.length) {\n editorRef.current?.setText(event.text);\n editorRef.current?.focus();\n }\n break;\n case 'record-start':\n setRecordingState(true);\n break;\n case 'record-stop':\n setRecordingState(false);\n break;\n }\n });\n }, [event]);\n\n // TODO(burdon): Configure capability in TranscriptionPlugin.\n const { recording } = useVoiceInput({\n active: recordingState,\n onUpdate: (text) => {\n editorRef.current?.setText(text);\n editorRef.current?.focus();\n },\n });\n\n const extensions = useMemo<Extension[]>(() => {\n return [\n Prec.highest(\n keymap.of([\n {\n key: 'Mod-d',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'toggle-debug' });\n return true;\n },\n },\n {\n key: 'Mod-ArrowUp',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'nav-previous' });\n return true;\n },\n shift: () => {\n event.emit({ type: 'thread-open' });\n return true;\n },\n },\n {\n key: 'Mod-ArrowDown',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'nav-next' });\n return true;\n },\n shift: () => {\n event.emit({ type: 'thread-close' });\n return true;\n },\n },\n ]),\n ),\n ].filter(isTruthy);\n }, [event, expandable]);\n\n const handleSubmit = useCallback<NonNullable<ChatEditorProps['onSubmit']>>(\n (text) => {\n if (!activeRef.current) {\n event.emit({ type: 'submit', text });\n return true;\n }\n },\n [event],\n );\n\n const handleEvent = useCallback<NonNullable<ChatActionsProps['onEvent']>>(\n (ev) => {\n event.emit(ev);\n },\n [event],\n );\n\n return (\n <div\n role='group'\n className={mx(\n 'flex flex-col is-full density-fine',\n outline &&\n 'bg-groupSurface border border-subduedSeparator transition transition-border [&:has(.cm-content:focus)]:border-separator rounded',\n classNames,\n )}\n >\n <div role='none' className='flex p-2 gap-2'>\n <ChatStatusIndicator classNames='p-1' preset={preset} error={error} processing={streaming} />\n <ChatEditor\n ref={editorRef}\n autoFocus\n lineWrapping\n classNames='col-span-2 pbs-0.5'\n placeholder={placeholder ?? t('prompt placeholder')}\n extensions={extensions}\n onSubmit={handleSubmit}\n />\n </div>\n\n {db && settings && (\n <div role='none' className='flex items-center overflow-hidden'>\n <ChatOptions\n db={db}\n blueprintRegistry={processor.blueprintRegistry}\n context={processor.context}\n preset={preset}\n presets={presets}\n onPresetChange={onPresetChange}\n />\n\n <div role='none' className='flex grow overflow-x-auto scrollbar-none'>\n <ChatReferences db={db} context={processor.context} />\n </div>\n\n <ChatActions\n classNames='col-span-2'\n microphone={true}\n recording={recording}\n processing={streaming}\n onEvent={handleEvent}\n >\n {/* TODO(burdon): Move offline switch into dialog. */}\n {online !== undefined && (\n <Input.Root>\n <Input.Label srOnly>{t('online switch label')}</Input.Label>\n <Input.Switch classNames='mli-2' checked={online} onCheckedChange={onOnlineChange} />\n </Input.Root>\n )}\n </ChatActions>\n </div>\n )}\n </div>\n );\n};\n\nChatPrompt.displayName = 'Chat.Prompt';\n\n//\n// Toolbar\n//\n\ntype ChatToolbarProps = ThemedClassName<{ companionTo?: Obj.Unknown }>;\n\nconst ChatToolbar = ({ classNames, companionTo }: ChatToolbarProps) => {\n const { chat } = useChatContext(ChatToolbar.displayName);\n const menu = useChatToolbarActions({ chat, companionTo });\n\n return (\n <MenuProvider\n {...menu}\n attendableId={companionTo ? Obj.getDXN(companionTo).toString() : chat ? Obj.getDXN(chat).toString() : ''}\n >\n <ToolbarMenu classNames={classNames} textBlockWidth />\n </MenuProvider>\n );\n};\n\nChatToolbar.displayName = 'Chat.Toolbar';\n\n//\n// Chat\n//\n\nexport const Chat = {\n Root: ChatRoot,\n Viewport: ChatViewport,\n Thread: ChatThread,\n Prompt: ChatPrompt,\n Toolbar: ChatToolbar,\n};\n\nexport type { ChatRootProps, ChatViewportProps, ChatThreadProps, ChatPromptProps, ChatToolbarProps, ChatEvent };\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Registry, RegistryContext } from '@effect-atom/atom-react';\nimport { useContext, useState } from 'react';\n\nimport { AiContextBinder } from '@dxos/assistant';\nimport { type Queue } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\n// NOTE: This takes a queue rather than a chat because the chat may not be in a space yet.\nexport const useContextBinder = (queue: Queue | undefined): AiContextBinder | undefined => {\n const registry = useContext(RegistryContext) as Registry.Registry;\n const [binder, setBinder] = useState<AiContextBinder>();\n\n useAsyncEffect(async () => {\n if (!queue) {\n return;\n }\n\n const binder = new AiContextBinder({ queue, registry });\n await binder.open();\n setBinder(binder);\n\n return () => {\n void binder.close();\n };\n }, [queue]);\n\n return binder;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { type DXN, type Database, type Obj, Ref } from '@dxos/echo';\n\nexport type UseContextObjectsProps = {\n db?: Database.Database;\n context?: AiContextBinder;\n};\n\nexport type UseContextObjects = {\n objects: Obj.Unknown[];\n onUpdateObject: (dxn: DXN, checked: boolean) => Promise<void>;\n};\n\n/**\n * Create reactive map of active object references (by DXN string).\n */\nexport const useContextObjects = ({ db, context }: UseContextObjectsProps): UseContextObjects => {\n const handleUpdateObject = useCallback<UseContextObjects['onUpdateObject']>(\n async (dxn: DXN, checked: boolean) => {\n if (!db || !context) {\n return;\n }\n\n // Load the object by DXN from the current space.\n const ref = Ref.fromDXN(dxn);\n await ref.load();\n if (checked) {\n await context.bind({ objects: [ref] });\n } else {\n await context.unbind({ objects: [ref] });\n }\n },\n [db, context],\n );\n\n return {\n objects: context?.getObjects() ?? [],\n onUpdateObject: handleUpdateObject,\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport { useEffect, useState } from 'react';\n\nimport { type Database, type Type } from '@dxos/echo';\nimport { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';\n\n// TODO(burdon): Pass in filter.\n// TODO(wittjosiah): Factor out.\nexport const useFilteredTypes = (db?: Database.Database): Type.Entity.Any[] => {\n const [types, setTypes] = useState<Type.Entity.Any[]>([]);\n useEffect(() => {\n if (!db) {\n return;\n }\n\n return db.schemaRegistry.query({ location: ['database', 'runtime'] }).subscribe(\n (query) => {\n const types = Array.from(\n new Set(\n query.results\n .filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation)\n .filter((schema) => SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))),\n ),\n );\n\n setTypes(types);\n },\n { fire: true },\n );\n }, [db]);\n\n return types;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useRef, useState } from 'react';\n\nimport { type Space } from '@dxos/client/echo';\n\nexport const useFlush = (space?: Space) => {\n const [state, setState] = useState<'idle' | 'flushing' | 'flushed'>('idle');\n const resetTimer = useRef<NodeJS.Timeout | null>(null);\n\n const handleFlush = useCallback(() => {\n if (!space) {\n return;\n }\n\n queueMicrotask(async () => {\n if (resetTimer.current) {\n clearTimeout(resetTimer.current);\n }\n\n setState('flushing');\n await space.db.flush();\n setState('flushed');\n\n resetTimer.current = setTimeout(() => {\n setState('idle');\n resetTimer.current = null;\n }, 1_000);\n });\n }, [space]);\n\n return { state, handleFlush };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Dispatch, type SetStateAction, useState } from 'react';\n\nexport const useOnline = (): [boolean, Dispatch<SetStateAction<boolean>>] => {\n const [online, setOnline] = useState(true);\n return [online, setOnline];\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { type ChatPromptProps } from '../components';\nimport { type AiServicePreset, AiServicePresets } from '../processor';\n\nexport type UsePresets = {\n preset: AiServicePreset | undefined;\n} & Pick<ChatPromptProps, 'presets' | 'onPresetChange'>;\n\nexport const usePresets = (online: boolean): UsePresets => {\n // TODO(burdon): Memo preset for provider.\n const [preset, setPreset] = useState<AiServicePreset>();\n const presets = useMemo(\n () => AiServicePresets.filter((preset) => online === (preset.provider === 'dxos-remote')),\n [online],\n );\n const presetOptions = useMemo(\n () => presets.map(({ id, model, label }) => ({ id, label: label ?? model })),\n [presets],\n );\n useEffect(() => {\n setPreset(presets[0]);\n }, [presets]);\n\n const handlePresetChange = useCallback<NonNullable<ChatPromptProps['onPresetChange']>>(\n (id) => {\n const preset = presets.find((preset) => preset.id === id);\n if (preset) {\n setPreset(preset);\n }\n },\n [presets],\n );\n\n return {\n preset: preset,\n presets: presetOptions,\n onPresetChange: handlePresetChange,\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { Common } from '@dxos/app-framework';\nimport { useCapabilities } from '@dxos/app-framework/react';\nimport { type Space } from '@dxos/client/echo';\nimport { Filter, Obj } from '@dxos/echo';\nimport { type ReferencesProvider } from '@dxos/react-ui-chat';\n\n/**\n * Resolve references to objects in the space.\n */\nexport const useReferencesProvider = (space?: Space): ReferencesProvider | undefined => {\n const blueprints = useCapabilities(Common.Capability.BlueprintDefinition);\n\n return useMemo<ReferencesProvider | undefined>((): ReferencesProvider | undefined => {\n if (!space) {\n return undefined;\n }\n\n return {\n getReferences: async ({ query }) => {\n // TODO(burdon): Previously we filtered by types declared by the artifact definitions.\n // const schemas = blueprints.map((blueprint) => blueprint.schema).flat();\n // const objects = await space.db\n // .query(Filter.or(...schemas.map((schema) => Filter.type(schema as Type.Schema))))\n // .run();\n\n const objects = await space.db.query(Filter.everything()).run();\n\n return (\n objects\n // TODO(burdon): Remove cast ??? (+ two instances below).\n // .map((object) => {\n // log.info('object', { object, label: Obj.getLabel(object as any) });\n // return object;\n // })\n .filter((object) => stringMatch(query, Obj.getLabel(object as any) ?? ''))\n // TODO(dmaretskyi): `Type.getDXN` (at the point of writing) didn't work here as it was schema-only.\n .filter((object) => !!Obj.getDXN(object as Obj.Unknown))\n .map((object) => ({\n uri: Obj.getDXN(object as any).toString(),\n label: Obj.getLabel(object as any) ?? '',\n }))\n );\n },\n resolveReference: async ({ uri }) => {\n const object = await space.db.query(Filter.id(uri)).first();\n return { uri, label: Obj.getLabel(object) ?? '' };\n },\n } satisfies ReferencesProvider;\n }, [space, blueprints]);\n};\n\nconst stringMatch = (query: string, label: string) => label.toLowerCase().startsWith(query.toLowerCase());\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type PropsWithChildren } from 'react';\n\nimport { IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\nimport { type ChatEvent } from '../Chat';\n\nexport type ChatActionsProps = ThemedClassName<\n PropsWithChildren<{\n microphone?: boolean;\n recording?: boolean;\n processing?: boolean;\n onEvent?: (event: ChatEvent) => void;\n }>\n>;\n\nexport const ChatActions = ({ classNames, children, microphone, recording, processing, onEvent }: ChatActionsProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div className={mx('flex items-center mie-1', classNames)}>\n {children}\n\n <IconButton\n disabled={!processing}\n variant='ghost'\n icon='ph--x--regular'\n iconOnly\n label={t('cancel processing button')}\n onClick={() => onEvent?.({ type: 'cancel' })}\n />\n\n {microphone && (\n <IconButton\n disabled={!processing}\n classNames={mx(recording && 'bg-primary-500')}\n variant='ghost'\n icon='ph--microphone--regular'\n iconOnly\n noTooltip\n label={t('microphone button')}\n onMouseDown={() => onEvent?.({ type: 'record-start' })}\n onMouseUp={() => onEvent?.({ type: 'record-stop' })}\n onTouchStart={() => onEvent?.({ type: 'record-start' })}\n onTouchEnd={() => onEvent?.({ type: 'record-stop' })}\n />\n )}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type JSX, useMemo, useState } from 'react';\n\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { type Database, Filter, Obj, Type } from '@dxos/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { IconButton, Popover, Select, useTranslation } from '@dxos/react-ui';\nimport { Listbox, SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';\nimport { Tabs } from '@dxos/react-ui-tabs';\n\nimport {\n useActiveBlueprints,\n useBlueprintHandlers,\n useBlueprints,\n useContextObjects,\n useFilteredTypes,\n} from '../../hooks';\nimport { meta } from '../../meta';\n\nconst panelClassNames = 'is-[calc(100dvw-.5rem)] sm:is-max md:is-72 max-is-[--text-content]';\n\nexport type ChatOptionsProps = {\n db: Database.Database;\n context: AiContextBinder;\n blueprintRegistry?: Blueprint.Registry;\n presets?: { id: string; label: string }[];\n preset?: string;\n onPresetChange?: (id: string) => void;\n};\n\n/**\n * Manages the runtime context for the chat.\n */\nexport const ChatOptions = ({ db, context, blueprintRegistry, presets, preset, onPresetChange }: ChatOptionsProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div role='none' className='flex p-2'>\n <Popover.Root>\n <Popover.Trigger asChild>\n <IconButton variant='ghost' icon='ph--plus--regular' iconOnly label={t('context objects button')} />\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content side='top' classNames={panelClassNames}>\n <Popover.Viewport>\n <ObjectsPanel db={db} context={context} />\n </Popover.Viewport>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n\n <Popover.Root>\n <Popover.Trigger asChild>\n <IconButton\n variant='ghost'\n icon='ph--sliders-horizontal--regular'\n iconOnly\n label={t('context settings button')}\n />\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content side='top' classNames={panelClassNames}>\n <Popover.Viewport>\n <Tabs.Root orientation='horizontal' defaultValue='blueprints' defaultActivePart='list' tabIndex={-1}>\n <Tabs.Viewport classNames='max-bs-[--radix-popover-content-available-height] grid grid-rows-[1fr_min-content] [&_[cmdk-root]]:contents [&_[role=\"tabpanel\"]]:grid [&_[role=\"tabpanel\"]]:grid-rows-[1fr_min-content] [&_[role=\"listbox\"]]:min-bs-0 [&_[role=\"listbox\"]]:overflow-y-auto [&_[role=\"tabpanel\"]]:min-bs-0 [&_[role=\"tabpanel\"]]:pli-cardSpacingChrome [&_[role=\"tabpanel\"][data-state=\"active\"]]:order-first [&_[role=\"tabpanel\"][data-state=\"inactive\"]]:hidden'>\n <Tabs.Tabpanel value='blueprints' tabIndex={-1} classNames='dx-focus-ring-inset'>\n <BlueprintsPanel blueprintRegistry={blueprintRegistry} db={db} context={context} />\n </Tabs.Tabpanel>\n <Tabs.Tabpanel value='model' tabIndex={-1} classNames='dx-focus-ring-inset !pli-0'>\n <ModelsPanel presets={presets} preset={preset} onPresetChange={onPresetChange} />\n </Tabs.Tabpanel>\n <Tabs.Tablist classNames='sm:overflow-x-hidden justify-center p-[--dx-cardSpacingChrome] border-bs border-subduedSeparator order-last'>\n <Tabs.IconTab\n value='blueprints'\n icon='ph--blueprint--regular'\n label={t('blueprints in context title')}\n />\n <Tabs.IconTab value='model' label={t('chat model title')} icon='ph--cpu--regular' />\n </Tabs.Tablist>\n </Tabs.Viewport>\n </Tabs.Root>\n </Popover.Viewport>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n </div>\n );\n};\n\nconst BlueprintsPanel = ({\n blueprintRegistry,\n db,\n context,\n}: Pick<ChatOptionsProps, 'blueprintRegistry' | 'db' | 'context'>) => {\n const { t } = useTranslation(meta.id);\n\n const blueprints = useBlueprints({ blueprintRegistry, db });\n const activeBlueprints = useActiveBlueprints({ context });\n const { onUpdateBlueprint } = useBlueprintHandlers({ db, context, blueprintRegistry });\n\n const { results, handleSearch } = useSearchListResults({\n items: blueprints,\n extract: (blueprint) => blueprint.name,\n });\n\n return (\n <SearchList.Root onSearch={handleSearch}>\n <SearchList.Content classNames='plb-cardSpacingChrome'>\n <SearchList.Viewport>\n {results.map((blueprint) => {\n const isActive = activeBlueprints.has(blueprint.key);\n return (\n <SearchList.Item\n classNames='flex items-center overflow-hidden'\n key={blueprint.key}\n value={blueprint.key}\n label={blueprint.name}\n checked={isActive}\n onSelect={() => onUpdateBlueprint?.(blueprint.key, !isActive)}\n />\n );\n })}\n </SearchList.Viewport>\n </SearchList.Content>\n <SearchList.Input placeholder={t('search placeholder')} classNames='mbe-cardSpacingChrome' autoFocus />\n </SearchList.Root>\n );\n};\n\nconst ModelsPanel = ({\n presets,\n preset,\n onPresetChange,\n}: Pick<ChatOptionsProps, 'presets' | 'preset' | 'onPresetChange'>) => {\n return (\n <Listbox.Root value={preset} onValueChange={onPresetChange} autoFocus>\n {presets?.map(({ id, label }) => {\n return (\n <Listbox.Option key={id} value={id}>\n <Listbox.OptionLabel>{label}</Listbox.OptionLabel>\n <Listbox.OptionIndicator />\n </Listbox.Option>\n );\n })}\n </Listbox.Root>\n );\n};\n\nconst ANY = '__any__';\n\nconst ObjectsPanel = ({ db, context }: Pick<ChatOptionsProps, 'db' | 'context'>): JSX.Element => {\n const { t } = useTranslation(meta.id);\n\n // Item types sorted by label.\n const types = useFilteredTypes(db);\n const typenames = useMemo(() => {\n const typenames = types.map((type) => {\n const typename = Type.getTypename(type);\n return {\n typename,\n label: t('typename label', { ns: typename, defaultValue: typename }),\n };\n });\n\n typenames.sort((a, b) => a.label.localeCompare(b.label));\n return typenames;\n }, [types]);\n\n // Current type and filter.\n const [typename, setTypename] = useState<string>(ANY);\n const anyFilter = useMemo(\n () => Filter.or(...typenames.map(({ typename }) => Filter.typename(typename))),\n [typenames],\n );\n\n // Context objects.\n const objects = useQuery(db, typename === ANY ? anyFilter : Filter.typename(typename));\n const { objects: contextObjects, onUpdateObject } = useContextObjects({ db, context });\n\n const { results, handleSearch } = useSearchListResults({\n items: objects,\n extract: (object) => Obj.getLabel(object) ?? Obj.getTypename(object) ?? object.id,\n });\n\n return (\n <SearchList.Root onSearch={handleSearch}>\n <SearchList.Content classNames='p-cardSpacingChrome [&:has([cmdk-list-sizer]:empty)]:plb-0'>\n <SearchList.Viewport>\n {results.length ? (\n results.map((object) => {\n const isActive = contextObjects.findIndex((obj) => obj.id === object.id) !== -1;\n return (\n <SearchList.Item\n classNames='flex items-center overflow-hidden'\n key={object.id}\n value={object.id}\n label={Obj.getLabel(object) ?? Obj.getTypename(object) ?? object.id}\n checked={isActive}\n onSelect={() => onUpdateObject?.(Obj.getDXN(object), !isActive)}\n />\n );\n })\n ) : (\n <SearchList.Item value='__empty__' label={t('no results')} />\n )}\n </SearchList.Viewport>\n </SearchList.Content>\n\n <div role='none' className='grid grid-cols-[min-content_1fr] gap-2 pli-cardSpacingChrome mbe-cardSpacingChrome'>\n <Select.Root value={typename === ANY ? undefined : typename} onValueChange={setTypename}>\n <Select.TriggerButton density='fine' placeholder={t('type filter placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.ScrollUpButton />\n <Select.Viewport>\n <Select.Option value={ANY}>{t('any type filter label')}</Select.Option>\n {typenames.map(({ typename, label }) => (\n <Select.Option key={typename} value={typename}>\n {label}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton />\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n <SearchList.Input placeholder={t('search placeholder')} classNames='mbe-0' autoFocus />\n </div>\n </SearchList.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Select } from '@dxos/react-ui';\n\nexport type ChatPresetsProps = {\n presets?: { id: string; label: string }[];\n preset?: string;\n onChange?: (id: string) => void;\n};\n\nexport const ChatPresets = ({ presets, preset, onChange }: ChatPresetsProps) => {\n return (\n <Select.Root value={preset} onValueChange={onChange}>\n <Select.TriggerButton classNames='text-sm' />\n <Select.Content>\n {presets?.map(({ id, label }) => (\n <Select.Option key={id} value={id} classNames='text-sm'>\n {label}\n </Select.Option>\n ))}\n <Select.Arrow />\n </Select.Content>\n </Select.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { type Database, Obj } from '@dxos/echo';\nimport { IconButton, type Label, type ThemedClassName, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\n\nimport { useContextObjects } from '../../hooks';\nimport { meta } from '../../meta';\n\nexport type ChatReferencesProps = ThemedClassName<{\n context: AiContextBinder;\n db: Database.Database;\n}>;\n\nexport const ChatReferences = ({ classNames, context, db }: ChatReferencesProps) => {\n const { t } = useTranslation(meta.id);\n const { objects, onUpdateObject } = useContextObjects({ db, context });\n\n return (\n <ul className={mx('flex', classNames)}>\n {objects.map((obj) => {\n const dxn = Obj.getDXN(obj);\n const typename = Obj.getTypename(obj);\n const label: Label = Obj.getLabel(obj) ?? (typename ? ['object name placeholder', { ns: typename }] : obj.id);\n return (\n <li key={dxn.toString()} className='dx-tag plb-0 pis-2 flex items-center' data-hue='neutral'>\n {toLocalizedString(label, t)}\n <IconButton\n icon='ph--x--bold'\n iconOnly\n variant='ghost'\n label={t('remove object in context label')}\n classNames='p-0 hover:bg-transparent'\n size={3}\n onClick={() => onUpdateObject?.(dxn, false)}\n />\n </li>\n );\n })}\n </ul>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { type ThemedClassName, Tooltip, useTimeout } from '@dxos/react-ui';\nimport { Spinner, type SpinnerProps } from '@dxos/react-ui-sfx';\nimport { mx } from '@dxos/ui-theme';\n\nconst period = 3_000;\n\nexport type ChatStatusIndicatorProps = ThemedClassName<\n {\n preset?: string;\n processing?: boolean;\n error?: Error;\n } & Pick<SpinnerProps, 'size' | 'onClick'>\n>;\n\nexport const ChatStatusIndicator = ({ classNames, preset, processing, error, ...props }: ChatStatusIndicatorProps) => {\n const [init, setInit] = useState(false);\n useEffect(() => setInit(false), [preset]);\n useTimeout(\n async () => {\n setInit(true);\n },\n period / 2,\n [preset],\n );\n\n return (\n <div role='none' className={mx('relative flex', classNames)}>\n <Spinner duration={period} state={!init ? 'flash' : error ? 'error' : processing ? 'spin' : 'pulse'} {...props} />\n {error && (\n <Tooltip.Trigger asChild content={error.message}>\n <div className='absolute inset-0' />\n </Tooltip.Trigger>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type CSSProperties, forwardRef, useCallback, useEffect, useMemo } from 'react';\n\nimport { PublicKey } from '@dxos/keys';\nimport { type Identity } from '@dxos/react-client/halo';\nimport { type ThemedClassName, useForwardedRef } from '@dxos/react-ui';\nimport { MarkdownStream, type MarkdownStreamController, type MarkdownStreamProps } from '@dxos/react-ui-components';\nimport { type Message } from '@dxos/types';\nimport { mx } from '@dxos/ui-theme';\nimport { keyToFallback } from '@dxos/util';\n\nimport { type ChatEvent } from '../Chat';\n\nimport { blockToMarkdown, componentRegistry } from './registry';\nimport { MessageSyncer } from './sync';\n\nexport type ChatThreadProps = ThemedClassName<\n {\n identity?: Identity;\n messages?: Message.Message[];\n error?: Error;\n onEvent?: (event: ChatEvent) => void;\n } & Pick<MarkdownStreamProps, 'cursor' | 'fadeIn' | 'debug'>\n>;\n\n// TODO(burdon): Memo thread position.\nexport const ChatThread = forwardRef<MarkdownStreamController, ChatThreadProps>(\n (\n { classNames, identity, messages = [], error, cursor = false, fadeIn = true, debug = false, onEvent },\n forwardedRef,\n ) => {\n const controllerRef = useForwardedRef(forwardedRef);\n const controller = controllerRef.current;\n\n const userHue = useMemo(\n () => identity?.profile?.data?.hue || keyToFallback(identity?.identityKey ?? PublicKey.random()).hue,\n [identity],\n );\n\n // Show error.\n useEffect(() => {\n controller?.scrollToBottom();\n }, [controller, error]);\n\n // Update document.\n const syncer = useMemo(() => controller && new MessageSyncer(controller, blockToMarkdown), [controller]);\n useEffect(() => {\n const reset = syncer?.append(messages, true);\n if (reset) {\n controller?.scrollToBottom('instant');\n }\n }, [syncer, messages]);\n\n // Event adapter.\n const handleEvent = useCallback<NonNullable<MarkdownStreamProps['onEvent']>>(\n ({ type, value }) => {\n switch (type) {\n case 'submit': {\n value && onEvent?.({ type, text: value });\n break;\n }\n }\n },\n [onEvent],\n );\n\n return (\n <div\n role='none'\n className={mx('flex bs-full is-full justify-center overflow-hidden', classNames)}\n style={{ '--user-fill': `var(--dx-${userHue}Fill)` } as CSSProperties}\n >\n <MarkdownStream\n ref={controllerRef}\n registry={componentRegistry}\n cursor={cursor}\n fadeIn={fadeIn}\n debug={debug}\n onEvent={handleEvent}\n />\n </div>\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { log } from '@dxos/log';\nimport { ToggleContainer } from '@dxos/react-ui-components';\nimport {\n PromptWidget,\n ReferenceWidget,\n SelectWidget,\n SuggestionWidget,\n SummaryWidget,\n} from '@dxos/react-ui-components';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\nimport { ContentBlock, type Message } from '@dxos/types';\nimport { type XmlWidgetProps, type XmlWidgetRegistry, getXmlTextChild } from '@dxos/ui-editor';\n\nimport { ToolBlock } from '../ToolBlock';\n\nimport { type BlockRenderer, type MessageThreadContext } from './sync';\n\nconst Fallback = ({ _tag, ...props }: XmlWidgetProps<MessageThreadContext>) => {\n return (\n <ToggleContainer.Root classNames='rounded-sm'>\n <ToggleContainer.Header classNames='bg-groupSurface'>{_tag}</ToggleContainer.Header>\n <ToggleContainer.Content classNames='bg-modalSurface'>\n <Json classNames='!p-2 text-sm' data={props} />\n </ToggleContainer.Content>\n </ToggleContainer.Root>\n );\n};\n\n/**\n * Custom XML tags registry.\n */\nexport const componentRegistry: XmlWidgetRegistry = {\n //\n // Widgets\n //\n\n ['prompt' as const]: {\n block: true,\n factory: ({ children }) => {\n const text = getXmlTextChild(children);\n return text ? new PromptWidget(text) : null;\n },\n },\n ['reference' as const]: {\n block: false,\n factory: ({ children, ref }) => {\n const text = getXmlTextChild(children);\n return text && ref ? new ReferenceWidget(text, ref) : null;\n },\n },\n ['select' as const]: {\n block: true,\n factory: ({ children }) => {\n const options = children\n ?.map((option: any) => option._tag === 'option' && getXmlTextChild(option.children))\n .filter(Boolean);\n return options?.length ? new SelectWidget(options) : null;\n },\n },\n ['suggestion' as const]: {\n block: true,\n factory: ({ children }) => {\n const text = getXmlTextChild(children);\n return text ? new SuggestionWidget(text) : null;\n },\n },\n ['summary' as const]: {\n block: true,\n factory: ({ children }) => {\n const text = getXmlTextChild(children);\n return text ? new SummaryWidget(text) : null;\n },\n },\n\n //\n // React\n //\n\n ['toolCall' as const]: {\n block: true,\n Component: ToolBlock,\n },\n ['toolResult' as const]: {\n block: true,\n Component: Fallback,\n },\n ['toolkit' as const]: {\n block: true,\n Component: Fallback,\n },\n\n //\n // Fallback\n //\n\n ['json' as const]: {\n block: true,\n Component: Fallback,\n },\n};\n\n/**\n * Convert block to markdown.\n */\nexport const blockToMarkdown: BlockRenderer = (\n context: MessageThreadContext,\n message: Message.Message,\n block: ContentBlock.Any,\n) => {\n let str = blockToMarkdownImpl(context, message, block);\n if (str && !block.pending) {\n return (str += '\\n');\n }\n\n return str;\n};\n\nconst blockToMarkdownImpl = (context: MessageThreadContext, message: Message.Message, block: ContentBlock.Any) => {\n log('blockToMarkdown', { block: JSON.stringify(block) });\n switch (block._tag) {\n case 'text': {\n if (message.sender.role === 'user') {\n return `<prompt>${block.text}</prompt>`;\n } else {\n const text = block.text.trim();\n if (text.length > 0) {\n return text;\n }\n }\n break;\n }\n case 'reference': {\n const dxn = block.reference.dxn;\n return `<reference ref=\"${dxn.toString()}\">${context.getObjectLabel(dxn)}</reference>`;\n }\n case 'suggestion': {\n if (block.pending) {\n return;\n }\n return `<suggestion>${block.text}</suggestion>`;\n }\n case 'select': {\n if (block.pending || block.options.length === 0) {\n return;\n }\n return `<select>${block.options.map((option) => `<option>${option}</option>`).join('')}</select>`;\n }\n case 'toolCall': {\n context.updateWidget<{ blocks: ContentBlock.Any[] }>(block.toolCallId, {\n blocks: [block],\n });\n return `<toolCall id=\"${block.toolCallId}\" />`;\n }\n case 'toolResult': {\n context.updateWidget<{ blocks: ContentBlock.Any[] }>(block.toolCallId, ({ blocks = [] }) => ({\n blocks: [...blocks, block],\n }));\n break;\n }\n case 'summary': {\n return `<summary>${ContentBlock.createSummaryMessage(block)}</summary>`;\n }\n default: {\n // TODO(burdon): Needs stable ID.\n return `<json id=\"${message.id}\">\\n${JSON.stringify(block)}\\n</json>`;\n }\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Tool from '@effect/ai/Tool';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { NumericTabs, TextCrawl, ToggleContainer, type ToggleContainerRootProps } from '@dxos/react-ui-components';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\nimport { type ContentBlock, type Message } from '@dxos/types';\nimport { type XmlWidgetProps } from '@dxos/ui-editor';\nimport { isNonNullable, safeParseJson } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport const isToolMessage = (message: Message.Message) => {\n return message.blocks.some((block: ContentBlock.Any) => block._tag === 'toolCall' || block._tag === 'toolResult');\n};\n\nexport type ToolBlockProps = XmlWidgetProps<{\n blocks: ContentBlock.Any[];\n}>;\n\nexport const ToolBlock = ({ view, blocks = [] }: ToolBlockProps) => {\n const { t } = useTranslation(meta.id);\n\n const items = useMemo<ToolContainerProps['items']>(() => {\n let lastToolCall: { tool: Tool.Any | undefined; block: ContentBlock.ToolCall } | undefined;\n // TODO(burdon): Get from context?\n const tools: Tool.Any[] = []; //processor.conversation.toolkit?.tools ?? [];\n return blocks\n .filter((block) => block._tag === 'toolCall' || block._tag === 'toolResult' || block._tag === 'summary')\n .map((block) => {\n switch (block._tag) {\n case 'toolCall': {\n if (block.pending && lastToolCall?.block.toolCallId === block.toolCallId) {\n return null;\n }\n\n const tool = tools.find((tool) => tool.name === block.name);\n lastToolCall = { tool, block };\n return {\n title: tool?.description ?? [t('tool call label'), tool?.name].join(' '),\n content: {\n ...block,\n input: safeParseJson(block.input),\n },\n };\n }\n\n case 'toolResult': {\n // TODO(burdon): Parse error type.\n if (block.error) {\n return {\n title: t('tool error label'),\n content: block,\n };\n }\n\n const title =\n lastToolCall?.tool?.description ?? [t('tool result label'), lastToolCall?.tool?.name].join(' ');\n lastToolCall = undefined;\n return {\n title,\n content: {\n ...block,\n result: safeParseJson(block.result),\n },\n };\n }\n\n case 'summary': {\n if (!lastToolCall) {\n return null;\n }\n\n return {\n title: t('summary label'),\n content: block,\n };\n }\n }\n })\n .filter(isNonNullable);\n }, [blocks]);\n\n const handleChangeOpen = useCallback(() => {\n setTimeout(() => {\n // Measure after animation.\n view?.requestMeasure();\n }, 1_000);\n }, [view]);\n\n if (!items.length) {\n return null;\n }\n\n return <ToolContainer items={items} onChangeOpen={handleChangeOpen} />;\n};\n\nToolBlock.displayName = 'ToolBlock';\n\ntype ToolContainerProps = {\n items: { title: string; content: any }[];\n} & Pick<ToggleContainerRootProps, 'onChangeOpen'>;\n\nexport const ToolContainer = ({ items, onChangeOpen }: ToolContainerProps) => {\n const tabsRef = useRef<HTMLDivElement>(null);\n const [selected, setSelected] = useState(0);\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n onChangeOpen?.(open);\n if (open) {\n tabsRef.current?.focus();\n }\n }, [open, onChangeOpen]);\n\n const handleSelect = useCallback((index: number) => {\n setSelected(index);\n }, []);\n\n return (\n <ToggleContainer.Root classNames='mbs-2 is-full rounded-sm' open={open} onChangeOpen={setOpen}>\n <ToggleContainer.Header classNames='text-sm text-placeholder'>\n <TextCrawl key='status-roll' lines={items.map((item) => item.title)} autoAdvance greedy />\n </ToggleContainer.Header>\n <ToggleContainer.Content classNames='grid grid-cols-[32px_1fr]'>\n <NumericTabs ref={tabsRef} classNames='p-1' length={items.length} selected={selected} onSelect={handleSelect} />\n <Json\n data={items[selected]?.content}\n classNames='p-1 text-xs bg-transparent'\n replacer={{\n maxDepth: 3,\n maxArrayLen: 10,\n maxStringLen: 128,\n }}\n />\n </ToggleContainer.Content>\n </ToggleContainer.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type DXN } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { type MarkdownStreamController } from '@dxos/react-ui-components';\nimport { type ContentBlock, type Message } from '@dxos/types';\nimport { type StateDispatch, type XmlWidgetStateManager } from '@dxos/ui-editor';\n\n/**\n * Update document.\n */\nexport type TextModel = Pick<MarkdownStreamController, 'view' | 'reset' | 'append' | 'updateWidget'>;\n\n/**\n * Thread context passed to renderer.\n */\nexport class MessageThreadContext implements Pick<MarkdownStreamController, 'updateWidget'> {\n constructor(private readonly _widgetState?: XmlWidgetStateManager) {}\n\n updateWidget<T>(id: string, value: StateDispatch<T>) {\n this._widgetState?.updateWidget(id, value);\n }\n\n // TODO(burdon): Resolve from hypergraph.\n getObjectLabel(_id: DXN) {\n return 'Object';\n }\n}\n\n/**\n * Renders a block to markdown.\n */\nexport type BlockRenderer = (\n context: MessageThreadContext,\n message: Message.Message,\n block: ContentBlock.Any,\n) => string | undefined;\n\n/**\n * Syncs messages with the editor.\n */\nexport class MessageSyncer {\n private _initialMessageId?: string;\n private _currentMessageIndex = 0;\n private _currentBlockIndex = 0;\n private _currentBlockContent?: string;\n\n private readonly _context: MessageThreadContext;\n\n constructor(\n private readonly _model: TextModel,\n private readonly _blockRenderer: BlockRenderer,\n ) {\n this._context = new MessageThreadContext(this._model);\n }\n\n get context() {\n return this._context;\n }\n\n reset() {\n log('reset');\n this._initialMessageId = undefined;\n this._currentMessageIndex = 0;\n this._currentBlockIndex = 0;\n this._currentBlockContent = undefined;\n void this._model.reset('');\n }\n\n /**\n * Syncs messages with the editor.\n */\n append(messages: Message.Message[], flush = false): boolean {\n // Check if new set of messages.\n if (this._initialMessageId !== messages[0]?.id) {\n this.reset();\n this._initialMessageId = messages[0]?.id;\n }\n\n if (flush && this._model.view?.state.doc.length === 0) {\n const buffer: string[] = [];\n this.process(messages, (content) => {\n buffer.push(content);\n });\n\n const content = buffer.join('');\n this._model.view?.dispatch({\n changes: [\n {\n from: 0,\n to: this._model.view?.state.doc.length ?? 0,\n insert: content,\n },\n ],\n selection: { anchor: content.length },\n });\n\n return true;\n } else {\n this.process(messages, (content) => {\n void this._model.append(content);\n });\n\n return false;\n }\n }\n\n private process(messages: Message.Message[], append: (content: string) => void) {\n log('sync', {\n doc: this._model.view?.state.doc.length,\n messages: messages.map((message) => message.blocks.length),\n currentMessageIndex: this._currentMessageIndex,\n currentBlockIndex: this._currentBlockIndex,\n currentBlockContent: this._currentBlockContent,\n });\n\n let i = this._currentMessageIndex;\n for (const message of messages.slice(this._currentMessageIndex)) {\n if (i > this._currentMessageIndex) {\n this._currentBlockIndex = 0;\n }\n\n this._currentMessageIndex = i;\n let j = this._currentBlockIndex;\n for (const block of message.blocks.slice(this._currentBlockIndex)) {\n this._currentBlockIndex = j;\n const currentBlockContent = this._blockRenderer(this._context, message, block);\n if (currentBlockContent) {\n let content: string = '';\n if (this._currentBlockContent && currentBlockContent.startsWith(this._currentBlockContent)) {\n content = currentBlockContent.slice(this._currentBlockContent.length);\n } else {\n content = currentBlockContent;\n }\n\n log('append', { message: i, block: j, content });\n this._currentBlockContent = currentBlockContent;\n append(content);\n }\n\n if (block.pending) {\n return;\n } else {\n this._currentBlockContent = undefined;\n this._currentBlockIndex++;\n }\n j++;\n }\n i++;\n }\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, Fragment, useEffect, useState } from 'react';\n\nimport { type Blueprint } from '@dxos/blueprints';\nimport { type Database, type Ref } from '@dxos/echo';\nimport { Function } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { Filter, useQuery } from '@dxos/react-client/echo';\nimport { type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\nimport { type AiChatProcessor } from '../../processor';\nimport { ServiceType } from '../../types';\n\nexport type ToolboxProps = ThemedClassName<{\n services?: { service: ServiceType }[];\n functions?: Function.Function[];\n // TODO(burdon): Combine into single array.\n blueprints?: readonly Blueprint.Blueprint[];\n activeBlueprints?: readonly Ref.Ref<Blueprint.Blueprint>[];\n}>;\n\nexport const Toolbox = ({ classNames, functions, services, blueprints, activeBlueprints }: ToolboxProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div className={mx('flex flex-col overflow-y-auto box-content', classNames)}>\n {blueprints && blueprints.length > 0 && (\n <Section\n title='Blueprints'\n items={blueprints.map(({ name, description, tools }) => ({\n name,\n description,\n subitems: tools.map((toolId) => ({ name: `∙ ${safeToolId(toolId)}` })),\n }))}\n />\n )}\n\n {activeBlueprints && activeBlueprints.length > 0 && (\n <Section\n title='Blueprints'\n items={activeBlueprints.map(({ target }) => ({\n name: target?.name ?? '',\n description: target?.description ?? '',\n subitems: target?.tools.map((toolId) => ({ name: `∙ ${safeToolId(toolId)}` })),\n }))}\n />\n )}\n\n {services && services.length > 0 && (\n <Section\n title='Services'\n items={services.map(({ service: { serviceId, name, description } }) => ({\n name: name ?? serviceId,\n description,\n // subitems: tools.map(({ name, description }) => ({ name: `∙ ${name}`, description })),\n }))}\n />\n )}\n\n {functions && functions.length > 0 && (\n <Section title='Functions' items={functions.map(({ name, description }) => ({ name, description }))} />\n )}\n </div>\n );\n};\n\nconst Section: FC<{\n title: string;\n items: { name: string; description?: string; subitems?: { name: string; description?: string }[] }[];\n striped?: boolean;\n}> = ({ title, items, striped }) => {\n const stripeClassNames = 'odd:bg-neutral-50 dark:odd:bg-neutral-800';\n const gridClassNames = 'grid grid-cols-[8rem_1fr]';\n const subGridClassNames = mx('col-span-full grid grid-cols-subgrid text-xs pli-2', striped && stripeClassNames);\n\n return (\n <div>\n <h1 className='pli-2 text-sm'>{title}</h1>\n <div className={gridClassNames}>\n {items.map(({ name, description, subitems }, i) => (\n <Fragment key={i}>\n {name && (\n <div className={subGridClassNames}>\n <div className='truncate text-primary-500'>{name}</div>\n <div className='line-clamp-2'>{description}</div>\n </div>\n )}\n {subitems?.map(({ name, description }, i) => (\n <div key={i} className={mx(subGridClassNames, striped && stripeClassNames)}>\n <div className='truncate'>{name}</div>\n <div className='line-clamp-3 text-subdued'>{description}</div>\n </div>\n ))}\n </Fragment>\n ))}\n </div>\n </div>\n );\n};\n\nexport type ToolboxContainerProps = ThemedClassName<{\n db?: Database.Database;\n processor?: AiChatProcessor;\n}>;\n\nexport const ToolboxContainer = ({ classNames, db, processor }: ToolboxContainerProps) => {\n // Registered services.\n const services = useQuery(db, Filter.type(ServiceType));\n const [serviceTools, setServiceTools] = useState<{ service: ServiceType }[]>([]);\n useEffect(() => {\n log('creating service tools...', { services: services.length });\n queueMicrotask(async () => {\n // TODO(burdon): Fix.\n // const tools = await Promise.all(\n // services.map(async (service) => ({ service, tools: await createToolsFromService(service) })),\n // );\n // setServiceTools(tools);\n });\n }, [services]);\n\n // Deployed functions.\n const functions = useQuery(db, Filter.type(Function.Function));\n\n return (\n <Toolbox\n classNames={classNames}\n blueprints={processor?.context.getBlueprints()}\n services={serviceTools}\n functions={functions}\n />\n );\n};\n\nconst safeToolId = (name: string) => {\n return name.split('_').pop();\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "DEFAULT_EDGE_MODELS", "DEFAULT_OLLAMA_MODELS", "Input", "Select", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "onSettingsChange", "t", "useTranslation", "meta", "id", "ControlPage", "ControlSection", "title", "ns", "ControlGroup", "ControlItemInput", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "s", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "Arrow", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "useCallback", "useEffect", "useMemo", "useState", "Common", "useCapabilities", "Blueprint", "Filter", "Obj", "Ref", "useQuery", "distinctBy", "useBlueprintRegistry", "blueprints", "useCapabilities", "Common", "Capability", "BlueprintDefinition", "useMemo", "Blueprint", "Registry", "useBlueprints", "blueprintRegistry", "db", "staticBlueprints", "query", "spaceBlueprints", "useQuery", "Filter", "type", "distinctBy", "b", "key", "sort", "name", "a", "localeCompare", "useActiveBlueprints", "context", "active", "setActive", "useState", "Map", "useEffect", "updateActive", "getBlueprints", "map", "blueprint", "subscribeBlueprints", "useBlueprintHandlers", "onUpdateBlueprint", "useCallback", "checked", "objects", "run", "storedBlueprint", "find", "getByKey", "add", "Obj", "clone", "bind", "Ref", "make", "unbind", "RegistryContext", "useContext", "useMemo", "useState", "AiConversation", "log", "useAsyncEffect", "useChatProcessor", "space", "chat", "preset", "services", "blueprintRegistry", "settings", "observableRegistry", "useContext", "RegistryContext", "conversation", "setConversation", "useState", "useAsyncEffect", "queue", "queues", "get", "dxn", "AiConversation", "registry", "open", "close", "undefined", "toString", "processor", "useMemo", "log", "model", "AiChatProcessor", "Effect", "useMemo", "useCapability", "TracingService", "TracingServiceExt", "AutomationCapabilities", "useClient", "useChatServices", "id", "chat", "client", "useClient", "spaces", "default", "runtimeResolver", "useCapability", "AutomationCapabilities", "ComputeRuntime", "useMemo", "runtime", "getRuntime", "runPromise", "pipe", "provide", "traceQueue", "target", "TracingServiceExt", "layerQueue", "TracingService", "layerNoop", "Atom", "Effect", "useMemo", "useOperationInvoker", "Filter", "Obj", "Query", "runAndForwardErrors", "invariant", "useQuery", "MenuBuilder", "useMenuActions", "lazy", "Prec", "keymap", "useAtomValue", "createContext", "Array", "Option", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "Event", "Obj", "useVoiceInput", "useQueue", "useIdentity", "Input", "useDynamicRef", "useTranslation", "ChatEditor", "MenuProvider", "ToolbarMenu", "Message", "mx", "isTruthy", "RegistryContext", "useContext", "useState", "AiContextBinder", "useAsyncEffect", "useContextBinder", "queue", "registry", "useContext", "RegistryContext", "binder", "setBinder", "useState", "useAsyncEffect", "AiContextBinder", "open", "close", "useCallback", "Ref", "useContextObjects", "db", "context", "handleUpdateObject", "useCallback", "dxn", "checked", "ref", "Ref", "fromDXN", "load", "bind", "objects", "unbind", "getObjects", "onUpdateObject", "Option", "useEffect", "useState", "EntityKind", "SystemTypeAnnotation", "getTypeAnnotation", "useFilteredTypes", "db", "types", "setTypes", "useState", "useEffect", "schemaRegistry", "query", "location", "subscribe", "Array", "from", "Set", "results", "filter", "schema", "getTypeAnnotation", "kind", "EntityKind", "Relation", "SystemTypeAnnotation", "get", "pipe", "getOrElse", "fire", "useCallback", "useRef", "useState", "useFlush", "space", "state", "setState", "useState", "resetTimer", "useRef", "handleFlush", "useCallback", "queueMicrotask", "current", "clearTimeout", "db", "flush", "setTimeout", "useState", "useOnline", "online", "setOnline", "useState", "useCallback", "useEffect", "useMemo", "useState", "usePresets", "online", "preset", "setPreset", "useState", "presets", "useMemo", "AiServicePresets", "filter", "provider", "presetOptions", "map", "id", "model", "label", "useEffect", "handlePresetChange", "useCallback", "find", "onPresetChange", "useMemo", "Common", "useCapabilities", "Filter", "Obj", "useReferencesProvider", "space", "blueprints", "useCapabilities", "Common", "Capability", "BlueprintDefinition", "useMemo", "undefined", "getReferences", "query", "objects", "db", "Filter", "everything", "run", "filter", "object", "stringMatch", "Obj", "getLabel", "getDXN", "map", "uri", "toString", "label", "resolveReference", "id", "first", "toLowerCase", "startsWith", "React", "IconButton", "useTranslation", "mx", "ChatActions", "classNames", "children", "microphone", "recording", "processing", "onEvent", "t", "useTranslation", "meta", "id", "React", "div", "className", "mx", "IconButton", "disabled", "variant", "icon", "iconOnly", "label", "onClick", "type", "noTooltip", "onMouseDown", "onMouseUp", "onTouchStart", "onTouchEnd", "React", "useMemo", "useState", "Filter", "Obj", "Type", "useQuery", "IconButton", "Popover", "Select", "useTranslation", "Listbox", "SearchList", "useSearchListResults", "Tabs", "panelClassNames", "ChatOptions", "db", "context", "blueprintRegistry", "presets", "preset", "onPresetChange", "t", "useTranslation", "meta", "id", "React", "div", "role", "className", "Popover", "Root", "Trigger", "asChild", "IconButton", "variant", "icon", "iconOnly", "label", "Portal", "Content", "side", "classNames", "Viewport", "ObjectsPanel", "Arrow", "Tabs", "orientation", "defaultValue", "defaultActivePart", "tabIndex", "Tabpanel", "value", "BlueprintsPanel", "ModelsPanel", "Tablist", "IconTab", "blueprints", "useBlueprints", "activeBlueprints", "useActiveBlueprints", "onUpdateBlueprint", "useBlueprintHandlers", "results", "handleSearch", "useSearchListResults", "items", "extract", "blueprint", "name", "SearchList", "onSearch", "map", "isActive", "has", "key", "Item", "checked", "onSelect", "Input", "placeholder", "autoFocus", "Listbox", "onValueChange", "Option", "OptionLabel", "OptionIndicator", "ANY", "types", "useFilteredTypes", "typenames", "useMemo", "type", "typename", "Type", "getTypename", "ns", "sort", "a", "b", "localeCompare", "setTypename", "useState", "anyFilter", "Filter", "or", "objects", "useQuery", "contextObjects", "onUpdateObject", "useContextObjects", "object", "Obj", "getLabel", "length", "findIndex", "obj", "getDXN", "Select", "undefined", "TriggerButton", "density", "ScrollUpButton", "ScrollDownButton", "React", "Select", "React", "Obj", "IconButton", "toLocalizedString", "useTranslation", "mx", "ChatReferences", "classNames", "context", "db", "t", "useTranslation", "meta", "id", "objects", "onUpdateObject", "useContextObjects", "React", "ul", "className", "mx", "map", "obj", "dxn", "Obj", "getDXN", "typename", "getTypename", "label", "getLabel", "ns", "li", "key", "toString", "data-hue", "toLocalizedString", "IconButton", "icon", "iconOnly", "variant", "size", "onClick", "React", "useEffect", "useState", "Tooltip", "useTimeout", "Spinner", "mx", "period", "ChatStatusIndicator", "classNames", "preset", "processing", "error", "props", "init", "setInit", "useState", "useEffect", "useTimeout", "React", "div", "role", "className", "mx", "Spinner", "duration", "state", "Tooltip", "Trigger", "asChild", "content", "message", "React", "forwardRef", "useCallback", "useEffect", "useMemo", "PublicKey", "useForwardedRef", "MarkdownStream", "mx", "keyToFallback", "React", "log", "ToggleContainer", "PromptWidget", "ReferenceWidget", "SelectWidget", "SuggestionWidget", "SummaryWidget", "Json", "ContentBlock", "getXmlTextChild", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "useTranslation", "NumericTabs", "TextCrawl", "ToggleContainer", "Json", "isNonNullable", "safeParseJson", "ToolBlock", "view", "blocks", "t", "useTranslation", "meta", "id", "items", "useMemo", "lastToolCall", "tools", "filter", "block", "_tag", "map", "pending", "toolCallId", "tool", "find", "name", "title", "description", "join", "content", "input", "safeParseJson", "error", "undefined", "result", "isNonNullable", "handleChangeOpen", "useCallback", "setTimeout", "requestMeasure", "length", "React", "ToolContainer", "onChangeOpen", "displayName", "tabsRef", "useRef", "selected", "setSelected", "useState", "open", "setOpen", "useEffect", "current", "focus", "handleSelect", "index", "ToggleContainer", "Root", "classNames", "Header", "TextCrawl", "key", "lines", "item", "autoAdvance", "greedy", "Content", "NumericTabs", "ref", "onSelect", "Json", "data", "replacer", "maxDepth", "maxArrayLen", "maxStringLen", "Fallback", "_tag", "props", "React", "ToggleContainer", "Root", "classNames", "Header", "Content", "Json", "data", "componentRegistry", "block", "factory", "children", "text", "getXmlTextChild", "PromptWidget", "ref", "ReferenceWidget", "options", "map", "option", "filter", "Boolean", "length", "SelectWidget", "SuggestionWidget", "SummaryWidget", "Component", "ToolBlock", "blockToMarkdown", "context", "message", "str", "blockToMarkdownImpl", "pending", "log", "JSON", "stringify", "sender", "role", "trim", "dxn", "reference", "toString", "getObjectLabel", "join", "updateWidget", "toolCallId", "blocks", "ContentBlock", "createSummaryMessage", "id", "log", "MessageThreadContext", "_widgetState", "updateWidget", "id", "value", "getObjectLabel", "_id", "MessageSyncer", "_initialMessageId", "_currentMessageIndex", "_currentBlockIndex", "_currentBlockContent", "_context", "_model", "_blockRenderer", "context", "reset", "undefined", "append", "messages", "flush", "view", "state", "doc", "length", "buffer", "process", "content", "push", "join", "dispatch", "changes", "from", "to", "insert", "selection", "anchor", "map", "message", "blocks", "currentMessageIndex", "currentBlockIndex", "currentBlockContent", "i", "slice", "j", "block", "startsWith", "pending", "ChatThread", "forwardRef", "classNames", "identity", "messages", "error", "cursor", "fadeIn", "debug", "onEvent", "forwardedRef", "controllerRef", "useForwardedRef", "controller", "current", "userHue", "useMemo", "profile", "data", "hue", "keyToFallback", "identityKey", "PublicKey", "random", "useEffect", "scrollToBottom", "syncer", "MessageSyncer", "blockToMarkdown", "reset", "append", "handleEvent", "useCallback", "type", "value", "text", "React", "div", "role", "className", "mx", "style", "MarkdownStream", "ref", "registry", "componentRegistry", "ChatContextProvider", "useChatContext", "createContext", "ChatRoot", "children", "chat", "processor", "onEvent", "props", "debug", "setDebug", "useState", "pending", "useAtomValue", "messages", "streaming", "lastPrompt", "useRef", "undefined", "queue", "useQueue", "dxn", "useMemo", "queueMessages", "objects", "filter", "Obj", "instanceOf", "Message", "dedupeWith", "id", "a", "b", "event", "Event", "useEffect", "on", "ev", "type", "current", "text", "trim", "length", "request", "message", "retry", "cancel", "emit", "db", "getDatabase", "React", "displayName", "ChatViewport", "classNames", "div", "role", "className", "mx", "ChatThread", "identity", "useIdentity", "error", "pipe", "getOrUndefined", "controllerRef", "scrollToBottom", "navigatePrevious", "navigateNext", "handleEvent", "useCallback", "NaturalChatThread", "ref", "ChatPrompt", "outline", "settings", "placeholder", "expandable", "online", "presets", "preset", "onPresetChange", "onOnlineChange", "t", "useTranslation", "meta", "active", "activeRef", "useDynamicRef", "editorRef", "recordingState", "setRecordingState", "getText", "setText", "focus", "recording", "useVoiceInput", "onUpdate", "extensions", "Prec", "highest", "keymap", "of", "key", "preventDefault", "run", "shift", "isTruthy", "handleSubmit", "ChatStatusIndicator", "processing", "ChatEditor", "autoFocus", "lineWrapping", "onSubmit", "ChatOptions", "blueprintRegistry", "context", "ChatReferences", "ChatActions", "microphone", "Input", "Root", "Label", "srOnly", "Switch", "checked", "onCheckedChange", "ChatToolbar", "companionTo", "menu", "useChatToolbarActions", "MenuProvider", "attendableId", "getDXN", "toString", "ToolbarMenu", "textBlockWidth", "Chat", "Viewport", "Thread", "Prompt", "Toolbar", "React", "Fragment", "useEffect", "useState", "Function", "log", "Filter", "useQuery", "useTranslation", "mx", "Toolbox", "classNames", "functions", "services", "blueprints", "activeBlueprints", "t", "useTranslation", "meta", "id", "React", "div", "className", "mx", "length", "Section", "title", "items", "map", "name", "description", "tools", "subitems", "toolId", "safeToolId", "target", "service", "serviceId", "striped", "stripeClassNames", "gridClassNames", "subGridClassNames", "h1", "i", "Fragment", "key", "ToolboxContainer", "db", "processor", "useQuery", "Filter", "type", "ServiceType", "serviceTools", "setServiceTools", "useState", "useEffect", "log", "queueMicrotask", "Function", "context", "getBlueprints", "split", "pop", "BlueprintArticle", "lazy", "ChatCompanion", "ChatContainer", "ChatDialog", "PromptArticle", "useChatToolbarActions", "chat", "companionTo", "invoke", "useOperationInvoker", "db", "useChatContext", "query", "Query", "select", "Filter", "id", "targetOf", "Assistant", "CompanionTo", "source", "nothing", "chats", "useQuery", "useMenuActions", "useMemo", "Atom", "make", "builder", "MenuBuilder", "root", "label", "ns", "meta", "action", "icon", "type", "disabled", "invariant", "AssistantOperation", "SetCurrentChat", "undefined", "pipe", "runAndForwardErrors", "gen", "UpdateChatName", "length", "group", "selectCardinality", "variant", "toSorted", "a", "b", "localeCompare", "forEach", "Obj", "getLabel", "Chat", "typename", "build", "spaceId"]
|
|
7
|
-
}
|